/* Jigsawfy Cart UI v0.1.0 */
:root{
  --jfy-cart-ink:#67033a;
  --jfy-cart-ink-soft:rgba(103,3,58,.72);
  --jfy-cart-purple:195,175,255;
  --jfy-cart-pink:255,195,235;
  --jfy-cart-glass:rgba(255,255,255,.68);
  --jfy-cart-radius:24px;
  --jfy-cart-shadow:-10px -10px 24px rgba(255,255,255,.86),14px 18px 42px rgba(154,116,172,.17);
  --jfy-cart-shadow-hover:-8px -8px 22px rgba(255,255,255,.96),18px 24px 54px rgba(185,20,140,.20);
}

/* Page shell */
.woocommerce-cart .site-content,
.woocommerce-checkout .site-content{
  background:
    radial-gradient(900px 420px at 18% 8%, rgba(var(--jfy-cart-pink),.18), transparent 62%),
    radial-gradient(760px 360px at 86% 16%, rgba(var(--jfy-cart-purple),.18), transparent 58%),
    linear-gradient(180deg,#fff,#fbf9fc 48%,#fff);
}

.woocommerce-cart .entry-content > .woocommerce,
.woocommerce-checkout .entry-content > .woocommerce{
  max-width:1180px;
  margin:0 auto;
}

/* Main cart card */
.woocommerce-cart form.woocommerce-cart-form,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout form.checkout,
.woocommerce .woocommerce-notices-wrapper .woocommerce-message,
.woocommerce .woocommerce-notices-wrapper .woocommerce-info,
.woocommerce .woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-cart .wc-empty-cart-message,
.woocommerce-cart .return-to-shop{
  border-radius:var(--jfy-cart-radius);
  background:
    linear-gradient(135deg,rgba(var(--jfy-cart-pink),.18),rgba(var(--jfy-cart-purple),.12)),
    rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.74);
  box-shadow:var(--jfy-cart-shadow);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
}

.woocommerce-cart form.woocommerce-cart-form{
  padding:18px;
  overflow:hidden;
}

.woocommerce-cart .cart-collaterals .cart_totals{
  padding:22px;
}

/* Table polish */
.woocommerce-cart table.shop_table,
.woocommerce-checkout table.shop_table{
  border:0!important;
  border-collapse:separate!important;
  border-spacing:0 12px!important;
  background:transparent!important;
}

.woocommerce-cart table.shop_table thead th,
.woocommerce-checkout table.shop_table thead th{
  border:0!important;
  color:rgba(52,31,62,.55);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:10px 14px!important;
}

.woocommerce-cart table.shop_table tbody tr.cart_item,
.woocommerce-checkout table.shop_table tbody tr.cart_item,
.woocommerce-checkout table.shop_table tbody tr.order_item{
  background:rgba(255,255,255,.74);
  box-shadow:0 10px 26px rgba(130,90,150,.10);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.woocommerce-cart table.shop_table tbody tr.cart_item:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.92);
  box-shadow:0 18px 42px rgba(185,20,140,.14);
}

.woocommerce-cart table.shop_table td,
.woocommerce-checkout table.shop_table td,
.woocommerce-checkout table.shop_table th{
  border:0!important;
  color:var(--jfy-cart-ink-soft);
  font-weight:750;
  vertical-align:middle!important;
}

.woocommerce-cart table.shop_table td:first-child{border-radius:18px 0 0 18px!important;}
.woocommerce-cart table.shop_table td:last-child{border-radius:0 18px 18px 0!important;}

.woocommerce-cart .product-thumbnail img{
  width:86px!important;
  border-radius:16px;
  filter:drop-shadow(0 12px 20px rgba(80,60,100,.16));
}

.woocommerce-cart .product-name a,
.woocommerce-checkout .product-name{
  color:#26142c!important;
  font-weight:900;
  text-decoration:none!important;
}

.woocommerce-cart .product-price,
.woocommerce-cart .product-subtotal,
.woocommerce-cart .cart_totals .order-total,
.woocommerce-checkout .order-total{
  color:var(--jfy-cart-ink)!important;
  font-weight:950;
}

.woocommerce-cart .product-remove a.remove{
  width:34px;
  height:34px;
  display:grid!important;
  place-items:center;
  border-radius:999px;
  color:var(--jfy-cart-ink)!important;
  background:rgba(255,255,255,.72);
  box-shadow:inset -3px -3px 8px rgba(255,255,255,.9), inset 4px 4px 10px rgba(154,116,172,.12);
  line-height:1!important;
}
.woocommerce-cart .product-remove a.remove:hover{
  background:#fff!important;
  color:#b91475!important;
  box-shadow:0 10px 24px rgba(185,20,140,.18);
}

/* Quantity controls */
.woocommerce-cart .quantity .qty,
.woocommerce .quantity .qty{
  border:0!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.78)!important;
  color:var(--jfy-cart-ink)!important;
  font-weight:900!important;
  box-shadow:inset 4px 4px 10px rgba(110,70,130,.10), inset -4px -4px 10px rgba(255,255,255,.88)!important;
  min-height:42px;
}

/* Coupon + inputs */
.woocommerce-cart .coupon,
.woocommerce-checkout .checkout_coupon{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.woocommerce-cart .coupon input.input-text,
.woocommerce-checkout .checkout_coupon input.input-text,
.woocommerce-checkout input.input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout select{
  border:1px solid rgba(255,255,255,.8)!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.72)!important;
  box-shadow:inset 5px 5px 12px rgba(110,70,130,.08), inset -5px -5px 12px rgba(255,255,255,.92)!important;
  color:var(--jfy-cart-ink)!important;
  font-weight:750;
}

/* Buttons */
.woocommerce-cart .button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #place_order,
.woocommerce .return-to-shop .button,
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button{
  position:relative;
  border:0!important;
  border-radius:16px!important;
  color:var(--jfy-cart-ink)!important;
  background:rgba(255,255,255,.82)!important;
  font-weight:950!important;
  letter-spacing:.02em;
  box-shadow:
    -6px -6px 16px rgba(255,255,255,.96),
    7px 9px 20px rgba(154,116,172,.18),
    0 0 18px rgba(255,92,214,.10)!important;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease!important;
  overflow:hidden;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #place_order{
  width:100%;
  padding:16px 22px!important;
  font-size:16px!important;
  background:linear-gradient(135deg,rgba(255,235,246,.96),rgba(255,255,255,.94))!important;
  box-shadow:
    -8px -8px 20px rgba(255,255,255,.96),
    10px 12px 26px rgba(154,116,172,.18),
    0 0 26px rgba(255,92,214,.20),
    0 0 34px rgba(124,60,255,.13)!important;
}
.woocommerce-cart .button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-checkout #place_order:hover,
.woocommerce .return-to-shop .button:hover{
  transform:translateY(-2px);
  background:#fff!important;
  box-shadow:
    -8px -8px 22px rgba(255,255,255,1),
    12px 16px 34px rgba(154,116,172,.22),
    0 0 30px rgba(255,92,214,.30),
    0 0 38px rgba(124,60,255,.20)!important;
}

/* Cart totals */
.woocommerce-cart .cart_totals h2,
.woocommerce-checkout h3{
  color:#26142c;
  font-weight:950;
  letter-spacing:-.02em;
}
.woocommerce-cart .cart_totals table.shop_table{
  border-spacing:0 8px!important;
}
.woocommerce-cart .cart_totals table.shop_table tr{
  background:rgba(255,255,255,.54);
  border-radius:16px;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td{
  padding:14px!important;
}

/* Notices */
.woocommerce .woocommerce-notices-wrapper .woocommerce-message,
.woocommerce .woocommerce-notices-wrapper .woocommerce-info,
.woocommerce .woocommerce-notices-wrapper .woocommerce-error{
  padding:16px 20px!important;
  color:#40234a!important;
  border-top:0!important;
}
.woocommerce .woocommerce-error::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before{color:var(--jfy-cart-ink)!important;}

/* Empty cart */
.woocommerce-cart .wc-empty-cart-message,
.woocommerce-cart .return-to-shop{
  text-align:center;
  padding:28px!important;
  margin:18px auto!important;
  max-width:760px;
}
.woocommerce-cart .cart-empty.woocommerce-info{
  margin:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
  font-size:20px;
  font-weight:900;
}

/* Mini cart / widget cart */
.woocommerce-mini-cart,
.widget_shopping_cart_content{
  color:var(--jfy-cart-ink-soft);
}
.woocommerce-mini-cart li.woocommerce-mini-cart-item{
  border-radius:16px;
  background:rgba(255,255,255,.72);
  box-shadow:0 10px 26px rgba(130,90,150,.10);
  padding:12px!important;
  margin-bottom:10px!important;
}
.woocommerce-mini-cart .button{
  border-radius:14px!important;
  background:rgba(255,255,255,.88)!important;
  color:var(--jfy-cart-ink)!important;
  font-weight:900!important;
}

/* Mobile */
@media(max-width:768px){
  .woocommerce-cart form.woocommerce-cart-form,
  .woocommerce-cart .cart-collaterals .cart_totals{padding:14px;border-radius:20px}
  .woocommerce-cart table.shop_table_responsive tr,
  .woocommerce-page table.shop_table_responsive tr{
    display:block;
    margin-bottom:14px;
    padding:14px;
    border-radius:20px!important;
    background:rgba(255,255,255,.76)!important;
    box-shadow:var(--jfy-cart-shadow);
  }
  .woocommerce-cart table.shop_table_responsive tr td,
  .woocommerce-page table.shop_table_responsive tr td{
    display:flex!important;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    border-radius:0!important;
    padding:10px 2px!important;
  }
  .woocommerce-cart table.shop_table_responsive tr td::before,
  .woocommerce-page table.shop_table_responsive tr td::before{
    color:rgba(52,31,62,.52);
    font-size:11px;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.08em;
  }
  .woocommerce-cart .product-thumbnail{justify-content:center!important;display:flex!important}
  .woocommerce-cart .product-thumbnail::before{display:none!important}
  .woocommerce-cart .product-thumbnail img{width:min(180px,54vw)!important}
  .woocommerce-cart .coupon{display:grid!important;grid-template-columns:1fr;gap:10px;width:100%}
  .woocommerce-cart .coupon input,.woocommerce-cart .coupon .button{width:100%!important}
}

@media(prefers-reduced-motion:reduce){
  .woocommerce-cart *,.woocommerce-checkout *{transition:none!important;animation:none!important}
}
