.loader{display:flex;justify-content:center;align-items:center;height:200px}.loader-circle{border:4px solid #f3f3f3;border-top:4px solid var(--color-primary);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.qv-wrap{padding:4px 0 0}.qv-grid{display:grid;grid-template-columns:1.1fr 1fr;grid-gap:24px;gap:24px;align-items:start}.qv-gallery{display:grid;grid-gap:12px;gap:12px}.qv-main{border:1px solid #e6e6e6;border-radius:8px;overflow:hidden;background:#f9f9f9;height:420px}.qv-main img{width:100%;height:100%;object-fit:cover;display:block}.qv-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-gap:8px;gap:8px}.qv-thumb{border:1px solid #e6e6e6;border-radius:6px;padding:0;background:var(--color-text-white);overflow:hidden;cursor:pointer}.qv-thumb img{width:100%;height:80px;object-fit:cover;display:block}.qv-thumb.is-active{outline:2px solid var(--color-primary)}.qv-info{display:grid;grid-gap:10px;gap:10px}.qv-title{margin:0;font-size:22px;font-weight:700}.qv-meta,.qv-title{text-transform:capitalize}.qv-meta{color:#6b7280}.qv-meta span{color:#111827;font-weight:600}.qv-price{display:flex;align-items:center;gap:10px}.qv-price .old{text-decoration:line-through;color:#ef4444;font-weight:800}.qv-price .new{font-weight:800;font-size:18px}.qv-price .save{background:#111;color:var(--color-text-white);border-radius:14px;padding:6px 10px;font-size:12px}.qv-desc{color:#111}.qv-stock{display:flex;align-items:center;gap:10px}.qv-stock .badge{padding:4px 10px;border-radius:6px;font-weight:700;font-size:12px}.qv-stock .in-stock{background:#eafff1;color:#059669}.qv-variants{display:grid;grid-gap:16px;gap:16px;margin:16px 0}.variant-group{display:grid;grid-gap:10px;gap:10px}.v-label{font-weight:600;color:#111;font-size:15px}.v-options{display:flex;flex-wrap:wrap;gap:8px}.v-option.size-option{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:2px solid #e5e7eb;border-radius:50%;background:var(--color-text-white);cursor:pointer;transition:all .2s ease;font-weight:600;font-size:14px}.v-option.size-option:hover{border-color:var(--color-primary);transform:scale(1.05)}.v-option.size-option.is-active{background:var(--color-primary);border-color:var(--color-primary)}.v-option.size-option.is-active .text{color:var(--color-text-white)}.v-option.size-option .text{color:#111}.v-option.color-option{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:2px solid #e5e7eb;border-radius:20px;background:var(--color-text-white);cursor:pointer;transition:all .2s ease;min-width:-moz-fit-content;min-width:fit-content}.v-option.color-option:hover{border-color:var(--color-primary);transform:translateY(-1px);box-shadow:0 2px 8px rgba(139,92,246,.15)}.v-option.color-option.is-active{background:var(--color-primary);border-color:var(--color-primary)}.v-option.color-option.is-active .text{color:var(--color-text-white)}.v-option.color-option .dot{width:16px;height:16px;border-radius:50%;border:2px solid #e5e7eb;flex-shrink:0}.v-option.color-option.is-active .dot{border-color:hsla(0,0%,100%,.8)}.v-option.color-option .text{color:#111;font-weight:500;font-size:14px}.v-option.weight-option{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border:2px solid #e5e7eb;border-radius:20px;background:var(--color-text-white);cursor:pointer;transition:all .2s ease;min-width:-moz-fit-content;min-width:fit-content}.v-option.weight-option:hover{border-color:var(--color-primary);transform:translateY(-1px);box-shadow:0 2px 8px rgba(139,92,246,.15)}.v-option.weight-option.is-active{background:var(--color-primary);border-color:var(--color-primary)}.v-option.weight-option.is-active .text{color:var(--color-text-white)}.v-option.weight-option .text{color:#111;font-weight:500;font-size:14px}.qv-qty{display:inline-grid;grid-template-columns:36px 60px 36px;border:1px solid #e6e6e6;border-radius:6px;overflow:hidden;width:max-content}.qv-qty button{background:#f6f6f6;border:0;font-weight:700}.qv-qty input{border:0;text-align:center;width:60px}.qv-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.qv-add{width:100%;height:44px;border:2px solid var(--color-primary);color:var(--color-primary);background:var(--color-text-white);border-radius:10px;font-weight:800}.qv-add:hover{background:#f5f0ff}.qv-buy{width:100%;height:44px;background:#0b0b0b;color:var(--color-text-white);border:0;border-radius:10px;font-weight:800}@media (max-width:1200px){.qv-grid{grid-template-columns:1fr}.qv-main{height:360px}}@media (max-width:576px){.qv-main{height:clamp(240px,70vw,340px)}.qv-thumb img{height:64px}.qv-thumbs{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}.qv-price .old{font-size:12px}.qv-add,.qv-buy{height:35px}}