/**
 * CGMCARE Premium Cart UI
 * Visual-only enhancements for WooCommerce cart pages. This stylesheet does
 * not alter cart calculations, coupons, shipping, quantities, or checkout flow.
 */
:root{
  --cgmcare-cart-primary:#0b2e78;
  --cgmcare-cart-primary-2:#2563eb;
  --cgmcare-cart-text:#111827;
  --cgmcare-cart-muted:#64748b;
  --cgmcare-cart-border:#dbe5f1;
  --cgmcare-cart-border-2:#edf2f7;
  --cgmcare-cart-card:#ffffff;
  --cgmcare-cart-bg:#f8fbff;
  --cgmcare-cart-success:#16a34a;
  --cgmcare-cart-error:#ef4444;
  --cgmcare-cart-radius:18px;
  --cgmcare-cart-field-radius:12px;
  --cgmcare-cart-shadow:0 20px 60px rgba(15,23,42,.08);
}

body.woocommerce-cart,
body.woocommerce-page.woocommerce-cart{
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}
body.woocommerce-cart .site-main,
body.woocommerce-cart main,
body.woocommerce-cart .entry-content,
body.woocommerce-cart .wp-block-post-content{
  overflow:visible;
}
body.woocommerce-cart .entry-title,
body.woocommerce-cart h1.wp-block-post-title,
body.woocommerce-cart h1{
  max-width:1180px;
  margin:28px auto 28px;
  color:var(--cgmcare-cart-text);
  font-size:clamp(34px,4vw,52px);
  line-height:1.05;
  font-weight:850;
  letter-spacing:-.04em;
}
body.woocommerce-cart .woocommerce{
  max-width:min(1284px, calc(100vw - 48px));
  margin:0 auto 80px;
}

/* Notices */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error{
  border:0!important;
  border-radius:16px;
  padding:16px 20px 16px 52px!important;
  margin:0 0 22px!important;
  box-shadow:0 12px 34px rgba(15,23,42,.07);
  font-size:14px;
}
body.woocommerce-cart .woocommerce-message{background:#ecfdf5!important;color:#166534!important;}
body.woocommerce-cart .woocommerce-info{background:#eff6ff!important;color:#1e3a8a!important;}
body.woocommerce-cart .woocommerce-error{background:#fff1f2!important;color:#991b1b!important;}
body.woocommerce-cart .woocommerce-message:before,
body.woocommerce-cart .woocommerce-info:before,
body.woocommerce-cart .woocommerce-error:before{top:16px!important;left:20px!important;}

/* Cart layout */
body.woocommerce-cart .woocommerce-cart-form{
  width:calc(100% - 520px);
  float:left;
  padding-right:38px;
  box-sizing:border-box;
}
body.woocommerce-cart .cart-collaterals{
  width:520px;
  float:right;
  clear:none!important;
}
body.woocommerce-cart .cart-collaterals:after,
body.woocommerce-cart .woocommerce:after{
  content:"";
  display:table;
  clear:both;
}

/* Cart table card */
body.woocommerce-cart table.shop_table.cart{
  border:1px solid var(--cgmcare-cart-border)!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  border-radius:var(--cgmcare-cart-radius)!important;
  background:var(--cgmcare-cart-card);
  box-shadow:var(--cgmcare-cart-shadow);
  overflow:hidden;
}
body.woocommerce-cart table.shop_table.cart thead th{
  background:#f8fafc;
  color:#334155;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:12px;
  font-weight:800;
  padding:18px 16px!important;
  border:0!important;
  border-bottom:1px solid var(--cgmcare-cart-border-2)!important;
}
body.woocommerce-cart table.shop_table.cart td{
  border:0!important;
  border-bottom:1px solid var(--cgmcare-cart-border-2)!important;
  padding:20px 16px!important;
  vertical-align:middle!important;
  color:var(--cgmcare-cart-text);
}
body.woocommerce-cart table.shop_table.cart tr:last-child td{border-bottom:0!important;}
body.woocommerce-cart table.shop_table.cart .product-thumbnail{width:100px;}
body.woocommerce-cart table.shop_table.cart .product-thumbnail img{
  width:82px!important;
  height:82px!important;
  object-fit:cover;
  border-radius:14px;
  background:#f1f5f9;
  box-shadow:0 8px 22px rgba(15,23,42,.08);
}
body.woocommerce-cart table.shop_table.cart .product-name a{
  color:var(--cgmcare-cart-text);
  font-weight:800;
  text-decoration:none;
  line-height:1.35;
}
body.woocommerce-cart table.shop_table.cart .product-name a:hover{color:var(--cgmcare-cart-primary-2);}
body.woocommerce-cart table.shop_table.cart .variation,
body.woocommerce-cart table.shop_table.cart .wc-item-meta{
  margin:8px 0 0;
  color:var(--cgmcare-cart-muted);
  font-size:13px;
  line-height:1.45;
}
body.woocommerce-cart table.shop_table.cart .variation dt,
body.woocommerce-cart table.shop_table.cart .variation dd,
body.woocommerce-cart table.shop_table.cart .wc-item-meta li{
  display:inline-block;
  margin:0 8px 0 0;
}
body.woocommerce-cart table.shop_table.cart .product-price,
body.woocommerce-cart table.shop_table.cart .product-subtotal{
  color:#0f172a;
  font-weight:850;
  white-space:nowrap;
}

/* Quantity */
body.woocommerce-cart .quantity .qty{
  width:82px!important;
  min-height:44px;
  border:1.5px solid var(--cgmcare-cart-border)!important;
  border-radius:12px!important;
  background:#fff;
  color:var(--cgmcare-cart-primary);
  font-weight:800;
  text-align:center;
  box-shadow:0 1px 2px rgba(15,23,42,.03);
}
body.woocommerce-cart .quantity .qty:focus{
  outline:none!important;
  border-color:var(--cgmcare-cart-primary-2)!important;
  box-shadow:0 0 0 4px rgba(37,99,235,.12)!important;
}

/* Remove action */
body.woocommerce-cart table.cart a.remove{
  width:34px!important;
  height:34px!important;
  line-height:31px!important;
  border-radius:50%!important;
  background:#fff1f2!important;
  color:#e11d48!important;
  border:1px solid #fecdd3;
  font-size:22px!important;
  font-weight:500!important;
  transition:all .18s ease;
}
body.woocommerce-cart table.cart a.remove:hover{
  background:#e11d48!important;
  color:#fff!important;
  transform:scale(1.05);
}

/* Coupon/actions */
body.woocommerce-cart table.cart td.actions{
  background:#fbfdff;
  padding:18px!important;
}
body.woocommerce-cart table.cart td.actions .coupon{
  display:flex;
  gap:10px;
  align-items:center;
  float:left;
}
body.woocommerce-cart table.cart td.actions .coupon .input-text{
  min-width:240px;
  min-height:48px;
  border:1.5px solid var(--cgmcare-cart-border)!important;
  border-radius:12px!important;
  padding:0 14px!important;
  color:var(--cgmcare-cart-text);
  box-shadow:0 1px 2px rgba(15,23,42,.03);
}
body.woocommerce-cart table.cart td.actions .coupon .input-text:focus{
  outline:none!important;
  border-color:var(--cgmcare-cart-primary-2)!important;
  box-shadow:0 0 0 4px rgba(37,99,235,.12)!important;
}
body.woocommerce-cart .button,
body.woocommerce-cart button.button,
body.woocommerce-cart input.button,
body.woocommerce-cart a.button,
body.woocommerce-cart .checkout-button{
  min-height:48px!important;
  border-radius:12px!important;
  border:1px solid transparent!important;
  background:linear-gradient(135deg,var(--cgmcare-cart-primary-2),var(--cgmcare-cart-primary))!important;
  color:#fff!important;
  font-size:14px!important;
  font-weight:850!important;
  padding:14px 20px!important;
  line-height:1.1!important;
  text-decoration:none!important;
  box-shadow:0 10px 24px rgba(37,99,235,.22);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
body.woocommerce-cart .button:hover,
body.woocommerce-cart button.button:hover,
body.woocommerce-cart input.button:hover,
body.woocommerce-cart a.button:hover,
body.woocommerce-cart .checkout-button:hover{
  transform:translateY(-1px);
  filter:saturate(1.08);
  box-shadow:0 15px 34px rgba(37,99,235,.28);
}
body.woocommerce-cart table.cart td.actions .button[name="update_cart"]{
  float:right;
  background:#fff!important;
  color:var(--cgmcare-cart-primary)!important;
  border-color:var(--cgmcare-cart-border)!important;
  box-shadow:none;
}
body.woocommerce-cart table.cart td.actions .button[name="update_cart"]:hover{
  background:#eff6ff!important;
  border-color:#bfdbfe!important;
}
body.woocommerce-cart table.cart td.actions .button:disabled,
body.woocommerce-cart table.cart td.actions .button[disabled]{
  opacity:.55!important;
  cursor:not-allowed!important;
  transform:none!important;
  box-shadow:none!important;
}

/* Totals card */
body.woocommerce-cart .cart-collaterals .cart_totals{
  width:100%!important;
  float:none!important;
  border:1px solid var(--cgmcare-cart-border);
  border-radius:var(--cgmcare-cart-radius);
  background:#fff;
  box-shadow:var(--cgmcare-cart-shadow);
  overflow:hidden;
  position:sticky;
  top:24px;
}
body.woocommerce-cart .cart-collaterals .cart_totals h2{
  margin:0!important;
  padding:22px 24px;
  color:var(--cgmcare-cart-text);
  font-size:22px;
  line-height:1.2;
  font-weight:850;
  background:#fff;
  border-bottom:1px solid var(--cgmcare-cart-border-2);
}
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table{
  border:0!important;
  border-radius:0!important;
  margin:0!important;
  box-shadow:none!important;
}
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table th,
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table td{
  border:0!important;
  border-bottom:1px solid var(--cgmcare-cart-border-2)!important;
  padding:18px 30px!important;
  color:var(--cgmcare-cart-text);
  font-size:15px;
}
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table th{font-weight:750;}
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table td{text-align:right;}
body.woocommerce-cart .cart-collaterals .cart_totals .order-total th,
body.woocommerce-cart .cart-collaterals .cart_totals .order-total td{
  font-size:22px!important;
  font-weight:900!important;
  color:#0f172a!important;
}


/* Keep notices/pending content inside the Cart Totals card with proper spacing. */
body.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-message,
body.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-info,
body.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-error,
body.woocommerce-cart .cart-collaterals .cart_totals .wc-block-components-notice-banner,
body.woocommerce-cart .cart-collaterals .cart_totals .cgmcare-cart-pending-notice{
  display:block;
  margin:18px 30px!important;
  padding:16px 18px!important;
  border-radius:14px!important;
  border:1px solid #dbeafe!important;
  background:#eff6ff!important;
  color:#1e3a8a!important;
  font-size:14px!important;
  line-height:1.6!important;
  box-shadow:none!important;
}
body.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-error{
  background:#fff1f2!important;
  border-color:#fecdd3!important;
  color:#9f1239!important;
}
body.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-message{
  background:#ecfdf5!important;
  border-color:#bbf7d0!important;
  color:#166534!important;
}
body.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-message:before,
body.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-info:before,
body.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-error:before{
  position:static!important;
  display:inline-block;
  margin-right:8px;
}
body.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout{
  border-top:1px solid var(--cgmcare-cart-border-2);
}

body.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout{
  padding:22px 30px 24px!important;
  margin:0!important;
}
body.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout a.checkout-button{
  display:flex!important;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:56px!important;
  margin:0!important;
  font-size:16px!important;
}
body.woocommerce-cart .cart_totals .woocommerce-shipping-destination,
body.woocommerce-cart .cart_totals .woocommerce-shipping-calculator,
body.woocommerce-cart .cart_totals small,
body.woocommerce-cart .cart_totals p{
  color:var(--cgmcare-cart-muted);
  font-size:13px;
  line-height:1.5;
}
body.woocommerce-cart .shipping-calculator-button{
  color:var(--cgmcare-cart-primary-2);
  font-weight:800;
  text-decoration:none;
}

/* Empty cart */
body.woocommerce-cart .cart-empty,
body.woocommerce-cart .return-to-shop{
  max-width:720px;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center;
}
body.woocommerce-cart .cart-empty{
  background:#fff;
  border:1px solid var(--cgmcare-cart-border);
  border-radius:22px;
  padding:44px 26px!important;
  box-shadow:var(--cgmcare-cart-shadow);
  color:var(--cgmcare-cart-muted);
}
body.woocommerce-cart .return-to-shop .button{min-width:210px;}

/* Block cart support */
body.woocommerce-cart .wc-block-cart{
  max-width:min(1284px, calc(100vw - 48px));
  margin:0 auto 80px;
}
body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wc-block-components-sidebar{
  border-radius:var(--cgmcare-cart-radius);
}
body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart .wc-block-components-sidebar .wc-block-components-totals-wrapper,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block{
  border-color:var(--cgmcare-cart-border)!important;
}
body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart .wc-block-components-sidebar{
  background:#fff;
  box-shadow:var(--cgmcare-cart-shadow);
}
body.woocommerce-cart .wc-block-components-product-image img{
  border-radius:14px;
  object-fit:cover;
}
body.woocommerce-cart .wc-block-components-button:not(.is-link){
  border-radius:12px!important;
  background:linear-gradient(135deg,var(--cgmcare-cart-primary-2),var(--cgmcare-cart-primary))!important;
  color:#fff!important;
  font-weight:850!important;
}

@media (max-width:1100px){
  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart .cart-collaterals{
    width:100%;
    float:none;
    padding-right:0;
  }
  body.woocommerce-cart .cart-collaterals{margin-top:28px;}
  body.woocommerce-cart .cart-collaterals .cart_totals{position:static;}
}
@media (max-width:768px){
  body.woocommerce-cart .woocommerce,
  body.woocommerce-cart h1,
  body.woocommerce-cart .wc-block-cart{
    width:calc(100% - 28px);
  }
  body.woocommerce-cart table.shop_table.cart{
    border-radius:16px!important;
  }
  body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item{
    display:block;
    margin:0;
    padding:18px 16px;
    border-bottom:1px solid var(--cgmcare-cart-border-2);
  }
  body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td{
    display:flex!important;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    border:0!important;
    padding:8px 0!important;
    text-align:right!important;
  }
  body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td:before{
    color:#475569;
    font-weight:800;
    text-align:left;
  }
  body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-thumbnail{
    display:block!important;
    text-align:left!important;
  }
  body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-thumbnail:before,
  body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-name:before{
    display:none;
  }
  body.woocommerce-cart table.shop_table.cart .product-thumbnail img{
    width:100%!important;
    max-width:180px!important;
    height:150px!important;
  }
  body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-name{
    display:block!important;
    text-align:left!important;
  }
  body.woocommerce-cart table.cart td.actions .coupon{
    width:100%;
    float:none;
    flex-direction:column;
    align-items:stretch;
    margin-bottom:12px;
  }
  body.woocommerce-cart table.cart td.actions .coupon .input-text,
  body.woocommerce-cart table.cart td.actions .coupon .button,
  body.woocommerce-cart table.cart td.actions .button[name="update_cart"]{
    width:100%!important;
    float:none!important;
  }
  body.woocommerce-cart .cart-collaterals .cart_totals h2,
  body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table th,
  body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table td,
  body.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}

/* CGMCARE Cart/Checkout responsive hero */
.cgmcare-cart-checkout-hero{
  box-sizing:border-box;
  width:100%;
  margin:0 auto 34px;
  padding:var(--cgmcare-hero-padding,56px) 24px;
  border-radius:var(--cgmcare-hero-radius,24px);
  background:var(--cgmcare-hero-bg,#EFF6FF);
  background-image:var(--cgmcare-hero-gradient,linear-gradient(135deg,#DBEAFE 0%,#D1FAE5 100%));
  color:var(--cgmcare-hero-text,#111827);
  border:1px solid rgba(37,99,235,.08);
  box-shadow:0 18px 48px rgba(15,23,42,.08);
  overflow:hidden;
  position:relative;
}
.cgmcare-cart-checkout-hero:before,
.cgmcare-cart-checkout-hero:after{
  content:"";
  position:absolute;
  border-radius:999px;
  pointer-events:none;
  opacity:.26;
}
.cgmcare-cart-checkout-hero:before{width:260px;height:260px;right:-80px;top:-100px;background:#fff;}
.cgmcare-cart-checkout-hero:after{width:180px;height:180px;left:-70px;bottom:-90px;background:var(--cgmcare-hero-accent,#2563EB);filter:blur(8px);opacity:.10;}
.cgmcare-cart-checkout-hero__inner{max-width:1180px;margin:0 auto;text-align:center;position:relative;z-index:1;}
.cgmcare-cart-checkout-hero__badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.72);box-shadow:0 8px 24px rgba(15,23,42,.08);font-size:13px;font-weight:800;color:var(--cgmcare-hero-accent,#2563EB);margin-bottom:14px;}
.cgmcare-cart-checkout-hero h1{margin:0;color:var(--cgmcare-hero-text,#111827);font-size:clamp(34px,5vw,56px);line-height:1.05;font-weight:900;letter-spacing:-.045em;}
.cgmcare-cart-checkout-hero p{max-width:720px;margin:14px auto 0;color:color-mix(in srgb, var(--cgmcare-hero-text,#111827) 72%, #fff);font-size:clamp(15px,1.7vw,18px);line-height:1.7;font-weight:500;}
@media (max-width:768px){.cgmcare-cart-checkout-hero{margin-bottom:24px;padding:38px 18px;border-radius:18px}.cgmcare-cart-checkout-hero h1{font-size:36px}.cgmcare-cart-checkout-hero p{font-size:15px}}
@media (max-width:480px){.cgmcare-cart-checkout-hero{padding:32px 16px}.cgmcare-cart-checkout-hero__badge{font-size:12px}.cgmcare-cart-checkout-hero h1{font-size:30px}}
