/* WooCart Product Widget styles */

.woocart-widget {
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	align-items: stretch;
	background: #ffffff;
	border: 1px solid #ececec;
	border-radius: 14px;
	padding: 24px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
	box-sizing: border-box;
}

.woocart-widget--empty {
	display: block;
	color: #777;
	font-style: italic;
	text-align: center;
}

/* Left container: image gallery */
.woocart-widget__media {
	flex: 1 1 360px;
	min-width: 280px;
}

.woocart-widget__gallery {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* Main stage */
.woocart-widget__stage {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #e8eef2;
	border-radius: 14px;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	padding: 28px;
	box-sizing: border-box;
}

.woocart-widget__stage .woocart-widget__img,
.woocart-widget__stage img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	display: block;
	object-fit: contain;
}

/* Stage prev / next arrows */
.woocart-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid #1f2937;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.65);
	color: #1f2937;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.15s ease;
	z-index: 2;
}

.woocart-nav:hover {
	background: #ffffff;
}

.woocart-nav--prev {
	left: 14px;
}

.woocart-nav--next {
	right: 14px;
}

.woocart-nav .woocart-icon {
	width: 20px;
	height: 20px;
}

/* Pagination dots (short bars) */
.woocart-widget__dots {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: center;
	gap: 8px;
}

.woocart-widget__dot {
	width: 26px;
	height: 4px;
	border-radius: 4px;
	background: #d6dbe1;
	cursor: pointer;
	transition: background 0.15s ease;
}

.woocart-widget__dot.is-active {
	background: #374151;
}

/* Thumbnail strip with side chevrons */
.woocart-widget__thumbs-wrap {
	display: flex;
	align-items: center;
	gap: 8px;
}

.woocart-thumbs-nav {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 1px solid #cbd5e1;
	border-radius: 50%;
	background: #ffffff;
	color: #374151;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.woocart-thumbs-nav:hover {
	background: #374151;
	color: #ffffff;
}

.woocart-thumbs-nav .woocart-icon {
	width: 16px;
	height: 16px;
}

.woocart-widget__thumbs {
	list-style: none;
	margin: 0;
	padding: 4px;
	display: flex;
	gap: 12px;
	overflow-x: auto;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.woocart-widget__thumbs::-webkit-scrollbar {
	display: none;
}

.woocart-widget__thumb {
	flex: 0 0 auto;
	margin: 0;
	width: 96px;
	height: 96px;
	border-radius: 10px;
	overflow: hidden;
	background: #eef2f5;
	border: 2px solid transparent;
	cursor: pointer;
	transition: border-color 0.15s ease;
}

.woocart-widget__thumb.is-active {
	border-color: #1f2937;
}

.woocart-widget__thumb a {
	display: block;
	width: 100%;
	height: 100%;
	line-height: 0;
}

.woocart-widget__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

/* Right container: details */
.woocart-widget__details {
	flex: 1 1 320px;
	min-width: 260px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.woocart-widget__title {
	margin: 0 0 12px;
	font-size: 1.8rem;
	line-height: 1.25;
	color: #1d1d1f;
}

.woocart-widget__price {
	font-size: 1.35rem;
	font-weight: 700;
	color: #2c7a3f;
	margin-bottom: 16px;
}

.woocart-widget__price del {
	color: #999;
	font-weight: 400;
	margin-right: 8px;
}

.woocart-widget__desc {
	color: #4a4a4a;
	line-height: 1.65;
	margin-bottom: 24px;
}

.woocart-widget__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.woocart-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 13px 28px;
	border-radius: 10px;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	border: 2px solid transparent;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.woocart-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}

.woocart-btn--cart {
	background: #2271b1;
	color: #ffffff;
}

.woocart-btn--cart:hover {
	background: #185a91;
	color: #ffffff;
}

.woocart-btn--checkout {
	background: #ffffff;
	color: #2271b1;
	border-color: #2271b1;
}

.woocart-btn--checkout:hover {
	background: #2271b1;
	color: #ffffff;
}

.woocart-btn--disabled {
	background: #e5e5e5;
	color: #888;
	cursor: not-allowed;
}

.woocart-btn--disabled:hover {
	transform: none;
	box-shadow: none;
}

/* =========================================================
   Checkout — BookNest-style two-column layout
   Scoped to .woocart-co (body class on the checkout page,
   and the Elementor Checkout widget wrapper).
   ========================================================= */

.woocart-co {
	--wc-green: #1f5132;
	--wc-green-dark: #163d25;
	--wc-ink: #1d2b22;
	--wc-muted: #6b7280;
	--wc-line: #e6e8ec;
	--wc-field-bg: #ffffff;
	--wc-card-bg: #ffffff;
	color: var(--wc-ink);
}

.woocart-co__title,
.woocart-checkout__title {
	margin: 0 0 22px;
	font-size: 2rem;
	font-weight: 700;
	color: var(--wc-ink);
}

/* Secure banner */
.woocart-co__secure {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #eef6f0;
	color: var(--wc-green);
	border: 1px solid #d7ebdd;
	border-radius: 10px;
	padding: 12px 18px;
	font-weight: 600;
	font-size: 0.95rem;
	margin-bottom: 24px;
}

.woocart-co__secure-icon {
	font-size: 1.1rem;
}

/* Grid */
.woocart-co__grid {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 28px;
}

.woocart-co__main {
	flex: 1 1 560px;
	min-width: 320px;
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.woocart-co__side {
	flex: 1 1 330px;
	min-width: 300px;
}

/* Cards */
.woocart-co__card {
	background: var(--wc-card-bg);
	border: 1px solid var(--wc-line);
	border-radius: 14px;
	padding: 26px;
	box-shadow: 0 6px 20px rgba(20, 40, 30, 0.04);
}

/* Sticky order summary on wide screens */
@media ( min-width: 981px ) {
	.woocart-co__summary {
		position: sticky;
		top: 24px;
	}
}

/* Step headings with numbered badge */
.woocart-step__title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 22px;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--wc-ink);
	border: 0;
	padding: 0;
}

.woocart-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--wc-green);
	color: #fff;
	font-size: 0.95rem;
	font-weight: 700;
	flex: 0 0 auto;
}

/* Hide WooCommerce's own duplicate billing heading (we supply our own) */
.woocart-co .woocommerce-billing-fields > h3 {
	display: none;
}

/* Order-summary heading */
.woocart-co #order_review_heading {
	margin: 0 0 18px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--wc-line);
	font-size: 1.35rem;
	font-weight: 700;
}

/* ---- Form fields ---- */
.woocart-co .form-row {
	margin: 0 0 16px;
	padding: 0;
}

.woocart-co .woocommerce-input-wrapper {
	display: block;
	width: 100%;
}

/* Use placeholders instead of labels for the address fields */
.woocart-co .woocommerce-billing-fields__field-wrapper .form-row > label,
.woocart-co .shipping_address .form-row > label,
.woocart-co .woocommerce-additional-fields__field-wrapper .form-row > label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.woocart-co input.input-text,
.woocart-co textarea,
.woocart-co select,
.woocart-co .select2-container .select2-selection--single {
	width: 100%;
	box-sizing: border-box;
	padding: 13px 15px;
	border: 1px solid var(--wc-line);
	border-radius: 10px;
	font-size: 0.98rem;
	line-height: 1.3;
	background: var(--wc-field-bg);
	color: var(--wc-ink);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.woocart-co textarea {
	min-height: 96px;
}

.woocart-co .select2-container--default .select2-selection--single {
	height: auto;
	min-height: 49px;
	display: flex;
	align-items: center;
}

.woocart-co .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 47px;
}

.woocart-co input.input-text:focus,
.woocart-co textarea:focus,
.woocart-co select:focus {
	outline: none;
	border-color: var(--wc-green);
	box-shadow: 0 0 0 3px rgba(31, 81, 50, 0.12);
}

/* Two-up grid for the address fields */
.woocart-co .woocommerce-billing-fields__field-wrapper,
.woocart-co .shipping_address .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 16px;
}

.woocart-co .woocommerce-billing-fields__field-wrapper .form-row-wide,
.woocart-co .woocommerce-billing-fields__field-wrapper .notes,
.woocart-co .shipping_address .form-row-wide {
	grid-column: 1 / -1;
}

/* Ship-to-different-address toggle row */
.woocart-co #ship-to-different-address {
	font-size: 1rem;
	font-weight: 600;
	border: 0;
	padding: 0;
	margin: 0;
}

.woocart-co #ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}

/* ---- Payment methods ---- */
.woocart-co .woocart-co__methods {
	margin: 0;
}

.woocart-co ul.payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 0;
}

.woocart-co ul.payment_methods li {
	border: 1px solid var(--wc-line);
	border-radius: 10px;
	padding: 14px 16px;
	margin-bottom: 12px;
}

.woocart-co ul.payment_methods li:last-child {
	margin-bottom: 0;
}

.woocart-co ul.payment_methods label {
	display: inline;
	font-weight: 600;
	margin: 0;
}

.woocart-co div.payment_box {
	background: #f4f7f5;
	border-radius: 10px;
	margin-top: 12px;
}

.woocart-co div.payment_box::before {
	border-bottom-color: #f4f7f5;
}

/* ---- Order summary table ---- */
.woocart-co__items {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 8px;
}

.woocart-co__items thead th {
	text-align: left;
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wc-muted);
	font-weight: 600;
	padding: 0 0 12px;
	border-bottom: 1px solid var(--wc-line);
}

.woocart-co__items thead th.product-total {
	text-align: right;
}

.woocart-co__items tbody td {
	padding: 14px 0;
	border-bottom: 1px solid var(--wc-line);
	vertical-align: middle;
}

.woocart-co__items td.product-name {
	display: flex;
	align-items: center;
	gap: 12px;
}

.woocart-co__item-thumb img {
	width: 54px;
	height: 54px;
	object-fit: cover;
	border-radius: 8px;
	border: 1px solid var(--wc-line);
	display: block;
}

.woocart-co__item-meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.woocart-co__item-name {
	font-weight: 600;
	color: var(--wc-ink);
}

.woocart-co__items .product-quantity {
	color: var(--wc-muted);
	font-size: 0.88rem;
}

.woocart-co__items td.product-total {
	text-align: right;
	white-space: nowrap;
	font-weight: 600;
}

/* Totals (tfoot) */
.woocart-co__items tfoot th,
.woocart-co__items tfoot td {
	padding: 10px 0;
	border: 0;
	font-size: 0.95rem;
}

.woocart-co__items tfoot th {
	text-align: left;
	font-weight: 500;
	color: var(--wc-muted);
}

.woocart-co__items tfoot td {
	text-align: right;
	font-weight: 600;
}

.woocart-co__items tfoot .order-total th,
.woocart-co__items tfoot .order-total td {
	padding-top: 16px;
	border-top: 1px solid var(--wc-line);
	font-size: 1.3rem;
	font-weight: 800;
	color: var(--wc-green);
}

/* ---- Place order ---- */
.woocart-co__place-order {
	margin-top: 18px;
}

.woocart-co #place_order,
.woocart-co .button.alt {
	display: block;
	width: 100%;
	padding: 16px 24px;
	background: var(--wc-green);
	color: #fff;
	border: 0;
	border-radius: 10px;
	font-size: 1.05rem;
	font-weight: 700;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.woocart-co #place_order:hover,
.woocart-co .button.alt:hover {
	background: var(--wc-green-dark);
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(31, 81, 50, 0.28);
}

.woocart-co__secure-note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin: 14px 0 0;
	color: var(--wc-muted);
	font-size: 0.85rem;
}

/* Coupon */
.woocart-co .woocommerce-form-coupon-toggle,
.woocart-co .checkout_coupon {
	border-radius: 10px;
}

.woocart-co .woocommerce-info,
.woocart-co .woocommerce-error,
.woocart-co .woocommerce-message {
	border-radius: 10px;
}

/* ---- Trust badges ---- */
.woocart-co__trust {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-top: 28px;
	padding-top: 24px;
	border-top: 1px solid var(--wc-line);
}

.woocart-co__trust-item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.woocart-co__trust-icon {
	font-size: 1.5rem;
	color: var(--wc-green);
}

.woocart-co__trust-copy {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.woocart-co__trust-copy strong {
	font-size: 0.95rem;
	color: var(--wc-ink);
}

.woocart-co__trust-copy span {
	font-size: 0.82rem;
	color: var(--wc-muted);
}

/* ========================== Responsive ========================== */
@media ( max-width: 980px ) {
	.woocart-co__grid {
		flex-direction: column;
	}

	.woocart-co__main,
	.woocart-co__side {
		flex: 1 1 100%;
		width: 100%;
	}

	.woocart-co__trust {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media ( max-width: 600px ) {
	.woocart-widget {
		flex-direction: column;
	}

	.woocart-widget__actions .woocart-btn {
		flex: 1 1 100%;
	}

	.woocart-co__card {
		padding: 18px;
	}

	.woocart-co .woocommerce-billing-fields__field-wrapper,
	.woocart-co .shipping_address .woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: 1fr;
	}

	.woocart-co__trust {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   Cart — eye-catchy two-column layout
   Scoped to .woocart-cart (wrapper output in cart.php, so it
   styles both the native cart page and the Elementor widget).
   ========================================================= */

.woocart-cart {
	--wc-green: #1f5132;
	--wc-green-dark: #163d25;
	--wc-ink: #1d2b22;
	--wc-muted: #6b7280;
	--wc-line: #e6e8ec;
	color: var(--wc-ink);
}

.woocart-cart__grid {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 28px;
}

.woocart-cart__items {
	flex: 1 1 560px;
	min-width: 320px;
}

.woocart-cart__side {
	flex: 1 1 330px;
	min-width: 300px;
}

/* Items card */
.woocart-cart__table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border: 1px solid var(--wc-line);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 6px 20px rgba(20, 40, 30, 0.04);
}

.woocart-cart__table thead th {
	text-align: left;
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wc-muted);
	font-weight: 600;
	padding: 16px 14px;
	border-bottom: 1px solid var(--wc-line);
	background: #fafbfc;
}

.woocart-cart__table td {
	padding: 16px 14px;
	border-bottom: 1px solid var(--wc-line);
	vertical-align: middle;
}

.woocart-cart__table tr:last-child td {
	border-bottom: 0;
}

.woocart-cart__table .product-thumbnail img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 10px;
	border: 1px solid var(--wc-line);
	display: block;
}

.woocart-cart__table .product-name {
	font-weight: 600;
}

.woocart-cart__table .product-name a {
	color: var(--wc-ink);
	text-decoration: none;
}

.woocart-cart__table .product-name a:hover {
	color: var(--wc-green);
}

.woocart-cart__table .product-price,
.woocart-cart__table .product-subtotal {
	font-weight: 600;
	white-space: nowrap;
}

.woocart-cart__table .product-subtotal {
	color: var(--wc-green);
}

/* Quantity stepper */
.woocart-cart__table .quantity input.qty {
	width: 64px;
	padding: 9px 8px;
	border: 1px solid var(--wc-line);
	border-radius: 8px;
	text-align: center;
	font-size: 0.95rem;
	background: #fff;
}

/* Remove button */
.woocart-cart__table a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #f3f4f6;
	color: #b4232a !important;
	font-size: 18px;
	line-height: 1;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease;
}

.woocart-cart__table a.remove:hover {
	background: #b4232a;
	color: #fff !important;
}

/* Actions row (coupon + update cart) */
.woocart-cart__table td.actions {
	background: #fafbfc;
	padding: 18px 14px;
}

.woocart-cart__table td.actions .coupon {
	display: inline-flex;
	gap: 8px;
	float: left;
}

.woocart-cart__table td.actions input#coupon_code {
	padding: 11px 14px;
	border: 1px solid var(--wc-line);
	border-radius: 9px;
	min-width: 160px;
	background: #fff;
}

.woocart-cart .button,
.woocart-cart__table td.actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 11px 20px;
	border: 1px solid var(--wc-line);
	border-radius: 9px;
	background: #fff;
	color: var(--wc-ink);
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.woocart-cart .button:hover,
.woocart-cart__table td.actions .button:hover {
	border-color: var(--wc-green);
	color: var(--wc-green);
}

.woocart-cart__table td.actions button[name="update_cart"] {
	float: right;
}

/* Summary card */
.woocart-cart__summary {
	background: #fff;
	border: 1px solid var(--wc-line);
	border-radius: 14px;
	padding: 26px;
	box-shadow: 0 6px 20px rgba(20, 40, 30, 0.04);
}

@media ( min-width: 981px ) {
	.woocart-cart__summary {
		position: sticky;
		top: 24px;
	}
}

.woocart-cart__summary .cart_totals > h2,
.woocart-cart__summary h2 {
	margin: 0 0 18px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--wc-line);
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--wc-ink);
}

.woocart-cart__summary table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 18px;
}

.woocart-cart__summary table th,
.woocart-cart__summary table td {
	padding: 11px 0;
	border-bottom: 1px solid var(--wc-line);
	font-size: 0.95rem;
	text-align: left;
}

.woocart-cart__summary table th {
	font-weight: 500;
	color: var(--wc-muted);
}

.woocart-cart__summary table td {
	text-align: right;
	font-weight: 600;
}

.woocart-cart__summary table .order-total th,
.woocart-cart__summary table .order-total td {
	border-bottom: 0;
	padding-top: 16px;
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--wc-green);
}

/* Proceed to checkout */
.woocart-cart__summary .wc-proceed-to-checkout {
	padding: 0;
}

.woocart-cart__summary .wc-proceed-to-checkout a.checkout-button,
.woocart-cart__summary a.checkout-button {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 16px 24px;
	background: var(--wc-green);
	color: #fff;
	border: 0;
	border-radius: 10px;
	font-size: 1.05rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.woocart-cart__summary .wc-proceed-to-checkout a.checkout-button:hover,
.woocart-cart__summary a.checkout-button:hover {
	background: var(--wc-green-dark);
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(31, 81, 50, 0.28);
}

/* Responsive cart */
@media ( max-width: 980px ) {
	.woocart-cart__grid {
		flex-direction: column;
	}

	.woocart-cart__items,
	.woocart-cart__side {
		flex: 1 1 100%;
		width: 100%;
	}
}

@media ( max-width: 600px ) {
	.woocart-cart__table thead {
		display: none;
	}

	.woocart-cart__table,
	.woocart-cart__table tbody,
	.woocart-cart__table tr {
		display: block;
		width: 100%;
	}

	.woocart-cart__table tr.woocommerce-cart-form__cart-item {
		display: grid;
		grid-template-columns: 72px 1fr auto;
		gap: 6px 12px;
		align-items: center;
		padding: 14px;
		border-bottom: 1px solid var(--wc-line);
	}

	.woocart-cart__table tr.woocommerce-cart-form__cart-item td {
		border: 0;
		padding: 2px 0;
	}

	.woocart-cart__table .product-thumbnail {
		grid-row: span 2;
	}

	.woocart-cart__table .product-remove {
		grid-row: 1;
		grid-column: 3;
		text-align: right;
	}

	.woocart-cart__table td.actions .coupon,
	.woocart-cart__table td.actions button[name="update_cart"] {
		float: none;
		width: 100%;
		margin-bottom: 10px;
	}

	.woocart-cart__table td.actions .coupon {
		display: flex;
	}
}
