/* ==================== Product display reveal + Quick View (assets/js/quickview.js) ==================== */
/* Display reveal: the photo unveils top-down like a lit display case, then name/price fade up */
.lx-display .img-wrap{clip-path:inset(0 0 100% 0);transition:clip-path 1s cubic-bezier(.7,0,.2,1);}
.lx-display .img-wrap img{transform:scale(1.12);transition:transform 1.6s cubic-bezier(.2,.75,.2,1),opacity .6s ease;}
.lx-display.shown .img-wrap{clip-path:inset(0 0 0 0);}
.lx-display.shown .img-wrap img{transform:scale(1);}
.lx-display .body{opacity:0;transform:translateY(12px);transition:opacity .6s ease .45s,transform .6s cubic-bezier(.2,.75,.2,1) .45s;}
.lx-display.shown .body{opacity:1;transform:none;}
.lx-display .img-wrap::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(70% 50% at 50% 0,rgba(255,236,190,.28),transparent 70%);opacity:0;transition:opacity .5s ease;}
.lx-display:hover .img-wrap::after{opacity:1;}

/* Quick view button */
.lx-qv-btn{position:absolute;left:50%;bottom:14px;z-index:6;display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 16px;border-radius:30px;
  white-space:nowrap;cursor:pointer;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#16120a;
  background:rgba(255,253,248,.95);box-shadow:0 8px 20px rgba(0,0,0,.3);transform:translate(-50%,16px);opacity:0;
  transition:opacity .3s ease,transform .35s cubic-bezier(.2,.75,.2,1),background .2s;}
.lx-qv-btn:hover{background:#e9c979;}
.dfm-product-card:hover .lx-qv-btn,.lx-qv-btn:focus-visible{opacity:1;transform:translate(-50%,0);}
@media (hover:none){
  .lx-qv-btn{opacity:1;left:8px;bottom:8px;transform:none;height:32px;padding:0 11px;font-size:10.5px;}
  .dfm-product-card:hover .lx-qv-btn{transform:none;}
}
.dfm-pcard .dfm-cc-dots{bottom:58px;}

/* Window */
html.lx-qv-lock,html.lx-qv-lock body{overflow:hidden!important;}
.lx-qv{position:fixed;inset:0;z-index:2100;display:flex;align-items:center;justify-content:center;padding:20px;visibility:hidden;pointer-events:none;transition:visibility 0s linear .45s;}
.lx-qv.open{visibility:visible;pointer-events:auto;transition-delay:0s;}
.lx-qv-back{position:absolute;inset:0;background:rgba(8,7,6,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .35s ease;}
.lx-qv.open .lx-qv-back{opacity:1;}
.lx-qv-panel{position:relative;display:grid;grid-template-columns:1.05fr 1fr;width:min(980px,100%);height:min(88vh,640px);border-radius:22px;overflow:hidden;
  background:var(--lx-card,#15130f);color:var(--lx-text,#efe9dc);border:1px solid var(--lx-line,rgba(201,162,74,.25));box-shadow:0 40px 90px rgba(0,0,0,.6);
  opacity:0;transform:translateY(30px) scale(.96);transition:opacity .4s ease,transform .5s cubic-bezier(.2,.75,.2,1);}
.lx-qv.open .lx-qv-panel{opacity:1;transform:none;}
.lx-qv-panel::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;z-index:3;background:var(--lx-metal);}
.lx-qv-x{position:absolute;right:14px;top:14px;z-index:4;width:40px;height:40px;border-radius:50%;border:1px solid var(--lx-line);background:var(--lx-card);color:var(--lx-text);
  cursor:pointer;transition:transform .3s ease,border-color .2s;}
.lx-qv-x:hover{transform:rotate(90deg);border-color:var(--lx-gold);}
.lx-qv-media{position:relative;display:flex;flex-direction:column;min-height:0;background:radial-gradient(80% 60% at 50% 20%,rgba(201,162,74,.14),transparent 70%),#f4efe6;}
html[data-theme="dark"] .lx-qv-media{background:radial-gradient(80% 60% at 50% 20%,rgba(201,162,74,.14),transparent 70%),#100e0b;}
.lx-qv-stage{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;}
.lx-qv-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transform:scale(1.05);transition:opacity .5s ease,transform 1.2s cubic-bezier(.2,.75,.2,1);}
.lx-qv-stage img.on{opacity:1;transform:none;}
.lx-qv-thumbs{display:flex;gap:8px;padding:10px 12px;overflow-x:auto;scrollbar-width:none;flex:0 0 auto;}
.lx-qv-thumbs:empty{display:none;}
.lx-qv-thumbs img{flex:0 0 54px;width:54px;height:68px;object-fit:cover;border-radius:8px;cursor:pointer;opacity:.55;border:2px solid transparent;transition:opacity .2s,border-color .2s;}
.lx-qv-thumbs img.on,.lx-qv-thumbs img:hover{opacity:1;border-color:var(--lx-gold);}
.lx-qv-info{padding:34px 30px 28px;overflow-y:auto;}
.lx-qv-info>*{animation:lx-qv-in .55s cubic-bezier(.2,.75,.2,1) both;}
.lx-qv-info>*:nth-child(2){animation-delay:.05s}.lx-qv-info>*:nth-child(3){animation-delay:.1s}.lx-qv-info>*:nth-child(4){animation-delay:.15s}
.lx-qv-info>*:nth-child(5){animation-delay:.2s}.lx-qv-info>*:nth-child(6){animation-delay:.25s}.lx-qv-info>*:nth-child(n+7){animation-delay:.3s}
@keyframes lx-qv-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.lx-qv-cat{font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--lx-gold);}
.lx-qv-info h3{font-family:'Playfair Display',serif;font-size:clamp(1.3rem,2.4vw,1.75rem);line-height:1.25;margin:8px 40px 8px 0;color:var(--lx-text);}
.lx-qv-rate{color:var(--lx-gold);font-size:14px;letter-spacing:2px;}
.lx-qv-rate span{opacity:.3;}
.lx-qv-rate small{color:var(--lx-muted);letter-spacing:0;}
.lx-qv-price{display:inline-block;font-family:'Playfair Display',serif;font-size:1.6rem;color:var(--lx-gold);margin:10px 0 8px;}
.lx-qv-price.bump{animation:lx-qv-bump .4s ease;}
@keyframes lx-qv-bump{50%{transform:scale(1.06)}}
.lx-qv-desc{color:var(--lx-muted);font-size:13.5px;line-height:1.65;margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.lx-qv-lbl{font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--lx-muted);margin:14px 0 8px;}
.lx-qv-lbl b{color:var(--lx-text);letter-spacing:.02em;text-transform:none;font-weight:600;}
.lx-qv-colors,.lx-qv-sizes{display:flex;flex-wrap:wrap;gap:8px;}
.lx-qv-colors button{width:44px;height:44px;padding:3px;border-radius:50%;border:2px solid var(--lx-line);background:transparent;cursor:pointer;transition:border-color .2s,transform .2s;}
.lx-qv-colors button i,.lx-qv-colors button img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;}
.lx-qv-colors button:hover{transform:translateY(-2px);}
.lx-qv-colors button.on{border-color:var(--lx-gold);box-shadow:0 0 0 3px rgba(201,162,74,.2);}
.lx-qv-sizes button{min-width:48px;height:42px;padding:0 12px;border-radius:10px;border:1px solid var(--lx-line);background:transparent;color:var(--lx-text);font-weight:600;cursor:pointer;transition:all .2s;}
.lx-qv-sizes button:hover{border-color:var(--lx-gold);}
.lx-qv-sizes button.on{background:var(--lx-gold);border-color:var(--lx-gold);color:#16120a;}
.lx-qv-colors button.na,.lx-qv-sizes button.na{opacity:.4;}
.lx-qv-colors.need,.lx-qv-sizes.need{animation:lx-qv-shake .45s ease;}
@keyframes lx-qv-shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.lx-qv-stock{min-height:22px;margin:12px 0 4px;font-size:13px;}
.lx-qv-stock .ok{color:#3ad07a}.lx-qv-stock .low{color:#e0a53a}.lx-qv-stock .out{color:#e07a6e}
.lx-qv-acts{display:grid;gap:10px;margin-top:10px;}
.lx-qv-acts .btn{min-height:50px;border-radius:40px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:13px;display:flex;align-items:center;justify-content:center;}
.lx-qv-msg{color:#e07a6e;font-size:13px;margin-top:8px;min-height:1em;}
.lx-qv-skel{display:grid;gap:12px;}
.lx-qv-skel i{display:block;height:18px;border-radius:6px;background:linear-gradient(90deg,rgba(201,162,74,.18),rgba(201,162,74,.05),rgba(201,162,74,.18));background-size:200% 100%;animation:lx-skel 1.2s linear infinite;}
.lx-qv-skel i:nth-child(1){width:30%}.lx-qv-skel i:nth-child(2){height:30px;width:85%}.lx-qv-skel i:nth-child(3){width:40%}.lx-qv-skel i:nth-child(4){height:120px}
@keyframes lx-skel{to{background-position:-200% 0}}
@media (max-width:767.98px){
  .lx-qv{padding:0;align-items:flex-end;}
  .lx-qv-panel{grid-template-columns:1fr;grid-template-rows:auto auto;height:auto;max-height:92vh;border-radius:20px 20px 0 0;overflow-y:auto;transform:translateY(100%);}
  .lx-qv-stage{height:44vh;flex:0 0 auto;}
  .lx-qv-info{padding:20px 18px calc(24px + env(safe-area-inset-bottom));overflow:visible;}
}
@media (prefers-reduced-motion:reduce){.lx-display .img-wrap{clip-path:none!important}.lx-display .body{opacity:1;transform:none}.lx-qv-info>*{animation:none}}
