/* ==========================
   OFFCANVAS: SIEMPRE ARRIBA
========================== */
.offcanvas { z-index: 5000 !important; }
.offcanvas-backdrop { z-index: 4990 !important; }

/* Navbar/sticky por debajo del offcanvas */
.sticky-top,
.position-sticky,
.fixed-top,
.navbar{
  z-index: 1100;
}

/* WhatsApp debajo del offcanvas */
.whatsapp-float{
  z-index: 900 !important;
}

/* ==========================
   FIX FILTROS CATÁLOGO
   (NO debe ganar al carrito)
========================== */
.catalog-filters{
  position: relative;
  z-index: 10;
}

/* Dropdown por sobre el contenido normal */
.catalog-filters .dropdown-menu{
  z-index: 1200;
}

/* Evita stacking context raro por transform (AOS) */
.catalog-filters[data-aos]{
  transform: none !important;
}

/* ==========================
   PRODUCT IMAGE
========================== */
.product-image-box{
  width: 100%;
  aspect-ratio: 4 / 3;
  background-color: #f8f9fa;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.product-image{
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* ==========================
   WHATSAPP FLOAT BUTTON
========================== */
.whatsapp-float{
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 56px;
  height: 56px;
  background: #25D366;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  box-shadow: 0 6px 16px rgba(0,0,0,.25);
}
.whatsapp-float:hover{
  background:#1ebe5d;
  color:#fff;
}

/* ==========================
   MARCAS – SLIDER CSS
========================== */
.brand-marquee{
  position: relative;
  overflow: hidden;
  padding: 6px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}

.brand-track{
  display: flex;
  gap: 14px;
  width: max-content;
  animation: brand-scroll 22s linear infinite;
}

.brand-marquee:hover .brand-track{
  animation-play-state: paused;
}

@keyframes brand-scroll{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.brand-chip{
  background:#fff;
  border:1px solid rgba(29,61,110,.15);
  border-radius:14px;
  padding:14px 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:120px;
  min-height:70px;
  flex: 0 0 auto;
  transition: all .15s ease;
}

.brand-chip img{
  max-height:40px;
  max-width:110px;
  object-fit:contain;
}

.brand-chip:hover{
  transform: translateY(-2px);
  box-shadow: 0 .5rem 1rem rgba(29,61,110,.15);
  border-color: var(--aloe-gold);
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce){
  .brand-track{ animation: none; }
}

#como-funciona .card {
  transition: transform .2s ease, box-shadow .2s ease;
}

#como-funciona .card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0,0,0,.08);
}

/* ===== HERO: evitar que el cubo se monte encima del texto ===== */
#hero { position: relative; overflow: hidden; }

#hero .hero-copy{
  position: relative;
  z-index: 2; /* el texto siempre arriba */
}

#hero .hero-cube{
  position: relative;
  z-index: 1;
}

/* ===== CUBO: que NO se salga del flujo ===== */
.cube-scene{
  position: relative;            /* NO absolute */
  width: min(340px, 85vw);
  height: min(340px, 85vw);
  margin: 0 auto;                /* centrado */
  display: grid;
  place-items: center;
}

/* Si tu .cube tenía position:absolute, esto lo corrige */
.cube{
  position: relative;            /* clave */
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}

/* Mobile: dejar aire entre cubo y texto */
@media (max-width: 991.98px){
  #hero .hero-cube{ margin-bottom: 1.25rem; }
  #hero .hero-copy{ margin-top: 0.25rem; }
}
