:root {
	/* Premium burgundy & gold (replaces pink-dominant palette) */
	--color-primary: #7a1f3d;
	--color-primary-dark: #5e1830;
	--color-primary-rgb: 122, 31, 61;
	--color-primary-soft: #f3e8ec;
	--color-accent: #b8860b;
	--color-accent-light: #f7f3ee;
	--color-background: #ffffff;
	--color-surface: #f7f3ee;
	--color-surface-elevated: #ffffff;
	--color-hero-bg: #f1e6d6;
	--color-text-primary: #333333;
	--color-text-secondary: #4a4a4a;
	--color-text-muted: #888888;
	--color-border: #e8dfd4;
	--color-success: #16a34a;
	--color-error: #ef4444;
	--color-promo: #f1e6d6;
	--color-promo-tint: #f7f3ee;
	--color-star: #b8860b;

	--font-heading: "Playfair Display", Georgia, serif;
	--font-script: "Great Vibes", cursive;
	--font-body: "Inter", system-ui, sans-serif;

	--radius-sm: 0.375rem;
	--radius-md: 0.5rem;
	--radius-lg: 0.75rem;
	--radius-xl: 1rem;
	--radius-full: 999px;

	--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
	--shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08);
	--shadow-card: 0 2px 12px rgba(0, 0, 0, 0.06);
	--shadow-primary: 0 4px 12px rgba(var(--color-primary-rgb), 0.28);
	--shadow-primary-sm: 0 4px 10px rgba(var(--color-primary-rgb), 0.22);

	--transition: 0.25s ease;
	--header-height: 64px;
	--tab-bar-height: 64px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.6;
	color: var(--color-text-primary);
	background-color: var(--color-background);
	-webkit-font-smoothing: antialiased;
}

/*
 * Visibility utilities — breakpoint 1024px (see inc/responsive.php + assets/css/responsive.css).
 * Prefer: giftaura_view_mobile_open() / giftaura_view_desktop_open() in PHP templates.
 */
.mobile-only { display: flex !important; }
.mobile-only-block { display: block !important; }

/* Flex chrome: use .mobile-only (not -block) on nav bars */
.ga-mobile-tabbar.mobile-only-block {
	display: flex !important;
	flex-direction: row;
}
.desktop-only { display: none !important; }
.desktop-only-block { display: none !important; }

@media (min-width: 1024px) {
	.mobile-only,
	.mobile-only-block { display: none !important; }
	.desktop-only { display: flex !important; }
	.desktop-only-block { display: block !important; }
}

.container {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 16px;
}

@media (min-width: 768px) {
	.container { padding: 0 32px; }
}

/* Icons & Buttons */
.ga-icon-btn {
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	color: inherit;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

.ga-badge {
	position: absolute;
	top: -4px;
	right: -4px;
	background: var(--color-primary);
	color: #fff;
	font-size: 10px;
	border-radius: 50%;
	width: 16px;
	height: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	border: 1px solid #fff;
}

/* Typography */
h1, h2, h3, h4 { font-family: var(--font-heading); margin: 0; }
a { text-decoration: none; color: inherit; }
