/* Native WooCommerce basket and checkout. Keep templates, hooks and gateway state intact. */
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout){padding:0}
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main>.container{width:100%;max-width:1280px;margin-inline:auto;padding:24px clamp(16px,3vw,40px) 56px;box-sizing:border-box}
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main .woocommerce{min-width:0;font-family:var(--cp-font-body,inherit)}
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main h1{margin:16px 0 28px;padding:0;border:0;font-size:clamp(26px,3vw,36px)}
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main :is(input,select,textarea,button,.button){max-width:100%;box-sizing:border-box}
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){font-size:16px;min-height:46px}
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main :is(a,button,input,select,textarea):focus-visible{outline:3px solid #1749d1;outline-offset:3px}
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main :is(.woocommerce-error,.woocommerce-info,.woocommerce-message){line-height:1.6;overflow-wrap:anywhere;margin-bottom:16px;padding:16px 20px 16px 48px;text-align:left}
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main :is(.woocommerce-error,.woocommerce-info,.woocommerce-message)::before{left:20px;top:18px}
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main :is(.woocommerce-error,.woocommerce-info,.woocommerce-message) a{display:inline;float:none;margin:0}
/* Basket: the product table and full-width totals share one centered container. */
body.cpx-theme.woocommerce-cart #main .entry-content>.woocommerce{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
body.cpx-theme.woocommerce-cart #main .entry-content>.woocommerce>*{min-width:0;grid-column:1/-1}
body.cpx-theme.woocommerce-cart #main .woocommerce-cart-form{margin:0;min-width:0;overflow:visible}
body.cpx-theme.woocommerce-cart #main table.shop_table.cart{width:100%;max-width:100%;table-layout:fixed;border:1px solid #dce2ed;border-radius:16px;overflow:hidden;margin:0;border-spacing:0;background:#fff}
body.cpx-theme.woocommerce-cart #main table.cart :is(th,td){padding:14px 10px;white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
body.cpx-theme.woocommerce-cart #main table.cart .product-remove{width:44px;text-align:center}
body.cpx-theme.woocommerce-cart #main table.cart a.remove{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px}
body.cpx-theme.woocommerce-cart #main table.cart .product-thumbnail{width:76px}
body.cpx-theme.woocommerce-cart #main table.cart .product-thumbnail img{width:64px;height:64px;max-width:100%;object-fit:contain}
body.cpx-theme.woocommerce-cart #main table.cart .product-price{width:78px}
body.cpx-theme.woocommerce-cart #main table.cart .product-quantity{width:94px}
body.cpx-theme.woocommerce-cart #main table.cart .product-subtotal{width:86px;text-align:right}
body.cpx-theme.woocommerce-cart #main table.cart .qty{width:72px;max-width:100%;padding:8px;text-align:center}
body.cpx-theme.woocommerce-cart #main table.cart td.actions{display:table-cell;padding:16px;text-align:right}
body.cpx-theme.woocommerce-cart #main table.cart td.actions .coupon{float:none;display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;text-align:left}
body.cpx-theme.woocommerce-cart #main table.cart td.actions .coupon #coupon_code{float:none;width:180px;flex:1 1 160px;max-width:280px;margin:0}
body.cpx-theme.woocommerce-cart #main table.cart td.actions .coupon .button{float:none;margin:0;min-height:46px}
body.cpx-theme.woocommerce-cart #main .cart-collaterals{display:block;width:100%;max-width:none;margin:0;position:static}
body.cpx-theme.woocommerce-cart #main .cart-collaterals :is(.cart_totals,.cross-sells){float:none;width:100%;max-width:none;min-width:0;position:static;box-sizing:border-box}
body.cpx-theme.woocommerce-cart #main .cart_totals{padding:24px;border:1px solid #dce2ed;border-radius:16px;background:#f7f9fd}
body.cpx-theme.woocommerce-cart #main .cart_totals h2{margin:0 0 16px}
body.cpx-theme.woocommerce-cart #main .cart_totals table{margin-bottom:16px}
body.cpx-theme.woocommerce-cart #main .cart_totals :is(th,td){padding:12px 0;white-space:normal;overflow-wrap:anywhere}
body.cpx-theme.woocommerce-cart #main .cart_totals th{width:40%}
body.cpx-theme.woocommerce-cart #main .cart_totals td{text-align:right}
body.cpx-theme.woocommerce-cart #main .wc-proceed-to-checkout{padding:8px 0 0}
body.cpx-theme.woocommerce-cart #main .wc-proceed-to-checkout .checkout-button{width:100%;margin:0;white-space:normal;min-height:50px;font-size:17px}
/* Checkout: billing/shipping stay in DOM order. The order and payment remain visible at every size. */
body.cpx-theme.woocommerce-checkout #main form.checkout{display:block;float:none;width:100%;padding:0;margin:24px 0 0;min-width:0}
body.cpx-theme.woocommerce-checkout #main #customer_details.col2-set{display:block;float:none;width:100%;max-width:none;margin:0;min-width:0}
body.cpx-theme.woocommerce-checkout #main #customer_details :is(.col-1,.col-2){display:block;float:none;width:100%;max-width:none;margin:0;min-width:0}
body.cpx-theme.woocommerce-checkout #main :is(.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields){padding:24px;border:1px solid #dce2ed;border-radius:16px;margin:0 0 20px;background:#fff;min-width:0}
body.cpx-theme.woocommerce-checkout #main #customer_details .form-row{float:none;width:100%;clear:both;margin:0 0 16px;padding:0;min-width:0}
body.cpx-theme.woocommerce-checkout #main #customer_details .woocommerce-input-wrapper{display:block;min-width:0}
body.cpx-theme.woocommerce-checkout #main #customer_details .form-row label{font-size:15px;line-height:1.5;margin:0 0 6px}
body.cpx-theme.woocommerce-checkout #main #customer_details :is(input.input-text,textarea,select){width:100%;border-radius:8px;padding:11px 12px}
body.cpx-theme.woocommerce-checkout #main .select2-container{max-width:100%;width:100%}
body.cpx-theme.woocommerce-checkout #main .select2-selection--single{height:auto;min-height:46px;padding:8px 4px;border-radius:8px}
body.cpx-theme.woocommerce-checkout #main :is(input[type=checkbox],input[type=radio]){width:18px;height:18px;min-height:0;flex-shrink:0;vertical-align:middle;margin:0 8px 0 0}
body.cpx-theme.woocommerce-checkout #main #ship-to-different-address{font-size:17px;line-height:1.5;letter-spacing:normal}
body.cpx-theme.woocommerce-checkout #main #order_review_heading{float:none;width:auto;margin:4px 0 16px;font-size:24px}
body.cpx-theme.woocommerce-checkout #main #order_review.woocommerce-checkout-review-order{display:block;float:none;width:100%;max-width:none;min-width:0;position:static;top:auto;padding:24px;margin:0;border:1px solid #dce2ed;border-radius:16px;background:#f7f9fd;box-sizing:border-box}
body.cpx-theme.woocommerce-checkout #main #order_review table{width:100%;table-layout:fixed;margin:0 0 20px;background:transparent;border:0}
body.cpx-theme.woocommerce-checkout #main #order_review :is(th,td){padding:12px 0;white-space:normal;overflow-wrap:anywhere}
body.cpx-theme.woocommerce-checkout #main #order_review th{width:58%}
body.cpx-theme.woocommerce-checkout #main #order_review .product-name{text-align:left;padding-right:16px}
body.cpx-theme.woocommerce-checkout #main #order_review .product-total{text-align:right}
body.cpx-theme.woocommerce-checkout #main #order_review .woocommerce-shipping-methods label{display:inline;white-space:normal}
body.cpx-theme.woocommerce-checkout #main #payment{background:#fff;border:1px solid #dce2ed;border-radius:12px;min-width:0}
body.cpx-theme.woocommerce-checkout #main #payment :is(ul.payment_methods,.place-order){padding:16px;box-sizing:border-box}
body.cpx-theme.woocommerce-checkout #main #payment ul.payment_methods{margin:0}
body.cpx-theme.woocommerce-checkout #main #payment ul.payment_methods li{min-width:0;overflow-wrap:anywhere}
body.cpx-theme.woocommerce-checkout #main #payment div.payment_box{padding:12px;margin:12px 0;box-sizing:border-box;width:100%;max-width:100%}
body.cpx-theme.woocommerce-checkout #main #place_order{float:none;width:100%;min-height:52px;margin:16px 0 0;white-space:normal;font-size:17px}
body.cpx-theme.woocommerce-checkout #main #payment :is(.woocommerce-privacy-policy-text,.woocommerce-terms-and-conditions-wrapper){font-size:14px;line-height:1.6;overflow-wrap:anywhere}
@media(min-width:1024px){
 body.cpx-theme.woocommerce-cart #main .entry-content>.woocommerce{grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:28px}
 body.cpx-theme.woocommerce-cart #main .entry-content>.woocommerce>.woocommerce-cart-form{grid-column:1}
 body.cpx-theme.woocommerce-cart #main .entry-content>.woocommerce>.cart-collaterals{grid-column:2}
 body.cpx-theme.woocommerce-checkout #main form.checkout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-rows:auto 3rem auto;gap:0 28px;align-items:start}
 body.cpx-theme.woocommerce-checkout #main form.checkout>*{grid-column:1/-1;min-width:0}
 body.cpx-theme.woocommerce-checkout #main form.checkout>.wcservices-checkout-notices{grid-row:1}
 body.cpx-theme.woocommerce-checkout #main form.checkout>#customer_details{grid-column:1;grid-row:2/span 2}
 body.cpx-theme.woocommerce-checkout #main form.checkout>#order_review_heading{grid-column:2;grid-row:2}
 body.cpx-theme.woocommerce-checkout #main form.checkout>#order_review{grid-column:2;grid-row:3}
 body.cpx-theme.woocommerce-checkout #main form.checkout>wc-order-attribution-inputs{display:contents}
}
@media(max-width:768px){
 body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main>.container{padding-top:16px}
 body.cpx-theme.woocommerce-cart #main table.cart{display:block;overflow:visible}
 body.cpx-theme.woocommerce-cart #main table.cart thead{display:none}
 body.cpx-theme.woocommerce-cart #main table.cart tbody{display:block;width:100%}
 body.cpx-theme.woocommerce-cart #main table.cart tr.woocommerce-cart-form__cart-item{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px 12px;padding:16px;border-bottom:1px solid #dce2ed}
 body.cpx-theme.woocommerce-cart #main table.cart tr.woocommerce-cart-form__cart-item>td{width:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;white-space:normal;text-align:right;border:0;padding:8px 0;grid-column:1/-1;background:transparent}
 body.cpx-theme.woocommerce-cart #main table.cart tr.woocommerce-cart-form__cart-item>td::before{content:attr(data-title);font-weight:700;float:none;text-align:left}
 body.cpx-theme.woocommerce-cart #main table.cart tr.woocommerce-cart-form__cart-item>.product-thumbnail{display:block;grid-column:1;grid-row:2;align-self:start;padding:0}
 body.cpx-theme.woocommerce-cart #main table.cart tr.woocommerce-cart-form__cart-item>.product-remove{grid-column:2;grid-row:1;justify-content:flex-end;padding:0}
 body.cpx-theme.woocommerce-cart #main table.cart tr.woocommerce-cart-form__cart-item>.product-name{display:block;grid-column:2;grid-row:2;text-align:left!important;padding:0 0 12px}
 body.cpx-theme.woocommerce-cart #main table.cart :is(.product-thumbnail,.product-remove,.product-name)::before{content:none}
 body.cpx-theme.woocommerce-cart #main table.cart tr:has(>td.actions){display:block}
 body.cpx-theme.woocommerce-cart #main table.cart td.actions{display:block;width:100%;box-sizing:border-box}
 body.cpx-theme.woocommerce-cart #main table.cart td.actions>.button{width:100%}
 body.cpx-theme.woocommerce-cart #main table.cart td.actions .coupon{display:grid;grid-template-columns:minmax(0,1fr)}
 body.cpx-theme.woocommerce-cart #main table.cart td.actions .coupon #coupon_code{width:100%;max-width:none}
 body.cpx-theme.woocommerce-cart #main table.cart td.actions .coupon .button{width:100%}
 body.cpx-theme.woocommerce-cart #main .cart_totals{padding:20px}
 body.cpx-theme.woocommerce-checkout #main :is(.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields){padding:20px}
 body.cpx-theme.woocommerce-checkout #main #order_review.woocommerce-checkout-review-order{padding:20px}
}

/* WooCommerce clearfix pseudo-elements are not content or grid items. */
body.cpx-theme.woocommerce-cart #main .entry-content>.woocommerce::before,body.cpx-theme.woocommerce-cart #main .entry-content>.woocommerce::after,body.cpx-theme.woocommerce-checkout #main form.checkout::before,body.cpx-theme.woocommerce-checkout #main form.checkout::after{content:none}

body.cpx-theme.woocommerce-cart #main table.cart td.actions .coupon::before,body.cpx-theme.woocommerce-cart #main table.cart td.actions .coupon::after{content:none}
body.cpx-theme.woocommerce-cart #main .woocommerce-notices-wrapper{float:none;width:100%}
body.cpx-theme.woocommerce-checkout #main form:is(.woocommerce-form-login,.checkout_coupon){box-sizing:border-box;padding:20px;border-radius:12px;width:100%;max-width:100%}
body.cpx-theme.woocommerce-checkout #main form:is(.woocommerce-form-login,.checkout_coupon) .form-row{float:none;width:100%;margin:0 0 12px;padding:0}
body.cpx-theme.woocommerce-checkout #main form:is(.woocommerce-form-login,.checkout_coupon) input.input-text{width:100%}

body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main :is(.woocommerce-error,.woocommerce-info){display:block}
body.cpx-theme.woocommerce-checkout #main form.checkout_coupon{flex-direction:column;align-items:stretch}
body.cpx-theme.woocommerce-checkout #main form.checkout_coupon input.input-text{min-width:0}

body.cpx-theme.woocommerce-cart #main .cart-collaterals .cross-sells ul.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}

/* Reduce nested padding so secure gateway fields retain room on small phones. */
@media(max-width:768px){
 body.cpx-theme.woocommerce-checkout #main #order_review.woocommerce-checkout-review-order{padding:12px}
 body.cpx-theme.woocommerce-checkout #main #payment :is(ul.payment_methods,.place-order){padding:10px}
 body.cpx-theme.woocommerce-checkout #main #payment div.payment_box{padding:0;background:#fff}
 body.cpx-theme.woocommerce-checkout #main #wc-stripe-upe-form{padding:0;margin:0}
}

/* The existing certificate follows the footer rather than covering transaction controls. */
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout)>.ti-widget.ti-certificate .ti-sticky-button{position:relative!important;inset:auto!important;margin:16px auto!important}

body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout)>.ti-widget.ti-certificate .ti-clickable-expand{width:350px;max-width:calc(100vw - 32px);left:50%!important;right:auto!important;transform:translateX(-50%)!important;box-sizing:border-box}

/* Shared product-price flex styling must not change native basket header cells. */
@media(min-width:769px){body.cpx-theme.woocommerce-cart #main table.cart th.product-price{display:table-cell;vertical-align:middle}}

/* Native notices must not depend on the missing WooCommerce icon font. */
body.cpx-theme:is(.woocommerce-cart,.woocommerce-checkout) #main .woocommerce-info::before{content:"";width:18px;height:18px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%2011v6M12%207v1%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%2011v6M12%207v1%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
body.cpx-theme.woocommerce-checkout #main .woocommerce-form-coupon-toggle .woocommerce-info::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%3E%3Cpath%20d%3D%22M3%207h18v4a2%202%200%200%200%200%204v4H3v-4a2%202%200%200%200%200-4V7Z%22%2F%3E%3Cpath%20d%3D%22M15%207v12%22%20stroke-dasharray%3D%222%202%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%3E%3Cpath%20d%3D%22M3%207h18v4a2%202%200%200%200%200%204v4H3v-4a2%202%200%200%200%200-4V7Z%22%2F%3E%3Cpath%20d%3D%22M15%207v12%22%20stroke-dasharray%3D%222%202%22%2F%3E%3C%2Fsvg%3E")}
body.cpx-theme.woocommerce-checkout #main .woocommerce-form-login-toggle .woocommerce-info::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M4%2021v-2a8%208%200%200%201%2016%200v2%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M4%2021v-2a8%208%200%200%201%2016%200v2%22%2F%3E%3C%2Fsvg%3E")}
body.cpx-theme.woocommerce-cart #main .cpx-delivery-address-help{font-size:14px;line-height:1.6;text-align:left;margin:12px 0;overflow-wrap:anywhere}

/* The native responsive Product label otherwise inserts a line above the product title. */
@media(max-width:768px){body.cpx-theme.woocommerce-cart #main table.cart tr.woocommerce-cart-form__cart-item>td.product-name::before{content:none!important;display:none}}
