/**
 * Cookie banner.
 *
 * A bar across the bottom rather than a full-screen wall: the visitor can still
 * read the page while they decide, which is the difference between a choice and
 * an ultimatum. Everything is scoped under .qyx-cc.
 */

.qyx-cc {
	position: fixed;
	z-index: 9999;
	inset: auto 0 0 0;
	padding: 0 1rem 1rem;
	pointer-events: none;
}
.qyx-cc[hidden] { display: none; }

.qyx-cc__panel {
	pointer-events: auto;
	display: grid;
	gap: 1rem;
	max-width: 64rem;
	margin: 0 auto;
	padding: 1.25rem 1.35rem;
	background: #fff;
	border: 1px solid rgba(15, 23, 42, 0.1);
	border-radius: 18px;
	box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
	color: #0f172a;
	font-size: 14px;
	line-height: 1.5;
}
.qyx-cc__panel:focus { outline: none; }

/* Wide enough for the copy and the buttons to sit side by side, until the
   preferences open and the panel needs the full width for the list. */
@media (min-width: 48rem) {
	.qyx-cc__panel {
		grid-template-columns: 1fr auto;
		align-items: center;
		gap: 1.5rem;
	}
	.qyx-cc.is-open .qyx-cc__panel { grid-template-columns: 1fr; }
}

.qyx-cc__title {
	margin: 0 0 0.35rem;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: -0.01em;
}
.qyx-cc__body {
	margin: 0;
	color: #475569;
}
.qyx-cc__links {
	margin: 0.5rem 0 0;
	display: flex;
	gap: 1rem;
	font-size: 12.5px;
}
.qyx-cc__links a {
	color: #475569;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.qyx-cc__links a:hover { color: #0f172a; }

/* ---------- the per-category detail ---------- */
.qyx-cc__options {
	display: grid;
	gap: 0.6rem;
	padding-top: 0.9rem;
	border-top: 1px solid rgba(15, 23, 42, 0.08);
}
.qyx-cc__options[hidden] { display: none; }
.qyx-cc__option {
	display: flex;
	gap: 0.65rem;
	align-items: flex-start;
	color: #475569;
	cursor: pointer;
}
.qyx-cc__option input {
	flex: none;
	margin-top: 0.15rem;
	width: 16px;
	height: 16px;
	accent-color: #0f172a;
}
.qyx-cc__option input:disabled { cursor: default; }
.qyx-cc__option b {
	display: block;
	color: #0f172a;
	font-weight: 600;
}

/* ---------- buttons ---------- */
.qyx-cc__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	align-items: center;
}
.qyx-cc__btn {
	padding: 0.6rem 1.15rem;
	border-radius: 999px;
	border: 1px solid transparent;
	font: inherit;
	font-weight: 600;
	white-space: nowrap;
	cursor: pointer;
}
/* Accept and Reject are deliberately the SAME button. Making refusal the
   quieter option is the pattern regulators keep striking down, and it is not
   what this site wants to be doing anyway. */
.qyx-cc__btn--primary {
	background: #0f172a;
	color: #fff;
}
.qyx-cc__btn--primary:hover { background: #1e293b; }
.qyx-cc__btn--quiet {
	background: transparent;
	border-color: rgba(15, 23, 42, 0.18);
	color: #334155;
}
.qyx-cc__btn--quiet:hover { border-color: rgba(15, 23, 42, 0.42); }
.qyx-cc__btn:focus-visible {
	outline: 2px solid #0f172a;
	outline-offset: 2px;
}

@media (max-width: 30rem) {
	.qyx-cc { padding: 0 0.6rem 0.6rem; }
	.qyx-cc__panel { padding: 1.1rem; }
	.qyx-cc__btn { flex: 1 1 auto; text-align: center; }
	.qyx-cc__btn--quiet { flex-basis: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.qyx-cc__btn { transition: none; }
}
