/* ============================================================
   Catálogo — Manoma · Flores de Bach
   (propiedad exclusiva de catalogo.html / catalogo.js)
   ============================================================ */

/* ---------- Hero interior ---------- */
.cat-hero { display: flex; flex-direction: column; }
.cat-hero-img {
  width: 100%; height: 62vh; min-height: 440px; max-height: 660px;
  overflow: hidden; background: var(--crema);
}
.cat-hero-img img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 55%;
}
.cat-hero-band { background: var(--crema); padding-top: clamp(28px, 4vw, 48px); padding-bottom: clamp(32px, 4.5vw, 56px); }
.cat-hero-band .eyebrow { margin-bottom: 14px; }
.cat-hero-lead { margin-top: 16px; max-width: 56ch; }

/* ---------- Grid de productos ---------- */
.cat-grid-section { padding-top: clamp(56px, 7vw, 100px); }
.cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(28px, 3vw, 44px) clamp(24px, 2.6vw, 40px);
}
.cat-card {
  display: flex; flex-direction: column; align-items: flex-start;
  border-top: 1px solid var(--linea);
  padding-top: clamp(28px, 3vw, 36px);
}
.cat-card-art {
  width: 100%; display: flex; justify-content: flex-start;
  margin-bottom: clamp(20px, 2.4vw, 28px);
}
.cat-card-art svg { height: clamp(140px, 15vw, 176px); width: auto; }
.cat-card-foto {
  width: 100%; height: clamp(320px, 27vw, 420px);
  object-fit: cover; object-position: center 45%;
  /* altura acotada: el frasco se ve completo pero el precio queda a la vista */
}
.cat-card-body { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; width: 100%; }
.cat-card-para { font-size: 15px; color: var(--ciruela-suave); line-height: 1.55; max-width: 32ch; }
.cat-card-precio { font-size: 20px; margin-top: 6px; }
.cat-card-mxn { font-size: 12px; font-weight: 600; color: var(--gris-texto); letter-spacing: 0.03em; }
.cat-add { margin-top: 14px; position: relative; }
.cat-add.is-added { background: var(--violeta); }

.cat-legend {
  margin-top: clamp(48px, 5vw, 72px);
  padding-top: 28px; border-top: 1px solid var(--linea);
  font-size: 13.5px; color: var(--gris-texto); max-width: 74ch; line-height: 1.7;
}

/* ---------- Bandas (fórmula personalizada / kit viaje) ---------- */
.cat-band { padding-top: clamp(64px, 7vw, 100px); padding-bottom: clamp(64px, 7vw, 100px); }
.cat-band--lavanda { background: var(--lavanda-wash-claro); } /* wash muy suave sobre lavanda-claro */
.cat-band--ciruela { background: var(--ciruela); color: var(--crema); }
.cat-band--ciruela .lead { color: var(--ciruela-texto-footer); }
.cat-band--ciruela .eyebrow { color: var(--lavanda-claro); }
.cat-band--ciruela .cat-band-precio { color: var(--crema); }

.cat-band-inner {
  display: grid; grid-template-columns: 1.5fr 1fr; align-items: center;
  gap: clamp(28px, 4vw, 64px);
}
.cat-band-text .h2 { margin-top: 14px; margin-bottom: 16px; }
.cat-band-text .lead { max-width: 52ch; }
.cat-band-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.cat-band-precio { font-size: 26px; }
.cat-band--ciruela .btn { background: var(--crema); color: var(--ciruela); }
.cat-band--ciruela .btn:hover { background: var(--lavanda-claro); }

/* ---------- Panel de carrito ---------- */
.cart-panel {
  position: fixed; top: 0; right: 0; height: 100vh; width: min(420px, 92vw);
  background: var(--crema); z-index: 200; box-shadow: -18px 0 48px rgba(46,40,51,0.16);
  display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform var(--transition);
}
.cart-panel.is-open { transform: translateX(0); }
.cart-panel-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 28px clamp(20px, 3vw, 32px) 20px; border-bottom: 1px solid var(--linea);
}
.cart-panel-close {
  background: none; border: 0; width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center; color: var(--ciruela);
}
.cart-panel-close:hover { color: var(--violeta); }
.cart-panel-items {
  flex: 1; overflow-y: auto; padding: 8px clamp(20px, 3vw, 32px);
  display: flex; flex-direction: column;
}
.cart-item {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 18px 0; border-bottom: 1px solid var(--linea);
}
.cart-item-name { font-weight: 600; font-size: 14.5px; }
.cart-item-qty { font-size: 13px; color: var(--gris-texto); margin-top: 2px; }
.cart-item-precio { font-size: 14.5px; white-space: nowrap; }
.cart-empty { padding: 32px 0; font-size: 14.5px; color: var(--gris-texto); }
.cart-panel-foot {
  padding: 22px clamp(20px, 3vw, 32px) clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--linea);
}
.cart-panel-total {
  display: flex; align-items: center; justify-content: space-between;
  font-weight: 700; font-size: 17px; margin-bottom: 14px;
}
.cart-panel-note { font-size: 12.5px; color: var(--gris-texto); line-height: 1.6; margin-bottom: 16px; }
.cart-panel-wa { width: 100%; }

.cart-scrim {
  position: fixed; inset: 0; background: rgba(46,40,51,0.28); z-index: 190;
  opacity: 0; pointer-events: none; transition: opacity var(--transition);
}
.cart-scrim.is-open { opacity: 1; pointer-events: auto; }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .cat-band-inner { grid-template-columns: 1fr; }
  .cat-band-cta { align-items: flex-start; }
}
/* 3 por fila en desktop; en móvil 2 (nunca 1, para no gigantizar las fotos) */
@media (max-width: 720px) {
  .cat-grid { grid-template-columns: 1fr 1fr; gap: 22px 14px; }
  .cat-card-foto { height: clamp(200px, 42vw, 280px); }
  .cat-card { padding-top: 20px; }
  .cat-add { font-size: 13px; padding: 12px 16px; }
}
@media (max-width: 560px) {
  .cat-hero-img { height: 34vh; min-height: 200px; }
  .cart-panel { width: 100vw; }
}
