/* Generic numbered product purchase fields */
.wc-block-add-to-cart-with-options:has(.ggn-topup-form),
form.cart:has(.ggn-topup-form) {
	display: grid;
	gap: var(--wp--preset--spacing--30);
}

.ggn-topup-form {
	display: contents;
}

.ggn-topup-form__step {
	display: grid;
	gap: var(--wp--preset--spacing--10);
}

.ggn-topup-form__heading {
	align-items: center;
	display: flex;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	gap: var(--wp--preset--spacing--20);
}

.ggn-topup-form__number {
	align-items: center;
	background-color: var(--wp--preset--color--accent);
	border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--on-accent);
	display: inline-flex;
	height: var(--wp--custom--control--size);
	justify-content: center;
	width: var(--wp--custom--control--size);
}

.ggn-topup-form__input {
	background-color: var(--wp--preset--color--surface-2);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--control);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--body);
	min-height: var(--wp--custom--control--size);
	padding: var(--wp--preset--spacing--card);
}

.ggn-topup-form__input[aria-invalid="true"] {
	border-color: var(--wp--preset--color--bad);
}

.ggn-topup-form__input:focus-visible,
.ggn-topup-form__check-label:focus-within {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.ggn-topup-form__help-toggle {
	background: none;
	border: 0;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--body);
	justify-self: start;
	min-height: var(--wp--custom--control--size);
	padding: 0;
	text-decoration: underline;
}

.ggn-topup-form__help,
.ggn-topup-form__field-error,
.ggn-topup .ggn-topup__delivery {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--meta);
	margin: 0;
}

.ggn-topup-form__field-error {
	color: var(--wp--preset--color--bad);
	margin: 0;
}

.ggn-topup-form__check-label {
	align-items: center;
	background-color: var(--wp--preset--color--surface-2);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--control);
	display: flex;
	gap: var(--wp--preset--spacing--20);
	min-height: var(--wp--custom--control--size);
	padding: var(--wp--preset--spacing--card);
}

.ggn-topup-form__check-label:has(input:checked) {
	background-color: var(--wp--preset--color--accent-soft);
	border-color: var(--wp--preset--color--accent);
}

.ggn-topup-form__check-label input {
	accent-color: var(--wp--preset--color--accent);
	margin-top: 0;
}

.ggn-topup-form__error {
	color: var(--wp--preset--color--bad);
	font-size: var(--wp--preset--font-size--meta);
	margin: 0;
}

