/**
 * GlobalAudio Suite: Core CSS
 * Variables, tipografía y utilidades comunes.
 */

:root {
	--ga-primary: #1976d2;
	--ga-primary-hover: #125699;
	--ga-primary-light: #e3f2fd;
	--ga-accent: #f57c00;
	--ga-sale: #d32f2f;
	--ga-sale-bg: #ffebee;
	--ga-new: #00897b;
	--ga-new-bg: #e0f2f1;
	--ga-stock-out: #757575;
	--ga-stock-out-bg: #eeeeee;
	--ga-text-main: #1f2937;
	--ga-text-muted: #6b7280;
	--ga-text-light: #9ca3af;
	--ga-bg-card: #ffffff;
	--ga-border: #e5e7eb;
	--ga-border-hover: #cbd5e1;
	--ga-radius-sm: 6px;
	--ga-radius: 10px;
	--ga-radius-lg: 14px;
	--ga-radius-pill: 9999px;
	--ga-transition: all 0.24s cubic-bezier(0.16, 1, 0.3, 1);
	--ga-shadow-subtle: 0 1px 3px rgba(0, 0, 0, 0.04);
	--ga-shadow-hover: 0 10px 25px -5px rgba(0, 0, 0, 0.08), 0 8px 10px -6px rgba(0, 0, 0, 0.04);
	--ga-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Base Buttons */
.ga-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-family: var(--ga-font-sans);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	border: 1px solid transparent;
	transition: var(--ga-transition);
	white-space: nowrap;
	user-select: none;
	outline: none;
	box-sizing: border-box;
}

.ga-btn--pill {
	border-radius: var(--ga-radius-pill);
	padding: 8px 18px;
	background-color: var(--ga-primary);
	color: #ffffff;
}
.ga-btn--pill:hover {
	background-color: var(--ga-primary-hover);
	color: #ffffff;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(25, 118, 210, 0.25);
}

.ga-btn--standard {
	border-radius: var(--ga-radius-sm);
	padding: 9px 16px;
	background-color: var(--ga-primary);
	color: #ffffff;
}

.ga-btn--minimal {
	border-radius: var(--ga-radius-pill);
	padding: 7px 14px;
	background-color: transparent;
	border-color: var(--ga-border);
	color: var(--ga-text-main);
}
.ga-btn--minimal:hover {
	border-color: var(--ga-primary);
	color: var(--ga-primary);
	background-color: var(--ga-primary-light);
}

.ga-btn--options {
	background-color: #f3f4f6;
	color: var(--ga-text-main);
	border: 1px solid var(--ga-border);
}
.ga-btn--options:hover {
	background-color: var(--ga-primary-light);
	border-color: var(--ga-primary);
	color: var(--ga-primary);
}

/* Loading Spinner on Button */
.ga-btn__spinner {
	display: none;
	width: 14px;
	height: 14px;
	border: 2px solid rgba(255, 255, 255, 0.3);
	border-top-color: #ffffff;
	border-radius: 50%;
	animation: ga-spin 0.6s linear infinite;
}
.ga-btn.loading .ga-btn__spinner {
	display: inline-block;
}
.ga-btn.loading .ga-btn__text {
	opacity: 0.6;
}

@keyframes ga-spin {
	to { transform: rotate(360deg); }
}

/* Badges */
.ga-card__badges {
	position: absolute;
	top: 10px;
	left: 10px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 5px;
	z-index: 4;
	pointer-events: none;
}

.ga-badge {
	font-family: var(--ga-font-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	padding: 3px 8px;
	border-radius: var(--ga-radius-pill);
	line-height: 1.2;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.ga-badge--sale {
	background-color: var(--ga-sale);
	color: #ffffff;
}

.ga-badge--new {
	background-color: var(--ga-new);
	color: #ffffff;
}

.ga-badge--outofstock {
	background-color: var(--ga-stock-out);
	color: #ffffff;
}

.ga-badge--backorder {
	background-color: var(--ga-accent);
	color: #ffffff;
}

.ga-badge--featured {
	background-color: var(--ga-primary);
	color: #ffffff;
}

