/* Checkout shell */
.ggn-checkout-page {
	font-family: var(--wp--preset--font-family--body);
	padding-left: var(--wp--preset--spacing--gutter);
	padding-right: var(--wp--preset--spacing--gutter);
	padding-bottom: var(--wp--preset--spacing--section);
}

.ggn-checkout-page .wc-block-components-title,
.ggn-checkout-page .wc-block-checkout__contact-fields .wc-block-components-title,
.ggn-checkout-page .wc-block-checkout__payment-method .wc-block-components-title {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
}

.ggn-checkout-page .wc-block-checkout__main,
.ggn-checkout-page .wc-block-checkout__sidebar {
	padding-top: var(--wp--preset--spacing--section);
}

.ggn-checkout-page .wc-block-checkout__sidebar {
	position: sticky;
	top: calc(var(--wp--custom--control--size) + var(--wp--preset--spacing--card));
}

.ggn-checkout-page .wc-block-components-sidebar-layout {
	gap: var(--wp--preset--spacing--section);
}

.ggn-checkout-page .wc-block-checkout__main > * + *,
.ggn-checkout-page .wc-block-checkout__sidebar > * + * {
	margin-block-start: var(--wp--preset--spacing--section);
}

/* Fields */
.ggn-checkout-page .wc-block-components-form .wc-block-components-text-input input:not([type="checkbox"]):not([type="radio"]),
.ggn-checkout-page .wc-block-components-combobox .wc-block-components-combobox-control input,
.ggn-checkout-page select,
.ggn-checkout-page .wc-block-components-combobox .components-combobox-control__input,
.ggn-checkout-page .wc-block-components-textarea {
	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);
	min-height: var(--wp--custom--control--size);
	font-size: 16px;
}

.ggn-checkout-page .wc-block-components-text-input input::placeholder,
.ggn-checkout-page .wc-block-components-textarea::placeholder {
	color: var(--wp--preset--color--muted);
	opacity: 1;
}

.ggn-checkout-page .wc-block-components-text-input label,
.ggn-checkout-page .wc-block-components-combobox label,
.ggn-checkout-page .wc-block-components-text-input.is-active label,
.ggn-checkout-page .wc-block-components-checkbox__label {
	color: var(--wp--preset--color--text);
}

.ggn-checkout-page .wc-block-checkout__billing-fields .wc-block-components-address-form__country {
	display: none;
}

.ggn-checkout-page .wc-block-components-form .wc-block-components-text-input input:not([type="checkbox"]):focus,
.ggn-checkout-page .wc-block-components-combobox .wc-block-components-combobox-control input:focus,
.ggn-checkout-page .wc-block-components-textarea:focus {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 1px var(--wp--preset--color--accent);
}

/* Payment methods */
.ggn-checkout-page .wc-block-checkout__payment-method {
	margin-bottom: var(--wp--preset--spacing--card);
	min-height: var(--wp--custom--size--checkout-payment-method-height);
	margin-top: var(--wp--preset--spacing--card);
}

.ggn-checkout-page .wc-block-components-radio-control-accordion-option {
	background-color: var(--wp--preset--color--surface-2);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--control);
	margin-bottom: var(--wp--preset--spacing--card);
	min-height: var(--wp--custom--size--checkout-payment-method-height);
	margin-top: var(--wp--preset--spacing--card);
}

.ggn-checkout-page .wc-block-components-radio-control__option {
	align-items: center;
	display: flex;
	gap: var(--wp--preset--spacing--card);
	min-height: var(--wp--custom--size--checkout-payment-method-height);
	padding: var(--wp--preset--spacing--card);
}

.ggn-checkout-page .wc-block-components-radio-control__input {
	flex: 0 0 auto;
	margin: 0;
}

.ggn-checkout-page .wc-block-components-radio-control-accordion-option--checked {
	background-color: var(--wp--preset--color--accent-soft);
	border-color: var(--wp--preset--color--accent);
}

.ggn-checkout-page .wc-block-checkout__payment-method .wc-block-components-radio-control__option {
	align-items: center;
	color: var(--wp--preset--color--text);
	min-height: var(--wp--custom--size--checkout-payment-method-height);
	padding: var(--wp--preset--spacing--card);
}

.ggn-checkout-page .wc-block-checkout__payment-method .wc-block-components-radio-control__label {
	box-sizing: border-box;
	min-height: var(--wp--custom--size--checkout-payment-method-height);
	padding-left: calc(var(--wp--preset--spacing--30) + 2 * var(--wp--preset--spacing--card));
}

.ggn-checkout-page .wc-block-checkout__payment-method .wc-block-components-radio-control__input {
	top: 50%;
	transform: translateY(-50%);
}

.ggn-checkout-page .wc-block-checkout__payment-method .wc-block-components-radio-control__label {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
}

.ggn-checkout-page .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__label {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
}

.ggn-checkout-page .wc-block-components-radio-control__input:checked {
	border-color: var(--wp--preset--color--accent);
}

/* QR account choices */
fieldset.ggn-qr-accounts {
	border: 0;
	margin: var(--wp--preset--spacing--card) 0 0;
	min-width: 0;
	padding: 0;
}

fieldset.ggn-qr-accounts > .ggn-qr-accounts__legend {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	margin-bottom: var(--wp--preset--spacing--10);
}

fieldset.ggn-qr-accounts > .ggn-qr-accounts__option {
	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);
	color: var(--wp--preset--color--text);
	cursor: pointer;
	display: flex;
	gap: var(--wp--preset--spacing--card);
	margin-top: var(--wp--preset--spacing--10);
	min-height: var(--wp--custom--size--checkout-payment-method-height);
	padding: var(--wp--preset--spacing--card);
}

fieldset.ggn-qr-accounts > .ggn-qr-accounts__option:has(.ggn-qr-accounts__input:checked) {
	background-color: var(--wp--preset--color--accent-soft);
	border-color: var(--wp--preset--color--accent);
}

fieldset.ggn-qr-accounts > .ggn-qr-accounts__option:has(.ggn-qr-accounts__input:focus-visible) {
	box-shadow: 0 0 0 2px var(--wp--preset--color--accent);
}

fieldset.ggn-qr-accounts .ggn-qr-accounts__input {
	flex: 0 0 auto;
	margin: 0;
}

fieldset.ggn-qr-accounts .ggn-qr-accounts__type {
	background-color: var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--muted);
	flex: 0 0 auto;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20);
}

fieldset.ggn-qr-accounts .ggn-qr-accounts__label {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
}

/* Order summary */
.ggn-checkout-page .wc-block-components-sidebar,
.ggn-checkout-page .wc-block-checkout__sidebar .wc-block-components-totals-wrapper {
	background-color: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--card);
}

.ggn-checkout-page .wc-block-checkout__sidebar .wc-block-components-totals-wrapper,
.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-order-summary,
.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-order-summary__content,
.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-order-summary-item,
.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-totals-item {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.ggn-checkout-page .wc-block-checkout__sidebar .wc-block-components-totals-wrapper {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
}

.ggn-checkout-page .wc-block-components-sidebar {
	padding: var(--wp--preset--spacing--card-lg);
}

.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-order-summary {
	margin-top: 0;
}

.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-checkout-order-summary__title {
	margin-top: 0;
	border: 0;
	cursor: default;
	font-size: var(--wp--preset--font-size--h-2);
	pointer-events: none;
}

.ggn-checkout-page .wc-block-components-checkout-order-summary__content {
	display: block !important;
}

.ggn-checkout-page .wc-block-components-checkout-order-summary__title-price,
.ggn-checkout-page .wc-block-components-checkout-order-summary__title-icon {
	display: none;
}

.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-order-summary-item,
.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-totals-item {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-totals-footer-item {
	border-bottom: 0;
}

.ggn-checkout-page .wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-coupon-form-block {
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding-block: var(--wp--preset--spacing--20);
}

.ggn-checkout-page .wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-totals-block {
	border-top: 0;
}

.ggn-checkout-page .wc-block-components-order-summary-item__individual-prices {
	display: none;
}

.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-totals-item,
.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-order-summary-item {
	padding-block: var(--wp--preset--spacing--card);
}

.ggn-checkout-page .wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-subtotal-block .wc-block-components-totals-item {
	padding-bottom: 0;
}

.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-totals-footer-item {
	border-top: 0;
	border-bottom: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	margin-top: 0;
	padding-block: var(--wp--preset--spacing--card) 0;
}

.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-totals-wrapper {
	margin-block: 0;
}

.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.ggn-checkout-page .wc-block-components-sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: var(--wp--preset--font-size--card-title);
}

.ggn-checkout-page .wc-block-components-checkout-order-summary__title {
	padding: 0 0 var(--wp--preset--spacing--card);
}

.ggn-checkout-page .wc-block-components-order-summary-item__individual-price,
.ggn-checkout-page .wc-block-components-order-summary-item__description,
.ggn-checkout-page .wc-block-components-order-summary-item__total-price {
	font-size: var(--wp--preset--font-size--body);
}

.ggn-checkout-page .wc-block-components-order-summary-item__description {
	padding-top: 0;
}

.ggn-checkout-page .wc-block-components-order-summary-item__description .wc-block-components-order-summary-item__individual-price {
	display: none;
}

.ggn-checkout-page .wc-block-components-order-summary-item__description > * + * {
	margin-top: 4px /* spacing-ok: product name to variation detail spacing */;
}

.ggn-checkout-page .wc-block-checkout__guest-checkout,
.ggn-checkout-page .wc-block-checkout__guest-checkout-notice,
.ggn-checkout-page .wc-block-checkout__guest-checkout-notice p,
.ggn-checkout-page .wc-block-checkout__guest-checkout-notice .wc-block-components-notice-banner {
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.5;
}

.ggn-checkout-page .wc-block-components-product-image img {
	background-color: var(--wp--preset--color--surface-2);
	height: var(--wp--custom--size--checkout-product-image);
	object-fit: contain;
	width: var(--wp--custom--size--checkout-product-image);
}

.ggn-checkout-page .wc-block-components-totals-footer-item {
	border-top: 1px solid var(--wp--preset--color--line);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	margin-top: var(--wp--preset--spacing--card);
	padding-block: var(--wp--preset--spacing--card) 0;
}

.ggn-checkout-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.ggn-checkout-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	line-height: normal;
}

/* Checkout action */
.ggn-checkout-page .wc-block-checkout__actions {
	display: flex;
	flex-direction: column;
}

.ggn-checkout-page .wc-block-checkout__actions .wc-block-components-checkout-place-order-button {
	order: 2;
	width: 100%;
}

.ggn-checkout-page .ggn-checkout__cancellation-note {
	display: none;
	margin-left: 0;
	margin-right: 0;
	margin-bottom: 0;
	margin-top: var(--wp--preset--spacing--card);
}

.ggn-checkout-page:has(.wc-block-checkout__main) .ggn-checkout__cancellation-note {
	display: block;
}

.ggn-checkout-page .wc-block-checkout__terms {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--meta);
}

.ggn-checkout-page .wc-block-components-checkbox__input[type="checkbox"] {
	border-color: var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--control);
}

@media (max-width: 781px) {
	.ggn-checkout-page .wc-block-checkout__main,
	.ggn-checkout-page .wc-block-checkout__sidebar {
		padding-top: var(--wp--preset--spacing--section);
	}

	.ggn-checkout-page .wc-block-checkout__sidebar {
		position: static;
		padding-top: var(--wp--preset--spacing--card);
	}

	.ggn-checkout-page .wc-block-components-sidebar {
		padding: var(--wp--preset--spacing--card);
	}

	.ggn-checkout-page .wc-block-components-radio-control__option,
	.ggn-checkout-page .wc-block-components-radio-control-accordion-option {
		min-height: var(--wp--custom--size--checkout-payment-method-height);
	}

	.ggn-checkout-page .wc-block-components-checkout-place-order-button {
		height: var(--wp--custom--button--height);
		min-height: var(--wp--custom--button--height);
	}

	.ggn-checkout-page {
		padding-bottom: calc(var(--wp--preset--spacing--section) + 64px + env(safe-area-inset-bottom)) /* spacing-ok: reserves fixed mobile purchase bar area */;
	}

	.ggn-checkout-page > .wp-block-group:has(.ggn-checkout__cancellation-note) {
		margin-block-start: 0;
	}
}

/* #122: one summary card (no inner WooCommerce border), no empty notices band, note aligned with the form. */
.ggn-checkout-page .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	border: 0;
	border-radius: 0;
	padding: 0;
}

.ggn-checkout-page .wc-block-checkout__sidebar > .wc-block-components-notices:empty,
.ggn-checkout-page .wc-block-checkout__sidebar > .wc-block-components-notices:not(:has(*:not(:empty))) {
	display: none;
}

.ggn-checkout-page .ggn-checkout__cancellation-note {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none;
}

.ggn-checkout-page > .wp-block-group:has(.ggn-checkout__cancellation-note) {
	margin-block-start: var(--wp--preset--spacing--card);
}

.ggn-checkout-page .ggn-checkout__cancellation-note {
	margin-top: 0 !important;
}

/* #125: readable quantity badge and even summary card padding. */
.ggn-checkout-page .wc-block-components-order-summary-item__quantity {
	background-color: var(--wp--preset--color--accent);
	border: 2px solid var(--wp--preset--color--surface);
	color: var(--wp--preset--color--on-accent);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
}

.ggn-checkout-page .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	margin-top: 0;
}

@media (max-width: 781px) {
	.ggn-checkout-page > .wp-block-group:has(.ggn-checkout__cancellation-note) {
		margin-block-start: 0;
	}
}

/* #151: keep the cancellation note one step under the place-order button. */
@media (min-width: 782px) {
	.ggn-checkout-page .wc-block-checkout__actions,
	.ggn-checkout-page .wc-block-checkout.wc-block-components-sidebar-layout {
		margin-bottom: 0;
	}
}

/* On mobile WooCommerce also renders the summary above "Place order"; the always-open summary at the top is the one we keep. */
.wc-block-checkout__actions .checkout-order-summary-block-fill-wrapper {
	display: none;
}
