/*
 * AXIS Compliance — visual styles for age gate, top banner, RUO banner, RUO badge.
 * Token references match the theme's _tokens.css; if the theme is swapped, fallbacks kick in.
 */

/* ==========================================================
   TOP BANNER (sitewide RUO disclaimer above header)
========================================================== */
.axis-top-banner {
	background: var(--bg-elevated, #161b28);
	border-bottom: 1px solid var(--border, rgba(255,255,255,0.06));
	padding: 10px 24px;
	text-align: center;
	font-family: var(--font-body, 'Inter', sans-serif);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	color: var(--ruo-warning, #c9a84c);
	position: relative;
	z-index: calc(var(--z-header, 100) + 1);
}
.axis-top-banner span {
	display: inline-block;
}

/* When the top banner is present, push the fixed header down by its height */
body.axis-theme:has(.axis-top-banner) .axis-header {
	top: 38px; /* matches top-banner's natural height */
}

/* Fallback for browsers without :has() — admin bar safe spacing */
@supports not selector(:has(*)) {
	.axis-top-banner + .axis-header {
		top: 38px;
	}
}

/* ==========================================================
   AGE GATE
========================================================== */
.axis-age-gate {
	position: fixed;
	inset: 0;
	z-index: var(--z-age-gate, 9999);
	background: rgba(5, 5, 8, 0.96);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	animation: axis-age-gate-fade-in 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.axis-age-gate.axis-age-gate-leaving {
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s ease;
}
@keyframes axis-age-gate-fade-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}
.axis-age-gate-card {
	max-width: 540px;
	width: 100%;
	background: var(--bg-elevated, #161b28);
	border: 1px solid var(--border-hover, rgba(255,255,255,0.12));
	padding: 56px 48px;
	text-align: center;
	color: var(--text, #f0f2f5);
	font-family: var(--font-body, 'Inter', sans-serif);
}
.axis-age-gate-logo {
	font-family: var(--font-display, 'Outfit', sans-serif);
	font-weight: 700;
	font-size: 1.75rem;
	letter-spacing: -0.01em;
	color: var(--text, #f0f2f5);
	margin-bottom: 28px;
	white-space: nowrap;
}
.axis-age-gate-logo span {
	color: var(--accent, #00d4aa);
	font-weight: 700;
}
@media (max-width: 540px) {
	.axis-age-gate-logo { font-size: 1.375rem; }
}
.axis-age-gate-divider {
	width: 40px;
	height: 1px;
	background: var(--accent, #00d4aa);
	margin: 0 auto 28px;
}
.axis-age-gate-eyebrow {
	font-size: 0.6875rem;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--accent, #00d4aa);
	margin-bottom: 16px;
}
.axis-age-gate-title {
	font-family: var(--font-display, 'Outfit', sans-serif);
	font-weight: 700;
	font-size: 2.25rem;
	line-height: 1.1;
	letter-spacing: -0.03em;
	margin-bottom: 24px;
	color: var(--text, #f0f2f5);
}
.axis-age-gate-body {
	color: var(--text-dim, #8891a0);
	line-height: 1.7;
	font-size: 0.9375rem;
	margin-bottom: 36px;
}
.axis-age-gate-actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 28px;
}
.axis-age-gate-btn {
	width: 100%;
	padding: 16px 24px;
	font-family: var(--font-body, 'Inter', sans-serif);
	font-weight: 500;
	font-size: 0.9375rem;
	letter-spacing: 0.05em;
	cursor: pointer;
	border: 1px solid transparent;
	transition: all 0.2s ease;
}
.axis-age-gate-btn-primary {
	background: var(--accent, #00d4aa);
	color: var(--bg, #050508);
	border-color: var(--accent, #00d4aa);
}
.axis-age-gate-btn-primary:hover {
	background: var(--accent-light, #33e8c4);
	border-color: var(--accent-light, #33e8c4);
}
.axis-age-gate-btn-deny {
	background: transparent;
	color: var(--text-dim, #8891a0);
	border-color: var(--border, rgba(255,255,255,0.06));
}
.axis-age-gate-btn-deny:hover {
	color: var(--text, #f0f2f5);
	border-color: var(--border-hover, rgba(255,255,255,0.12));
}
.axis-age-gate-fineprint {
	font-size: 0.75rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--text-muted, #454d5c);
}

@media (max-width: 540px) {
	.axis-age-gate-card  { padding: 40px 28px; }
	.axis-age-gate-title { font-size: 1.625rem; }
}

/* ==========================================================
   RUO BANNER (footer + single-product inline)
========================================================== */
.axis-ruo-banner {
	background: linear-gradient(90deg, rgba(201, 168, 76, 0.06), rgba(201, 168, 76, 0.10), rgba(201, 168, 76, 0.06));
	border-top: 1px solid rgba(201, 168, 76, 0.25);
	border-bottom: 1px solid rgba(201, 168, 76, 0.25);
	padding: 20px 0;
}
.axis-ruo-banner-inner {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	max-width: var(--container-max, 1240px);
	margin: 0 auto;
}
.axis-ruo-banner-icon {
	color: var(--ruo-warning, #c9a84c);
	flex-shrink: 0;
	margin-top: 2px;
}
.axis-ruo-banner-text {
	font-family: var(--font-body, 'Inter', sans-serif);
	font-size: 0.8125rem;
	color: var(--ruo-warning, #c9a84c);
	line-height: 1.65;
	letter-spacing: 0.01em;
	margin: 0;
}
.axis-ruo-banner--inline {
	margin: 0 0 24px;
	padding: 16px;
	border: 1px solid rgba(201, 168, 76, 0.3);
	background: rgba(201, 168, 76, 0.05);
}
.axis-ruo-banner--inline .axis-ruo-banner-inner {
	max-width: none;
	padding: 0;
}

/* ==========================================================
   COOKIE CONSENT BANNER (bottom-edge, dismissible)
========================================================== */
.axis-cookie-banner {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: calc(var(--z-header, 100) + 50);
	background: var(--bg-elevated, #161b28);
	border-top: 1px solid var(--border-hover, rgba(255,255,255,0.12));
	padding: 16px 24px;
	transform: translateY(100%);
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.axis-cookie-banner.is-visible {
	transform: translateY(0);
}
.axis-cookie-banner.is-leaving {
	transform: translateY(100%);
}
.axis-cookie-banner-inner {
	max-width: var(--container-max, 1240px);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}
.axis-cookie-banner-text {
	flex: 1;
	min-width: 280px;
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--text-dim, #8891a0);
	font-family: var(--font-body, 'Inter', sans-serif);
}
.axis-cookie-banner-text a {
	color: var(--accent, #00d4aa);
	text-decoration: underline;
}
.axis-cookie-banner-btn {
	background: var(--accent, #00d4aa);
	color: var(--bg, #050508);
	border: none;
	padding: 10px 24px;
	font-family: var(--font-body, 'Inter', sans-serif);
	font-weight: 600;
	font-size: 0.8125rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s ease;
	flex-shrink: 0;
}
.axis-cookie-banner-btn:hover {
	background: var(--accent-light, #33e8c4);
}
@media (max-width: 720px) {
	.axis-cookie-banner-inner { flex-direction: column; align-items: stretch; }
	.axis-cookie-banner-btn   { width: 100%; }
}

/* ==========================================================
   PER-PRODUCT RUO BADGE
========================================================== */
.axis-ruo-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 8px 0 12px;
	padding: 5px 10px;
	background: rgba(201, 168, 76, 0.08);
	border: 1px solid rgba(201, 168, 76, 0.3);
	color: var(--ruo-warning, #c9a84c);
	font-family: var(--font-body, 'Inter', sans-serif);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 2px;
}
.axis-ruo-badge svg {
	flex-shrink: 0;
}
