/* ==========================================================================
   TtMr — cookie consent banner
   ========================================================================== */

.cc { position: fixed; inset: 0; z-index: 1200; background: rgba(7, 11, 20, .55); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.cc[hidden] { display: none; }
.cc:not([hidden]) { display: flex; align-items: flex-end; justify-content: center; padding: clamp(.5rem, 2vw, 1.5rem); }

.cc__panel {
	width: 100%; max-width: 560px; max-height: 92vh; overflow-y: auto;
	background: var(--white); color: var(--text);
	border-radius: var(--radius-lg); box-shadow: var(--shadow);
	padding: clamp(1.4rem, 3vw, 2rem);
	animation: cc-rise .35s var(--ease) both;
}
@keyframes cc-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

.cc__title { font-family: var(--font-heading); font-weight: 700; font-size: 1.32rem; margin-bottom: .5rem; color: var(--ink); }
.cc__intro { color: var(--text-muted); font-size: .96rem; line-height: 1.6; }
.cc__intro a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }

.cc__options { margin-top: 1.3rem; border-top: 1px solid var(--line); }
.cc__cat { padding: 1rem 0; border-bottom: 1px solid var(--line); }
.cc__cat-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.cc__cat-name { font-family: var(--font-heading); font-weight: 600; color: var(--ink); }
.cc__cat-desc { margin-top: .45rem; color: var(--text-muted); font-size: .88rem; line-height: 1.55; }

/* Toggle switch */
.cc__switch { position: relative; display: inline-block; width: 46px; height: 26px; flex: 0 0 auto; cursor: pointer; }
.cc__switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.cc__track { position: absolute; inset: 0; border-radius: 999px; background: #cbd5e1; transition: background var(--dur) var(--ease); }
.cc__track::before { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); transition: transform var(--dur) var(--ease); }
.cc__switch input:checked + .cc__track { background: var(--blue); }
.cc__switch input:checked + .cc__track::before { transform: translateX(20px); }
.cc__switch.is-locked { cursor: default; opacity: .85; }
.cc__switch.is-locked input { cursor: default; }
.cc__switch.is-locked input:checked + .cc__track { background: var(--accent); }

.cc__actions { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .6rem; }
.cc__actions .btn { flex: 1 1 auto; }
@media (min-width: 560px) {
	.cc__actions { justify-content: flex-end; }
	.cc__actions .btn { flex: 0 1 auto; }
}
@media (prefers-reduced-motion: reduce) { .cc__panel { animation: none; } }
