:root{
  --brand:#6c5ce7;
  --brand-2:#00b894;
}
body{ background:#f6f7fb; font-family:'Segoe UI',system-ui,sans-serif; }
.bg-gradient-primary{ background:linear-gradient(90deg,var(--brand) 0%, var(--brand-2) 100%); }
/* Logo del navbar (no se usa por defecto en v5, queda por compatibilidad) */
.brand-logo{ height:38px; max-width:160px; object-fit:contain; }
/* Logo en hero de pantalla inicio: SIN fondo blanco para que se integre al color del cuadro */
.hero-logo{ max-width:100%; max-height:120px; object-fit:contain; filter:drop-shadow(0 2px 6px rgba(0,0,0,.25)); }

.card-prod{ border:none; border-radius:16px; overflow:hidden; transition:transform .2s, box-shadow .2s; background:#fff; display:flex; flex-direction:column; }
.card-prod:hover{ transform:translateY(-4px); box-shadow:0 12px 24px rgba(0,0,0,.08); }
.card-prod .card-body{ display:flex; flex-direction:column; }
.card-prod .card-title{ font-size:.95rem; min-height:2.6em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; flex-grow:1; }
.card-prod .card-body .price-tag{ margin-top:auto; }
.card-prod .img-wrap{
  width:100%; aspect-ratio:1/1; background:#f2f2f7;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.card-prod .img-wrap img{
  width:100%; height:100%;
  object-fit:contain; object-position:center;
  padding:.5rem; background:#fff;
}
.price-tag{ font-size:1.3rem; font-weight:700; color:var(--brand); }

/* Chips de categorías con scroll horizontal */
.cat-scroll{
  display:flex; flex-wrap:nowrap; gap:.5rem;
  overflow-x:auto; overflow-y:hidden;
  padding-bottom:.5rem; margin-bottom:1rem;
  scrollbar-width:thin; -webkit-overflow-scrolling:touch;
}
.cat-scroll::-webkit-scrollbar{ height:6px; }
.cat-scroll::-webkit-scrollbar-thumb{ background:#ccc; border-radius:3px; }
.cat-chip{
  border-radius:999px; padding:.4rem 1rem; background:#fff; border:1px solid #e0e0e0;
  cursor:pointer; transition:all .2s; white-space:nowrap; flex:0 0 auto;
  text-decoration:none; color:#333; font-size:.9rem;
}
.cat-chip:hover,.cat-chip.active{ background:var(--brand); color:#fff; border-color:var(--brand); }

.btn-primary{ background:var(--brand); border-color:var(--brand); }
.btn-primary:hover{ background:var(--brand); border-color:var(--brand); filter:brightness(.9); }
.btn-success{ background:var(--brand-2); border-color:var(--brand-2); }
.btn-success:hover{ background:var(--brand-2); border-color:var(--brand-2); filter:brightness(.9); }

.hero{ background:linear-gradient(135deg,var(--brand),var(--brand-2)); color:#fff; border-radius:16px; padding:1.5rem 1.5rem; margin-bottom:1.5rem; }
.hero h1{ font-weight:700; font-size:1.6rem; margin:0 0 .25rem 0; }
.hero p{ margin-bottom:.75rem; font-size:.95rem; }
.hero .btn{ padding:.4rem 1rem; }

.table-cart img{ width:60px; height:60px; object-fit:contain; background:#fff; border-radius:8px; border:1px solid #eee; }
.stock-badge{ font-size:.75rem; }
.detalle-foto{ width:100%; aspect-ratio:1/1; object-fit:contain; background:#fff; border:1px solid #eee; border-radius:12px; padding:.75rem; max-width:360px; display:block; margin:0 auto; }
/* Página detalle de producto: tamaños más compactos */
.producto-detalle h2{ font-size:1.4rem; margin:.25rem 0 .5rem; }
.producto-detalle .price-tag.display-5{ font-size:1.75rem !important; }
.producto-detalle p{ font-size:.92rem; margin-bottom:.6rem; }
.producto-detalle .btn-lg{ padding:.45rem .9rem; font-size:.95rem; }
.producto-detalle .input-group-text, .producto-detalle .form-control{ font-size:.92rem; }
@media(min-width:768px){ .producto-detalle .detalle-foto{ max-width:320px; } }

@media(max-width:576px){ .hero{ padding:1.25rem 1rem; } .hero h1{ font-size:1.3rem; } }

/* === Carrito en celulares === */
.cart-mobile{ display:none; }
@media(max-width:768px){
  .cart-desktop{ display:none !important; }
  .cart-mobile{ display:block; }
  .cart-item{ background:#fff; border-radius:14px; padding:1rem; margin-bottom:.75rem; box-shadow:0 2px 8px rgba(0,0,0,.05); }
  .cart-item .ci-top{ display:flex; gap:.75rem; align-items:flex-start; }
  .cart-item img{ width:72px; height:72px; object-fit:contain; background:#fff; border:1px solid #eee; border-radius:10px; flex-shrink:0; }
  .cart-item .ci-info{ flex:1; min-width:0; }
  .cart-item .ci-info b{ display:block; word-wrap:break-word; }
  .cart-item .ci-row{ display:flex; gap:.5rem; align-items:center; margin-top:.5rem; }
  .cart-item .ci-row label{ font-size:.85rem; color:#666; margin:0; }
  .cart-item .form-control{ height:34px; }
  .cart-item .ci-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:.5rem; padding-top:.5rem; border-top:1px solid #eee; }
}

/* === Tablas admin / Mis pedidos en celulares === */
@media(max-width:768px){
  .table-responsive-card{ display:block; }
  .table-responsive-card table{ font-size:.85rem; }
  .table-responsive-card .table td, .table-responsive-card .table th{ white-space:nowrap; }
}

/* Pedido nuevo destacado en Mis Pedidos */
.pedido-nuevo{ border:2px solid var(--brand-2) !important; box-shadow:0 0 0 4px rgba(0,184,148,.15) !important; }
.pedido-nuevo .card-header{ background:linear-gradient(90deg, rgba(0,184,148,.15), transparent); }

/* === Overlay procesando === */
#loadingOverlay{
  position:fixed; inset:0; background:rgba(255,255,255,.85); z-index:9999;
  display:none; align-items:center; justify-content:center; flex-direction:column;
}
#loadingOverlay.show{ display:flex; }
#loadingOverlay .spinner-border{ width:4rem; height:4rem; color:var(--brand); }
#loadingOverlay p{ margin-top:1rem; font-weight:600; color:#444; }

/* Preview foto admin */
.foto-preview{ max-width:120px; max-height:120px; object-fit:contain; border:1px solid #eee; border-radius:8px; background:#fff; padding:4px; }

/* Configuración: separación clara entre tarjetas y controles */
.config-card{ max-width:780px; padding:1.25rem 1.5rem; margin-bottom:1rem; }
.config-card h5{ margin-bottom:1rem; padding-bottom:.5rem; border-bottom:1px solid #eee; }
.config-card .form-check.form-switch{ padding-left:2.5em; margin-bottom:.25rem; }
.config-card .form-check.form-switch .form-check-input{ margin-left:-2.5em; width:2.5em; height:1.25em; }
.config-card label.form-label{ font-weight:600; margin-top:.75rem; }
.config-card .help-text{ display:block; color:#888; font-size:.8rem; margin-bottom:.75rem; }

/* Selector de tema en config */
.theme-option{
  display:inline-flex; align-items:center; gap:.5rem; padding:.5rem .9rem; border-radius:10px;
  border:2px solid #e5e5e5; cursor:pointer; margin:.25rem .35rem .25rem 0; background:#fff;
}
.theme-option.selected{ border-color:#333; box-shadow:0 0 0 3px rgba(0,0,0,.05); }
.theme-swatch{ width:18px; height:18px; border-radius:4px; display:inline-block; border:1px solid rgba(0,0,0,.1); }

/* === Categorías: en PC se muestran en filas (wrap), en celular siguen como carrusel horizontal === */
@media(min-width:768px){
  .cat-scroll-pc{ flex-wrap:wrap !important; overflow-x:visible !important; }
}
.cat-chip.active{ background:var(--brand) !important; color:#fff !important; border-color:var(--brand) !important; }

/* Precios con descuento */
.precio-tachado{ text-decoration:line-through; color:#999; font-size:.85em; margin-right:.4rem; font-weight:500; }
.precio-final{ color:var(--brand); font-weight:700; }
.price-tag{ display:inline-flex; align-items:baseline; gap:.25rem; flex-wrap:wrap; }

/* Configuración: campos y switches claros, sin superposiciones */
.config-card .cfg-field{ margin-bottom:1rem; }
.config-card .cfg-field .form-label{ display:block; font-weight:600; margin:0 0 .25rem 0; }
.config-card .cfg-field .help-text{ display:block; color:#888; font-size:.8rem; margin-top:.25rem; }
.config-card .cfg-switch{
  display:flex; align-items:center; gap:.6rem; padding-left:0; margin:0;
}
.config-card .cfg-switch input.form-check-input{
  width:2.6em; height:1.35em; margin:0; flex:0 0 auto; cursor:pointer;
  -webkit-appearance:none; appearance:none; background-color:#ccc; border-radius:999px; position:relative; transition:.2s;
}
.config-card .cfg-switch input.form-check-input::before{
  content:""; position:absolute; top:2px; left:2px; width:calc(1.35em - 4px); height:calc(1.35em - 4px);
  background:#fff; border-radius:50%; transition:.2s;
}
.config-card .cfg-switch input.form-check-input:checked{ background-color:var(--brand-2); }
.config-card .cfg-switch input.form-check-input:checked::before{ left:calc(2.6em - 1.35em + 2px); }
.config-card .cfg-switch label{ margin:0; cursor:pointer; user-select:none; font-weight:500; }
.config-card .theme-list label{ display:inline-flex; align-items:center; gap:.4rem; margin:.25rem .75rem .25rem 0; }

/* === v6: Precio original tachado a la izquierda en gris, precio final a la derecha === */
.price-tag{ display:inline-flex; align-items:baseline; gap:1rem; flex-wrap:wrap; }
.precio-tachado{
  text-decoration:line-through;
  color:#9a9a9a;
  font-weight:500;
  font-size:.9em;
  margin-right:0;
}
.precio-final{ color:var(--brand); font-weight:700; }

/* === v6: filas de configuración con checkbox + label nítidamente separados === */
.config-card .cfg-row{
  display:flex; align-items:center; gap:.75rem;
  padding:.35rem 0; margin:.25rem 0;
}
.config-card .cfg-row input[type="checkbox"]{
  width:1.25rem; height:1.25rem; margin:0; flex:0 0 auto; cursor:pointer;
  accent-color: var(--brand-2);
}
.config-card .cfg-row label{
  margin:0; cursor:pointer; user-select:none; font-weight:500; line-height:1.3;
}

/* =================== v7 =================== */

/* Tarjetas de producto más compactas (PC y celular) */
.card-prod-compact .img-wrap{ aspect-ratio:1/1; max-height:170px; }
.card-prod-compact .card-body{ padding:.55rem .65rem; gap:.2rem; }
.card-prod-compact .card-title{
  font-size:.85rem; min-height:0; margin:0; line-height:1.15;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.card-prod-compact .price-tag{ font-size:1rem; }
.card-prod-compact .btn{ padding:.25rem .5rem; font-size:.8rem; }
.card-prod-compact .stock-badge{ font-size:.7rem; align-self:flex-start; }
@media(max-width:576px){
  .card-prod-compact .img-wrap{ max-height:130px; }
  .card-prod-compact .price-tag{ font-size:.95rem; }
}

/* === Barra inferior fija (mobile) - estilo prolijo tipo app === */
.mobile-bottom-nav{
  position:fixed; left:0; right:0; bottom:0; z-index:1050;
  display:flex; justify-content:space-around; align-items:flex-end;
  background:#ffffff;
  border-top:1px solid #ececec;
  box-shadow:0 -4px 18px rgba(0,0,0,.08);
  padding:.5rem .4rem calc(.5rem + env(safe-area-inset-bottom,0px)) .4rem;
  -webkit-transform: translateZ(0); transform: translateZ(0);
}
.mobile-bottom-nav .mbn-item{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end;
  color:#7a7a7a; text-decoration:none;
  font-size:.7rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  gap:.15rem; padding:.25rem 0; min-width:0;
}
.mobile-bottom-nav .mbn-item i{ font-size:1.55rem; line-height:1; color:#7a7a7a; }
.mobile-bottom-nav .mbn-item span{ line-height:1; }
.mobile-bottom-nav .mbn-item:active{ opacity:.7; }

/* Botón WhatsApp flotante centrado, sobresale por arriba */
.mobile-bottom-nav .mbn-wa{
  background:#25D366; color:#fff; border-radius:50%;
  width:64px; height:64px; flex:0 0 64px;
  margin-top:-30px;
  border:4px solid #fff;
  box-shadow:0 8px 20px rgba(37,211,102,.45);
  justify-content:center; align-items:center;
  position:relative;
}
.mobile-bottom-nav .mbn-wa i{ font-size:2rem; color:#fff; }
.mobile-bottom-nav .mbn-wa span{
  position:absolute; bottom:-18px; left:50%; transform:translateX(-50%);
  color:#25D366; font-size:.7rem; font-weight:700; text-transform:none;
}

.mobile-bottom-nav .mbn-cart-wrap{ position:relative; display:inline-block; }
.mobile-bottom-nav .mbn-cart-wrap > :nth-child(2){
  position:absolute; top:-6px; right:-12px;
  background:var(--brand); color:#fff; border-radius:10px;
  font-size:.65rem; padding:1px 5px; min-width:18px; text-align:center; line-height:1.3;
  font-weight:700;
}
@media(max-width:767.98px){
  body{ padding-bottom:96px; }
  .footer-with-bottombar{ margin-bottom:70px; }
}

/* Mis Pedidos: en celular ocultar primer columna (Código) del GridView interno */
@media(max-width:768px){
  .table-responsive-card table thead th:first-child,
  .table-responsive-card table tbody td:first-child{ display:none; }
  /* Botones WhatsApp + Repetir a la derecha en su propio renglón */
  .card-header .d-flex.align-items-center.gap-2.flex-wrap{
    width:100%; justify-content:flex-end;
  }
  .card-header > div:first-child{ width:100%; }
}

/* Logo debajo del cuadro de login */
.login-logo{
  display:block; margin:1.25rem auto 0 auto;
  max-width:180px; max-height:120px; object-fit:contain;
}

/* Mis pedidos: header con info + total + acciones (responsive) */
.ped-header{
  display:grid; gap:.5rem; align-items:center;
  grid-template-columns: 1fr auto auto;
}
.ped-header .ped-actions{ display:flex; gap:.4rem; flex-wrap:wrap; justify-content:flex-end; }
@media(max-width:768px){
  .ped-header{ grid-template-columns: 1fr; }
  .ped-header .ped-info{ width:100%; }
  .ped-header .ped-total{ text-align:right; width:100%; }
  .ped-header .ped-actions{ justify-content:flex-end; width:100%; }
}

.swal2-confirm:hover,
.swal2-confirm:focus {
    background-color: #dc3545 !important;
    color: #fff !important;
}

.swal2-cancel:hover,
.swal2-cancel:focus {
    background-color: #6c757d !important;
    color: #fff !important;
}
/* === v9: Subcategorías === */
.cat-scroll-sub{ margin-top:.35rem; margin-bottom:.6rem; padding-left:.25rem; }
.cat-chip-sub{
  font-size:.82rem;
  padding:.25rem .65rem;
  background:#f6f7fb;
  border-color:#dde1ea;
  color:#4a5568;
}
.cat-chip-sub.active{ background:var(--brand) !important; color:#fff !important; border-color:var(--brand) !important; }

/* === v10: Subcategorías - color distinto (ámbar) para diferenciarlas claramente === */
.cat-chip-sub{
  background:#fff7e6 !important;
  border:1px solid #f5c46b !important;
  color:#8a5a00 !important;
}
.cat-chip-sub:hover{ background:#ffe9bf !important; }
.cat-chip-sub.active{
  background:#f59e0b !important;
  color:#fff !important;
  border-color:#d97706 !important;
}

/* === v10: Buscador con autocompletado en inicio === */
.home-search-wrap{ position:relative; max-width:520px; margin:0 0 1rem 0; }
.home-search-results{
  position:absolute; top:100%; left:0; right:0; z-index:1050;
  background:#fff; border:1px solid #e1e4eb; border-top:0;
  border-radius:0 0 .5rem .5rem; box-shadow:0 8px 22px rgba(0,0,0,.10);
  max-height:360px; overflow-y:auto; display:none;
}
.home-search-results.show{ display:block; }
.home-search-results .hsr-item{
  display:flex; align-items:center; gap:.6rem; padding:.5rem .65rem;
  text-decoration:none; color:#222; border-top:1px solid #f1f1f1;
}
.home-search-results .hsr-item:first-child{ border-top:0; }
.home-search-results .hsr-item:hover{ background:#f6f8fc; }
.home-search-results .hsr-item img{
  width:42px; height:42px; object-fit:cover; border-radius:.35rem; background:#f3f3f3;
}
.home-search-results .hsr-name{ font-weight:600; font-size:.9rem; line-height:1.1; }
.home-search-results .hsr-meta{ font-size:.75rem; color:#777; }
.home-search-results .hsr-empty{ padding:.7rem; color:#888; font-size:.85rem; text-align:center; }

/* ===== v11: barra superior con buscador + menú vertical de categorías ===== */
.home-top-bar{
  display:flex; gap:.6rem; align-items:flex-start;
  margin:0 0 1rem 0; flex-wrap:wrap;
}
.home-top-bar .home-search-wrap{ flex:0 1 320px; margin:0; max-width:320px; }
.home-search-group .btn{ display:flex; align-items:center; justify-content:center; padding:.25rem .6rem; }
@media (max-width: 575.98px){
  .home-top-bar .home-search-wrap{ flex:1 1 100%; max-width:none; }
}
.cat-menu-wrap{ position:relative; flex:0 0 auto; }
.cat-menu-btn{ white-space:nowrap; }
.cat-menu-panel{
  display:none; position:absolute; left:0; right:auto; top:calc(100% + 6px);
  width:300px;
  background:#fff; border:1px solid #e0e0e0; border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,.12); z-index:1050; padding:.35rem 0;
  overflow:visible;
}
.cat-menu-panel.show{ display:block; }
.cat-menu-list{ list-style:none; margin:0; padding:0; overflow:visible; }
.cat-menu-item{ position:relative; display:block; }
.cat-menu-link{
  display:flex; align-items:center; gap:.7rem; padding:.5rem .85rem;
  color:#333; text-decoration:none; font-size:.92rem; line-height:1.2;
  border-left:3px solid transparent;
}
.cat-menu-thumb{
  flex:0 0 auto; width:40px; height:40px; border-radius:6px; overflow:hidden;
  background:#fff; border:1px solid #e6e6ee;
  display:flex; align-items:center; justify-content:center; color:var(--brand);
}
.cat-menu-thumb img{ width:100%; height:100%; object-fit:contain; display:block; }
.cat-menu-name{ flex:1 1 auto; font-weight:600; text-transform:uppercase; font-size:.82rem; letter-spacing:.02em; }
.cat-menu-caret{ flex:0 0 auto; color:#aaa; font-size:.85rem; }
.cat-menu-link:hover,
.cat-menu-item.has-sub:hover > .cat-menu-link,
.cat-menu-item.has-sub.open > .cat-menu-link,
.cat-menu-item.active > .cat-menu-link{
  background:#f5faf5; color:var(--brand) !important;
  border-left-color:var(--brand);
}
.cat-menu-item.has-sub:hover > .cat-menu-link .cat-menu-caret,
.cat-menu-item.has-sub.open > .cat-menu-link .cat-menu-caret{ color:var(--brand); }

/* Subpanel adyacente (sin gap) con 2 columnas */
.cat-menu-item.has-sub:hover > .cat-menu-sublist,
.cat-menu-item.has-sub.open  > .cat-menu-sublist{ display:block; }
.cat-menu-sublist{
  display:none; position:absolute; left:100%; top:0;
  min-width:380px; max-width:480px;
  background:#fff; border:1px solid #e0e0e0; border-left:0;
  border-radius:0 10px 10px 0;
  box-shadow:8px 8px 24px rgba(0,0,0,.10);
  padding:.6rem .4rem; z-index:1060;
}
.cat-menu-sublist ul{
  list-style:none; margin:0; padding:0;
  column-count:2; column-gap:.5rem;
}
.cat-menu-sublist li{ break-inside:avoid; }
.cat-menu-sublink{
  display:block; padding:.4rem .7rem; color:#333; text-decoration:none;
  font-size:.9rem; border-radius:6px;
}
.cat-menu-sublink:hover{ background:#f5faf5; color:var(--brand); }

@media (max-width: 640px){
  .cat-menu-panel{ left:0; right:auto; width:90vw; }
  .cat-menu-sublist{
    position:static; display:none; box-shadow:none; border:0; border-top:1px dashed #ddd;
    border-radius:0; padding:.3rem .3rem .3rem 3rem; min-width:0; max-width:none;
  }
  .cat-menu-sublist ul{ column-count:1; }
  .cat-menu-item.has-sub:hover > .cat-menu-sublist{ display:none; }
  .cat-menu-item.has-sub.open  > .cat-menu-sublist{ display:block; }
}

/* ===== v12: chips de categoría con foto cuadrada y fondo blanco ===== */
.cat-scroll-foto .cat-chip-foto{
  display:inline-flex; flex-direction:column; align-items:center; justify-content:flex-start;
  padding:.5rem .7rem; gap:.35rem; min-width:88px; text-align:center;
  border-radius:14px;
}
.cat-chip-foto .cat-chip-img{
  width:64px; height:64px; border-radius:8px; overflow:hidden;
  background:#fff; display:flex; align-items:center; justify-content:center;
  border:1px solid #e6e6ee;
}
.cat-chip-foto .cat-chip-img img{ width:100%; height:100%; object-fit:contain; display:block; background:#fff; }
.cat-chip-foto .cat-chip-img-icon{ color:var(--brand); font-size:1.3rem; }
.cat-chip-foto .cat-chip-name{ font-size:.82rem; font-weight:600; line-height:1.1; }
.cat-chip-foto:hover .cat-chip-img{ border-color:var(--brand); }

/* ====== Botón "Agregar al carrito" + animación de vuelo ====== */
.btn-add-cart{ width:100%; margin-top:6px; }
.cart-pulse{ animation: cartPulse .5s ease; }
@keyframes cartPulse{
  0%{ transform: scale(1); }
  40%{ transform: scale(1.35); }
  100%{ transform: scale(1); }
}
.fly-img{
  position:fixed; z-index:99999; width:70px; height:70px;
  border-radius:50%; object-fit:cover;
  box-shadow:0 6px 18px rgba(0,0,0,.35);
  pointer-events:none;
  transition: transform .9s cubic-bezier(.22,.61,.36,1), opacity .9s ease, width .9s ease, height .9s ease;
}

/* ===== v27: Categorías estilo circular ===== */
.cat-circles{ gap:1rem; padding:0 .25rem .75rem; }
.cat-circle{
  display:inline-flex; flex-direction:column; align-items:center; justify-content:flex-start;
  text-decoration:none; color:#444; min-width:90px; max-width:100px;
  flex:0 0 auto; gap:.4rem;
}
.cat-circle-img{
  width:74px; height:74px; border-radius:50%; overflow:hidden;
  background:#dbe7ff; /* fallback sólido para navegadores sin color-mix */
  background:color-mix(in srgb, var(--brand) 22%, #fff);
  display:flex; align-items:center; justify-content:center;
  border:0;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  transition:transform .2s, box-shadow .2s;
}
.cat-circle:hover .cat-circle-img{ transform:scale(1.06); box-shadow:0 4px 12px rgba(0,0,0,.12); }
.cat-circle-img img{ width:78%; height:78%; object-fit:contain; display:block; background:transparent; }
.cat-circle-img-icon{ color:var(--brand); font-size:1.6rem; }
.cat-circle-name{ font-size:.82rem; font-weight:600; line-height:1.15; text-align:center; color:#333; }

/* Carrusel de promociones en hero: la imagen ocupa TODO el panel */
.hero.hero-promo, .hero:has(.hero-carousel){ padding:0 !important; background:none !important; border:0 !important; box-shadow:none !important; overflow:hidden; margin-bottom:1.5rem; }
.hero-carousel{ border-radius:16px; overflow:hidden; background:transparent; }
.hero-carousel, .hero-carousel .carousel-inner, .hero-carousel .carousel-item{ height:auto; }
.hero-promo-img{ width:100%; height:auto; max-height:300px; object-fit:contain; display:block; }
@media(min-width:768px){ .hero-promo-img{ max-height:340px; } }

.hero .hero-text h1{ font-weight:700; font-size:1.6rem; margin:0 0 .25rem 0; }
.hero .hero-text p{ margin-bottom:0; font-size:.95rem; }

/* Quitamos el margen inferior por defecto de la barra superior cuando hay secondary-bar arriba */
.main-with-bottombar > .secondary-bar:first-child{ margin-top:-1rem; }

/* ===== v34: Carrito y Mis Pedidos con bordes neutros gris ===== */
.cart-desktop{
  border:1px solid #dee2e6;
  border-radius:14px; overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
  background:#fff;
}
.cart-desktop .table{ margin-bottom:0; }
.cart-desktop .table thead th{
  background:#f1f3f5;
  color:#333; border:0;
}
.cart-desktop .table tbody td{ border-color:#e9ecef; }

.cart-mobile .cart-item{
  border:1px solid #dee2e6 !important;
  box-shadow:0 2px 8px rgba(0,0,0,.05) !important;
  background:#fff;
}
.cart-mobile .cart-item .ci-foot{
  border-top:1px solid #e9ecef !important;
}

/* Carrito: tarjetas resumen / pago / observaciones */
.cart-desktop ~ .card.bg-white,
.cart-mobile ~ .card.bg-white,
form .card.p-3.bg-white{
  border:1px solid #dee2e6 !important;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
}

/* Mis pedidos: tarjetas de cada pedido */
[id*="pedCard"]{
  border:1px solid #dee2e6 !important;
  box-shadow:0 2px 8px rgba(0,0,0,.05) !important;
}
[id*="pedCard"] .card-header{
  background:#f8f9fa !important;
  border-bottom:1px solid #e9ecef;
}
[id*="pedCard"] .table thead th{
  background:#f1f3f5;
  color:#333; border-color:#e9ecef;
}
[id*="pedCard"] .table tbody td{ border-color:#e9ecef; }
.pedido-nuevo{ border:2px solid var(--brand-2) !important; }

/* v34 Carrito: botones de acción más chicos y apilados en PC */
.cart-actions{ max-width:280px; margin-left:auto; }
@media(max-width:767.98px){ .cart-actions{ max-width:100%; } }

/* ===== v35 ===== */
/* Carrito: botones de acción aún más compactos y apilados */
.cart-actions{ max-width:220px; margin-left:auto; }
.cart-actions .btn{ padding:.4rem .8rem; font-size:.92rem; }
@media(max-width:767.98px){ .cart-actions{ max-width:100%; } .cart-actions .btn{ padding:.5rem .8rem; } }

/* Carrito: refuerzo de bordes neutros (mayor especificidad) */
.cart-desktop, .cart-mobile .cart-item,
form .card.p-3.bg-white, .card.p-3.bg-white{
  border:1px solid #dee2e6 !important;
  box-shadow:0 2px 8px rgba(0,0,0,.05) !important;
}

/* Mis pedidos: refuerzo bordes gris */
.card.bg-white.mb-3.shadow-sm,
[id*="pedCard"]{
  border:1px solid #dee2e6 !important;
  box-shadow:0 2px 8px rgba(0,0,0,.05) !important;
}

/* MiCuenta: borde gris en la tarjeta */
.card.card-prod.p-4{
  border:1px solid #dee2e6 !important;
  box-shadow:0 2px 8px rgba(0,0,0,.05) !important;
  background:#fff;
}

/* Mobile: pie de página más cerca del cuadro de login */
@media(max-width:991.98px){
  body.body-login main.container{ padding-bottom:0 !important; }
  body.body-login .site-footer{
    margin-top:.5rem !important;
    padding:.5rem 0 .75rem 0 !important;
  }
  body.body-login .site-footer > .container{
    padding:.75rem .9rem !important;
    font-size:.85rem;
  }
}

/* v38: color de fondo suave (v34) en encabezados, manteniendo marco gris */
.table-cart > thead th,
.table-cart thead th{
  background:#f1f3f5 !important;
  color:#333 !important;
  border-bottom:1px solid #e9ecef !important;
}
.ped-header, .card .card-header.ped-header{
  background:#f8f9fa !important;
  color:#333 !important;
  border-bottom:1px solid #e9ecef !important;
}
.ped-header b, .ped-header small, .ped-header .ped-total, .ped-header .ped-info{
  color:inherit !important;
}


/* v40: encabezado Mis Pedidos en tono azul claro */
[id*="pedCard"] .card-header,
.ped-header, .card .card-header.ped-header{
  background:#d6e4ff !important;
  color:#1a3a7a !important;
  border-bottom:1px solid #9ab8e8 !important;
}

/* ===== v51 ===== */
/* Pestañas Productos / Categorías con fondo de color */
.nav-tabs .nav-link{
  background:#eef1f6 !important;
  color:#333 !important;
  border:1px solid #dde3ec !important;
  border-bottom:0 !important;
  margin-right:.25rem;
  font-weight:600;
}
.nav-tabs .nav-link.active{
  background:var(--brand) !important;
  color:#fff !important;
  border-color:var(--brand) !important;
}
.nav-tabs .nav-link:hover:not(.active){ background:#e2e8f0 !important; }

/* Centrar los círculos de categorías en PC */
@media(min-width:992px){
  .cat-scroll.cat-circles{ justify-content:center !important; }
}

/* Carrusel hero: fondo neutro para que GIFs angostos en PC no muestren franjas blancas */
.hero-carousel{ background:#f1f3f5; }
.hero-carousel .carousel-item{ display:flex; align-items:center; justify-content:center; background:#f1f3f5; }
.hero-promo-img{ width:auto !important; max-width:100%; max-height:300px; height:auto; margin:0 auto; display:block; object-fit:contain; }
@media(min-width:768px){ .hero-promo-img{ max-height:340px; } }

/* Badge OFERTA sobre la foto del producto */
.card-prod{ position:relative; }
.badge-oferta{
  position:absolute; top:8px; left:8px; z-index:3;
  background:#dc3545; color:#fff; font-weight:800; font-size:.72rem;
  padding:.25rem .55rem; border-radius:6px;
  letter-spacing:.5px; box-shadow:0 2px 6px rgba(0,0,0,.25);
  text-transform:uppercase;
}

/* Miniatura de archivo recién seleccionado (antes de guardar) */
.foto-preview-pending{
  max-width:120px; max-height:120px; object-fit:contain;
  border:1px dashed var(--brand); border-radius:8px; padding:4px;
  background:#fff; margin-top:6px;
}

/* Reordenar promos */
.promo-actions{ display:flex; gap:.2rem; justify-content:center; margin-top:.25rem; }
.promo-actions .btn{ padding:.15rem .4rem; }

/* ===== v52 ===== */

/* Cuadro "hero" cuando hay carrusel: SIN fondo / borde / padding (fix Firefox) */
.hero-promo-wrap{
  padding:0 !important; background:none !important; border:0 !important;
  box-shadow:none !important; margin-bottom:1.5rem; overflow:hidden;
}
.hero-promo-wrap .hero-carousel{ border-radius:16px; overflow:hidden; background:#f1f3f5; }
.hero-promo-wrap .hero-carousel .carousel-item{ background:#f1f3f5; display:flex; align-items:center; justify-content:center; }
.hero-promo-wrap .hero-promo-img{
  width:auto !important; max-width:100%; height:auto; max-height:300px;
  margin:0 auto; display:block; object-fit:contain;
}
@media(min-width:768px){ .hero-promo-wrap .hero-promo-img{ max-height:340px; } }
/* Fade limpio en carrusel (mejor transición que slide para GIFs de distintos tamaños) */
.hero-carousel.carousel-fade .carousel-item{ transition: opacity .6s ease-in-out; }

/* Botón Categorías: SIN ícono extra a la izquierda, color fijo (no se pone verde) */
.secondary-bar .cat-menu-btn,
.secondary-bar .cat-menu-btn:hover,
.secondary-bar .cat-menu-btn:focus,
.secondary-bar .cat-menu-btn:active,
.secondary-bar .cat-menu-btn[aria-expanded="true"]{
  background:var(--brand) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.45) !important;
  box-shadow:0 1px 3px rgba(0,0,0,.15) !important;
  font-weight:700;
  padding:.45rem .9rem;
  border-radius:999px;
  display:inline-flex; align-items:center; gap:.4rem;
  outline:none;
}
.secondary-bar .cat-menu-btn::before{ content:none !important; }
.secondary-bar .cat-menu-btn > i.bi{ color:#fff !important; }

/* Badge OFERTA en diagonal arriba a la izquierda */
.badge-oferta{
  position:absolute; top:10px; left:-34px; z-index:4;
  transform:rotate(-35deg);
  width:120px; text-align:center;
  background:linear-gradient(90deg,#dc3545,#ff6a3d); color:#fff;
  font-weight:800; font-size:.78rem; letter-spacing:1px;
  padding:.28rem 0; border:0; border-radius:2px;
  box-shadow:0 3px 8px rgba(0,0,0,.30);
  text-transform:uppercase;
}

/* OFERTA grande sobre la foto del detalle de producto */
.detalle-foto-wrap{ position:relative; display:inline-block; width:100%; }
.badge-oferta.badge-oferta-diag{
  top:18px; left:-40px; width:160px; font-size:.95rem; padding:.4rem 0;
}

/* Acciones de la card de producto: Ver producto + Agregar al carrito juntos */
.card-prod .prod-actions{
  display:flex; flex-direction:column; gap:.25rem; margin-top:.35rem;
}
.card-prod .prod-actions .btn{ width:100%; padding:.3rem .5rem; font-size:.8rem; }
.card-prod .prod-actions .btn-add-cart{ margin-top:0; }

/* Hint "Mejorar foto (IA)" junto al preview pendiente */
.ia-hint{
  display:inline-flex; align-items:center; gap:.35rem;
  background:#eef5ff; border:1px dashed #b6cdf2; color:#1a3a7a;
  padding:.35rem .55rem; border-radius:8px; font-size:.78rem; font-weight:600;
  height:fit-content; margin-top:4px;
}
.ia-hint .bi{ color:var(--brand); }

/* Pie de página: que NO quede mucho espacio en blanco debajo */
body{ min-height:auto !important; }
body > form{ min-height:auto !important; }
main.container{ flex:1 0 auto; }
.site-footer{ margin-top:.75rem !important; padding:.4rem 0 .6rem 0 !important; }
.site-footer > .container{ padding:.9rem 1rem !important; }

/* Mobile: ocultar barra de scroll de categorías por defecto, mostrar SOLO al desplazar */
@media(max-width:991.98px){
  .cat-scroll{ scrollbar-width:none; -ms-overflow-style:none; }
  .cat-scroll::-webkit-scrollbar{ display:none; height:0; width:0; }
  .cat-scroll.show-scroll{ scrollbar-width:thin; }
  .cat-scroll.show-scroll::-webkit-scrollbar{ display:block; height:4px; }
  .cat-scroll.show-scroll::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.25); border-radius:2px; }
}

/* Mis pedidos en móvil: estado + pago en renglón aparte */
.ped-header .ped-info .ped-line2{ margin-top:.15rem; display:flex; gap:.35rem; flex-wrap:wrap; align-items:center; }
@media(min-width:769px){
  .ped-header .ped-info{ display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
  .ped-header .ped-info .ped-line2{ margin-top:0; }
}

/* v53 — Carrusel horizontal de Ofertas */
.ofertas-carousel{ position:relative; padding:0 36px; }
.ofertas-carousel .ofc-track{ display:flex; gap:.85rem; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; padding-bottom:.4rem; }
.ofertas-carousel .ofc-item{ flex:0 0 auto; width:210px; scroll-snap-align:start; }
.ofertas-carousel .ofc-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:36px; height:36px; border-radius:50%;
  background:var(--brand); color:#fff; border:0; box-shadow:0 2px 6px rgba(0,0,0,.18);
  display:flex; align-items:center; justify-content:center; z-index:3;
}
.ofertas-carousel .ofc-prev{ left:0; }
.ofertas-carousel .ofc-next{ right:0; }
.ofertas-carousel .ofc-nav:hover{ background:var(--brand-2); }

/* v53 — Asegurar que el badge OFERTA de pantalla producto quede dentro de la foto */
.detalle-foto-wrap{ position:relative; max-width:360px; margin:0 auto; overflow:hidden; border-radius:12px; display:block; }
.detalle-foto-wrap > img{ display:block; width:100%; height:auto; }

/* ===== v54 ===== */
/* Hero promo: el GIF ahora ocupa TODO el ancho del contenedor en PC */
.hero-promo-wrap .hero-carousel{ background:#f1f3f5; }
.hero-promo-wrap .hero-promo-img{
  width:100% !important; max-width:100% !important;
  height:auto !important; max-height:340px !important;
  object-fit:cover !important;
  display:block; margin:0 !important;
}
@media(min-width:768px){
  .hero-promo-wrap .hero-promo-img{ max-height:300px !important; }
}

/* Ofertas: en celular entran 2 enteras, flechas superpuestas sobre los items */
.ofertas-carousel{ padding:0 30px; }
.ofertas-carousel .ofc-item{ width:180px; }
@media(min-width:992px){ .ofertas-carousel .ofc-item{ width:200px; } }
@media(max-width:767.98px){
  .ofertas-carousel{ padding:0; }
  .ofertas-carousel .ofc-track{ gap:.5rem; }
  .ofertas-carousel .ofc-item{ width:calc((100% - .5rem) / 2); }
  .ofertas-carousel .ofc-nav{
    background:rgba(255,255,255,.85) !important;
    border:1px solid #dee2e6 !important;
    box-shadow:0 1px 3px rgba(0,0,0,.15) !important;
  }
  .ofertas-carousel .ofc-prev{ left:2px; }
  .ofertas-carousel .ofc-next{ right:2px; }
}

/* Flechas grises sin fondo, sólo color al hacer hover (desktop) */
.ofertas-carousel .ofc-nav{
  background:transparent !important;
  color:#6c757d !important;
  border:1px solid transparent !important;
  box-shadow:none !important;
  width:32px; height:32px; font-size:1.1rem;
}
.ofertas-carousel .ofc-nav:hover{
  background:#f1f3f5 !important;
  color:#212529 !important;
  border-color:#dee2e6 !important;
}

/* Track de ofertas: barra de scroll oculta por defecto, visible al desplazar */
.ofertas-carousel .ofc-track{
  scrollbar-width:none !important;
  -ms-overflow-style:none;
}
.ofertas-carousel .ofc-track::-webkit-scrollbar{ display:none; height:0; }
.ofertas-carousel .ofc-track.show-scroll{ scrollbar-width:thin !important; }
.ofertas-carousel .ofc-track.show-scroll::-webkit-scrollbar{ display:block; height:5px; }
.ofertas-carousel .ofc-track.show-scroll::-webkit-scrollbar-thumb{
  background:rgba(0,0,0,.25); border-radius:3px;
}

/* v76 - Titulo de familia en la home (listado de todos los productos) */
.fam-title{
  position: sticky;
  top: 56px;
  z-index: 5;
  margin: 1.6rem 0 .75rem;
  padding: .45rem .1rem;
  background: transparent;
}
.fam-title .fam-title-txt{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: 1.32rem;
  font-weight: 500;
  letter-spacing: .2px;
  padding: .35rem .95rem;
  border-radius: 999px;
  color: #212529;
  background: color-mix(in srgb, var(--brand, #6c5ce7) 12%, #fff);
  border: 0;
}
.fam-title .fam-title-nm{ text-transform: lowercase; display:inline-block; }
.fam-title .fam-title-nm::first-letter{ text-transform: uppercase; }
.fam-title .fam-title-txt i{ color: var(--brand, #6c5ce7); font-size: 1.05rem; }
.fam-title .fam-title-ico{
  width: 36px; height: 36px; object-fit: contain; display: inline-block; flex:0 0 36px;
}
.fam-title.is-stuck .fam-title-txt{
  box-shadow: 0 4px 14px rgba(0,0,0,.14);
  background: linear-gradient(90deg, var(--brand, #6c5ce7), var(--brand-2, #00b894));
  color: #fff;
}
.fam-title.is-stuck .fam-title-txt i{ color: #fff; }
@media (max-width: 575.98px){
  .fam-title{ top: 52px; }
  .fam-title .fam-title-txt{ font-size: 1.18rem; }
  .fam-title .fam-title-ico{ width: 28px; height: 28px; flex-basis:28px; }
}

/* Botones en Mis pedidos: WhatsApp siempre verde, Repetir con color secundario */
.btn-wa-fijo,
.btn-wa-fijo:hover,
.btn-wa-fijo:focus{
  background-color: #25D366 !important;
  border-color: #25D366 !important;
  color: #fff !important;
}
.btn-repetir,
.btn-repetir:hover,
.btn-repetir:focus{
  background-color: var(--brand-2, #00b894) !important;
  border-color: var(--brand-2, #00b894) !important;
  color: #fff !important;
}


/* ===== v81: Banner/promos con relación fija 1200x340 en PC y celular ===== */
.hero-promo-wrap .hero-carousel,
.hero-carousel{ background:transparent !important; }
.hero-promo-wrap .hero-carousel .carousel-item,
.hero-carousel .carousel-item{ background:transparent !important; }
.hero-promo-wrap .hero-carousel .carousel-inner,
.hero-carousel .carousel-inner{ border-radius:16px; overflow:hidden; }
.hero-promo-wrap .hero-promo-img,
.hero-promo-img{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  aspect-ratio: 1200 / 340;
  height:auto !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center center;
  margin:0 !important;
}

/* v84 — Flechas de desplazamiento sobre las categorías (círculos) */
.catnav-wrap{ position:relative; }
.catnav-arrow{
  position:absolute; top:37px; transform:translateY(-50%);
  width:30px; height:30px; border-radius:50%;
  background:rgba(255,255,255,.9); color:#6c757d;
  border:1px solid #dee2e6; box-shadow:0 1px 4px rgba(0,0,0,.15);
  display:none; align-items:center; justify-content:center;
  z-index:4; padding:0; font-size:1rem; line-height:1;
}
.catnav-arrow:hover{ background:#f1f3f5; color:#212529; }
.catnav-prev{ left:2px; }
.catnav-next{ right:2px; }
@media(max-width:767.98px){
  .catnav-wrap.has-nav .catnav-arrow{ display:flex; }
  .catnav-wrap.has-nav.at-start .catnav-prev{ display:none; }
  .catnav-wrap.has-nav.at-end .catnav-next{ display:none; }
}

/* ===== v97: listado de productos sin foto (formato lista/acordeón) ===== */
.plist-acc{margin-top:.5rem}
.plist-cat{border:1px solid #e9ecef;border-radius:14px;background:#fff;margin-bottom:.6rem;overflow:hidden}
.plist-cat-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  background:transparent;border:0;padding:.85rem 1rem;font-weight:700;text-transform:capitalize;
  font-size:1.05rem;color:#212529}
.plist-chev{transition:transform .2s ease;color:#6c757d}
.plist-cat.open .plist-chev{transform:rotate(180deg)}
.plist-cat-body{display:none;padding:0 .35rem .35rem}
.plist-cat.open .plist-cat-body{display:block}
.plist-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.6rem .75rem;border-top:1px solid #f1f3f5}
.plist-flat .plist-item:first-child{border-top:0}
.plist-flat{background:#fff;border:1px solid #e9ecef;border-radius:14px;padding:.25rem .35rem}
.plist-info{min-width:0}
.plist-name{display:block;font-weight:600;color:#212529;text-decoration:none;line-height:1.2}
.plist-name:hover{text-decoration:underline}
.plist-price{font-size:.95rem;color:#495057;margin-top:.15rem}
.plist-add{white-space:nowrap;border-radius:10px;font-weight:600}
/* fila completa: codigo | nombre | precio | boton chico */
.plist-row{gap:.5rem;flex-wrap:nowrap}
.plist-row .plist-cod{flex:0 0 auto;font-size:.78rem;color:#adb5bd;font-variant-numeric:tabular-nums}
.plist-row .plist-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plist-row .plist-price{flex:0 0 auto;margin-top:0;font-weight:700;color:#212529;white-space:nowrap}
.plist-row .plist-add{flex:0 0 auto;font-size:.72rem;padding:.2rem .45rem;line-height:1.1}
@media (max-width:480px){
  .plist-row .plist-cod{display:none}
  .plist-row .plist-price{font-size:.9rem}
}

/* ===== v99: ajustes listado sin foto ===== */
.plist-row .plist-add{ width:auto !important; margin-top:0 !important; flex:0 0 auto; }
.plist-row .plist-name{ flex:1 1 auto; min-width:0; }
.plist-cat-head{ justify-content:center; position:relative; text-align:center;
  background:color-mix(in srgb, var(--brand) 12%, #fff); color:var(--brand); border-radius:12px; }
.plist-cat-head .plist-chev{ position:absolute; right:1rem; top:50%; transform:translateY(-50%); color:inherit; }
.plist-cat.open .plist-cat-head{ background:var(--brand); color:#fff; }
.plist-cat.open .plist-cat-head .plist-chev{ transform:translateY(-50%) rotate(180deg); }

/* ===== v100: categorías color secundario / primario + filas con cantidad ===== */
.plist-cat-head{ background:var(--brand-2); color:#fff; }
.plist-cat.open .plist-cat-head{ background:var(--brand); color:#fff; }
/* Botones especiales: Destacados (amarillo) y Ofertas (rojizo) */
.plist-cat-destacados .plist-cat-head{ background:#f4c20d; color:#3d2f00; }
.plist-cat-destacados.open .plist-cat-head{ background:#e0ac00; color:#3d2f00; }
.plist-cat-ofertas .plist-cat-head{ background:#d9534f; color:#fff; }
.plist-cat-ofertas.open .plist-cat-head{ background:#b52b27; color:#fff; }
@media (min-width:768px){
  .plist-cat-head{ padding:.6rem 1rem; font-size:1rem; }
  .plist-cat-head .plist-chev{ right:.7rem; }
  /* v101: categorías y filas al 75% del ancho, alineadas entre sí */
  .plist-acc .plist-cat,
  .plist-acc.plist-flat{ width:75%; max-width:75%; margin-left:auto; margin-right:auto; }
}
.plist-name{ cursor:default; }
.plist-name:hover{ text-decoration:none; }
/* control de cantidad */
.plist-qty{ display:inline-flex; align-items:center; gap:.15rem; flex:0 0 auto; }
.plist-qty-btn{ width:26px; height:26px; line-height:1; border:1px solid #dee2e6; background:#f8f9fa;
  color:#495057; border-radius:8px; font-weight:700; padding:0; }
.plist-qty-btn:hover{ background:#e9ecef; }
.plist-qty-inp{ width:42px; height:26px; text-align:center; border:1px solid #dee2e6; border-radius:8px;
  font-size:.85rem; padding:0 .15rem; }
.plist-qty-inp::-webkit-outer-spin-button,.plist-qty-inp::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.plist-qty-inp{ -moz-appearance:textfield; }
/* móvil: 2 renglones (descripción arriba, precio + cantidad + agregar abajo) */
@media (max-width:767.98px){
  .plist-row{ flex-wrap:wrap; row-gap:.35rem; }
  .plist-row .plist-name{ flex:1 1 100%; order:1; white-space:normal; overflow:visible; text-overflow:clip;
    font-weight:400; font-size:.95rem; }
  .plist-row .plist-cod{ display:none; }
  .plist-row .plist-price{ order:2; flex:1 1 auto; font-size:.95rem; }
  .plist-row .plist-qty{ order:3; }
  .plist-row .plist-add{ order:4; font-size:.78rem; padding:.25rem .5rem; }
}

/* ===== Carrito: resumen de totales en grilla ===== */
.cart-summary{
  background:#fff; border:1px solid #e9ecef; border-radius:14px;
  padding:.85rem 1rem; box-shadow:0 2px 8px rgba(0,0,0,.05); text-align:left;
}
.cart-summary .cs-row{
  display:grid; grid-template-columns:1fr auto; align-items:center;
  gap:.5rem; padding:.35rem 0; font-size:.95rem; color:#495057;
}
.cart-summary .cs-row + .cs-row{ border-top:1px dashed #e9ecef; }
.cart-summary .cs-val{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cart-summary .cs-total{
  margin-top:.35rem; padding-top:.6rem; border-top:2px solid #e9ecef;
  font-size:1.15rem; font-weight:700; color:#212529;
}
.cart-summary .cs-total .cs-val{ font-size:1.3rem; color:var(--brand, #6c5ce7); }
.cart-summary .cs-hint{ font-size:.82rem; margin-bottom:.35rem; }

/* ===== Carrito sin fotos: descripción en un renglón, datos debajo ===== */
.cart-nofoto .cart-item{ display:block; padding:.7rem .85rem; }
.cart-nofoto .cart-item img{ display:none !important; }
.cart-nofoto .cart-item .ci-top{ display:block; }
.cart-nofoto .cart-item .ci-desc{
  display:block; width:100%; font-weight:500; font-size:.98rem; line-height:1.25;
  color:#212529; margin-bottom:.35rem;
}
.cart-nofoto .cart-item .ci-cod{ font-size:.78rem; color:#868e96; }
.cart-nofoto .cart-item .ci-grid{
  display:grid; grid-template-columns:repeat(3, 1fr) auto; align-items:end; gap:.4rem;
  border-top:1px solid #f1f3f5; padding-top:.45rem;
}
.cart-nofoto .cart-item .ci-grid .ci-cell{ min-width:0; }
.cart-nofoto .cart-item .ci-grid .ci-lbl{
  display:block; font-size:.72rem; color:#868e96; text-transform:uppercase; letter-spacing:.03em;
}
.cart-nofoto .cart-item .ci-grid .ci-num{ font-weight:600; color:#212529; font-size:.95rem; }
.cart-nofoto .cart-item .ci-grid .form-control{ height:32px; width:100% !important; padding:.2rem .4rem; }
.cart-nofoto .cart-item .ci-grid .btn{ padding:.25rem .5rem; }
.cart-nofoto .cart-item .ci-obs{ margin-top:.45rem; }

/* Grilla de datos del item en el carrito móvil (con y sin foto) */
.cart-mobile .cart-item .ci-grid{
  display:grid; grid-template-columns:repeat(3, 1fr) auto; align-items:end; gap:.4rem;
  border-top:1px solid #f1f3f5; padding-top:.45rem; margin-top:.5rem;
}
.cart-mobile .cart-item .ci-grid .ci-lbl{
  display:block; font-size:.72rem; color:#868e96; text-transform:uppercase; letter-spacing:.03em;
}
.cart-mobile .cart-item .ci-grid .ci-num{ font-weight:600; color:#212529; font-size:.95rem; }
.cart-mobile .cart-item .ci-grid .form-control{ height:32px; width:100% !important; padding:.2rem .4rem; }
.cart-mobile .cart-item .ci-grid .btn{ padding:.25rem .5rem; }
.cart-nofoto .cart-item .ci-unit{ display:none !important; }
