/**
 * Legal & consent UI — cookie-consent banner + age-gate.
 * Glass aesthetic from the parsaccess-ui design system (tokens with fallbacks).
 * Selectors are scoped to each component so button styles never leak or collide.
 *
 * @package parsaccess
 */

/* Shared button (scoped to legal components only). */
.pa-cookie-banner .pa-btn,
.pa-age-gate .pa-btn {
	appearance: none;
	border: 1px solid transparent;
	border-radius: var(--pa-radius-sm, 12px);
	padding: .62rem 1.15rem;
	font: inherit;
	font-weight: 700;
	font-size: .92rem;
	cursor: pointer;
	line-height: 1.2;
	transition: transform .18s var(--pa-ease, ease), box-shadow .18s ease, background .18s ease;
}
.pa-cookie-banner .pa-btn:focus-visible,
.pa-age-gate .pa-btn:focus-visible {
	outline: 2px solid var(--pa-violet, #7667e9);
	outline-offset: 2px;
}
.pa-cookie-banner .pa-btn--primary,
.pa-age-gate .pa-btn--primary {
	background: linear-gradient(135deg, var(--pa-indigo, #5548c8), var(--pa-violet, #7667e9));
	color: #fff;
	box-shadow: 0 8px 20px rgba(85, 72, 200, .28);
}
.pa-cookie-banner .pa-btn--primary:hover,
.pa-age-gate .pa-btn--primary:hover {
	transform: translateY(-1px);
	box-shadow: 0 12px 26px rgba(85, 72, 200, .34);
}
.pa-cookie-banner .pa-btn--ghost,
.pa-age-gate .pa-btn--ghost {
	background: var(--pa-glass, rgba(255, 255, 255, .48));
	color: var(--pa-text, #17235f);
	border-color: var(--pa-glass-border, rgba(120, 130, 180, .35));
}
.pa-cookie-banner .pa-btn--ghost:hover,
.pa-age-gate .pa-btn--ghost:hover {
	background: var(--pa-glass-strong, rgba(255, 255, 255, .7));
}

/* Registration consent checkbox row (WooCommerce register form). */
.pa-consent-field { margin: .5rem 0 1rem; font-size: .9rem; line-height: 1.9; }
.pa-consent-field label { display: flex; gap: .5rem; align-items: flex-start; cursor: pointer; }
.pa-consent-field input { margin-top: .35rem; flex: 0 0 auto; }
.pa-consent-field a { color: var(--pa-indigo, #5548c8); font-weight: 700; }

/* ---------------- cookie banner ---------------- */
.pa-cookie-banner {
	position: fixed;
	inset-inline: 0;
	bottom: 0;
	z-index: 9998;
	display: flex;
	justify-content: center;
	padding: clamp(.75rem, 2vw, 1.25rem);
	pointer-events: none;
}
.pa-cookie-banner[hidden] { display: none; }
.pa-cookie-banner__inner {
	pointer-events: auto;
	width: min(920px, 100%);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.5rem;
	padding: 1rem 1.25rem;
	background: var(--pa-glass-strong, rgba(255, 255, 255, .82));
	border: 1px solid var(--pa-glass-border, rgba(255, 255, 255, .82));
	border-radius: var(--pa-radius-md, 18px);
	box-shadow: var(--pa-shadow, 0 18px 50px rgba(58, 72, 130, .16));
	-webkit-backdrop-filter: blur(var(--pa-blur, 18px));
	backdrop-filter: blur(var(--pa-blur, 18px));
	animation: pa-legal-rise .35s var(--pa-ease, ease) both;
}
.pa-cookie-banner__text {
	flex: 1 1 320px;
	margin: 0;
	font-size: .92rem;
	line-height: 1.9;
	color: var(--pa-text, #17235f);
}
.pa-cookie-banner__text a { color: var(--pa-indigo, #5548c8); font-weight: 700; }
.pa-cookie-banner__actions {
	display: flex;
	gap: .6rem;
	flex: 0 0 auto;
	margin-inline-start: auto;
}

/* ---------------- age gate ---------------- */
.pa-age-gate {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: grid;
	place-items: center;
	padding: 1.25rem;
	background: rgba(17, 21, 47, .58);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	animation: pa-legal-fade .3s var(--pa-ease, ease) both;
}
.pa-age-gate[hidden] { display: none; }
.pa-age-gate__card {
	width: min(440px, 100%);
	text-align: center;
	padding: clamp(1.5rem, 4vw, 2.25rem);
	background: var(--pa-glass-strong, rgba(255, 255, 255, .9));
	border: 1px solid var(--pa-glass-border, rgba(255, 255, 255, .82));
	border-radius: var(--pa-radius-lg, 24px);
	box-shadow: var(--pa-shadow, 0 24px 60px rgba(58, 72, 130, .22));
	-webkit-backdrop-filter: blur(var(--pa-blur, 18px));
	backdrop-filter: blur(var(--pa-blur, 18px));
	animation: pa-legal-pop .35s var(--pa-ease, ease) both;
}
.pa-age-gate__title {
	margin: 0 0 .5rem;
	font-size: 1.4rem;
	color: var(--pa-navy, #17235f);
}
.pa-age-gate__text {
	margin: 0 0 1.4rem;
	font-size: .98rem;
	line-height: 2;
	color: var(--pa-text-muted, #6f78a0);
}
.pa-age-gate__actions {
	display: flex;
	gap: .7rem;
	justify-content: center;
	flex-wrap: wrap;
}
.pa-age-gate__actions .pa-btn { flex: 1 1 auto; min-width: 140px; }
.pa-age-gate__deny {
	margin: 1.1rem 0 0;
	padding: .7rem .9rem;
	font-size: .9rem;
	line-height: 1.8;
	color: var(--pa-danger, #d9557a);
	background: var(--pa-danger-tint, rgba(217, 85, 122, .12));
	border-radius: var(--pa-radius-sm, 12px);
}

@keyframes pa-legal-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes pa-legal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pa-legal-pop { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
	.pa-cookie-banner__inner,
	.pa-age-gate,
	.pa-age-gate__card { animation: none; }
	.pa-cookie-banner .pa-btn,
	.pa-age-gate .pa-btn { transition: none; }
}
