/* Inner cart layout follows the design; the outer frame/title stay in BeBuilder. */
.biomy-element.biomy-element--cart { --biomy-cart-line:#070707; --biomy-cart-header:84px; color:#070707; margin:0; padding:0; font-size:16px; line-height:1.5; }
.biomy-element.biomy-element--cart .woocommerce { display:block; width:100%; max-width:none; margin:0; }
.biomy-element.biomy-element--cart .biomy-cart__layout { position:relative; display:grid; grid-template-columns:minmax(0,61.3fr) minmax(0,38.7fr); grid-template-rows:minmax(var(--biomy-cart-header),auto) 1fr; gap:0; align-items:start; }
.biomy-element.biomy-element--cart .biomy-cart__layout::before { content:""; position:absolute; top:var(--biomy-cart-header); left:var(--biomy-cart-line-left,0px); right:var(--biomy-cart-line-right,0px); height:0; border-top:1px solid var(--biomy-cart-line); background:none; pointer-events:none; }
.biomy-element.biomy-element--cart .biomy-cart__layout::after { content:""; position:absolute; top:0; bottom:0; left:61.3%; width:0; border-left:1px solid var(--biomy-cart-line); background:none; pointer-events:none; }
.biomy-element.biomy-element--cart .biomy-cart__accent { position:absolute; top:calc(var(--biomy-cart-header) + .5px); left:calc(61.3% + .5px); width:28px; height:8px; border-radius:999px; background:#070707; transform:translate(-50%,-50%); pointer-events:none; z-index:1; }
.biomy-element.biomy-element--cart .biomy-cart__form { display:contents; }
.biomy-element.biomy-element--cart .biomy-cart__products { grid-column:1; grid-row:1 / span 2; min-width:0; padding:0 32px 40px 40px; display:flex; flex-direction:column; }
.biomy-element.biomy-element--cart .biomy-cart__layout .cart-collaterals.biomy-cart__summary { grid-column:2; grid-row:2; min-width:0; width:auto; float:none; margin:0; padding:36px 24px 40px; border:0; background:transparent; border-radius:0; max-width:none; }
.biomy-element.biomy-element--cart .biomy-cart__coupon { grid-column:2; grid-row:1; min-width:0; box-sizing:border-box; width:100%; margin:0; padding:20px 24px; border:0; }
.biomy-element.biomy-element--cart .biomy-cart__table { display:block; width:100%; margin:0; border:0; border-collapse:collapse; border-spacing:0; background:transparent; color:#070707; font-family:inherit; }
.biomy-element.biomy-element--cart .biomy-cart__table thead,
.biomy-element.biomy-element--cart .biomy-cart__table tbody { display:block; }
.biomy-element.biomy-element--cart .biomy-cart__table tr { box-sizing:border-box; display:grid; grid-template-columns:72px minmax(90px,1fr) minmax(76px,.58fr) 116px minmax(76px,.58fr) 44px; gap:12px; align-items:center; min-height:144px; padding:20px 0; border:0; background:transparent; }
.biomy-element.biomy-element--cart .biomy-cart__table thead tr { height:var(--biomy-cart-header); min-height:0; align-items:end; padding:0 0 16px; }
.biomy-element.biomy-element--cart .biomy-cart__table th,
.biomy-element.biomy-element--cart .biomy-cart__table td { min-width:0; border:0; padding:0; text-align:left; background:transparent; color:inherit; font-family:inherit; font-size:16px; line-height:1.5; vertical-align:middle; overflow-wrap:anywhere; box-shadow:none; }
.biomy-element.biomy-element--cart .biomy-cart__table th { font-weight:500; text-transform:uppercase; }
.biomy-element.biomy-element--cart .biomy-cart__product-heading { grid-column:span 2; }
.biomy-element.biomy-element--cart .biomy-cart__table td.product-price,
.biomy-element.biomy-element--cart .biomy-cart__table td.product-subtotal { color:inherit; }
.biomy-element.biomy-element--cart .product-thumbnail img { display:block; width:72px; height:104px; max-width:100%; object-fit:contain; }
.biomy-element.biomy-element--cart .biomy-cart__table .product-name a { color:inherit; font-weight:500; text-decoration:none; }
.biomy-element.biomy-element--cart .product-name dl { margin:8px 0 0; font-size:12px; }
.biomy-element.biomy-element--cart .product-name dt,
.biomy-element.biomy-element--cart .product-name dd,
.biomy-element.biomy-element--cart .product-name dd p { margin:0; }
.biomy-element.biomy-element--cart .product-price del { display:block; opacity:.55; font-size:12px; }
/* WooCommerce mobile #content table.cart hides thumbnails through 768px. */
.biomy-element.biomy-element--cart .biomy-cart__table td.product-thumbnail { display:block !important; }
/* WooCommerce sets the remove-link color with !important, including hover. */
.biomy-element.biomy-element--cart .biomy-cart__table .product-remove a.remove { display:flex; align-items:center; justify-content:center; width:44px; height:44px; color:#070707 !important; background:transparent; border-radius:50%; font-size:26px; font-weight:400; text-decoration:none; }
.biomy-element.biomy-element--cart .biomy-cart__quantity { position:relative; display:flex; align-items:center; justify-content:center; width:116px; max-width:100%; min-height:44px; box-sizing:border-box; }
/* The visible pill is 34px tall; each step retains a 44px pointer target. */
.biomy-element.biomy-element--cart .biomy-cart__quantity::before { content:""; position:absolute; inset:5px 0; border:1px solid #070707; border-radius:28px; pointer-events:none; }
.biomy-element.biomy-element--cart .biomy-cart__quantity .quantity { display:block; width:28px; margin:0; min-width:0; flex:1; text-align:center; }
.biomy-element.biomy-element--cart .biomy-cart__quantity .quantity .minus,
.biomy-element.biomy-element--cart .biomy-cart__quantity .quantity .plus { display:none; }
/* BeTheme 28.5.9.1 sets quantity padding with !important. Only that confirmed collision needs an override. */
.biomy-element.biomy-element--cart .biomy-cart__quantity input.qty { box-sizing:border-box; min-width:0; width:100%; height:34px; margin:0; padding:0 !important; text-align:center; border:0; border-radius:0; box-shadow:none; background:transparent; font-family:inherit; font-size:16px; font-weight:400; color:inherit; appearance:textfield; }
.biomy-element.biomy-element--cart .biomy-cart__quantity input::-webkit-inner-spin-button,
.biomy-element.biomy-element--cart .biomy-cart__quantity input::-webkit-outer-spin-button { appearance:none; margin:0; }
.biomy-element.biomy-element--cart .biomy-cart__step { flex:0 0 44px; width:44px; height:44px; min-height:44px; margin:0; padding:0; border:0; border-radius:50%; background:transparent; color:inherit; box-shadow:none; font-size:18px; }
.biomy-element.biomy-element--cart .biomy-cart__step::after { display:none; }
.biomy-element.biomy-element--cart [hidden] { display:none; }
.biomy-element.biomy-element--cart .biomy-cart__step:disabled { opacity:.3; cursor:default; }
.biomy-element.biomy-element--cart .biomy-cart__actions { margin:0; }
.biomy-element.biomy-element--cart .biomy-cart__progress-slot { order:3; width:min(100%,480px); }
.biomy-element.biomy-element--cart .biomy-cart__progress { margin:40px 0 0; }
.biomy-element.biomy-element--cart .biomy-cart__progress progress { display:block; width:100%; height:10px; border:0; border-radius:0; background:#e9e9e9; color:#070707; appearance:none; overflow:hidden; }
.biomy-element.biomy-element--cart progress::-webkit-progress-bar { background:#e9e9e9; }
.biomy-element.biomy-element--cart progress::-webkit-progress-value { background:#070707; }
.biomy-element.biomy-element--cart progress::-moz-progress-bar { background:#070707; }
.biomy-element.biomy-element--cart .biomy-cart__progress p { margin:14px 0 0; font-size:16px; }
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals { width:100%; float:none; margin:0; padding:0; background:transparent; border:0; border-radius:0; }
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals table,
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals tbody { display:block; width:100%; margin:0; border:0; border-collapse:collapse; background:transparent; }
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals tr { display:flex; width:100%; border:0; }
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals th,
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals td { flex:1; width:auto; min-width:0; border:0; padding:0 0 28px; background:transparent; font-size:18px; line-height:1.5; color:#070707; font-family:inherit; text-align:left; overflow-wrap:anywhere; box-shadow:none; }
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals th { font-weight:500; }
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals td { text-align:right; }
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals tr.woocommerce-shipping-totals { display:block; }
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals .woocommerce-shipping-totals th,
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals .woocommerce-shipping-totals td { display:block; width:100%; box-sizing:border-box; text-align:left; }
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals .woocommerce-shipping-totals th { padding-bottom:10px; }
.biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals .woocommerce-shipping-totals td { font-size:16px; padding-bottom:28px; }
.biomy-element.biomy-element--cart #shipping_method { list-style:none; margin:0; padding:0; }
.biomy-element.biomy-element--cart #shipping_method li { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-height:38px; padding:0; margin:0; }
.biomy-element.biomy-element--cart #shipping_method label { flex:1; margin:0; cursor:pointer; font-weight:400; }
.biomy-element.biomy-element--cart input[type=radio] { accent-color:#070707; }
.biomy-element.biomy-element--cart .woocommerce-shipping-destination { margin:12px 0 0; font-size:16px; line-height:1.5; color:#888; }
.biomy-element.biomy-element--cart .shipping-calculator-button { color:#777; font-size:14px; }
.biomy-element.biomy-element--cart .shipping-calculator-button::after { display:none; }
.biomy-element.biomy-element--cart .biomy-cart__totals .order-total .amount { font-size:20px; font-weight:500; }
.biomy-element.biomy-element--cart .wc-proceed-to-checkout { padding:8px 0 0; }
.biomy-element.biomy-element--cart .button { box-sizing:border-box; min-height:44px; border:1px solid #070707; border-radius:32px; padding:12px 20px; margin:0; box-shadow:none; background:#070707; color:white; font-size:16px; font-weight:500; line-height:1.5; text-align:center; text-decoration:none; transition:color 350ms cubic-bezier(.22,1,.36,1),background-color 350ms cubic-bezier(.22,1,.36,1); }
.biomy-element.biomy-element--cart .button::after { display:none; }
.biomy-element.biomy-element--cart .biomy-cart__summary .wc-proceed-to-checkout .biomy-cart__checkout { display:block; width:100%; border:1px solid #070707; background:#070707; color:#fff; font-family:inherit; font-size:16px; line-height:1.5; font-weight:400; text-transform:uppercase; padding:12px 16px; margin:0; }
/* BeTheme can add its own H4 even when our totals template has no heading. */
.biomy-element.biomy-element--cart .biomy-cart__summary > :is(h2,h4),
.biomy-element.biomy-element--cart .biomy-cart__summary .cart_totals > :is(h2,h4) { display:none; }
/* Same closed trigger and open input geometry as sidecart; use native cart form names only. */
.biomy-element.biomy-element--cart .biomy-cart__coupon summary { display:flex; align-items:center; justify-content:space-between; cursor:pointer; min-height:44px; margin:0; color:#070707; font-size:16px; font-weight:500; list-style:none; }
.biomy-element.biomy-element--cart .biomy-cart__coupon summary::-webkit-details-marker { display:none; }
.biomy-element.biomy-element--cart .biomy-cart__coupon summary::after { content:""; width:8px; height:8px; margin:-4px 7px 0 14px; border-right:1.5px solid #070707; border-bottom:1.5px solid #070707; transform:rotate(45deg); }
.biomy-element.biomy-element--cart .biomy-cart__coupon[open] summary { display:none; }
.biomy-element.biomy-element--cart .biomy-cart__coupon .coupon { position:relative; display:block; margin:0; padding:0; width:100%; }
.biomy-element.biomy-element--cart .biomy-cart__coupon .coupon input { box-sizing:border-box; width:100%; height:44px; margin:0; padding:10px 48px 10px 12px; border:1px solid #070707; border-radius:0; box-shadow:none; background:#f5f5f5; color:#070707; font-family:inherit; font-size:14px; font-weight:400; }
.biomy-element.biomy-element--cart .biomy-cart__coupon .coupon input::placeholder { color:#999; opacity:1; }
.biomy-element.biomy-element--cart .biomy-cart__apply-coupon { position:absolute; top:0; right:0; display:flex; align-items:center; justify-content:center; box-sizing:border-box; width:44px; height:44px; min-height:44px; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; color:#070707; font-size:22px; font-weight:400; }
.biomy-element.biomy-element--cart .biomy-cart__apply-coupon::after { display:none; }
.biomy-element.biomy-element--cart .coupon-error-notice { width:100%; margin-top:10px; font-size:14px; }
.biomy-element.biomy-element--cart :focus-visible { outline:2px solid #070707; outline-offset:4px; }
/* BeTheme does not always load WordPress's screen-reader utility. Keep our labels accessible independently. */
.biomy-element.biomy-element--cart .biomy-cart__sr-only,
.biomy-element.biomy-element--cart .biomy-cart__layout .screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; padding:0; border:0; margin:-1px; }
.biomy-element.biomy-element--cart .biomy-cart__layout > .woocommerce-error,
.biomy-element.biomy-element--cart .biomy-cart__layout > .woocommerce-message,
.biomy-element.biomy-element--cart .biomy-cart__layout > .woocommerce-info { grid-column:1 / -1; }
.biomy-element.biomy-element--cart .biomy-cart__form > .blockUI { display:none; }
.biomy-element.biomy-element--cart .biomy-cart__layout:has(.processing) { opacity:.55; cursor:wait; }
.biomy-element.biomy-element--cart[data-biomy-cart-enhanced] .biomy-cart__update { display:none; }
.biomy-element.biomy-element--cart[data-biomy-cart-enhanced]:has(.biomy-cart__network-notice) .biomy-cart__update { display:inline-block; }
/* BeTheme's stepper is outside the shortcode; scope the exception to the cart page and rendered module. */
body.woocommerce-cart:has(.biomy-element--cart) .mfn-checkout-steps { display:none; }
@media (hover:hover) and (pointer:fine) {
 .biomy-element.biomy-element--cart .biomy-cart__summary .wc-proceed-to-checkout .biomy-cart__checkout:hover,
 .biomy-element.biomy-element--cart .button:hover { background:transparent; color:#070707; border:1px solid #070707; }
 .biomy-element.biomy-element--cart .biomy-cart__table .product-remove a:hover { background:#f1f1f1; }
}
@media (max-width:1239px) {
 .biomy-element.biomy-element--cart .biomy-cart__layout { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto; }
 .biomy-element.biomy-element--cart .biomy-cart__layout::after,
 .biomy-element.biomy-element--cart .biomy-cart__accent { display:none; }
 .biomy-element.biomy-element--cart .biomy-cart__products { grid-column:1; grid-row:1; padding:0 24px 32px; }
 .biomy-element.biomy-element--cart .biomy-cart__layout .cart-collaterals.biomy-cart__summary { grid-column:1; grid-row:3; padding:24px; }
 .biomy-element.biomy-element--cart .biomy-cart__coupon { grid-column:1; grid-row:2; padding:0 24px; }
}
@media (max-width:767px) {
 .biomy-element.biomy-element--cart .biomy-cart__layout::before { display:none; }
 .biomy-element.biomy-element--cart .biomy-cart__products { position:relative; padding:0 0 40px; }
 .biomy-element.biomy-element--cart .biomy-cart__coupon { padding:32px 0 0; }
 .biomy-element.biomy-element--cart .biomy-cart__layout .cart-collaterals.biomy-cart__summary { padding:32px 0 24px; }
 .biomy-element.biomy-element--cart .biomy-cart__table thead { display:none; }
 .biomy-element.biomy-element--cart .biomy-cart__table tr { position:relative; grid-template-columns:68px minmax(0,1fr) 44px; gap:24px 16px; padding:40px 0; }
 .biomy-element.biomy-element--cart .biomy-cart__table td::before,
 .biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals td::before { content:none; }
 .biomy-element.biomy-element--cart .biomy-cart__table td.product-thumbnail { display:block; grid-column:1; grid-row:2; }
 .biomy-element.biomy-element--cart .product-name { grid-column:2; grid-row:2; }
 .biomy-element.biomy-element--cart .product-remove { grid-column:3; grid-row:2; }
 .biomy-element.biomy-element--cart .biomy-cart__table .product-price,
 .biomy-element.biomy-element--cart .biomy-cart__table .product-quantity,
 .biomy-element.biomy-element--cart .biomy-cart__table .product-subtotal { grid-column:1 / -1; display:flex; justify-content:space-between; align-items:center; gap:16px; }
 .biomy-element.biomy-element--cart .biomy-cart__table .product-price { flex-wrap:wrap; justify-content:flex-end; }
 .biomy-element.biomy-element--cart .biomy-cart__table .product-price::before { margin-right:auto; }
 .biomy-element.biomy-element--cart .biomy-cart__table .product-price::before,
 .biomy-element.biomy-element--cart .biomy-cart__table .product-quantity::before,
 .biomy-element.biomy-element--cart .biomy-cart__table .product-subtotal::before { content:attr(data-title) ":"; font-weight:400; text-transform:uppercase; }
 .biomy-element.biomy-element--cart .biomy-cart__progress-slot { order:-1; width:100%; }
 .biomy-element.biomy-element--cart .biomy-cart__progress { margin:0 0 20px; }
}
@media (pointer:coarse) {
 .biomy-element.biomy-element--cart #shipping_method li { min-height:44px; }
}
@media (prefers-reduced-motion:reduce) {
 .biomy-element.biomy-element--cart .button { transition:none; }
}
@media (max-width:767px) {
 /* Reuse existing section-edge measurements for mobile dividers. */
 .biomy-element.biomy-element--cart .biomy-cart__products::after,
 .biomy-element.biomy-element--cart .biomy-cart__table .cart_item + .cart_item::after { content:""; position:absolute; left:var(--biomy-cart-line-left,0px); right:var(--biomy-cart-line-right,0px); border-top:1px solid var(--biomy-cart-line); pointer-events:none; }
 .biomy-element.biomy-element--cart .biomy-cart__products::after { bottom:0; }
 .biomy-element.biomy-element--cart .biomy-cart__products::before { content:""; position:absolute; bottom:-2px; left:var(--biomy-cart-frame-left,var(--biomy-cart-line-left,0px)); width:18px; height:5px; border-radius:999px; background:var(--biomy-cart-line); transform:translateX(-50%); pointer-events:none; }
 .biomy-element.biomy-element--cart .biomy-cart__table .cart_item:last-child { padding-bottom:0; }
 .biomy-element.biomy-element--cart .biomy-cart__table .cart_item::before { content:attr(data-biomy-product-label); grid-column:1 / -1; grid-row:1; text-transform:uppercase; font-size:14px; }
 .biomy-element.biomy-element--cart .biomy-cart__table .cart_item + .cart_item::after { top:0; }
 .biomy-element.biomy-element--cart .biomy-cart__table td,
 .biomy-element.biomy-element--cart .biomy-cart__table .product-name a { font-size:14px; }
 .biomy-element.biomy-element--cart .product-thumbnail img { width:68px; height:80px; }
 .biomy-element.biomy-element--cart .biomy-cart__table .product-price { gap:8px; }
 .biomy-element.biomy-element--cart .biomy-cart__progress p { margin-top:12px; font-size:14px; }
 .biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals th,
 .biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals td,
 .biomy-element.biomy-element--cart .biomy-cart__totals .order-total .amount { font-size:16px; }
 .biomy-element.biomy-element--cart .biomy-cart__summary .biomy-cart__totals .woocommerce-shipping-totals td,
 .biomy-element.biomy-element--cart .woocommerce-shipping-destination { font-size:14px; }
 .biomy-element.biomy-element--cart .biomy-cart__summary .wc-proceed-to-checkout .biomy-cart__checkout { font-size:14px; padding:12px; }
 .biomy-element.biomy-element--cart .biomy-cart__accent { width:18px; height:5px; }
}
