/* =========================================================
   KESAGOX - Recently Viewed Carousel (Cart)
   - Horizontal real (no wrap)
   - 2 por vista (desktop) / 1 por vista (móvil)
   - Scroll-snap + botones modernos
========================================================= */

.kg-rv-carousel{
  --gap: 12px;
  --radius: 16px;
  --border: rgba(148,163,184,.45);
  --shadow: 0 12px 28px rgba(15,23,42,.10);
  --shadowHover: 0 16px 36px rgba(15,23,42,.14);
  --bg: #ffffff;
  --ink: #0f172a;
  --muted: #64748b;
  --blue: var(--kg-blue, #1E5AF9);

  /* defaults si no llegan vars del PHP */
  --kg-rv-per-desktop: 2;
  --kg-rv-per-mobile: 1;

  position: relative;
  width: 100%;
}

.kg-rv-carousel *{ box-sizing: border-box; }

/* Header */
.kg-rv-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 10px;
}

.kg-rv-title{
  margin: 0;
  font-size: 14px;
  font-weight: 900;
  color: var(--ink);
  letter-spacing: -.2px;
}

.kg-rv-controls{
  display: inline-flex;
  gap: 8px;
}

/* Botones modernos */
.kg-rv-btn{
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid rgba(148,163,184,.6);
  background: rgba(255,255,255,.95);
  color: #0f172a;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 24px rgba(15,23,42,.14);
  transition: transform .12s ease, box-shadow .12s ease;
}

.kg-rv-btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(15,23,42,.18);
}

.kg-rv-btn:disabled{
  opacity: .45;
  cursor: default;
  box-shadow: none;
}

/* Viewport/Track */
.kg-rv-viewport{
  width: 100%;
}

.kg-rv-track{
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: var(--gap) !important;

  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory;

  -webkit-overflow-scrolling: touch;
  padding: 2px 2px 10px !important;
}

/* scrollbar suave */
.kg-rv-track::-webkit-scrollbar{ height: 8px; }
.kg-rv-track::-webkit-scrollbar-thumb{
  background: rgba(148,163,184,.55);
  border-radius: 999px;
}

/* Cards */
.kg-rv-card{
  scroll-snap-align: start;
  flex: 0 0 calc((100% - ((var(--kg-rv-per-desktop) - 1) * var(--gap))) / var(--kg-rv-per-desktop)) !important;

  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow: hidden;
  display: block;
  color: inherit;
  text-decoration: none;

  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

.kg-rv-card:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadowHover);
  border-color: rgba(30,90,249,.55);
}

.kg-rv-media{
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: rgba(241,245,249,.65);
}

.kg-rv-img,
.kg-rv-media img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.kg-rv-meta{
  padding: 10px 12px 12px;
}

.kg-rv-name{
  font-weight: 900;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.15;
  margin-bottom: 6px;
}

.kg-rv-price{
  font-weight: 900;
  color: #0f766e;
  font-size: 13px;
}

/* Mobile: 1 por vista (o lo que defina --kg-rv-per-mobile) */
@media (max-width: 782px){
  .kg-rv-card{
    flex-basis: calc((100% - ((var(--kg-rv-per-mobile) - 1) * var(--gap))) / var(--kg-rv-per-mobile)) !important;
  }
}

/* ===== FIX: Título arriba y botones abajo (no en la misma fila) ===== */
.kg-recently-viewed .kg-rv-head{
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px !important;
}

.kg-recently-viewed .kg-rv-title{
  width: 100% !important;
  margin: 0 !important;
}

.kg-recently-viewed .kg-rv-controls{
  width: 100% !important;
  display: flex !important;
  justify-content: flex-end !important; /* botones alineados a la derecha */
  gap: 10px !important;
}
