/* Flowcat 2D purchase path: product selection, cart review, and checkout. */

.flowcat-purchase-progress {
	width: min(calc(100% - 48px), 1152px);
	margin: 32px auto 18px;
}

.flowcat-purchase-progress ol {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
	background: var(--fc-surface);
	border: 1px solid var(--fc-line);
	border-radius: 16px;
	box-shadow: var(--fc-shadow-soft);
	overflow: hidden;
}

.flowcat-purchase-progress li {
	position: relative;
	margin: 0;
}

.flowcat-purchase-progress li + li {
	border-left: 1px solid var(--fc-line);
}

.flowcat-purchase-progress :is(a, span) {
	display: flex;
	min-height: 64px;
	padding: 12px 20px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: var(--fc-muted);
	font-family: var(--fc-font-display);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-decoration: none;
	text-transform: uppercase;
}

.flowcat-purchase-progress .is-complete a {
	color: var(--fc-brown);
}

.flowcat-purchase-progress .is-current span {
	color: #fff;
	background: var(--fc-brown);
}

.flowcat-purchase-progress .flowcat-step-number {
	display: inline-grid;
	width: 26px;
	height: 26px;
	min-height: 26px;
	padding: 0;
	place-items: center;
	color: inherit;
	background: rgba(111, 78, 55, 0.1);
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 12px;
}

.flowcat-purchase-progress .is-current .flowcat-step-number {
	background: rgba(255, 255, 255, 0.12);
}

/* Product decision state */
body.single-product .flowcat-purchase-progress {
	margin-bottom: 0;
}

.flowcat-variation-prompt {
	margin: 0 0 20px;
	padding: 18px 20px;
	background: var(--fc-band);
	border: 1px solid var(--fc-line);
	border-radius: 14px;
}

.flowcat-variation-prompt strong,
.flowcat-variation-prompt span {
	display: block;
}

.flowcat-variation-prompt strong {
	margin-bottom: 5px;
	color: var(--fc-ink);
	font-family: var(--fc-font-display);
	font-size: 17px;
	line-height: 1.3;
}

.flowcat-variation-prompt span {
	color: var(--fc-muted);
	font-size: 14px;
	line-height: 1.5;
}

.flowcat-variation-prompt .flowcat-purchase-choice-status {
	margin-top: 9px;
	color: var(--fc-brown);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.35px;
}

body.single-product .single_add_to_cart_button[disabled],
body.single-product .single_add_to_cart_button[aria-disabled="true"] {
	cursor: not-allowed !important;
	opacity: 0.48 !important;
	transform: none !important;
}

.flowcat-purchase-assurance {
	margin: 20px 0 0;
	color: var(--fc-muted);
	font-size: 13px;
	line-height: 1.5;
}

.flowcat-purchase-assurances {
	padding: 18px 20px;
	background: var(--fc-band);
	border: 1px solid var(--fc-line);
	border-radius: 14px;
}

body.single-product .flowcat-purchase-assurances {
	grid-column: 1 / -1;
	width: 100%;
}

.flowcat-purchase-assurances h3 {
	margin: 0 0 10px;
	color: var(--fc-ink);
	font-family: var(--fc-font-display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.flowcat-purchase-assurances ul {
	display: grid;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.flowcat-purchase-assurances li {
	position: relative;
	padding-left: 18px;
}

.flowcat-purchase-assurances li::before {
	position: absolute;
	top: 0;
	left: 0;
	content: "✓";
	color: var(--fc-brown);
	font-weight: 800;
}

.flowcat-purchase-assurance-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 0;
	font-size: 12px;
	font-weight: 700;
}

.flowcat-purchase-assurance-links a {
	color: var(--fc-brown);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Cart and checkout surfaces */
body.woocommerce-cart,
body.woocommerce-checkout {
	--theme-form-field-background-initial-color: var(--fc-surface);
	--theme-form-field-background-focus-color: #fff;
	--theme-form-field-border-initial-color: var(--fc-line);
	--theme-form-field-border-focus-color: var(--fc-brown);
	--theme-form-field-text-initial-color: var(--fc-ink);
	--theme-form-field-text-focus-color: var(--fc-ink);
	color: var(--fc-ink);
	background: var(--fc-canvas);
}

body:is(.woocommerce-cart, .woocommerce-checkout) #main,
body:is(.woocommerce-cart, .woocommerce-checkout) .site-main {
	background: var(--fc-canvas) !important;
}

body:is(.woocommerce-cart, .woocommerce-checkout) .hero-section {
	min-height: 160px !important;
	padding: 32px 24px !important;
	background: var(--fc-band) !important;
	border-bottom: 1px solid var(--fc-line) !important;
}

body:is(.woocommerce-cart, .woocommerce-checkout) .hero-section .page-title {
	color: var(--fc-ink) !important;
	font-family: var(--fc-font-display) !important;
	font-size: clamp(38px, 4vw, 54px) !important;
	line-height: 1 !important;
}

body:is(.woocommerce-cart, .woocommerce-checkout) article > .entry-content,
body:is(.woocommerce-cart, .woocommerce-checkout) .woocommerce {
	color: var(--fc-ink);
}

body:is(.woocommerce-cart, .woocommerce-checkout) article > .entry-content {
	padding-bottom: 84px;
}

body:is(.woocommerce-cart, .woocommerce-checkout) :is(input:not([type="radio"]):not([type="checkbox"]), select, textarea),
body.woocommerce-checkout .select2-container--default .select2-selection--single {
	min-height: 52px;
	color: var(--fc-ink) !important;
	background: var(--fc-surface) !important;
	border: 1px solid var(--fc-line) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
}

body:is(.woocommerce-cart, .woocommerce-checkout) :is(input, textarea)::placeholder {
	color: #94877c !important;
	opacity: 1;
}

body:is(.woocommerce-cart, .woocommerce-checkout) :is(label, th, h2, h3) {
	color: var(--fc-ink);
}

body:is(.woocommerce-cart, .woocommerce-checkout) :is(.button, button, input[type="submit"]),
body.woocommerce-checkout #place_order {
	min-height: 48px;
	padding: 12px 22px !important;
	color: #fff !important;
	background: var(--fc-brown) !important;
	border: 1px solid var(--fc-brown) !important;
	border-radius: var(--fc-radius-control) !important;
	font-family: var(--fc-font-display) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: 0.4px;
	box-shadow: none !important;
}

body:is(.woocommerce-cart, .woocommerce-checkout) :is(.button, button, input[type="submit"]):hover,
body.woocommerce-checkout #place_order:hover {
	background: var(--fc-accent) !important;
	border-color: var(--fc-accent) !important;
	transform: translateY(-1px);
}

/* Cart review */
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart_totals {
	padding: clamp(22px, 3vw, 34px);
	background: var(--fc-surface);
	border: 1px solid var(--fc-line);
	border-radius: 20px;
	box-shadow: 0 18px 46px rgba(43, 38, 32, 0.07);
}

body.woocommerce-cart .woocommerce-cart-form table,
body.woocommerce-cart .cart_totals table {
	margin: 0;
}

body.woocommerce-cart .woocommerce-cart-form thead th {
	padding-top: 0;
	color: var(--fc-muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.8px;
	text-transform: uppercase;
}

body.woocommerce-cart .woocommerce-cart-form td,
body.woocommerce-cart .woocommerce-cart-form th,
body.woocommerce-cart .cart_totals td,
body.woocommerce-cart .cart_totals th {
	border-color: var(--fc-line) !important;
}

body.woocommerce-cart .product-name a {
	color: var(--fc-ink) !important;
	font-weight: 700;
}

body.woocommerce-cart .product-thumbnail img {
	border-radius: 12px;
}

body.woocommerce-cart .quantity {
	background: var(--fc-canvas) !important;
	border-color: var(--fc-line) !important;
	border-radius: var(--fc-radius-control) !important;
}

body.woocommerce-cart #coupon_code {
	min-width: 210px;
}

body.woocommerce-cart .cart_totals h2 {
	font-family: var(--fc-font-display);
	font-size: 24px;
}

body.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: flex !important;
	min-height: 56px;
	align-items: center;
	justify-content: center;
	font-size: 16px !important;
}

body.woocommerce-cart .woocommerce-info {
	color: var(--fc-ink);
	background: var(--fc-band);
	border-color: var(--fc-line);
	border-radius: 16px;
}

/* Checkout */
body.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(380px, 0.92fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}

body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review {
	padding: clamp(24px, 3vw, 36px);
	background: var(--fc-surface);
	border: 1px solid var(--fc-line);
	border-radius: 20px;
	box-shadow: 0 18px 46px rgba(43, 38, 32, 0.07);
}

body.woocommerce-checkout #order_review_heading {
	margin: 0 0 16px;
	font-family: var(--fc-font-display);
	font-size: 24px;
}

body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .woocommerce-additional-fields > h3 {
	font-family: var(--fc-font-display);
	font-size: 26px;
}

body.woocommerce-checkout .form-row {
	margin-bottom: 18px;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table th {
	padding: 18px 10px;
	border-color: var(--fc-line) !important;
}

body.woocommerce-checkout #payment {
	margin-top: 24px;
	background: var(--fc-canvas) !important;
	border: 1px solid var(--fc-line);
	border-radius: 14px;
}

body.woocommerce-checkout #payment .payment_box {
	color: var(--fc-muted);
	background: var(--fc-surface) !important;
}

body.woocommerce-checkout .woocommerce-privacy-policy-text {
	color: var(--fc-muted);
	font-size: 13px;
}

@media (max-width: 1023px) {
	.flowcat-purchase-progress {
		width: min(calc(100% - 32px), 720px);
		margin-top: 24px;
	}

	.flowcat-purchase-progress :is(a, span) {
		min-height: 58px;
		padding: 10px 8px;
		gap: 7px;
		font-size: 11px;
		letter-spacing: 0.5px;
	}

	.flowcat-purchase-progress .flowcat-step-number {
		width: 22px;
		height: 22px;
		min-height: 22px;
		font-size: 10px;
	}

	body.woocommerce-checkout form.checkout {
		display: block;
	}

	body.woocommerce-checkout #customer_details {
		margin-bottom: 26px;
	}
}

@media (max-width: 767px) {
	body:is(.woocommerce-cart, .woocommerce-checkout) .hero-section {
		min-height: 128px !important;
		padding: 24px 20px !important;
	}

	body:is(.woocommerce-cart, .woocommerce-checkout) .hero-section .page-title {
		font-size: 38px !important;
	}

	body:is(.woocommerce-cart, .woocommerce-checkout) article > .entry-content {
		padding-right: 16px;
		padding-bottom: 60px;
		padding-left: 16px;
	}

	body.woocommerce-cart .woocommerce-cart-form,
	body.woocommerce-cart .cart_totals,
	body.woocommerce-checkout #customer_details,
	body.woocommerce-checkout #order_review {
		padding: 20px;
		border-radius: 16px;
	}

	body.woocommerce-cart .woocommerce-cart-form {
		padding-top: 8px;
	}

	body.woocommerce-cart #coupon_code {
		width: 100%;
		min-width: 0;
		margin-bottom: 10px;
	}

	body.woocommerce-cart .coupon,
	body.woocommerce-cart .coupon .button {
		width: 100%;
	}

	body.woocommerce-cart .actions > .button {
		width: 100%;
		margin-top: 10px;
	}

	body.woocommerce-checkout .form-row-first,
	body.woocommerce-checkout .form-row-last {
		width: 100%;
		float: none;
	}
}

/* Flowcat 3C checkout hierarchy, guidance, and recovery states */
body.woocommerce-checkout .flowcat-checkout-intro {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(420px, 0.85fr);
	gap: clamp(28px, 4vw, 54px);
	width: min(calc(100% - 48px), 1152px);
	margin: 18px auto 24px;
	padding: clamp(26px, 3.5vw, 42px);
	color: var(--fc-ink);
	background: linear-gradient(135deg, var(--fc-band), #f9f5ee);
	border: 1px solid var(--fc-line);
	border-radius: 20px;
}

.flowcat-checkout-eyebrow {
	margin: 0 0 8px;
	color: var(--fc-brown);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 1.8px;
	text-transform: uppercase;
}

.flowcat-checkout-intro h2 {
	margin: 0 0 12px;
	font-family: var(--fc-font-display);
	font-size: clamp(28px, 3vw, 38px);
	line-height: 1.08;
}

.flowcat-checkout-intro-copy > p:last-child {
	max-width: 620px;
	margin: 0;
	color: var(--fc-muted);
}

.flowcat-checkout-benefits {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.flowcat-checkout-benefits li {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	margin: 0;
	padding: 0;
}

.flowcat-checkout-benefits li::before {
	content: "✓";
	display: grid;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	place-items: center;
	color: #fff;
	background: var(--fc-brown);
	border-radius: 50%;
	font-size: 11px;
	font-weight: 800;
}

.flowcat-checkout-benefits strong,
.flowcat-checkout-benefits span {
	grid-column: 2;
}

.flowcat-checkout-benefits strong {
	font-family: var(--fc-font-display);
	font-size: 14px;
}

.flowcat-checkout-benefits span {
	color: var(--fc-muted);
	font-size: 12px;
}

body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin: 0 0 24px;
	padding: 16px 20px;
	color: var(--fc-muted);
	background: transparent;
	border: 1px dashed var(--fc-line);
	border-radius: 12px;
}

body.woocommerce-checkout .woocommerce-form-login-toggle .showlogin {
	color: var(--fc-brown);
	font-weight: 700;
}

body.woocommerce-checkout form.checkout {
	grid-template-columns: minmax(0, 1.12fr) minmax(390px, 0.88fr);
	gap: clamp(24px, 3.5vw, 44px);
}

body.woocommerce-checkout .ct-customer-details,
body.woocommerce-checkout .ct-order-review {
	padding: clamp(24px, 3vw, 36px);
	background: var(--fc-surface);
	border: 1px solid var(--fc-line);
	border-radius: 20px;
	box-shadow: 0 18px 46px rgba(43, 38, 32, 0.07);
}

body.woocommerce-checkout .ct-order-review {
	position: sticky;
	top: 24px;
}

body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review {
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .woocommerce-additional-fields > h3,
body.woocommerce-checkout #order_review_heading {
	display: flex;
	align-items: center;
	gap: 11px;
	margin: 0 0 20px;
	font-family: var(--fc-font-display);
	font-size: 24px;
	line-height: 1.2;
}

body.woocommerce-checkout #contact_details > h3::before,
body.woocommerce-checkout .col-1 > .woocommerce-billing-fields:not(#contact_details) > h3::before,
body.woocommerce-checkout #order_review_heading::before {
	display: inline-grid;
	width: 28px;
	height: 28px;
	flex: 0 0 28px;
	place-items: center;
	color: var(--fc-brown);
	background: var(--fc-band);
	border: 1px solid var(--fc-line);
	border-radius: 50%;
	font-size: 12px;
	font-weight: 800;
}

body.woocommerce-checkout #contact_details > h3::before {
	content: "1";
}

body.woocommerce-checkout .col-1 > .woocommerce-billing-fields:not(#contact_details) > h3::before {
	content: "2";
}

body.woocommerce-checkout #order_review_heading::before {
	content: "3";
}

body.woocommerce-checkout #contact_details,
body.woocommerce-checkout .col-1 > .woocommerce-billing-fields:not(#contact_details) {
	padding-bottom: 26px;
}

body.woocommerce-checkout .col-1 > .woocommerce-billing-fields:not(#contact_details) {
	padding-top: 28px;
	border-top: 1px solid var(--fc-line);
}

.flowcat-checkout-section-note {
	margin: -8px 0 22px;
	color: var(--fc-muted);
	font-size: 13px;
	line-height: 1.55;
}

body.woocommerce-checkout button.flowcat-optional-toggle {
	display: inline-flex;
	min-height: 0;
	margin: 2px 0 18px;
	padding: 0 !important;
	color: var(--fc-brown) !important;
	background: transparent !important;
	border: 0 !important;
	font-size: 13px !important;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	box-shadow: none !important;
}

body.woocommerce-checkout button.flowcat-optional-toggle:hover {
	color: var(--fc-accent) !important;
	background: transparent !important;
	transform: none !important;
}

body.woocommerce-checkout .woocommerce-invalid :is(input, select, textarea),
body.woocommerce-checkout .woocommerce-invalid .select2-selection {
	border-color: #a43c32 !important;
	box-shadow: 0 0 0 3px rgba(164, 60, 50, 0.1) !important;
}

.flowcat-checkout-error-summary {
	display: grid;
	gap: 3px;
	margin: 0 0 22px;
	padding: 17px 20px;
	color: #6e251f;
	background: #fff4f2;
	border: 1px solid #dca39e;
	border-radius: 12px;
}

.flowcat-checkout-error-summary strong {
	font-family: var(--fc-font-display);
}

.flowcat-checkout-error-summary span {
	font-size: 13px;
}

.flowcat-checkout-product {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr);
	align-items: center;
	gap: 12px;
}

.flowcat-checkout-product-image {
	width: 58px;
	height: 58px;
	object-fit: cover;
	background: #fff;
	border: 1px solid var(--fc-line);
	border-radius: 10px;
}

.flowcat-checkout-product-content {
	min-width: 0;
}

.flowcat-checkout-subheading {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	margin: 26px 0 14px;
	padding-top: 24px;
	border-top: 1px solid var(--fc-line);
}

.flowcat-checkout-subheading > span {
	display: inline-grid;
	width: 28px;
	height: 28px;
	flex: 0 0 28px;
	place-items: center;
	color: var(--fc-brown);
	background: var(--fc-band);
	border: 1px solid var(--fc-line);
	border-radius: 50%;
	font-size: 12px;
	font-weight: 800;
}

.flowcat-checkout-subheading h4 {
	margin: 1px 0 4px;
	color: var(--fc-ink);
	font-family: var(--fc-font-display);
	font-size: 20px;
}

.flowcat-checkout-subheading p {
	margin: 0;
	color: var(--fc-muted);
	font-size: 12px;
}

body.woocommerce-checkout #payment {
	margin-top: 0;
	background: var(--fc-band) !important;
}

body.woocommerce-checkout #payment .wc_payment_method {
	padding: 16px;
	background: var(--fc-surface);
	border: 1px solid var(--fc-line);
	border-radius: 10px;
}

body.woocommerce-checkout #payment .payment_box {
	margin-bottom: 0;
	padding: 12px 0 0;
}

body.woocommerce-checkout #place_order,
body.woocommerce-checkout .ppc-button-wrapper {
	width: 100%;
}

.flowcat-checkout-payment-note {
	margin: 12px 0 0;
	color: var(--fc-muted);
	font-size: 12px;
	line-height: 1.5;
	text-align: center;
}

.flowcat-checkout-payment-note::before {
	content: "✓";
	margin-right: 6px;
	color: var(--fc-brown);
	font-weight: 800;
}

.flowcat-checkout-support {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin: 28px 0 0;
	color: var(--fc-muted);
	font-size: 13px;
}

.flowcat-checkout-support a {
	padding: 5px 9px;
	color: var(--fc-brown);
	background: var(--fc-surface);
	border: 1px solid var(--fc-line);
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
}

body.woocommerce-checkout form.checkout.processing {
	opacity: 0.72;
	pointer-events: none;
}

@media (max-width: 1023px) {
	body.woocommerce-checkout .flowcat-checkout-intro {
		grid-template-columns: 1fr;
		width: min(calc(100% - 32px), 720px);
	}

	body.woocommerce-checkout .ct-order-review {
		position: static;
	}
}

@media (max-width: 767px) {
	body.woocommerce-checkout .flowcat-checkout-intro {
		width: calc(100% - 32px);
		margin-top: 14px;
		padding: 22px 20px;
		border-radius: 16px;
	}

	body.woocommerce-checkout .flowcat-checkout-intro h2 {
		font-size: 28px;
	}

	body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
		display: block;
		padding: 14px 16px;
	}

	body.woocommerce-checkout .woocommerce-form-login-toggle .showlogin {
		display: block;
		margin-top: 6px;
	}

	body.woocommerce-checkout .ct-customer-details,
	body.woocommerce-checkout .ct-order-review {
		padding: 20px;
		border-radius: 16px;
	}

	body.woocommerce-checkout .woocommerce-billing-fields > h3,
	body.woocommerce-checkout .woocommerce-additional-fields > h3,
	body.woocommerce-checkout #order_review_heading {
		font-size: 21px;
	}

	.flowcat-checkout-support {
		flex-wrap: wrap;
		gap: 8px 14px;
		padding: 0 8px;
	}

	.flowcat-checkout-support span {
		width: 100%;
		text-align: center;
	}
}



