/* =========================================================
   MONTOYA LINE — Carrito (drawer + badge + stepper)
   Reusa tokens de styles.css
   ========================================================= */

/* badge en el ícono de carrito */
.has-cart-badge { position: relative; }
.cart-badge {
  position: absolute; top: 4px; right: 4px;
  min-width: 17px; height: 17px; padding: 0 4px;
  display: grid; place-items: center;
  background: var(--terra); color: var(--paper);
  font-family: var(--sans); font-size: .62rem; font-weight: 500; line-height: 1;
  border-radius: 9px; pointer-events: none;
}

/* contenedor */
.cart { position: fixed; inset: 0; z-index: 150; visibility: hidden; }
.cart.is-open { visibility: visible; }
.cart__overlay {
  position: absolute; inset: 0; background: rgba(14, 26, 22, .45);
  opacity: 0; transition: opacity .35s var(--ease);
}
.cart.is-open .cart__overlay { opacity: 1; }

.cart__panel {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: min(420px, 92vw); background: var(--paper);
  display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform .4s var(--ease);
  box-shadow: -10px 0 50px rgba(0, 0, 0, .16);
}
.cart.is-open .cart__panel { transform: none; }

.cart__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.3rem 1.4rem; border-bottom: 1px solid var(--line);
}
.cart__title { font-family: var(--serif); font-weight: 450; font-size: 1.4rem; letter-spacing: -.01em; }
.cart__close { width: 40px; height: 40px; border-radius: 50%; font-size: 1.6rem; line-height: 1; color: var(--ink-soft); display: grid; place-items: center; transition: background .25s var(--ease); }
.cart__close:hover { background: rgba(30, 26, 22, .07); }

.cart__body { flex: 1; overflow-y: auto; padding: .5rem 1.4rem; }

/* línea de producto */
.cart-line { display: grid; grid-template-columns: 72px 1fr auto; gap: 1rem; align-items: start; padding: 1.1rem 0; border-bottom: 1px solid var(--line); }
.cart-line__media { width: 72px; height: 72px; background: var(--paper-2); border: 1px solid var(--line); display: grid; place-items: center; overflow: hidden; }
.cart-line__media img { width: 80%; height: 80%; object-fit: contain; }
.cart-line__info { min-width: 0; }
.cart-line__name { font-family: var(--serif); font-weight: 450; font-size: 1.02rem; line-height: 1.2; color: var(--ink); }
.cart-line__color { font-size: .8rem; color: var(--ink-soft); margin-top: .15rem; letter-spacing: .02em; }
.cart-line__row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-top: .7rem; }
.cart-line__price { font-size: .92rem; color: var(--sand-deep); white-space: nowrap; }
.cart-line__price em { font-style: normal; font-size: .72em; color: var(--ink-soft); letter-spacing: .06em; }
.cart-line__rm { align-self: start; width: 28px; height: 28px; font-size: 1.2rem; line-height: 1; color: var(--ink-soft); border-radius: 50%; display: grid; place-items: center; transition: color .2s var(--ease), background .2s var(--ease); }
.cart-line__rm:hover { color: var(--terra); background: rgba(30, 26, 22, .06); }

/* stepper de cantidad */
.qstep { display: inline-flex; align-items: center; border: 1px solid var(--line); }
.qstep button { width: 28px; height: 28px; display: grid; place-items: center; font-size: 1rem; line-height: 1; color: var(--ink); transition: background .2s var(--ease); }
.qstep button:hover { background: rgba(30, 26, 22, .07); }
.qstep__n { min-width: 30px; text-align: center; font-size: .9rem; }

/* footer */
.cart__foot { padding: 1.2rem 1.4rem 1.5rem; border-top: 1px solid var(--line); }
.cart__sub { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 1rem; }
.cart__sub span:first-child { font-size: .74rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-soft); }
.cart__sub-val { font-family: var(--serif); font-size: 1.4rem; color: var(--ink); }
.cart__sub-val em { font-style: normal; font-size: .6em; color: var(--ink-soft); letter-spacing: .06em; }
.cart__checkout { width: 100%; justify-content: center; }
.cart__note { font-size: .78rem; color: var(--ink-soft); text-align: center; margin-top: .9rem; line-height: 1.5; }

/* vacío */
.cart__empty { text-align: center; padding: 3.5rem 1rem; }
.cart__empty-title { font-family: var(--serif); font-weight: 450; font-size: 1.3rem; margin-bottom: .5rem; }
.cart__empty-text { color: var(--ink-soft); font-size: .92rem; margin-bottom: 1.6rem; }
