/* ============ CART OVERLAY ============ */
.cart-overlay{
  position:fixed;inset:0;z-index:200;
  background:rgba(31,21,16,.5);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  display:flex;justify-content:flex-end;
  opacity:0;transition:opacity .3s;
}
.cart-overlay[hidden]{display:none}
.cart-overlay.open{opacity:1}

/* ============ PANEL ============ */
.cart-panel{
  width:min(520px,100%);
  height:100%;
  background:var(--paper);
  display:flex;
  flex-direction:column;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.4,0,.2,1);
  box-shadow:-20px 0 60px rgba(31,21,16,.15);
  overflow:hidden; /* важно: не даёт расползтись */
}
.cart-overlay.open .cart-panel{transform:translateX(0)}

/* ============ HEAD (фиксированный, тонкий) ============ */
.cart-head{
  flex:0 0 auto;
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 28px;
  border-bottom:1px solid var(--line);
  background:var(--paper);
}
.cart-head h3{
  font-family:'Cormorant Garamond',serif;
  font-size:24px;font-weight:600;
}
.cart-close{
  background:none;border:none;
  font-size:28px;line-height:1;
  cursor:pointer;color:var(--muted);
  padding:4px 10px;border-radius:2px;
  transition:color .2s, background .2s;
}
.cart-close:hover{color:var(--ink);background:var(--cream)}

/* ============ BODY (скроллящийся) ============ */
/* Ключевые свойства: flex:1 + min-height:0 + overflow-y:auto */
.cart-body{
  flex:1 1 auto;
  min-height:0;            /* ← без этого flex-элемент не сжимается */
  overflow-y:auto;
  padding:0 28px 24px;
  -webkit-overflow-scrolling:touch;
}

/* Тонкий скроллбар */
.cart-body::-webkit-scrollbar{width:8px}
.cart-body::-webkit-scrollbar-track{background:transparent}
.cart-body::-webkit-scrollbar-thumb{
  background:rgba(31,21,16,.15);border-radius:8px;
}

/* ============ СПИСОК ТОВАРОВ ============ */
.cart-items{padding-top:8px}

.cart-item{
  display:grid;
  grid-template-columns:72px 1fr auto;
  gap:16px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.cart-item:last-child{border-bottom:none}

.cart-item-img{
  width:72px;height:72px;
  object-fit:cover;
  background:var(--cream);
  display:block;
}

.cart-item-info{min-width:0} /* чтобы h4 не вылезал за пределы grid */

.cart-item-info h4{
  font-family:'Cormorant Garamond',serif;
  font-size:18px;font-weight:600;
  margin:0 0 4px;line-height:1.25;
  word-wrap:break-word;
}
.cart-item-info .meta{
  font-size:12px;color:var(--muted);
  letter-spacing:.04em;margin-bottom:10px;
}

.cart-qty{
  display:inline-flex;align-items:center;
  border:1px solid var(--line);
  height:30px;
}
.cart-qty button{
  background:none;border:none;
  width:30px;height:28px;
  font-size:16px;line-height:1;
  cursor:pointer;color:var(--ink);
  transition:background .2s;
}
.cart-qty button:hover{background:var(--cream)}
.cart-qty span{
  min-width:34px;text-align:center;
  font-size:14px;font-weight:600;
  line-height:28px;
  border-left:1px solid var(--line);
  border-right:1px solid var(--line);
}

.cart-item-right{
  text-align:right;
  display:flex;flex-direction:column;
  align-items:flex-end;
  justify-content:space-between;
  min-height:72px;
}
.cart-item-price{
  font-family:'Cormorant Garamond',serif;
  font-size:19px;font-weight:700;
  white-space:nowrap;
}
.cart-item-remove{
  background:none;border:none;
  font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);cursor:pointer;
  padding:2px 0;
  transition:color .2s;
}
.cart-item-remove:hover{color:#8c2b3a}

/* ============ ПУСТАЯ КОРЗИНА ============ */
.cart-empty{
  text-align:center;
  padding:60px 8px;
  color:var(--muted);
}
.cart-empty[hidden]{display:none}
.cart-empty p{margin-bottom:8px;font-size:16px}
.cart-empty-hint{font-size:13px;opacity:.7}

/* ============ ФОРМА (внутри body, скроллится) ============ */
.cart-form{
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.cart-form[hidden]{display:none}
.cart-form-title{
  font-family:'Cormorant Garamond',serif;
  font-size:20px;font-weight:600;
  margin-bottom:18px;
}
.cart-form .field{margin-bottom:14px}
.cart-form label{
  display:block;
  font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);font-weight:600;
  margin-bottom:6px;
}
.cart-form input,
.cart-form textarea{
  width:100%;padding:11px 14px;
  border:1px solid var(--line);
  background:var(--paper);
  font-family:inherit;font-size:14px;
  color:var(--ink);outline:none;
  transition:border-color .2s;
  resize:vertical;
}
.cart-form input:focus,
.cart-form textarea:focus{border-color:var(--honey)}

.honeypot{
  position:absolute !important;
  left:-9999px !important;
  opacity:0;pointer-events:none;
}

.cart-policy{
  font-size:11px;color:var(--muted);
  line-height:1.45;margin-top:14px;
}

/* ============ STICKY-ФУТЕР: ИТОГ + КНОПКА ============ */
.cart-sticky{
  flex:0 0 auto;
  border-top:1px solid var(--line);
  background:var(--cream);
  padding:18px 28px 22px;
}
.cart-sticky[hidden]{display:none}

.cart-total{
  display:flex;justify-content:space-between;
  align-items:baseline;
  margin-bottom:14px;
}
.cart-total span{
  font-size:12px;letter-spacing:.22em;
  text-transform:uppercase;font-weight:600;
  color:var(--muted);
}
.cart-total strong{
  font-family:'Cormorant Garamond',serif;
  font-size:28px;font-weight:700;
}

.cart-submit{
  width:100%;
  justify-content:center;
}
.cart-submit:disabled{
  opacity:.6;cursor:not-allowed;
}

/* ============ УСПЕХ ============ */
.cart-success{
  text-align:center;
  padding:50px 8px 20px;
}
.cart-success[hidden]{display:none}
.cart-success-mark{
  width:60px;height:60px;
  border-radius:50%;
  background:var(--honey);color:var(--ink);
  font-size:28px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 20px;
}
.cart-success h4{
  font-family:'Cormorant Garamond',serif;
  font-size:24px;font-weight:600;
  margin-bottom:10px;
}
.cart-success p{
  font-size:14px;color:var(--muted);
  margin-bottom:24px;
}

/* ============ TOAST ============ */
.toast{
  position:fixed;bottom:32px;left:50%;
  transform:translate(-50%,20px);
  background:var(--ink);color:var(--cream);
  padding:14px 26px;
  font-size:13px;letter-spacing:.06em;
  z-index:300;
  opacity:0;transition:opacity .3s, transform .3s;
  pointer-events:none;
}
.toast[hidden]{display:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ============ МОБИЛЬНЫЙ ============ */
@media (max-width:640px){
  .cart-panel{width:100%}
  .cart-head{padding:16px 20px}
  .cart-body{padding:0 20px 20px}
  .cart-sticky{padding:14px 20px 18px}
  .cart-item{grid-template-columns:56px 1fr auto;gap:12px}
  .cart-item-img{width:56px;height:56px}
  .cart-item-info h4{font-size:16px}
  .cart-item-right{min-height:56px}
  .cart-item-price{font-size:17px}
}

.cart-item{
  animation:cartItemIn .3s ease both;
}
@keyframes cartItemIn{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:none}
}

.cart-item:hover{
  background:rgba(200,137,47,.04);
}
/* OVERLAY */
.cart-overlay{
  position:fixed;inset:0;z-index:200;
  background:rgba(31,21,16,.5);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  display:flex;justify-content:flex-end;
  opacity:0;transition:opacity .3s;
}
.cart-overlay[hidden]{display:none}
.cart-overlay.open{opacity:1}

/* PANEL */
.cart-panel{
  width:min(520px,100%);height:100%;
  background:var(--paper);
  display:flex;flex-direction:column;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.4,0,.2,1);
  box-shadow:-20px 0 60px rgba(31,21,16,.15);
  overflow:hidden;
}
.cart-overlay.open .cart-panel{transform:translateX(0)}

/* HEAD */
.cart-head{
  flex:0 0 auto;
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 28px;border-bottom:1px solid var(--line);
  background:var(--paper);
}
.cart-head h3{
  font-family:'Cormorant Garamond',serif;
  font-size:24px;font-weight:600;
}
.cart-close{
  background:none;border:none;font-size:28px;line-height:1;
  cursor:pointer;color:var(--muted);padding:4px 10px;
  border-radius:2px;transition:color .2s, background .2s;
}
.cart-close:hover{color:var(--ink);background:var(--cream)}

/* BODY (скролл) */
.cart-body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  padding:0 28px 24px;
  -webkit-overflow-scrolling:touch;
}
.cart-body::-webkit-scrollbar{width:8px}
.cart-body::-webkit-scrollbar-thumb{
  background:rgba(31,21,16,.15);border-radius:8px;
}

/* СПИСОК */
.cart-items{padding-top:8px}
.cart-item{
  display:grid;
  grid-template-columns:72px 1fr auto;
  gap:16px;padding:18px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.cart-item:last-child{border-bottom:none}
.cart-item-img{
  width:72px;height:72px;object-fit:cover;
  background:var(--cream);display:block;
}
.cart-item-info{min-width:0}
.cart-item-info h4{
  font-family:'Cormorant Garamond',serif;
  font-size:18px;font-weight:600;
  margin:0 0 4px;line-height:1.25;word-wrap:break-word;
}
.cart-item-info .meta{
  font-size:12px;color:var(--muted);
  letter-spacing:.04em;margin-bottom:10px;
}
.cart-qty{
  display:inline-flex;align-items:center;
  border:1px solid var(--line);height:30px;
}
.cart-qty button{
  background:none;border:none;width:30px;height:28px;
  font-size:16px;line-height:1;cursor:pointer;color:var(--ink);
  transition:background .2s;
}
.cart-qty button:hover{background:var(--cream)}
.cart-qty span{
  min-width:34px;text-align:center;
  font-size:14px;font-weight:600;line-height:28px;
  border-left:1px solid var(--line);
  border-right:1px solid var(--line);
}
.cart-item-right{
  text-align:right;display:flex;flex-direction:column;
  align-items:flex-end;justify-content:space-between;
  min-height:72px;
}
.cart-item-price{
  font-family:'Cormorant Garamond',serif;
  font-size:19px;font-weight:700;white-space:nowrap;
}
.cart-item-remove{
  background:none;border:none;
  font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);
  cursor:pointer;padding:2px 0;transition:color .2s;
}
.cart-item-remove:hover{color:#8c2b3a}

/* ПУСТАЯ */
.cart-empty{text-align:center;padding:60px 8px;color:var(--muted)}
.cart-empty[hidden]{display:none}
.cart-empty p{margin-bottom:8px;font-size:16px}
.cart-empty-hint{font-size:13px;opacity:.7}

/* ФОРМА */
.cart-form{
  margin-top:28px;padding-top:24px;
  border-top:1px solid var(--line);
}
.cart-form[hidden]{display:none}
.cart-form-title{
  font-family:'Cormorant Garamond',serif;
  font-size:20px;font-weight:600;margin-bottom:18px;
}
.cart-form .field{margin-bottom:14px}
.cart-form label{
  display:block;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);
  font-weight:600;margin-bottom:6px;
}
.cart-form input,
.cart-form textarea{
  width:100%;padding:11px 14px;
  border:1px solid var(--line);background:var(--paper);
  font-family:inherit;font-size:14px;color:var(--ink);
  outline:none;transition:border-color .2s;resize:vertical;
}
.cart-form input:focus,
.cart-form textarea:focus{border-color:var(--honey)}
.honeypot{position:absolute!important;left:-9999px!important;opacity:0;pointer-events:none}
.cart-policy{font-size:11px;color:var(--muted);line-height:1.45;margin-top:14px}

/* STICKY: ИТОГ + КНОПКА */
.cart-sticky{
  flex:0 0 auto;
  border-top:1px solid var(--line);
  background:var(--cream);
  padding:18px 28px 22px;
}
.cart-sticky[hidden]{display:none}
.cart-total{
  display:flex;justify-content:space-between;
  align-items:baseline;margin-bottom:14px;
}
.cart-total span{
  font-size:12px;letter-spacing:.22em;
  text-transform:uppercase;font-weight:600;color:var(--muted);
}
.cart-total strong{
  font-family:'Cormorant Garamond',serif;
  font-size:28px;font-weight:700;color:var(--ink);
}
.cart-submit{width:100%;justify-content:center}
.cart-submit:disabled{opacity:.6;cursor:not-allowed}

/* УСПЕХ */
.cart-success{text-align:center;padding:50px 8px 20px}
.cart-success[hidden]{display:none}
.cart-success-mark{
  width:60px;height:60px;border-radius:50%;
  background:var(--honey);color:var(--ink);
  font-size:28px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 20px;
}
.cart-success h4{
  font-family:'Cormorant Garamond',serif;
  font-size:24px;font-weight:600;margin-bottom:10px;
}
.cart-success p{font-size:14px;color:var(--muted);margin-bottom:24px}

/* TOAST */
.toast{
  position:fixed;bottom:32px;left:50%;
  transform:translate(-50%,20px);
  background:var(--ink);color:var(--cream);
  padding:14px 26px;font-size:13px;letter-spacing:.06em;
  z-index:300;opacity:0;
  transition:opacity .3s, transform .3s;
  pointer-events:none;
}
.toast[hidden]{display:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* МОБИЛЬНЫЙ */
@media (max-width:640px){
  .cart-panel{width:100%}
  .cart-head{padding:16px 20px}
  .cart-body{padding:0 20px 20px}
  .cart-sticky{padding:14px 20px 18px}
  .cart-item{grid-template-columns:56px 1fr auto;gap:12px}
  .cart-item-img{width:56px;height:56px}
  .cart-item-info h4{font-size:16px}
  .cart-item-right{min-height:56px}
  .cart-item-price{font-size:17px}
}
