/* ==========================================================================
   Cart, checkout, order received, my account.
   Loaded on is_cart() / is_checkout() / is_account_page().
   Styling only — fields, gateways and totals are WooCommerce's own.
   ========================================================================== */

/* Step indicator (Flatsome .checkout-breadcrumbs) ----------------------- */
.checkout-page-title.page-title,
.page-title.checkout-page-title {
	background: transparent;
}

.checkout-breadcrumbs {
	font-family: var(--ce-font-sans);
	font-size: .9375rem;
	gap: var(--ce-space-2);
	letter-spacing: 0;
	padding-block: var(--ce-space-6);
	text-transform: none;
}

.checkout-breadcrumbs a,
.checkout-breadcrumbs span:not(.divider) {
	color: var(--ce-muted);
	font-weight: 600;
}

.checkout-breadcrumbs a.current,
.checkout-breadcrumbs .current {
	color: var(--ce-forest-dark);
	box-shadow: inset 0 -2px 0 var(--ce-terracotta);
}

.checkout-breadcrumbs .divider {
	color: var(--ce-border-strong);
	opacity: 1;
}

/* Shared panels ------------------------------------------------------ */
.cart_totals,
.woocommerce-order-overview,
.ce-next-steps,
.woocommerce-checkout .col-inner.has-border {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
}

.cart_totals > h2,
.cart-sidebar .widget-title,
#order_review_heading,
form.checkout h3,
.cart_totals thead th,
.woocommerce-order-details__title,
.woocommerce-customer-details h2,
.woocommerce-column__title {
	color: var(--ce-forest-dark);
	font-family: var(--ce-font-serif);
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

/* Tables (cart, review, order details) */
.shop_table {
	border: 0;
	font-size: .9375rem;
}

.shop_table th {
	color: var(--ce-muted);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.shop_table td,
.shop_table th {
	border-color: var(--ce-border);
}

.shop_table .order-total .amount,
.cart_totals .order-total .amount {
	color: var(--ce-forest-dark);
	font-size: 1.25rem;
	font-weight: 700;
}

/* Cart ---------------------------------------------------------------- */
.woocommerce-cart-form .product-thumbnail img {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-sm);
	object-fit: contain;
	padding: var(--ce-space-1);
}

.woocommerce-cart-form .product-name a {
	color: var(--ce-charcoal);
	font-weight: 600;
}

.woocommerce-cart-form .product-name a:hover { color: var(--ce-forest); }

.woocommerce-cart-form .product-remove a.remove {
	align-items: center;
	border: 1px solid var(--ce-border-strong);
	border-radius: 50%;
	color: var(--ce-muted);
	display: inline-flex;
	font-size: 1.125rem;
	height: 36px;
	justify-content: center;
	line-height: 1;
	width: 36px;
}

.woocommerce-cart-form .product-remove a.remove:hover {
	background-color: var(--ce-error);
	border-color: var(--ce-error);
	color: var(--ce-on-dark);
}

.woocommerce-cart-form .actions .button,
.continue-shopping .button {
	font-size: .9375rem;
}

.cart_totals {
	padding: var(--ce-space-6);
}

.cart_totals .wc-proceed-to-checkout .checkout-button,
.wc-proceed-to-checkout .checkout-button {
	font-size: 1rem;
	min-height: 52px;
	width: 100%;
}

/* Coupon */
.coupon,
.cart-sidebar .coupon {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ce-space-2);
}

.coupon input.input-text {
	flex: 1 1 160px;
	margin: 0;
}

.coupon .button,
.cart-sidebar .coupon .button {
	background-color: transparent;
	border: 1px solid var(--ce-forest);
	color: var(--ce-forest);
	margin: 0;
	opacity: 1;
}

.coupon .button:hover {
	background-color: var(--ce-forest);
	color: var(--ce-on-dark);
}

/* Empty cart */
.cart-empty.woocommerce-info,
.wc-empty-cart-message .cart-empty {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	color: var(--ce-charcoal);
	font-size: 1.125rem;
}

.return-to-shop .button {
	background-color: var(--ce-forest);
	border-color: var(--ce-forest);
	color: var(--ce-on-dark);
}

/* Checkout ----------------------------------------------------------- */
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info {
	padding: var(--ce-space-3) var(--ce-space-4);
	background-color: var(--ce-paper);
	border: 1px dashed var(--ce-border-strong);
	border-radius: var(--ce-radius-sm);
	color: var(--ce-charcoal);
	font-size: .9375rem;
}

form.checkout_coupon {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	padding: var(--ce-space-4);
}

/* Rows the field editor saved without a width class behave as full width
   (otherwise the label floats beside the previous half-width field). */
.woocommerce-checkout .form-row:not(.form-row-first):not(.form-row-last) {
	clear: both;
	width: 100%;
}

.woocommerce-checkout .form-row label {
	margin-bottom: var(--ce-space-1);
}

.woocommerce-checkout .form-row .required {
	color: var(--ce-error);
	text-decoration: none;
}

.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid select {
	border-color: var(--ce-error);
}

.woocommerce-checkout .form-row.woocommerce-validated input.input-text {
	border-color: var(--ce-success);
}

.woocommerce-checkout .col-inner.has-border {
	border-width: 1px;
	padding: var(--ce-space-6);
}

/* Payment box */
#payment,
.woocommerce-checkout #payment {
	background: transparent;
	border-radius: 0;
}

#payment ul.payment_methods {
	border-bottom: 1px solid var(--ce-border);
	padding: 0 0 var(--ce-space-4);
}

#payment ul.payment_methods li label {
	font-weight: 700;
}

#payment div.payment_box {
	background-color: var(--ce-ivory);
	border-radius: var(--ce-radius-sm);
	color: var(--ce-charcoal);
	font-size: .9375rem;
}

#payment div.payment_box::before {
	border-bottom-color: var(--ce-ivory);
}

.woocommerce-privacy-policy-text,
.woocommerce-terms-and-conditions-wrapper {
	color: var(--ce-muted);
	font-size: .875rem;
}

#place_order {
	font-size: 1.0625rem;
	min-height: 56px;
	width: 100%;
}

/* Notices on checkout errors */
.woocommerce-NoticeGroup-checkout .woocommerce-error,
.woocommerce-error {
	background-color: #FBF1EF;
	border: 1px solid var(--ce-error);
	border-radius: var(--ce-radius-sm);
	color: var(--ce-error);
}

.woocommerce-message {
	background-color: #EEF6F1;
	border: 1px solid var(--ce-success);
	border-radius: var(--ce-radius-sm);
	color: var(--ce-success);
}

.woocommerce-message .button,
.woocommerce-error .button {
	min-height: 40px;
}

/* Order received ----------------------------------------------------- */
.woocommerce-order .woocommerce-thankyou-order-received,
.woocommerce-notice--success.woocommerce-thankyou-order-received {
	color: var(--ce-forest-dark);
	font-family: var(--ce-font-serif);
	font-size: var(--ce-fs-h3);
	font-weight: 600;
	margin-bottom: var(--ce-space-6);
}

ul.woocommerce-order-overview {
	display: grid;
	gap: var(--ce-space-4);
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	list-style: none;
	margin: 0 0 var(--ce-space-8);
	padding: var(--ce-space-6);
}

ul.woocommerce-order-overview li {
	border: 0;
	color: var(--ce-muted);
	font-size: .8125rem;
	letter-spacing: .04em;
	margin: 0;
	text-transform: uppercase;
}

ul.woocommerce-order-overview li strong {
	color: var(--ce-charcoal);
	display: block;
	font-size: 1rem;
	letter-spacing: 0;
	margin-top: var(--ce-space-1);
	text-transform: none;
}

.ce-next-steps {
	margin-block: var(--ce-space-8);
	padding: var(--ce-space-6);
}

.ce-next-steps__title {
	font-size: 1.375rem;
	margin-bottom: var(--ce-space-2);
}

.ce-next-steps p { color: var(--ce-muted); }

.ce-next-steps__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--ce-space-3);
}

.ce-next-steps__actions .button { margin: 0; }

.ce-next-steps__link {
	font-weight: 600;
	margin-left: var(--ce-space-2);
}

/* My account --------------------------------------------------------- */
.my-account-header.page-title {
	background: transparent;
	border-bottom: 1px solid var(--ce-border);
}

.my-account-header h1 {
	font-size: var(--ce-fs-h2);
	font-weight: 500;
	letter-spacing: -.015em;
	text-transform: none;
}

.my-account-header .breadcrumbs,
.my-account-header .page-title-inner small {
	color: var(--ce-muted);
	font-size: var(--ce-fs-small);
	letter-spacing: 0;
	text-transform: none;
}

/* Dashboard shortcuts (Flatsome .dashboard-links) */
.dashboard-links {
	display: grid;
	gap: var(--ce-space-3);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr));
	list-style: none;
	margin: var(--ce-space-6) 0 0;
	padding: 0;
}

.dashboard-links li {
	margin: 0;
	padding: 0;
	width: auto;
}

.dashboard-links a {
	align-items: center;
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	color: var(--ce-forest-dark);
	display: flex;
	font-family: var(--ce-font-serif);
	font-size: 1.125rem;
	font-weight: 600;
	justify-content: center;
	min-height: 72px;
	padding: var(--ce-space-4);
	text-align: center;
	transition: box-shadow var(--ce-dur-fast) var(--ce-ease), border-color var(--ce-dur-fast) var(--ce-ease);
}

.dashboard-links a:hover {
	border-color: var(--ce-forest);
	box-shadow: var(--ce-shadow);
	color: var(--ce-forest);
}

.woocommerce-MyAccount-navigation ul,
.woocommerce-MyAccount-navigation .nav-vertical {
	border: 0;
}

.woocommerce-MyAccount-navigation li {
	border: 0;
	margin-bottom: var(--ce-space-1);
}

.woocommerce-MyAccount-navigation li a {
	align-items: center;
	border-radius: var(--ce-radius-sm);
	color: var(--ce-charcoal);
	display: flex;
	font-size: .9375rem;
	font-weight: 600;
	min-height: 44px;
	padding: 0 var(--ce-space-4);
	text-transform: none;
}

.woocommerce-MyAccount-navigation li a:hover {
	background-color: var(--ce-paper);
	color: var(--ce-forest);
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li.active a {
	background-color: var(--ce-forest);
	color: var(--ce-on-dark);
}

.woocommerce-MyAccount-content {
	font-size: 1rem;
}

.woocommerce-MyAccount-content .woocommerce-orders-table .button,
.woocommerce-MyAccount-content .woocommerce-Button {
	min-height: 40px;
}

.woocommerce-Addresses .woocommerce-Address,
.woocommerce-MyAccount-content address {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	font-style: normal;
	padding: var(--ce-space-4);
}

/* Mobile ------------------------------------------------------------- */
@media (max-width: 849px) {
	.woocommerce-checkout .col-inner.has-border,
	.cart_totals { padding: var(--ce-space-4); }
	.checkout-breadcrumbs { font-size: .8125rem; }
}
