:root,
[data-bs-theme="light"] {
	/* Brand core: warm premium (champagne + cocoa + rose-gold) */
	--brand-champagne: #000000;
	--brand-champagne-2: #e2c48a;
	--brand-cocoa: #1e1a16;
	--brand-ink: #0f172a;
	--brand-rose: #b8747b;
	--brand-ivory: #fbfaf8;
	--brand-surface: #ffffff;

	/* Bootstrap semantic overrides */
	--bs-primary: var(--brand-champagne);
	--bs-secondary: #6b7280;
	--bs-success: #16a34a;
	--bs-info: #0ea5a6;
	--bs-warning: #c07a1a;
	--bs-danger: #dc2626;

	--bs-body-bg: #f6f2ea;
	--bs-body-color: #18140f;
	--bs-secondary-color: rgba(24, 20, 15, 0.68);
	--bs-link-color: color-mix(in srgb, var(--bs-primary) 80%, #7a5a2b);
	--bs-link-hover-color: color-mix(in srgb, var(--bs-primary) 86%, #000);

	--bs-border-color: rgba(24, 20, 15, 0.12);

	/* Premium token harmony */
	--premium-bg: var(--bs-body-bg);
	--premium-surface: var(--brand-surface);
	--premium-surface-muted: color-mix(in srgb, var(--brand-ivory) 68%, var(--brand-surface));
	--premium-border: var(--bs-border-color);

	--premium-shadow-sm: 0 12px 26px rgba(24, 20, 15, 0.07);
	--premium-shadow: 0 26px 62px rgba(24, 20, 15, 0.12);
	--premium-glow: 0 18px 46px color-mix(in srgb, var(--bs-primary) 28%, transparent);

	--premium-navbar-bg: rgba(255, 255, 255, 0.86);
	--premium-navbar-border: rgba(24, 20, 15, 0.08);

	--premium-hero-grad-1: color-mix(in srgb, var(--brand-cocoa) 88%, #000);
	--premium-hero-grad-2: color-mix(in srgb, var(--brand-cocoa) 72%, var(--brand-rose));
	--premium-hero-ring: rgba(255, 255, 255, 0.09);
	--premium-hero-border: rgba(255, 255, 255, 0.16);
	--premium-hero-text: rgba(255, 255, 255, 0.76);

	--premium-soft-hover: color-mix(in srgb, var(--bs-primary) 10%, transparent);
	--premium-soft-hover-strong: color-mix(in srgb, var(--bs-primary) 16%, transparent);

	--premium-btn-outline-border: color-mix(in srgb, var(--bs-primary) 40%, transparent);
	--premium-btn-outline-bg: var(--premium-surface);
	--premium-btn-outline-hover-bg: color-mix(in srgb, var(--bs-primary) 12%, transparent);

	--premium-table-stripe: rgba(24, 20, 15, 0.024);
	--premium-table-hover: color-mix(in srgb, var(--bs-primary) 7%, transparent);
	--premium-table-divider: rgba(24, 20, 15, 0.09);

	--premium-body-grad-1: color-mix(in srgb, var(--bs-primary) 18%, transparent);
	--premium-body-grad-2: color-mix(in srgb, var(--brand-rose) 14%, transparent);

	--premium-radius: 14px;
	--premium-radius-lg: 22px;

	/* Optional accent gradient tokens used by some premium components */
	--premium-hero-accent-1: color-mix(in srgb, var(--bs-primary) 88%, #ffffff);
	--premium-hero-accent-2: color-mix(in srgb, var(--bs-primary) 70%, var(--brand-rose));
	--premium-hero-accent-3: color-mix(in srgb, var(--brand-cocoa) 86%, #000);

	--premium-hero-glass-shadow: 0 26px 70px rgba(24, 20, 15, 0.18);
	--premium-button-shadow: 0 16px 40px color-mix(in srgb, var(--bs-primary) 22%, transparent);
}

[data-bs-theme="dark"] {
	/* Dark: cocoa base with champagne highlights */
	--brand-champagne: #ddb678;
	--brand-champagne-2: #f0d09d;
	--brand-cocoa: #0b0a08;
	--brand-rose: #c9828b;

	--bs-primary: var(--brand-champagne);
	--bs-secondary: #a8b0bb;
	--bs-success: #34d399;
	--bs-info: #2dd4bf;
	--bs-warning: #f59e0b;
	--bs-danger: #f87171;

	--bs-body-bg: #0d0b09;
	--bs-body-color: #f1eee7;
	--bs-secondary-color: rgba(241, 238, 231, 0.68);
	--bs-link-color: color-mix(in srgb, var(--bs-primary) 88%, #ffffff);
	--bs-link-hover-color: color-mix(in srgb, var(--bs-primary) 90%, #ffffff);

	--bs-border-color: rgba(241, 238, 231, 0.18);

	--premium-bg: var(--bs-body-bg);
	--premium-surface: #14110e;
	--premium-surface-muted: #110e0c;
	--premium-border: var(--bs-border-color);

	--premium-shadow-sm: 0 14px 28px rgba(0, 0, 0, 0.55);
	--premium-shadow: 0 30px 70px rgba(0, 0, 0, 0.62);
	--premium-glow: 0 20px 52px color-mix(in srgb, var(--bs-primary) 18%, transparent);

	--premium-navbar-bg: rgba(10, 8, 6, 0.78);
	--premium-navbar-border: rgba(241, 238, 231, 0.14);

	--premium-hero-grad-1: rgba(12, 10, 8, 0.96);
	--premium-hero-grad-2: color-mix(in srgb, #1a1410 74%, var(--brand-rose));
	--premium-hero-ring: rgba(255, 255, 255, 0.05);
	--premium-hero-border: rgba(241, 238, 231, 0.14);
	--premium-hero-text: rgba(241, 238, 231, 0.74);

	--premium-soft-hover: color-mix(in srgb, var(--bs-primary) 16%, transparent);
	--premium-soft-hover-strong: color-mix(in srgb, var(--bs-primary) 24%, transparent);

	--premium-btn-outline-border: color-mix(in srgb, var(--bs-primary) 42%, transparent);
	--premium-btn-outline-bg: color-mix(in srgb, var(--premium-surface) 92%, var(--bs-body-bg));
	--premium-btn-outline-hover-bg: color-mix(in srgb, var(--bs-primary) 18%, transparent);

	--premium-table-stripe: rgba(241, 238, 231, 0.04);
	--premium-table-hover: color-mix(in srgb, var(--bs-primary) 10%, transparent);
	--premium-table-divider: rgba(241, 238, 231, 0.12);

	--premium-body-grad-1: color-mix(in srgb, var(--bs-primary) 16%, transparent);
	--premium-body-grad-2: color-mix(in srgb, var(--brand-rose) 12%, transparent);

	--premium-hero-accent-1: color-mix(in srgb, var(--bs-primary) 92%, #ffffff);
	--premium-hero-accent-2: color-mix(in srgb, var(--bs-primary) 62%, var(--brand-rose));
	--premium-hero-accent-3: rgba(12, 10, 8, 1);

	--premium-hero-glass-shadow: 0 30px 84px rgba(0, 0, 0, 0.62);
	--premium-button-shadow: 0 18px 52px color-mix(in srgb, var(--bs-primary) 16%, transparent);
}

/* Links: subtle premium underline */
a {
	text-decoration-color: color-mix(in srgb, var(--bs-link-color) 36%, transparent);
	text-underline-offset: 0.18em;
}
a:hover {
	text-decoration-color: color-mix(in srgb, var(--bs-link-hover-color) 56%, transparent);
}

/* Buttons: refined gradient + focus ring in brand tone */
.btn-primary {
	background: linear-gradient(
		135deg,
		color-mix(in srgb, var(--bs-primary) 92%, #fff),
		color-mix(in srgb, var(--bs-primary) 62%, var(--brand-rose, #b8747b))
	);
	border-color: transparent;
	box-shadow: var(--premium-glow);
}
.btn-primary:focus-visible {
	box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--bs-primary) 24%, transparent), var(--premium-glow);
}
.btn-outline-primary {
	border-color: var(--premium-btn-outline-border);
}
.btn-outline-primary:hover,
.btn-outline-primary:focus {
	border-color: color-mix(in srgb, var(--bs-primary) 72%, transparent);
}

/* Cards: slightly warmer borders */
.card {
	border-color: color-mix(in srgb, var(--premium-border) 70%, var(--bs-primary));
}

/* Forms: brand-tinted focus treatment */
.form-control:focus,
.form-select:focus {
	border-color: color-mix(in srgb, var(--bs-primary) 70%, #ffffff);
	box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--bs-primary) 18%, transparent);
}
[data-bs-theme="dark"] .form-control::placeholder,
[data-bs-theme="dark"] .form-select::placeholder {
	color: rgba(241, 238, 231, 0.5);
}

/* Alerts: premium-soft surfaces without changing layout */
.alert {
	border-color: color-mix(in srgb, var(--premium-border) 70%, var(--bs-primary));
	background: color-mix(in srgb, var(--premium-surface-muted) 72%, var(--premium-surface));
}
.alert-primary {
	border-color: color-mix(in srgb, var(--bs-primary) 42%, var(--premium-border));
	background: color-mix(in srgb, var(--bs-primary) 10%, var(--premium-surface));
	color: var(--bs-body-color);
}
.alert-success {
	border-color: color-mix(in srgb, var(--bs-success) 38%, var(--premium-border));
	background: color-mix(in srgb, var(--bs-success) 10%, var(--premium-surface));
	color: var(--bs-body-color);
}
.alert-warning {
	border-color: color-mix(in srgb, var(--bs-warning) 40%, var(--premium-border));
	background: color-mix(in srgb, var(--bs-warning) 12%, var(--premium-surface));
	color: var(--bs-body-color);
}
.alert-danger {
	border-color: color-mix(in srgb, var(--bs-danger) 34%, var(--premium-border));
	background: color-mix(in srgb, var(--bs-danger) 9%, var(--premium-surface));
	color: var(--bs-body-color);
}

/* Badges: slightly more "metallic" for primary */
.badge.text-bg-primary,
.badge.bg-primary {
	background: linear-gradient(
		135deg,
		color-mix(in srgb, var(--bs-primary) 92%, #fff),
		color-mix(in srgb, var(--bs-primary) 62%, var(--brand-rose, #b8747b))
	) !important;
	box-shadow: var(--premium-glow);
}

/* Navbar polish: active link hint */
.navbar .nav-link.active {
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--bs-primary) 22%, transparent) inset;
}

/* Section accents helper (opt-in) */
.section-accent {
	background:
		radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--bs-primary) 16%, transparent), transparent 55%),
		radial-gradient(circle at 82% 70%, color-mix(in srgb, var(--brand-rose, #b8747b) 12%, transparent), transparent 60%),
		transparent;
}
.section-accent .card {
	background: color-mix(in srgb, var(--premium-surface) 92%, var(--premium-surface-muted));
}