/* ============================================================
   Modal de aviso de privacidad — 0.99.606
   Estos estilos vivían dentro de public-profile.css, que SOLO se
   encola en las rutas /pro/. En las páginas de registro y login la
   hoja no cargaba, así que el modal se pintaba como contenido
   suelto al final de la página en vez de flotar. Ahora es un
   componente con hoja propia que se encola junto a su JS.
   ============================================================ */
body.ppsa-privacy-modal-open {
	overflow: hidden;
}

.ppsa-privacy-modal {
	position: fixed;
	inset: 0;
	z-index: 100050;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	box-sizing: border-box;
}

.ppsa-privacy-modal[hidden] {
	display: none !important;
}

.ppsa-privacy-modal__backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: none;
	cursor: pointer;
	background: rgba(15, 23, 42, 0.55);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	appearance: none;
	-webkit-appearance: none;
}

.ppsa-privacy-modal__sheet {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	width: min(680px, 100%);
	max-height: min(84vh, 720px);
	background: #ffffff;
	color: #0f172a;
	border-radius: 16px;
	box-shadow: 0 24px 68px rgba(15, 23, 42, 0.32);
	overflow: hidden;
	box-sizing: border-box;
}

.ppsa-privacy-modal__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 1.1rem 1.25rem 0.65rem;
	border-bottom: 1px solid rgba(148, 163, 184, 0.28);
}

.ppsa-privacy-modal__head h2,
#ppsa-privacy-modal-title {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.35;
	font-weight: 700;
}

.ppsa-privacy-modal__close {
	flex: 0 0 auto;
	width: 2rem;
	height: 2rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.35rem;
	line-height: 1;
	color: #475569;
	background: transparent;
	border: 1px solid rgba(148, 163, 184, 0.4);
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.ppsa-privacy-modal__close:hover,
.ppsa-privacy-modal__close:focus-visible {
	background: rgba(148, 163, 184, 0.16);
	color: #0f172a;
}

.ppsa-privacy-modal__hint {
	margin: 0;
	padding: 0.6rem 1.25rem;
	font-size: 0.82rem;
	line-height: 1.4;
	color: #475569;
	background: rgba(241, 245, 249, 0.85);
	border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}

.ppsa-privacy-modal__scroll {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 1.1rem 1.25rem;
	font-size: 0.9rem;
	line-height: 1.6;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

.ppsa-privacy-modal__scroll h1,
.ppsa-privacy-modal__scroll h2,
.ppsa-privacy-modal__scroll h3 {
	margin: 1.15rem 0 0.5rem;
	line-height: 1.3;
}

.ppsa-privacy-modal__scroll h1 { font-size: 1.15rem; }
.ppsa-privacy-modal__scroll h2 { font-size: 1.02rem; }
.ppsa-privacy-modal__scroll h3 { font-size: 0.95rem; }
.ppsa-privacy-modal__scroll p,
.ppsa-privacy-modal__scroll li { margin: 0 0 0.6rem; }
.ppsa-privacy-modal__scroll ul,
.ppsa-privacy-modal__scroll ol { padding-inline-start: 1.15rem; }

.ppsa-privacy-modal__ext-link {
	margin: 0.85rem 0 0;
	font-size: 0.85rem;
}

.ppsa-privacy-modal__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
	padding: 0.85rem 1.25rem;
	border-top: 1px solid rgba(148, 163, 184, 0.28);
	background: #f8fafc;
}

.ppsa-privacy-modal--readonly #ppsa-privacy-modal-accept,
.ppsa-privacy-modal--readonly #ppsa-privacy-modal-hint {
	display: none !important;
}

.ppsa-privacy-modal--readonly .ppsa-privacy-modal__foot {
	justify-content: flex-end;
}

@media (max-width: 600px) {
	.ppsa-privacy-modal {
		padding: 0.5rem;
	}
	.ppsa-privacy-modal__sheet {
		max-height: 92vh;
		border-radius: 14px;
	}
	.ppsa-privacy-modal__foot {
		justify-content: stretch;
	}
	.ppsa-privacy-modal__foot > * {
		flex: 1 1 auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ppsa-privacy-modal__close {
		transition: none;
	}
}
