/* =========================================================
   Fooppers Variation Grid — self-contained "fresh grocery"
   theme. Everything is scoped to .fvg-wrap and hard-reset so
   the active WordPress theme cannot override colors, buttons,
   inputs or spacing.
   ========================================================= */

.fvg-wrap {
	--fvg-green: #1f9d57;
	--fvg-green-dark: #157a42;
	--fvg-green-soft: #e8f6ee;
	--fvg-bg: #ffffff;
	--fvg-panel: #f7faf8;
	--fvg-ink: #1d2a22;
	--fvg-muted: #6b7c72;
	--fvg-line: #e2ebe5;
	--fvg-strike: #9aa8a0;
	--fvg-radius: 14px;
	--fvg-shadow: 0 4px 16px rgba(31, 157, 87, 0.10);

	font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
	color: var(--fvg-ink) !important;
	margin: 1.25rem 0 2rem !important;
	box-sizing: border-box !important;
	line-height: 1.4 !important;
}

.fvg-wrap *,
.fvg-wrap *::before,
.fvg-wrap *::after {
	box-sizing: border-box !important;
}

.fvg-heading {
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: 1.3rem !important;
	font-weight: 700 !important;
	color: var(--fvg-green-dark) !important;
	margin: 0 0 0.9rem !important;
	padding: 0 !important;
	letter-spacing: -0.01em !important;
	line-height: 1.2 !important;
}

/* ---------- Grid: always 2-up, compact ---------- */
.fvg-grid {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 0.6rem !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
@media (min-width: 720px) {
	.fvg-grid { grid-template-columns: repeat(3, 1fr) !important; gap: 0.75rem !important; }
}

/* ---------- Card ---------- */
.fvg-card {
	background: var(--fvg-bg) !important;
	border: 1.5px solid var(--fvg-line) !important;
	border-radius: var(--fvg-radius) !important;
	overflow: hidden !important;
	display: flex !important;
	flex-direction: column !important;
	margin: 0 !important;
	padding: 0 !important;
	transition: border-color .2s ease, box-shadow .2s ease !important;
}
.fvg-card.is-active {
	border-color: var(--fvg-green) !important;
	box-shadow: var(--fvg-shadow) !important;
}
.fvg-card--oos { opacity: .5 !important; }

.fvg-card__media {
	aspect-ratio: 1 / 1 !important;
	background: var(--fvg-panel) !important;
	overflow: hidden !important;
	margin: 0 !important;
}
.fvg-card__media img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	max-width: none !important;
}

.fvg-card__body {
	padding: 0.55rem 0.6rem 0.65rem !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0.3rem !important;
	flex: 1 !important;
}
.fvg-card__label {
	font-weight: 700 !important;
	font-size: 0.82rem !important;
	line-height: 1.2 !important;
	color: var(--fvg-ink) !important;
	margin: 0 !important;
}
.fvg-card__price {
	font-size: 0.8rem !important;
	color: var(--fvg-green-dark) !important;
	font-weight: 700 !important;
	margin: 0 !important;
	line-height: 1.3 !important;
}
.fvg-card__price del,
.fvg-card__price del .amount {
	color: var(--fvg-strike) !important;
	font-weight: 500 !important;
	text-decoration: line-through !important;
	margin-right: 4px !important;
	font-size: 0.74rem !important;
}
.fvg-card__price ins { text-decoration: none !important; background: transparent !important; }

/* ---------- Stepper (override theme button/input styles) ---------- */
.fvg-stepper {
	margin-top: auto !important;
	display: grid !important;
	grid-template-columns: 32px 1fr 32px !important;
	align-items: stretch !important;
	border: 1.5px solid var(--fvg-green) !important;
	border-radius: 9px !important;
	overflow: hidden !important;
	background: #fff !important;
	height: 38px !important;
}
.fvg-step {
	-webkit-appearance: none !important;
	appearance: none !important;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	background: var(--fvg-green-soft) !important;
	color: var(--fvg-green-dark) !important;
	font-size: 1.15rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	cursor: pointer !important;
	padding: 0 !important;
	margin: 0 !important;
	height: 100% !important;
	min-height: 0 !important;
	width: 100% !important;
	text-shadow: none !important;
	transition: background .15s ease, color .15s ease !important;
	touch-action: manipulation !important;
}
.fvg-step:hover { background: var(--fvg-green) !important; color: #fff !important; }
.fvg-step:active { background: var(--fvg-green-dark) !important; color: #fff !important; }
.fvg-qty {
	-webkit-appearance: none !important;
	-moz-appearance: textfield !important;
	appearance: textfield !important;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	text-align: center !important;
	font-size: 0.9rem !important;
	font-weight: 700 !important;
	color: var(--fvg-ink) !important;
	width: 100% !important;
	height: 100% !important;
	background: #fff !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	min-height: 0 !important;
}
.fvg-qty::-webkit-outer-spin-button,
.fvg-qty::-webkit-inner-spin-button { -webkit-appearance: none !important; margin: 0 !important; }
.fvg-qty:focus { background: var(--fvg-green-soft) !important; }

.fvg-oos {
	margin-top: auto !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	color: var(--fvg-muted) !important;
	text-transform: uppercase !important;
	letter-spacing: .04em !important;
}

/* ---------- Sticky add bar ---------- */
.fvg-bar {
	position: sticky !important;
	bottom: 8px !important;
	z-index: 20 !important;
	margin-top: 1rem !important;
	background: rgba(255, 255, 255, 0.97) !important;
	backdrop-filter: blur(8px) !important;
	border: 1.5px solid var(--fvg-line) !important;
	border-radius: var(--fvg-radius) !important;
	padding: 0.65rem 0.75rem !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 0.6rem !important;
	box-shadow: var(--fvg-shadow) !important;
}
.fvg-bar__summary { font-size: 0.78rem !important; color: var(--fvg-muted) !important; margin: 0 !important; }
.fvg-bar__count { color: var(--fvg-ink) !important; font-weight: 700 !important; }
.fvg-bar__total { color: var(--fvg-green-dark) !important; font-weight: 700 !important; }
.fvg-bar__total del { display: none !important; }

.fvg-add {
	-webkit-appearance: none !important;
	appearance: none !important;
	border: 0 !important;
	outline: 0 !important;
	background: var(--fvg-green) !important;
	color: #fff !important;
	font-family: 'DM Sans', sans-serif !important;
	font-weight: 700 !important;
	font-size: 0.88rem !important;
	padding: 0.75rem 1.1rem !important;
	border-radius: 10px !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	text-shadow: none !important;
	box-shadow: none !important;
	transition: background .18s ease, opacity .18s ease !important;
	touch-action: manipulation !important;
}
.fvg-add:hover:not(:disabled) { background: var(--fvg-green-dark) !important; }
.fvg-add:active:not(:disabled) { background: var(--fvg-green-dark) !important; }
.fvg-add:disabled { opacity: .4 !important; cursor: not-allowed !important; }
.fvg-add.is-loading { pointer-events: none !important; opacity: .8 !important; }

@media (max-width: 420px) {
	.fvg-bar { flex-direction: column !important; align-items: stretch !important; text-align: center !important; }
	.fvg-add { width: 100% !important; }
}

/* ---------- Toast ---------- */
.fvg-toast {
	position: fixed !important;
	left: 50% !important;
	bottom: 70px !important;
	transform: translateX(-50%) translateY(20px) !important;
	background: var(--fvg-green-dark) !important;
	color: #fff !important;
	font-family: 'DM Sans', sans-serif !important;
	font-weight: 600 !important;
	font-size: 0.88rem !important;
	padding: 0.7rem 1.2rem !important;
	border-radius: 999px !important;
	box-shadow: 0 8px 28px rgba(0,0,0,.22) !important;
	opacity: 0 !important;
	pointer-events: none !important;
	transition: opacity .25s ease, transform .25s ease !important;
	z-index: 99999 !important;
}
.fvg-toast.is-show { opacity: 1 !important; transform: translateX(-50%) translateY(0) !important; }
.fvg-toast.is-error { background: #b13a2e !important; }
