/**
 * Store Credit FIFO — storefront styles.
 * Concept: "the wallet" — a premium dark prepaid-card experience that sits as a
 * set of dark islands on the (usually light) shop theme. Brand-anchored: pulls
 * the store's Elementor accent/typography with safe fallbacks, so it feels
 * native. Scoped entirely under .scfifo-ui so nothing leaks into the theme.
 */

.scfifo-ui {
	--scf-accent: var(--e-global-color-secondary, #daa174);
	--scf-accent-2: #ecc6a0;
	--scf-accent-ink: #2a1a0b;
	--scf-surface: #232120;
	--scf-surface-2: #2c2926;
	--scf-surface-3: #38332f;
	--scf-card-text: #f3ece4;
	--scf-card-dim: #b6a99c;
	--scf-line: rgba(218, 161, 116, 0.16);
	--scf-line-strong: rgba(218, 161, 116, 0.36);
	--scf-page-text: #2a2622;
	--scf-page-dim: #7a7268;
	--scf-radius: 18px;
	--scf-radius-sm: 12px;
	--scf-radius-pill: 999px;
	--scf-shadow: 0 18px 48px -20px rgba(20, 12, 4, 0.55);
	--scf-shadow-card: 0 28px 64px -26px rgba(20, 12, 4, 0.7);
	--scf-font: "Jost", "Segoe UI", system-ui, -apple-system, sans-serif;
	--scf-ok: #7fb98a;
	--scf-warn: #e6b15c;

	font-family: var(--scf-font);
	color: var(--scf-page-text);
	box-sizing: border-box;
	margin: 1.5rem 0;
	-webkit-font-smoothing: antialiased;
}
.scfifo-ui *,
.scfifo-ui *::before,
.scfifo-ui *::after {
	box-sizing: border-box;
}

/* ---------- Buttons ---------- */
.scfifo-ui .scfifo-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	padding: 0.72em 1.25em;
	border-radius: var(--scf-radius-pill);
	border: 1px solid transparent !important;
	font: 600 0.98rem/1 var(--scf-font);
	letter-spacing: 0.01em;
	text-decoration: none !important;
	cursor: pointer;
	white-space: nowrap;
	transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.scfifo-ui .scfifo-btn .scfifo-icon {
	width: 1.15em;
	height: 1.15em;
}
.scfifo-ui .scfifo-btn--primary {
	background: var(--scf-accent) !important;
	color: var(--scf-accent-ink) !important;
	box-shadow: 0 12px 26px -12px rgba(218, 161, 116, 0.7);
}
.scfifo-ui .scfifo-btn--primary:hover,
.scfifo-ui .scfifo-btn--primary:focus-visible {
	background: var(--scf-accent-2) !important;
	color: var(--scf-accent-ink) !important;
	transform: translateY(-2px);
	box-shadow: 0 18px 34px -12px rgba(218, 161, 116, 0.6);
}
.scfifo-ui .scfifo-btn--ghost,
.scfifo-ui .scfifo-btn--outline {
	background: transparent !important;
	color: var(--scf-accent) !important;
	border-color: var(--scf-line-strong) !important;
}
.scfifo-ui .scfifo-btn--ghost:hover,
.scfifo-ui .scfifo-btn--ghost:focus-visible,
.scfifo-ui .scfifo-btn--outline:hover,
.scfifo-ui .scfifo-btn--outline:focus-visible {
	background: rgba(218, 161, 116, 0.12) !important;
	border-color: var(--scf-accent) !important;
	transform: translateY(-2px);
}

/* ---------- The wallet card ---------- */
.scfifo-card--wallet {
	position: relative;
	overflow: hidden;
	max-width: 30rem;
	padding: clamp(1.4rem, 4vw, 2.1rem);
	border: 1px solid var(--scf-line-strong);
	border-radius: var(--scf-radius);
	color: var(--scf-card-text);
	background:
		radial-gradient(120% 130% at 100% 0%, rgba(218, 161, 116, 0.16), transparent 55%),
		linear-gradient(158deg, #2c2825 0%, #211e1b 58%, #191715 100%);
	box-shadow: var(--scf-shadow-card);
}
.scfifo-card--hero {
	max-width: 34rem;
}
.scfifo-card__glow {
	position: absolute;
	inset-block-start: -45%;
	inset-inline-end: -25%;
	width: 65%;
	height: 130%;
	background: radial-gradient(circle, rgba(218, 161, 116, 0.4), transparent 62%);
	filter: blur(8px);
	pointer-events: none;
}
.scfifo-card__head {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.4rem;
}
.scfifo-card__brand {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--scf-accent);
}
.scfifo-card__chip {
	position: relative;
	width: 38px;
	height: 28px;
	border-radius: 7px;
	background: linear-gradient(135deg, #f0d2a3, #bd803c);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18);
}
.scfifo-card__chip::before,
.scfifo-card__chip::after {
	content: "";
	position: absolute;
	inset-inline: 6px;
	height: 1px;
	background: rgba(0, 0, 0, 0.22);
}
.scfifo-card__chip::before {
	inset-block-start: 10px;
}
.scfifo-card__chip::after {
	inset-block-start: 17px;
}
.scfifo-card__label {
	position: relative;
	margin: 0 0 0.35rem;
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--scf-card-dim);
}
.scfifo-card__balances {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.8rem;
}
.scfifo-card__balance {
	display: flex;
	flex-direction: column;
}
.scfifo-card__amount {
	font-size: clamp(2.4rem, 7vw, 3.4rem);
	font-weight: 600;
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: var(--scf-accent);
	font-variant-numeric: tabular-nums;
}
.scfifo-card--hero .scfifo-card__amount {
	font-size: clamp(2.8rem, 9vw, 4.2rem);
}
.scfifo-card__amount--muted {
	color: var(--scf-card-dim);
	opacity: 0.6;
}
.scfifo-card__type {
	margin-top: 0.2rem;
	font-size: 0.92rem;
	color: var(--scf-card-dim);
}
.scfifo-card__lead {
	position: relative;
	margin: 0 0 1rem;
	font-size: 1.18rem;
	line-height: 1.35;
	color: var(--scf-card-text);
}
.scfifo-card__locked {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	margin-bottom: 1.1rem;
	padding: 0.6em 0.9em;
	border-radius: var(--scf-radius-sm);
	background: rgba(0, 0, 0, 0.22);
	border: 1px solid var(--scf-line);
	color: var(--scf-card-dim);
	font-size: 0.92rem;
}
.scfifo-card__locked .scfifo-icon {
	color: var(--scf-accent);
}
.scfifo-card__hint {
	position: relative;
	margin: 0.6rem 0 0;
	color: var(--scf-card-dim);
	font-size: 0.95rem;
}
.scfifo-card__actions {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
	margin-top: 1.5rem;
}

/* ---------- Sections ---------- */
.scfifo-section {
	margin: 1.5rem 0;
}
.scfifo-section__head {
	margin-bottom: 1.3rem;
}
.scfifo-section__title {
	margin: 0 0 0.3rem;
	font-size: clamp(1.4rem, 3.4vw, 1.9rem);
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--scf-page-text);
}
.scfifo-section__sub {
	margin: 0;
	max-width: 46ch;
	color: var(--scf-page-dim);
	font-size: 1rem;
	line-height: 1.5;
}

/* ---------- Product card grids (packs + redeem) ---------- */
.scfifo-ui .scfifo-cards {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 1.4rem;
	margin: 0 0 0.5rem !important;
	padding: 0 !important;
	list-style: none !important;
	width: 100%;
}
.scfifo-ui .scfifo-cards::before,
.scfifo-ui .scfifo-cards::after {
	content: none !important;
}
.scfifo-ui .scfifo-cards .product {
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	clear: none !important;
}

.scfifo-ui .scfifo-pack,
.scfifo-ui .scfifo-redeem {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: 1.1rem;
	border: 1px solid var(--scf-line);
	border-radius: var(--scf-radius);
	background: linear-gradient(160deg, var(--scf-surface-2), var(--scf-surface));
	color: var(--scf-card-text);
	box-shadow: var(--scf-shadow);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.scfifo-ui .scfifo-pack:hover,
.scfifo-ui .scfifo-redeem:hover {
	transform: translateY(-5px);
	border-color: var(--scf-line-strong);
	box-shadow: 0 30px 60px -28px rgba(20, 12, 4, 0.8);
}
.scfifo-ui .scfifo-pack__body,
.scfifo-ui .scfifo-redeem__body {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	text-decoration: none !important;
	color: inherit !important;
}
.scfifo-pack__media img,
.scfifo-redeem__media img {
	width: 100%;
	height: 150px;
	object-fit: cover;
	border-radius: var(--scf-radius-sm);
	display: block;
	margin-bottom: 0.35rem;
}
.scfifo-pack__grant {
	font-size: 1.85rem;
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.01em;
	color: var(--scf-accent);
	font-variant-numeric: tabular-nums;
}
.scfifo-ui .scfifo-pack__name,
.scfifo-ui .scfifo-redeem__name {
	margin: 0;
	font-size: 1.02rem;
	font-weight: 500;
	color: var(--scf-card-text);
}
.scfifo-pack__bonus {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	align-self: flex-start;
	padding: 0.28em 0.7em;
	border-radius: var(--scf-radius-pill);
	background: rgba(218, 161, 116, 0.14);
	color: var(--scf-accent-2);
	font-size: 0.82rem;
	font-weight: 500;
}
.scfifo-ui .scfifo-pack__price {
	color: var(--scf-card-dim);
	font-size: 1rem;
}
.scfifo-ui .scfifo-pack__price .amount,
.scfifo-ui .scfifo-pack__price bdi {
	color: var(--scf-card-text);
}
.scfifo-ui .scfifo-cost,
.scfifo-redeem__cost {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	align-self: flex-start;
	padding: 0.35em 0.8em;
	border-radius: var(--scf-radius-pill);
	background: rgba(218, 161, 116, 0.14);
	border: 1px solid var(--scf-line-strong);
	color: var(--scf-accent-2);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
.scfifo-ui .scfifo-pack .scfifo-addform,
.scfifo-ui .scfifo-redeem .scfifo-addform {
	margin: auto 0 0;
	padding: 0;
	width: 100%;
}
.scfifo-ui .scfifo-addform .scfifo-btn {
	width: 100%;
	border: 0;
	cursor: pointer;
	font: 600 0.98rem/1 var(--scf-font);
}

/* ---------- How it works (steps + FAQ) ---------- */
.scfifo-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
	margin: 0 0 1.8rem;
	padding: 0;
	list-style: none;
}
.scfifo-step {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	padding: 1.3rem 1.2rem 1.2rem;
	border: 1px solid var(--scf-line);
	border-radius: var(--scf-radius);
	background: linear-gradient(160deg, var(--scf-surface-2), var(--scf-surface));
	color: var(--scf-card-text);
	box-shadow: var(--scf-shadow);
}
.scfifo-step__num {
	position: absolute;
	inset-block-start: 0.9rem;
	inset-inline-end: 1rem;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1;
	color: rgba(218, 161, 116, 0.22);
}
.scfifo-step__icon {
	display: inline-flex;
	width: 46px;
	height: 46px;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	background: rgba(218, 161, 116, 0.14);
	color: var(--scf-accent);
}
.scfifo-step__title {
	font-size: 1.08rem;
	font-weight: 600;
}
.scfifo-step__text {
	color: var(--scf-card-dim);
	font-size: 0.95rem;
	line-height: 1.45;
}

.scfifo-faq {
	margin: 0;
	border-top: 1px solid rgba(42, 38, 34, 0.12);
}
.scfifo-faq__q {
	margin: 0;
	padding: 1rem 0 0.35rem;
	font-weight: 600;
	font-size: 1.05rem;
	color: var(--scf-page-text);
	display: flex;
	gap: 0.55em;
}
.scfifo-faq__q::before {
	content: "";
	flex: 0 0 auto;
	width: 0.55em;
	height: 0.55em;
	margin-top: 0.45em;
	border-radius: 2px;
	background: var(--scf-accent);
	transform: rotate(45deg);
}
.scfifo-faq__a {
	margin: 0 0 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid rgba(42, 38, 34, 0.12);
	color: var(--scf-page-dim);
	line-height: 1.55;
}

/* ---------- Account panels (lots + history) ---------- */
.scfifo-account {
	display: flex;
	flex-direction: column;
	gap: 1.6rem;
	max-width: 760px;
}
.scfifo-panel {
	padding: 1.3rem 1.4rem;
	border: 1px solid var(--scf-line);
	border-radius: var(--scf-radius);
	background: linear-gradient(160deg, var(--scf-surface-2), var(--scf-surface));
	color: var(--scf-card-text);
	box-shadow: var(--scf-shadow);
}
.scfifo-panel__title {
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin: 0 0 1rem;
	font-size: 1.12rem;
	font-weight: 600;
	color: var(--scf-card-text);
}
.scfifo-panel__title .scfifo-icon {
	color: var(--scf-accent);
}
.scfifo-empty {
	margin: 0;
	color: var(--scf-card-dim);
}
/* Robust against theme table styles: explicit transparent bg + cream text so
   the dark panel always shows readable text (the previous shop_table classes
   let the theme paint these white -> invisible cream text). */
.scfifo-ui table.scfifo-table {
	width: 100% !important;
	margin: 0 !important;
	border: 0 !important;
	border-collapse: collapse !important;
	background: transparent !important;
	color: var(--scf-card-text) !important;
	font-size: 0.95rem;
}
.scfifo-ui table.scfifo-table caption {
	color: var(--scf-card-dim);
}
.scfifo-ui table.scfifo-table thead th,
.scfifo-ui table.scfifo-table thead td {
	text-align: start;
	padding: 0 0.6rem 0.6rem;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--scf-accent) !important;
	background: transparent !important;
	border-bottom: 1px solid var(--scf-line-strong);
}
.scfifo-ui table.scfifo-table tbody td,
.scfifo-ui table.scfifo-table tbody th {
	padding: 0.7rem 0.6rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.07);
	border-top: 0;
	background: transparent !important;
	color: var(--scf-card-text) !important;
	vertical-align: middle;
}
.scfifo-ui table.scfifo-table tbody tr:last-child td {
	border-bottom: 0;
}
.scfifo-ui table.scfifo-table tbody tr:hover td {
	background: rgba(218, 161, 116, 0.06) !important;
}
.scfifo-amount {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}
.scfifo-amount--in {
	color: var(--scf-ok);
}
.scfifo-amount--out {
	color: var(--scf-card-dim);
}

/* ---------- Chips ---------- */
.scfifo-chip {
	display: inline-block;
	padding: 0.2em 0.7em;
	border-radius: var(--scf-radius-pill);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1.4;
}
.scfifo-chip--in {
	background: rgba(127, 185, 138, 0.16);
	color: var(--scf-ok);
}
.scfifo-chip--out {
	background: rgba(255, 255, 255, 0.08);
	color: var(--scf-card-dim);
}
.scfifo-chip--neutral {
	background: rgba(218, 161, 116, 0.14);
	color: var(--scf-accent-2);
}
.scfifo-chip--warn {
	background: rgba(230, 177, 92, 0.18);
	color: var(--scf-warn);
}
.scfifo-expiring td {
	color: var(--scf-warn);
}

/* ---------- Cart info (checkout/cart) ---------- */
.scfifo-cart-info {
	margin: 1rem 0;
	padding: 0.9rem 1.1rem;
	border-radius: var(--scf-radius-sm);
	border: 1px solid var(--scf-line-strong);
	background: rgba(218, 161, 116, 0.08);
	color: var(--scf-page-text);
}

/* ---------- Entrance motion ---------- */
@keyframes scfifo-rise {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
.scfifo-card--wallet,
.scfifo-step,
.scfifo-ui .scfifo-cards .product,
.scfifo-panel {
	animation: scfifo-rise 0.5s both;
}
.scfifo-ui .scfifo-cards .product:nth-child(2) {
	animation-delay: 0.06s;
}
.scfifo-ui .scfifo-cards .product:nth-child(3) {
	animation-delay: 0.12s;
}
.scfifo-ui .scfifo-cards .product:nth-child(4) {
	animation-delay: 0.18s;
}
.scfifo-ui .scfifo-cards .product:nth-child(n + 5) {
	animation-delay: 0.24s;
}
.scfifo-step:nth-child(2) {
	animation-delay: 0.08s;
}
.scfifo-step:nth-child(3) {
	animation-delay: 0.16s;
}

/* ---------- Focus + a11y ---------- */
.scfifo-ui a:focus-visible,
.scfifo-ui .scfifo-btn:focus-visible {
	outline: 2px solid var(--scf-accent);
	outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
	.scfifo-ui *,
	.scfifo-ui *::before,
	.scfifo-ui *::after {
		animation: none !important;
		transition: none !important;
	}
	.scfifo-ui .scfifo-btn:hover,
	.scfifo-ui .scfifo-pack:hover,
	.scfifo-ui .scfifo-redeem:hover {
		transform: none;
	}
}
@media (forced-colors: active) {
	.scfifo-card--wallet,
	.scfifo-pack,
	.scfifo-redeem,
	.scfifo-step,
	.scfifo-panel {
		border: 1px solid CanvasText;
	}
	.scfifo-ui .scfifo-btn {
		border: 1px solid CanvasText !important;
	}
}

/* ---------- Product-page "what this voucher includes" block (renders on the
   single product page, outside .scfifo-ui, brand-anchored). ---------- */
.scfifo-includes {
	margin: 1.1rem 0 1.4rem;
	padding: 1rem 1.2rem;
	border: 1px solid rgba(218, 161, 116, 0.35);
	border-radius: 14px;
	background: rgba(218, 161, 116, 0.06);
	font-family: "Jost", "Segoe UI", system-ui, sans-serif;
}
.scfifo-includes__title {
	display: block;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	font-size: 0.78rem;
	color: var(--e-global-color-secondary, #b97e3c);
	margin-bottom: 0.6rem;
}
.scfifo-includes__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}
.scfifo-includes__item {
	display: flex;
	align-items: center;
	gap: 0.55em;
	color: var(--e-global-color-accent, #2a2622);
	font-size: 1rem;
}
.scfifo-includes__item strong {
	color: var(--e-global-color-secondary, #b97e3c);
}
.scfifo-includes__item .scfifo-icon {
	flex: 0 0 auto;
	color: var(--e-global-color-secondary, #daa174);
}

/* ---------- Recharge shipping-type chooser (inside the dark pack card) ---------- */
.scfifo-ui .scfifo-fs-choice {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin: 0.2rem 0 0.6rem;
}
.scfifo-ui .scfifo-fs-choice__label {
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--scf-card-dim);
}
.scfifo-ui .scfifo-fs-choice__opt {
	display: flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.45em 0.6em;
	border: 1px solid var(--scf-line);
	border-radius: 10px;
	cursor: pointer;
	color: var(--scf-card-text);
	font-size: 0.92rem;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}
.scfifo-ui .scfifo-fs-choice__opt:hover {
	border-color: var(--scf-line-strong);
}
.scfifo-ui .scfifo-fs-choice__opt:has(input:checked) {
	border-color: var(--scf-accent);
	background: rgba(218, 161, 116, 0.1);
}
.scfifo-ui .scfifo-fs-choice__name {
	flex: 1 1 auto;
}
.scfifo-ui .scfifo-fs-choice__extra {
	font-weight: 600;
	color: var(--scf-accent);
}
.scfifo-ui .scfifo-fs-choice__extra--free {
	color: var(--scf-card-dim);
	font-weight: 500;
}
.scfifo-ui .scfifo-add.loading {
	opacity: 0.7;
	pointer-events: none;
}
.scfifo-add-msg {
	display: block;
	margin-top: 0.4rem;
	font-size: 0.85rem;
	color: var(--scf-ok, #2e7d32);
}
.scfifo-add-msg--error {
	color: #c0392b;
}

/* ---------- Shipping-voucher chips on the wallet card ---------- */
.scfifo-card__vouchers {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-top: 0.9rem;
}
.scfifo-voucher-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.3em 0.7em;
	border-radius: var(--scf-radius-pill);
	background: rgba(218, 161, 116, 0.12);
	border: 1px solid var(--scf-line);
	color: var(--scf-card-text);
	font-size: 0.82rem;
	line-height: 1.3;
}
.scfifo-voucher-chip .scfifo-icon {
	color: var(--scf-accent);
}
.scfifo-voucher-chip__n {
	font-weight: 700;
	color: var(--scf-accent);
	font-variant-numeric: tabular-nums;
}
.scfifo-voucher-chip__t {
	color: var(--scf-card-dim);
}

/* Tighten the recharge shipping chooser so pack cards stay compact. */
.scfifo-ui .scfifo-fs-choice {
	gap: 0.3rem;
	margin: 0.1rem 0 0.5rem;
}
.scfifo-ui .scfifo-fs-choice__opt {
	padding: 0.35em 0.55em;
	font-size: 0.86rem;
	border-radius: 8px;
}
.scfifo-ui .scfifo-fs-choice__label {
	font-size: 0.72rem;
}

/* ============================================================
   v3.0.2 — adversarial visual-review polish
   ============================================================ */

/* The account hero card spans the SAME width as the panels below it, so the
   My-Credit page reads as one coherent full-width column (a stranded narrow card
   over wide panels was the "margins everywhere" misalignment). */
.scfifo-card--hero {
	max-width: none;
}

/* Differentiate the shipping-voucher chips from the pill action buttons that
   sit just below them on the wallet card (chips get a soft rounded-rect, not a
   full pill, so they no longer read as disabled buttons). */
.scfifo-voucher-chip {
	border-radius: 9px;
}
.scfifo-card__vouchers {
	padding-bottom: 0.15rem;
}

/* The decorative step number was almost invisible. */
.scfifo-step__num {
	color: rgba(218, 161, 116, 0.3);
}

/* ---------- Mobile (≤600px) ---------- */
@media (max-width: 600px) {
	/* Restore comfortable touch targets on the recharge shipping chooser
	   (the desktop "compact" override dropped them below ~44px). */
	.scfifo-ui .scfifo-fs-choice__opt {
		padding: 0.6em 0.7em;
		font-size: 0.9rem;
		min-height: 44px;
	}

	/* Tighter balance column gap + full-width, equal CTA buttons. */
	.scfifo-card__balances {
		gap: 0.4rem 1rem;
	}
	.scfifo-card__actions .scfifo-btn {
		flex: 1 1 0;
		min-width: 46%;
	}

	/* Keep the ghost step number clear of the title. */
	.scfifo-step__num {
		font-size: 1.8rem;
	}
	.scfifo-step__title {
		padding-inline-end: 2.4rem;
	}

	/* Account tables become stacked "cards": a 5-column history table is
	   unreadable at 390px, so each row is a labelled block (labels come from the
	   td[data-label] attributes). */
	.scfifo-ui table.scfifo-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
		border: 0;
	}
	.scfifo-ui table.scfifo-table,
	.scfifo-ui table.scfifo-table tbody,
	.scfifo-ui table.scfifo-table tr,
	.scfifo-ui table.scfifo-table tbody td,
	.scfifo-ui table.scfifo-table tbody th {
		display: block;
		width: 100% !important;
	}
	.scfifo-ui table.scfifo-table tbody tr {
		margin-bottom: 0.7rem;
		padding: 0.35rem 0.8rem;
		border: 1px solid var(--scf-line);
		border-radius: var(--scf-radius-sm);
		background: rgba(0, 0, 0, 0.14);
	}
	.scfifo-ui table.scfifo-table tbody td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		padding: 0.4rem 0 !important;
		border: 0 !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
		text-align: end;
	}
	.scfifo-ui table.scfifo-table tbody tr td:last-child {
		border-bottom: 0 !important;
	}
	.scfifo-ui table.scfifo-table tbody td::before {
		content: attr(data-label);
		flex: 0 0 auto;
		font-size: 0.7rem;
		font-weight: 600;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--scf-accent);
		text-align: start;
	}
	/* Hide an empty Note cell so it does not render a bare label row. */
	.scfifo-ui table.scfifo-table tbody td:empty {
		display: none;
	}
}

/* ============================================================
   v3.1 — Recharge "wallet lounge": one cohesive dark surface
   (chosen direction: "oscuro premium cohesivo").
   ============================================================ */

/* One centered container + consistent vertical rhythm for every scfifo block
   (fixes the "margins everywhere" complaint). */
.scfifo-ui {
	max-width: 1080px;
	margin-inline: auto;
	margin-block: 0;
	padding-inline: clamp(1rem, 4vw, 1.6rem);
	overflow-x: clip;
}
.scfifo-ui.scfifo-balance-cta   { margin-block: clamp(1.5rem, 4vw, 2.5rem) 0; }
.scfifo-ui.scfifo-section--recharge { margin-block: clamp(1rem, 3vw, 1.6rem) 0; }
.scfifo-ui.scfifo-how           { margin-block: clamp(2rem, 4vw, 3.25rem) clamp(2rem, 4vw, 3rem); }
.scfifo-ui.scfifo-account       { margin-block: clamp(1.5rem, 4vw, 2.5rem); }

/* ---------- Hero monedero as a full-width letterhead (no more stranded card) ---------- */
.scfifo-balance-cta .scfifo-card--wallet { max-width: none; }
.scfifo-card--row {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-areas: "head head" "main actions";
	align-items: center;
	column-gap: clamp(1.5rem, 5vw, 3.5rem);
	row-gap: 1.3rem;
}
.scfifo-card--row .scfifo-card__head    { grid-area: head; margin-bottom: 0; padding-bottom: 1rem; border-bottom: 1px solid var(--scf-line); }
.scfifo-card--row .scfifo-card__main    { grid-area: main; min-width: 0; }
.scfifo-card--row .scfifo-card__actions { grid-area: actions; margin-top: 0; align-self: center; }
.scfifo-card--row .scfifo-card__label   { margin-top: 0; }
.scfifo-card--row .scfifo-card__vouchers { margin-top: 0.8rem; }
@media (max-width: 640px) {
	.scfifo-card--row {
		grid-template-columns: 1fr;
		grid-template-areas: "head" "main" "actions";
	}
	.scfifo-card--row .scfifo-card__actions { justify-content: stretch; }
	.scfifo-card--row .scfifo-card__actions .scfifo-btn { flex: 1 1 0; }
}

/* ---------- The lounge ---------- */
.scfifo-section--recharge .scfifo-lounge {
	position: relative;
	overflow: hidden;
	padding: clamp(1.4rem, 4vw, 2.6rem);
	border: 1px solid var(--scf-line-strong);
	border-radius: var(--scf-radius);
	color: var(--scf-card-text);
	background:
		radial-gradient(120% 130% at 0% 0%, rgba(218, 161, 116, 0.12), transparent 55%),
		linear-gradient(162deg, #2c2825 0%, #211e1b 60%, #1a1817 100%);
	box-shadow: var(--scf-shadow-card);
}
.scfifo-lounge__glow {
	position: absolute;
	inset-block-start: -45%;
	inset-inline-end: -18%;
	width: 52%;
	height: 130%;
	background: radial-gradient(circle, rgba(218, 161, 116, 0.18), transparent 62%);
	filter: blur(12px);
	pointer-events: none;
}
.scfifo-section--recharge .scfifo-section__head {
	position: relative;
	margin-bottom: clamp(1.3rem, 3vw, 2rem);
}
.scfifo-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	margin-bottom: 0.55rem;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--scf-accent);
}
.scfifo-eyebrow .scfifo-icon { color: var(--scf-accent); }
.scfifo-section--recharge .scfifo-section__title { margin: 0 0 0.35rem; color: var(--scf-card-text); }
.scfifo-section--recharge .scfifo-section__sub   { margin: 0; color: var(--scf-card-dim); max-width: 52ch; }

/* ---------- Tiers (inset cells sharing the lounge surface) ---------- */
.scfifo-ui .scfifo-tier-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(195px, 1fr));
	gap: clamp(0.8rem, 2vw, 1.25rem);
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	width: 100%;
}
.scfifo-ui .scfifo-tier-grid::before,
.scfifo-ui .scfifo-tier-grid::after { content: none !important; }
.scfifo-ui .scfifo-tier {
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
	margin: 0 !important;
	padding: 1.15rem 1.15rem 1.05rem !important;
	width: auto !important;
	float: none !important;
	border: 1px solid var(--scf-line);
	border-radius: var(--scf-radius-sm);
	background: linear-gradient(165deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.015));
	transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.scfifo-ui .scfifo-tier:hover {
	transform: translateY(-4px);
	border-color: var(--scf-line-strong);
	background: linear-gradient(165deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
	box-shadow: 0 26px 46px -30px rgba(0, 0, 0, 0.75);
}
.scfifo-ui .scfifo-tier__body {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	text-decoration: none !important;
	color: inherit !important;
}
.scfifo-tier__grant {
	font-size: clamp(1.55rem, 4vw, 2rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--scf-accent);
	font-variant-numeric: tabular-nums;
}
.scfifo-tier__rule {
	display: block;
	width: 2.2rem;
	height: 2px;
	margin: 0.15rem 0 0.1rem;
	border-radius: 2px;
	background: var(--scf-line-strong);
}
.scfifo-ui .scfifo-tier__name {
	margin: 0;
	font-size: 0.92rem;
	font-weight: 500;
	line-height: 1.35;
	color: var(--scf-card-text);
}
.scfifo-tier__bonus {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	align-self: flex-start;
	margin-top: 0.1rem;
	padding: 0.26em 0.7em;
	border-radius: var(--scf-radius-pill);
	background: rgba(218, 161, 116, 0.14);
	color: var(--scf-accent-2);
	font-size: 0.8rem;
	font-weight: 500;
}
.scfifo-tier__bonus .scfifo-icon { color: var(--scf-accent); }
.scfifo-tier__foot {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;
	padding-top: 0.85rem;
	border-top: 1px solid var(--scf-line);
}
.scfifo-ui .scfifo-tier__price {
	color: var(--scf-card-text);
	font-weight: 600;
	font-size: 1.02rem;
	font-variant-numeric: tabular-nums;
}
.scfifo-ui .scfifo-tier__price .amount,
.scfifo-ui .scfifo-tier__price bdi { color: var(--scf-card-text); }
.scfifo-ui .scfifo-tier__foot .scfifo-btn,
.scfifo-ui .scfifo-extra__foot .scfifo-btn {
	padding: 0.55em 1.05em;
	font-size: 0.9rem;
}

/* ---------- "Shipments only" add-ons strip ---------- */
.scfifo-extras { position: relative; margin-top: clamp(1.4rem, 3vw, 2.1rem); }
.scfifo-extras__title {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin: 0 0 1rem;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--scf-card-dim);
}
.scfifo-extras__title::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: var(--scf-line);
}
.scfifo-ui .scfifo-extra-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: clamp(0.8rem, 2vw, 1.1rem);
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.scfifo-ui .scfifo-extra-grid::before,
.scfifo-ui .scfifo-extra-grid::after { content: none !important; }
.scfifo-ui .scfifo-extra {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	margin: 0 !important;
	padding: 1rem 1.1rem !important;
	width: auto !important;
	float: none !important;
	border: 1px solid var(--scf-line);
	border-radius: var(--scf-radius-sm);
	background: rgba(255, 255, 255, 0.03);
}
.scfifo-ui .scfifo-extra__body {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	text-decoration: none !important;
	color: inherit !important;
}
.scfifo-extra__icon {
	display: inline-flex;
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	border-radius: 11px;
	background: rgba(218, 161, 116, 0.14);
	color: var(--scf-accent);
}
.scfifo-extra__copy { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.scfifo-ui .scfifo-extra__name { margin: 0; font-size: 0.98rem; font-weight: 500; color: var(--scf-card-text); }
.scfifo-extra__bonus { font-size: 0.85rem; color: var(--scf-card-dim); }
.scfifo-extra__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;
	padding-top: 0.65rem;
	border-top: 1px solid var(--scf-line);
}

/* ---------- Compact shipping chooser (pills, inside a tier/extra) ---------- */
.scfifo-ui .scfifo-tier .scfifo-fs-choice,
.scfifo-ui .scfifo-extra .scfifo-fs-choice {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0;
}
.scfifo-ui .scfifo-tier .scfifo-fs-choice__label,
.scfifo-ui .scfifo-extra .scfifo-fs-choice__label {
	flex: 1 0 100%;
	margin-bottom: 0.1rem;
	font-size: 0.66rem;
	letter-spacing: 0.08em;
}
.scfifo-ui .scfifo-tier .scfifo-fs-choice__opt,
.scfifo-ui .scfifo-extra .scfifo-fs-choice__opt {
	flex: 0 1 auto;
	gap: 0.35em;
	padding: 0.3em 0.6em;
	border-radius: var(--scf-radius-pill);
	font-size: 0.76rem;
	min-height: 0;
}
.scfifo-ui .scfifo-tier .scfifo-fs-choice__opt input[type="radio"],
.scfifo-ui .scfifo-extra .scfifo-fs-choice__opt input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}
.scfifo-ui .scfifo-tier .scfifo-fs-choice__opt:focus-within,
.scfifo-ui .scfifo-extra .scfifo-fs-choice__opt:focus-within {
	outline: 2px solid var(--scf-accent);
	outline-offset: 1px;
}
.scfifo-ui .scfifo-tier .scfifo-fs-choice__name,
.scfifo-ui .scfifo-extra .scfifo-fs-choice__name { flex: 0 1 auto; }
.scfifo-ui .scfifo-tier .scfifo-fs-choice__extra,
.scfifo-ui .scfifo-extra .scfifo-fs-choice__extra { font-size: 0.72rem; }

/* On mobile the lounge stacks naturally; keep tiers comfy. */
@media (max-width: 600px) {
	.scfifo-ui .scfifo-tier-grid { grid-template-columns: 1fr; }
	.scfifo-ui .scfifo-tier__foot,
	.scfifo-ui .scfifo-extra__foot { flex-wrap: wrap; }
}

/* ============================================================
   v3.1.1 — shared shipping bar + granular spend + QA polish
   ============================================================ */

/* ---------- One shared shipping chooser for the whole lounge ---------- */
.scfifo-fs-bar {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
	margin: 0 0 clamp(1.2rem, 3vw, 1.8rem);
	padding: 0.7rem 0.95rem;
	border: 1px solid var(--scf-line);
	border-radius: var(--scf-radius-sm);
	background: rgba(0, 0, 0, 0.2);
}
.scfifo-fs-bar__label {
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--scf-card-dim);
}
.scfifo-fs-bar__opts { display: flex; flex-wrap: wrap; gap: 0.4rem; flex: 1 1 auto; min-width: 0; }
.scfifo-ui .scfifo-fs-opt {
	position: relative;
	display: inline-flex;
	/* Override the theme/WooCommerce `label { width:100% }` that would otherwise
	   stretch each pill to a full-width row. */
	width: auto !important;
	flex: 0 0 auto;
	margin: 0;
	align-items: center;
	gap: 0.45em;
	padding: 0.4em 0.85em;
	border: 1px solid var(--scf-line);
	border-radius: var(--scf-radius-pill);
	cursor: pointer;
	color: var(--scf-card-text);
	font-size: 0.85rem;
	background: rgba(255, 255, 255, 0.025);
	transition: border-color 0.15s ease, background-color 0.15s ease;
}
.scfifo-ui .scfifo-fs-opt:hover { border-color: var(--scf-line-strong); }
.scfifo-ui .scfifo-fs-opt:has(input:checked) {
	border-color: var(--scf-accent);
	background: rgba(218, 161, 116, 0.16);
}
.scfifo-ui .scfifo-fs-opt input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}
.scfifo-ui .scfifo-fs-opt:focus-within { outline: 2px solid var(--scf-accent); outline-offset: 1px; }
.scfifo-fs-opt__name { font-weight: 500; }
.scfifo-fs-opt__extra { color: var(--scf-accent); font-weight: 600; font-size: 0.82rem; }
.scfifo-fs-opt__extra--free { color: var(--scf-card-dim); font-weight: 500; }
.scfifo-fs-opt__per { color: var(--scf-card-dim); font-weight: 400; }

/* ---------- Spend lounge (same surface as recharge) ---------- */
.scfifo-section--spend .scfifo-lounge {
	position: relative;
	overflow: hidden;
	padding: clamp(1.4rem, 4vw, 2.6rem);
	border: 1px solid var(--scf-line-strong);
	border-radius: var(--scf-radius);
	color: var(--scf-card-text);
	background:
		radial-gradient(120% 130% at 0% 0%, rgba(218, 161, 116, 0.12), transparent 55%),
		linear-gradient(162deg, #2c2825 0%, #211e1b 60%, #1a1817 100%);
	box-shadow: var(--scf-shadow-card);
}
.scfifo-section--spend .scfifo-section__head { position: relative; margin-bottom: clamp(1.3rem, 3vw, 2rem); }
.scfifo-section--spend .scfifo-section__title { margin: 0 0 0.35rem; color: var(--scf-card-text); }
.scfifo-section--spend .scfifo-section__sub   { margin: 0; color: var(--scf-card-dim); max-width: 52ch; }

.scfifo-ui .scfifo-redeem-grid {
	display: grid !important;
	/* Cap each redeem card so a store with one or two redeemable products shows a
	   tidy centered card row, not a single panel stretched the full lounge width. */
	grid-template-columns: repeat(auto-fit, minmax(280px, 430px));
	justify-content: center;
	gap: clamp(0.8rem, 2vw, 1.15rem);
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	width: 100%;
}
.scfifo-ui .scfifo-redeem-grid::before,
.scfifo-ui .scfifo-redeem-grid::after { content: none !important; }
.scfifo-ui .scfifo-redeem {
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	margin: 0 !important;
	padding: 1.15rem 1.2rem !important;
	width: auto !important;
	float: none !important;
	border: 1px solid var(--scf-line);
	border-radius: var(--scf-radius-sm);
	background: linear-gradient(165deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.015));
}
.scfifo-redeem__head { display: flex; flex-direction: column; gap: 0.5rem; }
.scfifo-ui .scfifo-redeem__name {
	margin: 0;
	font-size: 1.02rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--scf-card-text);
	text-decoration: none !important;
}
.scfifo-ui .scfifo-redeem__name:hover { color: var(--scf-accent); }
.scfifo-redeem__unit {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	align-self: flex-start;
	padding: 0.3em 0.75em;
	border-radius: var(--scf-radius-pill);
	background: rgba(218, 161, 116, 0.14);
	border: 1px solid var(--scf-line-strong);
	color: var(--scf-accent-2);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	font-size: 0.9rem;
}
.scfifo-redeem__unit .scfifo-icon { color: var(--scf-accent); }
.scfifo-redeem__per { color: var(--scf-card-dim); font-weight: 500; font-size: 0.78rem; }
.scfifo-redeem__buy {
	margin-top: auto;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.6rem;
	padding-top: 0.9rem;
	border-top: 1px solid var(--scf-line);
}
.scfifo-redeem__total {
	color: var(--scf-card-text);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	font-size: 0.95rem;
	margin-inline-start: auto;
}
.scfifo-ui .scfifo-redeem__buy .scfifo-btn { padding: 0.55em 1.05em; font-size: 0.9rem; }

/* ---------- Quantity stepper ---------- */
.scfifo-qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--scf-line-strong);
	border-radius: var(--scf-radius-pill);
	overflow: hidden;
	background: rgba(0, 0, 0, 0.22);
}
.scfifo-qty__btn {
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--scf-card-text);
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.scfifo-qty__btn:hover { background: rgba(218, 161, 116, 0.18); color: var(--scf-accent); }
.scfifo-qty__input {
	width: 2.6rem;
	height: 2rem;
	border: 0;
	border-inline: 1px solid var(--scf-line);
	background: transparent;
	color: var(--scf-card-text);
	text-align: center;
	font: 600 0.95rem/1 var(--scf-font);
	-moz-appearance: textfield;
	appearance: textfield;
}
.scfifo-qty__input::-webkit-outer-spin-button,
.scfifo-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* ---------- QA polish ---------- */
/* Voucher chip text contrast on the dark hero; never let a chip's label wrap to
   a ragged multi-line block — chips wrap as whole units instead. */
.scfifo-voucher-chip { background: rgba(218, 161, 116, 0.2); border-color: rgba(218, 161, 116, 0.42); white-space: nowrap; }
.scfifo-voucher-chip__n,
.scfifo-voucher-chip__t { white-space: nowrap; }
.scfifo-voucher-chip__t { color: var(--scf-card-text); }
/* Optical nudge so the eyebrow icon sits on the cap line. */
.scfifo-eyebrow .scfifo-icon { margin-top: 0.5px; }

@media (max-width: 600px) {
	.scfifo-ui .scfifo-redeem-grid { grid-template-columns: 1fr; }
	.scfifo-fs-bar { gap: 0.4rem 0.6rem; }
}
