/* Cookie consent banner.
   Uses the theme's --gx- tokens where they are available and falls back to the
   literal values otherwise, so the banner still looks deliberate if the plugin
   is ever active without the Galaxi theme. */
.gxc-consent {
	position: fixed;
	z-index: 9999;
	right: 24px;
	bottom: 24px;
	left: auto;
	max-width: 420px;
	padding: 24px;
	border: 1px solid var(--gx-border, #D8D6EE);
	border-radius: var(--gx-radius-card, 14px);
	background: var(--gx-white, #fff);
	box-shadow: var(--gx-shadow-hover, 0 26px 52px -12px rgba(18, 22, 42, 0.22));
	color: var(--gx-slate, #454D57);
	font-family: var(--gx-font-body, system-ui, sans-serif);
	font-size: 14px;
	line-height: 1.6;
}

.gxc-consent[hidden] { display: none; }

.gxc-consent__title {
	margin: 0 0 8px;
	color: var(--gx-ink, #1F242B);
	font-family: var(--gx-font-display, system-ui, sans-serif);
	font-weight: 500;
	font-size: 17px;
	letter-spacing: -0.02em;
}

.gxc-consent__title:focus { outline: none; }
.gxc-consent__title:focus-visible {
	outline: 3px solid var(--gx-focus, #1F242B);
	outline-offset: 2px;
}

.gxc-consent__text { margin: 0 0 18px; }
.gxc-consent__text a { color: var(--gx-indigo, #3A3F8F); text-underline-offset: 3px; }

.gxc-consent__actions { display: flex; flex-wrap: wrap; gap: 10px; }

.gxc-consent__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 20px;
	border: 1px solid transparent;
	border-radius: var(--gx-radius-button, 6px);
	font-family: inherit;
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
	transition: background 260ms cubic-bezier(0.16, 1, 0.3, 1),
		border-color 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

/* Ink on violet is 4.74:1 — the reason the label is dark, not white. */
.gxc-consent__btn--accept {
	background: var(--gx-violet, #8B7FF0);
	color: var(--gx-ink, #1F242B);
}

.gxc-consent__btn--accept:hover { background: var(--gx-violet-hover, #7468E8); }

.gxc-consent__btn--reject {
	border-color: var(--gx-border-input, #6E6AA8);
	background: transparent;
	color: var(--gx-ink, #1F242B);
}

.gxc-consent__btn--reject:hover { border-color: var(--gx-ink, #1F242B); }

.gxc-consent__btn:focus-visible {
	outline: 3px solid var(--gx-focus, #1F242B);
	outline-offset: 2px;
}

@media (max-width: 767px) {
	.gxc-consent { right: 12px; bottom: 12px; left: 12px; max-width: none; padding: 20px; }
	.gxc-consent__actions { flex-direction: column; }
	.gxc-consent__btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.gxc-consent, .gxc-consent__btn { transition: none; }
}

@media print { .gxc-consent { display: none; } }
