/* ================================
   PARFUM – FRESH MINIMAL LIGHT
================================ */

:root{
  --bg: #f4f6f9;
  --surface: #ffffff;
  --primary: #111827;
  --accent: #0ea5e9;
  --accent-hover: #0284c7;
  --border: #e5e7eb;
  --text: #111827;
  --text-muted: #6b7280;
  --success: #16a34a;
  --danger: #dc2626;
  --radius: 16px;

  --navy-om: #0f1c34;
  --navy-om-2: #162746;
  --navy-om-3: #1d3157;
  --navy-om-soft: rgba(15, 28, 52, .08);
  --navy-om-line: rgba(15, 28, 52, .14);
  --navy-om-text: #f8f4ee;
  --navy-om-muted: rgba(248, 244, 238, .76);
}

/* ===== Base ===== */

body.app-body{
  background: var(--bg);
  color: var(--text);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a{
  color: var(--primary);
  text-decoration: none;
}

.text-muted{
  color: var(--text-muted) !important;
}

/* ===== Topbar ===== */

.topbar{
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 50;
}

.brand{
  font-weight: 800;
  font-size: 1.2rem;
  letter-spacing: .5px;
}

.toplink{
  padding: .45rem .75rem;
  border-radius: 12px;
  font-weight: 500;
  transition: .2s ease;
}

.toplink:hover{
  background: var(--bg);
}

/* ===== Cards ===== */

.card{
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
}

.glass{
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 2px 12px rgba(0,0,0,.05);
  border-radius: var(--radius);
}

/* ===== Buttons ===== */

.btn{
  border-radius: 12px;
  font-weight: 600;
}

.btn-primary{
  background: var(--primary);
  border: none;
}

.btn-primary:hover{
  background: #000;
}

.btn-outline-light{
  border: 1px solid var(--border);
  color: var(--text);
  background: var(--surface);
}

.btn-outline-light:hover{
  background: var(--bg);
}

/* ===== Forms ===== */

.form-control,
.form-select{
  border-radius: 12px;
  border: 1px solid var(--border);
  padding: .6rem .75rem;
}

.form-control:focus,
.form-select:focus{
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(14,165,233,.15);
}

/* ===== Mobile Footer ===== */

.mobile-footer{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--surface);
  border-top: 1px solid var(--border);
  display: grid;
  grid-template-columns: repeat(var(--mf-cols, 4), 1fr);
  padding: .35rem 0;
  z-index: 1030;
  backdrop-filter: blur(10px);
}

.mobile-footer-spacer{
  height: 70px;
}

.mf-item{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 62px;
  font-size: 12px;
  color: var(--text-muted);
  transition: .2s ease;
  text-decoration: none;
}

.mf-btn{
  background: transparent;
  border: 0;
  width: 100%;
  padding: 0;
}

.mf-btn:active{
  transform: translateY(1px);
}

.mf-item:hover{
  color: var(--primary);
}

.mf-ico{
  font-size: 18px;
  margin-bottom: 2px;
  line-height: 1;
}

.mf-txt{
  line-height: 1;
}

/* ===== Admin Layout ===== */

.admin-shell{
  min-height: calc(100vh - 56px);
}

.admin-overlay{
  position: fixed;
  inset: 0;
  background: rgba(9, 15, 27, .42);
  z-index: 1035;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease;
}

.admin-side{
  position: fixed;
  top: 0;
  left: 0;
  width: 290px;
  max-width: 88vw;
  height: 100vh;
  z-index: 1040;
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, #13233f, #0f1c34);
  border-right: 1px solid rgba(255,255,255,.08);
  color: rgba(248,244,238,.84);
  box-shadow: 0 18px 40px rgba(15,28,52,.18);
  transform: translateX(0);
  transition: transform .25s ease, box-shadow .25s ease;
  overflow: hidden;
}

.admin-side-scroll{
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 14px 12px 18px;
}

.admin-main{
  min-width: 0;
  margin-left: 290px;
  padding: 1rem;
  transition: margin-left .25s ease, padding .25s ease;
}

/* ===== Header interno del drawer/sidebar ===== */

.admin-drawer-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  min-height: 64px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.admin-drawer-title{
  font-weight: 800;
  letter-spacing: .2px;
  color: #f8f4ee;
}

.admin-drawer-actions{
  display: flex;
  align-items: center;
  gap: .5rem;
}

.admin-drawer-toggle,
.admin-drawer-close,
.admin-topbar-menu-btn{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: #fff;
  border-radius: 12px;
  min-width: 40px;
  height: 40px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: .2s ease;
}

.admin-drawer-toggle:hover,
.admin-drawer-close:hover,
.admin-topbar-menu-btn:hover{
  background: rgba(255,255,255,.12);
}

.admin-topbar-menu-btn{
  border-color: var(--panel-border);
  background: #fff;
  color: var(--panel-primary);
}

.admin-topbar-menu-btn{
  border-color: var(--panel-border);
  background: #fff;
  color: var(--panel-primary);
}

/* ===== Buscador del menú sidebar ===== */
.admin-menu-search-wrap{
  margin-bottom: 16px;
}

.admin-menu-search-label{
  display: block;
  margin-bottom: 6px;
  padding: 0 2px;
  font-size: .75rem;
  font-weight: 700;
  color: rgba(248,244,238,.70);
  letter-spacing: .03em;
}

.admin-menu-search-box{
  position: relative;
  display: flex;
  align-items: center;
}

.admin-menu-search-ico{
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(248,244,238,.56);
  font-size: .95rem;
  pointer-events: none;
}

.admin-menu-search-input{
  width: 100%;
  min-height: 44px;
  padding: .72rem 40px .72rem 36px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.08);
  color: #f8f4ee;
  outline: none;
  transition: .2s ease;
}

.admin-menu-search-input::placeholder{
  color: rgba(248,244,238,.52);
}

.admin-menu-search-input:focus{
  border-color: rgba(198,169,107,.42);
  background: rgba(255,255,255,.11);
  box-shadow: 0 0 0 3px rgba(198,169,107,.12);
}

.admin-menu-search-clear{
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: .2s ease;
}

.admin-menu-search-clear:hover{
  background: rgba(255,255,255,.14);
}

.admin-menu-search-empty{
  margin-bottom: 14px;
  padding: .8rem .85rem;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  border: 1px dashed rgba(255,255,255,.12);
  color: rgba(248,244,238,.76);
  font-size: .9rem;
}

/* ===== Secciones del menú ===== */
.admin-menu-section-title{
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  padding: .42rem .75rem;
  margin-bottom: 10px;

  border-radius: 999px;
  background: linear-gradient(180deg, rgba(198,169,107,.16), rgba(198,169,107,.08));
  border: 1px solid rgba(198,169,107,.16);

  color: #e7d1a0;
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  line-height: 1;
}

/* ===== Secciones del menú ===== */

.admin-menu-section-title{
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  padding: .42rem .75rem;
  margin-bottom: 10px;

  border-radius: 999px;
  background: linear-gradient(180deg, rgba(198,169,107,.16), rgba(198,169,107,.08));
  border: 1px solid rgba(198,169,107,.16);

  color: #e7d1a0;
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  line-height: 1;
}

.admin-menu-group{
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.admin-link{
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: .72rem .85rem;
  border-radius: 14px;
  color: rgba(248,244,238,.78);
  font-weight: 600;
  transition: background .2s ease, color .2s ease, transform .2s ease, border-color .2s ease;
  border: 1px solid transparent;
  margin-bottom: 0;
}

.admin-link:hover{
  background: rgba(255,255,255,.08);
  color: #ffffff;
  transform: translateX(2px);
}

.admin-link.active{
  background: rgba(198,169,107,.16);
  color: #f8f4ee;
  border: 1px solid rgba(198,169,107,.28);
  font-weight: 700;
}

.admin-link-text{
  display: block;
  line-height: 1.2;
}

/* ===== Estado colapsado en desktop ===== */

body.admin-sidebar-collapsed .admin-side{
  transform: translateX(-100%);
}

body.admin-sidebar-collapsed .admin-main{
  margin-left: 0;
}

/* ===== Tablet y móvil ===== */

@media (max-width: 991.98px){
  .admin-side{
    width: min(320px, 88vw);
    transform: translateX(-110%);
    box-shadow: 0 18px 40px rgba(15,28,52,.28);
  }

  .admin-main{
    margin-left: 0;
    grid-column: 1;
    padding: 1rem .85rem;
    font-size: 1.05rem;
  }

  body.admin-sidebar-open .admin-side{
    transform: translateX(0);
  }

  body.admin-sidebar-open .admin-overlay{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .admin-main .btn,
  .admin-main .form-control,
  .admin-main .form-select{
    font-size: 1.05rem;
    padding: .62rem .85rem;
    border-radius: 14px;
  }

  .admin-main .table{
    font-size: 1.02rem;
  }

  .admin-main .table th,
  .admin-main .table td{
    padding: .85rem .75rem;
  }

  .admin-main .card{
    border-radius: 18px;
  }

  .admin-link{
    font-size: 1.02rem;
    padding: .8rem .9rem;
  }

  #mainNav{
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 20px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(12px);
  }

  .nav-categories-menu{
    background: rgba(11, 24, 46, .82);
    border: 1px solid rgba(255,255,255,.06);
  }
}

/* ===== Desktop ===== */

@media (min-width: 992px){
  .admin-overlay{
    display: none !important;
  }

  .admin-drawer-close{
    display: none !important;
  }
}

/* ===== Responsive admin helpers ===== */

@media (max-width: 767.98px){
  .admin-page-title{ font-size: 1.35rem; }
  .admin-page-sub{ font-size: .95rem; }

  .admin-table-wrap{ display: none; }
  .admin-cardlist{ display: grid; }

  .admin-main .card-body{ padding: 14px; }
}

@media (min-width: 768px){
  .admin-cardlist{ display: none; }
  .admin-table-wrap{ display: block; }
  .admin-collapse{ display: block !important; }
}
/* ===== Cart Drawer (sidebar right) ===== */
.cart-overlay{
  position: fixed;
  inset: 0;
  background: rgba(17, 24, 39, .38);
  z-index: 2147483645;
  opacity: 0;
  visibility: hidden;
  transition: opacity .22s ease, visibility .22s ease;
}

.cart-overlay.is-open{
  opacity: 1;
  visibility: visible;
}

.cart-drawer{
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(420px, 92vw);
  max-width: 100%;
  height: 100dvh;
  background: var(--surface);
  border-left: 1px solid var(--border);
  z-index: 2147483646;
  transform: translateX(100%);
  transition: transform .22s ease;
  display: flex;
  flex-direction: column;
  box-shadow: -18px 0 40px rgba(0,0,0,.18);
  will-change: transform;
}

.cart-drawer.is-open{
  transform: translateX(0);
}

.cart-head{
  padding: 12px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  background: var(--surface);
  flex: 0 0 auto;
}

.cart-title{
  font-weight: 800;
}

.cart-body{
  padding: 12px;
  overflow: auto;
  flex: 1 1 auto;
  min-height: 0;
  -webkit-overflow-scrolling: touch;
}

.cart-foot{
  padding: 12px;
  border-top: 1px solid var(--border);
  background: var(--surface);
  flex: 0 0 auto;
}

.cart-item{
  display: flex;
  gap: 10px;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 10px;
  margin-bottom: 10px;
  background: #fff;
}

.cart-img{
  width: 56px;
  height: 56px;
  border-radius: 12px;
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex: 0 0 56px;
}

.cart-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cart-meta{
  flex: 1 1 auto;
  min-width: 0;
}

.cart-name{
  font-weight: 700;
  font-size: .95rem;
  line-height: 1.2;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.cart-line{
  font-size: .9rem;
}

.qty-row{
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 6px;
  flex-wrap: wrap;
}

.qty-row input{
  width: 70px;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 6px 8px;
}

.cart-actions{
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

@media (max-width: 767.98px){
  .cart-drawer{
    width: min(94vw, 430px);
  }
}


/* ===== POS (Fase 5) ===== */
.pos-grid{
  display:grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap:12px;
}
@media (min-width: 576px){ .pos-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px){ .pos-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px){ .pos-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.pos-card{
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 12px;
  background: rgba(255,255,255,.03);
}

.pos-cart{ max-height: 44vh; overflow:auto; padding-right: 4px; }

/* =========================
   POS Mobile First Tweaks
========================= */

/* Tipografías y controls más grandes en móvil */
@media (max-width: 767.98px){
  .container-fluid{ padding-left: 12px; padding-right: 12px; }

  /* El panel derecho se usa como Drawer (carrito) en móvil */
  #posSideCol{ display:none; }

  #posSearch, #posBarcode{
    font-size: 1.05rem;
    padding: .8rem .9rem;
  }

  #btnCamScan{
    font-size: 1.05rem;
    padding: .85rem 1rem;
    border-radius: 16px;
  }

  /* En móvil NO mostramos grid inline */
  #posGrid{ display:none !important; }

  /* Carrito más usable */
  .pos-cart{
    max-height: none;
    overflow: visible;
  }

  /* Botones del carrito más grandes */
  .pos-cart .btn{
    padding: .55rem .7rem;
    border-radius: 14px;
  }
  .pos-cart input.form-control-sm{
    height: 40px;
    font-size: 1rem;
  }

  /* Títulos más grandes */
  h1.h4{ font-size: 1.3rem; }
  h2.h5{ font-size: 1.15rem; }

  /* Productos: más legibles y táctiles */
  .pos-card{ padding: 14px; border-radius: 18px; }
  .pos-card .fw-bold{ font-size: 1.05rem; }
  .btn-pos-add{ padding: .55rem .8rem; border-radius: 14px; font-size: 1.15rem; line-height: 1; }
}

/* Drawer/Overlay */
.pos-overlay{
  position: fixed; inset: 0;
  background: rgba(0,0,0,.35);
  z-index: 9998;
}
.pos-drawer{
  position: fixed;
  left: 0; right: 0; bottom: 0;
  height: 85vh;
  background: var(--surface);
  border-top-left-radius: 18px;
  border-top-right-radius: 18px;
  border: 1px solid var(--border);
  z-index: 9999;
  display: flex;
  flex-direction: column;
}
.pos-drawer-head{
  padding: 12px 12px;
  border-bottom: 1px solid var(--border);
  display:flex; align-items:center; justify-content:space-between;
}
.pos-drawer-body{
  padding: 12px;
  overflow:auto;
  flex: 1;
}

/* Mobile actions block */
.pos-mobile-actions{
  width: 100%;
  margin-top: 6px;
}
/* =========================
   Admin UI helpers (Clientes/Productos)
========================= */
.admin-link.active{
  background: var(--bg);
  color: var(--primary);
  font-weight: 700;
}

.admin-page-head{
  display:flex;
  flex-wrap:wrap;
  gap: .75rem;
  align-items:flex-end;
  justify-content:space-between;
  margin-bottom: .75rem;
}
.admin-page-title{ font-weight: 900; margin:0; }
.admin-page-sub{ color: var(--text-muted); font-size: .9rem; }

.admin-filters{
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--surface);
  padding: .75rem;
}

.admin-filters-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: .75rem;
}

.admin-collapse{ display:none; }
.admin-collapse.is-open{ display:block; }

/* Listado tipo cards para móvil */
.admin-cardlist{ display:grid; gap: 10px; }
.admin-rowcard{
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--surface);
  padding: 12px;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
}
.admin-rowcard-top{ display:flex; align-items:flex-start; justify-content:space-between; gap: 10px; }
.admin-rowcard-title{ font-weight: 800; font-size: 1.05rem; margin:0; }
.admin-rowcard-meta{ color: var(--text-muted); font-size: .9rem; }
.admin-kv{ display:grid; grid-template-columns: 110px 1fr; gap: 6px 10px; margin-top: 10px; }
.admin-k{ color: var(--text-muted); font-size: .9rem; }
.admin-v{ font-weight: 600; font-size: .95rem; }

.admin-badges{ display:flex; flex-wrap:wrap; gap: 6px; }

/* Productos: acordeón simple */
.prod-actions{ display:flex; gap: 8px; flex-wrap:wrap; align-items:center; justify-content:flex-start; }
.prod-actions .btn{ white-space: nowrap; }

@media (min-width: 768px){
  .prod-actions{ justify-content:flex-end; }
}
.prod-panel{ border-top: 1px solid var(--border); margin-top: 10px; padding-top: 10px; }



/* Admin Productos: evitar que texto se salga de la card (móvil) */
.admin-products .prod-card{ width:100%; }
.admin-products .prod-title,
.admin-products .prod-meta{
  overflow:hidden;
  text-overflow: ellipsis;
  word-break: break-word;
  overflow-wrap: anywhere;
  min-width: 0;
}

/* En móvil permitimos 2 líneas antes de truncar (mejor lectura) */
@media (max-width: 767.98px){
  .admin-products .prod-title,
  .admin-products .prod-meta{
    white-space: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .admin-products .prod-meta{ -webkit-line-clamp: 3; }
}

@media (max-width: 767.98px){
  .admin-page-title{ font-size: 1.35rem; }
  .admin-page-sub{ font-size: .95rem; }

  /* Oculta tablas en móvil cuando hay cardlist */
  .admin-table-wrap{ display:none; }
  .admin-cardlist{ display:grid; }

  /* Forms en cards */
  .admin-main .card-body{ padding: 14px; }
}

@media (min-width: 768px){
  .admin-cardlist{ display:none; }
  .admin-table-wrap{ display:block; }
}
@media (min-width: 768px){
  .admin-collapse{ display:block !important; }
}


/* ================================
   POS (Admin) – grid + drawers responsive
   Nota: evita depender de Bootstrap JS.
================================ */

/* Grid de productos */
.pos-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}
@media (min-width: 576px){
  .pos-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 992px){
  .pos-grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1200px){
  .pos-grid{ grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

.pos-card{
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--surface);
  padding: .75rem;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease;
  min-height: 110px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.pos-card:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(0,0,0,.08);
}
.pos-card .pos-name{ font-weight: 800; font-size: .95rem; line-height: 1.15; }
.pos-card .pos-meta{ font-size: .85rem; color: var(--text-muted); }
.pos-card .pos-price{ font-weight: 900; margin-top:.35rem; }

/* Lista de productos (preferida en POS) */
.pos-list{
  display:flex;
  flex-direction:column;
  gap:.6rem;
}
.pos-item{
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--surface);
  padding: .65rem;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
  display:flex;
  gap:.65rem;
}
.pos-thumb{
  width:56px;
  height:56px;
  border-radius: 16px;
  background: rgba(0,0,0,.06);
  overflow:hidden;
  flex: 0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pos-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.pos-main{ min-width:0; flex:1; }
.pos-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:.6rem; }
.pos-title{ font-weight: 900; line-height: 1.15; }
.pos-meta{ color: var(--text-muted); font-size:.85rem; }
.pos-right{ text-align:right; flex:0 0 auto; }
.pos-price{ font-weight: 900; }
.pos-actions{ display:flex; gap:.4rem; align-items:center; justify-content:flex-end; margin-top:.35rem; }
.pos-decants{ margin-top:.4rem; display:flex; flex-wrap:wrap; gap:.35rem; }
.pos-decants .btn{ padding:.35rem .55rem; border-radius: 999px; }

@media (max-width: 767.98px){
  .pos-thumb{ width:62px; height:62px; border-radius: 18px; }
  .pos-title{ font-size: .98rem; }
}

/* Carrito */
.pos-cart .pos-row{
  display:flex;
  gap:.5rem;
  align-items:flex-start;
  justify-content:space-between;
  padding:.5rem 0;
  border-bottom:1px dashed var(--border);
}
.pos-cart .pos-row:last-child{ border-bottom:none; }
.pos-cart .pos-row .pos-left{ min-width:0; }
.pos-cart .pos-row .pos-title{ font-weight:800; }
.pos-cart .pos-row .pos-sub{ color: var(--text-muted); font-size:.85rem; }
.pos-cart .pos-row .pos-qty{
  display:flex;
  gap:.35rem;
  align-items:center;
  flex-wrap:nowrap;
}
.pos-cart .pos-row .pos-qty input{
  width:64px;
  text-align:center;
}

/* Drawers móviles (productos/carrito) */
.pos-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 1040;
}
.pos-drawer{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: 88vh;
  background: var(--surface);
  border-top-left-radius: 18px;
  border-top-right-radius: 18px;
  z-index: 1041;
  display:flex;
  flex-direction:column;
  box-shadow: 0 -10px 30px rgba(0,0,0,.18);
}
.pos-drawer-head{
  padding: .75rem .9rem;
  border-bottom: 1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
}
.pos-drawer-body{
  padding: .75rem .9rem;
  overflow:auto;
  -webkit-overflow-scrolling: touch;
}

/* En desktop: drawers no interfieren */
@media (min-width: 768px){
  .pos-overlay, .pos-drawer{ display:none !important; }
}

/* Inputs en móvil: evita zoom iOS */
@media (max-width: 767.98px){
  input, select, textarea{ font-size: 16px; }
}

/* ===== Admin: Catálogos PDF ===== */
.catalog-pdf-card .bg-light-subtle{
  background: rgba(13,110,253,.04) !important; /* suave, elegante */
}

.catalog-pdf-actions{
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(0,0,0,.02);
  border: 1px solid rgba(0,0,0,.06);
}

/* Mejor “tap area” en móvil */
@media (max-width: 576px){
  .catalog-pdf-actions{
    position: sticky;
    bottom: 12px;
    z-index: 5;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
  }
  .catalog-pdf-actions .btn{
    width: 100%;
  }
}
/* ===== Admin: Productos (pro) ===== */

.admin-products-page{
  --ap-muted: rgba(17,24,39,.6);
}

.ap-topbar{
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.72));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1rem;
  box-shadow: 0 8px 26px rgba(0,0,0,.05);
  backdrop-filter: blur(10px);
}

.ap-topbar-inner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.ap-title{ display:flex; align-items:center; gap:.9rem; }

.ap-badge{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: rgba(14,165,233,.12);
  color: var(--accent-hover);
  border: 1px solid rgba(14,165,233,.25);
  display:grid;
  place-items:center;
}

.ap-badge svg{ width:22px; height:22px; }

.ap-h1{ font-size: 1.2rem; font-weight: 900; margin:0; letter-spacing:.2px; }
.ap-sub{ color: var(--text-muted); font-size: .92rem; }

.ap-actions{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }

.ap-pill{
  border: 1px solid var(--border);
  background: rgba(255,255,255,.85);
  border-radius: 999px;
  padding: .35rem .6rem;
  display:flex;
  align-items:baseline;
  gap: .5rem;
}
.ap-pill-k{ font-size:.75rem; color: var(--text-muted); }
.ap-pill-v{ font-weight: 900; }

.ap-btn-primary{
  border-radius: 14px;
  padding: .55rem .9rem;
  font-weight: 700;
}

.ap-filters{
  margin-top: .9rem;
  display:flex;
  gap: .75rem;
  align-items:center;
  justify-content: space-between;
  flex-wrap: wrap;
}

.ap-search{ flex: 1 1 560px; min-width: 260px; }

.ap-searchbox{
  position: relative;
  display:flex;
  gap: .5rem;
  align-items:center;
}

.ap-search-ico{
  position:absolute;
  left: .85rem;
  color: rgba(17,24,39,.55);
  pointer-events:none;
}
.ap-search-ico svg{ width:18px; height:18px; }

.ap-search-input{
  padding-left: 2.55rem;
  border-radius: 14px;
}

.ap-search-btn{
  border-radius: 14px;
  font-weight: 700;
}

.ap-search-reset{
  border-radius: 14px;
}

.ap-filterbar{
  flex: 0 0 auto;
}

.ap-field .ap-label{ font-size:.78rem; color: var(--text-muted); margin-bottom:.25rem; display:block; }
.ap-check{ margin-bottom: .1rem; padding-top: 1.55rem; }

.ap-grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap: .9rem;
}

.ap-card{ grid-column: span 12; overflow:hidden; }

@media (min-width: 768px){
  .ap-card{ grid-column: span 6; }
}

@media (min-width: 1200px){
  .ap-card{ grid-column: span 4; }
}

.ap-card-body{
  display:flex;
  gap: .9rem;
  padding: .9rem;
}

.ap-thumb{
  width: 74px;
  height: 74px;
  border-radius: 16px;
  border: 1px solid var(--border);
  overflow:hidden;
  background: #fff;
  display:grid;
  place-items:center;
  flex: 0 0 auto;
}

.ap-thumb img{ width:100%; height:100%; object-fit:cover; }

.ap-thumb-ph{
  width: 100%;
  height: 100%;
  display:grid;
  place-items:center;
  color: rgba(17,24,39,.35);
  background: linear-gradient(135deg, rgba(17,24,39,.03), rgba(17,24,39,.06));
  font-weight: 800;
  letter-spacing: .2px;
}

.ap-info{ flex: 1 1 auto; min-width: 0; }

.ap-row1{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: .75rem;
}

.ap-name{
  font-weight: 900;
  letter-spacing: .15px;
  line-height: 1.15;
  overflow:hidden;
  text-overflow: ellipsis;
  display:-webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.ap-actions-inline{ display:flex; gap:.35rem; }

.ap-iconbtn{
  border-radius: 12px;
  width: 40px;
  height: 40px;
  padding: 0;
  display:grid;
  place-items:center;
  background: rgba(17,24,39,.03);
}

.ap-iconbtn svg{ width:18px; height:18px; opacity:.92; }
.ap-iconbtn:hover{ background: rgba(17,24,39,.06); }
.ap-iconbtn:focus{ box-shadow: 0 0 0 .2rem rgba(13,110,253,.15); }

@media (max-width: 575.98px){
  .ap-iconbtn{ width: 44px; height: 44px; }
  .ap-iconbtn svg{ width:20px; height:20px; }
}

.ap-meta{
  margin-top: .25rem;
  color: var(--text-muted);
  font-size: .84rem;
  display:flex;
  flex-wrap:wrap;
  gap: .4rem;
  align-items:center;
}
.ap-dot{ opacity:.55; }

.ap-badges{
  margin-top: .55rem;
  display:flex;
  flex-wrap:wrap;
  gap: .35rem;
}

.ap-form-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: .9rem;
}

@media (min-width: 992px){
  .ap-form-grid{ grid-template-columns: 1.6fr .9fr; }
}

.ap-aside-card{
  border: 1px dashed rgba(17,24,39,.18);
  border-radius: 16px;
  padding: .85rem;
  background: rgba(17,24,39,.02);
}
.ap-aside-title{ font-weight: 900; margin-bottom: .25rem; }

.ap-form-main{ min-width: 0; }
.ap-form-aside{ min-width: 0; }

.ap-aside-img{
  border-radius: 16px;
  overflow:hidden;
  border: 1px solid var(--border);
  background:#fff;
  display:grid;
  place-items:center;
  min-height: 170px;
}
.ap-aside-img img{ width:100%; height:100%; object-fit:cover; }
.ap-aside-ph{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color: rgba(17,24,39,.55);
  font-weight: 800;
}
.ap-aside-foot{ margin-top: .5rem; }

.ap-accordion .accordion-item{
  border-radius: 16px;
  overflow:hidden;
  border: 1px solid var(--border);
}
.ap-accordion .accordion-button{
  font-weight: 800;
}

.ap-decant-row{
  display:grid;
  grid-template-columns: 90px 1fr 1fr 130px 44px;
  gap: .5rem;
  align-items:end;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: .7rem;
  background: rgba(255,255,255,.9);
}

@media (max-width: 767.98px){
  .ap-decant-row{ grid-template-columns: 1fr 1fr; }
  .ap-decant-row > div:last-child{ grid-column: span 2; }
}

.hero-rating-box{
  margin-top:1rem;
  display:inline-flex;
  flex-direction:column;
  gap:.35rem;
  padding:.8rem 1rem;
  border-radius:18px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(185,151,91,.18);
  box-shadow:0 12px 30px rgba(44,33,22,.08);
  backdrop-filter:blur(8px);
}

.hero-rating-stars{
  font-size:1rem;
  letter-spacing:.08rem;
  color:#c59d33;
  line-height:1;
}

.hero-rating-meta{
  display:flex;
  align-items:center;
  gap:.4rem;
  flex-wrap:wrap;
  color:var(--om-dark);
}

.hero-rating-meta strong{
  font-size:1.05rem;
  font-weight:800;
}

.hero-rating-meta small{
  color:var(--om-muted);
  width:100%;
}

.ap-edit-hero{
  display:flex;
  gap: .9rem;
  padding: .7rem;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(17,24,39,.02);
  margin-bottom: .9rem;
}

.ap-edit-thumb{
  width: 86px;
  height: 86px;
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid var(--border);
  background:#fff;
  display:grid;
  place-items:center;
  flex: 0 0 auto;
}

.ap-edit-thumb img{ width:100%; height:100%; object-fit:cover; }

.ap-edit-hero-meta{ min-width: 0; }

.ap-slug{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: .9rem;
  background: rgba(255,255,255,.85);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: .35rem .5rem;
  color: rgba(17,24,39,.8);
  overflow:hidden;
  text-overflow: ellipsis;
}

/* Scan modal */
.ap-scan-wrap{
  position: relative;
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid var(--border);
  background: #000;
}

.ap-scan-video{
  width: 100%;
  height: min(56vh, 520px);
  object-fit: cover;
  display:block;
}

.ap-scan-overlay{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at center, rgba(0,0,0,0) 0 34%, rgba(0,0,0,.35) 35% 100%),
    linear-gradient(0deg, rgba(255,255,255,.14) 2px, transparent 2px) 0 0/100% 48px;
  pointer-events:none;
}

.ap-zoom{
  display:flex;
  align-items:center;
  gap:.5rem;
}

#scanZoom{
  width: 180px;
}

.barcode-scan-btn svg{ width:18px; height:18px; }

/* POS mobile scanbar */
.pos-scanbar { width: 100%; }
.pos-scanbar-row{
  display: flex;
  gap: .5rem;
  align-items: center;
}
.pos-field{ flex: 1; min-width: 0; }
.pos-iconbtn{
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 12px;
}
.pos-mobile-actions .pos-actions2{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem;
}
.pos-actionbtn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:.85rem .75rem;
  border-radius: 14px;
  font-weight: 800;
}
.pos-action-ico{ font-size: 18px; line-height: 1; }

:root{
  --om-bg:#f7f2ea;
  --om-surface:#fffaf4;
  --om-card:#fffdf9;
  --om-text:#1f1a17;
  --om-muted:#7b6f66;
  --om-line:#e7ddd1;
  --om-dark:#2d241e;
  --om-accent:#b9975b;
  --om-shadow:0 18px 40px rgba(44,33,22,.08);
  --om-radius:24px;
}

body.front-old-money{
  background:linear-gradient(180deg,#fbf7f1 0%, #f4ede4 100%);
  color:var(--om-text);
}

.site-header,
.topbar,
.navbar,
header.sticky-top,
header.fixed-top,
.navbar.fixed-top,
.navbar.sticky-top{
  z-index: 1030;
}

.site-header{
  background: linear-gradient(180deg, rgba(15,28,52,.96), rgba(18,35,63,.92));
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 12px 28px rgba(7, 15, 29, .18);
}

.top-strip{
  border-bottom: 1px solid rgba(255,255,255,.08);
  color: var(--navy-om-muted);
  background: rgba(255,255,255,.02);
}

.site-logo{
  width:52px;
  height:52px;
  object-fit:cover;
  border-radius:10%;
  box-shadow:var(--om-shadow);
  border:1px solid rgba(185,151,91,.14);
  background:#fff;
  display:block;
}

.brand-name{
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--navy-om-text);
  line-height: 1.1;
}

.navbar .nav-link{
  color: var(--navy-om-text);
  font-weight: 500;
  padding: .7rem 1rem;
  border-radius: 999px;
  transition: all .18s ease;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus{
  color: #ffffff;
  background: rgba(255,255,255,.10);
}

.navbar .dropdown-toggle::after{
  margin-left:.45rem;
  vertical-align:.15em;
}

.nav-categories-menu{
  min-width: 260px;
  border-radius: 18px;
  padding: .65rem;
  background: rgba(19, 35, 63, .98);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 18px 45px rgba(7,15,29,.28);
}

.nav-categories-menu .dropdown-item{
  border-radius: 12px;
  padding: .7rem .85rem;
  color: var(--navy-om-text);
  transition: all .18s ease;
}

.nav-categories-menu .dropdown-item:hover,
.nav-categories-menu .dropdown-item:focus{
  background: rgba(255,255,255,.08);
  color: #ffffff;
}

.nav-categories-menu .dropdown-item-text{
  padding: .65rem .85rem;
  color: var(--navy-om-muted);
}
.header-search{
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  min-width: 220px;
  background: rgba(255,255,255,.10);
  color: #ffffff;
  min-height: 40px;
}

.header-search:focus{
  border-color: rgba(255,255,255,.24);
  box-shadow: 0 0 0 .2rem rgba(255,255,255,.08);
  background: rgba(255,255,255,.14);
  color: #ffffff;
}

.header-search::placeholder{
  color: rgba(255,255,255,.70);
}

.btn-header-search{
  border-radius: 999px;
  background: #d6b27a;
  color: #0f1c34;
  border: none;
  min-height: 40px;
  padding: 0 1rem;
  font-weight: 700;
}

.btn-header-search:hover,
.btn-header-search:focus{
  background: #e2c08d;
  color: #0f1c34;
}

.hero-old-money{
  padding-top:1rem;
}

.hero-kicker,
.section-kicker{
  display:inline-block;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--om-accent);
  font-weight:700;
}

.hero-title,
.section-title{
  font-size:clamp(2rem,4vw,3.8rem);
  line-height:1.04;
  color:var(--om-dark);
  font-weight:700;
}

.hero-text{
  color:var(--om-muted);
  font-size:1.03rem;
  max-width:700px;
}

.hero-card{
  min-height:420px;
  border-radius:36px;
  background:
    radial-gradient(circle at top right, rgba(185,151,91,.18), transparent 32%),
    linear-gradient(135deg,#f8f1e7,#efe3d4 55%,#fdfaf6);
  box-shadow:var(--om-shadow);
  border:1px solid rgba(185,151,91,.14);
  display:flex;
  align-items:end;
  padding:1.4rem;
}

.hero-card-inner{
  background:rgba(255,255,255,.68);
  border:1px solid rgba(185,151,91,.15);
  border-radius:24px;
  padding:1.2rem 1.1rem;
  max-width:360px;
}

.hero-mini-title{
  font-size:1.15rem;
  font-weight:700;
  color:var(--om-dark);
}

.hero-mini-text{
  color:var(--om-muted);
  margin-top:.4rem;
}

.cat-card,
.trust-card,
.product-card{
  border-radius:var(--om-radius);
  background:var(--om-card);
  border:1px solid rgba(185,151,91,.12);
  box-shadow:var(--om-shadow);
}

.cat-card{
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1rem;
  text-align:center;
  color:var(--om-dark);
  font-weight:600;
  transition:.2s ease;
}

.cat-card:hover{
  transform:translateY(-2px);
  color:var(--om-dark);
}

.trust-card{
  padding:1.4rem;
}

.trust-card h3{
  font-size:1.05rem;
  margin-bottom:.55rem;
  color:var(--om-dark);
}

.trust-card p{
  color:var(--om-muted);
}

.catalog-hero{
  background:transparent;
}

.product-card{
  overflow:hidden;
}

.product-thumb{
  display:block;
  aspect-ratio:1/1;
  background:#f3ece3;
}

.product-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.thumb-empty{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--om-muted);
}

.product-body{
  padding:1rem;
}

.product-name{
  font-size:1rem;
  line-height:1.3;
  min-height:2.6em;
  margin-bottom:.75rem;
}

.product-name a{
  color:var(--om-dark);
  text-decoration:none;
}

.product-price{
  font-size:1.2rem;
  font-weight:700;
  color:var(--om-dark);
}

.product-old-price{
  font-size:.92rem;
  color:#9a8b7c;
  text-decoration:line-through;
}

.site-footer{
  background:
    linear-gradient(180deg, rgba(15,28,52,.98), rgba(18,35,63,.95));
  border-top:1px solid rgba(255,255,255,.08);
  color:var(--navy-om-text);
  box-shadow:0 -10px 30px rgba(7,15,29,.10);
}

.footer-brand-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:24px;
  padding:1.35rem 1.2rem;
  backdrop-filter:blur(10px);
  box-shadow:0 18px 38px rgba(7,15,29,.18);
}

.footer-title,
.footer-subtitle{
  color:#ffffff;
}

.footer-text{
  color:var(--navy-om-muted);
}

.footer-contact-stack{
  display:grid;
  gap:.55rem;
  color:var(--navy-om-text);
  font-size:.95rem;
}

.footer-links li{
  margin-bottom:.55rem;
}

.footer-links a{
  text-decoration:none;
  color:var(--navy-om-muted);
  transition:all .18s ease;
}

.footer-links a:hover,
.footer-links a:focus{
  color:#ffffff;
}

.footer-fb-box{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:24px;
  padding:1rem;
  min-height:100%;
  overflow:hidden;
  box-shadow:0 18px 38px rgba(7,15,29,.18);
}

.footer-fb-fallback{
  color:var(--navy-om-muted);
}

.footer-fb-box .fb-page,
.footer-fb-box span,
.footer-fb-box iframe{
  width:100% !important;
  max-width:100% !important;
}

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  color:var(--navy-om-muted);
}
@media (min-width: 992px){
  .navbar .dropdown:hover .dropdown-menu{
    display:block;
    margin-top:.35rem;
  }
}

@media (max-width: 991.98px){
  .header-search{
    min-width:100%;
  }

  .hero-card{
    min-height:280px;
  }

  .nav-search-wrap{
    margin-top:1rem;
    margin-bottom:1rem;
    width:100%;
    flex-direction:column;
    align-items:stretch !important;
  }

  .nav-search-wrap .header-search,
  .nav-search-wrap .btn-header-search{
    width:100%;
  }

  .nav-actions{
    width:100%;
    flex-direction:column;
    align-items:stretch !important;
  }

  .nav-actions .btn{
    width:100%;
  }

  .nav-categories-menu{
    min-width:100%;
    box-shadow:none;
    border:1px solid rgba(185,151,91,.10);
    padding:.45rem;
  }

  .navbar .nav-link{
    border-radius:14px;
  }
}

.hero-card{
  position:relative;
  min-height:420px;
  border-radius:36px;
  background:
    radial-gradient(circle at top right, rgba(185,151,91,.18), transparent 32%),
    linear-gradient(135deg,#f8f1e7,#efe3d4 55%,#fdfaf6);
  box-shadow:var(--om-shadow);
  border:1px solid rgba(185,151,91,.14);
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  padding:1.4rem;
}

.hero-media{
  position:absolute;
  inset:0;
  z-index:1;
}

.hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.hero-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(
    180deg,
    rgba(255,248,240,.10) 0%,
    rgba(255,248,240,.04) 32%,
    rgba(255,248,240,.55) 72%,
    rgba(255,248,240,.85) 100%
  );
}

.hero-card-inner{
  position:relative;
  z-index:3;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(185,151,91,.15);
  border-radius:24px;
  padding:1.2rem 1.1rem;
  max-width:360px;
  backdrop-filter:blur(8px);
}

.hero-mini-title{
  font-size:1.15rem;
  font-weight:700;
  color:var(--om-dark);
}

.hero-mini-text{
  color:var(--om-muted);
  margin-top:.4rem;
}

@media (max-width: 991.98px){
  .hero-card{
    min-height:280px;
  }
}

.trust-card-media{
  overflow:hidden;
  padding:0;
}

.trust-card-image{
  width:100%;
  aspect-ratio: 16 / 10;
  background:#efe6da;
  border-bottom:1px solid rgba(185,151,91,.12);
}

.trust-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.trust-card-content{
  padding:1.4rem;
}


.product-view-card{
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(255,253,249,.96), rgba(250,244,236,.98));
  border: 1px solid rgba(185,151,91,.16);
  box-shadow: 0 22px 48px rgba(44,33,22,.08);
}

.product-view-media-card{
  background:
    radial-gradient(circle at top right, rgba(185,151,91,.12), transparent 30%),
    linear-gradient(180deg, rgba(255,253,249,.98), rgba(246,238,228,.98));
}

.product-view-media{
  aspect-ratio: 1 / 1;
  border-radius: 26px;
  overflow: hidden;
  background: linear-gradient(180deg, #fbf6ef, #f1e6d8);
  border: 1px solid rgba(185,151,91,.14);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}

.product-image-modal__img{
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  transform-origin: center center;
  transition: transform .22s ease;
  user-select: none;
  -webkit-user-drag: none;
  background: #ffffff;
}

.product-view-image{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.product-view-image-empty{
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  color: var(--om-muted);
  font-weight: 700;
  letter-spacing: .02em;
}

.product-view-info-card{
  position: relative;
}

.product-view-kicker{
  display: inline-block;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--om-accent);
  font-weight: 700;
  margin-bottom: .45rem;
}

.product-view-title{
  font-size: clamp(1.45rem, 2.4vw, 2.25rem);
  line-height: 1.08;
  color: var(--om-dark);
  font-weight: 700;
  letter-spacing: .01em;
}

.product-view-stock{
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .45rem .8rem;
  border-radius: 999px;
  background: rgba(185,151,91,.10);
  color: #6b5846;
  border: 1px solid rgba(185,151,91,.16);
  font-size: .92rem;
  font-weight: 600;
}

.product-price-box{
  padding: 1rem 1.05rem;
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  border: 1px solid rgba(185,151,91,.14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
}

.product-price-main{
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  line-height: 1.05;
  font-weight: 800;
  color: var(--om-dark);
  letter-spacing: -.02em;
}

.product-price-role{
  font-size: .9rem;
  font-weight: 600;
  color: var(--om-muted);
  margin-left: .35rem;
}

.product-price-sub{
  color: #7d6e61;
  margin-top: .25rem;
  font-size: 1rem;
}

.product-price-old{
  color: #9c8d7d;
  text-decoration: line-through;
  font-size: .92rem;
  margin-top: .3rem;
  min-height: 1.2rem;
}

.product-price-labels{
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  min-height: 2rem;
}

.product-discount-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .42rem .75rem;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(185,151,91,.16), rgba(185,151,91,.10));
  border: 1px solid rgba(185,151,91,.24);
  color: #6f5735;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .03em;
  box-shadow: 0 8px 18px rgba(185,151,91,.08);
}

.product-view-description{
  color: var(--om-muted);
  font-size: 1rem;
  line-height: 1.75;
}

.product-section-title{
  font-weight: 800;
  color: var(--om-dark);
  letter-spacing: .02em;
}

.product-view-select,
.product-qty-input{
  min-height: 48px;
  border-radius: 16px;
  border: 1px solid rgba(185,151,91,.18);
  background: rgba(255,255,255,.88);
}

.product-view-select:focus,
.product-qty-input:focus{
  border-color: rgba(185,151,91,.45);
  box-shadow: 0 0 0 .2rem rgba(185,151,91,.12);
}

.product-qty-label{
  color: var(--om-dark);
  font-weight: 700;
}

.product-btn-outline{
  border-radius: 999px;
  min-height: 48px;
  padding: .78rem 1.15rem;
  border: 1px solid rgba(45,36,30,.70);
  background: transparent;
  color: var(--om-dark);
  font-weight: 700;
  transition: all .18s ease;
}

.product-btn-outline:hover,
.product-btn-outline:focus{
  background: rgba(185,151,91,.10);
  color: var(--om-dark);
  border-color: rgba(45,36,30,.90);
}

.product-btn-primary{
  border-radius: 999px;
  min-height: 48px;
  padding: .78rem 1.25rem;
  background: linear-gradient(180deg, #2f261f, #201914);
  color: #fff;
  border: 1px solid rgba(27,21,16,.95);
  font-weight: 700;
  box-shadow: 0 16px 26px rgba(32,25,20,.18);
  transition: all .18s ease;
}

.product-btn-primary:hover,
.product-btn-primary:focus{
  background: linear-gradient(180deg, #241c17, #17120f);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 18px 28px rgba(32,25,20,.22);
}

@media (max-width: 767.98px){
  .product-view-card{
    border-radius: 24px;
  }

  .product-view-media{
    border-radius: 22px;
    padding: 1rem;
  }

  .product-price-box{
    padding: .95rem;
  }

  .product-btn-outline,
  .product-btn-primary{
    width: 100%;
    justify-content: center;
  }
}

.product-view-media-wrap{
  position: relative;
}

.product-view-media{
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 26px;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid rgba(185,151,91,.14);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  cursor: zoom-in;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.75);
}

.product-view-image{
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  transition: transform .28s ease;
}

@media (hover: hover) and (pointer: fine){
  .product-view-media:hover .product-view-image{
    transform: scale(1.035);
  }
}

.product-view-zoom-hint{
  position: absolute;
  right: 14px;
  bottom: 14px;
  padding: .45rem .75rem;
  border-radius: 999px;
  background: rgba(255,250,244,.88);
  border: 1px solid rgba(185,151,91,.18);
  color: var(--om-dark);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .02em;
  box-shadow: 0 8px 18px rgba(44,33,22,.10);
  backdrop-filter: blur(8px);
}

.product-image-modal{
  position: fixed;
  inset: 0;
  z-index: 2147483646;
}

.product-image-modal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(22, 17, 13, .72);
  backdrop-filter: blur(8px);
}

.product-image-modal__dialog{
  position: relative;
  z-index: 2;
  width: min(94vw, 1080px);
  height: min(90vh, 920px);
  margin: 4vh auto 0;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,252,247,.98), rgba(246,238,228,.98));
  border: 1px solid rgba(185,151,91,.16);
  box-shadow: 0 24px 60px rgba(0,0,0,.28);
  overflow: hidden;
}

.product-image-modal__close{
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: 1px solid rgba(185,151,91,.22);
  background: rgba(255,250,244,.92);
  color: var(--om-dark);
  font-size: 1.6rem;
  line-height: 1;
  display: grid;
  place-items: center;
  box-shadow: 0 10px 20px rgba(44,33,22,.12);
}

.product-image-modal__body{
  width: 100%;
  height: 100%;
  padding: 1.2rem;
}

.product-image-modal__stage{
  width: 100%;
  height: 100%;
  border-radius: 22px;
  overflow: auto;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: zoom-in;
}

.product-image-modal__img{
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  transform-origin: center center;
  transition: transform .22s ease;
  user-select: none;
  -webkit-user-drag: none;
}

.product-image-modal__stage.is-zoomed{
  cursor: zoom-out;
}

.product-image-modal__stage.is-zoomed .product-image-modal__img{
  transform: scale(1.9);
}

@media (max-width: 767.98px){
  .product-image-modal__dialog{
    width: 100vw;
    height: 100dvh;
    margin: 0;
    border-radius: 0;
  }

  .product-image-modal__body{
    padding: .75rem;
  }

  .product-image-modal__stage{
    border-radius: 16px;
  }
}

.product-view-media-inner{
  position: relative;
  width: 100%;
  height: 100%;
  background: #ffffff;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* ============================
PRODUCT CARD
============================ */

.product-card{

background:#fff;

border:1px solid #e8e8e8;

border-radius:14px;

overflow:hidden;

display:flex;

flex-direction:column;

transition:all .25s ease;

position:relative;

}

.product-card:hover{

border-color:#0f1e3a;

transform:translateY(-4px);

box-shadow:0 10px 25px rgba(0,0,0,.08);

}

/* imagen */

.product-card-img{
  display:block;
  aspect-ratio:1/1;
  background:#f7f7f7;
  overflow:hidden;
  position:relative;
}

.product-card-img img{
width:100%;
height:100%;
object-fit:cover;
transition:transform .4s ease;
}

.product-card-badge-discount{
  position:absolute;
  top:10px;
  right:10px;
  z-index:2;
  background:#b42318;
  color:#fff;
  font-size:.78rem;
  font-weight:700;
  line-height:1;
  padding:8px 10px;
  border-radius:999px;
  box-shadow:0 8px 18px rgba(0,0,0,.18);
}

.product-card:hover img{

transform:scale(1.05);

}

.product-card-noimg{

height:100%;

display:flex;

align-items:center;

justify-content:center;

color:#999;

}

/* body */

.product-card-body{

padding:14px;

flex:1;

}

.product-card-title{

font-weight:600;

font-size:.95rem;

line-height:1.2;

margin-bottom:6px;

min-height:34px;

}

.product-card-stock{

font-size:.75rem;

color:#6c757d;

margin-bottom:8px;

}

/* precios */

.product-card-price-main{
  font-weight:700;
  font-size:1rem;
  color:#0f1e3a;
}

.product-card-price-old{
  font-size:.82rem;
  color:#8a8f98;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  margin-bottom:4px;
}

.product-card-price-sub{
  font-size:.8rem;
  color:#6c757d;
  display:flex;
  flex-direction:column;
  gap:2px;
}

.product-card-price-sub-old{
  color:#8a8f98;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}

.product-card-price-sub-current{
  color:#6c757d;
}

.product-card-price-main span{

font-size:.75rem;

color:#888;

margin-left:4px;

}

.product-card-price-sub{

font-size:.8rem;

color:#6c757d;

}

/* botón azul old money */

.product-btn-primary{

background:#0f1e3a;

border:none;

color:white;

font-weight:600;

}

.product-btn-primary:hover{

background:#1c2f57;

}

/* outline */

.product-btn-outline{

border:1px solid #0f1e3a;

color:#0f1e3a;

background:white;

}

.product-btn-outline:hover{

background:#0f1e3a;

color:white;

}

.product-card-icon-btn:hover{

background:#0f1e3a;
color:white;

}

.product-card-icon-cart{

background:#0f1e3a;
color:white;

}

.product-card-icon-cart:hover{

background:#1f3565;

}

/* ============================
   PRODUCT CARD ACTIONS
============================ */

.product-card-actions{
  margin-top: auto;
  padding: 12px 14px 14px;
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 10px;
  flex-wrap: nowrap;
}

.product-card-icon-btn{
  flex: 1 1 0;
  min-width: 0;
  min-height: 44px;
  padding: 0 14px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  border-radius: 12px;
  border: 1px solid #0f1e3a;
  background: #fff;
  color: #0f1e3a;
  font-size: .92rem;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  transition: all .25s ease;
}

.product-card-icon-btn i{
  font-size: 1rem;
  line-height: 1;
  flex: 0 0 auto;
}

.product-card-icon-btn span{
  display: inline-block;
  line-height: 1.1;
}

.product-card-icon-btn:hover{
  background: #0f1e3a;
  color: #fff;
}

.product-card-icon-cart{
  background: #0f1e3a;
  color: #fff;
}

.product-card-icon-cart:hover{
  background: #1f3565;
  border-color: #1f3565;
  color: #fff;
}

/* Tablet y móvil */
@media (max-width: 575.98px){
  .product-card-actions{
    gap: 8px;
    padding: 10px 12px 12px;
  }

  .product-card-icon-btn{
    min-height: 42px;
    padding: 0 10px;
    font-size: .85rem;
    gap: 6px;
    border-radius: 10px;
  }

  .product-card-icon-btn i{
    font-size: .95rem;
  }
}

/* Muy angosto: uno debajo del otro */
@media (max-width: 380px){
  .product-card-actions{
    flex-direction: column;
    align-items: stretch;
  }

  .product-card-icon-btn{
    width: 100%;
  }
}

/* ============================
   HOME SECTIONS
============================ */

.home-product-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

@media (min-width: 768px){
  .home-product-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1200px){
  .home-product-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Oculta excedentes por sección:
   móvil 4, tablet 6, pc 8 */
.home-product-grid > *:nth-child(n+5){
  display:none;
}

@media (min-width: 768px){
  .home-product-grid > *:nth-child(n+5){
    display:block;
  }
  .home-product-grid > *:nth-child(n+7){
    display:none;
  }
}

@media (min-width: 1200px){
  .home-product-grid > *:nth-child(n+7){
    display:block;
  }
  .home-product-grid > *:nth-child(n+9){
    display:none;
  }
}

/* Para que funcione bien el parcial con col-* internos */
.home-product-grid > .col-6,
.home-product-grid > .col-md-4,
.home-product-grid > .col-lg-3{
  width:auto;
  max-width:none;
  flex:none;
  padding:0;
}

/* Sección descuentos en home:
   móvil 2, tablet 3, escritorio 4 */
.home-product-grid--discounts > *:nth-child(n+3){
  display:none;
}

@media (min-width: 768px){
  .home-product-grid--discounts > *:nth-child(n+3){
    display:block;
  }
  .home-product-grid--discounts > *:nth-child(n+4){
    display:none;
  }
}

@media (min-width: 1200px){
  .home-product-grid--discounts > *:nth-child(n+4){
    display:block;
  }
  .home-product-grid--discounts > *:nth-child(n+5){
    display:none;
  }
}

/* ============================
   CATEGORÍAS SCROLL
============================ */

.cat-scroll-wrap{
  overflow:hidden;
  position:relative;
}

.cat-scroll-track{
  display:flex;
  gap:14px;
  width:max-content;
  animation: catScroll 32s linear infinite;
}

.cat-scroll-wrap:hover .cat-scroll-track{
  animation-play-state: paused;
}

@keyframes catScroll{
  0%{ transform: translateX(0); }
  100%{ transform: translateX(-50%); }
}

.cat-card-wide{
  width: 240px;
  min-width: 240px;
  min-height: 132px;
  padding: 0;
  overflow:hidden;
  display:flex;
  align-items:stretch;
  justify-content:flex-start;
  text-align:left;
}

.cat-card-media{
  width: 42%;
  min-height: 132px;
  background: linear-gradient(180deg, #f3e8d9, #eadbc7);
  overflow:hidden;
  flex: 0 0 42%;
}

.cat-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.cat-card-media-empty{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:var(--om-muted);
  font-size:.85rem;
  font-weight:700;
}

.cat-card-content{
  flex:1 1 auto;
  padding: 14px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:8px;
}

.cat-card-name{
  color:var(--om-dark);
  font-weight:800;
  line-height:1.15;
  font-size:1rem;
}

.cat-card-discount{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  padding:.45rem .7rem;
  border-radius:999px;
  background:rgba(180,35,24,.10);
  border:1px solid rgba(180,35,24,.18);
  color:#9f2017;
  font-size:.8rem;
  font-weight:800;
}

@media (max-width: 767.98px){
  .cat-card-wide{
    width: 208px;
    min-width: 208px;
  }
}

/* ============================
   CUPONES
============================ */

.coupon-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap:14px;
}

@media (min-width: 768px){
  .coupon-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1200px){
  .coupon-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.coupon-card{
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,253,249,.96), rgba(250,244,236,.98));
  border: 1px solid rgba(185,151,91,.16);
  box-shadow: 0 18px 40px rgba(44,33,22,.08);
  padding: 1rem;
  display:flex;
  flex-direction:column;
  gap:.85rem;
  min-height: 100%;
}

.coupon-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: .8rem;
}

.coupon-code{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.45rem .7rem;
  border-radius:999px;
  background:rgba(185,151,91,.12);
  color:var(--om-dark);
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.coupon-title{
  margin:.55rem 0 0;
  font-size:1.08rem;
  line-height:1.15;
  color:var(--om-dark);
  font-weight:800;
}

.coupon-copy-btn{
  border:none;
  border-radius:999px;
  padding:.7rem .95rem;
  background:#2d241e;
  color:#fff;
  font-weight:700;
  line-height:1;
  transition:.2s ease;
}

.coupon-copy-btn:hover{
  background:#1f1813;
}

.coupon-desc{
  margin:0;
  color:var(--om-muted);
  line-height:1.55;
}

.coupon-badges{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}

.coupon-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.42rem .75rem;
  border-radius:999px;
  background:rgba(185,151,91,.10);
  border:1px solid rgba(185,151,91,.18);
  color:#6f5735;
  font-size:.8rem;
  font-weight:800;
}

.coupon-meta{
  display:grid;
  gap:.4rem;
  color:var(--om-dark);
  font-size:.92rem;
}

.coupon-timer{
  margin-top:auto;
  padding:.75rem .9rem;
  border-radius:16px;
  background:rgba(180,35,24,.08);
  border:1px solid rgba(180,35,24,.14);
  color:#9f2017;
  font-weight:800;
}

.coupon-timer span{
  font-variant-numeric: tabular-nums;
}

.nav-link-btn{
  background: transparent;
  border: 0;
  width: 100%;
  text-align: left;
}

@media (max-width: 991.98px){
  #mainNav{
    display: none;
    width: 100%;
    padding-top: 1rem;
  }

  #mainNav.is-open{
    display: block;
  }

  #mainNav .navbar-nav{
    align-items: stretch !important;
  }

  #mainNav .nav-item{
    width: 100%;
  }

  #mainNav .nav-link,
  #mainNav .nav-link-btn{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .nav-dropdown-manual .nav-categories-menu{
    display: none;
    position: static !important;
    transform: none !important;
    width: 100%;
    margin-top: .5rem;
    box-shadow: none !important;
  }

  .nav-dropdown-manual.is-open .nav-categories-menu{
    display: block;
  }
}

@media (min-width: 992px){
  #mainNav{
    display: flex !important;
    align-items: center;
  }

  .nav-dropdown-manual{
    position: relative;
  }

  .nav-dropdown-manual .nav-categories-menu{
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
  }

  .nav-dropdown-manual.is-open .nav-categories-menu{
    display: block;
  }
}

.navbar-toggler{
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.06);
  border-radius: 14px;
  padding: .55rem .7rem;
}

.navbar-toggler:focus{
  box-shadow: 0 0 0 .2rem rgba(255,255,255,.08) !important;
}

.navbar-toggler-icon{
  filter: brightness(0) invert(1);
}

.nav-link-btn{
  color: var(--navy-om-text);
}

.nav-link-btn:hover,
.nav-link-btn:focus{
  color: #ffffff;
  background: rgba(255,255,255,.10);
}

.navbar .btn-outline-dark{
  border-color: rgba(255,255,255,.18);
  color: var(--navy-om-text);
  background: transparent;
}

.navbar .btn-outline-dark:hover,
.navbar .btn-outline-dark:focus{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.22);
  color: #ffffff;
}

.navbar .btn-dark{
  background: #d6b27a;
  border-color: #d6b27a;
  color: #0f1c34;
  font-weight: 700;
}

.navbar .btn-dark:hover,
.navbar .btn-dark:focus{
  background: #e2c08d;
  border-color: #e2c08d;
  color: #0f1c34;
}

/* ================================
   CONFIG PAGE – SECCIONES / ACORDEÓN
================================ */

.config-page{
  padding-bottom: 1rem;
}

.config-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}

.config-kicker{
  display:inline-block;
  padding:.35rem .7rem;
  border-radius:999px;
  background: rgba(14,165,233,.10);
  color: var(--accent-hover);
  border: 1px solid rgba(14,165,233,.18);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:.55rem;
}

.config-title{
  font-weight:900;
  letter-spacing:-.02em;
  color: var(--primary);
}

.config-sub{
  margin-top:.35rem;
  color: var(--text-muted);
  max-width: 780px;
}

.config-shell{
  display:block;
}

.config-card,
.config-side{
  border-radius: 22px;
  overflow:hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94));
  border: 1px solid var(--border);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .06);
}

.config-alert-success{
  border-radius:16px;
  border:1px solid rgba(22,163,74,.18);
  background: rgba(22,163,74,.08);
}

.config-accordion{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.config-section{
  border:1px solid var(--border);
  border-radius:18px;
  background:#fff;
  overflow:hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,.03);
}

.config-section[open]{
  border-color: rgba(14,165,233,.22);
  box-shadow: 0 14px 30px rgba(14,165,233,.08);
}

.config-summary{
  list-style:none;
  cursor:pointer;
  padding:1rem 1rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  user-select:none;
  background: linear-gradient(180deg, rgba(248,250,252,.96), rgba(255,255,255,1));
}

.config-summary::-webkit-details-marker{
  display:none;
}

.config-summary-main{
  display:flex;
  align-items:center;
  gap:.9rem;
  min-width:0;
}

.config-summary-icon{
  width:48px;
  height:48px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 48px;
  background: rgba(15,28,52,.08);
  color: var(--navy-om);
  border: 1px solid rgba(15,28,52,.10);
}

.config-summary-icon svg{
  width:22px;
  height:22px;
}

.config-summary-title{
  font-weight:800;
  color: var(--primary);
  line-height:1.15;
}

.config-summary-sub{
  color: var(--text-muted);
  font-size:.92rem;
  margin-top:.18rem;
}

.config-summary-arrow{
  flex:0 0 auto;
  width:36px;
  height:36px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(15,28,52,.06);
  color: var(--navy-om);
  font-size:1rem;
  transition: transform .2s ease, background .2s ease;
}

.config-section[open] .config-summary-arrow{
  transform: rotate(180deg);
  background: rgba(14,165,233,.10);
  color: var(--accent-hover);
}

.config-body{
  padding: 0 1rem 1rem;
  border-top: 1px solid rgba(0,0,0,.05);
}

.config-body .form-label{
  font-weight:700;
  color: var(--primary);
  margin-bottom:.38rem;
}

.config-body .form-control,
.config-body .form-select{
  min-height: 46px;
  background:#fff;
}

.config-logo-preview{
  display:flex;
  align-items:center;
  gap:.85rem;
  padding:.75rem;
  border:1px solid var(--border);
  border-radius:16px;
  background: rgba(15,23,42,.02);
  margin-bottom:.75rem;
}

.config-logo-preview img{
  width:68px;
  height:68px;
  object-fit:cover;
  border-radius:16px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  flex:0 0 68px;
}

.config-side{
  position: sticky;
  top: 78px;
}

.config-side-block + .config-side-block{
  margin-top: 1rem;
}

.config-side-title{
  font-weight:900;
  color: var(--primary);
  margin-bottom:.8rem;
}

.config-mini-list{
  display:flex;
  flex-direction:column;
  gap:.7rem;
}

.config-mini-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.8rem;
  padding:.8rem .9rem;
  border-radius:16px;
  border:1px solid var(--border);
  background: rgba(15,23,42,.02);
}

.config-mini-k{
  color: var(--text-muted);
  font-size:.9rem;
}

.config-mini-v{
  font-weight:800;
  color: var(--primary);
  text-align:right;
  word-break: break-word;
}

.config-tips{
  padding-left: 1rem;
  color: var(--text-muted);
}

.config-tips li + li{
  margin-top:.55rem;
}

.config-save-box{
  margin-top: 1.2rem;
  padding: 1rem;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(15,28,52,.98), rgba(22,39,70,.96));
  color:#fff;
}

.config-save-btn{
  min-height: 48px;
  border-radius: 14px;
  background: #fff;
  color: var(--navy-om);
  font-weight:800;
}

.config-save-btn:hover{
  background: #eef2f7;
  color: var(--navy-om);
}

.config-save-text{
  margin-top:.65rem;
  font-size:.9rem;
  color: rgba(255,255,255,.76);
  text-align:center;
}

@media (max-width: 1199.98px){
  .config-side{
    position: static;
  }
}

@media (max-width: 767.98px){
  .config-title{
    font-size: 1.4rem;
  }

  .config-summary{
    padding:.9rem;
  }

  .config-summary-icon{
    width:42px;
    height:42px;
    border-radius:12px;
    flex:0 0 42px;
  }

  .config-summary-title{
    font-size:.98rem;
  }

  .config-summary-sub{
    font-size:.85rem;
  }

  .config-body{
    padding: 0 .9rem .9rem;
  }

  .config-mini-item{
    flex-direction:column;
    align-items:flex-start;
  }

  .config-mini-v{
    text-align:left;
  }
}

/* ================================
   PEDIDO DETALLE – UX MEJORADA
================================ */

.order-view-page{
  padding-bottom: 1rem;
}

.order-topbar{
  border: 1px solid var(--border);
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94));
  box-shadow: 0 10px 26px rgba(0,0,0,.05);
  padding: 1rem 1.1rem;
}

.order-topbar-main{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}

.order-kicker{
  display:inline-block;
  padding:.35rem .7rem;
  border-radius:999px;
  background: rgba(14,165,233,.10);
  color: var(--accent-hover);
  border: 1px solid rgba(14,165,233,.18);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:.5rem;
}

.order-title{
  font-weight:900;
  letter-spacing:-.02em;
  color: var(--primary);
}

.order-sub{
  margin-top:.35rem;
  color: var(--text-muted);
  max-width: 760px;
}

.order-alert{
  border-radius: 16px;
}

.order-kpi-card{
  border-radius: 18px;
  overflow:hidden;
}

.order-kpi-label{
  font-size:.8rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  color: var(--text-muted);
  margin-bottom:.5rem;
}

.order-kpi-value{
  font-size:1.45rem;
  line-height:1.1;
  font-weight:900;
  color: var(--primary);
}

.order-kpi-value-sm{
  font-size:1.05rem;
  line-height:1.25;
}

.order-panel{
  border-radius: 22px;
  overflow:hidden;
}

.order-panel-highlight{
  border: 1px solid rgba(14,165,233,.20);
  box-shadow: 0 16px 32px rgba(14,165,233,.08);
}

.order-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom: 1rem;
  flex-wrap:wrap;
}

.order-section-title{
  font-size:1.05rem;
  font-weight:900;
  margin:0;
  color: var(--primary);
}

.order-section-sub{
  color: var(--text-muted);
  font-size:.92rem;
  margin-top:.18rem;
}

.order-subtitle{
  font-size:1rem;
  font-weight:900;
  margin:0;
  color: var(--primary);
}

.order-info-box{
  border:1px solid var(--border);
  border-radius:16px;
  background: rgba(15,23,42,.02);
  padding:.85rem .95rem;
  height:100%;
}

.order-info-label{
  font-size:.8rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  color: var(--text-muted);
  margin-bottom:.35rem;
}

.order-info-value{
  font-weight:700;
  color: var(--primary);
  line-height:1.45;
}

.order-info-wrap{
  word-break: break-word;
  overflow-wrap: anywhere;
}

.order-items-head{
  margin-bottom:.9rem;
}

.order-items-list{
  display:flex;
  flex-direction:column;
  gap:.75rem;
}

.order-item-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  padding:.85rem .95rem;
}

.order-item-main{
  min-width:0;
  flex:1 1 auto;
}

.order-item-name{
  font-weight:800;
  color: var(--primary);
  line-height:1.2;
  word-break: break-word;
}

.order-item-meta{
  color: var(--text-muted);
  font-size:.9rem;
  margin-top:.2rem;
}

.order-item-total{
  flex:0 0 auto;
  font-weight:900;
  color: var(--primary);
  white-space:nowrap;
}

.order-total-box{
  margin-top: 1rem;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(15,28,52,.98), rgba(22,39,70,.96));
  color:#fff;
  padding:1rem 1.1rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}

.order-total-label{
  font-weight:800;
}

.order-total-sub{
  color: rgba(255,255,255,.75);
  font-size:.9rem;
  margin-top:.15rem;
}

.order-total-value{
  font-size:1.45rem;
  font-weight:900;
  line-height:1;
}

.order-customer-grid{
  display:flex;
  flex-direction:column;
  gap:.75rem;
}

.order-customer-box{
  border:1px solid var(--border);
  border-radius:16px;
  background: rgba(15,23,42,.02);
  padding:.85rem .95rem;
}

.order-doc-btn{
  min-height:46px;
}

.order-note{
  padding:.85rem .95rem;
  border-radius:16px;
  border:1px solid rgba(0,0,0,.06);
  background: rgba(15,23,42,.03);
  color: var(--text-muted);
  font-size:.94rem;
}

.order-main-action-btn{
  min-height:50px;
  font-size:1rem;
  font-weight:800;
}

.order-empty{
  border:1px dashed var(--border);
  border-radius:16px;
  padding:1rem;
  color: var(--text-muted);
  background: rgba(15,23,42,.02);
}

.order-danger-box{
  border:1px solid rgba(220,38,38,.16);
  border-radius:18px;
  overflow:hidden;
  background:#fff;
}

.order-danger-summary{
  list-style:none;
  cursor:pointer;
  padding:1rem 1.1rem;
  font-weight:900;
  color:#b91c1c;
  background: rgba(220,38,38,.05);
  user-select:none;
}

.order-danger-summary::-webkit-details-marker{
  display:none;
}

.order-danger-body{
  padding:1rem 1.1rem 1.1rem;
  border-top:1px solid rgba(220,38,38,.10);
}

@media (max-width: 767.98px){
  .order-title{
    font-size:1.35rem;
  }

  .order-kpi-value{
    font-size:1.22rem;
  }

  .order-item-row{
    flex-direction:column;
    align-items:flex-start;
  }

  .order-item-total{
    white-space:normal;
  }

  .order-total-box{
    align-items:flex-start;
  }

  .order-total-value{
    font-size:1.28rem;
  }
}

/* =========================================
   CLIENT PANEL / CUSTOMER SIDEBAR
========================================= */

.front-page-wrap{
  min-height: 0;
}

.customer-panel-layout{
  display:grid;
  grid-template-columns: 320px minmax(0,1fr);
  gap: 1.25rem;
  align-items:start;
}

.customer-panel-aside{
  min-width:0;
}

.customer-panel-content{
  min-width:0;
}

.customer-sidebar{
  position: sticky;
  top: 92px;
  border-radius: 24px;
  overflow: hidden;
}

.customer-user-box{
  display:flex;
  align-items:center;
  gap: .85rem;
}

.customer-avatar{
  width: 58px;
  height: 58px;
  border-radius: 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 800;
  font-size: 1.2rem;
  background: linear-gradient(135deg, #111827, #334155);
  color: #fff;
  flex: 0 0 58px;
}

.customer-user-name{
  font-weight: 800;
  line-height: 1.2;
  word-break: break-word;
}

.customer-user-email{
  color: var(--text-muted);
  font-size: .92rem;
  word-break: break-word;
}

.customer-mini-stats{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .7rem;
}

.customer-mini-stat{
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: .8rem .9rem;
  background: #fbfcfe;
}

.customer-mini-stat small{
  display:block;
  color: var(--text-muted);
  margin-bottom: .2rem;
}

.customer-mini-stat strong{
  font-size: 1.05rem;
}

.customer-nav-link{
  display:flex;
  align-items:center;
  gap: .75rem;
  padding: .85rem .95rem;
  border-radius: 16px;
  border: 1px solid transparent;
  color: var(--text);
  background: transparent;
  transition: .2s ease;
  font-weight: 600;
}

.customer-nav-link i{
  font-size: 1rem;
  width: 20px;
  text-align:center;
}

.customer-nav-link:hover{
  background: #f8fafc;
  border-color: var(--border);
  color: var(--text);
}

.customer-nav-link.is-active{
  background: #111827;
  color: #fff;
  border-color: #111827;
}

.customer-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1rem;
}

.customer-page-title{
  font-size: clamp(1.45rem, 2vw, 2rem);
  font-weight: 800;
  margin: 0;
  color: var(--text);
}

.customer-stat-card{
  border-radius: 22px;
}

.customer-stat-label{
  color: var(--text-muted);
  font-size: .9rem;
  margin-bottom: .35rem;
}

.customer-stat-value{
  font-size: 2rem;
  line-height: 1.1;
  font-weight: 800;
  color: var(--text);
}

.customer-stat-value.money{
  font-size: 1.35rem;
}

.customer-quick-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .85rem;
}

.customer-quick-link{
  display:flex;
  align-items:center;
  gap: .7rem;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: .95rem 1rem;
  background: #fff;
  color: var(--text);
  font-weight: 700;
  transition: .2s ease;
}

.customer-quick-link i{
  font-size: 1.05rem;
}

.customer-quick-link:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  color: var(--text);
}

.customer-quick-link-dark{
  background: #111827;
  color: #fff;
  border-color: #111827;
}

.customer-quick-link-dark:hover{
  color: #fff;
}

.customer-order-list{
  display:grid;
  gap: .85rem;
}

.customer-order-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 1rem;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1rem;
  background: #fff;
  transition: .2s ease;
}

.customer-order-item:hover{
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  transform: translateY(-1px);
  color: inherit;
}

.customer-order-code{
  font-weight: 800;
}

.customer-order-meta{
  color: var(--text-muted);
  font-size: .92rem;
}

.customer-order-total{
  font-weight: 800;
  white-space: nowrap;
}

.customer-data-box{
  height: 100%;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1rem;
  background: #fff;
}

.customer-data-box small{
  display:block;
  color: var(--text-muted);
  margin-bottom: .35rem;
}

.customer-data-box strong{
  display:block;
  font-size: 1rem;
}

.customer-table thead th{
  white-space: nowrap;
}

.customer-coupon-card{
  border-radius: 20px;
}

@media (max-width: 991.98px){
  .customer-panel-layout{
    grid-template-columns: 1fr;
  }

  .customer-sidebar{
    position: static;
  }
}

@media (max-width: 767.98px){
  .customer-panel-head{
    align-items:flex-start;
    flex-direction: column;
  }

  .customer-quick-grid{
    grid-template-columns: 1fr;
  }

  .customer-order-item{
    flex-direction: column;
    align-items: flex-start;
  }

  .customer-order-total{
    white-space: normal;
  }

  .customer-mini-stats{
    grid-template-columns: 1fr 1fr;
  }
}

.product-card-img{
  position: relative;
}

.product-card-badge-rating{
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  background: #111827;
  color: #fff;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: .78rem;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 10px 25px rgba(0,0,0,.18);
}

.product-card-badge-discount{
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 3;
}

.review-marquee{
  position: relative;
  overflow: hidden;
  width: 100%;
}

.review-marquee-track{
  display: flex;
  gap: 16px;
  width: max-content;
  animation: reviewMarqueeLoop 38s linear infinite;
  will-change: transform;
}

.review-marquee:hover .review-marquee-track{
  animation-play-state: paused;
}

.review-mini-card{
  display: block;
  width: 320px;
  min-width: 320px;
  background: #fff;
  border: 1px solid #ece7df;
  border-radius: 22px;
  padding: 18px;
  box-shadow: 0 12px 30px rgba(17,24,39,.06);
  color: #111827;
  transition: transform .22s ease, box-shadow .22s ease;
}

.review-mini-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 34px rgba(17,24,39,.10);
}

.review-mini-top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.review-mini-user{
  font-weight: 800;
  font-size: .96rem;
  color: #111827;
}

.review-mini-meta{
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.review-mini-stars{
  color: #f59e0b;
  font-size: .9rem;
  letter-spacing: 1px;
  font-weight: 800;
}

.review-mini-verified{
  color: #16a34a;
  font-size: 1rem;
}

.review-mini-text{
  color: #4b5563;
  font-size: .92rem;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@keyframes reviewMarqueeLoop{
  from{
    transform: translate3d(0,0,0);
  }
  to{
    transform: translate3d(-50%,0,0);
  }
}

@media (max-width: 991.98px){
  .review-mini-card{
    width: 280px;
    min-width: 280px;
  }

  .review-marquee-track{
    animation-duration: 32s;
  }
}

@media (max-width: 575.98px){
  .review-mini-card{
    width: 240px;
    min-width: 240px;
    padding: 14px;
    border-radius: 18px;
  }

  .review-mini-user{
    font-size: .9rem;
  }

  .review-mini-text{
    font-size: .88rem;
  }

  .review-marquee-track{
    gap: 12px;
    animation-duration: 26s;
  }

  .product-card-badge-rating{
    top: 10px;
    left: 10px;
    padding: 5px 9px;
    font-size: .72rem;
  }
}

/* ===== Widget flotante de consulta WhatsApp ===== */

.wa-consult-widget{
  position: fixed;
  right: 16px;
  bottom: 18px;
  z-index: 1085;
}

.wa-consult-widget__fab{
  width: 58px;
  height: 58px;
  border: 0;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
  color: #fff;
  font-size: 1.7rem;
  box-shadow: 0 16px 36px rgba(18,140,126,.28);
  transition: transform .18s ease, box-shadow .18s ease;
}

.wa-consult-widget__fab:hover,
.wa-consult-widget__fab:focus{
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 20px 40px rgba(18,140,126,.34);
}

.wa-consult-widget__panel{
  position: absolute;
  right: 0;
  bottom: 72px;
  width: 360px;
  max-width: calc(100vw - 24px);
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 20px;
  box-shadow: 0 24px 50px rgba(0,0,0,.18);
  overflow: hidden;
}

.wa-consult-widget__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  color: #fff;
  background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
}

.wa-consult-widget__head-copy{
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.wa-consult-widget__head-copy small{
  opacity: .95;
  line-height: 1.3;
}

.wa-consult-widget__close{
  border: 0;
  background: transparent;
  color: #fff;
  padding: 4px;
  line-height: 1;
  font-size: 1rem;
}

.wa-consult-widget__body{
  padding: 16px;
}

.wa-consult-widget__textarea{
  min-height: 112px;
  resize: none;
  border-radius: 14px;
}

.wa-consult-widget__meta{
  margin-top: 12px;
  padding: 10px 12px;
  background: #f8f9fa;
  border-radius: 12px;
  word-break: break-word;
}

@media (max-width: 767.98px){
  .wa-consult-widget{
    right: 12px;
    bottom: 84px;
  }

  .wa-consult-widget__fab{
    width: 56px;
    height: 56px;
  }

  .wa-consult-widget__panel{
    width: min(360px, calc(100vw - 20px));
    bottom: 68px;
  }
}