/* ================================
   IMPULDIVAS · ONLINE CATALOG PAGE
================================ */

*{
  box-sizing:border-box;
}

body{
  margin:0;
  font-family:Arial, sans-serif;
  background:#ff8aa0;
}

.imp-catalog-page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:50px 18px;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.65), transparent 36%),
    linear-gradient(135deg,#ffd5dc,#ff7f91);
}

/* MAIN CONTAINER */
.imp-catalog-shell{
  width:min(1500px, 96%);
  min-height:860px;
  display:flex;
  flex-direction:column;
  gap:24px;
  padding:34px;
  border-radius:42px;
  background:rgba(255,255,255,.18);
  box-shadow:
    0 30px 80px rgba(67,20,34,.26),
    inset 0 1px 0 rgba(255,255,255,.35);
  backdrop-filter:blur(20px);
}

/* LOGO */
.catalog-logo-area{
  text-align:center;
  padding:0;
  margin-bottom:-4px;
}

.catalog-main-logo{
  width:min(560px, 88vw);
  height:auto;
  display:block;
  margin:0 auto -10px;
  object-fit:contain;

  filter:
    drop-shadow(0 10px 24px rgba(122,45,65,.16));
}

.catalog-logo-area p{
  margin:-50px 0 0;
  color:#7d3948;
  font-size:13px;
  letter-spacing:5px;
  text-transform:uppercase;
  font-weight:700;
  position:relative;
  z-index:3;
   margin-bottom:8px;
}
@media(max-width:768px){

  .catalog-main-logo{
    width:min(360px, 92vw);
    margin:0 auto -6px;
  }

   .catalog-logo-area p{
    margin:-26px 0 0;
    font-size:10px;
    letter-spacing:3px;
  }
}

/* TOP INTRO */
.catalog-intro-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}

/* FEATURE CARD */
.catalog-feature{
  display:block;
}

.feature-card{
  min-height:310px;
  position:relative;
  padding:32px 28px;
  border-radius:28px;
  overflow:hidden;
  color:#fff;
  box-shadow:0 14px 34px rgba(67,20,34,.25);
  cursor:pointer;
  animation:none !important;
  background:#333;
}


.feature-card span{
  font-size:12px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  font-weight:700;
}

.feature-card h3{
  margin:100px 0 8px;
  font-size:38px;
  line-height:1;
}

.feature-card p{
  max-width:470px;
  margin:0;
  font-size:15px;
  line-height:1.45;
  font-weight:600;
}

.feature-card button{
  position:absolute;
  right:24px;
  bottom:24px;
  width:54px;
  height:54px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.85);
  background:rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
}

.feature-card button i{
  transform:rotate(45deg);
}

/* INFO CARD */
.catalog-info-card{
  height:285px;
  position:relative;
  overflow:hidden;
  border-radius:28px;
  background:#c77e87;
  box-shadow:0 14px 34px rgba(67,20,34,.25);
}

.page{
  position:absolute;
  inset:0;
  padding:36px 38px;
  opacity:0;
  transform:translateX(100%);
  transition:.5s ease;
  color:#fff;
}

.page.active{
  opacity:1;
  transform:translateX(0);
}

.page .eyebrow{
  margin:0 0 12px;
  font-size:12px;
  font-weight:700;
}

.page h3{
  max-width:560px;
  margin:0 0 14px;
  font-size:34px;
  line-height:1.14;
  color:#343034;
}

.page p{
  max-width:560px;
  margin:0;
  font-size:15px;
  line-height:1.45;
  font-weight:600;
}

.page .line{
  width:92%;
  height:1px;
  background:rgba(255,255,255,.55);
  margin-top:22px;
}

.bottom-text{
  position:absolute;
  bottom:28px;
  left:38px;
  font-size:12px;
  font-weight:700;
}

.page-dots{
  position:absolute;
  top:26px;
  right:32px;
  display:flex;
  gap:7px;
  z-index:3;
}

.dot{
  width:9px;
  height:9px;
  border-radius:50%;
  background:rgba(255,255,255,.55);
  cursor:pointer;
}

.dot.active{
  background:#b5505a;
}

.next-button{
  position:absolute;
  right:32px;
  bottom:28px;
  z-index:4;
  border:0;
  background:transparent;
  color:#fff;
  cursor:pointer;
  font-weight:700;
}

/* SEARCH */
.catalog-search-row{
  width:100%;
}

.catalog-topbar{
  width:100%;
  padding:10px;
  border-radius:999px;
  background:rgba(133,76,78,.46);
  display:flex;
  justify-content:space-between;
  gap:14px;
  box-shadow:0 12px 28px rgba(67,20,34,.2);
}

.search-box{
  flex:1;
  position:relative;
  display:flex;
  align-items:center;
}

.search-box i{
  position:absolute;
  left:22px;
  top:50%;
  transform:translateY(-50%);
  color:#b5505a;
  font-size:18px;
  z-index:20;
  pointer-events:none;
}

.search-box input{
  width:100%;
  height:50px;
  border:0;
  outline:0;
  border-radius:999px;
  background:#333;
  color:#fff;
  padding:0 18px 0 58px !important;
  font-size:14px;
  position:relative;
  z-index:1;
}

.search-box input::placeholder{
  color:rgba(255,255,255,.45);
}

.create-post{
  border:0;
  border-radius:999px;
  background:#333;
  color:#fff;
  padding:6px 24px 6px 6px;
  display:flex;
  align-items:center;
  gap:18px;
  cursor:pointer;
  font-weight:700;
}

.create-post span{
  width:38px;
  height:38px;
  border-radius:50%;
  background:#b5505a;
  display:grid;
  place-items:center;
}

/* MAIN CATALOG */
.catalog-main-row{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:24px;
  align-items:start;
}

/* FILTERS */
.catalog-filter-sidebar{
  min-height:620px;
  padding:26px 24px;
  border-radius:30px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,.12)),
    rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.25);
  box-shadow:
    0 18px 38px rgba(67,20,34,.18),
    inset 0 1px 0 rgba(255,255,255,.38);
}

.filter-title span{
  display:block;
  color:#b5505a;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:3px;
  font-weight:900;
  margin-bottom:6px;
}

.filter-title h3{
  margin:0 0 18px;
  color:#343034;
  font-size:32px;
  line-height:1;
}

.filter-title::after{
  content:"";
  display:block;

  width:100%;
  height:2px;

  margin:22px 0 26px;

  border-radius:999px;

  background:#d98d98;

  box-shadow:
    0 2px 10px rgba(181,80,90,.22);
}

.filter-title-row{
  display:flex;
  align-items:center;
  gap:10px;
}

.filter-icon{
  width:48px;
  height:48px;
  border-radius:50%;
  background:#b5505a;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:18px;
  box-shadow:0 10px 20px rgba(181,80,90,.28);
}

.filter-title h3{
  margin:0;
}
.catalog-tabs{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.catalog-tabs li{
  width:100%;
  padding:15px 18px;
  border-radius:999px;

  background:rgba(181,80,90,.30);

  color:#fff;
  font-size:14px;
  font-weight:800;
  letter-spacing:.3px;

  cursor:pointer;
  transition:.3s ease;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    0 6px 14px rgba(0,0,0,.05);

  text-shadow:
    0 1px 2px rgba(0,0,0,.12);
}

.catalog-tabs li:hover{
  background:rgba(181,80,90,.36);
  color:#fff;
  transform:translateX(5px);
}

.catalog-tabs li.active{
  background:#333;
  color:#fff;
  transform:translateX(5px);
  box-shadow:0 10px 22px rgba(0,0,0,.18);
}

/* PRODUCTS */
.products-panel{
  min-height:620px;
  padding:24px;
  border-radius:28px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,.10)),
    rgba(255,255,255,.15);
  box-shadow:0 14px 34px rgba(67,20,34,.2);
  overflow:hidden;
}

.products-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:20px;
}

.products-head span{
  display:block;
  font-size:12px;
  color:#b5505a;
  text-transform:uppercase;
  letter-spacing:2px;
  font-weight:800;
  margin-left:55px;
  margin-bottom:-4px;
}

.products-head h2{
  margin:4px 0 0;
  color:#343034;
  font-size:36px;
  line-height:1;
}
.products-title-row{
  display:flex;
  align-items:center;
  gap:10px;
}

.products-icon{
  width:56px;
  height:56px;
  border-radius:50%;
  background:#b5505a;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:22px;
  box-shadow:0 10px 20px rgba(181,80,90,.28);
}
.products-head p{
  margin:0;
  padding:9px 16px;
  border-radius:999px;
  background:rgba(181,80,90,.16);
  color:#b5505a;
  font-size:13px;
  font-weight:800;
  letter-spacing:.3px;
}

.products-grid{
  height:520px;
  overflow-y:auto;
  padding-right:8px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  align-items:start;
}

/* SOLO cuando se muestran las categorías */
.products-grid.categories-mode{
  grid-template-columns:repeat(5,minmax(150px,1fr));
  gap:22px;
}
.products-grid::-webkit-scrollbar{
  width:6px;
}

.products-grid::-webkit-scrollbar-thumb{
  background:rgba(51,51,51,.35);
  border-radius:999px;
}

.product-card{
  background:rgba(255,255,255,.28);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 10px 24px rgba(67,20,34,.22);
  transition:.3s ease;
}

.product-card:hover{
  transform:translateY(-5px);
}



.product-img{
  position:relative !important;
  height:380px !important;
  flex-shrink:0;
  overflow:hidden;
  background:#f7c7d0;
}

.product-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
  transition:transform .55s ease, filter .55s ease;
}

.product-card:hover .product-img img{
  transform:scale(1.06);
  filter:saturate(1.06) contrast(1.03);
}

.product-img span{
  position:absolute;
  top:12px;
  left:12px;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(51,51,51,.75);
  color:#fff;
  font-size:11px;
  text-transform:capitalize;
  font-weight:700;
}

.product-body{
  padding:10px 18px 8px;
}

.product-body h3{
  font-size:17px;
  margin:0 0 8px;
  line-height:1.05;
}

.product-body p{
  margin:0;
  font-size:13px;
  line-height:1.35;
  color:#fff;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.product-bottom{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-top:-2px;
}

.product-bottom strong{
  color:#b5505a;
  font-size:16px;
  font-weight:800;

  position:relative;
  top:2px;
}


/* EMPTY */
.empty-state{
  display:none;
  height:320px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  text-align:center;
  color:#fff;
}

.empty-state.show{
  display:flex;
}

.empty-state i{
  font-size:34px;
  margin-bottom:12px;
}

.empty-state h3{
  margin:0 0 5px;
  color:#333;
}

.empty-state p{
  margin:0;
}

/* MODAL */
.product-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}

.product-modal.active{
  display:flex;
}

.modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.58);
  backdrop-filter:blur(8px);
}

.modal-card{
  position:relative;
  z-index:2;
  width:min(800px,100%);
  display:grid;
  grid-template-columns:1fr 1fr;
  overflow:hidden;
  border-radius:28px;
  background:#fff0f3;
  box-shadow:0 30px 80px rgba(0,0,0,.45);
  animation:modalIn .35s ease;
}

@keyframes modalIn{
  from{
    opacity:0;
    transform:translateY(20px) scale(.96);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

.modal-close{
  position:fixed !important;
  top:18px !important;
  right:18px !important;
  z-index:10050 !important;

  width:42px !important;
  height:42px !important;

  display:none;
  align-items:center;
  justify-content:center;

  border:0;
  border-radius:50%;

  background:#333 !important;
  color:#fff !important;

  cursor:pointer;

  box-shadow:0 10px 24px rgba(0,0,0,.28) !important;
}

.product-modal.active .modal-close{
  display:flex !important;
}

.modal-image{
  min-height:440px;
}

.modal-image{
  position:relative;

  height:520px;
  min-height:520px;
  max-height:520px;

  overflow:hidden;

  background:#f6d5dc;

  display:flex;
  align-items:center;
  justify-content:center;
}

.modal-image img{
  width:100%;
  height:100%;

  object-fit:cover;
  object-position:center top;

  display:block;
}
.modal-info{
  padding:42px 32px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.modal-info span{
  width:max-content;
  padding:7px 13px;
  border-radius:999px;
  background:#c77e87;
  color:#fff;
  font-size:12px;
  text-transform:capitalize;
}

.modal-info h2{
  margin:16px 0 10px;
  font-size:36px;
  color:#333;
  line-height:1;
}

.modal-info p{
  margin:0;
  color:#6a4a50;
  font-size:15px;
  line-height:1.5;
}

.modal-details{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:24px 0;
}

.modal-details div{
  padding:14px;
  border-radius:15px;
  background:rgba(255,255,255,.65);
}

.modal-details small{
  display:block;
  color:#9a6870;
  font-size:11px;
  margin-bottom:4px;
}

.modal-details strong{
  color:#333;
  font-size:17px;
}

.modal-whatsapp{
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  padding:14px;
  border-radius:999px;
  background:#25d366;
  color:#fff;
  font-weight:700;
}

body.modal-open{
  overflow:hidden;
}

/* TABLET */
@media(max-width:1024px){
  .catalog-intro-row,
  .catalog-main-row{
    grid-template-columns:1fr;
  }

  .catalog-filter-sidebar{
    min-height:auto;
  }

  .catalog-tabs{
    flex-direction:row;
    overflow-x:auto;
    padding-bottom:4px;
  }

  .catalog-tabs li{
    width:auto;
    white-space:nowrap;
  }

  .products-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

/* MOBILE */
@media(max-width:768px){
  .imp-catalog-page{
    padding:22px 12px;
  }

  .imp-catalog-shell{
    width:100%;
    min-height:auto;
    padding:18px;
    border-radius:28px;
    gap:18px;
  }

  .catalog-logo-area h1{
    font-size:56px;
  }

  .catalog-logo-area p{
    font-size:11px;
    letter-spacing:3px;
  }

  .feature-card{
    min-height:210px;
    padding:22px 18px;
    border-radius:20px;
  }

  .feature-card h3{
    margin-top:70px;
    font-size:25px;
  }

  .feature-card p{
    font-size:13px;
  }

  .catalog-info-card{
    height:260px;
    border-radius:20px;
  }

  .page{
    padding:24px 22px;
  }

  .page h3{
    font-size:24px;
  }

  .page p{
    font-size:14px;
  }

  .catalog-topbar{
    flex-direction:column;
    border-radius:24px;
  }

  .create-post{
    justify-content:center;
    width:100%;
  }

  .catalog-filter-sidebar{
    padding:18px;
    border-radius:22px;
  }

  .filter-title h3{
    font-size:26px;
  }

  .products-panel{
    min-height:auto;
    padding:18px;
    border-radius:22px;
  }

  .products-head{
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
  }

  .products-head h2{
    font-size:30px;
  }
.products-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:14px !important;

    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    padding-right:0 !important;
  }

  .product-card{
    width:100% !important;
    min-width:0 !important;
    border-radius:18px !important;
    overflow:hidden !important;
  }

  .product-img{
    height:220px !important;
  }

  .product-img img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center top !important;
  }

  .product-body{
    padding:12px !important;
  }

  .product-body h3{
    font-size:15px !important;
    line-height:1.15 !important;
    margin-bottom:6px !important;
  }

  .product-bottom strong{
    font-size:15px !important;
  }

  .product-bottom button{
    width:42px !important;
    height:42px !important;
    right:-6px !important;
    bottom:-8px !important;
  }
}


.search-box i{
  position:absolute;
  left:20px;
  top:50%;
  transform:translateY(-50%);
  color:#b5505a;
  font-size:17px;
  z-index:5;
  display:block !important;
}

.search-box input{
  padding-left:56px !important;
}

.product-card{
  min-height:auto;
}



.product-body p{
  display:none;
}

.product-body{
  padding:14px 16px 16px;
}

.product-bottom button{
  width:58px !important;
  height:58px !important;

  border:none;
  background:transparent;
  border-radius:0;

  padding:0;

  position:relative;

  right:-16px;
  bottom:-20px;

  cursor:pointer;

  transition:.35s ease;

  background:
    url("../images/bow.png") center center / contain no-repeat;
}
.product-bottom button::before{
  display:none;
}

.product-bottom button:hover{
  transform:scale(1.08) rotate(-6deg);

  filter:
    drop-shadow(0 10px 18px rgba(181,80,90,.35));
}

/* CATEGORY CARDS */
/* =========================================
   CATEGORY OVALS · GLASS BUTTONS
========================================= */

.category-card{
  position:relative;
  overflow:visible;
  background:transparent;
  border-radius:0;
  box-shadow:none;
  height:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  padding-bottom:10px;
  cursor:pointer;
  transition:.35s ease;
}

.category-card::before,
.category-card::after{
  display:none;
}

.category-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .55s ease;
}

.category-card:hover{
  transform:translateY(-8px);
}

.category-card:hover img{
  transform:scale(1.08);
}

.category-card .category-image{
   width:100%;
  max-width:190px;
  height:270px;

  border-radius:180px;

  overflow:hidden;
  position:relative;

  border:7px solid rgba(255,255,255,.38);

  box-shadow:
    0 18px 34px rgba(67,20,34,.20),
    inset 0 1px 0 rgba(255,255,255,.35);
}

.category-card span{
  margin-top:14px;
  margin-bottom:10px;

  font-size:18px;
}
.category-card .category-btn{
   padding:9px 18px;
  font-size:13px;
}

.category-card .category-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:11px 22px;

  border-radius:999px;

  background:rgba(255,255,255,.28);

  border:1px solid rgba(255,255,255,.45);

  color:#b5505a;

  font-size:14px;
  font-weight:900;
  letter-spacing:.4px;

  backdrop-filter:blur(12px);

  box-shadow:
    0 12px 24px rgba(67,20,34,.12),
    inset 0 1px 0 rgba(255,255,255,.45);

  transition:.35s ease;
}

.category-card:hover .category-btn{
  background:#b5505a;
  color:#fff;
  transform:translateY(-3px);
}

@media(max-width:768px){

  .category-card .category-image{
    height:300px;
  }

  .category-card span{
    font-size:24px;
  }

}

/* PRODUCT CARDS · FIX */
.products-grid{
  align-items:start;
}

.product-card{
  height:auto;
  min-height:0;
  border-radius:24px;
  display:flex;
  flex-direction:column;
}



.product-body{
  padding:16px 18px 18px;
}

.product-body h3{
  font-size:19px;
  margin:0 0 14px;
}

.product-bottom{
  margin-top:0;
}

.product-bottom strong{
  font-size:18px;
}





.modal-thumbs{
  position:absolute;
  left:18px;
  bottom:18px;
  display:flex;
  gap:10px;
  z-index:5;
}

.modal-thumbs button{
  width:58px;
  height:58px;
  border:2px solid transparent;
  border-radius:14px;
  overflow:hidden;
  padding:0;
  cursor:pointer;
  background:#fff;
}

.modal-thumbs button.active{
  border-color:#b5505a;
}

.modal-thumbs img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.modal-options{
  display:grid;
  gap:16px;
  margin-bottom:22px;
}

.modal-options small{
  display:block;
  margin-bottom:8px;
  color:#9a6870;
  font-size:12px;
}

.option-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.option-list button{
  border:0;
  border-radius:999px;
  padding:9px 14px;
  background:#fff;
  color:#333;
  font-weight:700;
  cursor:pointer;
}

.option-list button.active{
  background:#b5505a;
  color:#fff;
}

.color-options button{
  min-width:72px;
}

.stock-badge{
  display:flex;
  align-items:center;
  gap:8px;
  color:#2f9e62;
  font-size:17px;
  font-weight:700;
}

.stock-badge i{
  font-size:12px;
}

@media(max-width:768px){
  .product-img{
    position:relative !important;
    height:280px !important;
    overflow:hidden;
  }

  .product-img img{
    object-position:center top;
  }
}

.product-card{
  cursor:pointer;
}

/* BAJAR MÁS EL TEXTO + TIPOGRAFÍA MÁS ELEGANTE */
.feature-card{
  justify-content:flex-end !important;
  padding:0 42px 34px !important;
}

.feature-card h3{
  font-family:'Helvetica Neue', Arial, sans-serif !important;

  font-size:2.7rem !important;

  font-weight:700 !important;

  line-height:1.04 !important;

  letter-spacing:-1.2px !important;

  margin-bottom:14px !important;

  transform:translateY(82px) !important;
}

.feature-card p{
  font-family:'Helvetica Neue', Arial, sans-serif !important;

  font-size:.96rem !important;

  line-height:1.7 !important;

  font-weight:500 !important;

  max-width:520px !important;

  letter-spacing:.2px !important;

  transform:translateY(82px) !important;
}

/* BAJAR SOLO EL H3 SIN DEFORMAR */
.feature-card h3{
  position:relative !important;
  top:14px !important;
}
.page{
  transition:
    opacity .9s ease,
    transform .9s ease !important;
}

/* ================================
   MOBILE FIX FINAL
================================ */
@media(max-width:768px){

  html,
  body{
    width:100%;
    max-width:100%;
    overflow-x:hidden !important;
  }

  .imp-catalog-page{
    width:100%;
    max-width:100vw;
    padding:18px 10px !important;
    overflow-x:hidden !important;
  }

  .imp-catalog-shell{
    width:100% !important;
    max-width:100% !important;
    padding:14px !important;
    overflow:hidden !important;
  }

  .catalog-main-logo{
    width:min(320px, 84vw) !important;
    margin:0 auto -4px !important;
    display:block !important;
  }

  .catalog-logo-area{
    text-align:center !important;
  }

  .catalog-logo-area p{
    margin:-24px 0 4px !important;
    font-size:9px !important;
  }

  .catalog-filter-sidebar{
    position:fixed !important;
    left:16px;
    right:16px;
    bottom:92px;
    z-index:9998;

    min-height:auto !important;
    max-height:70vh;
    overflow-y:auto;

    transform:translateY(120%);
    opacity:0;
    pointer-events:none;

    transition:.35s ease;
  }

  .catalog-filter-sidebar.mobile-open{
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }



  .mobile-filter-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.28);
    z-index:9997;
    opacity:0;
    visibility:hidden;
    transition:.3s ease;
  }

  .mobile-filter-overlay.active{
    opacity:1;
    visibility:visible;
  }

  .products-grid.categories-mode{
    grid-template-columns:repeat(2, 1fr) !important;
    gap:14px !important;
  }

  .category-card .category-image{
    max-width:130px !important;
    height:180px !important;
    border-width:5px !important;
  }

  .category-card span{
    font-size:16px !important;
    margin-top:10px !important;
  }

  .category-card .category-btn{
    padding:8px 14px !important;
    font-size:12px !important;
  }

  .products-grid{
    grid-template-columns:1fr !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    padding-right:0 !important;
  }

  .product-card{
    width:100% !important;
    border-radius:22px !important;
    overflow:hidden !important;
  }

  .product-img{
    height:360px !important;
  }

  .product-img img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center top !important;
  }

  .product-body{
    padding:14px 16px 18px !important;
  }

  .product-body h3{
    font-size:18px !important;
    line-height:1.15 !important;
  }

  .product-bottom button{
    width:48px !important;
    height:48px !important;
    right:-8px !important;
    bottom:-12px !important;
  }
}

/* ================================
   MOBILE FILTER · FINAL CLEAN
================================ */

.mobile-filter-btn,
.mobile-filter-overlay{
  display:none;
}

@media(max-width:768px){

  .mobile-filter-btn{
  display:none !important;
}

.mobile-filter-btn.show-filter-btn{
  display:flex !important;
}

  /* OVERLAY */
  .mobile-filter-overlay{
    display:block !important;

    position:fixed !important;
    inset:0 !important;

    z-index:10000 !important;

    background:rgba(40,12,23,.72) !important;

    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;

    transition:.3s ease !important;
  }

  .mobile-filter-overlay.active{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  /* FLOAT BUTTON */
 
/* FLOAT BUTTON */
/* FLOAT BUTTON */
/* FLOAT BUTTON · INTRO ANIMATION */
.mobile-filter-btn{
  display:none !important;

  align-items:center !important;
  justify-content:center !important;

  position:fixed !important;
  right:18px !important;
  bottom:18px !important;
  z-index:10005 !important;

  width:50px !important;
  height:50px !important;
  padding:0 !important;

  border:none !important;
  border-radius:50% !important;

  background:#333 !important;
  color:#fff !important;

  overflow:hidden !important;

  box-shadow:none !important;

  animation:filterBounce 2.3s ease .4s 1;

  transition:
    width .35s ease,
    padding .35s ease,
    border-radius .35s ease,
    box-shadow .35s ease !important;
}

.mobile-filter-btn.show-filter-btn{
  display:flex !important;
}

.mobile-filter-btn i{
  font-size:20px !important;

  width:20px !important;
  height:20px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  line-height:20px !important;

  margin:0 !important;
  padding:0 !important;

  position:relative !important;
  top:1px !important;

  flex-shrink:0 !important;

  transform:none !important;
}
.mobile-filter-btn span{
  max-width:0;
  opacity:0;

  overflow:hidden;
  white-space:nowrap;

  font-size:14px;
  font-weight:800;

  transition:.35s ease;
}

/* INTRO */
.mobile-filter-btn.filter-intro{
  width:112px !important;

  padding:0 16px !important;

  border-radius:999px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;

  box-shadow:
    0 0 0 8px rgba(255,255,255,.14) !important;
}

.mobile-filter-btn.filter-intro span{
  max-width:70px;
  opacity:1;
}
/* Se activa solo al cargar */
.mobile-filter-btn.filter-intro{
  width:112px !important;
  padding:0 16px !important;
  box-shadow:0 0 0 8px rgba(255,255,255,.18) !important;
}

.mobile-filter-btn.filter-intro span{
  max-width:70px;
  opacity:1;
}

@keyframes filterBounce{
  0%{ transform:scale(.92); }
  35%{ transform:scale(1.08); }
  60%{ transform:scale(.96); }
  100%{ transform:scale(1); }
}
  /* FILTER WINDOW */
.catalog-filter-sidebar{
  position:fixed !important;

  left:28px !important;
  right:28px !important;
  bottom:92px !important;

  z-index:10002 !important;

  width:auto !important;
  max-width:520px !important;

  margin:auto !important;

  min-height:auto !important;

  max-height:none !important;

  overflow:visible !important;

  padding:16px 16px 14px !important;

  border-radius:26px !important;

  background:#ffe4eb !important;

  border:2px solid rgba(255,255,255,.70) !important;

  box-shadow:
    0 28px 70px rgba(58,18,31,.38),
    inset 0 1px 0 rgba(255,255,255,.85) !important;

  transform:translateY(140%) !important;

  opacity:0 !important;
  pointer-events:none !important;

  transition:
    transform .38s ease,
    opacity .28s ease !important;
}

  .catalog-filter-sidebar.mobile-open{
    transform:translateY(0) !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  /* TITLE */
  .filter-title{
    margin-bottom:14px !important;
  }

  .filter-title span{
    font-size:11px !important;
    letter-spacing:4px !important;
    color:#b5505a !important;
    margin-bottom:8px !important;
  }

  .filter-title-row{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
  }

  .filter-icon{
    width:44px !important;
    height:44px !important;

    flex:0 0 44px !important;

    font-size:18px !important;

    border-radius:50% !important;

    background:#b5505a !important;
    color:#fff !important;
  }

  .filter-title h3{
    margin:0 !important;

    font-size:28px !important;
    color:#343034 !important;
  }

  .filter-title::after{
    margin:18px 0 !important;

    height:2px !important;

    background:#b5505a !important;

    box-shadow:none !important;
  }

  /* BUTTONS */
  .catalog-tabs{
    display:flex !important;
    flex-direction:column !important;

    gap:10px !important;

    margin:0 !important;
    padding:0 !important;

    overflow:visible !important;
  }

  .catalog-tabs li{
    width:100% !important;

    min-height:42px !important;

    padding:11px 16px !important;

    display:flex !important;
    align-items:center !important;
    justify-content:center !important;

    border-radius:999px !important;

    background:#f4bac6 !important;
    color:#8f3d4b !important;

    font-size:14px !important;
    font-weight:900 !important;

    text-align:center !important;

    transform:none !important;

    box-shadow:none !important;
  }

  .catalog-tabs li:hover{
    transform:none !important;
  }

  .catalog-tabs li.active{
    background:#333 !important;
    color:#fff !important;

    box-shadow:
      0 12px 24px rgba(0,0,0,.20) !important;
  }
}

/* =========================================
   MOBILE FILTER GUIDE
========================================= */

.filter-guide{
  display:none;
}

@media(max-width:768px){

  .filter-guide{
    position:fixed;
    inset:0;

    z-index:10030;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:22px;

    background:rgba(16,8,12,.62);

    backdrop-filter:blur(10px);

    opacity:0;
    visibility:hidden;
    pointer-events:none;

    transition:.35s ease;
  }

  .filter-guide.active{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  .filter-guide-card{
    width:100%;
    max-width:340px;

    padding:28px 24px;

    border-radius:28px;

    background:#ffe7ed;

    text-align:center;

    box-shadow:
      0 30px 60px rgba(0,0,0,.28);

    animation:guideIn .45s ease;
  }

  .guide-icon{
    width:72px;
    height:72px;

    margin:0 auto 18px;

    border-radius:50%;

    background:#b5505a;

    color:#fff;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:28px;
  }

  .filter-guide-card h3{
    margin:0 0 10px;

    font-size:28px;

    color:#2d2225;
  }

  .filter-guide-card p{
    margin:0 0 22px;

    color:#6b4b53;

    font-size:15px;
    line-height:1.6;
  }

  .filter-guide-card button{
    width:100%;
    height:50px;

    border:none;
    border-radius:999px;

    background:#333;
    color:#fff;

    font-size:14px;
    font-weight:800;

    cursor:pointer;
  }

  @keyframes guideIn{
    from{
      opacity:0;
      transform:translateY(18px) scale(.94);
    }
    to{
      opacity:1;
      transform:translateY(0) scale(1);
    }
  }

}

@media(max-width:768px){

  .feature-card{
    min-height:270px !important;

    padding:0 18px 22px !important;

    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-end !important;
  }

 .feature-card h3{
  font-size:27px !important;

  line-height:1.02 !important;

  letter-spacing:-1px !important;

  margin:0 0 6px !important;

  top:0 !important;
  transform:none !important;

  max-width:100% !important;

  white-space:nowrap !important;
}

  .feature-card p{
    font-size:12px !important;

    line-height:1.35 !important;

    font-weight:700 !important;

    max-width:255px !important;

    margin:0 !important;

    transform:none !important;

    display:block !important;
  }

}

/* =========================================
   MOBILE BACK BUTTON
========================================= */

/* MOBILE BACK BUTTON */
.mobile-back-btn{
  display:none;
}

@media(max-width:768px){

  .mobile-back-btn{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;

    position:fixed !important;
    left:18px !important;
    bottom:18px !important;
    z-index:10005 !important;

    height:42px !important;
    padding:0 12px !important;

    border:none !important;
    border-radius:999px !important;

    background:#333 !important;
    color:#fff !important;

    font-size:12px !important;
    font-weight:800 !important;

    cursor:pointer !important;
    box-shadow:none !important;
  }

  .mobile-back-btn i{
    font-size:12px !important;
  }

}
.mobile-back-btn{
  display:none !important;
  opacity:0;
  pointer-events:none;

  transition:.3s ease;
}

.mobile-back-btn.show{
  display:flex !important;
  opacity:1;
  pointer-events:auto;
}

/* =========================================
   FIX ZOOM INPUT MOBILE
========================================= */
@media(max-width:768px){

  .search-box input{
    font-size:16px !important;
    transform:none !important;
    zoom:1 !important;
  }

}

/* =========================================
   MOBILE · CATEGORY OPTION 4 COMPACT
========================================= */
@media(max-width:768px){

  /* GRID MÁS COMPACTO */
  .products-grid.categories-mode{
    grid-template-columns:repeat(2,1fr) !important;
    gap:12px !important;

    align-items:start !important;
  }

  /* CARD */
  .category-card{
    padding-bottom:0 !important;

    gap:8px !important;

    transform:none !important;
  }

  .category-card:hover{
    transform:none !important;
  }

  /* IMAGEN HORIZONTAL */
 .category-card .category-image{
  width:100% !important;
  max-width:145px !important;

  height:112px !important;

  border-radius:999px !important;

  border:5px solid rgba(255,255,255,.45) !important;

  overflow:hidden !important;

  box-shadow:
    0 10px 22px rgba(67,20,34,.14) !important;

  margin:0 auto !important;
}

  .category-card .category-image img{
    width:100% !important;
    height:100% !important;

    object-fit:cover !important;

    display:block !important;
  }

  /* TEXTO */
  .category-card span{
    margin-top:2px !important;
    margin-bottom:0 !important;

    font-size:15px !important;
    font-weight:800 !important;

    color:#2f2a2b !important;

    text-align:center !important;
  }

  /* QUITAR BOTONES */
  .category-card .category-btn{
    display:none !important;
  }

  /* MENOS ESPACIO GENERAL */
  .products-panel{
    padding:16px !important;
  }

}

@media(max-width:768px){



  .product-body{
    padding:14px 18px 16px !important;
  }



.product-bottom{
  margin-top:0 !important;
}
  .product-img{
    height:220px !important;
  }

  .product-body{
    padding:12px !important;
  }

  .product-body h3{
    font-size:15px !important;
    line-height:1.15 !important;
    margin-bottom:6px !important;
  }
}

/* =========================================
   MODAL MOBILE · COMPACT PREMIUM
========================================= */

@media(max-width:768px){

  /* MÁS GRANDE LA IMAGEN */
  .modal-image{
    height:370px !important;
    min-height:370px !important;
    max-height:370px !important;
  }

  /* MINIATURAS MÁS ELEGANTES */
  .modal-thumbs{
    bottom:14px !important;
    left:14px !important;

    padding:6px 8px !important;

    border-radius:18px !important;

    background:rgba(255,255,255,.10) !important;

    backdrop-filter:blur(10px) !important;
  }

  .modal-thumbs button{
    width:54px !important;
    height:54px !important;
  }

  /* CONTENIDO MÁS COMPACTO */
  .modal-info{
    padding:18px 18px 22px !important;
    gap:0 !important;
  }

  .modal-info span{
    padding:6px 12px !important;
    font-size:11px !important;
    margin-bottom:10px !important;
  }

  .modal-info h2{
    margin:0 0 8px !important;
    font-size:26px !important;
    line-height:1.02 !important;
  }

  .modal-info p{
    font-size:13px !important;
    line-height:1.42 !important;
    margin-bottom:14px !important;
  }

  .modal-details{
    gap:10px !important;
    margin:0 0 14px !important;
  }

  .modal-details div{
    padding:12px !important;
    border-radius:18px !important;
  }

  .modal-details strong{
    font-size:15px !important;
  }

  .modal-options{
    gap:12px !important;
    margin-bottom:14px !important;
  }

  .modal-options small{
    margin-bottom:6px !important;
    font-size:11px !important;
  }

  .option-list{
    gap:6px !important;
  }

  .option-list button{
    padding:8px 13px !important;
    font-size:13px !important;
  }

  /* BOTÓN WHATSAPP */
  .modal-whatsapp{
    height:58px !important;
    border-radius:18px !important;
    font-size:14px !important;
  }

  /* OCULTAR BOTONES FLOTANTES */
  body.modal-open .mobile-filter-btn,
  body.modal-open .mobile-back-btn{
    opacity:0 !important;
    pointer-events:none !important;
    transform:scale(.8) !important;
  }

}

@media(max-width:768px){



  .payment-options button.active{
    background:#333 !important;
    color:#fff !important;
  }

}

@media(max-width:768px){

  .products-head span{
    position:relative !important;

    left:3px !important;   /* apenas a la izquierda */
    top:10px !important;     /* baja el texto */

    margin-left:55px !important;
    margin-bottom:0 !important;

    font-size:11px !important;
  }

}

/* MÁS ALTURA EN ESCRITORIO */
@media(min-width:1025px){

  .products-panel{
    min-height:720px !important;
  }

  .catalog-filter-sidebar{
    min-height:720px !important;
  }

  .products-grid{
    height:auto !important;
    overflow:visible !important;
  }

}

/* PAGINACIÓN */
.catalog-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:22px;
}

.catalog-pagination button{
  min-width:38px;
  height:38px;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,.55);
  color:#b5505a;
  font-weight:900;
  cursor:pointer;
}

.catalog-pagination button.active{
  background:#333;
  color:#fff;
}

.catalog-pagination button:disabled{
  opacity:.35;
  cursor:not-allowed;
}

@media(max-width:768px){

  .catalog-pagination{
    margin-top:18px;
    gap:6px;
    flex-wrap:wrap;
  }

  .catalog-pagination button{
    min-width:34px;
    height:34px;
    font-size:12px;
  }

}
/* =========================================
   IMPULDIVAS · TÍTULOS MÁS GRANDES EN CARDS
========================================= */

/* =========================================
   PRODUCT CARDS · TÍTULOS MÁS GRANDES
========================================= */

/* Desktop */
.product-body h3{
  font-size:26px !important;
  line-height:1.05 !important;
  font-weight:700 !important;
  margin-bottom:10px !important;
}

/* Móvil */
@media(max-width:768px){

  .product-body h3{
    font-size:22px !important;
    line-height:1.08 !important;
    font-weight:700 !important;
    margin-bottom:8px !important;
  }

}