/* BoppFlow cart and checkout only. Fluid gutters also replace Elementor's 20em desktop inset. */
.elementor :is(.e-con,.e-con-inner,.elementor-section,.elementor-container,.elementor-column,.elementor-widget-wrap,.elementor-widget-container,.elementor-widget-woocommerce-cart):has(.boppflow-cart-page),
.boppflow-mobile-checkout .elementor :is(.e-con,.e-con-inner,.elementor-section,.elementor-container,.elementor-column,.elementor-widget-wrap,.elementor-widget-container,.elementor-widget-woocommerce-checkout-page):has(form.checkout,.wc-block-checkout){
 --width:100%;--container-widget-width:100%;--padding-left:0px;--padding-right:0px;
 width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;
 padding-inline:0!important;margin-inline:0!important;float:none!important;clear:both;
 flex:0 0 100%!important;grid-column:1/-1!important;align-self:stretch!important;
 position:static!important;inset:auto!important;transform:none!important;display:block!important;
}
.elementor > :is(.e-con,.elementor-section):has(.boppflow-cart-page),
.boppflow-mobile-checkout .elementor > :is(.e-con,.elementor-section):has(form.checkout,.wc-block-checkout){padding-inline:clamp(1rem,3vw,3rem)!important}
:is(.boppflow-cart-page,.boppflow-cart-drawer,.boppflow-mobile-checkout .woocommerce,.boppflow-mobile-checkout .wc-block-checkout),
:is(.boppflow-cart-page,.boppflow-cart-drawer,.boppflow-mobile-checkout .woocommerce,.boppflow-mobile-checkout .wc-block-checkout) *{box-sizing:border-box;min-width:0}
.boppflow-cart-page{font-size:clamp(.875rem,1.8vw,1rem);gap:clamp(1rem,2vw,1.5rem);grid-template-columns:minmax(0,1fr);max-width:100%;width:100%}
.boppflow-cart-page__products{container-type:inline-size}
.boppflow-cart-page__products,.boppflow-cart-page .boppflow-cart-page__summary{width:100%;max-width:100%;float:none;margin-inline:0}
.boppflow-cart-page .boppflow-cart-drawer__header,.boppflow-cart-page .boppflow-cart-page__summary,.boppflow-cart-drawer__header{padding:clamp(1rem,2.5vw,1.875rem)}
.boppflow-cart-page .boppflow-cart-drawer__header h2,.boppflow-cart-drawer__header h2{font-size:clamp(1.4rem,3.5vw,2rem);overflow-wrap:anywhere}
.boppflow-cart-page h3,.boppflow-cart-drawer__item h3{font-size:clamp(.95rem,2.5vw,1.125rem);overflow-wrap:anywhere}
.boppflow-cart-page :is(p,dl,td,th,a,button),.boppflow-cart-drawer :is(p,dl,a,button){overflow-wrap:anywhere;white-space:normal}
.boppflow-cart-page__table-wrap{overflow:visible}
.boppflow-cart-page .boppflow-cart-page__table,.boppflow-cart-page .boppflow-cart-page__table tbody{display:block;width:100%;padding:0}
.boppflow-cart-page .boppflow-cart-page__table thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.boppflow-cart-page .boppflow-cart-page__table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(.625rem,2vw,1rem);padding:clamp(1rem,2.5vw,1.875rem);border-bottom:1px solid var(--line);position:relative;width:100%}
.boppflow-cart-page .boppflow-cart-page__table td{display:block;width:100%;max-width:100%;padding:0!important;border:0;white-space:normal;overflow-wrap:anywhere}
.boppflow-cart-page .boppflow-cart-row__product{grid-column:1/-1;grid-row:1}
.boppflow-cart-page .boppflow-cart-row__quantity{grid-column:1;grid-row:2;align-self:center;text-align:left}
.boppflow-cart-page .boppflow-cart-row__remove{position:static;grid-column:2;grid-row:2;justify-self:end;align-self:center;text-align:right}
.boppflow-cart-page .boppflow-cart-row__unit-price{grid-column:1;grid-row:3;text-align:left;font-size:clamp(.8rem,1.8vw,.95rem)}
.boppflow-cart-page .boppflow-cart-row__line-price{grid-column:2;grid-row:3;align-self:end;text-align:right}
.boppflow-cart-page .boppflow-cart-row__unit-price::before,.boppflow-cart-page .boppflow-cart-row__line-price::before{content:attr(data-label) ': ';font-size:inherit;color:var(--muted);font-weight:400}
:is(.boppflow-cart-page,.boppflow-cart-drawer) .boppflow-cart-drawer__stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:10rem;height:auto;min-height:2.875rem;flex:1 1 9rem}
:is(.boppflow-cart-page,.boppflow-cart-drawer) .boppflow-cart-drawer__stepper :is(button,span){min-height:2.75rem;width:100%;font-size:clamp(1rem,2vw,1.125rem);display:flex;align-items:center;justify-content:center}
:is(.boppflow-cart-page,.boppflow-cart-drawer) .boppflow-cart-drawer__remove{width:100%;max-width:2.75rem;min-height:2.75rem;height:auto;aspect-ratio:1;font-size:1.25rem!important;flex:0 0 2.75rem}
.boppflow-cart-page__actions{gap:clamp(.625rem,2vw,1rem);padding:clamp(1rem,2.5vw,1.875rem);flex-direction:row;flex-wrap:wrap}
.boppflow-cart-page__actions :is(a,button){width:100%;flex:1 1 12rem;min-height:2.75rem;padding:clamp(.75rem,2vw,1rem)}
.boppflow-cart-page .checkout-button,.boppflow-cart-page .boppflow-cart-coupon :is(button,input){width:100%;min-height:2.75rem}
.boppflow-cart-page .cart_totals :is(th,td){overflow-wrap:anywhere;white-space:normal}
.boppflow-cart-page .cart_totals table{table-layout:fixed}
.boppflow-cart-drawer__panel{width:100%;max-width:34rem;height:100dvh}
.boppflow-cart-drawer__items{padding-inline:clamp(1rem,3vw,1.875rem)}
.boppflow-cart-drawer__item{grid-template-columns:minmax(0,1fr) minmax(2.75rem,.15fr);gap:clamp(.625rem,2vw,1rem);align-items:start}
.boppflow-cart-drawer__item-copy{min-width:0;flex:1}
.boppflow-cart-drawer__item-row{display:flex;flex-wrap:wrap;gap:clamp(.75rem,2vw,1rem)}
.boppflow-cart-drawer__price-group{flex:1 1 8rem;max-width:100%;margin-left:0;text-align:left}
.boppflow-cart-drawer__price-group small,.boppflow-cart-drawer__price{white-space:normal;overflow-wrap:anywhere}
.boppflow-cart-drawer__footer{padding:clamp(1rem,3vw,1.875rem);padding-bottom:calc(clamp(1rem,3vw,1.875rem) + env(safe-area-inset-bottom))}
.boppflow-cart-drawer__subtotal{font-size:clamp(1.1rem,3vw,1.5rem);flex-wrap:wrap;gap:.5rem}
.boppflow-cart-drawer__cta{width:100%;min-height:2.75rem;gap:1rem;padding:clamp(.875rem,2vw,1.25rem);font-size:clamp(.875rem,2vw,1rem)}
/* Adapt rows to their card's actual available space, not the viewport alone. */
@container(min-width:42rem){
 .boppflow-cart-page .boppflow-cart-page__table tr{grid-template-columns:minmax(0,2.5fr) minmax(0,1.4fr) minmax(0,1.2fr) minmax(0,1.2fr) minmax(2.75rem,.5fr);align-items:center}
 .boppflow-cart-page .boppflow-cart-row__product{grid-column:1;grid-row:1}
 .boppflow-cart-page .boppflow-cart-row__quantity{grid-column:2;grid-row:1}
 .boppflow-cart-page .boppflow-cart-row__unit-price{grid-column:3;grid-row:1}
 .boppflow-cart-page .boppflow-cart-row__line-price{grid-column:4;grid-row:1;align-self:center}
 .boppflow-cart-page .boppflow-cart-row__remove{grid-column:5;grid-row:1}
}
@media(min-width:75rem){.boppflow-cart-page{grid-template-columns:minmax(0,2.5fr) minmax(0,1fr)}}
/* Checkout summary thumbnails may be provided by Woo Blocks rather than PHP filters.
   Remove their layout track too. Logos/payment-method icons are unaffected. */
.boppflow-mobile-checkout .wc-block-components-order-summary-item__image{display:none!important}
.boppflow-mobile-checkout .wc-block-components-order-summary-item{grid-template-columns:minmax(0,1fr) auto}
.boppflow-mobile-checkout .wc-block-components-order-summary-item__description{padding-left:0!important;margin-left:0!important;min-width:0}
.boppflow-mobile-checkout :is(.woocommerce,.woocommerce-checkout,.wc-block-checkout,.wc-block-components-sidebar-layout){width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.boppflow-mobile-checkout :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea,.select2-container){width:100%!important;max-width:100%;min-width:0;min-height:2.75rem;box-sizing:border-box;font-size:clamp(1rem,1.8vw,1.125rem)}
.boppflow-mobile-checkout form :is(button,.button){min-height:2.75rem;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.boppflow-mobile-checkout form :is(label,p,td,th){overflow-wrap:anywhere}
.boppflow-mobile-checkout .woocommerce-checkout-review-order-table{table-layout:fixed;width:100%}
.boppflow-mobile-checkout .woocommerce-checkout-review-order-table :is(th,td){white-space:normal;padding:clamp(.5rem,2vw,1rem)}
.boppflow-mobile-checkout #place_order{width:100%;float:none}
.boppflow-mobile-checkout label:has(input[type=checkbox]),.boppflow-mobile-checkout label:has(input[type=radio]){display:block;min-height:2.75rem;padding-block:.625rem;box-sizing:border-box}
@media(max-width:64rem){
 .boppflow-mobile-checkout :is(.e-checkout__container,.e-checkout__column,.col2-set,.col-1,.col-2,.form-row,#customer_details,#order_review,.wc-block-components-main,.wc-block-components-sidebar){width:100%!important;max-width:100%;min-width:0;float:none!important;margin-inline:0;box-sizing:border-box}
 .boppflow-mobile-checkout :is(.e-checkout__container,.wc-block-components-sidebar-layout){display:block}
 .boppflow-mobile-checkout :is(.e-checkout__container,.e-checkout__column){padding-inline:0}
 .boppflow-mobile-checkout form :is(button,.button){width:100%}
}
@media(max-width:23rem){
 .boppflow-cart-page .boppflow-cart-page__table tr{grid-template-columns:minmax(0,1fr)}
 .boppflow-cart-page .boppflow-cart-row__quantity{grid-column:1;grid-row:2}
 .boppflow-cart-page .boppflow-cart-row__unit-price{grid-column:1;grid-row:3}
 .boppflow-cart-page .boppflow-cart-row__line-price{grid-column:1;grid-row:4;text-align:left}
 .boppflow-cart-page .boppflow-cart-row__remove{grid-column:1;grid-row:5;justify-self:start;text-align:left}
 .boppflow-cart-drawer__item{grid-template-columns:minmax(0,1fr)}
 .boppflow-cart-drawer__item-copy{flex-basis:100%}
}
