/* Klíó — WooCommerce cart + checkout in the original design.
   Used inside .klio-cart / .klio-checkout wrappers (Elementor Shortcode widget). */

.klio-cart, .klio-checkout { --k-red:#bf1e2e; --k-ink:#271f20; --k-line:#ded2c7; --k-box:#f4ede6; color:var(--k-ink); font:400 16px/1.5 Arial,sans-serif; }
.klio-cart *, .klio-checkout * { box-sizing:border-box; }
.klio-cart h2, .klio-checkout h2, .klio-checkout h3 { margin:0; color:var(--k-ink); font:400 30px/1.5 Georgia,serif; letter-spacing:0; text-transform:none; }
.klio-cart a, .klio-checkout a { color:inherit; text-decoration:none; }
.klio-cart .woocommerce-notices-wrapper:empty, .klio-checkout .woocommerce-notices-wrapper:empty { display:none; }
.klio-cart .woocommerce-message, .klio-cart .woocommerce-info, .klio-cart .woocommerce-error,
.klio-checkout .woocommerce-message, .klio-checkout .woocommerce-info, .klio-checkout .woocommerce-error {
	margin:0 0 24px; padding:16px 20px; border:1px solid var(--k-line); border-left:4px solid var(--k-red); background:#fff; color:var(--k-ink); font-size:15px; list-style:none; }
.klio-cart .woocommerce-message::before, .klio-cart .woocommerce-info::before, .klio-cart .woocommerce-error::before,
.klio-checkout .woocommerce-message::before, .klio-checkout .woocommerce-info::before, .klio-checkout .woocommerce-error::before { display:none; }
.klio-cart .woocommerce-message .button, .klio-checkout .woocommerce-info a { float:none; margin-left:8px; padding:0; background:none; color:var(--k-red); font-weight:700; }

/* ---------- Cart ---------- */
.klio-cart > .woocommerce { display:grid; grid-template-columns:1.7fr .8fr; gap:55px; align-items:start; }
.klio-cart > .woocommerce > .woocommerce-notices-wrapper { grid-column:1/-1; }
.klio-cart .woocommerce-cart-form { margin:0; min-width:0; }
.klio-cart table.shop_table.cart { display:block; width:100%; margin:0; border:0; border-radius:0; border-collapse:collapse; font-size:16px; line-height:1.5; }
.klio-cart table.shop_table td, .klio-cart table.shop_table th, .klio-checkout table.shop_table td, .klio-checkout table.shop_table th { font-size:inherit; line-height:inherit; }
.klio-cart table.shop_table.cart thead { display:none; }
.klio-cart table.shop_table.cart tbody { display:block; }
.klio-cart table.shop_table.cart tr.cart_item {
	display:grid; grid-template-columns:100px minmax(0,1fr) auto auto 30px; grid-template-rows:1fr auto auto 1fr;
	grid-template-areas:"img . qty total remove" "img name qty total remove" "img price qty total remove" "img . qty total remove";
	align-items:center; column-gap:24px; padding:20px 0; border-bottom:1px solid var(--k-line); }
.klio-cart table.shop_table.cart tr.cart_item:first-child { border-top:1px solid var(--k-line); }
.klio-cart table.shop_table.cart td { display:block; padding:0; border:0; background:none; text-align:left; }
.klio-cart table.shop_table.cart td::before { display:none !important; }
.klio-cart td.product-thumbnail { grid-area:img; align-self:center; }
.klio-cart td.product-thumbnail img, .klio-cart td.product-thumbnail a img { display:block; width:100px !important; height:100px; max-width:none; object-fit:cover; box-shadow:none; }
.klio-cart table.shop_table td.product-name { grid-area:name; margin:0 0 8px; font:400 23px/1.5 Georgia,serif; }
.klio-cart td.product-name a { color:var(--k-ink); }
.klio-cart td.product-name .variation, .klio-cart td.product-name dl { margin:4px 0 0; font:13px/1.5 Arial,sans-serif; }
.klio-cart td.product-price { grid-area:price; }
.klio-cart td.product-quantity { grid-area:qty; }
.klio-cart td.product-subtotal { grid-area:total; font-weight:700; }
.klio-cart td.product-remove { grid-area:remove; width:auto; text-align:center; }
.klio-cart td.product-remove a.remove { display:block; width:auto; height:auto; padding:10px 12px; border-radius:0; background:#fff !important; color:var(--k-red) !important; font:400 25px/1.5 Arial,sans-serif; text-align:center; }
.klio-cart td.product-remove a.remove:hover { color:var(--k-ink) !important; }
.klio-cart table.shop_table.cart tr:not(.cart_item) { display:block; }
.klio-cart table.shop_table.cart td.actions { display:none; padding:0; }

/* Quantity stepper (buttons added by cart.js) */
.klio-cart .quantity { display:inline-flex; align-items:center; border:1px solid var(--k-line); background:#fff; }
.klio-cart .quantity .qty { width:25px !important; min-width:25px; field-sizing:content; height:auto !important; min-height:0 !important; margin:0 !important; padding:0 8px !important; border:0 !important; border-radius:0 !important; background:transparent !important; color:var(--k-ink) !important; font:700 16px/24px Arial,sans-serif !important; text-align:center; -moz-appearance:textfield; appearance:textfield; box-shadow:none !important; outline-offset:-2px; }
.klio-cart .quantity .qty::-webkit-inner-spin-button, .klio-cart .quantity .qty::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.klio-cart .klio-qty-btn { min-height:0; margin:0; padding:10px 12px; border:0; border-radius:0; background:#fff; color:var(--k-ink); font:400 18px/1.5 Arial,sans-serif; cursor:pointer; box-shadow:none; }
.klio-cart .klio-qty-btn:hover, .klio-cart .klio-qty-btn:focus { background:#fff; color:var(--k-red); }

/* Totals box */
.klio-cart .cart-collaterals { width:auto; min-width:0; }
.klio-cart .cart-collaterals .cart_totals { float:none; width:auto; height:max-content; padding:35px; background:var(--k-box); }
.klio-cart .cart_totals table.shop_table { display:block; width:100%; margin:0; border:0; border-radius:0; font-size:16px; line-height:1.5; }
.klio-cart .cart_totals table.shop_table tbody { display:block; }
.klio-cart .cart_totals table.shop_table tr { display:flex; justify-content:space-between; gap:25px; padding:18px 0; border-top:1px solid var(--k-line); }
.klio-cart .cart_totals table.shop_table tr.cart-subtotal { display:none; }
.klio-cart .cart_totals table.shop_table th, .klio-cart .cart_totals table.shop_table td { display:block; padding:0; border:0; background:none; font-weight:400; text-align:left; }
.klio-cart .cart_totals table.shop_table td { font-weight:700; text-align:right; }
.klio-cart .cart_totals table.shop_table td::before { display:none !important; }
.klio-cart .cart_totals table.shop_table td strong { font-weight:700; }
.klio-cart .cart_totals .includes_tax, .klio-cart .cart_totals small { display:block; font-weight:400; font-size:12px; }
.klio-cart .wc-proceed-to-checkout { padding:0; }
.klio-cart .wc-proceed-to-checkout a.checkout-button, .klio-checkout #place_order {
	display:block; width:100%; margin:22px 0 0; padding:17px; border:0; border-radius:0; background:var(--k-red); color:#fff;
	font:700 16px/24px Arial,sans-serif; text-align:center; text-transform:none; letter-spacing:0; box-shadow:none; cursor:pointer; }
.klio-cart .wc-proceed-to-checkout a.checkout-button:hover, .klio-checkout #place_order:hover { background:#a51a28; color:#fff; }

/* Empty cart */
.klio-cart .wc-empty-cart-message, .klio-cart .return-to-shop { grid-column:1/-1; }
.klio-cart .wc-empty-cart-message { padding:80px 80px 0; text-align:center; }
.klio-cart .cart-empty.woocommerce-info { margin:0; padding:0; border:0; background:none; font:400 42px/1.5 Georgia,serif; text-align:center; }
.klio-cart .return-to-shop { margin:0; padding:0 80px 80px; text-align:center; }
.klio-cart .return-to-shop a.button { display:inline; padding:0; border:0; background:none; color:var(--k-red); font:700 16px/24px Arial,sans-serif; }
.klio-cart .return-to-shop a.button:hover { background:none; color:var(--k-ink); }

/* ---------- Checkout ---------- */
.klio-checkout form.checkout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr); column-gap:60px; align-items:start;
	grid-template-areas:"billing summary-head" "billing summary" "pay-head summary" "payment summary" ". summary"; grid-template-rows:auto auto auto auto 1fr; }
.klio-checkout form.checkout > .woocommerce-NoticeGroup { grid-column:1/-1; }
.klio-checkout #customer_details { grid-area:billing; float:none; width:auto; margin:0; }
.klio-checkout #customer_details .col-1, .klio-checkout #customer_details .col-2 { float:none; width:100%; max-width:none; padding:0; }
.klio-checkout #customer_details .col-2:not(:has(*:not(.woocommerce-shipping-fields):not(.woocommerce-additional-fields))) { display:none; }
.klio-checkout .woocommerce-billing-fields > h3 { margin:0; font:400 30px/1.5 Georgia,serif; }
.klio-checkout .woocommerce-billing-fields__field-wrapper { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.klio-checkout .woocommerce-billing-fields__field-wrapper::before, .klio-checkout .woocommerce-billing-fields__field-wrapper::after { display:none; }
.klio-checkout .form-row { float:none !important; width:auto !important; margin:0 !important; padding:0 !important; }
.klio-checkout .form-row-wide { grid-column:1/-1; }
.klio-checkout .klio-hidden, .klio-checkout #billing_country_field { display:none !important; }
.klio-checkout .form-row label { display:block !important; margin:0 !important; padding:0 !important; color:var(--k-ink) !important; font:700 12px/18px Arial,sans-serif !important; }
.klio-checkout .form-row label .required, .klio-checkout .form-row label .optional { display:none; }
.klio-checkout .form-row .woocommerce-input-wrapper { display:block; }
.klio-checkout .form-row input.input-text, .klio-checkout .form-row textarea, .klio-checkout .form-row select {
	display:block; width:100%; height:auto; min-height:0; margin:7px 0 0 !important; padding:14px !important; border:1px solid var(--k-line) !important; border-radius:0 !important; background:#fff !important;
	color:var(--k-ink) !important; font:700 12px/18px Arial,sans-serif !important; box-shadow:none !important; outline-offset:0; }
.klio-checkout .form-row input.input-text:focus { border-color:var(--k-ink) !important; outline:none; }
.klio-checkout .form-row.woocommerce-invalid input.input-text { border-color:var(--k-red); }

/* Order summary box (right) */
.klio-checkout #order_review_heading { grid-area:summary-head; margin:0; padding:35px 35px 0; background:var(--k-box); font:400 30px/1.5 Georgia,serif; }
.klio-checkout #order_review { display:contents; }
.klio-checkout table.woocommerce-checkout-review-order-table { grid-area:summary; display:block; width:100%; margin:0; padding:0 35px 35px; border:0; border-radius:0; background:var(--k-box); font-size:16px; line-height:1.5; }
.klio-checkout table.woocommerce-checkout-review-order-table thead, .klio-checkout table.woocommerce-checkout-review-order-table tr.cart-subtotal { display:none; }
.klio-checkout table.woocommerce-checkout-review-order-table tbody, .klio-checkout table.woocommerce-checkout-review-order-table tfoot { display:block; }
.klio-checkout table.woocommerce-checkout-review-order-table tr { display:flex; justify-content:space-between; gap:25px; padding:18px 0; border-top:1px solid var(--k-line); }
.klio-checkout table.woocommerce-checkout-review-order-table td, .klio-checkout table.woocommerce-checkout-review-order-table th { display:block; padding:0; border:0; background:none; font-weight:400; text-align:left; }
.klio-checkout table.woocommerce-checkout-review-order-table .product-total { font-weight:700; text-align:right; }
.klio-checkout table.woocommerce-checkout-review-order-table .product-quantity { font-weight:400; }
.klio-checkout table.woocommerce-checkout-review-order-table tr.order-total { font-size:19px; line-height:1.5; }
.klio-checkout table.woocommerce-checkout-review-order-table tr.order-total td { font-weight:700; text-align:right; }
.klio-checkout table.woocommerce-checkout-review-order-table tr.order-total td strong { font-weight:700; }
.klio-checkout table.woocommerce-checkout-review-order-table .includes_tax, .klio-checkout table.woocommerce-checkout-review-order-table small { display:block; font-size:12px; font-weight:400; }

/* Payment (left, under the fields) */
.klio-checkout .klio-payment-title { grid-area:pay-head; margin:55px 0 0; font:400 30px/1.5 Georgia,serif; }
.klio-checkout #payment { grid-area:payment; margin:0; padding:0; border-radius:0; background:none; }
.klio-checkout #payment ul.payment_methods { margin:0; padding:0; border:0; list-style:none; }
.klio-checkout #payment ul.payment_methods li { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 10px; padding:18px; border:1px solid var(--k-line); background:#fff; line-height:24px; }
.klio-checkout #payment ul.payment_methods li:last-child { margin-bottom:0; }
.klio-checkout #payment ul.payment_methods li input { margin:0; }
.klio-checkout #payment ul.payment_methods li label { display:flex; flex:1; align-items:center; gap:10px; margin:0; font:400 16px/24px Arial,sans-serif; }
.klio-checkout #payment ul.payment_methods li label img { max-height:24px; margin:0 0 0 auto; }
.klio-checkout #payment div.payment_box { flex-basis:100%; margin:6px 0 0; padding:0; background:none; color:#685b58; font-size:14px; }
.klio-checkout #payment div.payment_box::before { display:none; }
/* A plain text description (no card fields) is hidden, like the design. */
.klio-checkout #payment div.payment_box:not(:has(input, select, iframe, fieldset, form, .wc-block-components-payment-method-icons)) { display:none !important; }
.klio-checkout #payment div.payment_box p { margin:0; }
.klio-checkout #payment div.form-row.place-order { margin:0 !important; padding:0 !important; }
.klio-checkout .woocommerce-terms-and-conditions-wrapper { margin:22px 0 0; }
.klio-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text { margin:0 0 12px; }
.klio-checkout .woocommerce-terms-and-conditions-wrapper .form-row.validate-required { margin:0 !important; }
.klio-checkout .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox { display:flex !important; align-items:center; gap:10px; color:var(--k-ink) !important; font:400 15px/1.5 Arial,sans-serif !important; cursor:pointer; }
.klio-checkout .woocommerce-terms-and-conditions-wrapper input[type=checkbox] { width:18px; height:18px; margin:0; accent-color:var(--k-red); }
.klio-checkout .woocommerce-terms-and-conditions-wrapper .required { display:none; }
.klio-checkout .woocommerce-terms-and-conditions-wrapper a, .klio-checkout .woocommerce-privacy-policy-text a { color:var(--k-red); text-decoration:underline; text-underline-offset:3px; }
.klio-checkout .woocommerce-terms-and-conditions { display:none !important; }
.klio-checkout .woocommerce-privacy-policy-text, .klio-checkout .woocommerce-terms-and-conditions-wrapper { margin:16px 0 0; color:#685b58; font-size:13px; line-height:1.6; }
.klio-checkout .woocommerce-privacy-policy-text p { margin:0; }

/* Login / coupon toggles above the checkout */
.klio-checkout .woocommerce-form-login-toggle, .klio-checkout .woocommerce-form-coupon-toggle { grid-column:1/-1; }

@media (max-width:850px) {
	.klio-cart > .woocommerce { grid-template-columns:1fr; }
	.klio-cart table.shop_table.cart tr.cart_item { grid-template-columns:70px minmax(0,1fr) auto; grid-template-rows:1fr auto auto 1fr auto;
		grid-template-areas:"img . remove" "img name remove" "img price remove" "img . remove" "qty total ."; row-gap:0; }
	.klio-cart td.product-thumbnail img, .klio-cart td.product-thumbnail a img { width:70px !important; height:70px; }
	.klio-cart td.product-quantity { margin-top:24px; }
	.klio-cart td.product-subtotal { margin-top:24px; }
	.klio-checkout form.checkout { grid-template-columns:minmax(0,1fr); grid-template-areas:"billing" "pay-head" "payment" "summary-head" "summary"; grid-template-rows:none; }
	.klio-checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns:1fr; }
	.klio-checkout #order_review_heading { margin-top:60px; }
}
@media (max-width:700px) {
	.klio-cart .wc-empty-cart-message { padding:80px 0 0; }
	.klio-cart .return-to-shop { padding:0 0 80px; }
}

/* ---------- Thank-you page (order received) ---------- */
.klio-checkout .woocommerce-order { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr); column-gap:60px; align-items:start; }
.klio-checkout .woocommerce-order > * { grid-column:1/-1; margin:0; }
.klio-checkout .woocommerce-order > .woocommerce-order-details { grid-column:1; }
.klio-checkout .woocommerce-order > .woocommerce-customer-details { grid-column:2; grid-row:span 3; padding:35px; background:var(--k-box); }
.klio-checkout .woocommerce-thankyou-order-received { margin:0 0 32px; padding:0; border:0; background:none; color:var(--k-ink); font:400 30px/1.5 Georgia,serif; }
.klio-checkout .woocommerce-thankyou-order-received::before { display:none; }
.klio-checkout ul.woocommerce-order-overview { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:0; margin:0 0 40px; padding:0; border-top:1px solid var(--k-line); border-bottom:1px solid var(--k-line); list-style:none; }
.klio-checkout ul.woocommerce-order-overview::before, .klio-checkout ul.woocommerce-order-overview::after { display:none; }
.klio-checkout ul.woocommerce-order-overview li { float:none; margin:0; padding:18px 20px 18px 0; border:0; color:var(--k-ink); font:700 12px/18px Arial,sans-serif; text-transform:none; letter-spacing:0; }
.klio-checkout ul.woocommerce-order-overview li strong { display:block; margin-top:6px; font:700 19px/1.5 Arial,sans-serif; }
.klio-checkout .woocommerce-order > p:not(.woocommerce-thankyou-order-received) { margin:0 0 40px; color:#685b58; }
.klio-checkout .woocommerce-order-details h2, .klio-checkout .woocommerce-customer-details h2 { margin:0 0 4px; font:400 30px/1.5 Georgia,serif; }
.klio-checkout table.woocommerce-table--order-details { display:block; width:100%; margin:0; border:0; border-radius:0; font-size:16px; line-height:1.5; }
.klio-checkout table.woocommerce-table--order-details thead { display:none; }
.klio-checkout table.woocommerce-table--order-details tbody, .klio-checkout table.woocommerce-table--order-details tfoot { display:block; }
.klio-checkout table.woocommerce-table--order-details tr { display:flex; justify-content:space-between; gap:25px; padding:18px 0; border-top:1px solid var(--k-line); }
.klio-checkout table.woocommerce-table--order-details th, .klio-checkout table.woocommerce-table--order-details td { display:block; padding:0; border:0; background:none; font-weight:400; text-align:left; }
.klio-checkout table.woocommerce-table--order-details td:last-child, .klio-checkout table.woocommerce-table--order-details tfoot td { font-weight:700; text-align:right; }
.klio-checkout table.woocommerce-table--order-details tfoot th { font-weight:400 !important; }
.klio-checkout table.woocommerce-table--order-details .product-quantity { font-weight:400; }
.klio-checkout table.woocommerce-table--order-details .wc-item-meta { margin:4px 0 0; padding:0; list-style:none; font-size:13px; }
.klio-checkout .woocommerce-order-details .order-again { margin:22px 0 0; }
.klio-checkout .woocommerce-order-details .order-again .button { display:inline-block; padding:16px 24px; border:0; border-radius:0; background:var(--k-red); color:#fff; font:400 16px/1.5 Arial,sans-serif; }
.klio-checkout .woocommerce-customer-details address { margin:0; padding:18px 0 0; border:0; border-top:1px solid var(--k-line); border-radius:0; color:var(--k-ink); font-style:normal; font-size:16px; line-height:1.8; }
.klio-checkout .woocommerce-customer-details address p { margin:8px 0 0; padding:0 !important; }
.klio-checkout .woocommerce-customer-details address p::before { display:none !important; }
.klio-checkout .woocommerce-customer-details .col2-set .col-1, .klio-checkout .woocommerce-customer-details .col2-set .col-2 { float:none; width:auto; margin:0 0 24px; }
@media (max-width:850px) {
	.klio-checkout .woocommerce-order { grid-template-columns:minmax(0,1fr); }
	.klio-checkout .woocommerce-order > .woocommerce-order-details, .klio-checkout .woocommerce-order > .woocommerce-customer-details { grid-column:1; grid-row:auto; }
	.klio-checkout .woocommerce-order > .woocommerce-customer-details { margin-top:60px; }
}
