.luminarce-catalogo{
  --lm-bg:#0b0a08;
  --lm-bg-soft:#131110;
  --lm-card:#17140f;
  --lm-line:#2a2419;
  --lm-gold:#c9a24b;
  --lm-gold-bright:#f0c877;
  --lm-amber-glow:rgba(240,200,119,0.28);
  --lm-text:#f3eee3;
  --lm-muted:#a89d86;
  background:var(--lm-bg);
  color:var(--lm-text);
  font-family:'Jost',sans-serif;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  margin:0;
  line-height:1.4;
}
.luminarce-catalogo *{box-sizing:border-box;}
.luminarce-catalogo h1,.luminarce-catalogo h2,.luminarce-catalogo h3{font-family:'Cormorant Garamond',serif;font-weight:500;margin:0;}
.luminarce-catalogo a{color:inherit;}
.luminarce-catalogo button{font-family:'Jost',sans-serif;}
.luminarce-catalogo button:focus-visible,.luminarce-catalogo a:focus-visible{outline:2px solid var(--lm-gold-bright);outline-offset:2px;}

/* header */
.lm-header{position:sticky;top:0;z-index:9999;background:rgba(11,10,8,0.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--lm-line);}
.lm-topbar{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:18px 28px;}
.lm-wordmark{font-family:'Cormorant Garamond',serif;font-size:26px;letter-spacing:.14em;font-weight:600;display:flex;align-items:center;gap:10px;}
.lm-dot{width:8px;height:8px;border-radius:50%;background:var(--lm-gold-bright);box-shadow:0 0 10px 3px var(--lm-amber-glow);animation:lm-pulse 2.6s ease-in-out infinite;}
@keyframes lm-pulse{0%,100%{opacity:.55;box-shadow:0 0 6px 2px var(--lm-amber-glow);}50%{opacity:1;box-shadow:0 0 16px 6px var(--lm-amber-glow);}}
@media (prefers-reduced-motion: reduce){.lm-dot{animation:none;}}
.lm-cart-btn{position:relative;background:transparent;border:1px solid var(--lm-line);color:var(--lm-text);padding:10px 18px;font-size:13px;letter-spacing:.06em;cursor:pointer;display:flex;align-items:center;gap:8px;transition:border-color .2s;}
.lm-cart-btn:hover{border-color:var(--lm-gold);}
.lm-badge{background:var(--lm-gold-bright);color:#1a1508;font-size:11px;font-weight:600;min-width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0 4px;}

/* hero */
.lm-hero{position:relative;padding:100px 28px 90px;text-align:center;overflow:hidden;background:radial-gradient(ellipse 700px 420px at 50% 0%, var(--lm-amber-glow), transparent 65%), var(--lm-bg);}
.lm-eyebrow{font-size:12px;letter-spacing:.32em;color:var(--lm-gold);text-transform:uppercase;margin-bottom:22px;}
.lm-hero h1{font-size:clamp(34px,6vw,68px);line-height:1.08;margin:0 auto 22px;max-width:820px;color:var(--lm-text);}
.lm-hero p{max-width:520px;margin:0 auto 34px;color:var(--lm-muted);font-size:16px;line-height:1.6;}
.lm-hero-cta{display:inline-block;border:1px solid var(--lm-gold);color:var(--lm-gold-bright);text-decoration:none;padding:14px 32px;font-size:13px;letter-spacing:.1em;transition:background .25s,color .25s;}
.lm-hero-cta:hover{background:var(--lm-gold);color:#141008;}

/* shell: sidebar de filtros + contenido */
.lm-shell{max-width:1320px;margin:0 auto;padding:0 28px 60px;display:flex;align-items:flex-start;gap:40px;}
.lm-sidebar{width:230px;flex-shrink:0;position:sticky;top:96px;max-height:calc(100vh - 116px);overflow-y:auto;padding-bottom:20px;}
.lm-sidebar::-webkit-scrollbar{width:5px;}
.lm-sidebar::-webkit-scrollbar-thumb{background:var(--lm-line);}
.lm-sidebar-title{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--lm-muted);margin:24px 0 14px;}

/* árbol colapsable (categorías y demás grupos de filtro) */
.lm-tree{border-bottom:1px solid var(--lm-line); padding:16px 0;}
.lm-tree:first-of-type{padding-top:0;}
.lm-tree-summary{
  cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between;
  font-size:13.5px; color:var(--lm-text); letter-spacing:.02em; padding:4px 2px;
  -webkit-tap-highlight-color:transparent;
}
.lm-tree-summary::-webkit-details-marker{display:none;}
.lm-tree-summary::marker{content:'';}
.lm-tree-summary::after{
  content:'+'; color:var(--lm-muted); font-size:15px; transition:transform .2s, color .2s; flex-shrink:0; margin-left:8px;
}
.lm-tree[open] > .lm-tree-summary::after{transform:rotate(45deg); color:var(--lm-gold);}
.lm-tree-summary.is-active{color:var(--lm-gold-bright);}
.lm-tree-summary--static{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--lm-muted); cursor:pointer;}
.lm-tree-summary--static:hover{color:var(--lm-gold-bright);}
.lm-tree-children{
  margin-top:12px; padding-left:14px; border-left:1px solid var(--lm-line);
  display:flex; flex-direction:column; gap:2px;
}

/* buscador */
.lm-search-wrap{margin-bottom:20px;}
.lm-search-input{
  width:100%; background:#0f0d0a; border:1px solid var(--lm-line); color:var(--lm-text);
  padding:10px 12px; font-family:'Jost',sans-serif; font-size:13px;
}
.lm-search-input:focus{outline:none; border-color:var(--lm-gold);}
.lm-search-input::placeholder{color:var(--lm-muted);}

/* slider de precio */
.lm-price-slider-wrap{padding:2px 2px 4px;}
.lm-price-slider-label{color:var(--lm-gold-bright); font-family:'Cormorant Garamond',serif; font-size:19px; margin-bottom:10px;}
.lm-price-slider-wrap input[type="range"]{
  -webkit-appearance:none; appearance:none; width:100%; height:2px;
  background:var(--lm-line); outline:none; cursor:pointer; margin:10px 0;
}
.lm-price-slider-wrap input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none; width:16px; height:16px; border-radius:50%;
  background:var(--lm-gold-bright); border:2px solid #0f0d0a; box-shadow:0 0 0 1px var(--lm-gold);
  cursor:pointer;
}
.lm-price-slider-wrap input[type="range"]::-moz-range-thumb{
  width:16px; height:16px; border-radius:50%; background:var(--lm-gold-bright);
  border:2px solid #0f0d0a; box-shadow:0 0 0 1px var(--lm-gold); cursor:pointer;
}
.lm-price-slider-ends{display:flex; justify-content:space-between; font-size:11px; color:var(--lm-muted);}
.lm-filter-btn{
  text-align:left;background:none;border:none;border-left:2px solid transparent;
  color:var(--lm-muted);font-family:'Jost',sans-serif;font-size:13.5px;letter-spacing:.02em;
  padding:9px 14px;cursor:pointer;transition:color .2s,border-color .2s,background .2s;
}
.lm-filter-btn:hover{color:var(--lm-text);background:rgba(240,200,119,0.05);}
.lm-filter-btn.is-active{color:var(--lm-gold-bright);border-left-color:var(--lm-gold);background:rgba(240,200,119,0.07);}

/* buscador */
.lm-search-wrap{margin-bottom:6px;}
.lm-search-input{
  width:100%; background:#0f0d0a; border:1px solid var(--lm-line); color:var(--lm-text);
  padding:10px 12px; font-family:'Jost',sans-serif; font-size:13px;
}
.lm-search-input:focus{outline:none; border-color:var(--lm-gold);}
.lm-search-input::placeholder{color:var(--lm-muted);}

/* checkboxes de atributos */
.lm-checkgroup{display:flex;flex-direction:column;gap:2px;}
.lm-check{
  display:flex; align-items:center; gap:9px;
  font-size:13px; color:var(--lm-muted); padding:6px 4px; cursor:pointer;
  transition:color .2s;
}
.lm-check:hover{color:var(--lm-text);}
.lm-check input{
  appearance:none; -webkit-appearance:none; width:15px; height:15px; flex-shrink:0;
  border:1px solid var(--lm-line); background:#0f0d0a; cursor:pointer; position:relative;
}
.lm-check input:checked{border-color:var(--lm-gold); background:var(--lm-gold);}
.lm-check input:checked::after{
  content:''; position:absolute; left:4px; top:1px; width:4px; height:8px;
  border:solid #1a1508; border-width:0 2px 2px 0; transform:rotate(45deg);
}

.lm-clear-filters{
  margin-top:22px; width:100%; background:none; border:1px solid var(--lm-line); color:var(--lm-muted);
  font-family:'Jost',sans-serif; font-size:12px; letter-spacing:.05em; padding:10px; cursor:pointer;
  transition:border-color .2s, color .2s;
}
.lm-clear-filters:hover{border-color:var(--lm-gold); color:var(--lm-gold-bright);}

/* catalog */
.lm-main{flex:1;min-width:0;padding-top:10px;}
.lm-cat-section{padding-top:64px;scroll-margin-top:120px;}
.lm-cat-section.lm-hidden{display:none;}
.lm-empty-filter{color:var(--lm-muted);text-align:center;padding:80px 20px;font-size:14px;}
.lm-cat-header{display:flex;align-items:baseline;gap:18px;margin-bottom:26px;border-bottom:1px solid var(--lm-line);padding-bottom:14px;}
.lm-cat-header h2{font-size:28px;color:var(--lm-text);}
.lm-cat-header .lm-count{color:var(--lm-muted);font-size:13px;}
.lm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px;}
.lm-card{background:var(--lm-card);border:1px solid var(--lm-line);position:relative;display:flex;flex-direction:column;transition:border-color .25s,transform .25s;}
.lm-card:hover{border-color:var(--lm-gold);transform:translateY(-2px);}
.lm-imgwrap{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 50% 40%, #201a10 0%, #0f0d0a 75%);cursor:zoom-in;}
.lm-zoom-hint{
  position:absolute; left:50%; bottom:10px; transform:translateX(-50%);
  background:rgba(11,10,8,0.75); color:var(--lm-gold-bright);
  font-size:11px; letter-spacing:.04em; padding:5px 12px; border:1px solid var(--lm-line);
  opacity:0; transition:opacity .25s; white-space:nowrap; pointer-events:none;
}
.lm-card:hover .lm-zoom-hint{opacity:1;}
.lm-imgwrap::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 35%, var(--lm-amber-glow), transparent 60%);opacity:0;transition:opacity .35s;}
.lm-card:hover .lm-imgwrap::after{opacity:1;}
.lm-imgwrap img{width:88%;height:88%;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.5));transition:transform .4s ease;}
.lm-card:hover .lm-imgwrap img{transform:scale(1.045);}
.lm-body{padding:16px 16px 18px;display:flex;flex-direction:column;gap:10px;flex:1;}
.lm-sku{font-size:11px;letter-spacing:.06em;color:var(--lm-muted);}
.lm-cname{font-size:14.5px;color:var(--lm-text);line-height:1.3;}
.lm-price{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--lm-gold-bright);}
.lm-actions{display:flex;align-items:center;gap:8px;margin-top:auto;}
.lm-qty{display:flex;align-items:center;border:1px solid var(--lm-line);}
.lm-qty button{background:none;border:none;color:var(--lm-text);width:28px;height:32px;cursor:pointer;font-size:15px;}
.lm-qty button:hover{color:var(--lm-gold-bright);}
.lm-qty span{width:26px;text-align:center;font-size:13px;}
.lm-add-btn{flex:1;background:var(--lm-gold);color:#161006;border:none;height:34px;font-size:12px;letter-spacing:.06em;font-weight:500;cursor:pointer;transition:background .2s;}
.lm-add-btn:hover{background:var(--lm-gold-bright);}
.lm-add-btn.lm-added{background:#4a7a53;color:#eafcee;}

/* footer */
.lm-footer{border-top:1px solid var(--lm-line);padding:50px 28px 40px;text-align:center;color:var(--lm-muted);font-size:13px;}
.lm-footer .lm-wordmark{justify-content:center;margin-bottom:14px;}
.lm-fnote{max-width:480px;margin:0 auto;line-height:1.6;}

/* drawer */
.lm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);opacity:0;pointer-events:none;transition:opacity .3s;z-index:99998;}
.lm-overlay.lm-open{opacity:1;pointer-events:auto;}
.lm-drawer{position:fixed;top:0;right:0;height:100%;width:min(420px,92vw);background:var(--lm-bg-soft);border-left:1px solid var(--lm-line);transform:translateX(100%);transition:transform .35s ease;z-index:99999;display:flex;flex-direction:column;color:var(--lm-text);font-family:'Jost',sans-serif;}
.lm-drawer.lm-open{transform:translateX(0);}
.lm-drawer-head{padding:22px 22px 16px;border-bottom:1px solid var(--lm-line);display:flex;align-items:center;justify-content:space-between;}
.lm-drawer-head h3{font-size:22px;}
.lm-drawer-head button{background:none;border:none;color:var(--lm-muted);font-size:22px;cursor:pointer;line-height:1;}
.lm-drawer-items{flex:1;overflow-y:auto;padding:12px 22px;}
.lm-empty-cart{color:var(--lm-muted);text-align:center;padding:60px 20px;font-size:14px;}
.lm-drawer-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--lm-line);}
.lm-drawer-item img{width:64px;height:64px;object-fit:contain;background:#0f0d0a;padding:4px;}
.lm-di-info{flex:1;display:flex;flex-direction:column;gap:6px;}
.lm-di-top{display:flex;justify-content:space-between;gap:8px;}
.lm-di-name{font-size:13px;line-height:1.3;}
.lm-di-sku{font-size:10.5px;color:var(--lm-muted);}
.lm-di-remove{background:none;border:none;color:var(--lm-muted);cursor:pointer;font-size:13px;}
.lm-di-remove:hover{color:#e08a8a;}
.lm-di-bottom{display:flex;align-items:center;justify-content:space-between;}
.lm-di-price{font-family:'Cormorant Garamond',serif;color:var(--lm-gold-bright);font-size:16px;}
.lm-drawer-foot{border-top:1px solid var(--lm-line);padding:18px 22px 24px;}
.lm-subtotal-row{display:flex;justify-content:space-between;margin-bottom:16px;font-size:15px;}
.lm-subtotal-row .lm-amt{font-family:'Cormorant Garamond',serif;font-size:24px;color:var(--lm-gold-bright);}
.lm-whatsapp-btn{width:100%;border:none;background:#3aa15c;color:#f3fff5;padding:15px;font-size:14px;letter-spacing:.04em;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:background .2s;}
.lm-whatsapp-btn:hover{background:#43b969;}
.lm-hint{font-size:11px;color:var(--lm-muted);text-align:center;margin-top:10px;}
.lm-drawer-items::-webkit-scrollbar{width:6px;}
.lm-drawer-items::-webkit-scrollbar-thumb{background:var(--lm-line);}

/* modal de datos de contacto */
.lm-modal{
  position:fixed; top:50%; left:50%; transform:translate(-50%,-50%) scale(.97);
  width:min(420px,92vw);
  background:var(--lm-bg-soft);
  border:1px solid var(--lm-line);
  z-index:100001;
  padding:26px 26px 22px;
  opacity:0; pointer-events:none;
  transition:opacity .25s, transform .25s;
}
.lm-modal.lm-open{opacity:1; pointer-events:auto; transform:translate(-50%,-50%) scale(1);}
.lm-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.lm-modal-head h3{font-size:22px;}
.lm-modal-head button{background:none;border:none;color:var(--lm-muted);font-size:22px;cursor:pointer;line-height:1;}
.lm-modal-sub{color:var(--lm-muted);font-size:13px;line-height:1.5;margin:0 0 18px;}
.lm-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;font-size:12.5px;color:var(--lm-muted);}
.lm-field input{
  background:#0f0d0a; border:1px solid var(--lm-line); color:var(--lm-text);
  padding:11px 12px; font-family:'Jost',sans-serif; font-size:14px;
}
.lm-field input:focus{outline:none; border-color:var(--lm-gold);}
.lm-field input.lm-invalid{border-color:#d9736f;}
.lm-error{color:#e08a8a; font-size:11.5px; min-height:14px;}
#lmFormSubmit{margin-top:6px;}

/* lightbox con zoom */
.lm-lightbox{
  position:fixed; inset:0; z-index:100010;
  background:rgba(6,5,4,0.94);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; padding:40px 20px;
  opacity:0; pointer-events:none; transition:opacity .25s;
}
.lm-lightbox.lm-open{opacity:1; pointer-events:auto;}
.lm-lightbox-close{
  position:absolute; top:22px; right:26px;
  background:none; border:1px solid var(--lm-line); color:var(--lm-text);
  width:40px; height:40px; font-size:22px; cursor:pointer; line-height:1;
  transition:border-color .2s, color .2s;
}
.lm-lightbox-close:hover{border-color:var(--lm-gold); color:var(--lm-gold-bright);}
.lm-zoom-box{
  width:min(760px,92vw); height:min(760px,72vh);
  position:relative; overflow:hidden;
  background:#0f0d0a; border:1px solid var(--lm-line);
  cursor:zoom-in;
}
.lm-zoom-box img{
  width:100%; height:100%; object-fit:contain;
  transition:transform .08s linear;
  transform-origin:50% 50%;
  will-change:transform;
}
.lm-zoom-box.lm-zoomed img{cursor:zoom-out;}
.lm-zoom-caption{color:var(--lm-muted); font-size:13px; letter-spacing:.03em; text-align:center;}

@media(max-width:640px){
  .lm-zoom-box{width:94vw; height:60vh;}
  .lm-lightbox-close{top:14px; right:14px;}
}

@media(max-width:960px){
  .lm-shell{flex-direction:column;gap:0;}
  .lm-sidebar{
    position:static; width:100%; max-height:none; overflow:visible; padding-bottom:0;
  }
  .lm-tree-children{flex-direction:row; overflow-x:auto; gap:8px; padding-bottom:6px; scrollbar-width:none; border-left:none; padding-left:0;}
  .lm-tree-children::-webkit-scrollbar{display:none;}
  .lm-tree-children .lm-filter-btn{
    white-space:nowrap; border-left:none; border:1px solid var(--lm-line); border-radius:100px;
  }
  .lm-tree-children .lm-filter-btn.is-active{border-color:var(--lm-gold); background:rgba(240,200,119,0.07);}
  .lm-checkgroup{flex-direction:row; flex-wrap:wrap; gap:8px;}
  .lm-check{border:1px solid var(--lm-line); border-radius:100px; padding:6px 12px;}
  .lm-sidebar-title{margin:20px 0 10px;}
}

@media(max-width:640px){
  .lm-topbar{padding:14px 18px;}
  .lm-hero{padding:70px 18px 60px;}
  .lm-shell{padding:0 18px 40px;}
  .lm-cat-section{padding-top:44px;}
}
