/* CapHaven transactional-page layout. Loaded only on cart and checkout. */
body.woocommerce-cart .ch-page,
body.woocommerce-checkout .ch-page{width:min(1440px,calc(100% - 64px));max-width:1440px}
body.woocommerce-cart .ch-page-content,
body.woocommerce-checkout .ch-page-content{width:100%;max-width:none}
/* The transactional pages are sometimes rendered inside Elementor's boxed
   content wrappers. Let only these two pages use the full theme content rail. */
body.woocommerce-cart .ch-page-content > .woocommerce,
body.woocommerce-checkout .ch-page-content > .woocommerce,
body.woocommerce-cart .ch-page-content > .elementor,
body.woocommerce-checkout .ch-page-content > .elementor,
body.woocommerce-cart .ch-page-content .elementor-section,
body.woocommerce-checkout .ch-page-content .elementor-section,
body.woocommerce-cart .ch-page-content .elementor-container,
body.woocommerce-checkout .ch-page-content .elementor-container,
body.woocommerce-cart .ch-page-content .elementor-widget-wrap,
body.woocommerce-checkout .ch-page-content .elementor-widget-wrap,
body.woocommerce-cart .ch-page-content .elementor-widget-container,
body.woocommerce-checkout .ch-page-content .elementor-widget-container,
body.woocommerce-cart .ch-page-content .e-con,
body.woocommerce-checkout .ch-page-content .e-con,
body.woocommerce-cart .ch-page-content .e-con-inner,
body.woocommerce-checkout .ch-page-content .e-con-inner{width:100%;max-width:none;min-width:0;box-sizing:border-box}
body.woocommerce-cart .ch-page-heading,
body.woocommerce-checkout .ch-page-heading{margin-bottom:clamp(28px,4vw,52px)}
body.woocommerce-cart .ch-page-heading h1,
body.woocommerce-checkout .ch-page-heading h1{font-size:clamp(44px,6vw,76px);line-height:.96;letter-spacing:-.045em}

/* Explicitly bleed the shared announcement/header/footer to the viewport edges.
   The theme can be rendered inside a constrained page wrapper by WordPress/plugins. */
html:has(body.woocommerce-cart),
html:has(body.woocommerce-checkout){overflow-x:clip}
body.woocommerce-cart .ch-announcement,
body.woocommerce-checkout .ch-announcement,
body.woocommerce-cart .ch-header,
body.woocommerce-checkout .ch-header,
body.woocommerce-cart .ch-footer,
body.woocommerce-checkout .ch-footer{box-sizing:border-box;width:100vw;max-width:none;margin-left:calc((100% - 100vw)/2);margin-right:calc((100% - 100vw)/2)}
body.woocommerce-cart .ch-header__inner,
body.woocommerce-checkout .ch-header__inner{width:100%;padding-left:max(32px,calc((100% - 1680px)/2 + 32px));padding-right:max(32px,calc((100% - 1680px)/2 + 32px))}
body.woocommerce-cart .ch-nav--categories,
body.woocommerce-checkout .ch-nav--categories{width:100%}

/* Cart: item list on the left, totals on the right. */
body.woocommerce-cart .ch-page-content .woocommerce:has(>form.woocommerce-cart-form){display:grid;grid-template-columns:minmax(0,2.8fr) minmax(340px,1fr);gap:22px clamp(24px,3vw,48px);align-items:start}
body.woocommerce-cart .ch-page-content .woocommerce:has(>form.woocommerce-cart-form)>.woocommerce-notices-wrapper,
body.woocommerce-cart .ch-page-content .woocommerce:has(>form.woocommerce-cart-form)>.woocommerce-message,
body.woocommerce-cart .ch-page-content .woocommerce:has(>form.woocommerce-cart-form)>.woocommerce-info,
body.woocommerce-cart .ch-page-content .woocommerce:has(>form.woocommerce-cart-form)>.woocommerce-error,
body.woocommerce-cart .ch-page-content .woocommerce:has(>form.woocommerce-cart-form)>.wc-empty-cart-message,
body.woocommerce-cart .ch-page-content .woocommerce:has(>form.woocommerce-cart-form)>.return-to-shop{grid-column:1/-1}
body.woocommerce-cart form.woocommerce-cart-form{grid-column:1;min-width:0;margin:0;padding:clamp(18px,2.4vw,32px);background:#fff}
body.woocommerce-cart .cart-collaterals{grid-column:2;min-width:0;margin:0;padding:clamp(20px,2.5vw,32px);background:#e9e7e1}
body.woocommerce-cart .cart-collaterals .cart_totals{float:none;width:100%;padding:0;background:transparent}
body.woocommerce-cart .ch-cart-coupon{display:none}
body.woocommerce-cart .ch-cart-coupon.is-ready{display:block;margin:0 0 22px;padding:0 0 18px;border-bottom:1px solid var(--line)}
body.woocommerce-cart .ch-cart-coupon>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;font-size:13px;font-weight:600}
body.woocommerce-cart .ch-cart-coupon>summary::-webkit-details-marker{display:none}
body.woocommerce-cart .ch-cart-coupon>summary:after{content:"+";font-size:20px;font-weight:400;line-height:1}
body.woocommerce-cart .ch-cart-coupon[open]>summary:after{content:"−"}
body.woocommerce-cart .ch-cart-coupon .coupon{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;margin:14px 0 0}
body.woocommerce-cart .ch-cart-coupon .coupon label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
body.woocommerce-cart .ch-cart-coupon .coupon input.input-text{flex:1 1 150px;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--line);background:#fff}
body.woocommerce-cart .ch-cart-coupon .coupon button{flex:0 0 auto;min-height:44px;padding:10px 14px;border:0;border-radius:0;background:var(--ink);color:#fff;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
body.woocommerce-cart .cart_totals h2{margin:0 0 22px;font-size:clamp(20px,2vw,28px);line-height:1.15}
body.woocommerce-cart table.shop_table{width:100%;margin:0;border:0;border-collapse:collapse;border-radius:0;background:transparent}
body.woocommerce-cart table.shop_table th,
body.woocommerce-cart table.shop_table td{padding:14px 10px;border:0;border-bottom:1px solid var(--line);vertical-align:middle}
body.woocommerce-cart table.shop_table th{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.09em;text-align:left;text-transform:uppercase}
@media(min-width:901px){
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table{display:block}
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table thead,
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table tbody{display:block;width:100%}
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table thead tr,
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table tr.cart_item{
    display:grid;
    grid-template-columns:90px minmax(0,1fr) 28px minmax(90px,120px);
    grid-template-areas:"thumb name name subtotal";
    column-gap:14px;
    align-items:start;
    width:100%;
    box-sizing:border-box;
  }
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table thead th.product-remove,
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table thead th.product-thumbnail,
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table thead th.product-price,
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table thead th.product-quantity{display:none}
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table thead th.product-name{grid-column:1/4}
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table thead th.product-subtotal{grid-column:4;text-align:right}
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table tr.cart_item{
    grid-template-rows:auto auto auto;
    grid-template-areas:"thumb name name subtotal" "thumb price price subtotal" "thumb quantity remove subtotal";
    row-gap:5px;
    padding:18px 0;
    border-bottom:1px solid var(--line);
  }
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table tr.cart_item td{
    display:block;
    width:auto!important;
    min-width:0;
    margin:0;
    padding:0;
    border:0;
    text-align:left;
    box-sizing:border-box;
  }
  body.woocommerce-cart form.woocommerce-cart-form td.product-thumbnail{grid-area:thumb}
  body.woocommerce-cart form.woocommerce-cart-form td.product-thumbnail img{display:block;width:84px;height:84px;object-fit:cover;background:#fff}
  body.woocommerce-cart form.woocommerce-cart-form td.product-name{grid-area:name;overflow-wrap:anywhere;line-height:1.4}
  body.woocommerce-cart form.woocommerce-cart-form td.product-price{grid-area:price;color:var(--muted);font-size:13px}
  body.woocommerce-cart form.woocommerce-cart-form td.product-quantity{grid-area:quantity}
  body.woocommerce-cart form.woocommerce-cart-form td.product-quantity .quantity{float:none;margin:0!important}
  body.woocommerce-cart form.woocommerce-cart-form td.product-quantity .qty{width:76px;min-height:38px}
  body.woocommerce-cart form.woocommerce-cart-form td.product-remove{grid-area:remove;align-self:center}
  body.woocommerce-cart form.woocommerce-cart-form td.product-subtotal{grid-area:subtotal;align-self:start;padding-top:2px;font-weight:700;text-align:right;white-space:nowrap}
  body.woocommerce-cart form.woocommerce-cart-form tr:not(.cart_item){display:block;width:100%}
  body.woocommerce-cart form.woocommerce-cart-form tr:not(.cart_item)>td{display:block;width:100%!important}
}
body.woocommerce-cart .product-remove a{color:var(--muted)!important;font-size:22px}
body.woocommerce-cart .product-thumbnail{width:94px}
body.woocommerce-cart .product-thumbnail img{display:block;width:76px;height:76px;object-fit:cover;background:#fff}
body.woocommerce-cart .product-name a{color:var(--ink);font-weight:700;line-height:1.4}
body.woocommerce-cart .product-name .variation,
body.woocommerce-cart .product-name .wc-item-meta{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.5}
body.woocommerce-cart .quantity .qty{width:76px;min-height:42px;padding:0 8px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);text-align:center}
body.woocommerce-cart .woocommerce-cart-form .actions{padding:20px 0 0!important;border:0;background:transparent}
body.woocommerce-cart .woocommerce-cart-form .coupon{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}
body.woocommerce-cart .woocommerce-cart-form .coupon label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
body.woocommerce-cart .woocommerce-cart-form .coupon input.input-text{width:min(100%,220px);min-height:44px;padding:10px 12px;border:1px solid var(--line);background:#fff}
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td{padding:14px 0}
body.woocommerce-cart .wc-proceed-to-checkout{padding:18px 0 0}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{display:flex;min-height:52px;align-items:center;justify-content:center;margin:0;padding:14px 20px;border:0;border-radius:0;background:var(--ink)!important;color:#fff!important;font-size:11px;font-weight:800;letter-spacing:.12em;text-align:center;text-transform:uppercase}

/* Classic [woocommerce_checkout]: customer/payment column and order summary. */
body.woocommerce-checkout .ch-page-content form.checkout.woocommerce-checkout{position:relative;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(360px,1fr);grid-template-rows:auto auto;gap:18px clamp(24px,3vw,48px);align-items:start;margin:0;padding:0;background:transparent}
body.woocommerce-checkout #customer_details{grid-column:1;grid-row:1;float:none;width:auto;min-width:0;margin:0;padding:clamp(20px,2.6vw,36px);background:#fff}
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{float:none;width:100%;margin:0}
body.woocommerce-checkout #customer_details .col-2{margin-top:22px}
body.woocommerce-checkout #customer_details h3,
body.woocommerce-checkout #payment h3{margin:0 0 20px;font-size:18px;line-height:1.25}
body.woocommerce-checkout #customer_details .form-row,
body.woocommerce-checkout #payment .form-row{margin:0 0 16px}
body.woocommerce-checkout #customer_details .form-row-first,
body.woocommerce-checkout #customer_details .form-row-last{width:calc(50% - 8px)}
body.woocommerce-checkout #customer_details .form-row-first{float:left;clear:left}
body.woocommerce-checkout #customer_details .form-row-last{float:right;clear:right}
body.woocommerce-checkout #customer_details .form-row-wide{clear:both;width:100%}
body.woocommerce-checkout #customer_details .form-row label{display:block;margin:0 0 6px;color:var(--ink);font-size:12px;font-weight:600}
body.woocommerce-checkout #customer_details .form-row input.input-text,
body.woocommerce-checkout #customer_details .form-row select,
body.woocommerce-checkout #customer_details .form-row textarea{display:block;width:100%;min-height:46px;padding:11px 13px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);font:inherit}
body.woocommerce-checkout #customer_details .form-row textarea{min-height:112px}
body.woocommerce-checkout #order_review_heading{z-index:1;grid-column:2;grid-row:1;align-self:start;margin:0;padding:26px 26px 0;background:#e9e7e1;font-size:19px;line-height:1.25}
body.woocommerce-checkout #order_review{grid-column:2;grid-row:1;align-self:start;min-width:0;margin:0;padding:62px 26px 26px;background:#e9e7e1}
body.woocommerce-checkout #order_review .shop_table{width:100%;margin:0;border:0;border-collapse:collapse;border-radius:0;background:transparent}
body.woocommerce-checkout #order_review .shop_table th,
body.woocommerce-checkout #order_review .shop_table td{padding:13px 0;border:0;border-bottom:1px solid var(--line);background:transparent;vertical-align:top}
body.woocommerce-checkout #order_review .shop_table td.product-name{width:72%}
body.woocommerce-checkout #order_review .shop_table th{font-size:11px;font-weight:700;text-align:left}
body.woocommerce-checkout #order_review .shop_table tfoot th,
body.woocommerce-checkout #order_review .shop_table tfoot td{font-weight:700}
body.woocommerce-checkout #payment{grid-column:1;grid-row:2;float:none;width:auto;min-width:0;margin:0;padding:clamp(20px,2.6vw,32px);background:#fff}
body.woocommerce-checkout #payment ul.payment_methods{margin:0 0 20px;padding:0 0 18px;border-bottom:1px solid var(--line);list-style:none}
body.woocommerce-checkout #payment .payment_box{padding:16px;background:var(--paper)}
body.woocommerce-checkout #payment .place-order{margin:0;padding:12px 0 0}
body.woocommerce-checkout #payment #place_order{display:flex;width:100%;min-height:52px;align-items:center;justify-content:center;margin:14px 0 0;padding:14px 20px;border:0;border-radius:0;background:var(--ink)!important;color:#fff!important;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-checkout .woocommerce-notices-wrapper{margin-bottom:18px}
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
body.woocommerce-cart .woocommerce-message,body.woocommerce-cart .woocommerce-info,
body.woocommerce-checkout .woocommerce-message,body.woocommerce-checkout .woocommerce-info,
body.woocommerce-cart .woocommerce-error,body.woocommerce-checkout .woocommerce-error{padding:16px 18px;border-top:2px solid var(--orange);background:#fff}

/* Blocks keep their native checkout/cart behavior. */
body.woocommerce-cart .wc-block-cart{display:grid;grid-template-columns:minmax(0,2.8fr) minmax(340px,1fr);gap:24px clamp(24px,3vw,48px);max-width:none}
body.woocommerce-cart .wc-block-cart__main{grid-column:1;min-width:0;padding:clamp(18px,2.4vw,32px);background:#fff}
body.woocommerce-cart .wc-block-cart__sidebar{grid-column:2;padding:clamp(20px,2.5vw,32px);background:#e9e7e1}
body.woocommerce-checkout .wc-block-checkout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(360px,1fr);gap:24px clamp(24px,3vw,48px);max-width:none}
body.woocommerce-checkout .wc-block-checkout__main{grid-column:1;min-width:0;padding:clamp(20px,2.6vw,36px);background:#fff}
body.woocommerce-checkout .wc-block-checkout__sidebar{grid-column:2;min-width:0;padding:clamp(20px,2.5vw,32px);background:#e9e7e1}

@media(max-width:900px){
  body.woocommerce-cart .ch-page,body.woocommerce-checkout .ch-page{width:calc(100% - 40px)}
  body.woocommerce-cart .ch-page-content .woocommerce:has(>form.woocommerce-cart-form),body.woocommerce-cart .wc-block-cart{grid-template-columns:minmax(0,1fr)}
  body.woocommerce-cart .cart-collaterals,body.woocommerce-cart .wc-block-cart__main,body.woocommerce-cart .wc-block-cart__sidebar{grid-column:1;grid-row:auto}
  body.woocommerce-checkout .ch-page-content form.checkout.woocommerce-checkout{grid-template-columns:minmax(0,1fr)}
  body.woocommerce-checkout #customer_details{grid-column:1;grid-row:1}
  body.woocommerce-checkout #order_review_heading{grid-column:1;grid-row:2;padding:22px 22px 0}
  body.woocommerce-checkout #order_review{grid-column:1;grid-row:2;padding:58px 22px 22px}
  body.woocommerce-checkout #payment{grid-column:1;grid-row:3}
  body.woocommerce-checkout .wc-block-checkout{grid-template-columns:minmax(0,1fr)}
  body.woocommerce-checkout .wc-block-checkout__main,body.woocommerce-checkout .wc-block-checkout__sidebar{grid-column:1}
}
@media(max-width:600px){
  body.woocommerce-cart .ch-page,body.woocommerce-checkout .ch-page{width:calc(100% - 28px);padding-top:52px}
  body.woocommerce-cart .ch-page-heading,body.woocommerce-checkout .ch-page-heading{margin-bottom:26px}
  body.woocommerce-cart .ch-page-heading h1,body.woocommerce-checkout .ch-page-heading h1{font-size:clamp(40px,12vw,56px);letter-spacing:-.04em}
  body.woocommerce-cart form.woocommerce-cart-form{overflow-x:auto;padding:14px}
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table{min-width:590px}
  body.woocommerce-cart .cart-collaterals,body.woocommerce-cart .wc-block-cart__main,body.woocommerce-cart .wc-block-cart__sidebar,body.woocommerce-checkout #customer_details,body.woocommerce-checkout #payment{padding:18px}
  body.woocommerce-checkout #customer_details .form-row-first,body.woocommerce-checkout #customer_details .form-row-last{float:none;clear:both;width:100%}
  body.woocommerce-cart .woocommerce-cart-form .actions .coupon,body.woocommerce-cart .woocommerce-cart-form .actions .coupon input,body.woocommerce-cart .woocommerce-cart-form .actions .coupon button{width:100%}
  body.woocommerce-cart .woocommerce-cart-form .actions>button,body.woocommerce-cart .woocommerce-cart-form .actions>input{width:100%;margin-top:8px}
}

/* Mobile cart and checkout: use the available viewport width without making
   the cart table wider than the screen. These rules are scoped to these pages. */
@media(max-width:600px){
  body.woocommerce-cart .ch-page,
  body.woocommerce-checkout .ch-page{
    position:relative;
    left:50%;
    transform:translateX(-50%);
    width:calc(100vw - 24px);
    max-width:none;
    margin:0;
    box-sizing:border-box;
  }
  body.woocommerce-cart .ch-page-content,
  body.woocommerce-checkout .ch-page-content,
  body.woocommerce-cart .ch-page-content>.woocommerce,
  body.woocommerce-checkout .ch-page-content>.woocommerce{
    width:100%;
    max-width:none;
    min-width:0;
    box-sizing:border-box;
  }

  /* Classic cart: stack each product into a compact, readable card instead
     of forcing the desktop-width table to scroll off-screen. */
  body.woocommerce-cart .ch-page-content .woocommerce:has(>form.woocommerce-cart-form){
    display:grid;
    grid-template-columns:minmax(0,1fr);
    width:100%;
    gap:14px;
  }
  body.woocommerce-cart form.woocommerce-cart-form{
    grid-column:1;
    width:100%;
    min-width:0;
    overflow:visible;
    padding:12px;
    background:var(--paper);
    box-sizing:border-box;
  }
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table{
    display:block;
    width:100%;
    min-width:0;
    table-layout:fixed;
    box-sizing:border-box;
  }
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table thead{display:none}
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table tbody{display:block;width:100%}
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table tr.cart_item{
    display:grid;
    grid-template-columns:22px 60px minmax(0,1fr);
    grid-template-areas:
      "remove thumb name"
      "remove thumb price"
      "remove thumb quantity"
      "remove thumb subtotal";
    column-gap:8px;
    row-gap:5px;
    align-items:start;
    width:100%;
    min-width:0;
    padding:12px 0;
    border-bottom:1px solid var(--line);
    box-sizing:border-box;
  }
  body.woocommerce-cart form.woocommerce-cart-form table.shop_table tr.cart_item td{
    display:block;
    width:auto!important;
    min-width:0;
    margin:0;
    padding:0;
    border:0;
    text-align:left;
    box-sizing:border-box;
  }
  body.woocommerce-cart form.woocommerce-cart-form td.product-remove{grid-area:remove}
  body.woocommerce-cart form.woocommerce-cart-form td.product-thumbnail{grid-area:thumb}
  body.woocommerce-cart form.woocommerce-cart-form td.product-name{grid-area:name;overflow-wrap:anywhere;line-height:1.35}
  body.woocommerce-cart form.woocommerce-cart-form td.product-price{grid-area:price}
  body.woocommerce-cart form.woocommerce-cart-form td.product-quantity{grid-area:quantity}
  body.woocommerce-cart form.woocommerce-cart-form td.product-subtotal{grid-area:subtotal;font-weight:700}
  body.woocommerce-cart form.woocommerce-cart-form td.product-price:before,
  body.woocommerce-cart form.woocommerce-cart-form td.product-quantity:before,
  body.woocommerce-cart form.woocommerce-cart-form td.product-subtotal:before{
    content:attr(data-title);
    display:inline-block;
    width:64px;
    color:var(--muted);
    font-size:9px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    vertical-align:middle;
  }
  body.woocommerce-cart form.woocommerce-cart-form td.product-thumbnail img{
    display:block;
    width:60px;
    height:60px;
    max-width:none;
    object-fit:cover;
  }
  body.woocommerce-cart form.woocommerce-cart-form td.product-quantity .quantity{float:none;margin:0!important}
  body.woocommerce-cart form.woocommerce-cart-form td.product-quantity .qty{width:72px;min-height:38px}
  body.woocommerce-cart form.woocommerce-cart-form tr:not(.cart_item){display:block;width:100%}
  body.woocommerce-cart form.woocommerce-cart-form tr:not(.cart_item)>td,
  body.woocommerce-cart form.woocommerce-cart-form td.actions{display:block;width:100%!important;padding:12px 0 0;border:0;box-sizing:border-box}
  body.woocommerce-cart form.woocommerce-cart-form td.actions:before{display:none}
  body.woocommerce-cart .woocommerce-cart-form .actions .coupon,
  body.woocommerce-cart .woocommerce-cart-form .actions .coupon input,
  body.woocommerce-cart .woocommerce-cart-form .actions .coupon button,
  body.woocommerce-cart .woocommerce-cart-form .actions>button,
  body.woocommerce-cart .woocommerce-cart-form .actions>input{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
  body.woocommerce-cart .cart-collaterals,
  body.woocommerce-cart .cart-collaterals .cart_totals,
  body.woocommerce-cart .wc-block-cart,
  body.woocommerce-cart .wc-block-cart__main,
  body.woocommerce-cart .wc-block-cart__sidebar{
    grid-column:1;
    width:100%;
    min-width:0;
    max-width:none;
    box-sizing:border-box;
  }
  body.woocommerce-cart .wc-block-cart{grid-template-columns:minmax(0,1fr);gap:14px}
  body.woocommerce-cart .wc-block-cart__main,
  body.woocommerce-cart .wc-block-cart__sidebar{grid-row:auto;padding:14px}
  body.woocommerce-cart .ch-cart-coupon{margin-bottom:18px;padding-bottom:14px}
  body.woocommerce-cart .ch-cart-coupon .coupon,
  body.woocommerce-cart .ch-cart-coupon .coupon input.input-text,
  body.woocommerce-cart .ch-cart-coupon .coupon button{width:100%;max-width:100%;box-sizing:border-box}
  body.woocommerce-cart .ch-cart-coupon .coupon button{flex-basis:100%}
  body.woocommerce-cart .wc-block-cart table,
  body.woocommerce-cart .wc-block-cart .wc-block-cart-items{max-width:100%;box-sizing:border-box}

  /* Checkout: expand every column and control to the mobile content width. */
  body.woocommerce-checkout .ch-page-content form.checkout.woocommerce-checkout,
  body.woocommerce-checkout .wc-block-checkout{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    width:100%;
    max-width:none;
    min-width:0;
    gap:14px;
    box-sizing:border-box;
  }
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #payment,
  body.woocommerce-checkout #order_review_heading,
  body.woocommerce-checkout #order_review,
  body.woocommerce-checkout .wc-block-checkout__main,
  body.woocommerce-checkout .wc-block-checkout__sidebar{
    width:100%;
    min-width:0;
    max-width:none;
    box-sizing:border-box;
  }
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #payment{padding:14px}
  body.woocommerce-checkout #customer_details .form-row,
  body.woocommerce-checkout #customer_details .form-row-first,
  body.woocommerce-checkout #customer_details .form-row-last,
  body.woocommerce-checkout #customer_details .form-row-wide{
    float:none;
    clear:both;
    width:100%!important;
    max-width:100%;
    box-sizing:border-box;
  }
  body.woocommerce-checkout #customer_details .form-row input.input-text,
  body.woocommerce-checkout #customer_details .form-row select,
  body.woocommerce-checkout #customer_details .form-row textarea,
  body.woocommerce-checkout #payment .form-row input.input-text,
  body.woocommerce-checkout #payment .form-row select,
  body.woocommerce-checkout #payment .form-row textarea{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
  body.woocommerce-checkout #order_review_heading{grid-column:1;grid-row:2;padding:16px 14px 0}
  body.woocommerce-checkout #order_review{grid-column:1;grid-row:2;padding:48px 14px 16px;overflow-wrap:anywhere}
  body.woocommerce-checkout #order_review .shop_table{width:100%;table-layout:fixed}
  body.woocommerce-checkout #order_review .shop_table th,
  body.woocommerce-checkout #order_review .shop_table td{padding:10px 4px;overflow-wrap:anywhere}
  body.woocommerce-checkout #order_review .shop_table th.product-name,
  body.woocommerce-checkout #order_review .shop_table td.product-name{
    width:74%;
    min-width:0;
    overflow-wrap:break-word;
    word-break:normal;
  }
  body.woocommerce-checkout #order_review .shop_table th.product-total,
  body.woocommerce-checkout #order_review .shop_table td.product-total{
    width:26%;
    min-width:0;
    overflow-wrap:normal;
    text-align:right;
    white-space:nowrap;
  }
  body.woocommerce-checkout #order_review .shop_table td.product-name img{
    display:inline-block;
    width:64px;
    min-width:64px;
    max-width:64px;
    height:auto;
    flex-shrink:0;
    object-fit:contain;
    vertical-align:top;
  }
  body.woocommerce-checkout #payment #place_order,
  body.woocommerce-checkout .wc-block-components-checkout-place-order-button{width:100%;max-width:100%;box-sizing:border-box}
  body.woocommerce-checkout .wc-block-checkout__main,
  body.woocommerce-checkout .wc-block-checkout__sidebar{grid-column:1;padding:14px}
  body.woocommerce-checkout .woocommerce-form-coupon-toggle,
  body.woocommerce-cart .woocommerce-notices-wrapper,
  body.woocommerce-checkout .woocommerce-notices-wrapper{width:100%;max-width:100%;box-sizing:border-box}
}

/* Some checkout/cart pages are wrapped by a boxed page-builder container.
   Break out only the transactional main area, then center a 12px-gutter
   content column so nested builder widths cannot leave a narrow 80% column. */
@media(max-width:600px){
  body.woocommerce-cart #main.ch-main,
  body.woocommerce-checkout #main.ch-main{
    width:100vw!important;
    max-width:none!important;
    margin-left:calc((100% - 100vw)/2)!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box;
  }
  body.woocommerce-cart #main.ch-main .ch-page,
  body.woocommerce-checkout #main.ch-main .ch-page{
    position:static;
    left:auto;
    transform:none;
    width:calc(100% - 24px)!important;
    max-width:none!important;
    margin:0 auto!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box;
  }
  body.woocommerce-cart #main.ch-main .ch-page-content,
  body.woocommerce-checkout #main.ch-main .ch-page-content,
  body.woocommerce-cart #main.ch-main .woocommerce,
  body.woocommerce-checkout #main.ch-main .woocommerce,
  body.woocommerce-cart #main.ch-main .woocommerce-cart-form,
  body.woocommerce-cart #main.ch-main .cart-collaterals,
  body.woocommerce-checkout #main.ch-main form.checkout,
  body.woocommerce-checkout #main.ch-main #customer_details,
  body.woocommerce-checkout #main.ch-main #order_review,
  body.woocommerce-checkout #main.ch-main #payment,
  body.woocommerce-cart #main.ch-main .woocommerce-notices-wrapper,
  body.woocommerce-checkout #main.ch-main .woocommerce-notices-wrapper,
  body.woocommerce-checkout #main.ch-main .woocommerce-form-coupon-toggle{
    width:100%!important;
    max-width:none!important;
    min-width:0;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box;
  }
  body.woocommerce-cart #main.ch-main .elementor,
  body.woocommerce-checkout #main.ch-main .elementor,
  body.woocommerce-cart #main.ch-main .elementor-section,
  body.woocommerce-checkout #main.ch-main .elementor-section,
  body.woocommerce-cart #main.ch-main .elementor-container,
  body.woocommerce-checkout #main.ch-main .elementor-container,
  body.woocommerce-cart #main.ch-main .elementor-widget-wrap,
  body.woocommerce-checkout #main.ch-main .elementor-widget-wrap,
  body.woocommerce-cart #main.ch-main .e-con,
  body.woocommerce-checkout #main.ch-main .e-con,
  body.woocommerce-cart #main.ch-main .e-con-inner,
  body.woocommerce-checkout #main.ch-main .e-con-inner{
    width:100%!important;
    max-width:none!important;
    min-width:0;
    box-sizing:border-box;
  }
}

/* Keep city, state/county and postcode aligned as a single row on every
   checkout viewport, with a consistent control height (including Select2). */
body.woocommerce-checkout #customer_details #billing_city_field,
body.woocommerce-checkout #customer_details #billing_state_field,
body.woocommerce-checkout #customer_details #billing_postcode_field,
body.woocommerce-checkout #customer_details #shipping_city_field,
body.woocommerce-checkout #customer_details #shipping_state_field,
body.woocommerce-checkout #customer_details #shipping_postcode_field{
  float:left!important;
  clear:none!important;
  width:calc((100% - 20px)/3)!important;
  max-width:none!important;
  margin-right:10px!important;
  box-sizing:border-box;
}
body.woocommerce-checkout #customer_details #billing_postcode_field,
body.woocommerce-checkout #customer_details #shipping_postcode_field{margin-right:0!important}
body.woocommerce-checkout #customer_details #billing_city_field .woocommerce-input-wrapper,
body.woocommerce-checkout #customer_details #billing_state_field .woocommerce-input-wrapper,
body.woocommerce-checkout #customer_details #billing_postcode_field .woocommerce-input-wrapper,
body.woocommerce-checkout #customer_details #shipping_city_field .woocommerce-input-wrapper,
body.woocommerce-checkout #customer_details #shipping_state_field .woocommerce-input-wrapper,
body.woocommerce-checkout #customer_details #shipping_postcode_field .woocommerce-input-wrapper{display:block;width:100%}
body.woocommerce-checkout #customer_details #billing_city,
body.woocommerce-checkout #customer_details #billing_state,
body.woocommerce-checkout #customer_details #billing_postcode,
body.woocommerce-checkout #customer_details #shipping_city,
body.woocommerce-checkout #customer_details #shipping_state,
body.woocommerce-checkout #customer_details #shipping_postcode,
body.woocommerce-checkout #customer_details #billing_state_field .select2-selection--single,
body.woocommerce-checkout #customer_details #shipping_state_field .select2-selection--single{
  display:block;
  width:100%;
  height:48px!important;
  min-height:48px!important;
  padding-top:10px;
  padding-bottom:10px;
  box-sizing:border-box;
}
body.woocommerce-checkout #customer_details #billing_state_field .select2-selection--single,
body.woocommerce-checkout #customer_details #shipping_state_field .select2-selection--single{
  display:flex;
  align-items:center;
  padding-top:0;
  padding-bottom:0;
}
body.woocommerce-checkout #customer_details #billing_state_field .select2-selection__rendered,
body.woocommerce-checkout #customer_details #shipping_state_field .select2-selection__rendered{line-height:46px}
body.woocommerce-checkout #customer_details #billing_state_field .select2-selection__arrow,
body.woocommerce-checkout #customer_details #shipping_state_field .select2-selection__arrow{height:46px}
@media(max-width:600px){
  body.woocommerce-checkout #customer_details #billing_city_field,
  body.woocommerce-checkout #customer_details #billing_state_field,
  body.woocommerce-checkout #customer_details #billing_postcode_field,
  body.woocommerce-checkout #customer_details #shipping_city_field,
  body.woocommerce-checkout #customer_details #shipping_state_field,
  body.woocommerce-checkout #customer_details #shipping_postcode_field{
    width:calc((100% - 16px)/3)!important;
    margin-right:8px!important;
  }
  body.woocommerce-checkout #customer_details #billing_postcode_field,
  body.woocommerce-checkout #customer_details #shipping_postcode_field{margin-right:0!important}
  body.woocommerce-checkout #customer_details #billing_city_field label,
  body.woocommerce-checkout #customer_details #billing_state_field label,
  body.woocommerce-checkout #customer_details #billing_postcode_field label,
  body.woocommerce-checkout #customer_details #shipping_city_field label,
  body.woocommerce-checkout #customer_details #shipping_state_field label,
  body.woocommerce-checkout #customer_details #shipping_postcode_field label{
    white-space:nowrap;
    font-size:clamp(8px,2.7vw,11px);
    letter-spacing:-.2px;
  }
  body.woocommerce-checkout #customer_details #billing_city,
  body.woocommerce-checkout #customer_details #billing_state,
  body.woocommerce-checkout #customer_details #billing_postcode,
  body.woocommerce-checkout #customer_details #shipping_city,
  body.woocommerce-checkout #customer_details #shipping_state,
  body.woocommerce-checkout #customer_details #shipping_postcode{padding-left:7px;padding-right:7px;font-size:13px}
}

/* Edge-to-edge mobile transactional pages (no outer side gutters). */
@media(max-width:600px){
  body.woocommerce-cart #main.ch-main .ch-page,
  body.woocommerce-checkout #main.ch-main .ch-page{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  body.woocommerce-cart #main.ch-main .ch-page-content,
  body.woocommerce-checkout #main.ch-main .ch-page-content,
  body.woocommerce-cart #main.ch-main .ch-page-content>.woocommerce,
  body.woocommerce-checkout #main.ch-main .ch-page-content>.woocommerce,
  body.woocommerce-cart #main.ch-main .woocommerce-cart-form,
  body.woocommerce-cart #main.ch-main .cart-collaterals,
  body.woocommerce-checkout #main.ch-main form.checkout.woocommerce-checkout,
  body.woocommerce-checkout #main.ch-main #customer_details,
  body.woocommerce-checkout #main.ch-main #order_review_heading,
  body.woocommerce-checkout #main.ch-main #order_review,
  body.woocommerce-checkout #main.ch-main #payment,
  body.woocommerce-cart #main.ch-main .woocommerce-form-coupon-toggle,
  body.woocommerce-checkout #main.ch-main .woocommerce-form-coupon-toggle{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box;
  }
  body.woocommerce-cart #main.ch-main .woocommerce-cart-form{padding-left:0!important;padding-right:0!important}
  body.woocommerce-checkout #main.ch-main form.checkout.woocommerce-checkout{padding-left:0!important;padding-right:0!important}
}

/* Elementor can add its own boxed-column padding around the WooCommerce
   shortcode, even when the theme page wrapper itself is already full width. */
@media(max-width:600px){
  body.woocommerce-cart #main.ch-main .ch-page-content,
  body.woocommerce-checkout #main.ch-main .ch-page-content,
  body.woocommerce-cart #main.ch-main .ch-page-content > .woocommerce,
  body.woocommerce-checkout #main.ch-main .ch-page-content > .woocommerce,
  body.woocommerce-cart #main.ch-main .ch-page-content > .elementor,
  body.woocommerce-checkout #main.ch-main .ch-page-content > .elementor,
  body.woocommerce-cart #main.ch-main .ch-page-content .elementor-section,
  body.woocommerce-checkout #main.ch-main .ch-page-content .elementor-section,
  body.woocommerce-cart #main.ch-main .ch-page-content .elementor-container,
  body.woocommerce-checkout #main.ch-main .ch-page-content .elementor-container,
  body.woocommerce-cart #main.ch-main .ch-page-content .elementor-column,
  body.woocommerce-checkout #main.ch-main .ch-page-content .elementor-column,
  body.woocommerce-cart #main.ch-main .ch-page-content .elementor-column-wrap,
  body.woocommerce-checkout #main.ch-main .ch-page-content .elementor-column-wrap,
  body.woocommerce-cart #main.ch-main .ch-page-content .elementor-widget-wrap,
  body.woocommerce-checkout #main.ch-main .ch-page-content .elementor-widget-wrap,
  body.woocommerce-cart #main.ch-main .ch-page-content .elementor-widget-container,
  body.woocommerce-checkout #main.ch-main .ch-page-content .elementor-widget-container,
  body.woocommerce-cart #main.ch-main .ch-page-content .e-con,
  body.woocommerce-checkout #main.ch-main .ch-page-content .e-con,
  body.woocommerce-cart #main.ch-main .ch-page-content .e-con-inner,
  body.woocommerce-checkout #main.ch-main .ch-page-content .e-con-inner{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box;
  }
}

/* Final mobile spacing override: keep the requested 14px after Elementor's
   full-width wrapper reset above. */
@media(max-width:600px){
  body.woocommerce-cart #main.ch-main .ch-page-content{
    padding-left:14px!important;
    padding-right:14px!important;
    box-sizing:border-box;
  }
  body.woocommerce-checkout #main.ch-main .ch-page-heading{
    padding-left:14px!important;
    padding-right:14px!important;
    box-sizing:border-box;
  }
}
