/* Cookie consent (CMP) — uses the theme's --nn-* design tokens. */
.nn-cmp[hidden] { display: none; }

.nn-cmp {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1200;
	padding: 1rem;
	display: flex;
	justify-content: center;
	pointer-events: none;
}

.nn-cmp__card {
	pointer-events: auto;
	width: min(100%, 560px);
	background: #ffffff;
	border: 1px solid var(--nn-border, #e5e7eb);
	border-radius: var(--nn-r-lg, 1.5rem);
	box-shadow: var(--nn-shadow-lg, 0 24px 60px rgba(15, 23, 42, 0.16));
	padding: 1.25rem 1.35rem;
	animation: nn-cmp-up 220ms ease both;
}

@keyframes nn-cmp-up {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.nn-cmp__card { animation: none; }
}

.nn-cmp__view[hidden] { display: none; }

.nn-cmp__text {
	margin: 0 0 0.9rem;
	font-size: 0.92rem;
	line-height: 1.55;
	color: var(--nn-ink, #111827);
}
.nn-cmp__text a { color: var(--nn-emerald-dark, #047857); }

.nn-cmp__title { margin: 0 0 0.9rem; font-size: 1.05rem; color: var(--nn-ink, #111827); }

.nn-cmp__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: flex-end;
}

.nn-cmp__btn {
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	border: 0;
	border-radius: var(--nn-r-pill, 999px);
	padding: 0.6rem 1.1rem;
	background: var(--nn-emerald, #059669);
	color: #ffffff;
}
.nn-cmp__btn:hover { background: var(--nn-emerald-dark, #047857); }

.nn-cmp__btn--ghost {
	background: transparent;
	border: 1.5px solid var(--nn-border, #e5e7eb);
	color: var(--nn-ink, #111827);
}
.nn-cmp__btn--ghost:hover { background: var(--nn-soft, #f8fafc); }

.nn-cmp__cats {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	display: grid;
	gap: 0.6rem;
}

.nn-cmp__cat {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.7rem 0.85rem;
	border: 1px solid var(--nn-border, #e5e7eb);
	border-radius: var(--nn-r-md, 1rem);
	background: var(--nn-soft, #f8fafc);
}
.nn-cmp__cat strong { display: block; font-size: 0.92rem; color: var(--nn-ink, #111827); }
.nn-cmp__cat > div span { display: block; margin-top: 0.15rem; font-size: 0.8rem; color: var(--nn-muted, #6b7280); }
.nn-cmp__lock { font-size: 0.78rem; font-weight: 700; color: var(--nn-emerald-dark, #047857); white-space: nowrap; }

.nn-cmp__switch { position: relative; display: inline-block; width: 42px; height: 24px; flex-shrink: 0; }
.nn-cmp__switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.nn-cmp__slider { position: absolute; inset: 0; background: #cbd5e1; border-radius: 999px; transition: background 160ms ease; cursor: pointer; }
.nn-cmp__slider::before { content: ""; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: transform 160ms ease; }
.nn-cmp__switch input:checked + .nn-cmp__slider { background: var(--nn-emerald, #059669); }
.nn-cmp__switch input:checked + .nn-cmp__slider::before { transform: translateX(18px); }
.nn-cmp__switch input:focus-visible + .nn-cmp__slider { outline: 2px solid var(--nn-emerald, #059669); outline-offset: 2px; }

@media (max-width: 520px) {
	.nn-cmp { padding: 0.6rem; }
	.nn-cmp__actions { justify-content: stretch; }
	.nn-cmp__actions .nn-cmp__btn { flex: 1; }
}
