.cart-link{
  position:relative;
}

.cart-count{
  display:inline-grid;
  place-items:center;
  min-width:22px;
  height:22px;
  margin-left:6px;
  padding:0 6px;
  border-radius:999px;
  background:#e53935;
  color:#f7d400;
  font-size:.78rem;
  font-weight:900;
  box-shadow:0 4px 10px rgba(0,0,0,.2);
}

.cart-add-small,
.cart-action{
  border:0;
  border-radius:8px;
  background:linear-gradient(90deg,#00a6a6,#1f1f4d);
  color:#fff;
  cursor:pointer;
  font-weight:900;
  transition:.2s;
  box-shadow:0 10px 18px rgba(31,31,77,.18);
}

.cart-add-small:hover,
.cart-action:hover{
  transform:translateY(-2px);
  background:linear-gradient(90deg,#e53935,#ff6b35);
}

.cart-add-small{
  width:calc(100% - 28px);
  margin:0 14px 14px;
  padding:11px 12px;
  font-size:.88rem;
}

.cart-action{
  padding:14px 22px;
}

.cart-toast{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:20;
  max-width:min(360px,calc(100vw - 40px));
  background:#1f1f4d;
  color:#fff;
  border-left:7px solid #f7d400;
  border-radius:8px;
  padding:14px 16px;
  box-shadow:0 18px 34px rgba(31,31,77,.28);
  transform:translateY(18px);
  opacity:0;
  pointer-events:none;
  transition:.22s;
}

.cart-toast.show{
  transform:translateY(0);
  opacity:1;
}

.cart-page{
  position:relative;
  overflow:hidden;
  padding:74px 20px;
  background:linear-gradient(135deg,#fffceb 0%,#fff4b8 34%,#e9fbff 68%,#fff 100%);
}

.cart-page::before{
  content:"";
  position:absolute;
  left:-62px;
  top:92px;
  width:236px;
  height:54px;
  border:3px solid rgba(31,31,77,.22);
  border-radius:8px;
  background:repeating-linear-gradient(90deg,rgba(31,31,77,.18) 0 2px,transparent 2px 17px),linear-gradient(135deg,rgba(247,212,0,.72),rgba(255,255,255,.62));
  transform:rotate(-16deg);
  box-shadow:0 14px 26px rgba(31,31,77,.1);
}

.cart-page::after{
  content:"";
  position:absolute;
  right:-64px;
  bottom:80px;
  width:220px;
  height:220px;
  background:linear-gradient(135deg,rgba(229,57,53,.16),rgba(0,166,166,.18));
  clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
  transform:rotate(14deg);
}

.cart-intro{
  position:relative;
  z-index:1;
  text-align:center;
  width:min(760px,calc(100% - 32px));
  max-width:none;
  margin:0 auto 34px;
  padding:28px clamp(16px,4vw,34px) 16px;
}

.cart-intro::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:100%;
  border-radius:8px;
  background:rgba(255,255,255,.62);
  box-shadow:0 18px 42px rgba(31,31,77,.08);
  transform:none;
  z-index:-1;
}

.cart-intro h2{
  font-size:clamp(2.1rem,5vw,3.35rem);
  margin-bottom:12px;
  color:#1f1f4d;
  line-height:1;
  text-shadow:2px 3px 0 rgba(247,212,0,.22);
}

.cart-intro h2::after{
  content:"";
  display:block;
  width:188px;
  height:9px;
  margin:16px auto 0;
  border-radius:8px;
  background:linear-gradient(90deg,#e53935,#f7d400,#00a6a6,#6a4cff);
}

.cart-intro p{
  line-height:1.65;
  color:#333;
  font-size:1.05rem;
  max-width:650px;
  margin:0 auto;
}

.cart-intro,
.cart-box,
.cart-summary,
.cart-empty,
.cart-item,
.cart-form,
.summary-stat,
.summary-actions{
  min-width:0;
  overflow-wrap:break-word;
}

.cart-intro *,
.cart-box *,
.cart-summary *,
.cart-empty *,
.cart-item *,
.cart-form *,
.summary-stat *,
.summary-actions *{
  max-width:100%;
  min-width:0;
}

.cart-intro h2,
.cart-box h3,
.cart-summary h3,
.cart-empty h3,
.cart-item h4{
  text-wrap:balance;
}

.summary-actions .btn,
.clear-cart,
.remove-item,
.cart-form button{
  white-space:normal;
  line-height:1.2;
}

.cart-layout{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  gap:24px;
  max-width:1120px;
  margin:auto;
  align-items:start;
}

.cart-box,
.cart-summary{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,253,240,.96));
  border:1px solid rgba(31,31,77,.1);
  border-radius:8px;
  box-shadow:0 16px 34px rgba(31,31,77,.14);
  padding:34px 24px 24px;
  position:relative;
  overflow:hidden;
}

.cart-box::before,
.cart-summary::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:11px;
  background:linear-gradient(90deg,#e53935,#f7d400,#00a6a6,#6a4cff);
}

.cart-box h3,
.cart-summary h3{
  color:#1f1f4d;
  margin-bottom:18px;
}

.cart-items{
  display:grid;
  gap:14px;
}

.cart-item{
  display:grid;
  grid-template-columns:96px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  border:1px solid rgba(31,31,77,.1);
  border-radius:8px;
  padding:12px;
  background:#fff;
}

.cart-item img{
  width:96px;
  aspect-ratio:1/1;
  object-fit:contain;
  border:1px solid #eee;
  border-radius:8px;
  padding:8px;
  background:#fff;
}

.cart-item h4{
  color:#1f1f4d;
  margin-bottom:6px;
}

.cart-item p{
  color:#555;
  line-height:1.45;
  font-size:.92rem;
}

.qty-controls{
  display:flex;
  align-items:center;
  gap:8px;
  justify-content:flex-end;
}

.qty-controls button,
.remove-item,
.clear-cart{
  border:0;
  border-radius:8px;
  cursor:pointer;
  font-weight:900;
  transition:.2s;
}

.qty-controls button{
  width:34px;
  height:34px;
  background:#fff8cf;
  color:#1f1f4d;
  border:1px solid rgba(31,31,77,.14);
}

.qty-controls button:hover,
.remove-item:hover,
.clear-cart:hover{
  transform:translateY(-2px);
}

.qty-number{
  min-width:30px;
  text-align:center;
  font-weight:900;
  color:#1f1f4d;
}

.remove-item{
  margin-top:10px;
  padding:9px 12px;
  background:#ffe9e6;
  color:#c62828;
}

.summary-stat{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
  background:#fff8cf;
  border-radius:8px;
  padding:14px;
  margin-bottom:14px;
  color:#1f1f4d;
  font-weight:900;
}

.summary-actions{
  display:grid;
  gap:10px;
  margin:18px 0;
}

.summary-actions .btn{
  text-align:center;
}

.clear-cart{
  padding:13px 16px;
  background:#1f1f4d;
  color:#fff;
}

.cart-form{
  display:grid;
  gap:12px;
  margin-top:18px;
}

.cart-form label{
  font-weight:900;
  color:#1f1f4d;
}

.cart-form input,
.cart-form textarea,
.cart-form select{
  width:100%;
  padding:12px;
  border:1px solid #ccc;
  border-radius:8px;
  font:inherit;
  background:#fff;
}

.cart-form textarea{
  min-height:92px;
  resize:vertical;
}

.cart-empty{
  display:none;
  text-align:center;
  background:#fff;
  border-radius:8px;
  padding:28px;
  box-shadow:0 14px 30px rgba(31,31,77,.1);
}

.cart-empty.show{
  display:block;
}

.cart-filled.is-empty{
  display:none;
}

.cart-page{
  background:
    repeating-linear-gradient(135deg,rgba(247,212,0,.18) 0 14px,transparent 14px 34px),
    repeating-linear-gradient(45deg,transparent 0 62px,rgba(0,166,166,.09) 62px 68px,transparent 68px 126px),
    linear-gradient(135deg,#fffceb 0%,#fff0b8 30%,#e5fbff 62%,#fff1f1 100%) !important;
}

.cart-page::before{
  background:
    repeating-linear-gradient(90deg,rgba(31,31,77,.2) 0 2px,transparent 2px 15px),
    linear-gradient(135deg,#f7d400 0%,#fff6a8 46%,#00a6a6 100%) !important;
  border-color:rgba(31,31,77,.26) !important;
}

.cart-page::after{
  background:linear-gradient(135deg,#e53935 0 33%,#f7d400 33% 66%,#00a6a6 66%) !important;
  opacity:.22;
  box-shadow:-110px 80px 0 -70px rgba(106,76,255,.65),-190px -42px 0 -86px rgba(247,212,0,.8);
}

.cart-intro{
  border:2px solid rgba(31,31,77,.1);
  box-shadow:0 18px 42px rgba(31,31,77,.1),inset 0 -8px 0 rgba(247,212,0,.22);
}

.cart-intro::after{
  content:"";
  position:absolute;
  left:24px;
  right:24px;
  bottom:-8px;
  height:12px;
  border-radius:999px;
  background:linear-gradient(90deg,#e53935,#f7d400,#00a6a6,#6a4cff,#ff6b35,#e53935);
  background-size:240% 100%;
  animation:cartStripeMove 8s linear infinite;
  box-shadow:0 8px 16px rgba(31,31,77,.12);
}

.cart-layout::before{
  content:"";
  position:absolute;
  left:-34px;
  top:-32px;
  width:86px;
  height:86px;
  background:#f7d400;
  clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 91%,50% 70%,21% 91%,32% 56%,2% 35%,39% 35%);
  filter:drop-shadow(0 12px 18px rgba(31,31,77,.15));
  z-index:-1;
  animation:cartSparkle 5s ease-in-out infinite;
}

.cart-layout::after{
  content:"";
  position:absolute;
  right:-28px;
  bottom:-30px;
  width:132px;
  height:34px;
  border-radius:8px;
  background:linear-gradient(90deg,#e53935,#f7d400,#00a6a6);
  transform:rotate(-10deg);
  box-shadow:0 12px 22px rgba(31,31,77,.14);
  z-index:-1;
}

.cart-box,
.cart-summary,
.cart-empty{
  border:2px solid rgba(31,31,77,.09) !important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,250,225,.96)),
    repeating-linear-gradient(135deg,transparent 0 48px,rgba(0,166,166,.08) 48px 54px) !important;
}

.cart-box::before,
.cart-summary::before{
  background:linear-gradient(90deg,#e53935,#f7d400,#00a6a6,#6a4cff,#ff6b35) !important;
}

.cart-box h3,
.cart-summary h3,
.cart-empty h3{
  text-shadow:1px 2px 0 rgba(247,212,0,.22);
}

.cart-item{
  background:linear-gradient(180deg,#fff,#fffdf0) !important;
  border:2px solid rgba(31,31,77,.08);
  box-shadow:0 10px 20px rgba(31,31,77,.08);
  transition:transform .2s,box-shadow .2s,border-color .2s;
}

.cart-item:nth-child(5n+2){background:linear-gradient(180deg,#fff,#e9fbff) !important}
.cart-item:nth-child(5n+3){background:linear-gradient(180deg,#fff,#fff1ee) !important}
.cart-item:nth-child(5n+4){background:linear-gradient(180deg,#fff,#f3efff) !important}
.cart-item:nth-child(5n+5){background:linear-gradient(180deg,#fff,#effcf3) !important}

.cart-item:hover{
  transform:translateY(-3px);
  border-color:rgba(229,57,53,.28);
  box-shadow:0 16px 28px rgba(31,31,77,.14);
}

.summary-stat{
  background:linear-gradient(135deg,#fff8cf,#e9fbff);
  border:2px solid rgba(31,31,77,.09);
  box-shadow:inset 0 -5px 0 rgba(247,212,0,.3);
}

.summary-actions .btn,
.cart-form button,
.cart-add-small,
.cart-action{
  background:linear-gradient(90deg,#e53935,#ff6b35,#f7d400);
  color:#fff;
}

.summary-actions .btn.secondary,
.clear-cart{
  background:linear-gradient(90deg,#1f1f4d,#6a4cff);
}

.cart-form input,
.cart-form textarea,
.cart-form select{
  border:2px solid rgba(31,31,77,.12);
  box-shadow:inset 0 -3px 0 rgba(247,212,0,.18);
}

.cart-form input:focus,
.cart-form textarea:focus,
.cart-form select:focus{
  outline:0;
  border-color:#00a6a6;
  box-shadow:0 0 0 4px rgba(0,166,166,.14),inset 0 -3px 0 rgba(247,212,0,.22);
}

@keyframes cartStripeMove{
  from{background-position:0 0}
  to{background-position:240% 0}
}

@keyframes cartSparkle{
  0%,100%{transform:translateY(0) rotate(-8deg) scale(.94)}
  50%{transform:translateY(-13px) rotate(10deg) scale(1.06)}
}

@media(max-width:860px){
  .cart-layout{
    grid-template-columns:1fr;
  }

  .cart-item{
    grid-template-columns:78px 1fr;
  }

  .cart-item img{
    width:78px;
  }

  .cart-item-actions{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }

  .remove-item{
    margin-top:0;
  }

  .cart-layout::before,
  .cart-layout::after{
    display:none;
  }
}
