/**
 * /kassan/ page-level layout.
 *
 * The .sbf scope (wizard.css) handles section/card/button visuals.
 * This file owns:
 *   - page background
 *   - WC float reset
 *   - checkout grid (mobile: order review on top, desktop: review in sidebar)
 */

body.woocommerce-checkout .site-content,
body.woocommerce-cart .site-content,
body.single-product .site-content {
	padding-top: 0;
	padding-bottom: 0;
}

body.woocommerce-checkout form.checkout .col2-set,
body.woocommerce-checkout form.checkout .col-1,
body.woocommerce-checkout form.checkout .col-2 {
	width: 100%;
	float: none;
	max-width: none;
	padding: 0;
}

/* ============ Queue notice (with embedded Gravity Form) ============ */

.sbf .sbf__queue-notice {
	list-style: none;
}

.sbf .sbf__queue-notice .sbf__queue-message {
	display: block;
	font-weight: 500;
	margin-bottom: 1rem;
}

.sbf .sbf__queue-notice .sbf__queue-form {
	margin-top: 1rem;
	opacity: 1;
}

.sbf .sbf__queue-notice .sbf__queue-form .gform_wrapper {
	margin: 0;
}

.sbf .sbf__queue-notice .sbf__queue-form h1,
.sbf .sbf__queue-notice .sbf__queue-form h2,
.sbf .sbf__queue-notice .sbf__queue-form h3,
.sbf .sbf__queue-notice .sbf__queue-form h4,
.sbf .sbf__queue-notice .sbf__queue-form h5,
.sbf .sbf__queue-notice .sbf__queue-form h6,
.sbf .sbf__queue-notice .sbf__queue-form .gform_title {
	color: inherit;
	font-size: 1.0625rem;
	margin: 0 0 0.5rem;
}

.sbf .sbf__queue-notice .sbf__queue-form .gform_description,
.sbf .sbf__queue-notice .sbf__queue-form .gform_required_legend {
	margin: 0 0 0.75rem;
	font-size: 0.9375rem;
}

.sbf .sbf__queue-notice .sbf__queue-form input[type="text"],
.sbf .sbf__queue-notice .sbf__queue-form input[type="email"],
.sbf .sbf__queue-notice .sbf__queue-form input[type="tel"],
.sbf .sbf__queue-notice .sbf__queue-form textarea,
.sbf .sbf__queue-notice .sbf__queue-form select {
	width: 100%;
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--sbf-border, #e0e4e4);
	border-radius: var(--sbf-radius-sm, 5px);
	background: #fff;
	color: var(--sbf-text, #1a2a2a);
}

.sbf .woocommerce-error .sbf__queue-form .gform_button,
.sbf .woocommerce-error .sbf__queue-form button[type="submit"],
.sbf .sbf__queue-notice .sbf__queue-form .gform_button,
.sbf .sbf__queue-notice .sbf__queue-form button[type="submit"] {
	background: var(--sbf-primary, #3e6666);
	color: #fff;
	border: 0;
	border-radius: var(--sbf-radius-sm, 5px);
	padding: 0.7rem 1.25rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	float: none;
	margin: 0;
}

.sbf .woocommerce-error .sbf__queue-form .gform_button:hover,
.sbf .sbf__queue-notice .sbf__queue-form .gform_button:hover {
	background: var(--sbf-primary-dark, #2c4a4a);
	text-decoration: none;
}

/* ============ Cart (full) ============ */

.sbf--cart .sbf__cart-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

/* Mobile: totals first */
.sbf--cart .sbf__cart-col--items {
	order: 2;
}

.sbf--cart .sbf__cart-col--totals {
	order: 1;
}

.sbf--cart .sbf__cart-col {
	display: flex;
	flex-direction: column;
	gap: 0;
	min-width: 0;
}

/* Spacing between proceed-to-checkout button and totals card matches the
   wizard's `.sbf__main` rhythm. */
.sbf--cart .sbf__cart-col--totals .sbf__proceed-to-checkout {
	margin-top: 1.25rem;
}

.sbf--cart .sbf__cart-col-heading,
.sbf--cart-empty .sbf__cart-col-heading {
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--sbf-text, #1a2a2a);
	margin: 0 0 0.5rem;
	padding-left: 0.25rem;
	text-wrap: balance;
}

/* Collapse the pre-form notices wrapper when empty so it doesn't claim
   the parent's flex/grid gap space. */
.sbf__pre-form-notices:not(:has(*:not(:empty))) {
	display: none;
}

@media (min-width: 900px) {
	.sbf--cart .sbf__cart-grid {
		grid-template-columns: minmax(0, 1fr) 360px;
		align-items: start;
	}

	.sbf--cart .sbf__cart-col--items {
		order: 0;
	}

	.sbf--cart .sbf__cart-col--totals {
		order: 0;
		position: sticky;
		top: 1.5rem;
	}
}

/* ============ Single Product ============ */

.sbf--product .sbf__product-wrap {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.sbf--product .sbf__product-breadcrumb,
.sbf--product .woocommerce-breadcrumb {
	font-size: 0.8125rem;
	color: var(--sbf-text-muted, #6b7878);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0;
}

.sbf--product .sbf__product-breadcrumb a,
.sbf--product .woocommerce-breadcrumb a {
	color: inherit;
	text-decoration: none;
}

.sbf--product .sbf__product-breadcrumb a:hover,
.sbf--product .woocommerce-breadcrumb a:hover {
	color: var(--sbf-primary, #3e6666);
}

.sbf--product .sbf__product-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	align-items: start;
}

@media (min-width: 900px) {
	.sbf--product .sbf__product-grid {
		grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
		gap: 2rem;
	}

	.sbf--product .sbf__product-summary-col {
		position: sticky;
		top: 1.5rem;
	}
}

/* Gallery */

.sbf--product .woocommerce-product-gallery {
	background: var(--sbf-card-bg, #fff);
	border-radius: var(--sbf-radius, 5px);
	box-shadow: var(--sbf-shadow, 0 1px 3px rgba(0, 0, 0, 0.04));
	padding: 1.5rem;
	width: 100%;
	float: none;
}

.sbf--product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 0;
}

.sbf--product .woocommerce-product-gallery .woocommerce-product-gallery__image {
	float: none;
	width: 100%;
	margin: 0;
	display: block;
}

.sbf--product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--sbf-radius-sm, 5px);
}

.sbf--product .woocommerce-product-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.5rem;
	list-style: none;
	margin: 0.5rem 0 0;
	padding: 0;
}

.sbf--product .woocommerce-product-gallery .flex-control-thumbs li {
	width: auto;
	float: none;
	margin: 0;
}

.sbf--product .woocommerce-product-gallery .flex-control-thumbs li img {
	width: 100%;
	height: auto;
	border-radius: 4px;
	opacity: 0.7;
	cursor: pointer;
	transition: opacity 0.15s ease;
}

.sbf--product .woocommerce-product-gallery .flex-control-thumbs li img:hover,
.sbf--product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
	opacity: 1;
}

/* Summary card */

.sbf--product .sbf__product-summary {
	padding: 2rem 1.75rem;
}

.sbf--product .sbf__product-summary .product_title {
	font-size: 1.75rem;
	font-weight: 600;
	margin: 0 0 0.5rem;
	color: var(--sbf-text, #1a2a2a);
	text-wrap: balance;
}

.sbf--product .sbf__product-summary .price {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--sbf-primary, #3e6666);
	margin: 0 0 1.25rem;
}

.sbf--product .sbf__product-summary .price del {
	color: var(--sbf-text-muted, #6b7878);
	font-weight: 400;
	margin-right: 0.5rem;
	opacity: 0.8;
}

.sbf--product .sbf__product-summary .price ins {
	background: none;
	text-decoration: none;
}

.sbf--product .sbf__product-summary .woocommerce-product-details__short-description {
	color: var(--sbf-text, #1a2a2a);
	font-size: 0.9375rem;
	line-height: 1.6;
	margin-bottom: 1.5rem;
}

.sbf--product .sbf__product-summary .woocommerce-product-details__short-description p {
	margin: 0 0 0.75rem;
}

.sbf--product .sbf__product-summary .woocommerce-product-details__short-description p:last-child {
	margin-bottom: 0;
}

.sbf--product .sbf__product-summary .stock {
	display: inline-block;
	padding: 0.25rem 0.5rem;
	border-radius: 3px;
	font-size: 0.8125rem;
	font-weight: 500;
	margin: 0 0 1rem;
}

.sbf--product .sbf__product-summary .stock.in-stock {
	color: #0f834d;
	background: rgba(15, 131, 77, 0.08);
}

.sbf--product .sbf__product-summary .stock.out-of-stock {
	color: var(--sbf-error, #b00020);
	background: rgba(176, 0, 32, 0.06);
}

.sbf--product .sbf__product-summary .first-payment-date {
	margin: 0;
}

.sbf--product .sbf__product-summary .first-payment-date:empty {
	display: none;
}

/* Add-to-cart form */

.sbf--product .sbf__product-summary form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: stretch;
	margin: 0 0 1rem;
}

.sbf--product .sbf__product-summary form.cart .quantity {
	display: flex;
	align-items: center;
}

.sbf--product .sbf__product-summary form.cart .quantity input[type="number"] {
	width: 70px;
	padding: 0.65rem 0.5rem;
	border: 1px solid var(--sbf-border, #e0e4e4);
	border-radius: var(--sbf-radius-sm, 5px);
	text-align: center;
	font: inherit;
}

.sbf--product .sbf__product-summary .single_add_to_cart_button,
.sbf--product .sbf__product-summary .single_add_to_cart_button.button {
	flex: 1 1 auto;
	background: var(--sbf-primary, #3e6666);
	color: #fff;
	border: 0;
	border-radius: var(--sbf-radius-sm, 5px);
	padding: 0.85rem 1.5rem;
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	transition: background 0.2s ease;
	text-transform: none;
	text-decoration: none;
}

.sbf--product .sbf__product-summary .single_add_to_cart_button:hover {
	background: var(--sbf-primary-dark, #2c4a4a);
}

.sbf--product .sbf__product-summary .single_add_to_cart_button[disabled] {
	background: var(--sbf-border, #e0e4e4);
	color: var(--sbf-text-muted, #6b7878);
	cursor: not-allowed;
}

/* Variations */

.sbf--product .sbf__product-summary .variations {
	width: 100%;
	border: 0;
	margin: 0 0 1rem;
}

.sbf--product .sbf__product-summary .variations th,
.sbf--product .sbf__product-summary .variations td {
	padding: 0.4rem 0;
	border: 0;
}

.sbf--product .sbf__product-summary .variations th {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--sbf-text-muted, #6b7878);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	white-space: nowrap;
	padding-right: 1rem;
}

.sbf--product .sbf__product-summary .variations select {
	width: 100%;
	padding: 0.55rem 0.75rem;
	border: 1px solid var(--sbf-border, #e0e4e4);
	border-radius: var(--sbf-radius-sm, 5px);
	background: #fff;
	font: inherit;
}

.sbf--product .sbf__product-summary .reset_variations {
	display: inline-block;
	font-size: 0.8125rem;
	color: var(--sbf-text-muted, #6b7878);
	margin-top: 0.25rem;
}

/* Meta + sharing */

.sbf--product .sbf__product-summary .product_meta {
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid var(--sbf-border, #e0e4e4);
	font-size: 0.8125rem;
	color: var(--sbf-text-muted, #6b7878);
}

.sbf--product .sbf__product-summary .product_meta > span {
	display: block;
	margin-bottom: 0.25rem;
}

.sbf--product .sbf__product-summary .product_meta a {
	color: inherit;
	text-decoration: none;
}

.sbf--product .sbf__product-summary .product_meta a:hover {
	color: var(--sbf-primary, #3e6666);
}

/* Tabs */

.sbf--product .sbf__product-tabs {
	margin-top: 2rem;
}

.sbf--product .woocommerce-tabs ul.tabs {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	border-bottom: 1px solid var(--sbf-border, #e0e4e4);
}

.sbf--product .woocommerce-tabs ul.tabs::before,
.sbf--product .woocommerce-tabs ul.tabs::after,
.sbf--product .woocommerce-tabs ul.tabs li::before,
.sbf--product .woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.sbf--product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
}

.sbf--product .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 0.85rem 0;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--sbf-text-muted, #6b7878);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.sbf--product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--sbf-text, #1a2a2a);
}

.sbf--product .woocommerce-tabs ul.tabs li.active a {
	color: var(--sbf-text, #1a2a2a);
	font-weight: 600;
	border-bottom-color: var(--sbf-primary, #3e6666);
}

.sbf--product .woocommerce-tabs .panel {
	background: var(--sbf-card-bg, #fff);
	border-radius: var(--sbf-radius, 5px);
	box-shadow: var(--sbf-shadow, 0 1px 3px rgba(0, 0, 0, 0.04));
	padding: 2rem 1.75rem;
	margin: 1.5rem 0 0;
}

.sbf--product .woocommerce-tabs .panel h2:first-child {
	margin-top: 0;
	font-size: 1.25rem;
}

/* Related + upsells */

.sbf--product .related,
.sbf--product .upsells {
	margin-top: 3rem;
}

.sbf--product .related > h2,
.sbf--product .upsells > h2 {
	font-size: 1.25rem;
	font-weight: 600;
	margin: 0 0 1.25rem;
	color: var(--sbf-text, #1a2a2a);
}

.sbf--product .related ul.products,
.sbf--product .upsells ul.products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 1.25rem;
}

.sbf--product .related ul.products li.product,
.sbf--product .upsells ul.products li.product {
	background: var(--sbf-card-bg, #fff);
	border-radius: var(--sbf-radius, 5px);
	box-shadow: var(--sbf-shadow, 0 1px 3px rgba(0, 0, 0, 0.04));
	padding: 1rem;
	margin: 0;
	width: auto;
	float: none;
	transition: box-shadow 0.2s ease;
}

.sbf--product .related ul.products li.product:hover,
.sbf--product .upsells ul.products li.product:hover {
	box-shadow: var(--sbf-shadow-hover, 0 2px 8px rgba(0, 0, 0, 0.08));
}

.sbf--product .related ul.products li.product a,
.sbf--product .upsells ul.products li.product a {
	text-decoration: none;
	color: inherit;
}

.sbf--product .related ul.products li.product img,
.sbf--product .upsells ul.products li.product img {
	width: 100%;
	height: auto;
	border-radius: 4px;
	margin: 0 0 0.75rem;
	display: block;
}

.sbf--product .related ul.products li.product .woocommerce-loop-product__title,
.sbf--product .upsells ul.products li.product .woocommerce-loop-product__title {
	font-size: 0.9375rem;
	font-weight: 500;
	margin: 0 0 0.25rem;
	color: var(--sbf-text, #1a2a2a);
}

.sbf--product .related ul.products li.product .price,
.sbf--product .upsells ul.products li.product .price {
	color: var(--sbf-primary, #3e6666);
	font-weight: 600;
	font-size: 0.9375rem;
}

.sbf--cart .woocommerce-cart-form__contents {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1rem;
}

.sbf--cart .woocommerce-cart-form__contents thead th {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	text-align: left;
	color: var(--sbf-text-muted, #6b7878);
	padding: 0.5rem 0.5rem;
	border-bottom: 1px solid var(--sbf-border, #e0e4e4);
	font-weight: 500;
}

.sbf--cart .woocommerce-cart-form__contents thead .product-price,
.sbf--cart .woocommerce-cart-form__contents thead .product-subtotal {
	text-align: right;
}

.sbf--cart .woocommerce-cart-form__contents thead .product-quantity {
	text-align: center;
}

.sbf--cart .woocommerce-cart-form__contents tbody td {
	padding: 0.85rem 0.5rem;
	border-bottom: 1px solid var(--sbf-border, #e0e4e4);
	vertical-align: middle;
}

.sbf--cart .woocommerce-cart-form__contents .product-thumbnail img {
	width: 56px;
	height: auto;
	border-radius: 4px;
	display: block;
}

.sbf--cart .woocommerce-cart-form__contents .product-name a {
	color: var(--sbf-text, #1a2a2a);
	text-decoration: none;
	font-weight: 500;
}

.sbf--cart .woocommerce-cart-form__contents .product-name a:hover {
	color: var(--sbf-primary, #3e6666);
}

.sbf--cart .woocommerce-cart-form__contents .product-price,
.sbf--cart .woocommerce-cart-form__contents .product-subtotal {
	text-align: right;
	white-space: nowrap;
}

.sbf--cart .woocommerce-cart-form__contents .product-quantity {
	text-align: center;
}

.sbf--cart .woocommerce-cart-form__contents .product-remove {
	width: 28px;
}

.sbf--cart .woocommerce-cart-form__contents .product-remove .remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #f0f2f2;
	color: var(--sbf-text-muted, #6b7878);
	text-decoration: none;
	font-size: 1.125rem;
	line-height: 1;
}

.sbf--cart .woocommerce-cart-form__contents .product-remove .remove:hover {
	background: var(--sbf-error, #b00020);
	color: #fff;
}

.sbf--cart .quantity input[type="number"] {
	width: 64px;
	padding: 0.4rem 0.5rem;
	border: 1px solid var(--sbf-border, #e0e4e4);
	border-radius: var(--sbf-radius-sm, 5px);
	text-align: center;
}

.sbf--cart .sbf__cart-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: stretch;
	justify-content: space-between;
	margin-top: 1rem;
}

.sbf--cart .sbf__cart-actions .sbf__coupon-fields {
	flex: 1 1 280px;
	min-width: 0;
}

.sbf--cart .sbf__cart-update-btn {
	background: transparent;
	color: var(--sbf-primary, #3e6666);
	border: 1px solid var(--sbf-border, #e0e4e4);
	border-radius: var(--sbf-radius-sm, 5px);
	padding: 0.625rem 1rem;
	font-weight: 600;
	cursor: pointer;
}

.sbf--cart .sbf__cart-update-btn:hover {
	background: #f8f8f8;
	color: var(--sbf-primary-dark, #2c4a4a);
	border-color: var(--sbf-primary, #3e6666);
}

.sbf--cart .sbf__cart-update-btn[disabled] {
	opacity: 0.5;
	cursor: not-allowed;
}

/* Totals */

.sbf--cart .sbf__totals-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
}

.sbf--cart .sbf__totals-table tbody {
	display: table-row-group;
}

.sbf--cart .sbf__totals-table tr {
	display: table-row;
}

.sbf--cart .sbf__totals-table th,
.sbf--cart .sbf__totals-table td {
	padding: 0.6rem 0;
	border-bottom: 1px solid var(--sbf-border, #e0e4e4);
	font-weight: 400;
	vertical-align: top;
}

.sbf--cart .sbf__totals-table th {
	text-align: left;
	color: var(--sbf-text-muted, #6b7878);
	font-weight: 500;
	white-space: nowrap;
}

.sbf--cart .sbf__totals-table td {
	text-align: right;
	color: var(--sbf-text, #1a2a2a);
}

.sbf--cart .sbf__totals-table .order-total th,
.sbf--cart .sbf__totals-table .order-total td {
	font-weight: 700;
	font-size: 1.0625rem;
	color: var(--sbf-text, #1a2a2a);
	border-bottom: none;
}

.sbf--cart .sbf__totals-table .cart-subtotal.recurring-total,
.sbf--cart .sbf__totals-table > tbody > tr.cart-subtotal:not(.recurring-total) {
	display: none;
}

.sbf--cart .sbf__totals-table .woocommerce-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sbf--cart .sbf__totals-table .woocommerce-shipping-destination,
.sbf--cart .sbf__totals-table .woocommerce-shipping-calculator {
	display: none;
}

.sbf--cart .sbf__totals-table .recurring-totals th {
	padding-top: 1rem;
	font-weight: 600;
	color: var(--sbf-text, #1a2a2a);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 0.75rem;
}

.sbf--cart .sbf__totals-table small.includes_tax {
	display: block;
	color: var(--sbf-text-muted, #6b7878);
	font-weight: 400;
	font-size: 0.8125rem;
	margin-top: 0.15rem;
}

.sbf--cart .sbf__totals-table .first-payment-date {
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	color: var(--sbf-text-muted, #6b7878);
}

.sbf--cart .sbf__totals-table .first-payment-date small {
	font-size: inherit;
}

.sbf--cart .sbf__proceed-to-checkout {
	margin: 0;
}

.sbf--cart .sbf__proceed-to-checkout .checkout-button,
.sbf--cart .sbf__proceed-to-checkout .button {
	display: block;
	width: 100%;
	background: var(--sbf-primary, #3e6666);
	color: #fff;
	border: 0;
	border-radius: var(--sbf-radius-sm, 5px);
	padding: 0.85rem 1.25rem;
	text-align: center;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.2s ease;
}

.sbf--cart .sbf__proceed-to-checkout .checkout-button:hover,
.sbf--cart .sbf__proceed-to-checkout .button:hover {
	background: var(--sbf-primary-dark, #2c4a4a);
	color: #fff;
}

/* ============ Empty cart ============ */

.sbf--cart-empty .sbf__checkout-wrap {
	max-width: 540px;
}

.sbf--cart-empty .sbf__cart-empty-card {
	text-align: center;
	padding: 2.5rem 1.5rem;
}

.sbf--cart-empty .sbf__cart-empty-illustration {
	width: 100px;
	height: 100px;
	margin: 0 auto 1rem;
	color: var(--sbf-primary, #3e6666);
	opacity: 0.7;
	display: block;
}

.sbf--cart-empty .sbf__cart-empty-card .woocommerce-info,
.sbf--cart-empty .sbf__cart-empty-card .cart-empty {
	background: none;
	border: none;
	color: var(--sbf-text);
	padding: 0;
	margin: 0 0 1.5rem;
	font-size: 1.0625rem;
}

.sbf--cart-empty .sbf__cart-empty-card .woocommerce-info::before,
.sbf--cart-empty .sbf__cart-empty-card .cart-empty::before {
	display: none;
}

.sbf--cart-empty .return-to-shop {
	margin: 0;
}

.sbf--cart-empty .return-to-shop .button {
	display: inline-block;
	background: var(--sbf-primary, #3e6666);
	color: #fff;
	border: 0;
	border-radius: var(--sbf-radius-sm, 5px);
	padding: 0.75rem 1.5rem;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s ease;
}

.sbf--cart-empty .return-to-shop .button:hover {
	background: var(--sbf-primary-dark, #2c4a4a);
	color: #fff;
}

/* ============ Checkout layout ============ */

/* Cart pages keep their narrower vertical-stack wrapper. The checkout page
   uses `.sbf__layout` (wizard.css) for the booking-flow two-column grid:
   1fr | 320px @ >=900px, single column on mobile. */
.sbf--cart .sbf__checkout-wrap,
.sbf--cart-empty .sbf__checkout-wrap {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.sbf--checkout .sbf__pre-form-notices:empty {
	display: none;
}

/* On mobile, surface the order review (sidebar) above the form so customers
   see what they're paying for before the billing fields. Desktop reverts to
   natural grid order. */
@media (max-width: 899px) {
	.sbf--checkout .sbf__layout {
		display: flex;
		flex-direction: column;
		gap: 1.25rem;
	}

	.sbf--checkout .sbf__main {
		order: 2;
	}

	.sbf--checkout .sbf__checkout-sidebar {
		order: 1;
	}
}

/* Theme globally hides #order_review_heading. Restore inside .sbf scope. */
.sbf--checkout #order_review_heading {
	display: block !important;
	margin: 0;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--sbf-text, #1a2a2a);
	padding-left: 0.25rem;
}

/* Hide the customer details card entirely when the billing/shipping field
   wrappers are empty — happens for subscribers where sthlmsauna-core strips
   billing fields. Otherwise the orphan "Uppgifter" / "Ytterligare info"
   headings render with nothing under them. Also hide our heading sibling. */
.sbf--checkout #customer_details:not(:has(input:not([type="hidden"]), select, textarea)) {
	display: none;
}

.sbf--checkout #customer_details:not(:has(input:not([type="hidden"]), select, textarea)) + .sbf__customer-details-heading,
.sbf--checkout .sbf__customer-details-heading:has(+ #customer_details:not(:has(input:not([type="hidden"]), select, textarea))) {
	display: none;
}

/* Drop WC's default billing/shipping headings — we render our own
   .sbf__heading "Uppgifter" outside the card. */
.sbf--checkout .woocommerce-billing-fields > h3,
.sbf--checkout .woocommerce-shipping-fields > h3 {
	display: none;
}

/* Order review: align product name to top so wrapped lines + meta sit
   flush with the price column. */
.sbf--checkout .sbf__checkout-box--review .cart_item td.product-name,
.sbf--checkout .sbf__checkout-box--review .cart_item td.product-total {
	vertical-align: top;
}

/* ============ Checkout polish: scope-fix theme rules ============ */

/* WC notice palette is owned by wizard.css `.sbf .woocommerce-{error,message,info}`
   so notices on /kassan/ match the booking-flow design (left-accent, soft tinted
   bg, no theme primary slab). The only checkout-scoped override below restores
   the coupon toggle to a transparent inline-link look. */

/* Coupon toggle: keep wizard.css's transparent inline-link design even
   though it sits inside the .woocommerce-info shell. wizard.css centers the
   wrap; the rules below just neutralize the notice card chrome that
   .woocommerce-info would otherwise paint. */
.sbf--checkout .sbf__coupon-toggle-wrap .woocommerce-info {
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	color: var(--sbf-muted-text, #666);
	font-size: 0.875rem;
}

.sbf--checkout .sbf__coupon-toggle-wrap .woocommerce-info::before {
	display: none;
}

.sbf--checkout .sbf__coupon-toggle-wrap .woocommerce-info a {
	color: var(--sbf-primary, #3e6666);
	text-decoration: none;
	font-weight: 600;
}

.sbf--checkout .sbf__coupon-toggle-wrap .woocommerce-info a:hover {
	color: #000;
	text-decoration: underline;
}

/* Coupon slot wrapper — no own visuals, just a flex container so the toggle
   and the (initially hidden) form stack with consistent gap inside the form.
   wizard.css owns the inner visuals (.sbf__coupon-toggle-wrap,
   .sbf__card.sbf__coupon-form-wrap, .sbf__coupon-fields). */
.sbf--checkout .sbf__checkout-box--coupon-slot {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

/* Shipping methods card — strip the table chrome inherited from
   cart/cart-shipping.php's <tr>/<th>/<td> markup so radios + labels stack
   like a clean list. Empty <div id="sbf-shipping-slot"> collapses when no
   shipping is needed. */
.sbf--checkout .sbf__checkout-box--shipping-slot:empty {
	display: none;
}

.sbf--checkout .sbf__shipping-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	background: transparent;
}

.sbf--checkout .sbf__shipping-table tr,
.sbf--checkout .sbf__shipping-table th,
.sbf--checkout .sbf__shipping-table td {
	display: block;
	background: transparent;
	border: 0;
	padding: 0;
	text-align: left;
}

.sbf--checkout .sbf__shipping-table th {
	display: none;
}

.sbf--checkout .sbf__checkout-box--shipping .woocommerce-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.sbf--checkout .sbf__checkout-box--shipping .woocommerce-shipping-methods li {
	padding: 0.625rem 0.75rem;
	border: 1px solid var(--sbf-border, #e0e4e4);
	border-radius: var(--sbf-radius-sm, 5px);
	background: #fff;
}

.sbf--checkout .sbf__checkout-box--shipping .woocommerce-shipping-methods label {
	cursor: pointer;
	margin: 0;
	font-weight: 500;
}

.sbf--checkout .sbf__checkout-box--shipping .woocommerce-shipping-destination {
	font-size: 0.875rem;
	color: var(--sbf-muted-text, #666);
	margin: 0.5rem 0 0;
}

/* Hide the toggle once WC's checkout.js slide-shows the form, so toggle
   and form behave as mutually exclusive — matching the booking-flow wizard.
   jQuery slideToggle leaves an inline `display: block` (or empty) on the
   form once visible, and `display: none` while hidden. */
.sbf--checkout .sbf__checkout-box--coupon-slot:has(form.checkout_coupon:not([style*="none"])) .sbf__coupon-toggle-wrap {
	display: none;
}

/* Place order button — branded, full-width on the payment card. */
.sbf--checkout #place_order {
	display: block;
	width: 100%;
	margin-top: 1rem;
	background: var(--sbf-primary, #3e6666);
	color: #fff;
	border: 0;
	border-radius: var(--sbf-radius-sm, 5px);
	padding: 0.95rem 1.5rem;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.2s ease;
	text-transform: none;
	min-height: 48px;
}

.sbf--checkout #place_order:hover,
.sbf--checkout #place_order:focus-visible {
	background: var(--sbf-primary-dark, #2c4a4a);
}

/* Terms checkbox alignment. */
.sbf--checkout .woocommerce-terms-and-conditions-wrapper p.form-row.validate-required {
	margin: 0.75rem 0;
}

.sbf--checkout .woocommerce-terms-and-conditions-wrapper label.checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: 0.9375rem;
	line-height: 1.4;
	cursor: pointer;
}

.sbf--checkout .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
	margin-top: 0.2rem;
	flex-shrink: 0;
}
