/* ShopKit Checkout design. Scope: the checkout page (body.skco-page) or the ShopKit Checkout widget (.skco-page-scope).
   Every colour / size has a fallback so the Elementor widget controls (CSS variables) can override it. */

:is(.skco-page, .skco-page-scope) :is(form.woocommerce-checkout, .woocommerce-order) {
	--_a: var(--skco-accent, #e11d48);
	--_text: var(--skco-text, #111827);
	--_card-bg: var(--skco-card-bg, #fff);
	--_card-b: var(--skco-card-border, #e5e7eb);
	--_card-r: var(--skco-card-radius, 16px);
	--_pad: var(--skco-card-pad, 24px);
	--_gap: var(--skco-gap, 28px);
	--_in-bg: var(--skco-in-bg, #fff);
	--_in-b: var(--skco-in-border, #d1d5db);
	--_in-t: var(--skco-in-text, #111827);
	--_in-h: var(--skco-in-h, 48px);
	--_in-r: var(--skco-in-radius, 10px);
	--_line: var(--skco-line, #eef0f2);
	--_btn-c: var(--skco-btn-color, #fff);
	--_btn-bg: var(--skco-btn-bg, var(--_a));
	--_btn-bgh: var(--skco-btn-bg-h, #111827);
	--_btn-h: var(--skco-btn-h, 56px);
	--_btn-r: var(--skco-btn-radius, 12px);
	color: var(--_text);
	box-sizing: border-box;
}
:is(.skco-page, .skco-page-scope) :is(form.woocommerce-checkout, .woocommerce-order) * { box-sizing: border-box; }

/* ---------- Layout ---------- */
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	column-gap: var(--_gap);
	align-items: start;
	margin: 0;
}
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
}
/* Some themes / WooCommerce layout CSS give these boxes a percentage width and a float; inside the grid they must fill their column. */
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout > :is(#customer_details, #order_review_heading, #order_review) {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	clear: none !important;
}
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout #customer_details :is(.col-1, .col-2) { float: none !important; width: 100% !important; max-width: 100% !important; }
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout #payment,
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout table.shop_table { float: none !important; width: 100% !important; max-width: 100% !important; margin-left: 0; margin-right: 0; }
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout > .woocommerce-NoticeGroup,
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout > .woocommerce-notices-wrapper { grid-column: 1 / -1; margin-bottom: 16px; }
:is(.skco-page, .skco-page-scope) #customer_details { grid-column: 1; grid-row: 1 / span 2; }
:is(.skco-page, .skco-page-scope) #order_review_heading { grid-column: 2; grid-row: 1; }
:is(.skco-page, .skco-page-scope) #order_review { grid-column: 2; grid-row: 2; }
.skco-layout-one form.woocommerce-checkout { grid-template-columns: minmax(0, 1fr); }
.skco-layout-one #customer_details, .skco-layout-one #order_review_heading, .skco-layout-one #order_review { grid-column: 1; grid-row: auto; }
.skco-layout-one #customer_details { margin-bottom: var(--_gap, 28px); }

/* ---------- Boxes ---------- */
:is(.skco-page, .skco-page-scope) #customer_details,
:is(.skco-page, .skco-page-scope) #order_review {
	padding: var(--_pad);
	border: 1px solid var(--_card-b);
	border-radius: var(--_card-r);
	background: var(--_card-bg);
}
:is(.skco-page, .skco-page-scope) #order_review_heading {
	margin: 0;
	padding: var(--_pad) var(--_pad) 0;
	border: 1px solid var(--_card-b);
	border-bottom: 0;
	border-radius: var(--_card-r) var(--_card-r) 0 0;
	background: var(--_card-bg);
}
:is(.skco-page, .skco-page-scope) #order_review { border-top: 0; border-radius: 0 0 var(--_card-r) var(--_card-r); padding-top: 12px; }
.skco-page :is(#customer_details, #order_review, #order_review_heading), .skco-shadow :is(#customer_details, #order_review, #order_review_heading) { box-shadow: 0 6px 24px rgba(17, 24, 39, .06); }
:is(.skco-page, .skco-page-scope) #customer_details .col-1,
:is(.skco-page, .skco-page-scope) #customer_details .col-2 { float: none; width: 100%; max-width: 100%; }
:is(.skco-page, .skco-page-scope) #customer_details .col-2:empty,
:is(.skco-page, .skco-page-scope) #customer_details .woocommerce-shipping-fields:empty { display: none; }
:is(.skco-page, .skco-page-scope) :is(.woocommerce-billing-fields, .woocommerce-additional-fields) > h3,
:is(.skco-page, .skco-page-scope) #order_review_heading {
	margin: 0 0 18px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--_text);
}
:is(.skco-page, .skco-page-scope) #order_review_heading { margin: 0; }
:is(.skco-page, .skco-page-scope) .woocommerce-additional-fields > h3 { display: none; }
:is(.skco-page, .skco-page-scope) .woocommerce-additional-fields { margin-top: 4px; }

/* ---------- Fields ---------- */
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .form-row { width: 100%; float: none; margin: 0 0 16px; padding: 0; }
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .form-row label {
	display: block;
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--_text);
}
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .form-row .required { color: #dc2626; text-decoration: none; }
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .form-row .optional { font-weight: 400; color: #9ca3af; }
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout :is(input.input-text, select, textarea.input-text) {
	display: block;
	width: 100%;
	height: var(--_in-h);
	padding: 0 14px;
	border: 1px solid var(--_in-b);
	border-radius: var(--_in-r);
	background-color: var(--_in-bg);
	color: var(--_in-t);
	font-size: 15px;
	line-height: 1.4;
	box-shadow: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout textarea.input-text { height: auto; min-height: 92px; padding: 12px 14px; resize: vertical; }
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout :is(input.input-text, select, textarea.input-text):focus {
	outline: 0;
	border-color: var(--_a);
	box-shadow: 0 0 0 3px rgba(225, 29, 72, .15);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--_a) 18%, transparent);
}
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .woocommerce-invalid :is(input.input-text, select, textarea) { border-color: #dc2626; }
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout ::placeholder { color: #9ca3af; opacity: 1; }
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .select2-container { width: 100% !important; }
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .select2-container .select2-selection--single {
	height: var(--_in-h);
	border: 1px solid var(--_in-b);
	border-radius: var(--_in-r);
	background: var(--_in-bg);
}
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .select2-container .select2-selection__rendered { padding-left: 14px; line-height: calc(var(--_in-h) - 2px); color: var(--_in-t); font-size: 15px; }
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .select2-container .select2-selection__arrow { height: calc(var(--_in-h) - 2px); right: 8px; }
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .select2-container--open .select2-selection--single,
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .select2-container--focus .select2-selection--single { border-color: var(--_a); }
.skco-hidden { display: none !important; }

/* Dropdown (when it is not turned into the search box): same look as the other fields, text centred */
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout select:not(.select2-hidden-accessible) {
	-webkit-appearance: none;
	appearance: none;
	padding: 0 40px 0 14px;
	line-height: normal;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%236b7280' stroke-width='2' d='M1 1l5 5 5-5'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 12px 8px;
}
/* The label already says (ঐচ্ছিক); hide WooCommerce's English "(optional)" */
:is(.skco-page, .skco-page-scope) form.woocommerce-checkout .form-row label .optional { display: none; }

/* ---------- Order summary table ---------- */
:is(.skco-page, .skco-page-scope) table.shop_table { width: 100%; margin: 0 0 14px; border: 0; border-collapse: collapse; background: transparent; }
:is(.skco-page, .skco-page-scope) table.shop_table :is(th, td) { padding: 12px 0; border: 0; border-bottom: 1px solid var(--_line); background: transparent; font-size: 14px; vertical-align: top; }
:is(.skco-page, .skco-page-scope) table.shop_table thead th { padding-top: 0; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #6b7280; }
:is(.skco-page, .skco-page-scope) table.shop_table .product-total, 
:is(.skco-page, .skco-page-scope) table.shop_table tfoot td { text-align: right; }
:is(.skco-page, .skco-page-scope) table.shop_table tfoot th { font-weight: 600; text-align: left; }
:is(.skco-page, .skco-page-scope) table.shop_table .amount { font-weight: 700; color: var(--_text); }
:is(.skco-page, .skco-page-scope) table.shop_table tr.order-total :is(th, td) { padding-top: 16px; border-bottom: 0; font-size: 17px; }
:is(.skco-page, .skco-page-scope) table.shop_table tr.order-total .amount { font-size: 20px; color: var(--_a); }
:is(.skco-page, .skco-page-scope) table.shop_table ul#shipping_method { margin: 0; padding: 0; list-style: none; text-align: right; }
:is(.skco-page, .skco-page-scope) table.shop_table ul#shipping_method li { margin: 0; padding: 0; }
:is(.skco-page, .skco-page-scope) table.shop_table ul#shipping_method input { display: none; }
:is(.skco-page, .skco-page-scope) table.shop_table ul#shipping_method label { margin: 0; font-weight: 600; }
:is(.skco-page, .skco-page-scope) table.shop_table .woocommerce-shipping-destination { display: none; }

.skco-item { display: flex; align-items: center; gap: 12px; }
.skco-thumb { flex: 0 0 auto; display: block; width: 52px; height: 52px; overflow: hidden; border: 1px solid var(--_line, #eef0f2); border-radius: 10px; background: #f3f4f6; }
.skco-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.skco-pname { font-weight: 600; line-height: 1.4; }
.skco-qty { display: inline-flex; align-items: center; gap: 8px; margin: 8px 0 0; }
:is(.skco-page, .skco-page-scope) .product-name .skco-qty { margin-left: 64px; }
.skco-qty button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	background: #fff;
	color: #111827;
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
}
.skco-qty button:hover { border-color: #111827; background: #fff; color: #111827; }
.skco-qty .skco-qty-val { min-width: 22px; text-align: center; font-weight: 700; font-size: 14px; }
.skco-qty .skco-rm { margin-left: 6px; border-color: transparent; background: transparent; color: #9ca3af; font-size: 20px; }
.skco-qty .skco-rm:hover { border-color: transparent; background: transparent; color: #dc2626; }
.skco-qty.is-busy { opacity: .45; pointer-events: none; }
.skco-qty-err { display: block; margin: 6px 0 0 64px; font-size: 12px; color: #dc2626; }

/* ---------- Payment + button ---------- */
:is(.skco-page, .skco-page-scope) #payment { background: transparent; border-radius: 0; }
:is(.skco-page, .skco-page-scope) #payment ul.payment_methods { margin: 0 0 14px; padding: 0; border: 0; list-style: none; }
:is(.skco-page, .skco-page-scope) #payment ul.payment_methods > li { margin: 0 0 10px; padding: 13px 14px; border: 1px solid var(--_card-b); border-radius: 12px; background: #fff; transition: border-color .15s ease; }
:is(.skco-page, .skco-page-scope) #payment ul.payment_methods > li:has(input:checked) { border-color: var(--_a); }
:is(.skco-page, .skco-page-scope) #payment ul.payment_methods > li > label { display: inline; margin: 0; font-size: 15px; font-weight: 600; cursor: pointer; }
:is(.skco-page, .skco-page-scope) #payment ul.payment_methods input[type="radio"] { margin: 0 8px 0 0; accent-color: var(--_a); }
:is(.skco-page, .skco-page-scope) #payment div.payment_box { margin: 10px 0 0; padding: 12px 14px; border-radius: 10px; background: #f9fafb; color: #4b5563; font-size: 14px; }
:is(.skco-page, .skco-page-scope) #payment div.payment_box::before { display: none; }
:is(.skco-page, .skco-page-scope) #payment div.form-row { margin: 0; padding: 0; }
:is(.skco-page, .skco-page-scope) .woocommerce-terms-and-conditions-wrapper { margin: 0 0 14px; font-size: 13px; color: #6b7280; }
:is(.skco-page, .skco-page-scope) #place_order {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: var(--_btn-h);
	padding: 0 20px;
	border: 0;
	border-radius: var(--_btn-r);
	background: var(--_btn-bg);
	color: var(--_btn-c);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	box-shadow: none;
	transition: background-color .2s ease, transform .1s ease;
}
:is(.skco-page, .skco-page-scope) #place_order:hover { background: var(--_btn-bgh); color: var(--_btn-c); }
:is(.skco-page, .skco-page-scope) #place_order:active { transform: translateY(1px); }

/* ---------- Coupon box (when shown) ---------- */
:is(.skco-page, .skco-page-scope) .woocommerce-form-coupon-toggle .woocommerce-info,
:is(.skco-page, .skco-page-scope) .woocommerce-form-login-toggle .woocommerce-info {
	margin: 0 0 16px;
	padding: 12px 16px;
	border: 1px dashed var(--_card-b, #e5e7eb);
	border-radius: 12px;
	background: #fff;
	color: #374151;
	font-size: 14px;
}
:is(.skco-page, .skco-page-scope) .woocommerce-info::before { display: none; }
:is(.skco-page, .skco-page-scope) form.checkout_coupon { margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--_card-b, #e5e7eb); border-radius: 12px; }

/* ---------- Messages ---------- */
:is(.skco-page, .skco-page-scope) .woocommerce-error,
:is(.skco-page, .skco-page-scope) .woocommerce-message { margin: 0 0 16px; padding: 14px 18px 14px 40px; border: 0; border-radius: 12px; font-size: 14px; }
:is(.skco-page, .skco-page-scope) .woocommerce-error { background: #fef2f2; color: #991b1b; }
:is(.skco-page, .skco-page-scope) .woocommerce-message { background: #ecfdf5; color: #065f46; }

/* ---------- Thank-you page ---------- */
:is(.skco-page, .skco-page-scope) .woocommerce-order {
	--_a: var(--skco-accent, #e11d48);
	--_text: var(--skco-text, #111827);
	--_line: var(--skco-line, #eceef1);
	max-width: 820px;
	margin: 0 auto;
	padding: 32px;
	border: 1px solid var(--skco-card-border, #e5e7eb);
	border-radius: var(--skco-card-radius, 18px);
	background: var(--skco-card-bg, #fff);
	box-shadow: 0 8px 30px rgba(17, 24, 39, .06);
	color: var(--_text);
	box-sizing: border-box;
}
:is(.skco-page, .skco-page-scope) .woocommerce-order * { box-sizing: border-box; }

/* success banner */
:is(.skco-page, .skco-page-scope) .woocommerce-order > .woocommerce-thankyou-order-received {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 24px;
	padding: 18px 20px;
	border: 0;
	border-radius: 14px;
	background: #ecfdf5;
	color: #065f46;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.55;
}
:is(.skco-page, .skco-page-scope) .woocommerce-order > .woocommerce-thankyou-order-received::before {
	content: "\2713";
	flex: 0 0 38px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #10b981;
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
}

/* order number / date / total / payment cards */
:is(.skco-page, .skco-page-scope) .woocommerce-order ul.woocommerce-order-overview {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 12px;
	margin: 0 0 30px !important;
	padding: 0 !important;
	list-style: none;
}
:is(.skco-page, .skco-page-scope) .woocommerce-order ul.woocommerce-order-overview::before,
:is(.skco-page, .skco-page-scope) .woocommerce-order ul.woocommerce-order-overview::after { display: none !important; content: none !important; }
:is(.skco-page, .skco-page-scope) .woocommerce-order ul.woocommerce-order-overview li {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 14px 16px !important;
	border: 1px solid var(--_line) !important;
	border-radius: 12px;
	background: #f9fafb;
	color: #6b7280;
	font-size: 13px !important;
	line-height: 1.4;
	text-transform: none !important;
}
:is(.skco-page, .skco-page-scope) .woocommerce-order ul.woocommerce-order-overview li strong {
	display: block;
	margin-top: 5px;
	color: var(--_text);
	font-size: 16px;
	font-weight: 700;
	text-transform: none;
	overflow-wrap: anywhere;
}
:is(.skco-page, .skco-page-scope) .woocommerce-order ul.woocommerce-order-overview li.order strong { color: var(--_a); }

/* gateway note (e.g. "Pay with cash upon delivery.") */
:is(.skco-page, .skco-page-scope) .woocommerce-order > p { margin: 0 0 24px; color: #6b7280; font-size: 14px; }

/* sections: no theme boxes, simple headings */
:is(.skco-page, .skco-page-scope) .woocommerce-order :is(section.woocommerce-order-details, section.woocommerce-customer-details) {
	margin: 0 0 28px;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
}
:is(.skco-page, .skco-page-scope) .woocommerce-order :is(h2.woocommerce-order-details__title, .woocommerce-column__title, h2.woocommerce-column__title) {
	margin: 0 0 14px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: var(--_text);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.3;
}

/* order table */
:is(.skco-page, .skco-page-scope) .woocommerce-order table.woocommerce-table--order-details {
	width: 100%;
	margin: 0;
	border: 1px solid var(--_line) !important;
	border-radius: 14px;
	border-collapse: separate !important;
	border-spacing: 0;
	overflow: hidden;
	background: #fff;
}
:is(.skco-page, .skco-page-scope) .woocommerce-order table.woocommerce-table--order-details :is(th, td) {
	padding: 14px 18px !important;
	border: 0 !important;
	border-bottom: 1px solid var(--_line) !important;
	background: transparent;
	color: var(--_text);
	font-size: 14px;
	line-height: 1.5;
	vertical-align: top;
}
:is(.skco-page, .skco-page-scope) .woocommerce-order table.woocommerce-table--order-details thead th {
	background: #f9fafb;
	color: #6b7280;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}
:is(.skco-page, .skco-page-scope) .woocommerce-order table.woocommerce-table--order-details :is(.product-total, tfoot td) { text-align: right; }
:is(.skco-page, .skco-page-scope) .woocommerce-order table.woocommerce-table--order-details tfoot th { text-align: left; font-weight: 600; }
:is(.skco-page, .skco-page-scope) .woocommerce-order table.woocommerce-table--order-details tfoot tr:last-child :is(th, td) { border-bottom: 0 !important; }
:is(.skco-page, .skco-page-scope) .woocommerce-order table.woocommerce-table--order-details td.product-name a { color: var(--_text); font-weight: 600; text-decoration: none; }
:is(.skco-page, .skco-page-scope) .woocommerce-order table.woocommerce-table--order-details .product-quantity { color: #6b7280; font-weight: 600; }
:is(.skco-page, .skco-page-scope) .woocommerce-order table.woocommerce-table--order-details tfoot tr:nth-last-child(2) :is(th, td) { font-size: 16px; font-weight: 700; }
:is(.skco-page, .skco-page-scope) .woocommerce-order table.woocommerce-table--order-details tfoot tr:nth-last-child(2) .amount { color: var(--_a); font-size: 18px; }
:is(.skco-page, .skco-page-scope) .woocommerce-order table.woocommerce-table--order-details .shipped_via { color: #6b7280; font-size: 13px; }

/* address */
:is(.skco-page, .skco-page-scope) .woocommerce-order .woocommerce-columns--addresses { display: block; margin: 0; }
:is(.skco-page, .skco-page-scope) .woocommerce-order .woocommerce-columns--addresses::before,
:is(.skco-page, .skco-page-scope) .woocommerce-order .woocommerce-columns--addresses::after { display: none !important; }
:is(.skco-page, .skco-page-scope) .woocommerce-order .woocommerce-columns--addresses .woocommerce-column {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}
:is(.skco-page, .skco-page-scope) .woocommerce-order .woocommerce-columns--addresses address {
	margin: 0;
	padding: 18px 20px !important;
	border: 1px solid var(--_line) !important;
	border-radius: 14px;
	background: #f9fafb;
	font-style: normal;
	font-size: 15px;
	line-height: 1.8;
	color: var(--_text);
}
:is(.skco-page, .skco-page-scope) .woocommerce-order .woocommerce-customer-details--phone,
:is(.skco-page, .skco-page-scope) .woocommerce-order .woocommerce-customer-details--email { margin: 6px 0 0; padding: 0; }

/* continue shopping */
:is(.skco-page, .skco-page-scope) .skco-continue { margin: 28px 0 0; text-align: center; }
:is(.skco-page, .skco-page-scope) a.skco-continue-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 32px;
	border-radius: 12px;
	background: var(--skco-btn-bg, var(--skco-accent, #e11d48));
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color .2s ease;
}
:is(.skco-page, .skco-page-scope) a.skco-continue-btn:hover { background: var(--skco-btn-bg-h, #111827); color: #fff; }

/* ---------- Tablet / mobile ---------- */
@media (max-width: 900px) {
	:is(.skco-page, .skco-page-scope) form.woocommerce-checkout { grid-template-columns: minmax(0, 1fr); }
	:is(.skco-page, .skco-page-scope) #customer_details,
	:is(.skco-page, .skco-page-scope) #order_review_heading,
	:is(.skco-page, .skco-page-scope) #order_review { grid-column: 1; grid-row: auto; }
	:is(.skco-page, .skco-page-scope) #customer_details { margin-bottom: 20px; }
	:is(.skco-page, .skco-page-scope) .woocommerce-order { padding: 18px 16px; }
	:is(.skco-page, .skco-page-scope) #customer_details,
	:is(.skco-page, .skco-page-scope) #order_review,
	:is(.skco-page, .skco-page-scope) #order_review_heading { padding-left: 16px; padding-right: 16px; }
}

/* =====================================================================
   CART PAGE (body.skco-cart)
   ===================================================================== */
.skco-cart {
	--_a: var(--skco-accent, #e11d48);
	--_line: #eceef1;
	--_text: #111827;
}
.skco-cart :is(table.shop_table.cart, .cart_totals) * { box-sizing: border-box; }

/* layout: items left, totals right */
.skco-cart div.woocommerce:has(> form.woocommerce-cart-form) {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
	gap: 0 28px;
	align-items: start;
}
.skco-cart div.woocommerce:has(> form.woocommerce-cart-form) > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.skco-cart div.woocommerce:has(> form.woocommerce-cart-form) > form.woocommerce-cart-form { grid-column: 1; grid-row: 2; min-width: 0; }
.skco-cart div.woocommerce:has(> form.woocommerce-cart-form) > .cart-collaterals { grid-column: 2; grid-row: 2; min-width: 0; position: sticky; top: 24px; }
.skco-cart .cart-collaterals .cart_totals { float: none !important; width: 100% !important; margin: 0 !important; }
.skco-cart .cart-collaterals .cross-sells { float: none; width: 100%; }

/* items: compact cards */
.skco-cart table.shop_table.cart { display: block; width: 100%; margin: 0; border: 0 !important; background: transparent; }
.skco-cart table.shop_table.cart thead { display: none; }
.skco-cart table.shop_table.cart tbody { display: block; }
.skco-cart table.shop_table.cart tr.cart_item {
	display: grid !important;
	grid-template-columns: 76px minmax(0, 1fr) auto;
	grid-template-rows: auto auto auto;
	grid-template-areas:
		"thumb name remove"
		"thumb price price"
		"thumb qty subtotal";
	column-gap: 14px;
	row-gap: 4px;
	align-items: center;
	align-content: center;
	margin: 0 0 10px !important;
	padding: 12px !important;
	border: 1px solid var(--_line) !important;
	border-radius: 14px;
	background: #fff;
}
.skco-cart table.shop_table.cart tr.cart_item > td {
	display: block !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent;
	line-height: 1.4;
	text-align: left !important;
}
.skco-cart table.shop_table_responsive.cart tr td::before,
.skco-cart table.shop_table.cart tr.cart_item > td::after { display: none !important; content: none !important; }

.skco-cart td.product-thumbnail { grid-area: thumb; align-self: center; }
.skco-cart td.product-thumbnail a { display: block; }
.skco-cart td.product-thumbnail img { display: block; width: 76px !important; max-width: 76px !important; height: 76px !important; object-fit: cover; border-radius: 10px; }
.skco-cart td.product-name { grid-area: name; font-size: 15px; font-weight: 600; }
.skco-cart td.product-name a { color: var(--_text); font-weight: 600; text-decoration: none; }
.skco-cart td.product-name a:hover { color: var(--_a); }
.skco-cart td.product-name dl.variation { margin: 2px 0 0; font-size: 13px; color: #6b7280; }
.skco-cart td.product-name dl.variation :is(dt, dd) { display: inline; margin: 0; padding: 0; }
.skco-cart td.product-name dl.variation dd p { display: inline; margin: 0; }
.skco-cart td.product-price { grid-area: price; color: #6b7280; font-size: 13px; }
.skco-cart td.product-quantity { grid-area: qty; }
.skco-cart td.product-subtotal { grid-area: subtotal; justify-self: end; font-size: 16px; font-weight: 700; color: var(--_text); text-align: right !important; }
.skco-cart td.product-remove { grid-area: remove; justify-self: end; align-self: start; }
.skco-cart td.product-remove a.remove {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 28px !important;
	height: 28px !important;
	margin: 0 !important;
	border-radius: 50%;
	background: #f3f4f6 !important;
	color: #6b7280 !important;
	font-size: 18px !important;
	font-weight: 400;
	line-height: 1 !important;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}
.skco-cart td.product-remove a.remove:hover { background: #fee2e2 !important; color: #dc2626 !important; }

/* quantity  [ - 2 + ]  (fixed size so every part has the same height) */
.skco-cq {
	display: inline-flex !important;
	align-items: stretch !important;
	height: 40px !important;
	border: 1px solid #d1d5db;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}
.skco-cq > * { flex: 0 0 auto; margin: 0 !important; }
.skco-cq .quantity { display: flex !important; align-items: stretch; width: 44px; height: 38px !important; margin: 0 !important; float: none !important; }
.skco-cq .quantity label { display: none; }
.skco-cq .quantity .qty {
	display: block;
	width: 44px !important;
	height: 38px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	text-align: center;
	font-size: 15px;
	font-weight: 700;
	line-height: 38px;
	-moz-appearance: textfield;
	appearance: textfield;
}
.skco-cq .quantity .qty::-webkit-inner-spin-button,
.skco-cq .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.skco-cq .skco-cq-b {
	display: block !important;
	width: 36px !important;
	min-width: 36px !important;
	height: 38px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #f4f4f5 !important;
	color: #111827 !important;
	font-size: 18px !important;
	font-weight: 500;
	line-height: 38px !important;
	text-align: center;
	cursor: pointer;
	box-shadow: none !important;
}
.skco-cq .skco-cq-b:hover { background: #e5e7eb !important; }

/* coupon row */
.skco-cart table.shop_table.cart tr:not(.cart_item) { display: block; }
.skco-cart table.shop_table.cart td.actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 4px 0 0 !important;
	border: 0 !important;
	background: transparent;
	text-align: left !important;
}
.skco-cart td.actions .coupon { display: flex; flex: 1 1 320px; gap: 10px; float: none; margin: 0; padding: 0; }
.skco-cart td.actions .coupon label { display: none; }
.skco-cart td.actions .coupon #coupon_code {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
	height: 46px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid #d1d5db;
	border-radius: 10px;
	background: #fff;
	font-size: 15px;
	box-shadow: none;
}
.skco-cart td.actions .coupon #coupon_code:focus { outline: 0; border-color: var(--_a); }
.skco-cart td.actions button.button[name="apply_coupon"] {
	height: 46px;
	margin: 0;
	padding: 0 20px;
	border: 1px solid #111827;
	border-radius: 10px;
	background: #fff;
	color: #111827;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	box-shadow: none;
}
.skco-cart td.actions button.button[name="apply_coupon"]:hover { background: #111827; color: #fff; }
/* the cart updates by itself when the quantity changes; the button stays in the page for no-JS visitors */
.skco-cq-js td.actions button[name="update_cart"] { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0, 0, 0, 0); opacity: 0; }
.skco-cart td.actions button[name="update_cart"] { height: 46px; margin: 0 0 0 auto; padding: 0 20px; border-radius: 10px; font-size: 15px; }

/* totals */
.skco-cart .cart_totals {
	padding: 22px 22px 24px !important;
	border: 1px solid var(--_line) !important;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 24px rgba(17, 24, 39, .06);
}
.skco-cart .cart_totals > h2 {
	margin: 0 0 10px !important;
	padding: 4px 0 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.5 !important;
	color: var(--_text);
}
.skco-cart .cart_totals table.shop_table { width: 100%; margin: 0 0 16px; border: 0 !important; border-collapse: collapse; background: transparent; }
.skco-cart .cart_totals table.shop_table :is(th, td) { padding: 12px 0 !important; border: 0 !important; border-bottom: 1px solid var(--_line) !important; background: transparent; font-size: 14px; line-height: 1.5; vertical-align: top; }
.skco-cart .cart_totals table.shop_table th { width: 42%; font-weight: 600; text-align: left; }
.skco-cart .cart_totals table.shop_table td { text-align: right !important; }
.skco-cart .cart_totals table.shop_table td::before { display: none !important; content: none !important; }
.skco-cart .cart_totals tr.order-total :is(th, td) { padding-top: 16px !important; border-bottom: 0 !important; font-size: 17px; }
.skco-cart .cart_totals tr.order-total .amount { color: var(--_a); font-size: 20px; font-weight: 700; }
.skco-cart .cart_totals ul#shipping_method { margin: 0; padding: 0; list-style: none; text-align: right; }
.skco-cart .cart_totals ul#shipping_method li { margin: 0; padding: 0; }
.skco-cart .cart_totals ul#shipping_method input { display: none; }
.skco-cart .cart_totals ul#shipping_method label { margin: 0; color: #6b7280; font-weight: 400; }
.skco-cart .woocommerce-shipping-destination,
.skco-cart .shipping-calculator-button,
.skco-cart .woocommerce-shipping-calculator { display: none !important; }
.skco-cart .wc-proceed-to-checkout { margin: 0 !important; padding: 0 !important; }
.skco-cart .wc-proceed-to-checkout a.checkout-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: 54px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 20px !important;
	border: 0 !important;
	border-radius: 12px;
	background: var(--skco-btn-bg, var(--_a)) !important;
	color: #fff !important;
	font-size: 17px !important;
	font-weight: 700;
	line-height: 1.3 !important;
	text-align: center;
	text-decoration: none;
	transition: background-color .2s ease;
}
.skco-cart .wc-proceed-to-checkout a.checkout-button:hover { background: var(--skco-btn-bg-h, #111827) !important; color: #fff !important; }

/* messages + empty cart */
.skco-cart .woocommerce-message,
.skco-cart .woocommerce-info,
.skco-cart .woocommerce-error { margin: 0 0 14px !important; padding: 13px 18px !important; border: 0 !important; border-radius: 12px; font-size: 14px; line-height: 1.5; }
.skco-cart .woocommerce-error { list-style: none; }
.skco-cart .woocommerce-message { background: #ecfdf5; color: #065f46; }
.skco-cart .woocommerce-info { background: #f3f4f6; color: #374151; }
.skco-cart .woocommerce-error { background: #fef2f2; color: #991b1b; }
.skco-cart .woocommerce-message::before, .skco-cart .woocommerce-info::before, .skco-cart .woocommerce-error::before { display: none !important; }
.skco-cart .woocommerce-message a.button, .skco-cart .woocommerce-message .restore-item { float: none; margin-left: 10px; padding: 0; background: none; color: inherit; font-weight: 700; text-decoration: underline; }
.skco-cart p.cart-empty { max-width: 560px; margin: 40px auto 16px !important; padding: 36px 20px !important; border: 1px dashed #d1d5db !important; border-radius: 16px; background: #fff; text-align: center; font-size: 17px; color: #4b5563; }
.skco-cart .return-to-shop { text-align: center; }
.skco-cart .return-to-shop a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 30px;
	border: 0;
	border-radius: 12px;
	background: var(--_a);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
}
.skco-cart .return-to-shop a.button:hover { background: #111827; color: #fff; }

@media (max-width: 900px) {
	.skco-cart div.woocommerce:has(> form.woocommerce-cart-form) { display: block; }
	.skco-cart div.woocommerce:has(> form.woocommerce-cart-form) > .cart-collaterals { position: static; margin-top: 18px; }
}
@media (max-width: 520px) {
	.skco-cart table.shop_table.cart tr.cart_item { grid-template-columns: 64px minmax(0, 1fr) auto; column-gap: 10px; padding: 10px !important; }
	.skco-cart td.product-thumbnail img { width: 64px !important; max-width: 64px !important; height: 64px !important; }
	.skco-cart .cart_totals { padding: 18px 16px 20px !important; }
}
