/* ==========================================================================

   AURA LUXE STORE - STYLESHEET

   Diseño Prémium, Moderno, Glassmorphism y 100% Responsivo

   ========================================================================== */



:root {

  /* Paleta de Colores Prémium */

  --color-primary: #111418;

  --color-primary-light: #1f242d;

  --color-secondary: #c59b27;

  --color-secondary-hover: #b0871d;

  --color-accent: #e27d60;

  --color-accent-subtle: #fcf4ec;

  

  --color-bg-body: #f8fafc;

  --color-bg-surface: #ffffff;

  --color-bg-subtle: #f1f5f9;

  

  --color-text-main: #0f172a;

  --color-text-muted: #64748b;

  --color-text-light: #94a3b8;

  --color-border: #e2e8f0;

  --color-border-focus: #cbd5e1;



  --color-success: #10b981;

  --color-whatsapp: #25d366;

  --color-whatsapp-hover: #20ba59;

  --color-danger: #ef4444;



  /* Tipografías */

  --font-main: 'Outfit', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --font-serif: 'Playfair Display', Georgia, serif;



  /* Sombras Prémium */

  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);

  --shadow-md: 0 4px 14px -1px rgba(0,0,0,0.08), 0 2px 6px -1px rgba(0,0,0,0.04);

  --shadow-lg: 0 12px 30px -4px rgba(0,0,0,0.12), 0 4px 10px -2px rgba(0,0,0,0.05);

  --shadow-xl: 0 20px 40px -8px rgba(17, 20, 24, 0.2);



  /* Transiciones */

  --transition-fast: 0.2s cubic-bezier(0.4, 0, 0.2, 1);

  --transition-normal: 0.3s cubic-bezier(0.4, 0, 0.2, 1);

  --transition-bounce: 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);



  /* Radios */

  --radius-sm: 6px;

  --radius-md: 12px;

  --radius-lg: 20px;

  --radius-full: 9999px;

}



/* Reset y base */

*, *::before, *::after {

  box-sizing: border-box;

  margin: 0;

  padding: 0;

}



html {

  scroll-behavior: smooth;

  font-size: 16px;

}



body {

  font-family: var(--font-main);

  background-color: var(--color-bg-body);

  color: var(--color-text-main);

  line-height: 1.5;

  overflow-x: hidden;

  -webkit-font-smoothing: antialiased;

}



a {

  color: inherit;

  text-decoration: none;

  transition: var(--transition-fast);

}



img {

  max-width: 100%;

  display: block;

}



button, input, select, textarea {

  font-family: inherit;

  font-size: inherit;

}



button {

  cursor: pointer;

  border: none;

  outline: none;

  background: none;

}



.visually-hidden {

  position: absolute;

  width: 1px;

  height: 1px;

  padding: 0;

  margin: -1px;

  overflow: hidden;

  clip: rect(0, 0, 0, 0);

  border: 0;

}



/* Top Announcement Bar */

.top-announcement {

  background: linear-gradient(90deg, #111418, #2a2015, #111418);

  color: #f1f5f9;

  font-size: 0.85rem;

  padding: 0.55rem 1.25rem;

  display: flex;

  align-items: center;

  justify-content: center;

  position: relative;

  border-bottom: 1px solid rgba(197, 155, 39, 0.25);

  z-index: 100;

}



.top-announcement strong {

  color: var(--color-secondary);

}



.announcement-close {

  position: absolute;

  right: 1.5rem;

  color: #94a3b8;

  font-size: 1.25rem;

  line-height: 1;

  transition: var(--transition-fast);

}

.announcement-close:hover {

  color: #ffffff;

}



/* Header Principal */

.main-header {

  position: sticky;

  top: 0;

  z-index: 90;

  background: rgba(255, 255, 255, 0.95);

  backdrop-filter: blur(12px);

  -webkit-backdrop-filter: blur(12px);

  border-bottom: 1px solid var(--color-border);

  transition: var(--transition-fast);

}



.header-container {

  max-width: 1380px;

  margin: 0 auto;

  padding: 0.85rem 1.5rem;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 1.5rem;

}



/* Logo */

.brand-logo {

  display: flex;

  align-items: center;

  gap: 0.75rem;

  user-select: none;

  cursor: pointer;

}



.logo-symbol {

  font-size: 1.75rem;

  color: var(--color-secondary);

  line-height: 1;

  animation: pulse-glow 3s infinite alternate;

}



@keyframes pulse-glow {

  0% { transform: scale(0.95); opacity: 0.85; filter: drop-shadow(0 0 2px rgba(197, 155, 39, 0.3)); }

  100% { transform: scale(1.05); opacity: 1; filter: drop-shadow(0 0 10px rgba(197, 155, 39, 0.7)); }

}



.logo-text {

  display: flex;

  flex-direction: column;

}



.logo-title {

  font-family: var(--font-serif);

  font-size: 1.6rem;

  font-weight: 700;

  letter-spacing: 2px;

  line-height: 1;

  color: var(--color-primary);

}



.logo-subtitle {

  font-size: 0.65rem;

  font-weight: 600;

  letter-spacing: 3px;

  color: var(--color-secondary);

  margin-top: 2px;

}



/* Buscador en Header */

.header-search-bar {

  flex: 1;

  max-width: 520px;

  position: relative;

  display: flex;

  align-items: center;

}



.header-search-bar input {

  width: 100%;

  padding: 0.7rem 2.5rem 0.7rem 2.75rem;

  background-color: var(--color-bg-subtle);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-full);

  color: var(--color-text-main);

  font-size: 0.92rem;

  transition: var(--transition-fast);

}



.header-search-bar input:focus {

  background-color: #ffffff;

  border-color: var(--color-secondary);

  box-shadow: 0 0 0 4px rgba(197, 155, 39, 0.15);

}



.search-icon {

  position: absolute;

  left: 1rem;

  color: var(--color-text-muted);

  font-size: 1.15rem;

  pointer-events: none;

}



.clear-search-btn {

  position: absolute;

  right: 0.85rem;

  color: var(--color-text-muted);

  font-size: 1.1rem;

  display: flex;

  align-items: center;

  justify-content: center;

}



.clear-search-btn:hover {

  color: var(--color-text-main);

}



/* Acciones en Header */

.header-actions {

  display: flex;

  align-items: center;

  gap: 0.85rem;

}



.currency-selector select {

  padding: 0.5rem 0.75rem;

  border-radius: var(--radius-sm);

  border: 1px solid var(--color-border);

  background: var(--color-bg-subtle);

  color: var(--color-text-main);

  font-size: 0.85rem;

  font-weight: 600;

  cursor: pointer;

  outline: none;

}



.action-btn {

  display: flex;

  align-items: center;

  gap: 0.5rem;

  padding: 0.6rem 0.9rem;

  border-radius: var(--radius-full);

  background: var(--color-bg-subtle);

  color: var(--color-text-main);

  font-size: 0.9rem;

  font-weight: 500;

  position: relative;

  transition: var(--transition-fast);

  border: 1px solid transparent;

}



.action-btn i {

  font-size: 1.25rem;

}



.action-btn:hover {

  background: #ffffff;

  border-color: var(--color-border);

  transform: translateY(-1px);

  box-shadow: var(--shadow-sm);

}



.cart-btn-highlight {

  background: var(--color-primary);

  color: #ffffff;

  padding: 0.65rem 1.2rem;

}



.cart-btn-highlight:hover {

  background: #000000;

  color: #ffffff;

  border-color: transparent;

}



.cart-label {

  font-weight: 600;

}



.badge-count {

  background: var(--color-secondary);

  color: #ffffff;

  font-size: 0.75rem;

  font-weight: 700;

  min-width: 20px;

  height: 20px;

  border-radius: var(--radius-full);

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 0 4px;

  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);

}



.badge-count.pop {

  transform: scale(1.3);

}



/* Botones genéricos */

.btn {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 0.6rem;

  padding: 0.85rem 1.6rem;

  border-radius: var(--radius-md);

  font-size: 0.95rem;

  font-weight: 600;

  transition: var(--transition-normal);

  text-align: center;

}



.btn-primary {

  background: var(--color-primary);

  color: #ffffff;

  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);

}



.btn-primary:hover {

  background: #000000;

  transform: translateY(-2px);

  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);

}



.btn-outline {

  background: transparent;

  color: var(--color-text-main);

  border: 1px solid var(--color-border);

}



.btn-outline:hover {

  background: var(--color-bg-subtle);

  border-color: var(--color-text-muted);

}



.btn-glass {

  background: rgba(255, 255, 255, 0.2);

  color: #ffffff;

  backdrop-filter: blur(8px);

  border: 1px solid rgba(255, 255, 255, 0.3);

}



.btn-glass:hover {

  background: rgba(255, 255, 255, 0.35);

  transform: translateY(-2px);

}



.btn-whatsapp-checkout {

  background: linear-gradient(135deg, #25d366, #128c7e);

  color: #ffffff;

  font-weight: 700;

  box-shadow: 0 6px 18px rgba(37, 211, 102, 0.3);

}



.btn-whatsapp-checkout:hover {

  background: linear-gradient(135deg, #22bf5b, #0f756a);

  transform: translateY(-2px);

  box-shadow: 0 8px 25px rgba(37, 211, 102, 0.45);

}



.full-width {

  width: 100%;

}



/* Hero Section */

.hero-section {

  position: relative;

  background: linear-gradient(135deg, #0e1116 0%, #1a1e27 60%, #2c2217 100%);

  color: #ffffff;

  padding: 5rem 1.5rem 3.5rem;

  overflow: hidden;

}



.hero-overlay {

  position: absolute;

  top: 0;

  left: 0;

  right: 0;

  bottom: 0;

  background: radial-gradient(circle at 80% 20%, rgba(197, 155, 39, 0.15), transparent 50%),

              radial-gradient(circle at 20% 80%, rgba(226, 125, 96, 0.12), transparent 50%);

  pointer-events: none;

}



.hero-content {

  max-width: 860px;

  margin: 0 auto;

  text-align: center;

  position: relative;

  z-index: 2;

}



.hero-tag {

  display: inline-block;

  background: rgba(197, 155, 39, 0.18);

  border: 1px solid rgba(197, 155, 39, 0.4);

  color: #f7d280;

  font-size: 0.82rem;

  font-weight: 700;

  letter-spacing: 2px;

  text-transform: uppercase;

  padding: 0.4rem 1rem;

  border-radius: var(--radius-full);

  margin-bottom: 1.25rem;

}



.hero-title {

  font-family: var(--font-serif);

  font-size: clamp(2.3rem, 5vw, 3.8rem);

  font-weight: 700;

  line-height: 1.15;

  margin-bottom: 1.2rem;

  letter-spacing: -0.5px;

}



.hero-subtitle {

  font-size: clamp(1rem, 2vw, 1.2rem);

  color: #cbd5e1;

  max-width: 680px;

  margin: 0 auto 2.2rem;

  font-weight: 300;

}



.hero-buttons {

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 1.25rem;

  flex-wrap: wrap;

}



.hero-features {

  max-width: 1300px;

  margin: 4rem auto 0;

  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));

  gap: 1.5rem;

  position: relative;

  z-index: 2;

  border-top: 1px solid rgba(255, 255, 255, 0.1);

  padding-top: 2.5rem;

}



.feature-item {

  display: flex;

  align-items: center;

  gap: 1rem;

  background: rgba(255, 255, 255, 0.04);

  border: 1px solid rgba(255, 255, 255, 0.08);

  border-radius: var(--radius-md);

  padding: 1.2rem 1.4rem;

  transition: var(--transition-normal);

}



.feature-item:hover {

  background: rgba(255, 255, 255, 0.08);

  border-color: rgba(197, 155, 39, 0.3);

  transform: translateY(-2px);

}



.feature-item i {

  font-size: 2.2rem;

  color: var(--color-secondary);

}



.feature-item h4 {

  font-size: 0.98rem;

  font-weight: 600;

  color: #ffffff;

  margin-bottom: 0.2rem;

}



.feature-item p {

  font-size: 0.82rem;

  color: #94a3b8;

}



/* Main Content & Categories */

.main-content {

  max-width: 1380px;

  margin: 0 auto;

  padding: 3.5rem 1.5rem 5rem;

}



.section-header-inline {

  display: flex;

  align-items: flex-end;

  justify-content: space-between;

  margin-bottom: 1.8rem;

}



.sub-heading {

  font-size: 0.85rem;

  text-transform: uppercase;

  letter-spacing: 2px;

  color: var(--color-secondary);

  font-weight: 700;

  display: block;

  margin-bottom: 0.3rem;

}



.section-title {

  font-family: var(--font-serif);

  font-size: 2.2rem;

  font-weight: 700;

  color: var(--color-primary);

  line-height: 1.2;

}



.product-counter {

  font-size: 0.92rem;

  color: var(--color-text-muted);

  font-weight: 500;

}



/* Categorías Pill Slider */

.categories-scroll-wrapper {

  overflow-x: auto;

  padding-bottom: 0.75rem;

  margin-bottom: 2.5rem;

  scrollbar-width: thin;

  scrollbar-color: var(--color-border) transparent;

}



.categories-pill-list {

  display: flex;

  gap: 0.85rem;

  min-width: max-content;

}



.category-pill {

  display: flex;

  align-items: center;

  gap: 0.7rem;

  background: var(--color-bg-surface);

  border: 1px solid var(--color-border);

  padding: 0.75rem 1.4rem;

  border-radius: var(--radius-full);

  font-size: 0.92rem;

  font-weight: 600;

  color: var(--color-text-main);

  transition: var(--transition-fast);

  box-shadow: var(--shadow-sm);

  cursor: pointer;

}



.category-pill i {

  font-size: 1.2rem;

  color: var(--color-secondary);

}



.category-pill:hover {

  border-color: var(--color-secondary);

  transform: translateY(-2px);

  box-shadow: var(--shadow-md);

}



.category-pill.active {

  background: var(--color-primary);

  color: #ffffff;

  border-color: var(--color-primary);

  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);

}



.category-pill.active i {

  color: #f7d280;

}



/* Controles y Ordenamiento */

.catalog-controls {

  display: flex;

  align-items: center;

  justify-content: space-between;

  margin-bottom: 2rem;

  background: var(--color-bg-surface);

  padding: 1rem 1.5rem;

  border-radius: var(--radius-md);

  border: 1px solid var(--color-border);

  box-shadow: var(--shadow-sm);

  flex-wrap: wrap;

  gap: 1rem;

}



.filters-summary {

  display: flex;

  align-items: center;

  gap: 1rem;

}



.filter-toggle-btn {

  display: inline-flex;

  align-items: center;

  gap: 0.5rem;

  background: var(--color-bg-subtle);

  border: 1px solid var(--color-border);

  padding: 0.5rem 1rem;

  border-radius: var(--radius-sm);

  font-size: 0.88rem;

  font-weight: 600;

  color: var(--color-text-main);

  transition: var(--transition-fast);

}



.filter-toggle-btn:hover {

  background: #ffffff;

  border-color: var(--color-secondary);

}



.active-category-pill {

  background: var(--color-accent-subtle);

  color: var(--color-accent);

  padding: 0.35rem 0.85rem;

  border-radius: var(--radius-full);

  font-size: 0.82rem;

  font-weight: 700;

}



.sorting-controls {

  display: flex;

  align-items: center;

  gap: 0.75rem;

}



.sorting-controls label {

  font-size: 0.88rem;

  color: var(--color-text-muted);

}



.sorting-controls select {

  padding: 0.5rem 1rem;

  border: 1px solid var(--color-border);

  border-radius: var(--radius-sm);

  background: var(--color-bg-subtle);

  color: var(--color-text-main);

  font-size: 0.88rem;

  font-weight: 600;

  outline: none;

  cursor: pointer;

}



/* Layout Catálogo */

.catalog-layout {

  display: flex;

  gap: 2.2rem;

  align-items: flex-start;

}



/* Sidebar de Filtros */

.catalog-sidebar {

  width: 290px;

  flex-shrink: 0;

  background: var(--color-bg-surface);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-lg);

  padding: 1.8rem;

  box-shadow: var(--shadow-sm);

  position: sticky;

  top: 90px;

}



.sidebar-header {

  display: flex;

  align-items: center;

  justify-content: space-between;

  margin-bottom: 1.5rem;

  padding-bottom: 0.85rem;

  border-bottom: 1px solid var(--color-border);

}



.sidebar-header h3 {

  font-size: 1.15rem;

  font-weight: 700;

}



.close-sidebar-btn {

  display: none;

  font-size: 1.5rem;

  color: var(--color-text-muted);

}



.filter-group {

  margin-bottom: 1.8rem;

}



.filter-group-title {

  font-size: 0.92rem;

  font-weight: 700;

  margin-bottom: 0.85rem;

  color: var(--color-primary);

  text-transform: uppercase;

  letter-spacing: 0.5px;

}



.price-slider-container input[type="range"] {

  width: 100%;

  accent-color: var(--color-secondary);

  cursor: pointer;

  margin-bottom: 0.5rem;

}



.price-labels {

  display: flex;

  justify-content: space-between;

  font-size: 0.85rem;

  color: var(--color-text-muted);

  font-weight: 600;

}



.checkbox-label {

  display: flex;

  align-items: center;

  gap: 0.65rem;

  margin-bottom: 0.65rem;

  font-size: 0.9rem;

  color: var(--color-text-main);

  cursor: pointer;

}



.checkbox-label input[type="checkbox"] {

  accent-color: var(--color-secondary);

  width: 16px;

  height: 16px;

  cursor: pointer;

}



/* Grid de Productos */

.products-grid-container {

  flex: 1;

  min-width: 0;

}



.products-grid {

  display: grid;

  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));

  gap: 1.8rem;

}



/* Tarjeta de Producto */

.product-card {

  background: var(--color-bg-surface);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-lg);

  overflow: hidden;

  display: flex;

  flex-direction: column;

  transition: var(--transition-normal);

  position: relative;

  box-shadow: var(--shadow-sm);

}



.product-card:hover {

  transform: translateY(-6px);

  border-color: rgba(197, 155, 39, 0.4);

  box-shadow: var(--shadow-lg);

}



.product-image-box {

  position: relative;

  width: 100%;

  height: 290px;

  overflow: hidden;

  background-color: #f1f5f9;

}



.product-image-box img {

  width: 100%;

  height: 100%;

  object-fit: cover;

  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);

}



.product-card:hover .product-image-box img {

  transform: scale(1.08);

}



.badge-tag {

  position: absolute;

  top: 1rem;

  left: 1rem;

  padding: 0.35rem 0.75rem;

  border-radius: var(--radius-full);

  font-size: 0.72rem;

  font-weight: 700;

  text-transform: uppercase;

  letter-spacing: 0.5px;

  z-index: 2;

  box-shadow: 0 2px 6px rgba(0,0,0,0.15);

}



.badge-tag.tag-nuevo {

  background: #10b981;

  color: #ffffff;

}



.badge-tag.tag-oferta {

  background: #ef4444;

  color: #ffffff;

}



.badge-tag.tag-mas-vendido {

  background: var(--color-secondary);

  color: #ffffff;

}



.badge-tag.tag-exclusivo {

  background: var(--color-primary);

  color: #f7d280;

  border: 1px solid #f7d280;

}



/* Acciones flotantes en la imagen */

.card-floating-actions {

  position: absolute;

  top: 1rem;

  right: 1rem;

  display: flex;

  flex-direction: column;

  gap: 0.5rem;

  z-index: 2;

  opacity: 0;

  transform: translateX(10px);

  transition: var(--transition-fast);

}



.product-card:hover .card-floating-actions {

  opacity: 1;

  transform: translateX(0);

}



.floating-btn {

  width: 36px;

  height: 36px;

  background: rgba(255, 255, 255, 0.95);

  border-radius: var(--radius-full);

  display: flex;

  align-items: center;

  justify-content: center;

  color: var(--color-text-main);

  font-size: 1.1rem;

  box-shadow: var(--shadow-md);

  transition: var(--transition-fast);

}



.floating-btn:hover {

  background: var(--color-primary);

  color: #ffffff;

  transform: scale(1.1);

}



.floating-btn.active-wishlist {

  background: #fee2e2;

  color: #ef4444;

}



/* Info del Producto */

.product-info {

  padding: 1.4rem;

  display: flex;

  flex-direction: column;

  flex: 1;

}



.product-category-meta {

  font-size: 0.75rem;

  font-weight: 700;

  text-transform: uppercase;

  letter-spacing: 1.2px;

  color: var(--color-secondary);

  margin-bottom: 0.35rem;

}



.product-title {

  font-size: 1.05rem;

  font-weight: 600;

  color: var(--color-text-main);

  line-height: 1.35;

  margin-bottom: 0.5rem;

  display: -webkit-box;

  -webkit-line-clamp: 2;

  -webkit-box-orient: vertical;

  overflow: hidden;

  height: 2.7rem;

}



.product-rating {

  display: flex;

  align-items: center;

  gap: 0.35rem;

  font-size: 0.8rem;

  color: #f59e0b;

  margin-bottom: 0.9rem;

}



.product-rating span {

  color: var(--color-text-muted);

  font-weight: 500;

  margin-left: 0.2rem;

}



.product-price-row {

  display: flex;

  align-items: baseline;

  gap: 0.75rem;

  margin-top: auto;

  margin-bottom: 1.2rem;

}



.current-price {

  font-size: 1.35rem;

  font-weight: 700;

  color: var(--color-primary);

}



.old-price {

  font-size: 0.92rem;

  color: var(--color-text-light);

  text-decoration: line-through;

}



.discount-badge {

  font-size: 0.75rem;

  font-weight: 700;

  color: #ef4444;

  background: #fee2e2;

  padding: 0.15rem 0.45rem;

  border-radius: var(--radius-sm);

}



/* Botón Añadir al Carrito en Tarjeta */

.card-add-btn {

  width: 100%;

  background: var(--color-bg-subtle);

  border: 1px solid var(--color-border);

  color: var(--color-primary);

  font-weight: 600;

  padding: 0.75rem 1rem;

  border-radius: var(--radius-md);

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 0.5rem;

  transition: var(--transition-fast);

}



.card-add-btn:hover {

  background: var(--color-primary);

  color: #ffffff;

  border-color: var(--color-primary);

}



/* Estado Vacío */

.empty-state {

  text-align: center;

  padding: 5rem 2rem;

  background: var(--color-bg-surface);

  border-radius: var(--radius-lg);

  border: 1px dashed var(--color-border);

}



.empty-icon {

  font-size: 3.5rem;

  color: var(--color-text-light);

  margin-bottom: 1rem;

}



.empty-state h3 {

  font-size: 1.4rem;

  margin-bottom: 0.5rem;

}



.empty-state p {

  color: var(--color-text-muted);

  max-width: 450px;

  margin: 0 auto 1.5rem;

}



/* Drawer del Carrito Lateral */

.cart-backdrop {

  position: fixed;

  inset: 0;

  background: rgba(15, 23, 42, 0.6);

  backdrop-filter: blur(4px);

  z-index: 150;

  opacity: 0;

  visibility: hidden;

  transition: var(--transition-normal);

}



.cart-backdrop.open {

  opacity: 1;

  visibility: visible;

}



.cart-drawer {

  position: fixed;

  top: 0;

  right: 0;

  width: 100%;

  max-width: 440px;

  height: 100vh;

  background: var(--color-bg-surface);

  z-index: 160;

  display: flex;

  flex-direction: column;

  transform: translateX(100%);

  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);

  box-shadow: -10px 0 30px rgba(0,0,0,0.2);

}



.cart-drawer.open {

  transform: translateX(0);

}



.cart-drawer-header {

  padding: 1.4rem 1.5rem;

  border-bottom: 1px solid var(--color-border);

  display: flex;

  align-items: center;

  justify-content: space-between;

}



.cart-header-title {

  display: flex;

  align-items: center;

  gap: 0.65rem;

}



.cart-header-title i {

  font-size: 1.4rem;

  color: var(--color-secondary);

}



.cart-header-title h3 {

  font-size: 1.2rem;

  font-weight: 700;

}



.cart-items-tag {

  font-size: 0.78rem;

  background: var(--color-bg-subtle);

  padding: 0.2rem 0.6rem;

  border-radius: var(--radius-full);

  color: var(--color-text-muted);

  font-weight: 600;

}



.cart-close-btn {

  font-size: 1.75rem;

  color: var(--color-text-muted);

  line-height: 1;

  padding: 0.2rem;

}



.cart-close-btn:hover {

  color: var(--color-text-main);

}



/* Envío Gratis Barra de Progreso */

.free-shipping-progress {

  background: #fdf8ed;

  border-bottom: 1px solid #fef3c7;

  padding: 0.85rem 1.5rem;

}



.shipping-info-text {

  font-size: 0.82rem;

  color: #92400e;

  margin-bottom: 0.5rem;

}



.progress-bar-bg {

  width: 100%;

  height: 6px;

  background: #fde68a;

  border-radius: var(--radius-full);

  overflow: hidden;

}



.progress-bar-fill {

  height: 100%;

  background: linear-gradient(90deg, #f59e0b, #10b981);

  border-radius: var(--radius-full);

  transition: width 0.4s ease;

}



/* Lista de Artículos del Carrito */

.cart-items-list {

  flex: 1;

  overflow-y: auto;

  padding: 1.25rem 1.5rem;

  display: flex;

  flex-direction: column;

  gap: 1.2rem;

}



.cart-empty-message {

  text-align: center;

  padding: 3rem 1rem;

  color: var(--color-text-muted);

}



.cart-empty-message i {

  font-size: 3rem;

  color: var(--color-text-light);

  margin-bottom: 0.8rem;

  display: block;

}



.cart-item {

  display: flex;

  gap: 1rem;

  padding-bottom: 1.2rem;

  border-bottom: 1px solid var(--color-border);

}



.cart-item-image {

  width: 72px;

  height: 72px;

  border-radius: var(--radius-md);

  object-fit: cover;

  background: var(--color-bg-subtle);

  flex-shrink: 0;

}



.cart-item-details {

  flex: 1;

  display: flex;

  flex-direction: column;

  justify-content: space-between;

}



.cart-item-title {

  font-size: 0.92rem;

  font-weight: 600;

  color: var(--color-text-main);

  line-height: 1.3;

}



.cart-item-price {

  font-size: 0.9rem;

  font-weight: 700;

  color: var(--color-primary);

}



.cart-item-controls {

  display: flex;

  align-items: center;

  justify-content: space-between;

  margin-top: 0.5rem;

}



.qty-control {

  display: flex;

  align-items: center;

  border: 1px solid var(--color-border);

  border-radius: var(--radius-sm);

  background: var(--color-bg-subtle);

}



.qty-btn {

  width: 26px;

  height: 26px;

  display: flex;

  align-items: center;

  justify-content: center;

  font-weight: 700;

  color: var(--color-text-main);

}



.qty-btn:hover {

  background: #ffffff;

}



.qty-number {

  font-size: 0.85rem;

  font-weight: 600;

  padding: 0 0.5rem;

}



.cart-remove-item-btn {

  color: var(--color-text-light);

  font-size: 1.1rem;

  transition: var(--transition-fast);

}



.cart-remove-item-btn:hover {

  color: var(--color-danger);

}



/* Footer Carrito */

.cart-drawer-footer {

  border-top: 1px solid var(--color-border);

  padding: 1.25rem 1.5rem;

  background: #ffffff;

  display: flex;

  flex-direction: column;

  gap: 0.75rem;

}



.cart-summary-row {

  display: flex;

  justify-content: space-between;

  font-size: 0.9rem;

  color: var(--color-text-muted);

}



.cart-summary-row.total-row {

  font-size: 1.15rem;

  font-weight: 700;

  color: var(--color-primary);

  border-top: 1px dashed var(--color-border);

  padding-top: 0.75rem;

}



.cart-checkout-actions {

  display: flex;

  flex-direction: column;

  gap: 0.6rem;

  margin-top: 0.5rem;

}



.safe-checkout-note {

  font-size: 0.75rem;

  color: var(--color-text-muted);

  text-align: center;

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 0.35rem;

  margin-top: 0.25rem;

}



/* Modales Genéricos */

.modal-backdrop {

  position: fixed;

  inset: 0;

  background: rgba(15, 23, 42, 0.75);

  backdrop-filter: blur(6px);

  z-index: 200;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 1.5rem;

  opacity: 0;

  visibility: hidden;

  transition: var(--transition-normal);

}



.modal-backdrop.open {

  opacity: 1;

  visibility: visible;

}



.modal-container {

  background: #ffffff;

  border-radius: var(--radius-lg);

  max-width: 600px;

  width: 100%;

  max-height: 90vh;

  overflow-y: auto;

  position: relative;

  box-shadow: var(--shadow-xl);

  padding: 2.2rem;

  transform: translateY(20px) scale(0.97);

  transition: var(--transition-bounce);

}



.modal-backdrop.open .modal-container {

  transform: translateY(0) scale(1);

}



.modal-close-btn {

  position: absolute;

  top: 1.2rem;

  right: 1.4rem;

  font-size: 1.8rem;

  color: var(--color-text-muted);

  line-height: 1;

  transition: var(--transition-fast);

}



.modal-close-btn:hover {

  color: var(--color-primary);

}



.modal-header {

  margin-bottom: 1.8rem;

}



.modal-header i {

  font-size: 2.2rem;

  color: var(--color-secondary);

  margin-bottom: 0.5rem;

  display: inline-block;

}



.whatsapp-modal-icon {

  color: var(--color-whatsapp) !important;

}



.modal-header h3 {

  font-size: 1.4rem;

  font-weight: 700;

  color: var(--color-primary);

  margin-bottom: 0.3rem;

}



.modal-header p {

  font-size: 0.88rem;

  color: var(--color-text-muted);

}



/* Modal Vista Rápida */

.quickview-modal {

  max-width: 820px;

  padding: 0;

  overflow: hidden;

}



.quickview-body {

  display: grid;

  grid-template-columns: 1fr 1fr;

}



.quickview-image-side {

  height: 480px;

  background: #f1f5f9;

}



.quickview-image-side img {

  width: 100%;

  height: 100%;

  object-fit: cover;

}



.quickview-info-side {

  padding: 2.5rem;

  display: flex;

  flex-direction: column;

  justify-content: center;

}



.quickview-desc {

  font-size: 0.92rem;

  color: var(--color-text-muted);

  line-height: 1.6;

  margin: 1rem 0 1.5rem;

}



.quickview-meta-item {

  font-size: 0.85rem;

  margin-bottom: 0.4rem;

  color: var(--color-text-muted);

}



.quickview-meta-item strong {

  color: var(--color-text-main);

}



/* Formularios de Modales */

.form-group {

  margin-bottom: 1.2rem;

}



.form-row {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 1rem;

}



.form-group label {

  display: block;

  font-size: 0.88rem;

  font-weight: 600;

  margin-bottom: 0.4rem;

  color: var(--color-primary);

}



.form-group input,

.form-group select,

.form-group textarea {

  width: 100%;

  padding: 0.75rem 1rem;

  border: 1px solid var(--color-border);

  border-radius: var(--radius-md);

  background: var(--color-bg-subtle);

  color: var(--color-text-main);

  outline: none;

  transition: var(--transition-fast);

}



.form-group input:focus,

.form-group select:focus,

.form-group textarea:focus {

  background: #ffffff;

  border-color: var(--color-secondary);

  box-shadow: 0 0 0 3px rgba(197, 155, 39, 0.15);

}



.form-help {

  display: block;

  font-size: 0.75rem;

  color: var(--color-text-muted);

  margin-top: 0.3rem;

}



.form-actions {

  display: flex;

  justify-content: flex-end;

  gap: 1rem;

  margin-top: 1.8rem;

}



.checkout-order-preview {

  background: var(--color-bg-subtle);

  border-radius: var(--radius-md);

  padding: 1rem;

  margin-bottom: 1.4rem;

  font-size: 0.85rem;

  max-height: 140px;

  overflow-y: auto;

}



/* Toast Flotante */

.toast-notification {

  position: fixed;

  bottom: 2rem;

  right: 2rem;

  background: var(--color-primary);

  color: #ffffff;

  padding: 0.9rem 1.4rem;

  border-radius: var(--radius-full);

  display: flex;

  align-items: center;

  gap: 0.75rem;

  box-shadow: var(--shadow-xl);

  z-index: 300;

  transform: translateY(100px);

  opacity: 0;

  transition: var(--transition-bounce);

  pointer-events: none;

  border: 1px solid rgba(255, 255, 255, 0.1);

}



.toast-notification.show {

  transform: translateY(0);

  opacity: 1;

}



.toast-icon {

  font-size: 1.4rem;

  color: var(--color-secondary);

}



/* Footer Prémium */

.main-footer {

  background: #0f1216;

  color: #94a3b8;

  padding: 5rem 1.5rem 2rem;

  border-top: 1px solid rgba(255, 255, 255, 0.08);

}



.footer-container {

  max-width: 1380px;

  margin: 0 auto;

  display: grid;

  grid-template-columns: 2fr 1fr 1fr 1.5fr;

  gap: 3rem;

  margin-bottom: 4rem;

}



.brand-col .footer-logo .logo-title {

  color: #ffffff;

}



.footer-desc {

  font-size: 0.9rem;

  line-height: 1.6;

  margin: 1.2rem 0 1.5rem;

  max-width: 340px;

}



.social-links {

  display: flex;

  gap: 0.85rem;

}



.social-links a {

  width: 40px;

  height: 40px;

  background: rgba(255, 255, 255, 0.05);

  border-radius: var(--radius-full);

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 1.25rem;

  color: #ffffff;

  transition: var(--transition-fast);

}



.social-links a:hover {

  background: var(--color-secondary);

  color: #ffffff;

  transform: translateY(-2px);

}



.footer-col h4 {

  color: #ffffff;

  font-size: 1.05rem;

  font-weight: 700;

  margin-bottom: 1.25rem;

}



.footer-col ul {

  list-style: none;

}



.footer-col li {

  margin-bottom: 0.75rem;

}



.footer-col a:hover {

  color: #f7d280;

  padding-left: 4px;

}



.newsletter-form {

  display: flex;

  gap: 0.5rem;

  margin-top: 1rem;

}



.newsletter-form input {

  flex: 1;

  padding: 0.7rem 1rem;

  background: rgba(255, 255, 255, 0.06);

  border: 1px solid rgba(255, 255, 255, 0.12);

  border-radius: var(--radius-md);

  color: #ffffff;

  outline: none;

  font-size: 0.88rem;

}



.newsletter-form input:focus {

  border-color: var(--color-secondary);

}



.footer-bottom {

  max-width: 1380px;

  margin: 0 auto;

  padding-top: 2rem;

  border-top: 1px solid rgba(255, 255, 255, 0.06);

  display: flex;

  align-items: center;

  justify-content: space-between;

  font-size: 0.85rem;

  flex-wrap: wrap;

  gap: 1rem;

}



.payment-badges {

  display: flex;

  gap: 1.5rem;

  color: #cbd5e1;

}



.payment-badges span {

  display: flex;

  align-items: center;

  gap: 0.4rem;

}



/* Responsive Breakpoints */

@media (max-width: 1024px) {

  .footer-container {

    grid-template-columns: 1fr 1fr;

    gap: 2.5rem;

  }



  .catalog-sidebar {

    position: fixed;

    top: 0;

    left: 0;

    bottom: 0;

    width: 320px;

    z-index: 180;

    transform: translateX(-100%);

    transition: transform 0.3s ease;

    overflow-y: auto;

  }



  .catalog-sidebar.open {

    transform: translateX(0);

    box-shadow: 10px 0 30px rgba(0,0,0,0.25);

  }



  .close-sidebar-btn {

    display: block;

  }



  .quickview-body {

    grid-template-columns: 1fr;

  }



  .quickview-image-side {

    height: 300px;

  }

}



@media (max-width: 768px) {

  .header-container {

    padding: 0.75rem 1rem;

  }



  .header-search-bar {

    display: none; /* Movil prioritiza botones compactos */

  }



  .btn-label-desktop {

    display: none;

  }



  .hero-section {

    padding: 3.5rem 1rem 2.5rem;

  }



  .hero-features {

    grid-template-columns: 1fr;

    margin-top: 2.5rem;

  }



  .section-header-inline {

    flex-direction: column;

    align-items: flex-start;

    gap: 0.5rem;

  }



  .form-row {

    grid-template-columns: 1fr;

  }



  .footer-container {

    grid-template-columns: 1fr;

  }



  .footer-bottom {

    flex-direction: column;

    text-align: center;

  }

}



/* ==========================================================================

   TEMAS DE COLOR Y MODO OSCURO

   ========================================================================== */

body[data-palette="gold"] {

  --color-secondary: #c59b27;

  --color-secondary-hover: #b0871d;

}

body[data-palette="emerald"] {

  --color-secondary: #059669;

  --color-secondary-hover: #047857;

}

body[data-palette="rose"] {

  --color-secondary: #e11d48;

  --color-secondary-hover: #be123c;

}

body[data-palette="sapphire"] {

  --color-secondary: #2563eb;

  --color-secondary-hover: #1d4ed8;

}

body[data-palette="violet"] {

  --color-secondary: #7c3aed;

  --color-secondary-hover: #6d28d9;

}

body[data-palette="onyx"] {

  --color-secondary: #475569;

  --color-secondary-hover: #334155;

}



/* Modo Oscuro Global */

body.dark-theme {

  --color-bg-body: #0a0d14;

  --color-bg-surface: #121824;

  --color-bg-subtle: #1a2233;

  --color-text-main: #f1f5f9;

  --color-text-muted: #94a3b8;

  --color-text-light: #64748b;

  --color-border: #242f44;

}



body.dark-theme .main-header {

  background: rgba(18, 24, 36, 0.95);

}



body.dark-theme .header-search-bar input,

body.dark-theme .currency-selector select,

body.dark-theme .action-btn,

body.dark-theme .category-pill,

body.dark-theme .catalog-controls,

body.dark-theme .catalog-sidebar,

body.dark-theme .product-card,

body.dark-theme .cart-drawer,

body.dark-theme .modal-container,

body.dark-theme .checkout-order-preview {

  background-color: var(--color-bg-surface);

  border-color: var(--color-border);

  color: var(--color-text-main);

}



body.dark-theme .cart-drawer-footer {

  background-color: var(--color-bg-surface);

}



body.dark-theme .form-group input,

body.dark-theme .form-group select,

body.dark-theme .form-group textarea,

body.dark-theme .qty-control,

body.dark-theme .sorting-controls select,

body.dark-theme .filter-toggle-btn {

  background-color: var(--color-bg-subtle);

  border-color: var(--color-border);

  color: var(--color-text-main);

}



body.dark-theme .floating-btn {

  background: rgba(26, 34, 51, 0.95);

  color: #f1f5f9;

}



body.dark-theme .card-add-btn {

  background-color: var(--color-bg-subtle);

  color: #f1f5f9;

  border-color: var(--color-border);

}

body.dark-theme .card-add-btn:hover {

  background-color: var(--color-secondary);

  border-color: var(--color-secondary);

  color: #ffffff;

}



/* ==========================================================================

   MODO EDICIÓN EN VIVO & BARRA FLOTANTE

   ========================================================================== */

.edit-mode-active .live-editable {

  position: relative;

  outline: 2px dashed var(--color-secondary);

  outline-offset: 4px;

  cursor: pointer;

  border-radius: var(--radius-sm);

  transition: var(--transition-fast);

}



.edit-mode-active .live-editable:hover {

  background: rgba(197, 155, 39, 0.1);

}



.edit-mode-active .live-editable::after {

  content: "✎ Editar";

  position: absolute;

  top: -12px;

  right: -5px;

  background: var(--color-secondary);

  color: #ffffff;

  font-size: 0.68rem;

  font-weight: 700;

  padding: 0.15rem 0.45rem;

  border-radius: var(--radius-full);

  pointer-events: none;

  font-family: var(--font-main);

  box-shadow: 0 2px 5px rgba(0,0,0,0.2);

  z-index: 50;

}



/* Barra flotante inferior de Modo Edición */

.edit-mode-floating-bar {

  display: none !important;

  position: fixed;

  bottom: 1.5rem;

  left: 50%;

  transform: translateX(-50%) translateY(30px);

  background: linear-gradient(135deg, #111418, #1f2937);

  color: #ffffff;

  border: 1px solid var(--color-secondary);

  box-shadow: 0 10px 30px rgba(0,0,0,0.4), 0 0 15px rgba(197, 155, 39, 0.3);

  padding: 0.75rem 1.4rem;

  border-radius: var(--radius-full);

  align-items: center;

  gap: 1.2rem;

  z-index: 500;

  transition: transform 0.3s ease, opacity 0.3s ease;

  opacity: 0;

}



.edit-mode-floating-bar.active {

  display: flex !important;

  transform: translateX(-50%) translateY(0);

  opacity: 1;

}



.edit-bar-status {

  display: flex;

  align-items: center;

  gap: 0.6rem;

  font-size: 0.88rem;

  font-weight: 600;

}



.pulsing-dot {

  width: 10px;

  height: 10px;

  background-color: #10b981;

  border-radius: 50%;

  box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);

  animation: pulse-ring 1.8s infinite;

}



@keyframes pulse-ring {

  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }

  70% { transform: scale(1.1); box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); }

  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }

}



.edit-bar-actions {

  display: flex;

  align-items: center;

  gap: 0.6rem;

}



.btn-edit-bar {

  padding: 0.45rem 0.9rem;

  font-size: 0.82rem;

  border-radius: var(--radius-full);

  font-weight: 600;

  display: flex;

  align-items: center;

  gap: 0.4rem;

}



/* ==========================================================================

   MODAL DE CONFIGURACIÓN DE LA TIENDA (SETTINGS)

   ========================================================================== */

.store-settings-modal {

  max-width: 760px;

}



.settings-tabs-header {

  display: flex;

  gap: 0.5rem;

  border-bottom: 2px solid var(--color-border);

  margin-bottom: 1.5rem;

  overflow-x: auto;

  scrollbar-width: none;

}



.settings-tab-btn {

  padding: 0.75rem 1.2rem;

  font-size: 0.9rem;

  font-weight: 600;

  color: var(--color-text-muted);

  border-bottom: 2px solid transparent;

  margin-bottom: -2px;

  transition: var(--transition-fast);

  white-space: nowrap;

  display: flex;

  align-items: center;

  gap: 0.5rem;

}



.settings-tab-btn:hover {

  color: var(--color-text-main);

}



.settings-tab-btn.active {

  color: var(--color-secondary);

  border-bottom-color: var(--color-secondary);

}



.settings-tab-panel {

  display: none;

}



.settings-tab-panel.active {

  display: block;

  animation: fadeIn 0.25s ease;

}



@keyframes fadeIn {

  from { opacity: 0; transform: translateY(4px); }

  to { opacity: 1; transform: translateY(0); }

}



/* Paleta de colores predefinida selector */

.palette-picker-grid {

  display: grid;

  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));

  gap: 0.85rem;

  margin-top: 0.5rem;

}



.palette-card {

  border: 2px solid var(--color-border);

  border-radius: var(--radius-md);

  padding: 0.75rem;

  text-align: center;

  cursor: pointer;

  transition: var(--transition-fast);

  display: flex;

  flex-direction: column;

  align-items: center;

  gap: 0.5rem;

}



.palette-card:hover {

  border-color: var(--color-text-muted);

  transform: translateY(-2px);

}



.palette-card.selected {

  border-color: var(--color-secondary);

  background: rgba(197, 155, 39, 0.08);

}



.palette-color-preview {

  width: 34px;

  height: 34px;

  border-radius: 50%;

  box-shadow: 0 2px 6px rgba(0,0,0,0.15);

}



.palette-card span {

  font-size: 0.8rem;

  font-weight: 600;

}



/* Tarjeta informativa de Banco en Checkout */

.bank-details-card {

  background: var(--color-bg-subtle);

  border: 1px solid var(--color-border);

  border-left: 4px solid var(--color-secondary);

  border-radius: var(--radius-md);

  padding: 1rem 1.2rem;

  margin-bottom: 1.2rem;

}



.bank-details-header {

  display: flex;

  align-items: center;

  justify-content: space-between;

  margin-bottom: 0.5rem;

}



.bank-details-header strong {

  font-size: 0.9rem;

  color: var(--color-text-main);

  display: flex;

  align-items: center;

  gap: 0.4rem;

}



.copy-bank-btn {

  font-size: 0.78rem;

  color: var(--color-secondary);

  font-weight: 600;

  cursor: pointer;

  display: flex;

  align-items: center;

  gap: 0.3rem;

  padding: 0.2rem 0.5rem;

  border-radius: var(--radius-sm);

  background: rgba(197, 155, 39, 0.1);

}



.copy-bank-btn:hover {

  background: rgba(197, 155, 39, 0.2);

}



.bank-data-row {

  font-size: 0.84rem;

  color: var(--color-text-muted);

  margin-bottom: 0.25rem;

}



.bank-data-row strong {

  color: var(--color-text-main);

}



/* ==========================================================================

   SUBCATEGORÍAS, GALERÍA MULTIMEDIA Y VISORES DE VIDEO / INSTRUCTIVO

   ========================================================================== */

.subcategories-container {

  display: flex;

  align-items: center;

  gap: 0.6rem;

  flex-wrap: wrap;

  margin-top: -1.2rem;

  margin-bottom: 2rem;

  padding: 0.75rem 1rem;

  background: var(--color-bg-surface);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-md);

  box-shadow: var(--shadow-sm);

}



.subcategories-label {

  font-size: 0.8rem;

  font-weight: 700;

  text-transform: uppercase;

  color: var(--color-secondary);

  letter-spacing: 0.5px;

  margin-right: 0.3rem;

}



.subcat-chip {

  padding: 0.35rem 0.85rem;

  border-radius: var(--radius-full);

  font-size: 0.82rem;

  font-weight: 600;

  border: 1px solid var(--color-border);

  background: var(--color-bg-subtle);

  color: var(--color-text-main);

  cursor: pointer;

  transition: var(--transition-fast);

}



.subcat-chip:hover {

  border-color: var(--color-secondary);

  background: #ffffff;

  transform: translateY(-1px);

}



.subcat-chip.active {

  background: var(--color-secondary);

  color: #ffffff;

  border-color: var(--color-secondary);

}



/* Badges de Video / Instructivo en las tarjetas de producto */

.card-media-badges {

  position: absolute;

  bottom: 0.75rem;

  left: 0.75rem;

  display: flex;

  gap: 0.4rem;

  z-index: 2;

}



.media-tag-pill {

  background: rgba(15, 23, 42, 0.85);

  color: #ffffff;

  backdrop-filter: blur(4px);

  padding: 0.22rem 0.55rem;

  border-radius: var(--radius-full);

  font-size: 0.72rem;

  font-weight: 600;

  display: inline-flex;

  align-items: center;

  gap: 0.3rem;

  border: 1px solid rgba(255, 255, 255, 0.18);

  box-shadow: 0 2px 5px rgba(0,0,0,0.2);

}



.media-tag-pill.has-video {

  color: #f7d280;

  border-color: rgba(197, 155, 39, 0.5);

}



.media-tag-pill.has-inst {

  color: #6ee7b7;

  border-color: rgba(16, 185, 129, 0.5);

}



/* Miniaturas en modal QuickView */

.quickview-gallery-thumbnails {

  display: flex;

  gap: 0.5rem;

  padding: 0.65rem 1rem;

  background: var(--color-bg-subtle);

  border-top: 1px solid var(--color-border);

  overflow-x: auto;

}



.thumb-btn {

  width: 48px;

  height: 48px;

  border-radius: var(--radius-sm);

  border: 2px solid transparent;

  overflow: hidden;

  cursor: pointer;

  flex-shrink: 0;

  opacity: 0.65;

  transition: var(--transition-fast);

  padding: 0;

}



.thumb-btn:hover, .thumb-btn.active {

  opacity: 1;

  border-color: var(--color-secondary);

}



.thumb-btn img {

  width: 100%;

  height: 100%;

  object-fit: cover;

}



/* Modales para Video e Instructivo */

.media-modal-container {

  max-width: 720px;

  padding: 1.8rem;

}



.video-player-wrapper {

  width: 100%;

  border-radius: var(--radius-md);

  overflow: hidden;

  background: #000000;

  box-shadow: var(--shadow-lg);

  margin-top: 0.8rem;

}



.video-player-wrapper video {

  width: 100%;

  max-height: 480px;

  display: block;

}



.instructivo-viewer-wrapper {

  max-height: 520px;

  overflow-y: auto;

  border-radius: var(--radius-md);

  border: 1px solid var(--color-border);

  background: #f8fafc;

  text-align: center;

  padding: 1rem;

  margin-top: 0.8rem;

}



.instructivo-viewer-wrapper img {

  max-width: 100%;

  margin: 0 auto;

  display: block;

  box-shadow: var(--shadow-md);

}



.instructivo-pdf-card {

  text-align: center;

  padding: 2.5rem 1.5rem;

}



.instructivo-pdf-card i {

  font-size: 3.5rem;

  color: #ef4444;

  margin-bottom: 0.8rem;

  display: inline-block;

}



/* ==========================================================================

   GESTOR DE GALERÍA MULTIFOTO EN MODAL EDITAR PRODUCTO

   ========================================================================== */

.gallery-manager-group {

  background: var(--color-bg-subtle);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-md);

  padding: 1.1rem;

}



.gallery-counter-badge {

  font-size: 0.75rem;

  background: var(--color-secondary);

  color: #ffffff;

  padding: 0.2rem 0.65rem;

  border-radius: var(--radius-full);

  font-weight: 700;

}



.edit-gallery-grid {

  display: grid;

  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));

  gap: 0.85rem;

  margin-bottom: 1rem;

  max-height: 280px;

  overflow-y: auto;

  padding: 0.4rem;

  background: var(--color-bg-surface);

  border-radius: var(--radius-md);

  border: 1px solid var(--color-border);

}



.edit-gallery-card {

  position: relative;

  border-radius: var(--radius-sm);

  overflow: hidden;

  background: var(--color-bg-subtle);

  border: 2px solid var(--color-border);

  transition: var(--transition-fast);

  display: flex;

  flex-direction: column;

}



.edit-gallery-card:hover {

  border-color: var(--color-secondary);

  box-shadow: var(--shadow-sm);

}



.edit-gallery-card.is-cover {

  border-color: var(--color-secondary);

  box-shadow: 0 0 0 2px rgba(197, 155, 39, 0.35);

}



.gallery-img-thumb {

  width: 100%;

  height: 105px;

  object-fit: cover;

  display: block;

}



.gallery-cover-tag {

  position: absolute;

  top: 6px;

  left: 6px;

  background: var(--color-secondary);

  color: #ffffff;

  font-size: 0.68rem;

  font-weight: 700;

  padding: 0.15rem 0.45rem;

  border-radius: 4px;

  display: flex;

  align-items: center;

  gap: 0.25rem;

  box-shadow: 0 2px 5px rgba(0,0,0,0.25);

}



.gallery-card-actions {

  display: flex;

  background: rgba(15, 23, 42, 0.85);

  padding: 0.3rem 0.4rem;

  gap: 0.35rem;

  justify-content: space-between;

}



.btn-card-action {

  font-size: 0.72rem;

  padding: 0.25rem 0.45rem;

  border-radius: 4px;

  border: none;

  cursor: pointer;

  display: flex;

  align-items: center;

  gap: 0.25rem;

  transition: var(--transition-fast);

  color: #ffffff;

}



.btn-make-cover {

  background: rgba(255, 255, 255, 0.2);

}

.btn-make-cover:hover {

  background: var(--color-secondary);

}



.btn-delete-photo {

  background: rgba(239, 68, 68, 0.35);

  color: #fca5a5;

}

.btn-delete-photo:hover {

  background: #ef4444;

  color: #ffffff;

}



/* --- GESTIÓN DE VIDEOS EN EDICIÓN --- */

.edit-video-list {

  display: flex;

  flex-direction: column;

  gap: 0.5rem;

  margin-bottom: 0.75rem;

  max-height: 220px;

  overflow-y: auto;

  padding: 0.35rem;

  background: var(--color-bg-surface);

  border-radius: var(--radius-md);

  border: 1px solid var(--color-border);

}



.edit-video-card {

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 0.75rem;

  padding: 0.6rem 0.85rem;

  background: var(--color-bg-subtle);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-md);

  transition: var(--transition-fast);

}



.edit-video-card:hover {

  border-color: #e11d48;

  background: rgba(225, 29, 72, 0.03);

}



.video-thumb-icon {

  width: 42px;

  height: 38px;

  border-radius: 6px;

  background: rgba(225, 29, 72, 0.12);

  color: #e11d48;

  display: flex;

  align-items: center;

  justify-content: center;

  flex-shrink: 0;

  font-size: 1.25rem;

}



.btn-test-video {

  padding: 0.35rem 0.65rem;

  font-size: 0.75rem;

  border-radius: var(--radius-sm);

  background: rgba(225, 29, 72, 0.1);

  color: #e11d48;

  border: 1px solid rgba(225, 29, 72, 0.25);

  cursor: pointer;

  display: flex;

  align-items: center;

  gap: 0.25rem;

  font-weight: 600;

  transition: var(--transition-fast);

}



.btn-test-video:hover {

  background: #e11d48;

  color: #ffffff;

}



.btn-delete-video {

  width: 32px;

  height: 32px;

  border-radius: var(--radius-sm);

  background: rgba(239, 68, 68, 0.15);

  color: #ef4444;

  border: 1px solid rgba(239, 68, 68, 0.3);

  cursor: pointer;

  display: flex;

  align-items: center;

  justify-content: center;

  transition: var(--transition-fast);

}



.btn-delete-video:hover {

  background: #ef4444;

  color: #ffffff;

}



.gallery-add-box {

  background: var(--color-bg-surface);

  padding: 0.85rem;

  border-radius: var(--radius-md);

  border: 1px dashed var(--color-border);

}



.gallery-add-inputs {

  display: flex;

  gap: 0.5rem;

  margin-bottom: 0.6rem;

}



.gallery-add-inputs input {

  flex: 1;

  font-size: 0.85rem;

}



.gallery-upload-row {

  display: flex;

  align-items: center;

  gap: 0.75rem;

  flex-wrap: wrap;

}



.btn-upload-photo {

  font-size: 0.82rem;

  padding: 0.45rem 0.85rem;

  cursor: pointer;

  margin-bottom: 0;

}



.upload-hint {

  font-size: 0.76rem;

  color: var(--color-text-muted);

}



/* Badge de multifoto en la tarjeta del producto */

.badge-multifoto {

  position: absolute;

  top: 10px;

  right: 10px;

  background: rgba(15, 23, 42, 0.75);

  backdrop-filter: blur(4px);

  color: #ffffff;

  font-size: 0.72rem;

  font-weight: 600;

  padding: 0.25rem 0.55rem;

  border-radius: var(--radius-full);

  display: flex;

  align-items: center;

  gap: 0.3rem;

  pointer-events: none;

  z-index: 2;

  box-shadow: 0 2px 6px rgba(0,0,0,0.15);

}



/* ==========================================================================

   TARJETAS DE PRESETS DE NOMBRES SUGERIDOS (ISRAEL, GERARDO Y JUANA)

   ========================================================================== */

.brand-presets-box {

  background: rgba(197, 155, 39, 0.08);

  border: 1px solid rgba(197, 155, 39, 0.3);

  border-radius: var(--radius-md);

  padding: 0.9rem 1.1rem;

  margin-bottom: 1.4rem;

}



.brand-presets-header {

  display: flex;

  align-items: center;

  gap: 0.5rem;

  font-size: 0.92rem;

  color: var(--color-primary);

}



.brand-presets-grid {

  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));

  gap: 0.6rem;

}



.btn-brand-preset {

  background: var(--color-bg-surface);

  border: 1.5px solid var(--color-border);

  border-radius: var(--radius-sm);

  padding: 0.65rem 0.8rem;

  text-align: left;

  cursor: pointer;

  display: flex;

  flex-direction: column;

  transition: var(--transition-fast);

}



.btn-brand-preset:hover, .btn-brand-preset.active-preset {

  border-color: var(--color-secondary);

  background: #ffffff;

  transform: translateY(-1px);

  box-shadow: 0 4px 12px rgba(197, 155, 39, 0.18);

}



.preset-name {

  font-weight: 700;

  font-size: 0.9rem;

  color: var(--color-primary);

}



.preset-sub {

  font-size: 0.72rem;

  color: var(--color-secondary);

  font-weight: 600;

  margin-top: 0.15rem;

}



/* ==========================================================================

   GESTIÓN Y EDICIÓN DE CATEGORÍAS

   ========================================================================== */

.category-pill-wrapper {

  position: relative;

  display: inline-flex;

  align-items: center;

}



.category-pill-actions {

  position: absolute;

  top: -10px;

  right: -4px;

  display: flex;

  gap: 4px;

  z-index: 15;

}



.btn-pill-action {

  width: 24px;

  height: 24px;

  border-radius: 50%;

  border: 2px solid #ffffff;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  font-size: 0.75rem;

  cursor: pointer;

  box-shadow: 0 3px 8px rgba(0,0,0,0.3);

  transition: transform 0.15s ease, background 0.15s ease;

  padding: 0;

  line-height: 1;

}



.btn-pill-action.btn-pill-rename {

  background: var(--color-secondary);

  color: #ffffff;

}



.btn-pill-action.btn-pill-rename:hover {

  transform: scale(1.22);

  background: var(--color-primary);

}



.btn-pill-action.btn-pill-delete {

  background: #ef4444;

  color: #ffffff;

}



.btn-pill-action.btn-pill-delete:hover {

  transform: scale(1.22);

  background: #dc2626;

}



.add-cat-pill {

  border: 1.5px dashed var(--color-secondary) !important;

  color: var(--color-secondary) !important;

  background: rgba(197, 155, 39, 0.08) !important;

}



.add-cat-pill:hover {

  background: var(--color-secondary) !important;

  color: #ffffff !important;

}



/* Selector de Iconos para Categorías */

.category-icon-picker {

  display: grid;

  grid-template-columns: repeat(8, 1fr);

  gap: 0.5rem;

  max-height: 140px;

  overflow-y: auto;

  padding: 0.5rem;

  background: var(--color-bg-base);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-md);

}



.cat-icon-opt {

  display: flex;

  align-items: center;

  justify-content: center;

  height: 38px;

  border-radius: var(--radius-sm);

  background: var(--color-bg-surface);

  border: 1px solid var(--color-border);

  cursor: pointer;

  font-size: 1.25rem;

  color: var(--color-text-main);

  transition: all 0.15s ease;

}



.cat-icon-opt:hover {

  border-color: var(--color-secondary);

  transform: translateY(-2px);

  color: var(--color-secondary);

}



.cat-icon-opt.selected {

  background: var(--color-secondary);

  color: #ffffff;

  border-color: var(--color-secondary);

  box-shadow: 0 2px 8px rgba(197, 155, 39, 0.4);

}



.settings-categories-list {

  display: flex;

  flex-direction: column;

  gap: 0.75rem;

  max-height: 280px;

  overflow-y: auto;

  padding: 0.2rem;

}



.category-setting-item {

  display: flex;

  align-items: center;

  gap: 0.75rem;

  padding: 0.75rem 0.9rem;

  background: var(--color-bg-surface);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-sm);

  transition: var(--transition-fast);

}



.category-setting-item:hover {

  border-color: var(--color-secondary);

}



.cat-item-icon-box {

  width: 38px;

  height: 38px;

  border-radius: var(--radius-sm);

  background: var(--color-bg-subtle);

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 1.2rem;

  color: var(--color-secondary);

  flex-shrink: 0;

}



.cat-item-input {

  flex: 1;

  padding: 0.45rem 0.65rem;

  font-size: 0.88rem;

  font-weight: 600;

  border: 1px solid var(--color-border);

  border-radius: var(--radius-sm);

  background: var(--color-bg-subtle);

}



.cat-item-input:focus {

  border-color: var(--color-secondary);

  background: #ffffff;

}



.cat-item-actions {

  display: flex;

  gap: 0.4rem;

}



.btn-cat-save {

  padding: 0.4rem 0.7rem;

  font-size: 0.75rem;

  background: var(--color-secondary);

  color: #ffffff;

  border: none;

  border-radius: var(--radius-sm);

  cursor: pointer;

  display: flex;

  align-items: center;

  gap: 0.3rem;

}



.btn-cat-save:hover {

  background: var(--color-primary);

}



.btn-cat-delete {

  padding: 0.4rem 0.7rem;

  font-size: 0.75rem;

  background: rgba(239, 68, 68, 0.1);

  color: #ef4444;

  border: 1px solid rgba(239, 68, 68, 0.2);

  border-radius: var(--radius-sm);

  cursor: pointer;

  display: flex;

  align-items: center;

  gap: 0.3rem;

}



.btn-cat-delete:hover {

  background: #ef4444;

  color: #ffffff;

}



/* ==========================================================================

   SISTEMA DE USUARIOS, AUTENTICACIÓN Y ROLES (ADMIN / CLIENTE)

   ========================================================================== */

.user-auth-wrapper {

  position: relative;

}



#userAuthBtn.is-admin {

  background: rgba(197, 155, 39, 0.15);

  color: var(--color-secondary);

  border: 1px solid var(--color-secondary);

  font-weight: 600;

}



#userAuthBtn.is-client {

  background: rgba(16, 185, 129, 0.1);

  color: #059669;

  border: 1px solid rgba(16, 185, 129, 0.3);

}



.user-dropdown-menu {

  position: absolute;

  top: calc(100% + 10px);

  right: 0;

  width: 250px;

  background: var(--color-bg-surface);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-md);

  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);

  z-index: 100;

  padding: 0.6rem;

  display: none;

  animation: dropdown-fade 0.2s ease-out;

}



.user-dropdown-menu.show {

  display: block;

}



@keyframes dropdown-fade {

  from { opacity: 0; transform: translateY(-6px); }

  to { opacity: 1; transform: translateY(0); }

}



.user-dropdown-header {

  display: flex;

  align-items: center;

  gap: 0.75rem;

  padding: 0.5rem 0.4rem;

}



.user-avatar-badge {

  width: 40px;

  height: 40px;

  border-radius: 50%;

  background: var(--color-bg-subtle);

  border: 1px solid var(--color-border);

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 1.25rem;

  flex-shrink: 0;

}



.user-info-text {

  display: flex;

  flex-direction: column;

  overflow: hidden;

}



.user-info-text strong {

  font-size: 0.9rem;

  color: var(--color-text-main);

  white-space: nowrap;

  overflow: hidden;

  text-overflow: ellipsis;

}



.user-info-text span {

  font-size: 0.75rem;

  color: var(--color-text-muted);

}



.user-dropdown-divider {

  height: 1px;

  background: var(--color-border);

  margin: 0.4rem 0;

}



.user-dropdown-item {

  display: flex;

  align-items: center;

  gap: 0.65rem;

  width: 100%;

  padding: 0.6rem 0.75rem;

  border: none;

  background: none;

  color: var(--color-text-main);

  font-size: 0.85rem;

  border-radius: var(--radius-sm);

  cursor: pointer;

  text-align: left;

  transition: var(--transition-fast);

}



.user-dropdown-item:hover {

  background: var(--color-bg-subtle);

  color: var(--color-secondary);

}



.user-dropdown-item.item-logout {

  color: #ef4444;

}



.user-dropdown-item.item-logout:hover {

  background: rgba(239, 68, 68, 0.08);

}



/* Modal de Autenticación */

.auth-modal-container {

  max-width: 460px;

  padding: 2rem 2.25rem;

}



.auth-modal-header {

  text-align: center;

  margin-bottom: 1.5rem;

}



.auth-icon-circle {

  width: 58px;

  height: 58px;

  border-radius: 50%;

  background: rgba(197, 155, 39, 0.12);

  color: var(--color-secondary);

  font-size: 2rem;

  display: flex;

  align-items: center;

  justify-content: center;

  margin: 0 auto 0.75rem;

}



.auth-modal-header h3 {

  font-size: 1.35rem;

  margin: 0 0 0.35rem;

  color: var(--color-primary);

}



.auth-modal-header p {

  font-size: 0.85rem;

  color: var(--color-text-muted);

  margin: 0;

}



.auth-tabs-nav {

  display: flex;

  gap: 0.5rem;

  background: var(--color-bg-subtle);

  padding: 0.35rem;

  border-radius: var(--radius-md);

  margin-bottom: 1.5rem;

}



.auth-tab-btn {

  flex: 1;

  padding: 0.6rem 0.5rem;

  border: none;

  background: transparent;

  color: var(--color-text-muted);

  font-size: 0.85rem;

  font-weight: 600;

  border-radius: var(--radius-sm);

  cursor: pointer;

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 0.4rem;

  transition: var(--transition-fast);

}



.auth-tab-btn.active {

  background: var(--color-bg-surface);

  color: var(--color-primary);

  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);

}



.input-with-icon {

  position: relative;

  display: flex;

  align-items: center;

}



.input-with-icon i {

  position: absolute;

  left: 0.95rem;

  color: var(--color-text-muted);

  font-size: 1.15rem;

  pointer-events: none;

}



.input-with-icon input {

  width: 100%;

  padding: 0.75rem 0.9rem 0.75rem 2.65rem;

  border-radius: var(--radius-md);

  border: 1px solid var(--color-border);

  background: var(--color-bg-surface);

  color: var(--color-text-main);

  font-size: 0.9rem;

  transition: var(--transition-fast);

}



.input-with-icon input:focus {

  border-color: var(--color-secondary);

  box-shadow: 0 0 0 3px rgba(197, 155, 39, 0.15);

}



.auth-quick-demo-box {

  background: rgba(197, 155, 39, 0.07);

  border: 1px dashed var(--color-secondary);

  border-radius: var(--radius-md);

  padding: 0.75rem 1rem;

  margin-top: 1.25rem;

}



/* Tabla de Gestión de Usuarios en Ajustes */

.users-management-table {

  display: flex;

  flex-direction: column;

  gap: 0.6rem;

  max-height: 280px;

  overflow-y: auto;

}



.user-mgmt-card {

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 1rem;

  padding: 0.75rem 1rem;

  background: var(--color-bg-surface);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-md);

}



.user-mgmt-info {

  display: flex;

  align-items: center;

  gap: 0.75rem;

}



.user-role-badge {

  font-size: 0.7rem;

  font-weight: 700;

  padding: 0.2rem 0.55rem;

  border-radius: var(--radius-full);

  text-transform: uppercase;

}



.user-role-badge.role-admin {

  background: rgba(197, 155, 39, 0.15);

  color: var(--color-secondary);

  border: 1px solid rgba(197, 155, 39, 0.3);

}



.user-role-badge.role-client {

  background: rgba(16, 185, 129, 0.12);

  color: #059669;

  border: 1px solid rgba(16, 185, 129, 0.25);

}



.user-mgmt-actions {

  display: flex;

  align-items: center;

  justify-content: flex-end;

  flex-shrink: 0;

}



.btn-delete-user {

  display: inline-flex;

  align-items: center;

  gap: 0.4rem;

  background: rgba(239, 68, 68, 0.12);

  color: #dc2626;

  border: 1px solid rgba(239, 68, 68, 0.3);

  padding: 0.42rem 0.85rem;

  border-radius: var(--radius-sm);

  font-size: 0.82rem;

  font-weight: 700;

  cursor: pointer;

  transition: all 0.2s ease;

}



.btn-delete-user:hover {

  background: #dc2626;

  color: #ffffff;

  border-color: #dc2626;

  transform: translateY(-1px);

  box-shadow: 0 3px 8px rgba(220, 38, 38, 0.25);

}



.user-delete-confirm-box {

  display: inline-flex;

  align-items: center;

  gap: 0.45rem;

  background: rgba(239, 68, 68, 0.08);

  border: 1px solid rgba(239, 68, 68, 0.35);

  padding: 0.3rem 0.6rem;

  border-radius: var(--radius-sm);

  animation: fadeInUserConfirm 0.2s ease;

}



@keyframes fadeInUserConfirm {

  from { opacity: 0; transform: scale(0.96); }

  to { opacity: 1; transform: scale(1); }

}



.user-delete-confirm-label {

  font-size: 0.76rem;

  font-weight: 700;

  color: #dc2626;

  margin-right: 0.2rem;

  white-space: nowrap;

}



.btn-confirm-delete-yes {

  background: #dc2626;

  color: #ffffff;

  border: none;

  padding: 0.32rem 0.7rem;

  border-radius: 4px;

  font-size: 0.76rem;

  font-weight: 700;

  cursor: pointer;

  display: inline-flex;

  align-items: center;

  gap: 0.25rem;

  transition: background 0.15s ease;

}



.btn-confirm-delete-yes:hover {

  background: #b91c1c;

}



.btn-confirm-delete-no {

  background: #e2e8f0;

  color: #334155;

  border: none;

  padding: 0.32rem 0.65rem;

  border-radius: 4px;

  font-size: 0.76rem;

  font-weight: 600;

  cursor: pointer;

  transition: background 0.15s ease;

}



.btn-confirm-delete-no:hover {

  background: #cbd5e1;

  color: #0f172a;

}



.user-current-pill {

  display: inline-flex;

  align-items: center;

  gap: 0.3rem;

  background: rgba(197, 155, 39, 0.12);

  color: var(--color-secondary);

  border: 1px solid rgba(197, 155, 39, 0.3);

  padding: 0.3rem 0.65rem;

  border-radius: var(--radius-full);

  font-size: 0.75rem;

  font-weight: 700;

}



/* ==========================================================================

   BANNER DE MODO VISTA CLIENTE

   ========================================================================== */

.client-preview-banner {

  position: sticky;

  top: 0;

  left: 0;

  width: 100%;

  background: linear-gradient(135deg, #1e293b, #0f172a);

  border-bottom: 2px solid var(--color-secondary);

  color: #f8fafc;

  padding: 0.65rem 1.5rem;

  z-index: 999;

  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.25);

  animation: slideDownPreview 0.3s ease;

}



@keyframes slideDownPreview {

  from { transform: translateY(-100%); }

  to { transform: translateY(0); }

}



.client-preview-content {

  max-width: 1300px;

  margin: 0 auto;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 1rem;

  flex-wrap: wrap;

}



.client-preview-badge {

  display: flex;

  align-items: center;

  gap: 0.55rem;

  font-size: 0.88rem;

}



.client-preview-badge i {

  font-size: 1.25rem;

  color: var(--color-secondary);

}



#btnExitClientPreview {

  padding: 0.4rem 0.9rem;

  font-size: 0.82rem;

  font-weight: 700;

  border-radius: var(--radius-full);

  display: flex;

  align-items: center;

  gap: 0.4rem;

  background: #ffffff;

  color: #0f172a;

  border: none;

  cursor: pointer;

  transition: var(--transition-fast);

}



#btnExitClientPreview:hover {

  background: var(--color-secondary);

  color: #ffffff;

}



/* ==========================================================================

   PRODUCTOS OCULTOS / PAUSADOS (SIN STOCK)

   ========================================================================== */

.product-card.is-hidden-paused {

  border: 2px dashed #f59e0b !important;

  opacity: 0.85;

  background: rgba(245, 158, 11, 0.03);

}



.badge-oculto-stock {

  position: absolute;

  top: 10px;

  left: 10px;

  background: #d97706;

  color: #ffffff;

  padding: 4px 8px;

  border-radius: var(--radius-sm);

  font-size: 0.72rem;

  font-weight: 700;

  letter-spacing: 0.5px;

  display: flex;

  align-items: center;

  gap: 4px;

  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);

  z-index: 5;

  text-transform: uppercase;

}



.btn-card-reactivate {

  display: inline-flex;

  align-items: center;

  gap: 0.35rem;

  background: #10b981;

  color: #ffffff;

  border: none;

  padding: 0.35rem 0.65rem;

  border-radius: var(--radius-sm);

  font-size: 0.75rem;

  font-weight: 700;

  cursor: pointer;

  transition: var(--transition-fast);

  margin-top: 0.4rem;

}



.btn-card-reactivate:hover {

  background: #059669;

}



.filter-paused-btn {

  background: rgba(245, 158, 11, 0.12);

  border-color: #f59e0b;

  color: #d97706;

  font-weight: 600;

}



.filter-paused-btn.active {

  background: #d97706;

  color: #ffffff;

}



/* ==========================================================================

   BOTONES Y ESTILOS DE GESTIÓN DE INSTRUCTIVOS

   ========================================================================== */

.btn-test-instructivo {

  display: inline-flex;

  align-items: center;

  gap: 0.35rem;

  background: rgba(37, 99, 235, 0.12);

  color: #2563eb;

  border: 1px solid rgba(37, 99, 235, 0.25);

  padding: 0.35rem 0.65rem;

  border-radius: var(--radius-sm);

  font-size: 0.76rem;

  font-weight: 600;

  cursor: pointer;

  transition: var(--transition-fast);

}



.btn-test-instructivo:hover {

  background: #2563eb;

  color: #ffffff;

}



.btn-delete-instructivo {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  background: rgba(239, 68, 68, 0.1);

  color: #ef4444;

  border: 1px solid rgba(239, 68, 68, 0.25);

  width: 28px;

  height: 28px;

  border-radius: var(--radius-sm);

  cursor: pointer;

  transition: var(--transition-fast);

}



.btn-delete-instructivo:hover {

  background: #ef4444;

  color: #ffffff;

}



/* ==========================================================================

   MEJORAS VISOR DE FOTOS, RESPONSIVE, ZOOM LIGHTBOX & CONTADOR DE VISITAS

   ========================================================================== */



/* 1. Badge Contador de Visitas en Cabecera Admin */

.admin-visits-badge {

  display: inline-flex;

  align-items: center;

  gap: 0.45rem;

  padding: 0.45rem 0.85rem;

  background: rgba(197, 155, 39, 0.12);

  border: 1.5px solid var(--color-secondary);

  border-radius: var(--radius-full);

  color: var(--color-primary);

  font-size: 0.82rem;

  font-weight: 600;

  box-shadow: 0 2px 8px rgba(197, 155, 39, 0.15);

  user-select: none;

  animation: fadeIn 0.3s ease;

}



.dark-theme .admin-visits-badge {

  background: rgba(197, 155, 39, 0.2);

  color: #fef08a;

}



.admin-visits-badge i {

  color: var(--color-secondary);

  font-size: 1.1rem;

}



.admin-visits-badge strong {

  color: var(--color-secondary);

  font-size: 0.95rem;

  font-weight: 800;

  font-feature-settings: "tnum";

}



/* 2. Tarjeta de producto clickeable con efecto responsivo */

.product-card {

  cursor: pointer;

  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease;

}



.product-card:hover {

  transform: translateY(-4px);

  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);

}



.dark-theme .product-card:hover {

  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.45);

}



/* 3. Modal de Vista Rápida / Características Responsivo y Auto-Ajustable */

.quickview-modal {

  max-width: 920px;

  width: 92vw;

  max-height: 88vh;

  padding: 0;

  overflow: hidden;

  border-radius: var(--radius-lg);

  display: flex;

  flex-direction: column;

  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.35);

  animation: modalScaleUp 0.28s cubic-bezier(0.16, 1, 0.3, 1);

}



@keyframes modalScaleUp {

  from { opacity: 0; transform: scale(0.95) translateY(10px); }

  to { opacity: 1; transform: scale(1) translateY(0); }

}



.quickview-body {

  display: grid;

  grid-template-columns: 1.15fr 1fr;

  max-height: 88vh;

  overflow-y: auto;

  scrollbar-width: thin;

  scrollbar-color: var(--color-secondary) transparent;

}



.quickview-body::-webkit-scrollbar {

  width: 7px;

}



.quickview-body::-webkit-scrollbar-thumb {

  background: rgba(197, 155, 39, 0.45);

  border-radius: 4px;

}



.quickview-image-side {

  height: auto;

  min-height: 480px;

  background: var(--color-bg-subtle);

  display: flex;

  flex-direction: column;

  border-right: 1px solid var(--color-border);

  position: relative;

}



.quickview-main-image-wrap {

  flex: 1;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 1.5rem;

  background: var(--color-bg-subtle);

  position: relative;

  cursor: zoom-in;

  overflow: hidden;

}



.quickview-main-image-wrap img {

  max-height: 420px;

  max-width: 100%;

  width: auto;

  height: auto;

  object-fit: contain;

  transition: transform 0.25s ease;

  border-radius: var(--radius-sm);

}



.quickview-main-image-wrap:hover img {

  transform: scale(1.03);

}



.quickview-zoom-hint {

  position: absolute;

  bottom: 12px;

  right: 12px;

  background: rgba(15, 23, 42, 0.75);

  backdrop-filter: blur(8px);

  color: #ffffff;

  font-size: 0.75rem;

  font-weight: 600;

  padding: 0.35rem 0.75rem;

  border-radius: var(--radius-full);

  display: inline-flex;

  align-items: center;

  gap: 0.35rem;

  pointer-events: none;

  opacity: 0.9;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);

}



.quickview-gallery-thumbnails {

  display: flex;

  gap: 0.65rem;

  padding: 0.85rem 1.25rem;

  background: var(--color-bg);

  border-top: 1px solid var(--color-border);

  overflow-x: auto;

  scrollbar-width: thin;

}



.quickview-gallery-thumbnails::-webkit-scrollbar {

  height: 5px;

}



.quickview-gallery-thumbnails::-webkit-scrollbar-thumb {

  background: rgba(197, 155, 39, 0.35);

  border-radius: 4px;

}



.quickview-gallery-thumbnails .thumb-btn {

  width: 60px;

  height: 60px;

  flex-shrink: 0;

  border: 2px solid transparent;

  border-radius: var(--radius-sm);

  background: var(--color-bg-subtle);

  cursor: pointer;

  overflow: hidden;

  padding: 2px;

  transition: all 0.2s ease;

}



.quickview-gallery-thumbnails .thumb-btn img {

  width: 100%;

  height: 100%;

  object-fit: cover;

  border-radius: 2px;

}



.quickview-gallery-thumbnails .thumb-btn.active {

  border-color: var(--color-secondary);

  box-shadow: 0 0 0 2px rgba(197, 155, 39, 0.35);

  transform: translateY(-2px);

}



.quickview-gallery-thumbnails .thumb-btn:hover {

  border-color: var(--color-secondary);

}



.quickview-info-side {

  padding: 2.25rem 2rem;

  display: flex;

  flex-direction: column;

  overflow-y: auto;

  max-height: 88vh;

  scrollbar-width: thin;

  scrollbar-color: rgba(197, 155, 39, 0.35) transparent;

}



.quickview-info-side::-webkit-scrollbar {

  width: 6px;

}



.quickview-info-side::-webkit-scrollbar-thumb {

  background: rgba(197, 155, 39, 0.4);

  border-radius: 4px;

}



/* 4. Adaptación Responsiva para Celulares / Pantallas Pequeñas */

@media (max-width: 768px) {

  .quickview-modal {

    width: 95vw;

    max-width: 95vw;

    max-height: 92vh;

    border-radius: var(--radius-lg);

  }



  .quickview-body {

    grid-template-columns: 1fr;

    max-height: 92vh;

  }



  .quickview-image-side {

    min-height: auto;

    height: 310px;

    border-right: none;

    border-bottom: 1px solid var(--color-border);

  }



  .quickview-main-image-wrap {

    padding: 0.85rem;

  }



  .quickview-main-image-wrap img {

    max-height: 230px;

  }



  .quickview-info-side {

    padding: 1.25rem 1.1rem;

    max-height: none;

  }



  .quickview-gallery-thumbnails {

    padding: 0.6rem 0.85rem;

  }



  .quickview-gallery-thumbnails .thumb-btn {

    width: 50px;

    height: 50px;

  }



  .admin-visits-badge .btn-label-desktop {

    display: none;

  }

  .admin-visits-badge {

    padding: 0.35rem 0.6rem;

    font-size: 0.78rem;

  }

}



/* 5. Modal Visor Lightbox en Pantalla Completa con Zoom */

.photo-lightbox-backdrop {

  position: fixed;

  inset: 0;

  background: rgba(10, 15, 29, 0.96);

  backdrop-filter: blur(14px);

  z-index: 10000;

  display: flex;

  flex-direction: column;

  opacity: 0;

  visibility: hidden;

  transition: opacity 0.25s ease, visibility 0.25s ease;

  user-select: none;

  overflow: hidden;

}



.photo-lightbox-backdrop.open {

  opacity: 1;

  visibility: visible;

}



.photo-lightbox-header {

  display: flex;

  justify-content: space-between;

  align-items: center;

  padding: 0.85rem 1.5rem;

  background: rgba(15, 23, 42, 0.75);

  border-bottom: 1px solid rgba(255, 255, 255, 0.1);

  z-index: 10;

}



.photo-lightbox-counter {

  color: #f1f5f9;

  font-size: 0.9rem;

  font-weight: 600;

  letter-spacing: 0.3px;

}



.photo-lightbox-toolbar {

  display: flex;

  align-items: center;

  gap: 0.5rem;

}



.lightbox-tool-btn {

  background: rgba(255, 255, 255, 0.08);

  border: 1px solid rgba(255, 255, 255, 0.15);

  color: #ffffff;

  width: 38px;

  height: 38px;

  border-radius: var(--radius-sm);

  display: inline-flex;

  align-items: center;

  justify-content: center;

  font-size: 1.15rem;

  cursor: pointer;

  transition: all 0.2s ease;

}



.lightbox-tool-btn:hover {

  background: rgba(255, 255, 255, 0.2);

  transform: translateY(-1px);

}



.lightbox-tool-btn.zoom-level-btn {

  width: auto;

  padding: 0 0.85rem;

  font-size: 0.82rem;

  font-weight: 700;

  color: var(--color-secondary);

}



.lightbox-tool-btn.close-lightbox-btn {

  background: rgba(239, 68, 68, 0.2);

  border-color: rgba(239, 68, 68, 0.4);

  color: #fca5a5;

  margin-left: 0.5rem;

}



.lightbox-tool-btn.close-lightbox-btn:hover {

  background: #ef4444;

  color: #ffffff;

}



.photo-lightbox-stage {

  flex: 1;

  display: flex;

  align-items: center;

  justify-content: center;

  position: relative;

  overflow: hidden;

  touch-action: none;

  cursor: grab;

}



.photo-lightbox-stage.is-zoomed {

  cursor: grab;

}



.photo-lightbox-stage.is-dragging {

  cursor: grabbing;

}



.photo-lightbox-stage img {

  max-width: 90vw;

  max-height: 75vh;

  object-fit: contain;

  transition: transform 0.15s ease-out;

  transform-origin: center center;

  pointer-events: auto;

}



.lightbox-arrow {

  position: absolute;

  top: 50%;

  transform: translateY(-50%);

  width: 48px;

  height: 48px;

  border-radius: 50%;

  background: rgba(255, 255, 255, 0.12);

  border: 1px solid rgba(255, 255, 255, 0.2);

  color: #ffffff;

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 1.6rem;

  cursor: pointer;

  transition: all 0.2s ease;

  z-index: 10;

}



.lightbox-arrow:hover {

  background: var(--color-secondary);

  color: var(--color-primary);

  transform: translateY(-50%) scale(1.08);

}



.lightbox-arrow.prev { left: 20px; }

.lightbox-arrow.next { right: 20px; }



.photo-lightbox-thumbs-bar {

  display: flex;

  justify-content: center;

  align-items: center;

  gap: 0.65rem;

  padding: 0.85rem 1rem;

  background: rgba(15, 23, 42, 0.85);

  border-top: 1px solid rgba(255, 255, 255, 0.1);

  overflow-x: auto;

  max-width: 100vw;

  scrollbar-width: thin;

  z-index: 10;

}



.photo-lightbox-thumbs-bar .lb-thumb {

  width: 52px;

  height: 52px;

  flex-shrink: 0;

  border-radius: var(--radius-sm);

  border: 2px solid transparent;

  background: rgba(255, 255, 255, 0.05);

  cursor: pointer;

  overflow: hidden;

  padding: 2px;

  transition: all 0.2s ease;

}



.photo-lightbox-thumbs-bar .lb-thumb img {

  width: 100%;

  height: 100%;

  object-fit: cover;

  border-radius: 2px;

}



.photo-lightbox-thumbs-bar .lb-thumb.active {

  border-color: var(--color-secondary);

  transform: translateY(-2px);

  box-shadow: 0 0 10px rgba(197, 155, 39, 0.6);

}



@media (max-width: 768px) {

  .lightbox-arrow {

    width: 38px;

    height: 38px;

    font-size: 1.3rem;

  }

  .lightbox-arrow.prev { left: 8px; }

  .lightbox-arrow.next { right: 8px; }

  .photo-lightbox-stage img {

    max-width: 96vw;

    max-height: 70vh;

  }

  .photo-lightbox-header {

    padding: 0.65rem 1rem;

  }

  .photo-lightbox-thumbs-bar .lb-thumb {

    width: 44px;

    height: 44px;

  }

}





/* ==========================================================================

   MEJORAS PRO: FILTROS MULTIMEDIA, AUTOCOMPLETADO EN VIVO Y COMPARTIR PRODUCTO

   ========================================================================== */



/* Botones de Filtro Rápido Multimedia */

.filter-media-btn {

  display: inline-flex;

  align-items: center;

  gap: 0.4rem;

  padding: 0.45rem 0.85rem;

  border-radius: var(--radius-full);

  font-size: 0.82rem;

  font-weight: 600;

  border: 1px solid var(--color-border);

  background: var(--color-bg-surface);

  color: var(--color-text);

  cursor: pointer;

  transition: all 0.2s ease;

  white-space: nowrap;

}



.filter-media-btn i {

  font-size: 1.05rem;

  color: var(--color-secondary);

}



.filter-media-btn:hover {

  border-color: var(--color-secondary);

  background: rgba(197, 155, 39, 0.08);

  transform: translateY(-1px);

}



.filter-media-btn.active {

  background: var(--color-secondary);

  color: #fff;

  border-color: var(--color-secondary);

  box-shadow: 0 2px 8px rgba(197, 155, 39, 0.35);

}



.filter-media-btn.active i {

  color: #fff;

}



.filter-media-btn strong {

  font-weight: 800;

}



/* Buscador con Autocompletado en Vivo */

.header-search-bar {

  position: relative !important;

}



.search-suggestions-dropdown {

  position: absolute;

  top: calc(100% + 6px);

  left: 0;

  right: 0;

  background: var(--color-bg-surface);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-md);

  box-shadow: 0 14px 35px rgba(0, 0, 0, 0.18);

  max-height: 440px;

  overflow-y: auto;

  z-index: 1200;

  display: flex;

  flex-direction: column;

  animation: fadeInSugg 0.18s ease-out;

}



@keyframes fadeInSugg {

  from { opacity: 0; transform: translateY(-4px); }

  to { opacity: 1; transform: translateY(0); }

}



.search-suggestion-item {

  display: flex;

  align-items: center;

  gap: 0.75rem;

  padding: 0.65rem 0.85rem;

  cursor: pointer;

  border-bottom: 1px solid var(--color-border);

  transition: background 0.15s ease;

  text-decoration: none;

  color: inherit;

}



.search-suggestion-item:last-of-type {

  border-bottom: none;

}



.search-suggestion-item:hover,

.search-suggestion-item.selected {

  background: var(--color-bg-subtle);

}



.search-sugg-img {

  width: 44px;

  height: 44px;

  border-radius: var(--radius-sm);

  object-fit: cover;

  border: 1px solid var(--color-border);

  flex-shrink: 0;

}



.search-sugg-info {

  flex: 1;

  min-width: 0;

  display: flex;

  flex-direction: column;

  gap: 0.15rem;

}



.search-sugg-title {

  font-size: 0.88rem;

  color: var(--color-primary);

  white-space: nowrap;

  overflow: hidden;

  text-overflow: ellipsis;

  font-weight: 700;

}



.search-sugg-title mark {

  background: rgba(197, 155, 39, 0.25);

  color: var(--color-primary);

  padding: 0 2px;

  border-radius: 2px;

}



.search-sugg-cat {

  font-size: 0.75rem;

  color: var(--color-text-muted);

  white-space: nowrap;

  overflow: hidden;

  text-overflow: ellipsis;

}



.search-sugg-meta {

  display: flex;

  flex-direction: column;

  align-items: flex-end;

  gap: 0.25rem;

  flex-shrink: 0;

}



.search-sugg-price {

  font-size: 0.92rem;

  font-weight: 800;

  color: var(--color-primary);

}



.search-sugg-badges {

  display: flex;

  gap: 0.3rem;

}



.search-sugg-badge {

  font-size: 0.68rem;

  padding: 2px 5px;

  border-radius: var(--radius-sm);

  display: inline-flex;

  align-items: center;

  gap: 2px;

  font-weight: 700;

}



.search-sugg-badge.has-vid {

  background: rgba(197, 155, 39, 0.15);

  color: var(--color-secondary);

}



.search-sugg-badge.has-doc {

  background: rgba(16, 185, 129, 0.15);

  color: var(--color-success);

}



.search-sugg-empty {

  padding: 1.25rem 1rem;

  text-align: center;

  font-size: 0.88rem;

  color: var(--color-text-muted);

}



.search-sugg-footer {

  padding: 0.7rem 1rem;

  background: var(--color-bg-subtle);

  font-size: 0.82rem;

  font-weight: 700;

  color: var(--color-secondary);

  text-align: center;

  cursor: pointer;

  border-top: 1px solid var(--color-border);

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 0.4rem;

  transition: background 0.15s ease;

}



.search-sugg-footer:hover {

  background: rgba(197, 155, 39, 0.12);

}



/* Botón Compartir Producto */

.btn-share-product {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 0.45rem;

  padding: 0.75rem 0.9rem;

  border-radius: var(--radius-md);

  font-size: 0.88rem;

  font-weight: 700;

  border: 1px solid var(--color-border);

  background: var(--color-bg-surface);

  color: var(--color-text);

  cursor: pointer;

  transition: all 0.2s ease;

}



.btn-share-product:hover {

  border-color: #25D366;

  color: #16a34a;

  background: rgba(37, 211, 102, 0.08);

}



/* ==========================================================================

   SECCIÓN DE CATÁLOGOS DIGITALES INTERACTIVOS (OPTIMIZADO MÓVIL Y 3D RÁPIDO)

   ========================================================================== */



.digital-catalogs-section {

  padding: 4.5rem 1rem 5rem;

  background: linear-gradient(180deg, var(--color-bg) 0%, rgba(197, 155, 39, 0.04) 50%, var(--color-bg) 100%);

  border-top: 1px solid var(--color-border);

  position: relative;

  overflow: hidden;

}



.digital-catalogs-container {

  max-width: 1200px;

  margin: 0 auto;

  box-sizing: border-box;

}



.catalogs-section-header {

  text-align: center;

  max-width: 760px;

  margin: 0 auto 2.5rem;

  padding: 0 0.5rem;

  box-sizing: border-box;

}



.catalog-badge-pill {

  display: inline-flex;

  align-items: center;

  gap: 0.5rem;

  background: rgba(197, 155, 39, 0.12);

  color: var(--color-secondary);

  border: 1px solid rgba(197, 155, 39, 0.35);

  padding: 0.35rem 0.9rem;

  border-radius: 999px;

  font-size: 0.8rem;

  font-weight: 700;

  text-transform: uppercase;

  letter-spacing: 0.05em;

  margin-bottom: 0.85rem;

}



.catalogs-main-title {

  font-family: var(--font-heading);

  font-size: 2.15rem;

  color: var(--color-primary);

  margin-bottom: 0.75rem;

  font-weight: 700;

  line-height: 1.25;

}



.catalogs-sub-text {

  font-size: 1.02rem;

  color: var(--color-text-muted);

  line-height: 1.55;

  margin-bottom: 1.25rem;

}



/* Caja de Horarios y Pedidos - 100% Responsiva para celular */

.catalogs-schedule-box {

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 0.65rem;

  background: var(--color-bg-surface);

  border: 1.5px dashed var(--color-secondary);

  padding: 0.85rem 1.25rem;

  border-radius: var(--radius-md);

  font-size: 0.92rem;

  color: var(--color-primary);

  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);

  max-width: 100%;

  margin: 0 auto;

  line-height: 1.45;

  box-sizing: border-box;

  text-align: center;

}



.catalogs-schedule-box strong {

  color: var(--color-secondary);

}



/* Grid de Catálogos */

.catalogs-grid-cards {

  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(280px, 380px));

  justify-content: center;

  gap: 2rem;

  width: 100%;

  box-sizing: border-box;

}



.catalog-card {

  background: var(--color-bg-surface);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-lg);

  overflow: hidden;

  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);

  transition: transform 0.3s ease, box-shadow 0.3s ease;

  display: flex;

  flex-direction: column;

  width: 100%;

  max-width: 380px;

  margin: 0 auto;

  box-sizing: border-box;

}



.catalog-card:hover {

  transform: translateY(-5px);

  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.12);

}



.catalog-cover-box {

  position: relative;

  aspect-ratio: 9 / 13;

  overflow: hidden;

  cursor: pointer;

  background: #111;

}



.catalog-cover-img {

  width: 100%;

  height: 100%;

  object-fit: cover;

  transition: transform 0.4s ease;

  display: block;

}



.catalog-card:hover .catalog-cover-img {

  transform: scale(1.04);

}



.catalog-pages-tag {

  position: absolute;

  top: 12px;

  right: 12px;

  background: rgba(0, 0, 0, 0.78);

  color: #fff;

  font-size: 0.75rem;

  font-weight: 700;

  padding: 0.25rem 0.65rem;

  border-radius: 999px;

  backdrop-filter: blur(4px);

  border: 1px solid rgba(255, 255, 255, 0.2);

}



.catalog-cover-overlay {

  position: absolute;

  inset: 0;

  background: rgba(18, 18, 24, 0.65);

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  gap: 0.5rem;

  color: #fff;

  opacity: 0;

  transition: opacity 0.3s ease;

  font-weight: 700;

  font-size: 1.05rem;

  backdrop-filter: blur(2px);

}



.catalog-cover-overlay i {

  font-size: 2.2rem;

  color: var(--color-secondary);

}



.catalog-cover-box:hover .catalog-cover-overlay {

  opacity: 1;

}



.catalog-info-box {

  padding: 1.25rem;

  display: flex;

  flex-direction: column;

  flex: 1;

  box-sizing: border-box;

}



.catalog-brand-badge {

  font-size: 0.76rem;

  font-weight: 700;

  text-transform: uppercase;

  color: var(--color-secondary);

  letter-spacing: 0.05em;

  margin-bottom: 0.35rem;

}



.catalog-title {

  font-family: var(--font-heading);

  font-size: 1.22rem;

  font-weight: 700;

  color: var(--color-primary);

  margin-bottom: 0.5rem;

  line-height: 1.35;

}



.catalog-desc {

  font-size: 0.88rem;

  color: var(--color-text-muted);

  line-height: 1.5;

  margin-bottom: 1.25rem;

  flex: 1;

}



/* Botones en Tarjeta con ajuste perfecto en cualquier celular */

.catalog-btn-row {

  display: flex;

  flex-direction: column;

  gap: 0.55rem;

  width: 100%;

  margin-top: auto;

  box-sizing: border-box;

}



.catalog-btn-primary {

  width: 100%;

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 0.5rem;

  padding: 0.85rem 1rem;

  font-size: 0.95rem;

  font-weight: 700;

  border-radius: var(--radius-md);

  box-shadow: 0 4px 12px rgba(197, 155, 39, 0.25);

  box-sizing: border-box;

}



.catalog-btn-subrow {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 0.5rem;

  width: 100%;

  box-sizing: border-box;

}



.catalog-btn-sub {

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 0.35rem;

  padding: 0.65rem 0.4rem;

  font-size: 0.82rem;

  font-weight: 600;

  white-space: nowrap;

  border-radius: var(--radius-md);

  box-sizing: border-box;

  text-align: center;

}



.catalog-btn-sub span {

  overflow: hidden;

  text-overflow: ellipsis;

  white-space: nowrap;

}



/* ==========================================================================

   MODAL FLIPBOOK / REVISTA INTERACTIVA 3D

   ========================================================================== */



.flipbook-modal-backdrop {

  position: fixed;

  inset: 0;

  background: rgba(0, 0, 0, 0.88);

  backdrop-filter: blur(10px);

  -webkit-backdrop-filter: blur(10px);

  z-index: 9999;

  display: flex;

  align-items: center;

  justify-content: center;

  opacity: 0;

  visibility: hidden;

  transition: opacity 0.25s ease, visibility 0.25s ease;

  padding: 0.5rem;

  box-sizing: border-box;

}



.flipbook-modal-backdrop.open {

  opacity: 1;

  visibility: visible;

}



.flipbook-modal-container {

  width: 95vw;

  max-width: 1300px;

  height: 94vh;

  max-height: 920px;

  background: #141419;

  border-radius: 14px;

  display: flex;

  flex-direction: column;

  overflow: hidden;

  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.7);

  border: 1px solid rgba(255, 255, 255, 0.08);

  position: relative;

  box-sizing: border-box;

}



/* Barra Superior */

.flipbook-header {

  padding: 0.65rem 1rem;

  background: #1b1b22;

  border-bottom: 1px solid rgba(255, 255, 255, 0.08);

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 0.75rem;

  flex-shrink: 0;

  z-index: 20;

}



.flipbook-title-box {

  display: flex;

  align-items: center;

  gap: 0.75rem;

  color: #fff;

  min-width: 0;

}



.flipbook-title-box strong {

  display: block;

  overflow: hidden;

  text-overflow: ellipsis;

  white-space: nowrap;

  font-size: 0.95rem;

}



.flipbook-header-actions {

  display: flex;

  align-items: center;

  gap: 0.4rem;

  flex-shrink: 0;

}



.btn-flip-ctrl {

  background: rgba(255, 255, 255, 0.08);

  border: 1px solid rgba(255, 255, 255, 0.12);

  color: #fff;

  height: 36px;

  padding: 0 0.65rem;

  border-radius: 8px;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 0.35rem;

  font-size: 0.85rem;

  font-weight: 600;

  cursor: pointer;

  transition: all 0.2s ease;

  text-decoration: none;

}



.btn-flip-ctrl:hover {

  background: rgba(255, 255, 255, 0.18);

  color: #fff;

}



.btn-flip-wa {

  background: #25D366 !important;

  color: #fff !important;

  border-color: #25D366 !important;

}



.btn-flip-wa:hover {

  background: #20bd5a !important;

}



.btn-flip-close {

  width: 36px;

  padding: 0;

  font-size: 1.4rem;

  line-height: 1;

}



/* Escenario del Libro */

.flipbook-stage-wrap {

  flex: 1;

  position: relative;

  display: flex;

  align-items: center;

  justify-content: center;

  overflow: hidden;

  background: radial-gradient(circle at center, #24242e 0%, #111116 100%);

  padding: 0.5rem;

  user-select: none;

  -webkit-user-select: none;

  touch-action: pan-y pinch-zoom;

}



/* Indicador de carga súper elegante */

.flipbook-loader {

  position: absolute;

  inset: 0;

  background: rgba(17, 17, 22, 0.82);

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  gap: 0.85rem;

  z-index: 50;

  color: #fff;

  opacity: 0;

  pointer-events: none;

  transition: opacity 0.2s ease;

}



.flipbook-loader.active {

  opacity: 1;

  pointer-events: auto;

}



.flipbook-spinner {

  width: 44px;

  height: 44px;

  border: 3.5px solid rgba(197, 155, 39, 0.25);

  border-top-color: var(--color-secondary);

  border-radius: 50%;

  animation: flipSpin 0.75s linear infinite;

}



@keyframes flipSpin {

  to { transform: rotate(360deg); }

}



.flipbook-viewport {

  width: 100%;

  height: 100%;

  display: flex;

  align-items: center;

  justify-content: center;

  position: relative;

  overflow: hidden;

}



/* Contenedor del Libro 3D */

.flipbook-deck-stage {

  position: relative;

  display: flex;

  align-items: center;

  justify-content: center;

  perspective: 1800px;

  transform-style: preserve-3d;

  transition: transform 0.25s ease-out;

  cursor: grab;

}



.flipbook-deck-stage.is-dragging {

  cursor: grabbing;

}



/* Tarjeta de Página Activa */

.flip-page-card {

  position: relative;

  background: #ffffff;

  border-radius: 4px;

  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.55), 0 2px 8px rgba(0, 0, 0, 0.3);

  overflow: hidden;

  display: flex;

  align-items: center;

  justify-content: center;

  transform-origin: center center;

  transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.35s ease;

  user-select: none;

}



.flip-page-img {

  width: 100%;

  height: 100%;

  object-fit: contain;

  display: block;

  pointer-events: none;

}



/* Animaciones de Hojeo 3D */

.flip-page-card.flipping-next {

  transform: rotateY(-90deg) scale(0.96);

  opacity: 0.4;

}



.flip-page-card.flipping-prev {

  transform: rotateY(90deg) scale(0.96);

  opacity: 0.4;

}



/* Flechas de Navegación */

.flip-nav-arrow {

  position: absolute;

  top: 50%;

  transform: translateY(-50%);

  width: 46px;

  height: 46px;

  border-radius: 50%;

  background: rgba(20, 20, 26, 0.75);

  border: 1px solid rgba(255, 255, 255, 0.18);

  color: #fff;

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 1.35rem;

  cursor: pointer;

  z-index: 30;

  transition: all 0.2s ease;

  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);

}



.flip-nav-arrow:hover {

  background: var(--color-secondary);

  color: #111;

  transform: translateY(-50%) scale(1.08);

}



.flip-nav-arrow.prev { left: 12px; }

.flip-nav-arrow.next { right: 12px; }



/* Barra Inferior */

.flipbook-footer-bar {

  background: #1b1b22;

  border-top: 1px solid rgba(255, 255, 255, 0.08);

  padding: 0.5rem 0.85rem;

  display: flex;

  flex-direction: column;

  gap: 0.45rem;

  flex-shrink: 0;

  z-index: 20;

}



.flipbook-page-selector {

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 0.45rem;

  color: #fff;

}



.btn-flip-jump {

  background: rgba(255, 255, 255, 0.08);

  border: 1px solid rgba(255, 255, 255, 0.1);

  color: #fff;

  width: 30px;

  height: 30px;

  border-radius: 6px;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  cursor: pointer;

  transition: all 0.15s ease;

  font-size: 0.95rem;

}



.btn-flip-jump:hover {

  background: rgba(255, 255, 255, 0.2);

}



#flipbookPageInput {

  width: 52px;

  height: 30px;

  background: #111116;

  border: 1px solid rgba(255, 255, 255, 0.2);

  color: #fff;

  text-align: center;

  border-radius: 6px;

  font-weight: 700;

  font-size: 0.85rem;

}



/* Miniaturas */

.flipbook-thumbnails-scroll {

  display: flex;

  gap: 0.45rem;

  overflow-x: auto;

  overflow-y: hidden;

  padding: 0.2rem 0;

  scrollbar-width: thin;

  scrollbar-color: rgba(197, 155, 39, 0.5) rgba(0, 0, 0, 0.2);

}



.flipbook-thumb-item {

  width: 48px;

  height: 68px;

  background: #111;

  border-radius: 4px;

  overflow: hidden;

  border: 2px solid transparent;

  cursor: pointer;

  flex-shrink: 0;

  opacity: 0.65;

  transition: all 0.15s ease;

  position: relative;

}



.flipbook-thumb-item img {

  width: 100%;

  height: 100%;

  object-fit: cover;

  display: block;

}



.flipbook-thumb-item:hover,

.flipbook-thumb-item.active {

  opacity: 1;

  border-color: var(--color-secondary);

  transform: translateY(-2px);

  box-shadow: 0 4px 10px rgba(197, 155, 39, 0.35);

}



.flipbook-thumb-num {

  position: absolute;

  bottom: 0;

  left: 0;

  right: 0;

  background: rgba(0, 0, 0, 0.78);

  color: #fff;

  font-size: 0.58rem;

  text-align: center;

  font-weight: 700;

  padding: 1px 0;

}



/* Modo Pantalla Completa */

.flipbook-modal-container.is-fullscreen {

  width: 100vw !important;

  height: 100vh !important;

  max-width: 100vw !important;

  max-height: 100vh !important;

  border-radius: 0 !important;

}



/* Responsive Móvil */

@media (max-width: 768px) {

  .flipbook-modal-backdrop {

    padding: 0;

  }

  .flipbook-modal-container {

    width: 100vw !important;

    height: 100vh !important;

    max-height: 100vh !important;

    border-radius: 0 !important;

  }

  .catalogs-main-title {

    font-size: 1.65rem;

  }

  .catalogs-schedule-box {

    padding: 0.75rem 0.85rem;

    font-size: 0.84rem;

    flex-direction: column;

    text-align: center;

    gap: 0.35rem;

  }

  .catalog-info-box {

    padding: 1rem;

  }

  .catalog-btn-sub {

    font-size: 0.78rem;

    padding: 0.6rem 0.25rem;

  }

  .flip-nav-arrow {

    width: 38px;

    height: 38px;

    font-size: 1.1rem;

    background: rgba(20, 20, 26, 0.85);

  }

  .flip-nav-arrow.prev { left: 6px; }

  .flip-nav-arrow.next { right: 6px; }

  .btn-label-desktop {

    display: none;

  }

  .flipbook-header {

    padding: 0.5rem 0.65rem;

  }

  .flipbook-header-actions {

    gap: 0.25rem;

  }

  .btn-flip-ctrl {

    height: 32px;

    padding: 0 0.45rem;

  }

}





/* Botón de WhatsApp en Gestión de Usuarios */

.btn-wa-user {

  background: rgba(37, 211, 102, 0.12);

  border: 1px solid #25D366;

  color: #16a34a;

  padding: 0.35rem 0.65rem;

  border-radius: var(--radius-sm);

  font-size: 0.8rem;

  font-weight: 600;

  display: inline-flex;

  align-items: center;

  gap: 0.35rem;

  text-decoration: none;

  transition: all 0.2s ease;

}



.btn-wa-user:hover {

  background: #25D366;

  color: #fff;

}





/* Barra de Estadísticas de Usuarios en Administración */

.users-stats-bar {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 0.75rem;

  margin-bottom: 1rem;

}



.user-stat-item {

  background: var(--color-bg);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-md);

  padding: 0.65rem 0.85rem;

  text-align: center;

}



.user-stat-item strong {

  display: block;

  font-size: 1.25rem;

  color: var(--color-secondary);

  font-weight: 700;

}



.user-stat-item span {

  font-size: 0.75rem;

  color: var(--color-text-muted);

}



@media (max-width: 600px) {

  .users-stats-bar {

    grid-template-columns: 1fr;

    gap: 0.5rem;

  }

}





/* ==========================================================================

   SISTEMA INTERACTIVO DE PEDIDOS POR CÓDIGO EN CATÁLOGOS DIGITALES (SHOPPABLE FLIPBOOK)

   ========================================================================== */

.btn-flip-order-cart {

  position: relative;

  background: rgba(197, 155, 39, 0.15) !important;

  color: #ffd875 !important;

  border-color: rgba(197, 155, 39, 0.4) !important;

}



.btn-flip-order-cart:hover {

  background: var(--color-secondary) !important;

  color: #000 !important;

}



.catalog-cart-badge {

  position: absolute;

  top: -4px;

  right: -4px;

  background: #e53935;

  color: #fff;

  font-size: 0.7rem;

  font-weight: 700;

  min-width: 18px;

  height: 18px;

  line-height: 18px;

  border-radius: 9px;

  padding: 0 4px;

  text-align: center;

  box-shadow: 0 2px 6px rgba(0,0,0,0.4);

  animation: popBadge 0.3s ease;

}



@keyframes popBadge {

  0% { transform: scale(0.5); }

  70% { transform: scale(1.2); }

  100% { transform: scale(1); }

}



/* Barra de Códigos en la Página */

.flipbook-page-products-bar {

  background: rgba(15, 17, 23, 0.92);

  backdrop-filter: blur(12px);

  -webkit-backdrop-filter: blur(12px);

  border-top: 1px solid rgba(255, 255, 255, 0.1);

  padding: 0.5rem 1rem;

  z-index: 10;

}



.fpop-container {

  max-width: 1200px;

  margin: 0 auto;

  display: flex;

  align-items: center;

  gap: 0.85rem;

  flex-wrap: nowrap;

  overflow: hidden;

}



.fpop-header {

  display: flex;

  align-items: center;

  gap: 0.4rem;

  font-size: 0.82rem;

  font-weight: 700;

  color: #f1f5f9;

  white-space: nowrap;

  flex-shrink: 0;

}



.fpop-pills-row {

  display: flex;

  align-items: center;

  gap: 0.5rem;

  overflow-x: auto;

  scrollbar-width: thin;

  padding: 0.2rem 0;

  flex: 1;

}



.fpop-pills-row::-webkit-scrollbar {

  height: 4px;

}

.fpop-pills-row::-webkit-scrollbar-thumb {

  background: rgba(255,255,255,0.2);

  border-radius: 2px;

}



.fpop-empty-hint {

  font-size: 0.78rem;

  color: var(--color-text-muted);

  font-style: italic;

  white-space: nowrap;

}



.fpop-pill-btn {

  display: inline-flex;

  align-items: center;

  gap: 0.4rem;

  background: rgba(255, 255, 255, 0.08);

  border: 1px solid rgba(255, 255, 255, 0.15);

  color: #fff;

  padding: 0.32rem 0.65rem;

  border-radius: 20px;

  font-size: 0.78rem;

  font-weight: 600;

  cursor: pointer;

  white-space: nowrap;

  transition: all 0.2s ease;

  user-select: none;

}



.fpop-pill-btn:hover {

  background: rgba(197, 155, 39, 0.25);

  border-color: var(--color-secondary);

  color: #ffd875;

  transform: translateY(-1px);

}



.fpop-pill-btn.in-cart {

  background: rgba(37, 211, 102, 0.2);

  border-color: #25d366;

  color: #79f2a6;

}



.fpop-pill-btn .fpop-pill-code {

  background: rgba(0,0,0,0.35);

  padding: 0.1rem 0.35rem;

  border-radius: 4px;

  font-family: monospace;

  font-weight: 700;

  color: #ffd875;

}



.fpop-pill-btn .fpop-pill-price {

  color: #38bdf8;

  font-weight: 700;

}



.fpop-custom-box {

  display: flex;

  align-items: center;

  gap: 0.3rem;

  flex-shrink: 0;

}



.fpop-custom-box input {

  background: rgba(0, 0, 0, 0.5);

  border: 1px solid rgba(255, 255, 255, 0.15);

  border-radius: 6px;

  color: #fff;

  padding: 0.3rem 0.55rem;

  font-size: 0.78rem;

  width: 140px;

  outline: none;

  transition: border-color 0.2s;

}



.fpop-custom-box input:focus {

  border-color: var(--color-secondary);

}



.btn-fpop-add {

  background: var(--color-secondary);

  color: #000;

  border: none;

  border-radius: 6px;

  padding: 0.3rem 0.6rem;

  font-size: 0.78rem;

  font-weight: 700;

  cursor: pointer;

  display: inline-flex;

  align-items: center;

  gap: 0.25rem;

  transition: opacity 0.2s;

}



.btn-fpop-add:hover {

  opacity: 0.9;

}



/* Drawer Lateral de Pedido de Catálogo */

.catalog-order-backdrop {

  position: fixed;

  inset: 0;

  background: rgba(0, 0, 0, 0.7);

  backdrop-filter: blur(4px);

  z-index: 100100;

  opacity: 0;

  pointer-events: none;

  transition: opacity 0.3s ease;

}



.catalog-order-backdrop.open {

  opacity: 1;

  pointer-events: auto;

}



.catalog-order-drawer {

  position: fixed;

  top: 0;

  right: 0;

  bottom: 0;

  width: 100%;

  max-width: 440px;

  background: #11141b;

  color: #fff;

  z-index: 100200;

  box-shadow: -8px 0 25px rgba(0,0,0,0.5);

  display: flex;

  flex-direction: column;

  transform: translateX(100%);

  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);

}



.catalog-order-drawer.open {

  transform: translateX(0);

}



.cod-header {

  padding: 1.25rem 1.5rem;

  border-bottom: 1px solid rgba(255, 255, 255, 0.1);

  display: flex;

  align-items: center;

  justify-content: space-between;

}



.cod-title-box {

  display: flex;

  align-items: center;

  gap: 0.75rem;

}



.cod-title-box i {

  font-size: 1.6rem;

  color: var(--color-secondary);

}



.cod-title-box h4 {

  font-size: 1.1rem;

  font-weight: 700;

  margin: 0;

}



.cod-title-box span {

  font-size: 0.8rem;

  color: var(--color-text-muted);

}



.cod-close-btn {

  background: transparent;

  border: none;

  color: #fff;

  font-size: 1.8rem;

  cursor: pointer;

  line-height: 1;

  padding: 0.2rem;

  opacity: 0.7;

  transition: opacity 0.2s;

}



.cod-close-btn:hover {

  opacity: 1;

}



.cod-schedule-notice {

  background: rgba(197, 155, 39, 0.1);

  border-bottom: 1px solid rgba(197, 155, 39, 0.25);

  padding: 0.85rem 1.25rem;

  display: flex;

  align-items: flex-start;

  gap: 0.75rem;

}



.cod-schedule-notice i {

  font-size: 1.3rem;

  color: var(--color-secondary);

  flex-shrink: 0;

  margin-top: 2px;

}



.cod-schedule-notice strong {

  display: block;

  font-size: 0.85rem;

  color: #ffd875;

}



.cod-schedule-notice p {

  font-size: 0.78rem;

  color: #cbd5e1;

  margin: 0.2rem 0 0 0;

  line-height: 1.35;

}



.cod-items-list {

  flex: 1;

  overflow-y: auto;

  padding: 1.25rem;

  display: flex;

  flex-direction: column;

  gap: 0.85rem;

}



.cod-empty-state {

  text-align: center;

  padding: 3rem 1.5rem;

  color: var(--color-text-muted);

}



.cod-empty-state i {

  font-size: 3.5rem;

  color: rgba(255, 255, 255, 0.15);

  margin-bottom: 1rem;

  display: block;

}



.cod-empty-state p {

  font-size: 0.95rem;

  font-weight: 600;

  color: #f1f5f9;

  margin-bottom: 0.4rem;

}



.cod-empty-state span {

  font-size: 0.8rem;

  line-height: 1.4;

  display: block;

}



.cod-item-card {

  background: rgba(255, 255, 255, 0.04);

  border: 1px solid rgba(255, 255, 255, 0.08);

  border-radius: 8px;

  padding: 0.85rem;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 0.75rem;

  transition: border-color 0.2s;

}



.cod-item-card:hover {

  border-color: rgba(197, 155, 39, 0.35);

}



.cod-item-info {

  flex: 1;

  min-width: 0;

}



.cod-item-top {

  display: flex;

  align-items: center;

  gap: 0.45rem;

  margin-bottom: 0.25rem;

}



.cod-badge-catalog {

  font-size: 0.7rem;

  font-weight: 700;

  background: rgba(197, 155, 39, 0.2);

  color: #ffd875;

  padding: 0.1rem 0.4rem;

  border-radius: 4px;

}



.cod-badge-page {

  font-size: 0.72rem;

  color: #94a3b8;

}



.cod-item-name {

  font-size: 0.88rem;

  font-weight: 600;

  color: #fff;

  white-space: nowrap;

  overflow: hidden;

  text-overflow: ellipsis;

  margin-bottom: 0.25rem;

}



.cod-item-bottom {

  display: flex;

  align-items: center;

  gap: 0.5rem;

}



.cod-item-code {

  font-family: monospace;

  font-size: 0.82rem;

  font-weight: 700;

  color: #f59e0b;

}



.cod-item-price {

  font-size: 0.82rem;

  font-weight: 700;

  color: #38bdf8;

}



.cod-qty-controls {

  display: flex;

  align-items: center;

  gap: 0.4rem;

  background: rgba(0, 0, 0, 0.3);

  padding: 0.2rem;

  border-radius: 6px;

  border: 1px solid rgba(255, 255, 255, 0.1);

}



.cod-qty-btn {

  background: transparent;

  border: none;

  color: #fff;

  width: 24px;

  height: 24px;

  border-radius: 4px;

  cursor: pointer;

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 0.75rem;

  transition: background 0.15s;

}



.cod-qty-btn:hover {

  background: rgba(255, 255, 255, 0.15);

}



.cod-qty-val {

  font-size: 0.82rem;

  font-weight: 700;

  min-width: 18px;

  text-align: center;

}



.cod-remove-btn {

  background: transparent;

  border: none;

  color: #ef4444;

  cursor: pointer;

  padding: 0.3rem;

  font-size: 1rem;

  opacity: 0.75;

  transition: opacity 0.2s, transform 0.2s;

}



.cod-remove-btn:hover {

  opacity: 1;

  transform: scale(1.15);

}



.cod-footer {

  padding: 1rem 1.25rem;

  border-top: 1px solid rgba(255, 255, 255, 0.12);

  background: #0f131a;

  flex-shrink: 0;

  box-shadow: 0 -4px 15px rgba(0, 0, 0, 0.4);

}



.cod-total-row {

  display: flex;

  align-items: center;

  justify-content: space-between;

  font-size: 0.95rem;

  color: #cbd5e1;

  margin-bottom: 1rem;

}



.cod-total-row strong {

  font-size: 1.25rem;

  color: var(--color-secondary);

}



@media (max-width: 640px) {

  .flipbook-page-products-bar {

    padding: 0.4rem 0.6rem;

  }

  .fpop-container {

    flex-direction: column;

    align-items: stretch;

    gap: 0.4rem;

  }

  .fpop-custom-box {

    width: 100%;

  }

  .fpop-custom-box input {

    flex: 1;

    width: auto;

  }

  .catalog-order-drawer {

    max-width: 100%;

  }

}





  100% { transform: scale(1.35); opacity: 0; }

}













/* Mejoras para Catálogo Interactivo con Precio Rojo y Condiciones */

.fpop-pill-orig {

  font-size: 0.72rem;

  color: #94a3b8;

  text-decoration: line-through;

  margin-right: 2px;

}



.fpop-pill-price-red {

  color: #ef4444;

  font-weight: 700;

}



.fpop-pill-type {

  background: rgba(255, 255, 255, 0.15);

  font-size: 0.65rem;

  padding: 0.05rem 0.28rem;

  border-radius: 3px;

  font-weight: 700;

  color: #e2e8f0;

}



.fpop-pill-type.type-H {

  background: rgba(239, 68, 68, 0.25);

  color: #fca5a5;

  border: 1px solid rgba(239, 68, 68, 0.4);

}



.fpop-pill-type.type-B {

  background: rgba(59, 130, 246, 0.2);

  color: #93c5fd;

  border: 1px solid rgba(59, 130, 246, 0.35);

}



.cod-cond-badge {

  display: inline-flex;

  align-items: center;

  gap: 0.3rem;

  font-size: 0.72rem;

  padding: 0.2rem 0.45rem;

  border-radius: 4px;

  margin-top: 0.3rem;

  line-height: 1.25;

}



.cod-cond-badge.unlocked {

  background: rgba(34, 197, 94, 0.15);

  color: #4ade80;

  border: 1px solid rgba(34, 197, 94, 0.3);

}



.cod-cond-badge.pending {

  background: rgba(245, 158, 11, 0.15);

  color: #fbbf24;

  border: 1px solid rgba(245, 158, 11, 0.3);

}



.cod-savings-banner {

  background: rgba(34, 197, 94, 0.12);

  border: 1px solid rgba(34, 197, 94, 0.35);

  border-radius: 8px;

  padding: 0.5rem 0.75rem;

  margin-bottom: 0.75rem;

  display: flex;

  align-items: center;

  gap: 0.5rem;

  font-size: 0.82rem;

  font-weight: 600;

  color: #4ade80;

}



/* Precios normales y rojos invertidos (bloqueado vs desbloqueado) */

.fpop-pill-price-norm {

  color: #ffffff;

  font-weight: 700;

}



.fpop-pill-rojo-locked {

  color: #f87171;

  opacity: 0.65;

  text-decoration: line-through;

  font-size: 0.76rem;

  margin-left: 2px;

}



/* Sección de Datos de Entrega en el Drawer de Catálogo */

.cod-customer-box {

  background: rgba(255, 255, 255, 0.03);

  border-top: 1px solid rgba(255, 255, 255, 0.08);

  border-bottom: 1px solid rgba(255, 255, 255, 0.08);

  padding: 0.85rem 1.25rem;

  flex-shrink: 0;

}



.cod-cust-header {

  display: flex;

  align-items: center;

  gap: 0.45rem;

  font-size: 0.82rem;

  font-weight: 700;

  color: #ffd875;

  margin-bottom: 0.65rem;

}



.cod-cust-header i {

  font-size: 1.1rem;

  color: var(--color-secondary);

}



.cod-cust-fields {

  display: flex;

  flex-direction: column;

  gap: 0.5rem;

}



.cod-cust-fields input,

.cod-cust-fields textarea {

  width: 100%;

  background: rgba(0, 0, 0, 0.45);

  border: 1px solid rgba(255, 255, 255, 0.15);

  border-radius: 6px;

  color: #fff;

  padding: 0.5rem 0.75rem;

  font-size: 0.82rem;

  font-family: inherit;

  outline: none;

  transition: border-color 0.2s, box-shadow 0.2s;

  box-sizing: border-box;

}



.cod-cust-fields input:focus,

.cod-cust-fields textarea:focus {

  border-color: var(--color-secondary);

  box-shadow: 0 0 0 2px rgba(197, 155, 39, 0.2);

}



.cod-cust-fields input::placeholder,

.cod-cust-fields textarea::placeholder {

  color: #94a3b8;

  font-size: 0.78rem;

}



/* Pines interactivos en forma de punto dorado junto al código */

.flip-page-pins-overlay {

  position: absolute;

  inset: 0;

  pointer-events: none;

  z-index: 15;

}



/* Puntos interactivos base (Estilo marca de agua 60% para Betterware y catálogos generales) */
.flip-catalog-pin-dot {
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(212, 160, 23, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.65);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(1.5px);
  -webkit-backdrop-filter: blur(1.5px);
  opacity: 0.6;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  pointer-events: auto;
  transform: translate(-50%, -50%);
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), background 0.2s, opacity 0.2s, box-shadow 0.2s;
  z-index: 20;
  padding: 0;
  outline: none;
}

/* Área de clic expandida para facilitar toque en celular y escritorio sin aumentar el tamaño visual */
.flip-catalog-pin-dot::after {
  content: '';
  position: absolute;
  inset: -8px;
  border-radius: 50%;
}

.flip-catalog-pin-dot i {
  font-size: 7px;
  font-weight: 900;
  color: rgba(255, 255, 255, 0.95);
  pointer-events: none;
  transition: transform 0.2s, opacity 0.2s;
  line-height: 1;
}

.flip-catalog-pin-dot:hover {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1.35);
  background: rgba(245, 158, 11, 0.85);
  border-color: #ffffff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5), 0 0 8px rgba(251, 191, 36, 0.9);
}

/* Variante exclusiva para Catálogos Andrea: marca de agua al 88% con mayor color y contraste */
.flip-catalog-pin-dot.brand-andrea,
.flip-catalog-pin-dot.brand-priceshoes {
  width: 14px;
  height: 14px;
  opacity: 0.88;
  background: linear-gradient(135deg, rgba(251, 191, 36, 0.85), rgba(217, 119, 6, 0.85));
  border: 1.5px solid #ffffff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.6), 0 0 8px rgba(245, 158, 11, 0.7);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.flip-catalog-pin-dot.brand-andrea i,
.flip-catalog-pin-dot.brand-priceshoes i {
  font-size: 8px;
  font-weight: 900;
  color: #ffffff;
}

.flip-catalog-pin-dot.brand-andrea:hover,
.flip-catalog-pin-dot.brand-priceshoes:hover {
  opacity: 1;
  background: #f59e0b;
  border-color: #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.6), 0 0 12px rgba(251, 191, 36, 0.95);
}

/* Estado activo cuando se agrega a Mi Pedido (Verde esmeralda para todos) */
.flip-catalog-pin-dot.in-cart {
  opacity: 1 !important;
  width: 14px;
  height: 14px;
  background: linear-gradient(135deg, #22c55e, #16a34a) !important;
  border: 1.5px solid #ffffff !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5), 0 0 8px rgba(34, 197, 94, 0.85) !important;
  transform: translate(-50%, -50%) scale(1.15);
}

.flip-catalog-pin-dot.brand-andrea.in-cart,
.flip-catalog-pin-dot.brand-priceshoes.in-cart {
  width: 15px;
  height: 15px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.6), 0 0 10px rgba(34, 197, 94, 0.9) !important;
}

.flip-catalog-pin-dot.in-cart i {
  font-size: 8px;
  color: #ffffff !important;
  opacity: 1;
}


/* --- MEJORAS DEL DRAWER DE PEDIDO Y ACCIONES WHATSAPP / VACIAR --- */
.cod-scroll-area {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  -webkit-overflow-scrolling: touch;
}

.cod-header-sub {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.15rem;
}

.cod-header-clear-btn {
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.35);
  color: #fca5a5;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  transition: all 0.2s;
}

.cod-header-clear-btn:hover {
  background: rgba(239, 68, 68, 0.3);
  color: #ffffff;
  border-color: #ef4444;
}

.cod-footer-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* Estilos de botones WhatsApp primarios */
.btn-whatsapp-action,
.cod-btn-whatsapp {
  background: linear-gradient(135deg, #25d366, #128c7e) !important;
  color: #ffffff !important;
  font-weight: 700;
  font-size: 0.95rem;
  padding: 0.8rem 1.25rem;
  border-radius: 8px;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(37, 211, 102, 0.4);
  transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
  letter-spacing: 0.3px;
  text-decoration: none;
}

.btn-whatsapp-action:hover,
.cod-btn-whatsapp:hover {
  background: linear-gradient(135deg, #2cf075, #16a085) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(37, 211, 102, 0.55);
  color: #ffffff !important;
}

.btn-whatsapp-action i,
.cod-btn-whatsapp i {
  font-size: 1.35rem;
  color: #ffffff !important;
}

/* Botón descartar / vaciar en el footer */
.cod-btn-clear {
  width: 100%;
  background: rgba(239, 68, 68, 0.08);
  border: 1px dashed rgba(239, 68, 68, 0.35);
  color: #fca5a5;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  transition: all 0.2s;
}

.cod-btn-clear:hover {
  background: rgba(239, 68, 68, 0.2);
  border-color: rgba(239, 68, 68, 0.6);
  color: #ffffff;
}

.cod-btn-clear i {
  font-size: 0.95rem;
}



/* Selector de Talla en Mi Pedido */
.cod-item-size-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 0.5rem;
  margin-bottom: 0.25rem;
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: 6px;
  padding: 0.35rem 0.6rem;
}

.cod-item-size-row label {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: #ffd875;
  white-space: nowrap;
}

.cod-item-size-row label i {
  color: #f59e0b;
  font-size: 0.95rem;
}

.cod-size-select,
.cod-size-input {
  background: #1a202c !important;
  border: 1px solid rgba(245, 158, 11, 0.45) !important;
  border-radius: 5px;
  color: #ffffff !important;
  padding: 0.3rem 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  outline: none;
  transition: all 0.2s;
  cursor: pointer;
  flex: 1;
  max-width: 200px;
}

.cod-size-select:focus,
.cod-size-input:focus {
  border-color: #ffd875 !important;
  box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.35) !important;
}

.cod-size-select option {
  background: #11141b;
  color: #ffffff;
}

.fpop-pill-sizes {
  background: rgba(245, 158, 11, 0.2);
  border: 1px solid rgba(245, 158, 11, 0.45);
  color: #fbbf24;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin: 0 2px;
}


/* Botón ¿Cómo comprar? en Cabecera */
.btn-how-to-buy-header {
  border-color: rgba(245, 158, 11, 0.45) !important;
  color: #ffd875 !important;
  background: rgba(245, 158, 11, 0.1) !important;
}

.btn-how-to-buy-header:hover {
  background: rgba(245, 158, 11, 0.25) !important;
  border-color: #f59e0b !important;
  color: #ffffff !important;
}

/* Modal Video Instructivo */
.video-tutorial-modal {
  animation: modalScaleIn 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes modalScaleIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
