/* ================= CARRINHO DE COMPRAS ================= */
.cart-overlay{
 position:fixed;
 inset:0;

 background:rgba(0,0,0,0.45);

 display:flex;
 align-items:center;
 justify-content:center;

 opacity:0;
 visibility:hidden;

 transition:all .25s ease;

 z-index:2000;
}

.cart-overlay.active{
 opacity:1;
 visibility:visible;
}

.cart-modal{
 background:#fff;
 width:90%;
 max-width:640px;
 border-radius:16px;
 padding:22px 24px;
 box-shadow:0 20px 50px rgba(0,0,0,0.3);
 transform:translateY(20px);
 transition:transform .25s ease;
}

.cart-overlay.active .cart-modal{
 transform:translateY(0);
}

.cart-header{
 display:flex;
 justify-content:space-between;
 align-items:center;
 margin-bottom:0px;
}

.cart-header h2{
 margin:0;
 padding-bottom:0px;
 font-size:20px;
}

.cart-close{
 border:none;
 background:none;
 font-size:20px;
 cursor:pointer;
}

.cart-global-message{
  display:none;
  margin:12px 0 16px 0;
  padding:12px 14px;

  background:#fff3cd;
  border:1px solid #ffeeba;
  border-left:4px solid #f0ad4e;

  color:#856404;
  font-size:14px;
  line-height:1.4;

  border-radius:6px;
}

.cart-coupon{
  display:flex;
  gap:8px;
  margin-top:10px;
  margin-bottom:12px;
}

.cart-coupon input{
  flex:1;
  padding:8px 10px;
  border-radius:8px;
  border:1px solid #d1d5db;
}

.cart-coupon button{
  padding:8px 14px;
}

#voucher-feedback{
  font-size:12px;
  margin-top:4px;
}

#voucher-feedback.success{
  color:#047857;
}

#voucher-feedback.error{
  color:#dc2626;
}

/* Controle de Scroll do Carrinho */
.cart-items{
  max-height:320px;
  overflow-y:auto;
  padding-right:4px;
}

.cart-items::-webkit-scrollbar{
  width:6px;
}

.cart-items::-webkit-scrollbar-thumb{
  background:#d1d5db;
  border-radius:4px;
}
/* Fim do controle de Scrool do Carrinho */

.cart-item-title{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:4px;
}

.runner-name{
  font-weight:600;
  font-size:15px;
  color:#111827;
}

.runner-cpf{
  font-size:12px;
  padding:2px 8px;

  background:#e5e7eb;
  color:#374151;

  border-radius:999px;
  font-weight:500;

  letter-spacing:0.3px;
}

.cart-item{
  position:relative;
  padding:14px 12px;
  margin-bottom:10px;

  background:#f9fafb;
  border-radius:10px;

  border:1px solid #f1f5f9;
}

.cart-item strong{
 display:block;
 font-size:15px;
 margin-bottom:4px;
}

.cart-item-info{
 font-size:14px;
 color:#4b5563;
 margin-bottom:6px;
}

.cart-item-values{
 font-size:14px;
}

.cart-item-values div{
 display:flex;
 justify-content:space-between;
 margin-top:3px;
}

.cart-item:hover{
  background:#f1f5f9;
}

.cart-item.error{
  border:1px solid #e74c3c;
  background:#fff6f6;
}


.cart-summary{
 margin-top:16px;
 padding-top:12px;
 border-top:2px solid #e5e7eb;
}

.summary-line{
 display:flex;
 justify-content:space-between;
 font-size:14px;
 margin-top:6px;
}

.summary-total{
 display:flex;
 justify-content:space-between;
 font-size:18px;
 font-weight:700;
 margin-top:10px;
}

.summary-total{
 display:flex;
 justify-content:space-between;
 font-size:18px;
 font-weight:700;
 margin-top:10px;
}

.summary-line{
  display:flex;
  justify-content:space-between;
  font-size:14px;
  margin-top:6px;
}

.summary-line.discount{
  color:#047857;
  font-weight:600;
}

.discount{
 color:#047857;
}

.cart-item-error{
  margin:6px 0 8px 0;
  font-size:13px;
  color:#c0392b;
  font-weight:500;
}

.cart-item-error:empty{
  display:none;
}

.cart-item-error:not(:empty)::before{
  content:"⚠ ";
}

.cart-remove{
  position:absolute;
  top:6px;
  right:0px;

  border:none;
  background:none;

  font-size:20px;
  cursor:pointer;

  opacity:0.8;
}

.cart-remove:hover{
  color:#e11d2e;
  opacity:1;
}

.cart-actions{
 margin-top:16px;
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:10px;
}

.cart-actions button{
 width:100%;
 height:42px;
}

.xpto {
  color:#e74c3c
}