/* =============================================
   CASARIZ FRAGRANCE — style.css
   Paleta: Negro profundo, Blanco, Dorado
   Tipografía: Cormorant Garamond + Montserrat
   ============================================= */

:root {
  --black:       #0a0a0a;
  --black-soft:  #111111;
  --black-card:  #161616;
  --black-border:#252525;
  --gold:        #4141ff;
  --gold-light:  #4141ff;
  --gold-dark:   #4141ff;
  --white:       #F5F0E8;
  --white-dim:   #c8c0b0;
  --grey:        #5a5a5a;
  --grey-light:  #888888;
  --green:       #4caf82;
  --red:         #c04c4c;
  --radius-sm:   6px;
  --radius-md:   12px;
  --radius-lg:   20px;
  --shadow-card: 0 4px 30px rgba(0,0,0,0.6);
  --shadow-glow: 0 0 40px rgba(65,65,255,0.15);
  --transition:  0.3s cubic-bezier(0.4,0,0.2,1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  background: var(--black);
  color: var(--white);
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  overflow-x: hidden;
}

/* ─── UTILITY ─── */
.hidden { display: none !important; }
.gold   { color: var(--gold); }
.green  { color: var(--green); }

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--black-soft); }
::-webkit-scrollbar-thumb { background: var(--gold-dark); border-radius: 3px; }

/* ===================== HEADER ===================== */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background: rgba(10,10,10,0.96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--black-border);
}
.header-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 2rem;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Logo */
.logo-link {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  min-width: 0;
}

.logo-mark {
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

.logo-img {
  max-width: 100%;
  max-height: 52px;
  width: auto;
  height: auto;
  display: block;
  object-fit: contain;
  transition: var(--transition);
}

.logo-link:hover .logo-img {
  filter: drop-shadow(0 0 8px var(--gold));
  transform: scale(1.04);
}

/* =========================================
   TEXTO LOGO
========================================= */

.logo-text{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;

    min-width:0;

    /* ESTA ES LA CLAVE */
    height:58px;

    /* centra verticalmente respecto al logo */
    padding-top:4px;
}

/* CASARIZ */
.logo-main{
    font-family:'Cormorant Garamond', serif;
    font-size:2.7rem;
    font-weight:700;
    color:var(--gold);

    letter-spacing:6px;
    line-height:.9;

    white-space:nowrap;
    margin:0;
}

/* FRAGRANCE */
.logo-sub{
    font-size:.92rem;
    letter-spacing:5px;
    color:var(--white-dim);
    font-weight:300;

    line-height:1;

    white-space:nowrap;

    margin-top:4px;
    margin-left:4px;
}

/* Header right */
.header-right { display: flex; align-items: center; gap: 18px; }
.cart-badge-wrap { position: relative; cursor: pointer; color: var(--white-dim); transition: var(--transition); }
.cart-badge-wrap:hover { color: var(--gold); }
.cart-badge-wrap .icon-svg { width: 24px; height: 24px; display: block; }
.cart-count {
  position: absolute;
  top: -8px; right: -8px;
  background: var(--gold);
  color: var(--black);
  font-size: 10px; font-weight: 700;
  width: 18px; height: 18px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  line-height: 1;
}

/* Hamburger */
.hamburger {
  background: none; border: none; cursor: pointer;
  display: flex; flex-direction: column; gap: 5px; padding: 6px;
}
.hamburger span {
  display: block; width: 22px; height: 2px;
  background: var(--white); border-radius: 2px;
  transition: var(--transition);
}
.hamburger:hover span { background: var(--gold); }

/* Drawer */
.drawer {
  position: fixed; top: 0; right: -320px;
  width: 300px; height: 100vh;
  background: var(--black-card);
  border-left: 1px solid var(--black-border);
  z-index: 1000;
  padding: 80px 0 40px;
  transition: right var(--transition);
  display: flex; flex-direction: column;
}
.drawer.open { right: 0; }
.drawer-close {
  position: absolute; top: 20px; right: 20px;
  background: none; border: none; color: var(--white-dim);
  font-size: 1.6rem; cursor: pointer; transition: var(--transition);
}
.drawer-close:hover { color: var(--gold); }
.drawer-links { list-style: none; padding: 0 20px; }
.drawer-links li { border-bottom: 1px solid var(--black-border); }
.drawer-sep { border: none !important; margin: 16px 0; }
.drawer-link {
  display: flex; align-items: center; gap: 10px;
  padding: 16px 10px;
  color: var(--white-dim); text-decoration: none;
  font-size: 0.85rem; letter-spacing: 1.5px;
  transition: var(--transition);
}
.drawer-link:hover { color: var(--gold); padding-left: 18px; }
.drawer-admin { color: var(--gold); font-weight: 600; }
.drawer-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.6);
  z-index: 999; display: none;
}
.drawer-overlay.show { display: block; }
.icon-xs  { width: 16px; height: 16px; flex-shrink: 0; }
.icon-sm  { width: 18px; height: 18px; flex-shrink: 0; }

/* ===================== HERO ===================== */
.hero-section {
  position: relative;
  min-height: 92vh;
  display: flex; align-items: center;
  overflow: hidden;
  background: var(--black-soft);
}
.hero-section::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 50%, rgba(65,65,255,0.08) 0%, transparent 60%);
}
.hero-particles {
  position: absolute; inset: 0; pointer-events: none;
}
.hero-content {
  position: relative; z-index: 2;
  max-width: 1400px; margin: 0 auto;
  padding: 6rem 2rem 4rem;
  flex: 1;
}
.hero-eyebrow {
  font-size: 0.7rem; letter-spacing: 6px;
  color: var(--gold); font-weight: 500;
  text-transform: uppercase; margin-bottom: 16px;
}
.hero-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(3.5rem, 8vw, 7rem);
  font-weight: 300; line-height: 1;
  color: var(--white); margin-bottom: 24px;
}
.hero-title em { color: var(--gold); font-style: italic; }
.hero-desc {
  max-width: 480px; color: var(--white-dim);
  font-size: 0.9rem; line-height: 1.8; margin-bottom: 40px;
}
.hero-cta {
  display: inline-block;
  padding: 14px 40px;
  border: 1px solid var(--gold);
  color: var(--gold); text-decoration: none;
  font-size: 0.75rem; letter-spacing: 3px;
  text-transform: uppercase;
  transition: var(--transition);
}
.hero-cta:hover { background: var(--gold); color: var(--black); }
.hero-bottle {
  position: absolute; right: 10%; top: 50%; transform: translateY(-50%);
  z-index: 2; opacity: 0.8;
}
.bottle-glow {
  position: absolute; inset: -60px;
  background: radial-gradient(circle, rgba(65,65,255,0.12) 0%, transparent 70%);
  animation: pulse 4s ease-in-out infinite;
}
.bottle-svg { width: 160px; animation: float 6s ease-in-out infinite; }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-20px)} }
@keyframes pulse { 0%,100%{opacity:0.5} 50%{opacity:1} }

/* ===================== MAIN CONTENT ===================== */
.main-content {
  max-width: 1400px; margin: 0 auto;
  padding: 5rem 2rem;
}
.section-header { text-align: center; margin-bottom: 3rem; }
.section-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 300; color: var(--white); margin-bottom: 8px;
}
.section-sub { color: var(--grey-light); font-size: 0.85rem; }

/* Filters */
.filters-bar {
  display: flex; flex-wrap: wrap; gap: 16px;
  align-items: center; margin-bottom: 2rem;
}
.search-input {
  flex: 1 1 300px;
  background: var(--black-card); border: 1px solid var(--black-border);
  color: var(--white); padding: 12px 18px; border-radius: var(--radius-sm);
  font-family: 'Montserrat', sans-serif; font-size: 0.85rem;
  transition: var(--transition);
}
.search-input::placeholder { color: var(--grey); }
.search-input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 2px rgba(65,65,255,0.12); }
.filter-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  padding: 8px 18px; border-radius: 99px;
  border: 1px solid var(--black-border);
  background: var(--black-card); color: var(--white-dim);
  cursor: pointer; font-size: 0.72rem; letter-spacing: 1px;
  font-family: 'Montserrat', sans-serif; font-weight: 500;
  transition: var(--transition);
}
.chip:hover  { border-color: var(--gold); color: var(--gold); }
.chip.active { background: var(--gold); border-color: var(--gold); color: var(--black); font-weight: 700; }

/* Table */
.table-wrap { overflow-x: auto; }
.catalog-table {
  width: 100%; border-collapse: collapse; min-width: 820px;
}
.catalog-table thead tr {
  background: var(--black-card);
  border-bottom: 2px solid var(--gold);
}
.catalog-table th {
  padding: 14px 12px; text-align: left;
  font-size: 0.68rem; letter-spacing: 2px; color: var(--gold);
  font-weight: 600; white-space: nowrap;
}
.catalog-table tbody tr {
  border-bottom: 1px solid var(--black-border);
  transition: var(--transition);
}
.catalog-table tbody tr:hover { background: rgba(65,65,255,0.04); }
.catalog-table td { padding: 14px 12px; vertical-align: middle; }

/* Thumbnail */
.col-img { width: 70px; }
.perfume-thumb {
  width: 56px; height: 56px; object-fit: cover;
  border-radius: var(--radius-sm); border: 1px solid var(--black-border);
  background: var(--black-card);
}
.perfume-placeholder {
  width: 56px; height: 56px;
  background: var(--black-card); border: 1px solid var(--black-border);
  border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  color: var(--gold); font-size: 1.2rem; font-family: 'Cormorant Garamond', serif;
}

/* Name cell */
.col-name { min-width: 200px; }
.pf-brand { color: var(--gold); font-weight: 600; font-size: 0.8rem; display: block; }
.pf-name  { color: var(--white-dim); font-size: 0.78rem; margin-top: 2px; display: block; }

/* Price cells */
.price-cell  { font-weight: 500; white-space: nowrap; }
.price-base  { color: var(--white-dim); }
.price-mayor { color: var(--white); }
.price-50k   { color: var(--gold-light); }
.price-100k  { color: var(--gold); font-weight: 700; }

/* Action buttons */
.action-cell { display: flex; gap: 6px; flex-wrap: wrap; }
.btn-add {
  padding: 8px 14px; border-radius: var(--radius-sm);
  background: var(--gold); border: none; color: var(--black);
  font-family: 'Montserrat', sans-serif;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.5px;
  cursor: pointer; transition: var(--transition); white-space: nowrap;
}
.btn-add:hover { background: var(--gold-light); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(65,65,255,0.3); }
.btn-add.disabled {
  background: var(--black-border); color: var(--grey);
  cursor: not-allowed; transform: none; box-shadow: none;
  position: relative;
}
.btn-add.disabled:hover::after {
  content: 'Agotado';
  position: absolute; bottom: 110%; left: 50%; transform: translateX(-50%);
  background: var(--black-card); color: var(--red);
  padding: 4px 10px; border-radius: 4px; white-space: nowrap;
  font-size: 0.7rem; border: 1px solid var(--red);
  pointer-events: none;
}
.no-results { text-align: center; color: var(--grey); padding: 3rem; font-size: 0.9rem; }

/* ===================== QUOTE SECTION ===================== */
.quote-section {
  background: var(--black-soft);
  padding: 5rem 2rem;
  border-top: 1px solid var(--black-border);
  border-bottom: 1px solid var(--black-border);
}
.quote-section .section-header { max-width: 900px; margin: 0 auto 3rem; }
.quote-panel {
  max-width: 900px; margin: 0 auto;
  background: var(--black-card); border: 1px solid var(--black-border);
  border-radius: var(--radius-lg); padding: 2.5rem;
  box-shadow: var(--shadow-card);
}
.quote-stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1rem; margin-bottom: 2rem;
}
.stat-box {
  background: var(--black-soft); border: 1px solid var(--black-border);
  border-radius: var(--radius-md); padding: 1.2rem;
  text-align: center;
}
.stat-label { display: block; font-size: 0.65rem; letter-spacing: 2px; color: var(--grey-light); margin-bottom: 6px; }
.stat-val { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; font-weight: 600; display: block; }
.stat-val.gold  { color: var(--gold); }
.stat-val.green { color: var(--green); }

/* Quote items */
.quote-items { min-height: 80px; margin-bottom: 2rem; }
.quote-empty { text-align: center; color: var(--grey); padding: 2rem; font-size: 0.85rem; }
.quote-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid var(--black-border);
  animation: fadeSlide 0.3s ease;
}
@keyframes fadeSlide { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }
.qi-name  { flex: 1; }
.qi-brand { color: var(--gold); font-size: 0.78rem; font-weight: 600; display: block; }
.qi-desc  { color: var(--white-dim); font-size: 0.75rem; display: block; margin-top: 1px; }
.qi-qty-wrap { display: flex; align-items: center; gap: 6px; }
.qi-qty-btn {
  width: 26px; height: 26px; border-radius: 50%;
  border: 1px solid var(--black-border);
  background: none; color: var(--white); cursor: pointer;
  font-size: 1rem; line-height: 1; transition: var(--transition);
}
.qi-qty-btn:hover { border-color: var(--gold); color: var(--gold); }
.qi-qty { min-width: 30px; text-align: center; font-weight: 600; color: var(--white); font-size: 0.9rem; }
.qi-price { color: var(--green); font-weight: 600; font-size: 0.9rem; white-space: nowrap; }
.qi-remove {
  background: none; border: none; color: var(--grey); cursor: pointer;
  font-size: 1.1rem; padding: 4px; transition: var(--transition);
}
.qi-remove:hover { color: var(--red); }

/* Actions */
.quote-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 1rem; }
.quote-note { font-size: 0.72rem; color: var(--grey); line-height: 1.6; }
.texto-justificado {
    text-align: justify !important;
}

/* Buttons */
.btn-gold {
  display: flex; align-items: center; gap: 8px;
  padding: 13px 28px;
  background: var(--gold); border: 1px solid var(--gold);
  color: var(--black); cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.75rem; font-weight: 700; letter-spacing: 1px;
  border-radius: var(--radius-sm); transition: var(--transition);
}
.btn-gold:hover { background: var(--gold-light); border-color: var(--gold-light); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(65,65,255,0.25); }
.btn-gold:disabled,
.btn-gold.disabled {
  background: var(--black-border);
  border-color: var(--black-border);
  color: var(--grey-light);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
.btn-gold.full  { width: 100%; justify-content: center; }
.btn-gold.small { padding: 8px 18px; font-size: 0.7rem; }
.btn-outline {
  display: flex; align-items: center; gap: 8px;
  padding: 13px 28px;
  background: none; border: 1px solid var(--black-border);
  color: var(--white-dim); cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.75rem; font-weight: 500; letter-spacing: 1px;
  border-radius: var(--radius-sm); transition: var(--transition);
}
.btn-outline:hover { border-color: var(--white-dim); color: var(--white); }
.btn-outline.small { padding: 8px 18px; font-size: 0.7rem; }

/* ===================== FOOTER ===================== */
.site-footer {
  background: var(--black-card); border-top: 1px solid var(--black-border);
  padding: 4rem 2rem 0;
}
.footer-inner {
  max-width: 1400px; margin: 0 auto;
  display: flex; justify-content: space-between; align-items: flex-start;
  flex-wrap: wrap; gap: 3rem; padding-bottom: 3rem;
  border-bottom: 1px solid var(--black-border);
}
.footer-tagline { color: var(--grey); font-size: 0.8rem; margin-top: 8px; font-style: italic; }
.footer-heading { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; color: var(--gold); margin-bottom: 16px; }
.social-links { display: flex; gap: 12px; flex-wrap: wrap; }
.social-btn {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 20px; border-radius: var(--radius-sm);
  font-size: 0.78rem; font-weight: 600; text-decoration: none;
  transition: var(--transition); border: 1px solid var(--black-border);
}
.social-btn.fb { color: #4267B2; border-color: #4267B2; }
.social-btn.fb:hover { background: #4267B2; color: var(--white); }
.social-btn.wa { color: #25D366; border-color: #25D366; }
.social-btn.wa:hover { background: #25D366; color: var(--white); }
.social-btn.ig { color: #E1306C; border-color: #E1306C; }
.social-btn.ig:hover { background: #E1306C; color: var(--white); }
.footer-bottom { max-width: 1400px; margin: 0 auto; padding: 1.5rem 0; text-align: center; color: var(--grey); font-size: 0.72rem; }

/* ===================== ADMIN ===================== */
.admin-section {
  max-width: 1400px; margin: 0 auto;
  padding: 4rem 2rem;
}
.admin-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 2.5rem; padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--black-border);
}

/* Login */
.admin-login { display: flex; justify-content: center; padding: 3rem 0; }
.login-card {
  background: var(--black-card); border: 1px solid var(--black-border);
  border-radius: var(--radius-lg); padding: 3rem 2.5rem;
  width: 100%; max-width: 420px; box-shadow: var(--shadow-card);
}
.login-title {
  font-family: 'Cormorant Garamond', serif; font-size: 1.8rem;
  color: var(--gold); text-align: center; margin-bottom: 2rem;
}
.login-hint { text-align: center; color: var(--grey); font-size: 0.75rem; margin-top: 12px; }
.login-hint b { color: var(--gold-light); }

/* Form elements */
.form-group { display: flex; flex-direction: column; gap: 6px; margin-bottom: 1.2rem; }
.form-group label { font-size: 0.72rem; letter-spacing: 1px; color: var(--white-dim); }
.form-input {
  background: var(--black-soft); border: 1px solid var(--black-border);
  color: var(--white); padding: 11px 16px; border-radius: var(--radius-sm);
  font-family: 'Montserrat', sans-serif; font-size: 0.85rem;
  transition: var(--transition);
}
.form-input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 2px rgba(65,65,255,0.1); }
select.form-input option { background: var(--black-card); }
.file-input { padding: 9px 12px; cursor: pointer; }
.form-help {
  color: var(--grey-light);
  font-size: 0.72rem;
  line-height: 1.5;
}
.image-preview-wrap {
  margin-top: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.image-preview {
  width: 154px;
  height: 88px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  border: 1px solid var(--black-border);
  background: var(--black-soft);
}

/* Admin tabs */
.admin-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--black-border); margin-bottom: 2rem; }
.admin-tab {
  padding: 12px 28px; background: none; border: none;
  color: var(--grey-light); font-family: 'Montserrat', sans-serif;
  font-size: 0.78rem; letter-spacing: 1px; cursor: pointer;
  border-bottom: 2px solid transparent; transition: var(--transition);
  margin-bottom: -1px;
}
.admin-tab.active { color: var(--gold); border-bottom-color: var(--gold); }
.admin-tab:hover:not(.active) { color: var(--white-dim); }
.admin-pane { display: none; }
.admin-pane.active { display: block; }
.pane-title {
  font-family: 'Cormorant Garamond', serif; font-size: 1.4rem;
  color: var(--white); margin-bottom: 1.5rem;
}
.admin-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.admin-actions { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }

.admin-perfume-toolbar .pane-title { margin-bottom: 0; }
.admin-perfume-search { min-width: 260px; }
.admin-perfume-search .form-input { width: 100%; height: 38px; padding: 9px 14px; }
.admin-perfume-row.hidden-by-search { display: none; }

@media (max-width: 760px) {
  .admin-perfume-toolbar { align-items: stretch; flex-direction: column; }
  .admin-perfume-toolbar .admin-actions { width: 100%; }
  .admin-perfume-search { width: 100%; min-width: 0; }
}

/* Perfume form */
.perfume-form {
  background: var(--black-card); border: 1px solid var(--black-border);
  border-radius: var(--radius-md); padding: 2rem; margin-bottom: 2rem;
  animation: fadeSlide 0.3s ease;
}
.form-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}
.full-span { grid-column: 1 / -1; }
.form-actions { display: flex; gap: 12px; margin-top: 1.5rem; }

/* Admin tables */
.admin-table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; min-width: 980px; }
.admin-table th {
  padding: 12px 14px; text-align: left;
  font-size: 0.68rem; letter-spacing: 1.5px; color: var(--gold);
  border-bottom: 1px solid var(--black-border);
}
.admin-table td { padding: 12px 14px; border-bottom: 1px solid var(--black-border); font-size: 0.82rem; }
.admin-table tr:hover td { background: rgba(65,65,255,0.03); }
.btn-edit {
  background: none; border: 1px solid var(--gold-dark); color: var(--gold);
  padding: 5px 12px; border-radius: 4px; font-size: 0.7rem;
  cursor: pointer; font-family: 'Montserrat', sans-serif; transition: var(--transition);
}
.btn-edit:hover { background: var(--gold-dark); color: var(--black); }
.btn-delete {
  background: none; border: 1px solid rgba(192,76,76,0.4); color: var(--red);
  padding: 5px 12px; border-radius: 4px; font-size: 0.7rem;
  cursor: pointer; font-family: 'Montserrat', sans-serif; transition: var(--transition);
}
.btn-delete:hover { background: var(--red); color: var(--white); }

/* Inventory toggles */
.inv-toggle {
  appearance: none; width: 40px; height: 22px;
  background: var(--grey); border-radius: 11px;
  cursor: pointer; position: relative; transition: var(--transition);
}
.inv-toggle:checked { background: var(--green); }
.inv-toggle::after {
  content: ''; position: absolute;
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--white); top: 3px; left: 3px; transition: var(--transition);
}
.inv-toggle:checked::after { left: 21px; }
.inv-label { font-size: 0.72rem; color: var(--grey-light); margin-top: 2px; display: block; }
.inv-cell { display: flex; flex-direction: column; align-items: center; gap: 2px; }

/* ===================== MODAL ===================== */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.8); backdrop-filter: blur(4px);
  z-index: 1100; display: flex; align-items: center; justify-content: center;
  padding: 1rem;
}
.modal-card {
  background: var(--black-card); border: 1px solid var(--black-border);
  border-radius: var(--radius-lg); padding: 2.5rem;
  width: 100%; max-width: 480px;
  position: relative; animation: fadeSlide 0.25s ease;
  box-shadow: var(--shadow-card), var(--shadow-glow);
}
.modal-close {
  position: absolute; top: 16px; right: 16px;
  background: none; border: none; color: var(--white-dim);
  font-size: 1.5rem; cursor: pointer; transition: var(--transition);
}
.modal-close:hover { color: var(--gold); }
.modal-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.4rem; color: var(--gold); margin-bottom: 4px;
}
.modal-sub { color: var(--grey-light); font-size: 0.78rem; margin-bottom: 1.5rem; }
.modal-options { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 1.5rem; }
.modal-opt {
  padding: 8px 16px; border: 1px solid var(--black-border);
  border-radius: 99px; background: none; color: var(--white-dim);
  font-family: 'Montserrat', sans-serif; font-size: 0.75rem;
  cursor: pointer; transition: var(--transition);
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 118px;
}
.modal-opt small {
  display: block;
  color: var(--gold-light);
  font-size: 0.68rem;
  opacity: 0.9;
  line-height: 1.1;
}
.modal-opt-label {
  display: block;
  line-height: 1.1;
}
.modal-opt.selected small { color: var(--black); opacity: 0.75; }
.modal-opt:hover:not(.unavailable) { border-color: var(--gold); color: var(--gold); }
.modal-opt.selected { background: var(--gold); border-color: var(--gold); color: var(--black); font-weight: 700; }
.modal-opt.unavailable {
  opacity: 0.38;
  cursor: not-allowed;
  text-decoration: line-through;
  color: var(--grey-light);
  position: relative;
}
.modal-opt.unavailable:hover { border-color: var(--black-border); color: var(--white-dim); }
.modal-opt.unavailable:hover::after {
  content: 'No disponible';
  position: absolute;
  bottom: 115%;
  left: 50%;
  transform: translateX(-50%);
  background: var(--black-card);
  color: var(--red);
  padding: 4px 10px;
  border-radius: 4px;
  white-space: nowrap;
  font-size: 0.68rem;
  border: 1px solid var(--red);
}
.modal-qty-wrap {
  display: flex; align-items: center; gap: 14px; margin-bottom: 1.5rem;
}
.modal-qty-wrap label { font-size: 0.78rem; color: var(--white-dim); }
.qty-control { display: flex; align-items: center; gap: 8px; }
.qty-btn {
  width: 32px; height: 32px; border-radius: 50%;
  border: 1px solid var(--black-border); background: none;
  color: var(--white); font-size: 1.1rem; cursor: pointer;
  transition: var(--transition); display: flex; align-items: center; justify-content: center;
}
.qty-btn:hover { border-color: var(--gold); color: var(--gold); }
.qty-input {
  width: 60px; text-align: center;
  background: var(--black-soft); border: 1px solid var(--black-border);
  color: var(--white); padding: 8px; border-radius: var(--radius-sm);
  font-family: 'Montserrat', sans-serif; font-size: 0.9rem;
}
.qty-input:focus { outline: none; border-color: var(--gold); }

/* ===================== TOAST ===================== */
.toast {
  position: fixed; bottom: 32px; right: 32px;
  background: var(--black-card); border: 1px solid var(--gold);
  color: var(--white); padding: 14px 24px; border-radius: var(--radius-sm);
  font-size: 0.82rem; box-shadow: var(--shadow-card);
  z-index: 2000; animation: toastIn 0.3s ease;
}
@keyframes toastIn { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }

/* ===================== RESPONSIVE ===================== */
@media (max-width: 768px) {
  .hero-bottle { display: none; }
  .hero-title  { font-size: 3rem; }
  .quote-stats { grid-template-columns: 1fr 1fr; }
  .stat-box:last-child { grid-column: 1 / -1; }
  .catalog-table th:nth-child(3),
  .catalog-table td:nth-child(3) { display: none; }
  .footer-inner { flex-direction: column; }
  .action-cell { flex-direction: column; }
  .btn-add { width: 100%; }
}
@media (max-width: 480px) {
  .logo-mark { width: 56px; height: 44px; }
  .logo-main { font-size: 1.2rem; letter-spacing: 2px; }
  .logo-sub { font-size: 0.46rem; letter-spacing: 2.5px; }

  .header-inner { padding: 0 1rem; }
  .main-content { padding: 3rem 1rem; }
  .quote-section { padding: 3rem 1rem; }
  .site-footer { padding: 3rem 1rem 0; }
  .admin-section { padding: 2rem 1rem; }
  .modal-card { padding: 1.8rem; }
}


/* Drag & drop en Gestión de Perfumes */
.drag-cell {
  width: 70px;
  color: var(--white-dim);
  white-space: nowrap;
}

.drag-handle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-right: 8px;
  border: 1px solid var(--gold-dark);
  border-radius: 6px;
  color: var(--gold);
  cursor: grab;
  user-select: none;
}

.admin-perfume-row {
  transition: background 0.15s ease, opacity 0.15s ease;
}

.admin-perfume-row.dragging {
  opacity: 0.45;
}

.admin-perfume-row.drag-over td {
  background: rgba(65,65,255,0.08) !important;
}

.admin-perfume-row:active .drag-handle {
  cursor: grabbing;
}


/* Herramientas de respaldo admin */
.backup-tools{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:1rem;
  margin:1.5rem 0;
  border:1px solid var(--black-border);
  border-radius:10px;
  background:rgba(255,255,255,0.02);
}

.backup-title{
  margin:0 0 4px;
  color:var(--gold);
  font-size:0.95rem;
}

.backup-text{
  margin:0;
  color:var(--white-dim);
  font-size:0.78rem;
}

.backup-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.import-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}

@media (max-width: 700px){
  .backup-tools{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* Punto de Venta */
.admin-bottom-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:2rem;
  padding-top:1.5rem;
  border-top:1px solid var(--black-border);
}

.pos-section{
  min-height:100vh;
  padding:7rem 8vw 4rem;
  background:var(--black);
}

.pos-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:2rem;
}

.pos-header-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.pos-layout{
  display:grid;
  grid-template-columns:minmax(320px, 0.9fr) minmax(480px, 1.4fr);
  gap:1.5rem;
}

.pos-search-panel,
.pos-cart-panel{
  border:1px solid var(--black-border);
  background:rgba(255,255,255,0.025);
  border-radius:18px;
  padding:1rem;
  box-shadow:var(--shadow);
}

.pos-label{
  display:block;
  color:var(--gold);
  font-size:0.72rem;
  letter-spacing:1.5px;
  margin-bottom:8px;
  text-transform:uppercase;
}

.pos-search-box{
  position:relative;
}

.pos-product-list{
  max-height:62vh;
  overflow-y:auto;
  margin-top:12px;
  border:1px solid var(--black-border);
  border-radius:14px;
  background:rgba(0,0,0,0.35);
}

.pos-product-card{
  display:grid;
  grid-template-columns:64px 1fr 44px;
  align-items:center;
  gap:12px;
  padding:12px;
  border-bottom:1px solid var(--black-border);
  cursor:pointer;
  transition:var(--transition);
}

.pos-product-card:hover{
  background:rgba(65,65,255,0.08);
}

.pos-product-card img{
  width:56px;
  height:56px;
  object-fit:cover;
  border-radius:10px;
  border:1px solid var(--black-border);
  background:rgba(255,255,255,0.04);
}

.pos-product-info strong{
  display:block;
  color:var(--gold);
  font-size:0.82rem;
}

.pos-product-info span{
  display:block;
  color:var(--white);
  font-size:0.78rem;
  margin-top:3px;
}

.pos-product-info small{
  display:block;
  color:var(--white-dim);
  font-size:0.68rem;
  margin-top:5px;
}

.pos-add-btn{
  width:38px;
  height:38px;
  border:none;
  border-radius:50%;
  background:var(--gold);
  color:var(--black);
  font-size:1.4rem;
  font-weight:800;
  cursor:pointer;
}

.pos-help,
.pos-empty,
.pos-no-results{
  color:var(--white-dim);
  font-size:0.8rem;
  text-align:center;
  padding:1rem;
}

.pos-cart-header,
.pos-cart-row {
  display: grid;
  grid-template-columns: 90px minmax(260px, 1fr) 140px 100px 100px;
  column-gap: 18px;
  align-items: center;
}

.pos-cart-head{
  padding:13px 12px;
  border-radius:12px;
  background:rgba(65,65,255,0.12);
  color:var(--gold);
  font-size:0.7rem;
  letter-spacing:1.5px;
  text-transform:uppercase;
  font-weight:700;
}

.pos-cart-list{
  margin-top:10px;
  border-bottom:1px solid var(--black-border);
}

.pos-cart-row{
  padding:13px 12px;
  border-bottom:1px solid var(--black-border);
}

.pos-cart-product strong{
  display:block;
  color:var(--gold);
  font-size:0.82rem;
}

.pos-cart-product span{
  display:block;
  color:var(--white);
  font-size:0.78rem;
}

.pos-qty-input,
.pos-price-input,
.pos-type-select{
  width:100%;
  background:var(--black-soft);
  border:1px solid var(--black-border);
  color:var(--white);
  padding:10px;
  border-radius:8px;
}

.pos-remove-btn{
  width:36px;
  height:36px;
  border:none;
  border-radius:50%;
  background:rgba(192,76,76,0.95);
  color:white;
  font-size:1.4rem;
  font-weight:800;
  cursor:pointer;
}

.pos-summary{
  margin-left:auto;
  max-width:420px;
  padding:1rem 0;
}

.pos-summary-row,
.pos-summary-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:10px 0;
  border-bottom:1px solid var(--black-border);
}

.pos-summary-row span,
.pos-summary-total span{
  color:var(--white);
  font-weight:700;
}

.pos-summary-row strong,
.pos-summary-total strong{
  color:var(--white);
}

.pos-summary-total{
  font-size:1.4rem;
}

.pos-summary-total strong{
  color:var(--green);
}

.pos-discount-wrap{
  max-width:140px;
}

.pos-client-row{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:1rem;
  padding:1rem 0;
  border-top:1px solid var(--black-border);
}

.pos-client-row span{
  color:var(--gold);
  font-weight:700;
}

.pos-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  padding-top:1rem;
  border-top:1px solid var(--black-border);
}

.btn-danger-pos{
  border:none;
  background:var(--red);
  color:white;
  padding:12px 18px;
  border-radius:8px;
  font-weight:700;
  cursor:pointer;
}

@media (max-width: 980px){
  .pos-layout{
    grid-template-columns:1fr;
  }

  .pos-cart-head{
    display:none;
  }

  .pos-cart-row{
    grid-template-columns:70px 1fr;
  }

  .pos-type-select,
  .pos-price-input,
  .pos-cart-row > strong,
  .pos-remove-btn{
    grid-column:auto;
  }
}


/* Correcciones finales Punto de Venta */
body.pos-mode{
  overflow-x:hidden;
}

/* POS interno: no ocultar secciones principales */

body.pos-mode #pos-section{
  display:block !important;
}

.pos-section{
  min-height:100vh;
  padding:2.2rem 2.4rem 3rem !important;
}

.pos-layout{
  align-items:start;
}

.pos-search-panel{
  min-height:70vh;
}

.pos-search-box .form-input,
#posSearchInput{
  width:100%;
  max-width:none;
}

.pos-product-list{
  display:block;
  max-height:64vh;
  overflow-y:auto;
}

.pos-product-list.hidden{
  display:block !important;
}

.pos-product-card{
  grid-template-columns:72px 1fr 46px;
}

.pos-product-card img{
  width:64px;
  height:64px;
}

.pos-summary{
  width:100%;
  max-width:520px;
}

.pos-summary-row{
  display:grid;
  grid-template-columns:160px minmax(0, 1fr);
  align-items:center;
}

.pos-summary-row > span{
  text-align:right;
}

.pos-discount-wrap{
  max-width:none;
  width:100%;
}

.pos-discount-wrap .form-input,
#posDiscount{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}

.pos-summary-total{
  display:grid;
  grid-template-columns:160px minmax(0, 1fr);
}

.pos-summary-total span{
  text-align:right;
}

.pos-summary-total strong{
  text-align:right;
}

.pos-actions .btn-outline,
.pos-actions .btn-gold,
.pos-actions .btn-danger-pos{
  min-height:44px;
}

@media (max-width: 1100px){
  .pos-cart-head,
  .pos-cart-row{
    grid-template-columns:75px minmax(160px,1fr) 135px 110px 110px 42px;
  }
}

@media (max-width: 900px){
  .pos-section{
    padding:1.5rem 1rem 2rem !important;
  }

  .pos-summary,
  .pos-actions{
    max-width:none;
    width:100%;
  }

  .pos-summary-row,
  .pos-summary-total{
    grid-template-columns:1fr;
  }

  .pos-summary-row > span,
  .pos-summary-total span,
  .pos-summary-total strong{
    text-align:left;
  }
}


/* Correcciones POS + Estadísticas */
#posClientType{
  display:none !important;
}

.pos-client-row{
  grid-template-columns:1fr !important;
}

.pos-help{
  display:none !important;
}

.pos-product-list{
  display:block !important;
}

.pos-product-list.hidden{
  display:block !important;
}

.pos-summary{
  margin-left:auto;
  width:100%;
  max-width:520px;
}

.pos-summary-row{
  display:grid !important;
  grid-template-columns:160px minmax(0, 1fr) !important;
  align-items:center;
  gap:16px;
}

.pos-summary-row > span{
  text-align:right;
}

.pos-discount-wrap{
  width:100%;
  max-width:none !important;
}

#posDiscount{
  width:100% !important;
  box-sizing:border-box;
}

.stats-filters{
  display:grid;
  grid-template-columns:repeat(3, minmax(160px, 1fr));
  gap:1rem;
  padding:1rem;
  border:1px solid var(--black-border);
  border-radius:14px;
  background:rgba(255,255,255,0.02);
  margin-bottom:1.5rem;
}

.stats-cards{
  display:grid;
  grid-template-columns:repeat(3, minmax(180px, 1fr));
  gap:1rem;
  margin-bottom:1.5rem;
}

.stats-card{
  border:1px solid var(--black-border);
  border-radius:14px;
  background:rgba(255,255,255,0.025);
  padding:1.2rem;
}

.stats-card span{
  display:block;
  color:var(--white-dim);
  font-size:.72rem;
  letter-spacing:1.4px;
  text-transform:uppercase;
  margin-bottom:10px;
}

.stats-card strong{
  color:var(--gold);
  font-size:1.5rem;
  font-family:'Cormorant Garamond',serif;
}

.charts-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  margin-bottom:1.5rem;
}

.chart-card{
  border:1px solid var(--black-border);
  border-radius:14px;
  background:rgba(255,255,255,0.025);
  padding:1rem;
  overflow-x:auto;
}

.chart-card.full-span{
  grid-column:1 / -1;
}

.chart-card h4{
  margin:0 0 1rem;
  color:var(--gold);
  font-size:.95rem;
}

.bar-chart{
  height:220px;
  display:flex;
  align-items:end;
  gap:8px;
  min-width:420px;
  border-bottom:1px solid var(--black-border);
  padding:2rem 0 1.8rem;
}

.monthly-chart{
  min-width:720px;
}

.chart-bar-wrap{
  flex:1;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  position:relative;
}

.chart-bar{
  width:100%;
  max-width:34px;
  min-height:4px;
  border-radius:8px 8px 0 0;
  background:linear-gradient(180deg, var(--gold), var(--gold-dark));
  box-shadow:0 0 16px rgba(65,65,255,.18);
}

.chart-bar-wrap span{
  position:absolute;
  bottom:-24px;
  color:var(--white-dim);
  font-size:.62rem;
  transform:rotate(-35deg);
  white-space:nowrap;
}

.chart-value{
  color:var(--white-dim);
  font-size:.62rem;
  min-height:14px;
  white-space:nowrap;
}

@media(max-width: 900px){
  .stats-filters,
  .stats-cards,
  .charts-grid{
    grid-template-columns:1fr;
  }

  .pos-summary-row{
    grid-template-columns:1fr !important;
  }

  .pos-summary-row > span{
    text-align:left;
  }
}


/* Búsqueda funcional del Punto de Venta */
.pos-product-list{
  display:block !important;
  max-height:64vh;
  overflow-y:auto;
}

.pos-product-list.hidden{
  display:block !important;
}

.pos-help{
  display:none !important;
}

.pos-no-results{
  color:var(--white-dim);
  padding:1rem;
  text-align:center;
}


/* Descuento POS por porcentaje */
.pos-discount-wrap{
  display:grid !important;
  grid-template-columns:minmax(90px, 1fr) auto;
  gap:8px;
  align-items:center;
  width:100%;
  max-width:none !important;
}

#posDiscountPercent{
  width:100% !important;
  box-sizing:border-box;
}

#applyDiscountBtn{
  white-space:nowrap;
  min-height:42px;
}

#posDiscountAmount{
  color:var(--gold);
  text-align:right;
}

@media(max-width:700px){
  .pos-discount-wrap{
    grid-template-columns:1fr;
  }
}


/* POS acciones alineadas */
.pos-actions{
  justify-content:flex-end;
  align-items:center;
}


/* Ventas registradas */
.sales-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.danger-outline{
  border-color:rgba(192,76,76,.45) !important;
  color:var(--red) !important;
}

.sales-summary{
  display:grid;
  grid-template-columns:repeat(3, minmax(180px, 1fr));
  gap:1rem;
  margin:1rem 0 1.5rem;
}

.sales-card{
  border:1px solid var(--black-border);
  border-radius:14px;
  background:rgba(255,255,255,.025);
  padding:1.15rem;
}

.sales-card span{
  display:block;
  color:var(--white-dim);
  font-size:.72rem;
  letter-spacing:1.4px;
  text-transform:uppercase;
  margin-bottom:8px;
}

.sales-card strong{
  color:var(--gold);
  font-size:1.45rem;
  font-family:'Cormorant Garamond', serif;
}

@media(max-width:800px){
  .sales-summary{
    grid-template-columns:1fr;
  }
}


/* POS ventas y estadísticas internas */
.pos-nav{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:0 0 1.2rem;
  border-bottom:1px solid var(--black-border);
  padding-bottom:1rem;
}

.pos-nav-btn{
  background:transparent;
  border:1px solid var(--black-border);
  color:var(--white-dim);
  padding:10px 14px;
  border-radius:999px;
  cursor:pointer;
  font-weight:700;
  letter-spacing:.5px;
}

.pos-nav-btn.active,
.pos-nav-btn:hover{
  color:var(--black);
  background:var(--gold);
  border-color:var(--gold);
}

.pos-pane{
  display:none;
}

.pos-pane.active{
  display:block;
}

.pos-panel-wide{
  border:1px solid var(--black-border);
  background:rgba(255,255,255,0.025);
  border-radius:18px;
  padding:1rem;
  box-shadow:var(--shadow);
}

#pos-pane-ventas .admin-table,
#pos-pane-estadisticas .admin-table{
  min-width:980px;
}

#pos-pane-estadisticas .charts-grid,
#pane-estadisticas .charts-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  margin-top:1rem;
}

#pos-pane-estadisticas .chart-card,
#pane-estadisticas .chart-card{
  border:1px solid var(--black-border);
  border-radius:14px;
  background:rgba(255,255,255,0.025);
  padding:1rem;
  overflow-x:auto;
}

#pos-pane-estadisticas .chart-card.full-span,
#pane-estadisticas .chart-card.full-span{
  grid-column:1 / -1;
}

.bar-chart{
  height:220px;
  display:flex;
  align-items:end;
  gap:8px;
  min-width:420px;
  border-bottom:1px solid var(--black-border);
  padding:2rem 0 1.8rem;
}

.monthly-chart{
  min-width:720px;
}

.chart-bar-wrap{
  flex:1;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  position:relative;
}

.chart-bar{
  width:100%;
  max-width:34px;
  min-height:4px;
  border-radius:8px 8px 0 0;
  background:linear-gradient(180deg, var(--gold), var(--gold-dark));
}

.chart-bar-wrap span{
  position:absolute;
  bottom:-24px;
  color:var(--white-dim);
  font-size:.62rem;
  transform:rotate(-35deg);
  white-space:nowrap;
}

.chart-value{
  color:var(--white-dim);
  font-size:.62rem;
  min-height:14px;
  white-space:nowrap;
}

@media(max-width:900px){
  #pos-pane-estadisticas .charts-grid,
  #pane-estadisticas .charts-grid{
    grid-template-columns:1fr;
  }
}


/* Eliminar ventas */
.sale-delete-btn{
  white-space:nowrap;
}

#pane-ventas .admin-table,
#pos-pane-ventas .admin-table{
  min-width:1100px;
}








/* Logo visible del Punto de Venta */
.pos-header-brand{
  display:flex !important;
  align-items:center !important;
  gap:22px !important;
}

.pos-header-logo{
  display:block !important;
  width:110px !important;
  max-width:110px !important;
  height:auto !important;
  object-fit:contain !important;
  flex:0 0 auto !important;
  filter:drop-shadow(0 0 18px rgba(65,65,255,.18));
}

@media(max-width:768px){
  .pos-header-logo{
    width:76px !important;
    max-width:76px !important;
  }
}


/* POS respeta inventario */
.pos-product-disabled{
  opacity:.45;
  cursor:not-allowed !important;
}

.pos-product-disabled .pos-add-btn,
.pos-add-btn:disabled{
  opacity:.45;
  cursor:not-allowed !important;
  filter:grayscale(1);
}

.pos-type-select option:disabled{
  color:#777;
}


/* Inventario simplificado */
#inventoryTable{
  min-width:720px;
}

#inventoryTable th,
#inventoryTable td{
  text-align:center;
}

#inventoryTable th:first-child,
#inventoryTable td:first-child{
  text-align:left;
}


/* Base limpia POS */
.pos-product-card{
  cursor:default !important;
}

.pos-add-btn{
  cursor:pointer !important;
}


/* Modal Finalizar Venta */
.finish-sale-card{
  max-width:520px;
}

.finish-sale-total{
  border:1px solid var(--black-border);
  border-radius:14px;
  padding:1rem;
  background:rgba(255,255,255,.025);
  margin:1rem 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
}

.finish-sale-total span{
  color:var(--white-dim);
  font-size:.78rem;
  letter-spacing:1.2px;
  text-transform:uppercase;
}

.finish-sale-total strong{
  color:var(--green);
  font-size:1.6rem;
}

.finish-sale-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:1rem;
}

.disabled-receipt{
  opacity:.45;
  cursor:not-allowed !important;
  filter:grayscale(1);
}

.disabled-receipt small{
  display:block;
  margin-top:4px;
  font-size:.68rem;
  color:var(--white-dim);
}

@media(max-width:650px){
  .finish-sale-actions{
    grid-template-columns:1fr;
  }
}






/* Método de pago dentro de totales */
.pos-payment-summary-row{
  display:grid !important;
  grid-template-columns:160px minmax(0, 1fr) !important;
  align-items:center;
  gap:16px;
  padding:.75rem 0 !important;
  border-bottom:1px solid var(--black-border);
}

.pos-payment-summary-row span{
  color:var(--white);
  font-weight:700;
  text-align:right;
}

.pos-payment-summary-select{
  width:100%;
  max-width:260px;
  justify-self:end;
  background:#0a0a0a;
  border:1px solid var(--black-border);
  color:var(--white);
  border-radius:10px;
  padding:.7rem .85rem;
  font-family:'Montserrat',sans-serif;
}

@media(max-width:700px){
  .pos-payment-summary-row{
    grid-template-columns:1fr !important;
  }

  .pos-payment-summary-row span{
    text-align:left;
  }

  .pos-payment-summary-select{
    max-width:none;
    justify-self:stretch;
  }
}


/* Dinero recibido y cambio */
.pos-cash-section{
  display:block;
}

.pos-cash-section.hidden{
  display:none !important;
}

.pos-cash-row,
.pos-change-row{
  display:grid !important;
  grid-template-columns:160px minmax(0, 1fr) !important;
  align-items:center;
  gap:16px;
  padding:.75rem 0 !important;
  border-bottom:1px solid var(--black-border);
}

.pos-cash-row span,
.pos-change-row span{
  color:var(--white);
  font-weight:700;
  text-align:right;
}

.pos-cash-input{
  width:100%;
  max-width:260px;
  justify-self:end;
  background:#0a0a0a;
  border:1px solid var(--black-border);
  color:var(--white);
  border-radius:10px;
  padding:.7rem .85rem;
  font-family:'Montserrat',sans-serif;
}

#posChangeAmount{
  justify-self:end;
  color:var(--green);
  font-weight:800;
}

#posChangeAmount.negative-change{
  color:var(--red);
}

@media(max-width:700px){
  .pos-cash-row,
  .pos-change-row{
    grid-template-columns:1fr !important;
  }

  .pos-cash-row span,
  .pos-change-row span{
    text-align:left;
  }

  .pos-cash-input,
  #posChangeAmount{
    max-width:none;
    justify-self:stretch;
  }
}


/* Quitar flechas del input number */
.pos-cash-input::-webkit-outer-spin-button,
.pos-cash-input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

.pos-cash-input{
  -moz-appearance:textfield;
}


.pos-cash-actions{
  display:flex;
  align-items:center;
  gap:12px;
  justify-content:flex-end;
}

.pos-calculate-btn{
  height:48px;
  padding:0 1rem;
  white-space:nowrap;
}

@media(max-width:700px){
  .pos-cash-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .pos-calculate-btn{
    width:100%;
  }
}


/* Botones uniformes */
.pos-calculate-btn,
.discount-btn{
    height:42px !important;
    min-width:110px !important;
    padding:0 14px !important;
    font-size:.9rem !important;
    border-radius:10px !important;
}


/* Botones dorados iguales */
.pos-action-btn{
    width:110px !important;
    height:42px !important;
    min-width:110px !important;
    max-width:110px !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    font-size:.9rem !important;
    font-weight:700 !important;
    border-radius:10px !important;
    line-height:1 !important;
    flex-shrink:0 !important;
}


/* Imagen lateral segura del modal de producto */
.modal-product-layout{
  display:grid;
  grid-template-columns:minmax(320px, 1fr) 280px;
  gap:22px;
  align-items:center;
}

.modal-product-main{
  min-width:0;
}

.modal-product-image-panel{
  min-height:320px;
  border:1px solid rgba(65,65,255,.22);
  border-radius:18px;
  background:rgba(0,0,0,.28);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}

.modal-product-image-panel img{
  display:block;
  max-width:100%;
  max-height:300px;
  object-fit:contain;
  margin:auto;
  filter:drop-shadow(0 18px 26px rgba(0,0,0,.55));
}

.modal-product-image-panel.hidden{
  display:none !important;
}

@media(max-width:820px){
  .modal-product-layout{
    grid-template-columns:1fr;
  }

  .modal-product-image-panel{
    min-height:220px;
  }

  .modal-product-image-panel img{
    max-height:210px;
  }
}


/* Corrección imagen modal producto */
.modal-product-image-panel{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center;
}

.modal-product-image-panel.hidden{
  display:none !important;
}

#modalProductSideImage{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:330px;
  object-fit:contain;
  margin:auto;
}


/* Evita parpadeo de imagen anterior en modal */
.modal-product-image-panel.is-loading{
  position:relative;
}

.modal-product-image-panel.is-loading::after{
  content:'';
  width:28px;
  height:28px;
  border:2px solid rgba(65,65,255,.25);
  border-top-color:var(--gold);
  border-radius:50%;
  animation:modalImgSpin .8s linear infinite;
}

.modal-product-image-panel.is-loading img{
  display:none !important;
}

#modalProductSideImage{
  transition:opacity .16s ease;
}

@keyframes modalImgSpin{
  to{ transform:rotate(360deg); }
}


.modal-product-image-panel{
  position:relative;
}

.modal-product-image-panel.is-loading img{
  opacity:0 !important;
}

.modal-product-image-panel.is-loading::before{
  content:'';
  position:absolute;
  width:28px;
  height:28px;
  border-radius:50%;
  border:2px solid rgba(65,65,255,.2);
  border-top-color:#4141ff;
  animation:modalSpin .8s linear infinite;
}

@keyframes modalSpin{
  to{
    transform:rotate(360deg);
  }
}


/* Limpieza total de imagen al cerrar modal */
.modal-product-image-panel.hidden{
  display:none !important;
}

.modal-product-image-panel img:not([src]),
.modal-product-image-panel img[src=""]{
  display:none !important;
  opacity:0 !important;
}


/* Animación premium de imagen modal */
.modal-product-image-panel{
  overflow:hidden;
}

#modalProductSideImage{
  opacity:0;
  transform:scale(.96);
  transition:
    opacity 2s ease,
    transform 2s ease;
  will-change:opacity, transform;
}

#modalProductSideImage[src]{
  opacity:1;
  transform:scale(1);
}

.modal-product-image-panel.is-loading #modalProductSideImage{
  opacity:0 !important;
  transform:scale(.96) !important;
}


/* TOTAL MÁS GRANDE */
.pos-total-row{
    padding-top: 18px;
    padding-bottom: 18px;
}

.pos-total-row .label,
.pos-total-row span:first-child{
    font-size: 32px !important;
    font-weight: 800 !important;
    letter-spacing: .5px;
}

.pos-total-row .value,
.pos-total-row span:last-child{
    font-size: 72px !important;
    font-weight: 900 !important;
    line-height: 1;
}


/* FIX REAL TOTAL */
.pos-total-row{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:20px;
    padding:24px 0 !important;
}

.pos-total-row *{
    line-height:1 !important;
}

.pos-total-row .total-label,
.pos-total-row h2,
.pos-total-row strong,
.pos-total-row span:first-child{
    font-size:42px !important;
    font-weight:900 !important;
}

.pos-total-row .total-value,
.pos-total-row .price,
.pos-total-row span:last-child{
    font-size:82px !important;
    font-weight:900 !important;
    color:#46d39a !important;
}


/* ===== MODAL NUEVO LAYOUT ===== */

.modal-product-options{
    display:flex !important;
    flex-direction:column !important;
    gap:18px !important;
    width:100% !important;
}

/* Sellado arriba fijo */
.option-sellado{
    width:100% !important;
    min-width:100% !important;
    max-width:100% !important;
}

/* Decants alineados */
.modal-decants-grid{
    display:grid !important;
    grid-template-columns:repeat(4, 1fr) !important;
    gap:12px !important;
    width:100% !important;
}

.modal-decants-grid .product-option{
    width:100% !important;
    height:92px !important;
    min-width:0 !important;

    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;

    text-align:center !important;
    overflow:hidden !important;
}

.modal-decants-grid .product-option *{
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
}


/* Orden fijo real de opciones del modal */
#modalOptions,
.modal-options{
  display:flex !important;
  flex-direction:column !important;
  gap:16px !important;
  width:100% !important;
  align-items:stretch !important;
}

.modal-sellado-row{
  width:100% !important;
  display:block !important;
}

.modal-sellado-row .modal-option,
.modal-option-sellado{
  width:100% !important;
  min-width:100% !important;
  max-width:100% !important;
  height:58px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-direction:column !important;
  text-align:center !important;
  border-radius:999px !important;
}

.modal-decants-row{
  width:100% !important;
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:10px !important;
}

.modal-decants-row .modal-option,
.modal-option-decant{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:64px !important;
  padding:8px 6px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-direction:column !important;
  text-align:center !important;
  border-radius:999px !important;
  overflow:hidden !important;
}

.modal-decants-row .modal-option span,
.modal-decants-row .modal-option strong,
.modal-option-decant span,
.modal-option-decant strong{
  display:block !important;
  width:100% !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  line-height:1.1 !important;
}

.modal-decants-row .modal-option span,
.modal-option-decant span{
  font-size:.76rem !important;
}

.modal-decants-row .modal-option strong,
.modal-option-decant strong{
  font-size:.68rem !important;
}

@media(max-width:700px){
  .modal-decants-row{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}


/* Decants visibles sin cortar texto */
.modal-decants-row{
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:10px !important;
}

.modal-decants-row .modal-opt,
.modal-option-decant{
  height:58px !important;
  min-width:0 !important;
  padding:8px 10px !important;
  border-radius:999px !important;
}

.modal-decants-row .modal-opt span,
.modal-decants-row .modal-opt small,
.modal-option-decant span,
.modal-option-decant small{
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:unset !important;
  line-height:1.12 !important;
  text-align:center !important;
}

.modal-decants-row .modal-opt-label,
.modal-option-decant .modal-opt-label{
  font-size:.78rem !important;
  font-weight:600 !important;
}

.modal-decants-row small,
.modal-option-decant small{
  font-size:.68rem !important;
}


/* Marca arriba gris y perfume abajo dorado en modal */
#modalPerfumeName{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:6px !important;
  line-height:1.08 !important;
  margin-bottom:12px !important;
}

#modalPerfumeName .modal-brand-name{
  color:#8d8d8d !important;
  font-size:.95rem !important;
  font-weight:600 !important;
  letter-spacing:1.4px !important;
  text-transform:uppercase !important;
  font-family:'Montserrat', sans-serif !important;
}

#modalPerfumeName .modal-product-name{
  color:var(--gold) !important;
  font-size:1.95rem !important;
  font-weight:700 !important;
  letter-spacing:.6px !important;
  text-transform:uppercase !important;
  font-family:'Cormorant Garamond', serif !important;
  line-height:1.05 !important;
}


/* ===== MODAL PROPUESTA FINAL PROPORCIONAL ===== */
#addToCartModal .modal-card{
  width:min(1040px, 88vw) !important;
  max-width:1040px !important;
  min-height:600px !important;
  padding:48px 54px !important;
  border-radius:24px !important;
  background:linear-gradient(145deg, rgba(29,29,29,.98), rgba(15,15,15,.98)) !important;
  box-shadow:0 26px 78px rgba(0,0,0,.72) !important;
}

#addToCartModal .modal-close{
  top:24px !important;
  right:28px !important;
  font-size:2rem !important;
  z-index:10 !important;
}

#addToCartModal .modal-product-layout{
  display:grid !important;
  grid-template-columns:minmax(500px, 1fr) 350px !important;
  gap:54px !important;
  align-items:center !important;
}

#addToCartModal .modal-product-main{
  min-width:0 !important;
}

#modalPerfumeName{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:12px !important;
  margin:0 0 22px !important;
  line-height:1 !important;
}

#modalPerfumeName .modal-brand-name{
  color:#9d9d9d !important;
  font-family:'Montserrat', sans-serif !important;
  font-size:.98rem !important;
  font-weight:700 !important;
  letter-spacing:2.6px !important;
  text-transform:uppercase !important;
}

#modalPerfumeName .modal-product-name{
  color:var(--gold) !important;
  font-family:'Cormorant Garamond', serif !important;
  font-size:2.8rem !important;
  font-weight:700 !important;
  letter-spacing:.7px !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
}

#addToCartModal .modal-sub{
  font-size:1.08rem !important;
  margin-bottom:30px !important;
  color:rgba(255,255,255,.7) !important;
}

#modalOptions{
  display:flex !important;
  flex-direction:column !important;
  gap:26px !important;
  width:100% !important;
  margin-bottom:32px !important;
}

.modal-sellado-row{
  width:100% !important;
}

.modal-sellado-row .modal-opt{
  width:100% !important;
  height:86px !important;
  border-radius:999px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-direction:column !important;
  text-align:center !important;
}

.modal-sellado-row .modal-opt .modal-opt-label{
  font-size:1.16rem !important;
  font-weight:800 !important;
}

.modal-sellado-row .modal-opt small{
  font-size:.98rem !important;
  font-weight:800 !important;
}

.modal-decants-row{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:10px !important;
  width:100% !important;
}

.modal-decants-row .modal-opt{
  height:116px !important;
  border-radius:14px !important;
  padding:14px 8px !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  flex-direction:column !important;
  text-align:center !important;
  min-width:0 !important;
  overflow:hidden !important;
}

.modal-decants-row .modal-opt .modal-opt-label{
  font-size:.95rem !important;
  font-weight:800 !important;
  line-height:1.12 !important;
  white-space:nowrap !important;
}

.modal-decants-row .modal-opt small{
  font-size:.88rem !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
  color:var(--gold) !important;
}

#addToCartModal .modal-qty-wrap{
  margin-top:24px !important;
  margin-bottom:32px !important;
  gap:18px !important;
  font-size:1.08rem !important;
}

#addToCartModal .qty-btn{
  width:46px !important;
  height:46px !important;
  font-size:1.75rem !important;
}

#addToCartModal .qty-input{
  width:94px !important;
  height:54px !important;
  font-size:1.28rem !important;
}

#modalAddBtn{
  height:70px !important;
  border-radius:8px !important;
  font-size:1.08rem !important;
  letter-spacing:2px !important;
  width:100% !important;
}

#addToCartModal .modal-product-image-panel{
  width:350px !important;
  height:480px !important;
  min-height:480px !important;
  border:1.5px solid rgba(65,65,255,.78) !important;
  border-radius:24px !important;
  background:rgba(0,0,0,.25) !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  padding:34px !important;
  overflow:hidden !important;
}

#modalProductSideImage{
  max-width:100% !important;
  max-height:100% !important;
  width:auto !important;
  height:auto !important;
  object-fit:contain !important;
  display:block !important;
  margin:auto !important;
  filter:drop-shadow(0 22px 34px rgba(0,0,0,.6)) !important;
}

@media(max-width:1050px){
  #addToCartModal .modal-card{
    width:min(760px, 92vw) !important;
    padding:36px 34px !important;
  }

  #addToCartModal .modal-product-layout{
    grid-template-columns:1fr !important;
    gap:30px !important;
  }

  #addToCartModal .modal-product-image-panel{
    width:100% !important;
    height:340px !important;
    min-height:340px !important;
  }

  #modalPerfumeName .modal-product-name{
    white-space:normal !important;
    font-size:2.35rem !important;
  }
}

@media(max-width:700px){
  .modal-decants-row{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}


/* FIX: precio visible cuando una opción del modal está seleccionada */
#modalOptions .modal-opt.selected small,
#modalOptions .modal-opt.selected .modal-opt-label{
  color:#050505 !important;
}

#modalOptions .modal-opt.selected small{
  font-weight:900 !important;
}

#modalOptions .modal-opt.selected{
  color:#050505 !important;
}


/* Lista principal: nombre del perfume dorado, marca gris */
#catalogBody .pf-name-gold{
  display:block !important;
  color:var(--gold) !important;
  font-family:'Cormorant Garamond', serif !important;
  font-size:1.35rem !important;
  font-weight:700 !important;
  letter-spacing:.5px !important;
  text-transform:uppercase !important;
  line-height:1.05 !important;
  margin-bottom:5px !important;
}

#catalogBody .pf-brand-gray{
  display:block !important;
  color:#9a9a9a !important;
  font-family:'Montserrat', sans-serif !important;
  font-size:.74rem !important;
  font-weight:600 !important;
  letter-spacing:.45px !important;
  text-transform:uppercase !important;
  line-height:1.1 !important;
}


/* Imágenes en Tu Cotización */
.quote-item{
  display:grid !important;
  grid-template-columns:52px minmax(0, 1fr) auto auto auto !important;
  align-items:center !important;
  gap:14px !important;
}

.quote-img-wrap{
  width:52px;
  height:52px;
  border:1px solid var(--black-border);
  border-radius:10px;
  background:#0b0b0b;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  flex-shrink:0;
}

.quote-thumb{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  padding:5px;
}

.quote-thumb-placeholder{
  color:var(--gold);
  font-weight:800;
  font-family:'Cormorant Garamond', serif;
  font-size:1.3rem;
}

@media(max-width:700px){
  .quote-item{
    grid-template-columns:46px minmax(0, 1fr) !important;
    gap:10px !important;
  }

  .quote-img-wrap{
    width:46px;
    height:46px;
  }
}


/* =========================================================
   FASE 1: Header superior POS limpio
   ========================================================= */

#pos-section .pos-header{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  height:72px !important;
  margin:0 !important;
  padding:0 28px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:1rem !important;

  background:#050505 !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
  box-shadow:none !important;
  z-index:999 !important;
}

#pos-section .pos-header-brand{
  height:72px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:0 !important;
  min-width:0 !important;
}

#pos-section .pos-header-logo{
  width:185px !important;
  height:52px !important;
  max-width:185px !important;
  max-height:52px !important;
  object-fit:contain !important;
  display:block !important;
  filter:drop-shadow(0 6px 15px rgba(65,65,255,.14)) !important;
}

/* En el header superior solo va el logo; título queda abajo */
#pos-section .pos-header-brand > div{
  display:none !important;
}

#pos-section .pos-header-actions{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:0 !important;
}

#pos-section #newPosSaleBtn,
#pos-section .pos-hidden-new-sale{
  display:none !important;
}

#pos-section #backAdminBtn{
  height:38px !important;
  padding:0 18px !important;
  border-radius:8px !important;
  border:1px solid rgba(255,255,255,.16) !important;
  background:rgba(255,255,255,.02) !important;
  color:#f2f2f2 !important;
  font-size:.76rem !important;
  font-weight:700 !important;
  letter-spacing:.35px !important;
  box-shadow:none !important;
}

#pos-section #backAdminBtn:hover{
  border-color:rgba(65,65,255,.6) !important;
  color:var(--gold) !important;
  background:rgba(65,65,255,.055) !important;
}

/* El contenido baja para no encimarse con el header fijo */
#pos-section.pos-section{
  padding-top:100px !important;
}

@media(max-width:700px){
  #pos-section .pos-header{
    height:66px !important;
    padding:0 16px !important;
  }

  #pos-section .pos-header-brand{
    height:66px !important;
  }

  #pos-section .pos-header-logo{
    width:145px !important;
    height:44px !important;
  }

  #pos-section #backAdminBtn{
    height:36px !important;
    padding:0 13px !important;
    font-size:.68rem !important;
  }

  #pos-section.pos-section{
    padding-top:90px !important;
  }
}


/* ===== BRANDING HEADER ===== */

#pos-section .pos-header{
  padding:0 22px !important;
}

#pos-section .pos-header-brand{
  gap:14px !important;
}

#pos-section .pos-header-logo{
  width:58px !important;
  height:58px !important;
  max-width:58px !important;
  max-height:58px !important;
  object-fit:contain !important;
  flex-shrink:0 !important;
}

#pos-section .pos-header-branding{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:flex-start !important;
  gap:1px !important;
  transform:translateY(-1px);
}

#pos-section .pos-brand-main{
  color:#d5ae4b !important;
  font-size:2rem !important;
  font-weight:700 !important;
  letter-spacing:.18em !important;
  line-height:1 !important;
  font-family:'Cormorant Garamond', serif !important;
}

#pos-section .pos-brand-sub{
  color:rgba(255,255,255,.7) !important;
  font-size:.56rem !important;
  letter-spacing:.42em !important;
  line-height:1 !important;
  font-weight:600 !important;
}



/* ===== FIX REAL HEADER BRANDING ===== */
#pos-section .pos-header{
  height:72px !important;
  padding:0 28px !important;
  background:#050505 !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
}

#pos-section .pos-header-brand{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:14px !important;
  height:72px !important;
}

/* No ocultar el branding nuevo */
#pos-section .pos-header-brand > div.pos-header-branding{
  display:flex !important;
}

#pos-section .pos-header-logo{
  width:54px !important;
  height:54px !important;
  max-width:54px !important;
  max-height:54px !important;
  object-fit:contain !important;
  flex-shrink:0 !important;
  display:block !important;
}

#pos-section .pos-header-branding{
  flex-direction:column !important;
  justify-content:center !important;
  align-items:flex-start !important;
  gap:3px !important;
}

#pos-section .pos-brand-main{
  color:#4141ff !important;
  font-family:'Cormorant Garamond', serif !important;
  font-size:1.9rem !important;
  font-weight:700 !important;
  letter-spacing:.22em !important;
  line-height:.9 !important;
}

#pos-section .pos-brand-sub{
  color:rgba(255,255,255,.72) !important;
  font-size:.52rem !important;
  font-weight:600 !important;
  letter-spacing:.55em !important;
  line-height:1 !important;
  padding-left:4px !important;
}

#pos-section #backAdminBtn{
  height:38px !important;
  padding:0 18px !important;
  border-radius:8px !important;
}

#pos-section #newPosSaleBtn,
#pos-section .pos-hidden-new-sale{
  display:none !important;
}


/* =========================================================
   CARRITO POS: mostrar solo 3 productos y usar scroll interno
   ========================================================= */

/* Mantiene el resto del diseño igual; solo controla la altura del carrito */
#pos-section .pos-cart-list{
  max-height: 255px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding-right: 6px !important;
}

/* Altura estable por producto para que se vean 3 completos */
#pos-section .pos-cart-row{
  min-height: 82px !important;
}

/* Scroll elegante solo dentro del carrito */
#pos-section .pos-cart-list::-webkit-scrollbar{
  width: 6px !important;
}

#pos-section .pos-cart-list::-webkit-scrollbar-track{
  background: rgba(255,255,255,.04) !important;
  border-radius: 999px !important;
}

#pos-section .pos-cart-list::-webkit-scrollbar-thumb{
  background: rgba(65,65,255,.72) !important;
  border-radius: 999px !important;
}

#pos-section .pos-cart-list{
  scrollbar-width: thin;
  scrollbar-color: rgba(65,65,255,.72) rgba(255,255,255,.04);
}


/* =========================================================
   POS FIJO SIN ALARGAR LA INTERFAZ
   ========================================================= */

/* La página normal conserva su scroll */
html,
body{
  overflow-x:hidden !important;
  overflow-y:auto !important;
}

/* Solo cuando se abre Punto de Venta se bloquea el scroll general */
body.pos-mode{
  overflow:hidden !important;
}

/* Mantiene la proporción visual existente, sin estirar paneles */
body.pos-mode #pos-section{
  max-height:100vh !important;
  overflow:hidden !important;
}

/* Evita que se genere scroll general dentro del POS */
body.pos-mode #pos-section .pos-pane.active{
  overflow:hidden !important;
}

/* Las listas internas siguen siendo las únicas con scroll */
body.pos-mode #pos-section .pos-product-list,
body.pos-mode #pos-section .pos-cart-list{
  overflow-y:auto !important;
  overflow-x:hidden !important;
}


/* =========================================
   QUITAR DOBLE LÍNEA INFERIOR DEL CARRITO
   ========================================= */

.pos-cart-footer{
    border-top:none !important;
    padding-top:10px !important;
    margin-top:0 !important;
}

.pos-cart-actions{
    margin-top:8px !important;
}


/* =========================================
   ELIMINAR DOBLE LÍNEA DEL FOOTER
   ========================================= */

/* elimina la línea superior extra */
.pos-cart-summary{
    border-top:none !important;
}

/* elimina cualquier separador adicional */
.pos-cart-footer::before,
.pos-cart-summary::before,
.pos-cart-actions::before{
    display:none !important;
    content:none !important;
}

/* mantiene solamente la línea inferior natural */
.pos-cart-actions{
    border-top:none !important;
    padding-top:10px !important;
    margin-top:8px !important;
}


/* =========================================
   ELIMINAR LAS DOS LÍNEAS DEL ÁREA INFERIOR
   ========================================= */

/* quita TODOS los bordes superiores del bloque inferior */
.pos-summary-section,
.pos-summary,
.pos-cart-summary,
.pos-cart-footer,
.pos-payment-section,
.pos-totals-section{
    border-top:none !important;
}

/* elimina pseudo-elementos que generan líneas */
.pos-summary-section::before,
.pos-summary::before,
.pos-cart-summary::before,
.pos-cart-footer::before,
.pos-payment-section::before,
.pos-totals-section::before,
.pos-summary-section::after,
.pos-summary::after,
.pos-cart-summary::after,
.pos-cart-footer::after{
    display:none !important;
    content:none !important;
}

/* deja solo una separación limpia */
.pos-cart-actions{
    margin-top:12px !important;
    padding-top:0 !important;
    border-top:none !important;
}


/* =========================================
   SOLO 2 PRODUCTOS VISIBLES EN CARRITO
   ========================================= */

.pos-cart-list{
    max-height: 235px !important;
    min-height: 235px !important;
    overflow-y: auto !important;
}


/* =========================================================
   FIX REAL: SOLO 2 PRODUCTOS VISIBLES EN EL CARRITO POS
   ========================================================= */

/* Altura fija de cada producto del carrito */
#pos-section .pos-cart-row,
.pos-section .pos-cart-row,
.pos-cart-panel .pos-cart-row{
  height:70px !important;
  min-height:70px !important;
  max-height:70px !important;
  box-sizing:border-box !important;
}

/* 2 productos exactos: 70px x 2 = 140px */
#pos-section .pos-cart-list,
.pos-section .pos-cart-list,
.pos-cart-panel .pos-cart-list,
#posCartList{
  height:140px !important;
  min-height:140px !important;
  max-height:140px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:6px !important;
  box-sizing:border-box !important;
}

/* Cuando está vacío, mantiene la misma altura sin crecer */
#pos-section .pos-cart-list .pos-empty,
#posCartList .pos-empty{
  height:140px !important;
  min-height:140px !important;
  max-height:140px !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* Scroll interno limpio */
#posCartList::-webkit-scrollbar{
  width:6px !important;
}

#posCartList::-webkit-scrollbar-track{
  background:rgba(255,255,255,.04) !important;
  border-radius:999px !important;
}

#posCartList::-webkit-scrollbar-thumb{
  background:rgba(65,65,255,.72) !important;
  border-radius:999px !important;
}


/* =========================================
   IMÁGENES SEGURAS EN CARRITO POS
   ========================================= */

#pos-section .pos-cart-product{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  min-width:0 !important;
}

#pos-section .pos-cart-thumb{
  width:46px !important;
  height:46px !important;
  min-width:46px !important;
  border-radius:10px !important;
  object-fit:contain !important;
  background:rgba(255,255,255,.025) !important;
  border:1px solid rgba(255,255,255,.07) !important;
  padding:4px !important;
  box-sizing:border-box !important;
}

#pos-section .pos-cart-product-info{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  min-width:0 !important;
}

#pos-section .pos-cart-product-info strong,
#pos-section .pos-cart-product-info span{
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}


/* =========================================
   SCROLL SOLO EN VENTAS Y ESTADÍSTICAS
   ========================================= */

/* Punto de venta fijo */
body.pos-fixed,
body.pos-fixed html{
  overflow:hidden !important;
}

/* Ventas y estadísticas sí pueden hacer scroll */
#sales-section,
#stats-section{
  overflow-y:auto !important;
  max-height:none !important;
}

/* Restaurar scroll normal fuera del POS */
body.allow-scroll{
  overflow-y:auto !important;
}


/* =========================================================
   FIX REAL: SCROLL EN PANELES VENTAS Y ESTADÍSTICAS DEL POS
   ========================================================= */

/* Venta actual sigue fija */
#pos-pane-venta.active{
  overflow:hidden !important;
}

/* Ventas y estadísticas sí pueden desplazarse */
#pos-pane-ventas.active,
#pos-pane-estadisticas.active{
  height:calc(100vh - 140px) !important;
  max-height:calc(100vh - 140px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:8px !important;
}

/* Si internamente tienen panel ancho, que no bloquee el scroll */
#pos-pane-ventas.active .pos-panel-wide,
#pos-pane-estadisticas.active .pos-panel-wide{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
}

/* Scroll visual elegante */
#pos-pane-ventas::-webkit-scrollbar,
#pos-pane-estadisticas::-webkit-scrollbar{
  width:6px !important;
}

#pos-pane-ventas::-webkit-scrollbar-track,
#pos-pane-estadisticas::-webkit-scrollbar-track{
  background:rgba(255,255,255,.04) !important;
  border-radius:999px !important;
}

#pos-pane-ventas::-webkit-scrollbar-thumb,
#pos-pane-estadisticas::-webkit-scrollbar-thumb{
  background:rgba(65,65,255,.72) !important;
  border-radius:999px !important;
}


/* =========================================================
   FIX DEFINITIVO: SCROLL EN VENTAS Y ESTADÍSTICAS
   ========================================================= */

/* El contenedor POS puede seguir fijo */
body.pos-mode{
  overflow:hidden !important;
}

/* Venta actual permanece fija */
#pos-pane-venta.pos-pane.active{
  overflow:hidden !important;
}

/* Los otros panes sí tienen scroll propio */
#pos-pane-ventas.pos-pane.active,
#pos-pane-estadisticas.pos-pane.active,
#pos-pane-ventas.active,
#pos-pane-estadisticas.active{
  display:block !important;
  height:calc(100vh - 150px) !important;
  max-height:calc(100vh - 150px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:10px !important;
  box-sizing:border-box !important;
  scrollbar-width:thin !important;
  scrollbar-color:rgba(65,65,255,.75) rgba(255,255,255,.04) !important;
}

/* Muy importante: los paneles internos no deben bloquear el scroll del pane */
#pos-pane-ventas.active .pos-panel-wide,
#pos-pane-estadisticas.active .pos-panel-wide,
#pos-pane-ventas.active .admin-table-wrap,
#pos-pane-estadisticas.active .admin-table-wrap{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
}

/* Permite contenido largo dentro de ventas/estadísticas */
#pos-pane-ventas.active > *,
#pos-pane-estadisticas.active > *{
  max-height:none !important;
}

/* Scroll webkit */
#pos-pane-ventas.pos-pane.active::-webkit-scrollbar,
#pos-pane-estadisticas.pos-pane.active::-webkit-scrollbar{
  width:7px !important;
}

#pos-pane-ventas.pos-pane.active::-webkit-scrollbar-track,
#pos-pane-estadisticas.pos-pane.active::-webkit-scrollbar-track{
  background:rgba(255,255,255,.04) !important;
  border-radius:999px !important;
}

#pos-pane-ventas.pos-pane.active::-webkit-scrollbar-thumb,
#pos-pane-estadisticas.pos-pane.active::-webkit-scrollbar-thumb{
  background:rgba(65,65,255,.75) !important;
  border-radius:999px !important;
}

/* Fallback: si el navegador está desplazando la sección, permitirlo solo fuera de venta actual */
#pos-section:has(#pos-pane-ventas.active),
#pos-section:has(#pos-pane-estadisticas.active){
  overflow:hidden !important;
}


/* =========================================================
   VENTAS: SCROLL INTERNO SOLO EN LA TABLA
   ========================================================= */

/* El panel de ventas queda fijo */
#pos-pane-ventas.active{
  overflow:hidden !important;
}

/* El contenedor general no debe crecer */
#pos-pane-ventas.active .pos-panel-wide{
  height:calc(100vh - 160px) !important;
  max-height:calc(100vh - 160px) !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  box-sizing:border-box !important;
}

/* Resumen y encabezado quedan fijos */
#pos-pane-ventas.active .admin-toolbar,
#pos-pane-ventas.active .sales-summary{
  flex:0 0 auto !important;
}

/* Solo la tabla tiene scroll */
#pos-pane-ventas.active .admin-table-wrap{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow-y:auto !important;
  overflow-x:auto !important;
  padding-right:6px !important;
  margin-top:14px !important;
}

/* Header de tabla fijo visualmente */
#pos-pane-ventas.active .admin-table thead th{
  position:sticky !important;
  top:0 !important;
  z-index:2 !important;
  background:#111 !important;
}

/* Scroll elegante */
#pos-pane-ventas.active .admin-table-wrap::-webkit-scrollbar{
  width:7px !important;
  height:7px !important;
}

#pos-pane-ventas.active .admin-table-wrap::-webkit-scrollbar-track{
  background:rgba(255,255,255,.04) !important;
  border-radius:999px !important;
}

#pos-pane-ventas.active .admin-table-wrap::-webkit-scrollbar-thumb{
  background:rgba(65,65,255,.72) !important;
  border-radius:999px !important;
}


/* =========================================================
   VENTAS: EXACTAMENTE ~10 FILAS VISIBLES
   ========================================================= */

#pos-pane-ventas.active .admin-table-wrap{
  max-height:520px !important;
  height:520px !important;
  overflow-y:auto !important;
  overflow-x:auto !important;
}


/* =========================================================
   VENTAS: GUI ADAPTADA A 10 REGISTROS VISIBLES
   ========================================================= */

/* El panel ya no se estira hasta abajo; se adapta al contenido */
#pos-pane-ventas.active .pos-panel-wide{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  padding-bottom:18px !important;
}

/* La tabla tiene altura exacta para 10 filas aprox. */
#pos-pane-ventas.active .admin-table-wrap{
  height:500px !important;
  max-height:500px !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:auto !important;
  margin-top:14px !important;
  border-radius:12px !important;
  border:1px solid rgba(255,255,255,.06) !important;
}

/* Evita que la tabla deje espacio vacío de más */
#pos-pane-ventas.active .admin-table{
  margin-bottom:0 !important;
}

/* Encabezado fijo dentro del scroll */
#pos-pane-ventas.active .admin-table thead th{
  position:sticky !important;
  top:0 !important;
  z-index:3 !important;
  background:#111 !important;
}

/* El pane sí puede respirar, pero sin forzar altura enorme */
#pos-pane-ventas.active{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
}

/* Scroll visual */
#pos-pane-ventas.active .admin-table-wrap::-webkit-scrollbar{
  width:7px !important;
  height:7px !important;
}

#pos-pane-ventas.active .admin-table-wrap::-webkit-scrollbar-track{
  background:rgba(255,255,255,.04) !important;
  border-radius:999px !important;
}

#pos-pane-ventas.active .admin-table-wrap::-webkit-scrollbar-thumb{
  background:rgba(65,65,255,.72) !important;
  border-radius:999px !important;
}


/* =========================================================
   ESTADÍSTICAS: layout proporcionado dentro de pantalla
   ========================================================= */

/* El panel de estadísticas queda dentro del viewport */
#pos-pane-estadisticas.active{
  height:calc(100vh - 150px) !important;
  max-height:calc(100vh - 150px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:8px !important;
  box-sizing:border-box !important;
}

/* El contenedor principal no debe estirarse de más */
#pos-pane-estadisticas.active .pos-panel-wide{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  padding:18px !important;
  box-sizing:border-box !important;
}

/* Tarjetas superiores más compactas */
#pos-pane-estadisticas.active .sales-summary,
#pos-pane-estadisticas.active .stats-summary{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:14px !important;
  margin:18px 0 14px !important;
}

#pos-pane-estadisticas.active .sales-card,
#pos-pane-estadisticas.active .stats-card{
  min-height:86px !important;
  padding:16px !important;
}

/* Gráficas en cuadrícula compacta */
#pos-pane-estadisticas.active .charts-grid,
#pos-pane-estadisticas.active .stats-grid,
#pos-pane-estadisticas.active .pos-stats-grid{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:14px !important;
  align-items:start !important;
}

/* Cada gráfica con altura razonable */
#pos-pane-estadisticas.active .chart-card,
#pos-pane-estadisticas.active .stats-chart,
#pos-pane-estadisticas.active .pos-chart-card{
  min-height:260px !important;
  max-height:320px !important;
  padding:16px !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

/* La gráfica anual ocupa todo el ancho pero sin bajar demasiado */
#pos-pane-estadisticas.active .chart-card:last-child,
#pos-pane-estadisticas.active .stats-chart:last-child,
#pos-pane-estadisticas.active .pos-chart-card:last-child{
  grid-column:1 / -1 !important;
  min-height:280px !important;
  max-height:320px !important;
}

/* Canvas controlado para que no empuje la pantalla */
#pos-pane-estadisticas.active canvas{
  max-height:230px !important;
  width:100% !important;
}

/* Títulos más compactos */
#pos-pane-estadisticas.active .pane-title{
  margin-bottom:12px !important;
}

#pos-pane-estadisticas.active h3,
#pos-pane-estadisticas.active h4{
  margin-top:0 !important;
}

/* Scroll elegante interno */
#pos-pane-estadisticas.active::-webkit-scrollbar{
  width:7px !important;
}

#pos-pane-estadisticas.active::-webkit-scrollbar-track{
  background:rgba(255,255,255,.04) !important;
  border-radius:999px !important;
}

#pos-pane-estadisticas.active::-webkit-scrollbar-thumb{
  background:rgba(65,65,255,.72) !important;
  border-radius:999px !important;
}

/* Pantallas más bajas */
@media(max-height:850px){
  #pos-pane-estadisticas.active{
    height:calc(100vh - 132px) !important;
    max-height:calc(100vh - 132px) !important;
  }

  #pos-pane-estadisticas.active .sales-card,
  #pos-pane-estadisticas.active .stats-card{
    min-height:74px !important;
    padding:13px !important;
  }

  #pos-pane-estadisticas.active .chart-card,
  #pos-pane-estadisticas.active .stats-chart,
  #pos-pane-estadisticas.active .pos-chart-card{
    min-height:220px !important;
    max-height:260px !important;
  }

  #pos-pane-estadisticas.active .chart-card:last-child,
  #pos-pane-estadisticas.active .stats-chart:last-child,
  #pos-pane-estadisticas.active .pos-chart-card:last-child{
    min-height:235px !important;
    max-height:270px !important;
  }

  #pos-pane-estadisticas.active canvas{
    max-height:185px !important;
  }
}


/* =========================================================
   MODAL AGREGAR AL CARRITO - RESPONSIVE EXCLUSIVO MÓVIL
   No afecta escritorio.
   ========================================================= */

@media (max-width: 768px){

  #addToCartModal,
  .modal-overlay{
    align-items:flex-start !important;
    justify-content:center !important;
    padding:14px 10px !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }

  #addToCartModal .modal-card{
    width:100% !important;
    max-width:430px !important;
    min-height:auto !important;
    max-height:none !important;
    margin:0 auto 18px !important;
    padding:30px 22px 26px !important;
    border-radius:22px !important;
    background:
      radial-gradient(circle at 50% 25%, rgba(65,65,255,.12), transparent 38%),
      linear-gradient(180deg, rgba(22,22,22,.98), rgba(7,7,7,.99)) !important;
    border:1px solid rgba(255,255,255,.12) !important;
    box-shadow:0 22px 70px rgba(0,0,0,.75) !important;
    overflow:visible !important;
  }

  #addToCartModal .modal-close{
    top:18px !important;
    right:18px !important;
    width:38px !important;
    height:38px !important;
    font-size:2rem !important;
    line-height:1 !important;
    z-index:20 !important;
  }

  #addToCartModal .modal-product-layout{
    display:flex !important;
    flex-direction:column !important;
    gap:18px !important;
    align-items:stretch !important;
  }

  #addToCartModal .modal-product-main{
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
  }

  #modalPerfumeName{
    margin:0 42px 12px 0 !important;
    gap:8px !important;
  }

  #modalPerfumeName .modal-brand-name{
    color:#a7a7a7 !important;
    font-size:.82rem !important;
    letter-spacing:2.8px !important;
    line-height:1.1 !important;
  }

  #modalPerfumeName .modal-product-name{
    color:var(--gold) !important;
    font-size:2.05rem !important;
    line-height:1.04 !important;
    letter-spacing:.7px !important;
    white-space:normal !important;
  }

  #addToCartModal .modal-sub{
    font-size:1rem !important;
    margin:0 0 16px !important;
    color:rgba(255,255,255,.72) !important;
  }

  #addToCartModal .modal-product-image-panel{
    order:2 !important;
    width:100% !important;
    height:310px !important;
    min-height:310px !important;
    padding:24px !important;
    border-radius:20px !important;
    border:1px solid rgba(65,65,255,.45) !important;
    background:
      radial-gradient(circle at center, rgba(65,65,255,.14), transparent 52%),
      rgba(0,0,0,.22) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden !important;
    margin:0 0 18px !important;
  }

  #modalProductSideImage{
    max-width:86% !important;
    max-height:92% !important;
    width:auto !important;
    height:auto !important;
    object-fit:contain !important;
  }

  #modalOptions{
    order:3 !important;
    gap:16px !important;
    margin:0 0 22px !important;
  }

  #modalOptions .modal-sellado-row{
    width:100% !important;
  }

  #modalOptions .modal-sellado-row .modal-opt{
    width:100% !important;
    height:74px !important;
    border-radius:20px !important;
    font-size:1rem !important;
    background:linear-gradient(135deg, #4141ff, #6868ff) !important;
    color:#090909 !important;
    border:none !important;
    box-shadow:0 10px 24px rgba(65,65,255,.16) !important;
  }

  #modalOptions .modal-sellado-row .modal-opt small,
  #modalOptions .modal-sellado-row .modal-opt .modal-opt-label{
    color:#090909 !important;
  }

  #modalOptions .modal-sellado-row .modal-opt .modal-opt-label{
    font-size:1.08rem !important;
  }

  #modalOptions .modal-sellado-row .modal-opt small{
    font-size:.92rem !important;
  }

  #modalOptions .modal-decants-row{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:12px !important;
    width:100% !important;
  }

  #modalOptions .modal-decants-row .modal-opt{
    height:96px !important;
    border-radius:16px !important;
    padding:12px 8px !important;
    background:rgba(255,255,255,.025) !important;
    border:1px solid rgba(255,255,255,.10) !important;
  }

  #modalOptions .modal-decants-row .modal-opt .modal-opt-label{
    white-space:normal !important;
    font-size:.96rem !important;
    line-height:1.15 !important;
  }

  #modalOptions .modal-decants-row .modal-opt small{
    font-size:.9rem !important;
    color:var(--gold) !important;
  }

  #modalOptions .modal-opt.selected{
    background:linear-gradient(135deg, #4141ff, #6868ff) !important;
    border-color:rgba(255,255,255,.28) !important;
    color:#080808 !important;
  }

  #modalOptions .modal-opt.selected small,
  #modalOptions .modal-opt.selected .modal-opt-label{
    color:#080808 !important;
  }

  #addToCartModal .modal-qty-wrap{
    order:4 !important;
    margin:0 0 20px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:14px !important;
  }

  #addToCartModal .modal-qty-wrap label{
    font-size:1rem !important;
  }

  #addToCartModal .qty-control{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
  }

  #addToCartModal .qty-btn{
    width:42px !important;
    height:42px !important;
    border-radius:50% !important;
    font-size:1.55rem !important;
  }

  #addToCartModal .qty-input{
    width:70px !important;
    height:46px !important;
    border-radius:10px !important;
    font-size:1.1rem !important;
    text-align:center !important;
  }

  #modalAddBtn{
    order:5 !important;
    width:100% !important;
    height:62px !important;
    border-radius:14px !important;
    font-size:1rem !important;
    letter-spacing:1.4px !important;
    margin-top:0 !important;
  }
}

@media (max-width: 390px){
  #addToCartModal .modal-card{
    padding:26px 16px 22px !important;
  }

  #modalPerfumeName .modal-product-name{
    font-size:1.72rem !important;
  }

  #addToCartModal .modal-product-image-panel{
    height:260px !important;
    min-height:260px !important;
  }

  #modalOptions .modal-decants-row .modal-opt{
    height:88px !important;
  }

  #modalOptions .modal-decants-row .modal-opt .modal-opt-label{
    font-size:.86rem !important;
  }
}


/* =========================================================
   LISTA PRINCIPAL DE PERFUMES - RESPONSIVE EXCLUSIVO MÓVIL
   - Sin botón Agregar
   - Toda la tarjeta abre el modal
   - Precio menudeo verde dentro de la tarjeta
   - Sin scroll horizontal
   ========================================================= */

@media (max-width: 768px){

  body{
    overflow-x:hidden !important;
  }

  .filters-bar{
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
    padding:0 16px !important;
    margin-bottom:18px !important;
  }

  .filters-bar .search-input{
    width:100% !important;
    height:48px !important;
    border-radius:14px !important;
    font-size:.95rem !important;
  }

  .filter-chips{
    width:100% !important;
    display:flex !important;
    gap:8px !important;
    overflow-x:auto !important;
    padding-bottom:2px !important;
    scrollbar-width:none !important;
  }

  .filter-chips::-webkit-scrollbar{
    display:none !important;
  }

  .chip{
    flex:0 0 auto !important;
    height:34px !important;
    padding:0 14px !important;
    font-size:.72rem !important;
    border-radius:999px !important;
  }

  .table-wrap{
    width:100% !important;
    overflow:visible !important;
    padding:0 14px 24px !important;
    border:none !important;
    background:transparent !important;
  }

  .catalog-table,
  .catalog-table thead,
  .catalog-table tbody,
  .catalog-table tr,
  .catalog-table td{
    display:block !important;
    width:100% !important;
    box-sizing:border-box !important;
  }

  .catalog-table thead{
    display:none !important;
  }

  #catalogBody{
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
  }

  #catalogBody tr.mobile-add-card{
    position:relative !important;
    display:grid !important;
    grid-template-columns:92px minmax(0, 1fr) 22px !important;
    grid-template-areas:
      "img name arrow"
      "img price arrow" !important;
    column-gap:14px !important;
    align-items:center !important;

    min-height:128px !important;
    padding:14px 42px 14px 14px !important;
    border-radius:18px !important;
    border:1px solid rgba(65,65,255,.42) !important;
    background:linear-gradient(180deg, rgba(20,20,20,.96), rgba(8,8,8,.98)) !important;
    cursor:pointer !important;
    overflow:hidden !important;
  }

  #catalogBody tr.mobile-add-card:active{
    transform:scale(.992) !important;
  }

  #catalogBody tr.mobile-add-card::after{
    content:"›";
    position:absolute !important;
    right:16px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    color:var(--gold) !important;
    font-size:2.3rem !important;
    line-height:1 !important;
    font-family:Arial, sans-serif !important;
  }

  #catalogBody tr.mobile-add-card.unavailable{
    opacity:.45 !important;
    cursor:not-allowed !important;
  }

  #catalogBody .col-img{
    grid-area:img !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }

  #catalogBody .perfume-thumb,
  #catalogBody .perfume-placeholder{
    width:88px !important;
    height:100px !important;
    max-width:88px !important;
    max-height:100px !important;
    object-fit:contain !important;
    border-radius:12px !important;
    background:rgba(255,255,255,.025) !important;
    border:none !important;
    padding:4px !important;
  }

  #catalogBody .col-name{
    grid-area:name !important;
    padding:0 !important;
    min-width:0 !important;
  }

  #catalogBody .pf-brand,
  #catalogBody .pf-brand-gray{
    display:block !important;
    color:#a6a6a6 !important;
    font-size:.78rem !important;
    font-weight:600 !important;
    letter-spacing:.8px !important;
    text-transform:uppercase !important;
    line-height:1.15 !important;
    margin-bottom:4px !important;
  }

  #catalogBody .pf-name,
  #catalogBody .pf-name-gold{
    display:block !important;
    color:#fff !important;
    font-family:'Montserrat', sans-serif !important;
    font-size:1rem !important;
    font-weight:800 !important;
    letter-spacing:.1px !important;
    text-transform:uppercase !important;
    line-height:1.18 !important;
    white-space:normal !important;
    overflow:visible !important;
    margin:0 !important;
  }

  /* Ocultar columnas que provocan scroll horizontal */
  #catalogBody td:nth-child(3),
  #catalogBody .price-mayor,
  #catalogBody .action-cell,
  #catalogBody .btn-add{
    display:none !important;
  }

  /* Precio minorista dentro de la tarjeta, en verde */
  #catalogBody .price-base{
    grid-area:price !important;
    display:block !important;
    padding:0 !important;
    margin-top:8px !important;
    color:#48d879 !important;
    font-size:1.25rem !important;
    font-weight:900 !important;
    letter-spacing:.2px !important;
    text-align:left !important;
    white-space:nowrap !important;
  }

  #catalogBody .price-base::after{
    content:" menudeo";
    color:#9c9c9c !important;
    font-size:.68rem !important;
    font-weight:700 !important;
    letter-spacing:.6px !important;
    text-transform:uppercase !important;
    margin-left:5px !important;
  }

  .catalog-table{
    min-width:0 !important;
  }

  .main-content,
  main,
  .catalog-section{
    overflow-x:hidden !important;
  }
}

@media (max-width:390px){
  #catalogBody tr.mobile-add-card{
    grid-template-columns:78px minmax(0, 1fr) 18px !important;
    min-height:116px !important;
    padding:12px 34px 12px 12px !important;
    column-gap:12px !important;
  }

  #catalogBody .perfume-thumb,
  #catalogBody .perfume-placeholder{
    width:74px !important;
    height:88px !important;
  }

  #catalogBody .pf-name,
  #catalogBody .pf-name-gold{
    font-size:.9rem !important;
  }

  #catalogBody .price-base{
    font-size:1.08rem !important;
  }
}


/* =========================================================
   FIX MÓVIL: BÚSQUEDA + BOTÓN DE FILTROS ORDENADO
   ========================================================= */

@media (max-width: 768px){

  .filters-bar{
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
    padding:0 16px !important;
    margin:0 0 18px 0 !important;
    overflow:visible !important;
  }

  .mobile-search-row{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) 86px !important;
    gap:10px !important;
    align-items:center !important;
    width:100% !important;
  }

  .mobile-search-row .search-input,
  .filters-bar .search-input,
  #searchInput{
    width:100% !important;
    min-width:0 !important;
    height:46px !important;
    max-height:46px !important;
    padding:0 14px !important;
    border-radius:13px !important;
    box-sizing:border-box !important;
    font-size:.9rem !important;
    line-height:46px !important;
    overflow:hidden !important;
  }

  .mobile-filter-toggle{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:86px !important;
    height:46px !important;
    border-radius:13px !important;
    border:1px solid rgba(65,65,255,.55) !important;
    background:rgba(65,65,255,.10) !important;
    color:var(--gold) !important;
    font-size:.75rem !important;
    font-weight:800 !important;
    letter-spacing:.5px !important;
    cursor:pointer !important;
  }

  /* filtros ocultos por default en móvil para que no se vean desordenados */
  .filters-bar #catFilters,
  .filters-bar #sexFilters{
    display:none !important;
  }

  .filters-bar.mobile-filters-open #catFilters,
  .filters-bar.mobile-filters-open #sexFilters{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    width:100% !important;
    overflow:visible !important;
    padding:2px 0 0 !important;
  }

  .filters-bar.mobile-filters-open #catFilters{
    margin-top:4px !important;
  }

  .filters-bar .chip{
    height:32px !important;
    padding:0 13px !important;
    border-radius:999px !important;
    font-size:.7rem !important;
    flex:0 0 auto !important;
  }

  /* evita scroll horizontal del área principal */
  .table-wrap,
  .catalog-table,
  #catalogBody,
  body,
  html{
    max-width:100% !important;
    overflow-x:hidden !important;
  }
}

@media (min-width: 769px){
  .mobile-search-row{
    display:contents !important;
  }

  .mobile-filter-toggle{
    display:none !important;
  }
}


/* =========================================================
   MOBILE: 4 FILTROS EN UNA SOLA FILA
   ========================================================= */

@media (max-width: 768px){

  .filters-bar.mobile-filters-open #catFilters{
    display:grid !important;
    grid-template-columns:repeat(4, minmax(0,1fr)) !important;
    gap:6px !important;
    width:100% !important;
  }

  .filters-bar.mobile-filters-open #catFilters .chip{
    width:100% !important;
    min-width:0 !important;
    padding:0 4px !important;
    height:30px !important;
    font-size:.62rem !important;
    letter-spacing:.3px !important;
    justify-content:center !important;
  }
}


/* =========================================================
   FIX MÓVIL: CARRITO COTIZACIÓN + CONTACTO
   ========================================================= */

@media (max-width: 768px){

  /* Evita que precio y controles de cantidad se encimen */
  .quote-item{
    display:grid !important;
    grid-template-columns:54px minmax(0, 1fr) !important;
    grid-template-areas:
      "img name"
      "img controls"
      "img price" !important;
    gap:8px 10px !important;
    align-items:center !important;
    padding:12px 0 !important;
  }

  .quote-img-wrap{
    grid-area:img !important;
    width:52px !important;
    height:52px !important;
  }

  .quote-thumb{
    width:52px !important;
    height:52px !important;
    object-fit:contain !important;
  }

  .qi-name{
    grid-area:name !important;
    min-width:0 !important;
    padding-right:24px !important;
  }

  .qi-brand,
  .qi-desc{
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    line-height:1.25 !important;
  }

  .qi-qty-wrap{
    grid-area:controls !important;
    justify-self:start !important;
    display:flex !important;
    align-items:center !important;
    gap:7px !important;
    margin-top:2px !important;
  }

  .qi-qty-btn{
    width:28px !important;
    height:28px !important;
    min-width:28px !important;
    border-radius:50% !important;
  }

  .qi-qty{
    min-width:22px !important;
    text-align:center !important;
  }

  .qi-price{
    grid-area:price !important;
    justify-self:start !important;
    color:#43c87e !important;
    font-size:.95rem !important;
    font-weight:800 !important;
    margin-top:0 !important;
    white-space:nowrap !important;
  }

  .qi-remove,
  .quote-remove{
    position:absolute !important;
    right:0 !important;
    top:14px !important;
  }

  /* Contáctanos: 3 redes alineadas en una fila */
  .contact-links,
  .social-links,
  .footer-socials,
  .contact-socials{
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:8px !important;
    width:100% !important;
    align-items:center !important;
  }

  .contact-links a,
  .social-links a,
  .footer-socials a,
  .contact-socials a{
    width:100% !important;
    min-width:0 !important;
    justify-content:center !important;
    text-align:center !important;
    padding-left:6px !important;
    padding-right:6px !important;
    box-sizing:border-box !important;
    white-space:nowrap !important;
    font-size:.78rem !important;
  }
}

@media (max-width:390px){
  .contact-links a,
  .social-links a,
  .footer-socials a,
  .contact-socials a{
    font-size:.68rem !important;
    padding-left:4px !important;
    padding-right:4px !important;
  }
}


/* =========================================================
   COTIZACIÓN: borrar producto siempre visible + '-' elimina si queda 1
   ========================================================= */

.quote-item{
  position:relative !important;
}

.qi-remove,
.quote-remove{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:28px !important;
  height:28px !important;
  min-width:28px !important;
  border-radius:50% !important;
  border:1px solid rgba(255,255,255,.14) !important;
  background:rgba(255,255,255,.035) !important;
  color:rgba(255,255,255,.72) !important;
  font-size:1.2rem !important;
  line-height:1 !important;
  cursor:pointer !important;
  opacity:1 !important;
  visibility:visible !important;
  transition:.2s ease !important;
}

.qi-remove:hover,
.quote-remove:hover{
  color:#fff !important;
  background:rgba(204,70,70,.22) !important;
  border-color:rgba(204,70,70,.55) !important;
}

@media (max-width:768px){
  .qi-remove,
  .quote-remove{
    position:absolute !important;
    top:10px !important;
    right:0 !important;
    z-index:5 !important;
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    background:rgba(0,0,0,.42) !important;
  }

  .qi-name{
    padding-right:36px !important;
  }
}


/* =========================================================
   CONTACTO MOBILE + DESKTOP ALIGN FIX
   ========================================================= */

/* quitar círculo de la X */
.qi-remove,
.quote-remove{
  border:none !important;
  background:transparent !important;
  box-shadow:none !important;
  width:auto !important;
  height:auto !important;
  min-width:auto !important;
  border-radius:0 !important;
  padding:0 2px !important;
  font-size:1.4rem !important;
  color:rgba(255,255,255,.72) !important;
}

.qi-remove:hover,
.quote-remove:hover{
  background:transparent !important;
  color:#ff6a6a !important;
}

/* sección contáctanos */
.contact-section,
.contact-container,
.footer-contact{
  text-align:center !important;
}

.contact-section h2,
.contact-title,
.footer-logo-text{
  width:100% !important;
  text-align:center !important;
  justify-content:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.contact-section p,
.contact-subtitle,
.footer-tagline{
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* redes alineadas */
.contact-socials,
.social-links,
.footer-socials{
  width:100% !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:14px !important;
  flex-wrap:nowrap !important;
}

.contact-socials a,
.social-links a,
.footer-socials a{
  margin:0 !important;
}

@media (max-width:768px){

  .contact-section,
  .contact-container,
  .footer-contact{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
  }

  .contact-socials,
  .social-links,
  .footer-socials{
    justify-content:center !important;
    align-items:center !important;
    width:100% !important;
    gap:10px !important;
  }

  .contact-section h2,
  .contact-title,
  .footer-logo-text,
  .contact-section p,
  .contact-subtitle,
  .footer-tagline{
    text-align:center !important;
  }
}


/* =========================================================
   FIX REAL: X SIN CÍRCULO + FOOTER/CONTACTO CENTRADO
   ========================================================= */

/* X de cotización: completamente sin círculo */
.qi-remove,
.quote-remove,
button.qi-remove,
button.quote-remove{
  appearance:none !important;
  -webkit-appearance:none !important;
  position:absolute !important;
  right:0 !important;
  top:10px !important;
  display:inline !important;
  width:auto !important;
  height:auto !important;
  min-width:0 !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  outline:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
  color:rgba(255,255,255,.62) !important;
  font-size:1rem !important;
  line-height:1 !important;
  font-weight:500 !important;
}

.qi-remove:hover,
.quote-remove:hover,
button.qi-remove:hover,
button.quote-remove:hover{
  background:transparent !important;
  background-color:transparent !important;
  color:#ff6a6a !important;
  box-shadow:none !important;
}

/* Centrar todo el bloque de footer/contacto */
.site-footer,
.footer,
footer,
.contact-section,
.contact-container,
.footer-content,
.footer-brand,
.footer-contact,
.contact-block{
  text-align:center !important;
}

/* Logo/texto CASARIZ FRAGRANCE centrado */
.site-footer .footer-brand,
.site-footer .brand,
.site-footer .footer-logo,
.site-footer .brand-text,
.site-footer h2,
.site-footer h3,
footer .footer-brand,
footer .brand,
footer .footer-logo,
footer .brand-text,
footer h2,
footer h3{
  width:100% !important;
  max-width:100% !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Subtítulo “El aroma que te define” centrado */
.site-footer p,
footer p,
.footer-tagline,
.footer-subtitle,
.brand-tagline,
.contact-subtitle{
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Botones/redes centrados y en una sola fila */
.site-footer .social-links,
.site-footer .footer-socials,
.site-footer .contact-socials,
.site-footer .contact-links,
footer .social-links,
footer .footer-socials,
footer .contact-socials,
footer .contact-links,
.social-links,
.footer-socials,
.contact-socials,
.contact-links{
  width:100% !important;
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}

.site-footer .social-links a,
.site-footer .footer-socials a,
.site-footer .contact-socials a,
.site-footer .contact-links a,
footer .social-links a,
footer .footer-socials a,
footer .contact-socials a,
footer .contact-links a,
.social-links a,
.footer-socials a,
.contact-socials a,
.contact-links a{
  flex:0 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:33% !important;
  margin:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  white-space:nowrap !important;
}

@media (max-width:768px){
  .site-footer,
  footer{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
  }

  .site-footer > *,
  footer > *{
    text-align:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .site-footer .social-links,
  .site-footer .footer-socials,
  .site-footer .contact-socials,
  .site-footer .contact-links,
  footer .social-links,
  footer .footer-socials,
  footer .contact-socials,
  footer .contact-links,
  .social-links,
  .footer-socials,
  .contact-socials,
  .contact-links{
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:8px !important;
    justify-items:center !important;
    align-items:center !important;
    width:min(100%, 360px) !important;
  }

  .site-footer .social-links a,
  .site-footer .footer-socials a,
  .site-footer .contact-socials a,
  .site-footer .contact-links a,
  footer .social-links a,
  footer .footer-socials a,
  footer .contact-socials a,
  footer .contact-links a,
  .social-links a,
  .footer-socials a,
  .contact-socials a,
  .contact-links a{
    width:100% !important;
    max-width:none !important;
    padding-left:4px !important;
    padding-right:4px !important;
    font-size:.72rem !important;
  }
}


/* =========================================================
   FOOTER: restaurar layout PC y conservar centrado en móvil
   ========================================================= */

/* PC / escritorio: CASARIZ izquierda, Contáctanos derecha */
@media (min-width: 769px){

  .site-footer .footer-inner{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    align-items:start !important;
    gap:40px !important;
    width:100% !important;
    max-width:1200px !important;
    margin:0 auto !important;
  }

  .site-footer .footer-brand{
    display:block !important;
    text-align:left !important;
    justify-self:start !important;
    align-items:flex-start !important;
    margin:0 !important;
    width:auto !important;
  }

  .site-footer .footer-brand .logo-text{
    display:block !important;
    text-align:left !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    margin:0 !important;
    width:auto !important;
  }

  .site-footer .footer-brand .logo-main,
  .site-footer .footer-brand .logo-sub,
  .site-footer .footer-tagline{
    text-align:left !important;
  }

  .site-footer .footer-tagline{
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .site-footer .footer-contact{
    display:block !important;
    text-align:left !important;
    justify-self:end !important;
    align-items:flex-start !important;
    margin:0 !important;
    width:auto !important;
  }

  .site-footer .footer-heading{
    text-align:left !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .site-footer .social-links{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    justify-content:flex-start !important;
    align-items:center !important;
    gap:10px !important;
    width:auto !important;
    margin:0 !important;
  }

  .site-footer .social-links a{
    width:auto !important;
    max-width:none !important;
    flex:0 0 auto !important;
    margin:0 !important;
    justify-content:center !important;
  }
}

/* Móvil: todo centrado como quedó actualmente */
@media (max-width: 768px){

  .site-footer .footer-inner{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    gap:22px !important;
  }

  .site-footer .footer-brand,
  .site-footer .footer-brand .logo-text,
  .site-footer .footer-contact{
    width:100% !important;
    text-align:center !important;
    align-items:center !important;
    justify-content:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .site-footer .footer-brand .logo-main,
  .site-footer .footer-brand .logo-sub,
  .site-footer .footer-tagline,
  .site-footer .footer-heading{
    text-align:center !important;
  }

  .site-footer .footer-tagline{
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .site-footer .social-links{
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:8px !important;
    width:min(100%, 360px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    justify-items:center !important;
    align-items:center !important;
  }

  .site-footer .social-links a{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    justify-content:center !important;
  }
}


/* =========================================================
   HEADER PC: logo/nombre con estilo similar al footer
   ========================================================= */

@media (min-width: 769px){

  .site-header{
    height:86px !important;
    min-height:86px !important;
    display:flex !important;
    align-items:center !important;
    border-bottom:1px solid rgba(255,255,255,.10) !important;
    background:#050505 !important;
  }

  .site-header .header-inner{
    width:100% !important;
    max-width:1200px !important;
    margin:0 auto !important;
    padding:0 28px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
  }

  .site-header .logo-link{
    display:flex !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:20px !important;
    text-decoration:none !important;
  }

  .site-header .logo-mark{
    width:60px !important;
    height: 60px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 56px !important;
  }

  .site-header .logo-img{
    width:80px !important;
    height:80px !important;
    max-width:80px !important;
    max-height:80px !important;
    object-fit:contain !important;
    display:block !important;
  }

  .site-header .logo-text{
    display:grid !important;
    grid-template-columns:auto auto !important;
    grid-template-areas:
      "main sub"
      "tag tag" !important;
    column-gap:8px !important;
    row-gap:4px !important;
    align-items:end !important;
    justify-content:center !important;
    text-align:center !important;
    margin-top:0 !important;
  }

  .site-header .logo-main{
    grid-area:main !important;
    color:var(--gold) !important;
    font-family:'Cormorant Garamond', serif !important;
    font-size:1.95rem !important;
    line-height:.88 !important;
    letter-spacing:.22em !important;
    font-weight:700 !important;
    text-align:left !important;
  }

  .site-header .logo-sub{
    grid-area:sub !important;
    color:rgba(255,255,255,.78) !important;
    font-family:'Montserrat', sans-serif !important;
    font-size:.86rem !important;
    line-height:1 !important;
    letter-spacing:.44em !important;
    font-weight:400 !important;
    text-align:left !important;
    margin-bottom:2px !important;
  }

}

/* Móvil conserva el header responsive anterior */
@media (max-width: 768px){
  .site-header .logo-text::after{
    content:none !important;
  }
}

/* =========================================================
   CORRECCIÓN PNG TRANSPARENTE — SIN FONDO NEGRO
   Aplica a catálogo, POS, admin y vista móvil.
   ========================================================= */
.perfume-thumb,
.admin-table img,
.catalog-table img,
.pos-product-card img,
.image-preview,
#catalogBody .perfume-thumb {
  object-fit: contain !important;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
}

.perfume-thumb,
.pos-product-card img,
#catalogBody .perfume-thumb {
  padding: 2px !important;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,.35));
}

/* Mantiene el contenedor elegante sin pintar de negro el PNG */
.col-img,
.pos-product-card,
.image-preview-wrap {
  background: transparent !important;
}

/* En móvil había otra regla que volvía a poner fondo a la imagen */
@media (max-width: 768px){
  #catalogBody .perfume-thumb {
    object-fit: contain !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
  }
}

@media (max-width: 390px){
  #catalogBody .perfume-thumb {
    object-fit: contain !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
  }
}


/* =========================================================
   HEADER MÓVIL FIJO — carrito siempre disponible
   ========================================================= */
.site-header{
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 99999 !important;
  background: rgba(10,10,10,0.97) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

body{
  padding-top: 74px !important;
}

@media (max-width: 768px){
  body{
    padding-top: 84px !important;
  }

  .site-header{
    min-height: 82px !important;
  }

  .header-inner{
    height: 82px !important;
    min-height: 82px !important;
  }

  .drawer{
    z-index: 100001 !important;
  }

  .drawer-overlay{
    z-index: 100000 !important;
  }
}

@media (max-width: 480px){
  body{
    padding-top: 86px !important;
  }

  .site-header{
    min-height: 84px !important;
  }

  .header-inner{
    height: 84px !important;
    min-height: 84px !important;
  }
}

/* Evita que anclas como #catalogo queden escondidas debajo del header fijo */
#top,
#catalogo,
#cotizacion,
#contacto,
#admin-section,
#pos-section{
  scroll-margin-top: 96px !important;
}


/* =========================================================
   FIX FINAL HEADER MÓVIL FIJO — fuera de cualquier media roto
   ========================================================= */
html, body{
  overflow-x:hidden !important;
}

.site-header{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  z-index:2147483000 !important;
  background:rgba(5,5,5,.98) !important;
  border-bottom:1px solid rgba(255,255,255,.10) !important;
  -webkit-transform:translateZ(0) !important;
  transform:translateZ(0) !important;
}

body{
  padding-top:86px !important;
}

@media (max-width:768px){
  .site-header{
    height:84px !important;
    min-height:84px !important;
  }

  .site-header .header-inner{
    height:84px !important;
    min-height:84px !important;
  }

  #catalogo{
    padding-top:2.5rem !important;
  }
}

#top,
#catalogo,
#cotizacion,
#contacto,
#admin-section,
#pos-section{
  scroll-margin-top:96px !important;
}

/* HEADER MÓVIL FIJO DEFINITIVO */
@media (max-width: 768px) {
  .site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 99999 !important;
    background: #0a0a0a !important;
  }

  body {
    padding-top: 86px !important;
  }

  .main-content {
    padding-top: 3rem !important;
  }

  .drawer,
  .drawer-overlay {
    z-index: 100000 !important;
  }
}

@media (max-width: 768px){
  .site-header{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    z-index:99999 !important;
    transform:translate3d(0,0,0) !important;
    opacity:1 !important;
    transition:
      transform .42s cubic-bezier(.22,.61,.36,1),
      opacity .28s ease !important;
    will-change:transform, opacity;
  }

  body:not(.pos-mode){
    padding-top:86px !important;
  }

  body.header-stopped-at-quote:not(.pos-mode):not(.modal-open){
    padding-top:86px !important;
  }

  body.header-stopped-at-quote .site-header{
    display:block !important;
    transform:translate3d(0,-112%,0) !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  body.modal-open .site-header,
  body:has(#addToCartModal:not(.hidden)) .site-header{
    display:none !important;
  }

  #catalogo,
  #cotizacion,
  #contacto,
  #admin-section{
    scroll-margin-top:96px !important;
  }
}

#addToCartModal{
  z-index:100000 !important;
}

#addToCartModal .modal-card{
  z-index:100001 !important;
}



/* PC header no fijo, móvil mantiene comportamiento especial */
@media (min-width: 769px){
  .site-header{
    position: relative !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
  }
  body{
    padding-top:0 !important;
  }
}


.wa-btn-icon{width:22px;height:22px;object-fit:contain;margin-right:0px;display:flex;vertical-align:middle;}
#copyQuoteBtn{display:flex;align-items:center;justify-content:center;gap:4px;}

#copyQuoteBtn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;

    font-size:16px;      /* tamaño del texto */
    font-weight:500;     /* grosor */
}


/* Botón limpiar premium */
#clearQuoteBtn{
  width:56px !important;
  min-width:56px !important;
  height:56px !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:linear-gradient(180deg,#c92f38,#b42530) !important;
  border:none !important;
  color:#fff !important;
  border-radius:12px !important;
}
#clearQuoteBtn svg{
  width:22px !important;
  height:22px !important;
  stroke-width:1.2 !important;
  transform:translateY(-1px);
}
#clearQuoteBtn:hover{
  background:linear-gradient(180deg,#d63842,#c12b35) !important;
}

/* Ventas mejoradas */
.sales-search-wrap{
  margin:0 0 1rem;
  max-width:520px;
}

.sale-code{
  color:var(--gold);
  font-size:.78rem;
  white-space:nowrap;
}

.gender-chart-legend{
  display:flex;
  gap:14px;
  align-items:center;
  flex-wrap:wrap;
  margin:.25rem 0 .75rem;
  font-size:.72rem;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--white-dim);
}

.gender-chart-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.gender-chart-legend span::before{
  content:'';
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
}

.legend-hombre::before{ background:#2f80ed; }
.legend-mujer::before{ background:#ff5fa2; }
.legend-unisex::before{ background:var(--gold); }

.gender-chart-wrap .gender-bars{
  width:100%;
  height:100%;
  display:flex;
  align-items:end;
  justify-content:center;
  gap:3px;
}

.gender-bar{
  width:8px;
  min-height:4px;
  border-radius:6px 6px 0 0;
  box-shadow:0 0 12px rgba(255,255,255,.08);
}

.gender-hombre{ background:#2f80ed; }
.gender-mujer{ background:#ff5fa2; }
.gender-unisex{ background:var(--gold); }

/* Los Más Vendidos */
.best-sellers-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
}

.best-seller-card{
  border:1px solid var(--black-border);
  border-radius:16px;
  background:rgba(255,255,255,.025);
  padding:1rem;
}

.best-seller-card h4{
  margin:0 0 1rem;
  color:var(--gold);
  font-size:.95rem;
  letter-spacing:1px;
}

.best-seller-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.best-row{
  display:grid;
  grid-template-columns:34px 58px minmax(0, 1fr) auto;
  gap:12px;
  align-items:center;
  padding:10px;
  border:1px solid rgba(255,255,255,.06);
  border-radius:14px;
  background:rgba(0,0,0,.24);
}

.best-rank{
  width:28px;
  height:28px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(65,65,255,.16);
  color:var(--gold);
  font-weight:800;
}

.best-img img,
.best-placeholder{
  width:56px;
  height:56px;
  border-radius:12px;
  object-fit:contain;
  background:rgba(255,255,255,.04);
  border:1px solid var(--black-border);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gold);
  font-family:'Cormorant Garamond',serif;
  font-size:1.2rem;
}

.best-info{
  min-width:0;
}

.best-info strong{
  display:block;
  color:var(--white);
  font-size:.86rem;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.best-info span{
  display:block;
  color:var(--white-dim);
  font-size:.74rem;
  letter-spacing:1px;
  margin-top:3px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.best-numbers{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:4px;
  color:var(--white-dim);
  font-size:.76rem;
  white-space:nowrap;
}

.best-numbers b{
  color:var(--gold);
}

.best-decants{
  cursor:help;
  border-bottom:1px dotted rgba(65,65,255,.7);
}

.best-empty{
  color:var(--white-dim);
  text-align:center;
  padding:1.5rem;
  border:1px dashed var(--black-border);
  border-radius:14px;
}

@media(max-width:900px){
  .best-sellers-grid{
    grid-template-columns:1fr;
  }

  .best-row{
    grid-template-columns:28px 54px minmax(0,1fr);
  }

  .best-numbers{
    grid-column:2 / -1;
    align-items:flex-start;
    flex-direction:row;
    flex-wrap:wrap;
  }
}


/* Tooltip elegante para desglose de decants en Los Más Vendidos */
.best-decants{
  position:relative;
  display:inline-flex;
  align-items:center;
  cursor:help;
}
.best-decants::after{
  content:attr(data-decants);
  position:absolute;
  right:0;
  bottom:calc(100% + 10px);
  min-width:112px;
  padding:10px 12px;
  border:1px solid rgba(65,65,255,.45);
  border-radius:10px;
  background:#111;
  color:#f5f0e8;
  font-size:.78rem;
  font-weight:600;
  line-height:1.45;
  white-space:pre-line;
  text-align:left;
  box-shadow:0 12px 26px rgba(0,0,0,.45);
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index:999999;
  pointer-events:none;
}
.best-decants::before{
  content:'';
  position:absolute;
  right:18px;
  bottom:calc(100% + 4px);
  width:10px;
  height:10px;
  background:#111;
  border-right:1px solid rgba(65,65,255,.45);
  border-bottom:1px solid rgba(65,65,255,.45);
  transform:rotate(45deg);
  opacity:0;
  visibility:hidden;
  transition:opacity .18s ease, visibility .18s ease;
  z-index:999998;
  pointer-events:none;
}
.best-decants:hover::after,
.best-decants:hover::before{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.best-decants:hover::before{
  transform:rotate(45deg);
}

/* =========================================================
   PC: catálogo con cotización fija a la derecha
   - Sólo aplica en escritorio.
   - La página no necesita bajar completa para ver perfumes.
   - El scroll queda dentro de la lista del catálogo.
   ========================================================= */
@media (min-width: 1025px){
  .desktop-shop-layout{
    width:min(1520px, calc(100% - 64px));
    margin:0 auto;
    padding:4rem 0;
    display:grid;
    grid-template-columns:minmax(0, 1fr) 430px;
    grid-template-areas:
      "catalog quote"
      "catalog contact";
    gap:24px;
    align-items:start;
  }

  .desktop-shop-layout .main-content{
    grid-area:catalog;
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
    min-height:0;
  }

  .desktop-shop-layout .main-content .section-header{
    margin-bottom:1.6rem;
  }

  .desktop-shop-layout .filters-bar{
    margin-bottom:1.1rem;
  }

  .desktop-shop-layout .table-wrap{
    height:calc(100vh - 235px);
    min-height:480px;
    max-height:760px;
    overflow:auto;
    border:1px solid var(--black-border);
    border-radius:var(--radius-md);
    background:var(--black-soft);
  }

  .desktop-shop-layout .catalog-table{
    min-width:820px;
  }

  .desktop-shop-layout .catalog-table thead{
    position:sticky;
    top:0;
    z-index:5;
  }

  .desktop-shop-layout .quote-section{
    grid-area:quote;
    position:sticky;
    top:24px;
    width:100%;
    background:transparent;
    border:0;
    padding:0;
  }

  .desktop-shop-layout .quote-section .section-header{
    display:none;
  }

  .desktop-shop-layout .quote-panel{
    width:100%;
    max-width:none;
    margin:0;
    padding:1.1rem;
    border-radius:var(--radius-lg);
  }

  .desktop-shop-layout .quote-stats{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:.7rem;
    margin-bottom:1rem;
  }

  .desktop-shop-layout .stat-box{
    padding:1rem .55rem;
  }

  .desktop-shop-layout .stat-label{
    font-size:.58rem;
    letter-spacing:1.4px;
  }

  .desktop-shop-layout .stat-val{
    font-size:1.05rem;
    line-height:1.15;
  }

  .desktop-shop-layout .quote-items{
    max-height:calc(100vh - 430px);
    min-height:84px;
    overflow:auto;
    margin-bottom:1rem;
    padding-right:4px;
  }

  .desktop-shop-layout .quote-actions{
    display:grid;
    grid-template-columns:1fr 58px;
    gap:10px;
    margin-bottom:.7rem;
  }

  .desktop-shop-layout .quote-actions .btn-gold,
  .desktop-shop-layout .quote-actions .btn-outline{
    width:100%;
    justify-content:center;
  }

  .desktop-shop-layout .quote-note{
    font-size:.68rem;
  }

  .desktop-shop-layout .site-footer{
    grid-area:contact;
    width:100%;
    margin:0;
    padding:1.2rem 1rem;
    border:1px solid var(--black-border);
    border-radius:var(--radius-lg);
    background:var(--black-card);
  }

  .desktop-shop-layout .footer-inner{
    display:block;
    max-width:none;
    padding:0;
    text-align:center;
  }

  .desktop-shop-layout .footer-brand{
    margin-bottom:1rem;
  }

  .desktop-shop-layout .footer-bottom{
    margin-top:1rem;
    padding-top:1rem;
  }

  .desktop-shop-layout .social-links{
    flex-wrap:wrap !important;
  }

  body:not(.pos-mode) .desktop-shop-layout{
    min-height:calc(100vh - 40px);
  }
}

