/*
 * LatValley Button System — Option C Hybrid
 * Primary: white text for readable contrast, gold accent on hover/icons.
 * Secondary: forest-green outline.
 * Ghost: warm-gold outline with deep-green text.
 */

.lv-btn {
	box-sizing: border-box;
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	gap: var(--lv-space-2, 8px);
	padding: var(--lv-button-padding-y, 14px) var(--lv-button-padding-x, 32px);
	border: 1px solid transparent;
	border-radius: var(--lv-radius-sm, 4px);
	background: transparent;
	font: 700 14px/1.4 var(--lv-font-body, 'Roboto', sans-serif);
	letter-spacing: 0.08em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--lv-transition-fast, 0.25s ease), border-color var(--lv-transition-fast, 0.25s ease), color var(--lv-transition-fast, 0.25s ease), transform var(--lv-transition-fast, 0.25s ease), box-shadow var(--lv-transition-fast, 0.25s ease);
}

.lv-btn:hover,
.lv-btn:focus-visible {
	transform: translateY(-1px);
}

.lv-btn--primary {
	border-color: var(--lv-green-mid, #4E7A22);
	background: linear-gradient(135deg, var(--lv-green-light, #9ABF5C) 0%, var(--lv-green-mid, #4E7A22) 100%);
	color: var(--lv-surface, #FFFFFF);
	box-shadow: var(--lv-shadow-sm, 0 2px 8px rgba(30, 45, 15, 0.06));
}

.lv-btn--primary:hover,
.lv-btn--primary:focus-visible {
	border-color: var(--lv-green-core, #3d4f22);
	background: linear-gradient(135deg, var(--lv-green-mid, #4E7A22) 0%, var(--lv-green-core, #3d4f22) 100%);
	color: var(--lv-gold-light, #E0BB5A);
	box-shadow: var(--lv-shadow-md, 0 4px 24px rgba(30, 45, 15, 0.10));
}

.lv-btn--secondary {
	border: 2px solid var(--lv-green-mid, #4E7A22);
	background: transparent;
	color: var(--lv-green-mid, #4E7A22);
}

.lv-btn--secondary:hover,
.lv-btn--secondary:focus-visible {
	background: var(--lv-green-mid, #4E7A22);
	color: var(--lv-bg, #FBF8F2);
}

.lv-btn--ghost {
	border: 2px solid var(--lv-gold-core, #C9A030);
	background: transparent;
	color: var(--lv-green-deep, #2E3A1A);
}

.lv-btn--ghost:hover,
.lv-btn--ghost:focus-visible {
	background: var(--lv-gold-core, #C9A030);
	color: var(--lv-green-deep, #2E3A1A);
}

.lv-btn--sm {
	min-height: 44px;
	padding: 10px 16px;
	font-size: 13px;
}

.lv-btn--md {
	min-height: 48px;
	padding: 12px 24px;
}

.lv-btn--lg {
	min-height: 52px;
	padding: 14px 32px;
	font-size: 15px;
}

.lv-btn:focus-visible {
	outline: 3px solid var(--lv-gold-light, #E0BB5A);
	outline-offset: 3px;
}

.lv-btn:disabled,
.lv-btn[aria-disabled="true"] {
	opacity: 0.65;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.lv-btn {
		transition: none;
	}

	.lv-btn:hover,
	.lv-btn:focus-visible {
		transform: none;
	}
}