/* Age gate and cookie banner. Colors fall back to the brand values if the theme's tokens aren't loaded. */

.cc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 22px;
	border: 1.5px solid transparent;
	border-radius: 999px;
	font: inherit;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
}
.cc-btn:focus-visible { outline: 2px solid var(--cc-orange, #E2702A); outline-offset: 3px; }
.cc-btn--primary { background: var(--cc-orange, #E2702A); color: var(--cc-ink, #0E0F10); }
.cc-btn--primary:hover { background: var(--cc-orange-hover, #EC8343); }
.cc-btn--outline { background: transparent; border-color: currentColor; color: inherit; }
.cc-btn--outline:hover { background: rgba(255, 255, 255, 0.08); }
.cc-btn--dark { background: var(--cc-ink, #0E0F10); color: var(--cc-white, #FFFFFF); }
.cc-btn--dark:hover { background: var(--cc-ink-2, #1A1A1A); }

/* ---------- Age gate ---------- */
.cc-age {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 100000;
	align-items: center;
	justify-content: center;
	padding: 16px;
	background: rgba(14, 15, 16, 0.97);
	color: var(--cc-gray-100, #F2F2F2);
	overflow-y: auto;
}
.cc-need-age .cc-age { display: flex; }
.cc-locked, .cc-locked body { overflow: hidden; }
.cc-age__panel { width: 100%; max-width: 440px; text-align: center; animation: cc-age-in 200ms ease-out; }
@keyframes cc-age-in { from { transform: translateY(8px); } to { transform: none; } }
.cc-age__mark { margin: 0 auto 24px; }
.cc-age__title {
	margin: 0 0 12px;
	font-size: clamp(1.75rem, 1.3rem + 2vw, 2.25rem);
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.15;
	color: var(--cc-white, #FFFFFF);
}
.cc-age__text { margin: 0 0 28px; color: var(--cc-muted-dark, #A0A4AB); line-height: 1.6; }
.cc-age__actions { display: grid; gap: 12px; }
.cc-age__nojs { display: none; }
.cc-age__nojs .cc-btn { width: 100%; }
.cc-age__refused { margin: 20px 0 0; font-weight: 500; color: var(--cc-white, #FFFFFF); }
.cc-age__fine { margin: 24px 0 0; font-size: 0.8125rem; color: var(--cc-muted-dark, #A0A4AB); }
.cc-age__fine a { color: var(--cc-gray-100, #F2F2F2); }
.cc-age__fine a:hover { color: var(--cc-white, #FFFFFF); }
.cc-age a:focus-visible { outline: 2px solid var(--cc-orange, #E2702A); outline-offset: 2px; border-radius: 2px; }

/* ---------- Cookie banner ---------- */
.cc-consent {
	display: none;
	position: fixed;
	left: 12px;
	right: 12px;
	bottom: 12px;
	z-index: 99999;
	margin: 0 auto;
	max-width: 960px;
	padding: 20px;
	border: 1px solid var(--cc-gray-200, #E6E6E6);
	border-radius: var(--cc-radius, 10px);
	background: var(--cc-white, #FFFFFF);
	color: var(--cc-ink, #0E0F10);
	box-shadow: 0 12px 40px rgba(14, 15, 16, 0.14);
	font-size: 0.875rem;
	line-height: 1.5;
}
.cc-consent.is-visible { display: block; animation: cc-consent-in 200ms ease-out; }
@keyframes cc-consent-in { from { transform: translateY(12px); } to { transform: none; } }
.cc-consent__inner { display: grid; gap: 16px; }
@media (min-width: 768px) {
	.cc-consent__inner { grid-template-columns: 1fr auto; align-items: center; gap: 32px; }
}
.cc-consent__title { margin: 0 0 4px; font-size: 1rem; font-weight: 600; }
.cc-consent p { margin: 0; color: var(--cc-muted, #5F636A); }
.cc-consent a { color: var(--cc-ink, #0E0F10); }
.cc-consent__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
@media (min-width: 768px) { .cc-consent__actions { display: flex; } }
.cc-consent .cc-btn { font-size: 0.875rem; padding: 0 18px; white-space: nowrap; }
@media (max-width: 400px) { .cc-consent .cc-btn { white-space: normal; text-align: center; } }

@media (prefers-reduced-motion: reduce) {
	.cc-age__panel, .cc-consent.is-visible { animation: none; }
}
