/* Pashers cookie banner. Accept and Reject are deliberately identical: neither is the "easy" one. */
.pc {
	--pc-ink: #23231F;
	--pc-soft: #5A5B53;
	--pc-paper: #FBF9F5;
	--pc-line: #E6DECE;
	--pc-green: #3F5E45;
	position: fixed;
	z-index: 99990;
	left: 20px;
	bottom: 20px;
	width: min(420px, calc(100vw - 40px));
	font-family: var(--body, 'Instrument Sans', 'Helvetica Neue', Arial, sans-serif);
	color: var(--pc-ink);
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .25s ease, transform .35s cubic-bezier(.2, .9, .3, 1.2);
}
.pc[hidden] { display: none; }
.pc.is-in { opacity: 1; transform: none; }
.pc-card {
	background: var(--pc-paper);
	border: 1.5px solid var(--pc-ink);
	border-radius: 22px;
	padding: 22px 22px 18px;
	box-shadow: 6px 6px 0 var(--pc-ink);
	max-height: calc(100vh - 40px);
	overflow-y: auto;
}
.pc-title {
	margin: 0 0 8px;
	font-family: var(--display, 'Bricolage Grotesque', 'Helvetica Neue', Arial, sans-serif);
	font-size: 21px;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.02em;
	color: var(--pc-ink);
}
.pc-text { margin: 0 0 16px; font-size: 15px; line-height: 1.5; color: var(--pc-soft); }
.pc-text a, .pc-small a { color: var(--pc-ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.pc-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pc .pc-btn {
	appearance: none;
	margin: 0;
	min-height: 46px;
	padding: 12px 16px;
	border: 1.5px solid var(--pc-ink);
	border-radius: 999px;
	background: var(--pc-ink);
	color: var(--pc-paper);
	font: 600 15px/1 var(--body, 'Instrument Sans', Arial, sans-serif);
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}
.pc .pc-btn:hover { background: var(--pc-paper); color: var(--pc-ink); }
.pc .pc-btn.pc-save { grid-column: 1 / -1; background: var(--pc-paper); color: var(--pc-ink); }
.pc .pc-btn.pc-save:hover { background: var(--pc-ink); color: var(--pc-paper); }
.pc .pc-btn:focus-visible, .pc .pc-link:focus-visible, .pc .pc-switch:focus-visible, .pc a:focus-visible, .pc-open:focus-visible {
	outline: 3px solid #24476B;
	outline-offset: 3px;
}
.pc .pc-link {
	appearance: none;
	display: block;
	margin: 12px auto 0;
	padding: 6px 8px;
	border: 0;
	background: none;
	color: var(--pc-ink);
	font: 600 14px/1.2 var(--body, 'Instrument Sans', Arial, sans-serif);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

/* Two views in one card: the quick question, and the choose-for-yourself list. */
.pc[data-view="ask"] .pc-choose,
.pc[data-view="choose"] .pc-ask { display: none; }

.pc-list { list-style: none; margin: 0 0 16px; padding: 0; border-top: 1px solid var(--pc-line); }
.pc-opt { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--pc-line); }
.pc-opt-text { display: grid; gap: 2px; font-size: 14px; line-height: 1.45; color: var(--pc-soft); cursor: pointer; }
.pc-opt-text strong { font-size: 15px; color: var(--pc-ink); }
.pc-always { flex: none; padding-top: 2px; font-size: 13px; font-weight: 600; color: var(--pc-green); }
.pc-small { margin: 12px 0 0; font-size: 13px; text-align: center; color: var(--pc-soft); }

/* Switches */
.pc .pc-switch {
	appearance: none;
	flex: none;
	position: relative;
	width: 46px;
	height: 28px;
	margin: 0;
	border-radius: 999px;
	border: 1.5px solid var(--pc-ink);
	background: var(--pc-line);
	cursor: pointer;
	transition: background-color .2s ease;
}
.pc .pc-switch::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: var(--pc-paper);
	border: 1.5px solid var(--pc-ink);
	box-sizing: border-box;
	transition: transform .2s cubic-bezier(.2, .9, .3, 1.2);
}
.pc .pc-switch:checked { background: var(--pc-green); }
.pc .pc-switch:checked::before { transform: translateX(18px); }

/* The "Cookie settings" link in the footer looks like the links beside it. */
.pc-open { appearance: none; margin: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

@media (max-width: 560px) {
	.pc { left: 12px; right: 12px; bottom: 12px; width: auto; }
	.pc-card { padding: 18px 18px 14px; box-shadow: 4px 4px 0 var(--pc-ink); }
	.pc-title { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
	.pc, .pc .pc-switch, .pc .pc-switch::before { transition: none; }
}
@media (forced-colors: active) {
	.pc-card { border-color: CanvasText; }
	.pc .pc-switch:checked { background: Highlight; }
}
@media print { .pc { display: none !important; } }
