/* 3D viewer + AR on the product gallery */
.v3-models{position:absolute;left:18px;right:18px;top:68px;display:flex;gap:8px;justify-content:center}
.v3-models button{padding:9px 14px;border:1px solid var(--chrome);border-radius:999px;background:#fff;color:var(--navy);font-size:12px;cursor:pointer;box-shadow:0 3px 12px rgba(15,27,45,.08)}
.v3-models button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.v3-models button:focus-visible{outline:3px solid var(--water);outline-offset:3px}
.v3-launch{position:absolute;left:20px;bottom:20px;z-index:4;display:inline-flex;align-items:center;gap:9px;padding:11px 16px 11px 13px;border-radius:999px;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--chrome);box-shadow:0 10px 30px rgba(15,27,45,.12);font-family:Outfit,sans-serif;font-weight:600;font-size:14px;color:var(--navy);cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.v3-launch:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(15,27,45,.18)}
.v3-launch svg{width:20px;height:20px;color:var(--deep);animation:v3spin 6s linear infinite}
.v3-launch small{font-family:Inter,sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.12em;color:#fff;background:var(--navy);padding:3px 7px;border-radius:999px}
@keyframes v3spin{0%,70%{transform:rotateY(0)}100%{transform:rotateY(360deg)}}
.thumbs .v3-thumb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--navy);border-color:var(--navy);color:#fff;cursor:pointer}
.thumbs .v3-thumb svg{width:22px;height:22px}
.thumbs .v3-thumb span{font-family:Outfit,sans-serif;font-size:11px;font-weight:700;letter-spacing:.08em}
.thumbs .v3-thumb.on{border-color:var(--water);box-shadow:0 0 0 3px rgba(14,165,233,.25)}
.v3-layer{position:absolute;inset:0;z-index:5;background:radial-gradient(ellipse at 50% 42%,#AEBAC6 0%,#C0CBD5 55%,#DCE3EA 100%);opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility 0s linear .45s}
.gal-main.v3-on .v3-layer{opacity:1;visibility:visible;transition:opacity .45s var(--ease)}
.gal-main.v3-on .v3-launch{opacity:0;pointer-events:none}
.v3-layer model-viewer{width:100%;height:100%;--poster-color:transparent;background:transparent}
.v3-top{position:absolute;left:18px;right:18px;top:18px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.v3-tag{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;background:#fff;border:1px solid var(--chrome);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--deep)}
.v3-tag svg{width:15px;height:15px}
.v3-close{pointer-events:auto;width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--chrome);display:grid;place-items:center;color:var(--navy);cursor:pointer;transition:background .3s,color .3s}
.v3-close:hover{background:var(--navy);color:#fff}
.v3-close svg{width:18px;height:18px}
.v3-hint{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);font-size:12px;color:var(--graphite);background:rgba(255,255,255,.85);border:1px solid var(--chrome);padding:7px 14px;border-radius:999px;white-space:nowrap;opacity:0;transition:opacity .5s var(--ease) .4s}
.v3-layer.ready .v3-hint{opacity:1}
.v3-layer.can-ar .v3-hint{display:none}
.v3-progress{position:absolute;left:50%;top:50%;width:160px;height:3px;margin-left:-80px;border-radius:3px;background:var(--chrome);overflow:hidden;transition:opacity .4s}
.v3-progress i{display:block;height:100%;background:var(--water);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.v3-progress.done{opacity:0}
.v3-ar{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;background:var(--navy);color:#fff;border:0;font-family:Outfit,sans-serif;font-weight:600;font-size:15px;box-shadow:0 12px 34px rgba(15,27,45,.3);white-space:nowrap;cursor:pointer}
.v3-ar svg{width:20px;height:20px}
.v3-qr{position:absolute;right:18px;bottom:18px;display:none;align-items:center;gap:12px;padding:10px 14px 10px 10px;border-radius:18px;background:#fff;border:1px solid var(--chrome);box-shadow:0 10px 30px rgba(15,27,45,.08);max-width:290px}
.v3-layer.show-qr .v3-qr{display:flex}
.v3-layer.show-qr .v3-hint{left:18px;transform:none}
.v3-qrcode img,.v3-qrcode canvas{display:block;width:92px;height:92px}
.v3-qrtxt b{display:block;font-family:Outfit,sans-serif;font-size:13.5px;color:var(--navy);margin-bottom:3px}
.v3-qrtxt span{font-size:11.5px;color:var(--graphite);line-height:1.45}
.v3-layer.failed::after{content:"3D could not load. Check your connection.";position:absolute;inset:auto 0 50% 0;text-align:center;font-size:13px;color:var(--graphite)}
@media(max-width:1100px){.v3-layer.show-qr .v3-hint{display:none}}
@media(max-width:640px){.v3-qr{display:none!important}.v3-launch{left:14px;bottom:14px;padding:9px 13px 9px 11px;font-size:13px}}
.v3-qrcode{flex:none;width:92px;height:92px}
.gal-main .v3-qrcode img{position:static;inset:auto;opacity:1;transform:none;width:92px;height:92px;padding:0;background:#fff;object-fit:contain;transition:none}
/* "3D" badge on related-product cards */
.pc-img .pc-3d{position:absolute;top:14px;right:14px;z-index:2;display:inline-flex;align-items:center;gap:5px;padding:5px 9px 5px 7px;border-radius:999px;background:var(--navy);color:#fff;font-family:Outfit,sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.1em;line-height:1;box-shadow:0 6px 16px -8px rgba(15,27,45,.55);pointer-events:none}
.pc-img .pc-3d svg{width:13px;height:13px;stroke-width:1.9}
@media(min-width:641px){.pgrid .pc-img.has3d .pc-tag{max-width:calc(100% - 96px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media(max-width:640px){.pc-img .pc-3d{top:auto;bottom:10px;right:10px;padding:4px 7px 4px 5px;font-size:9.5px;gap:4px}.pc-img .pc-3d svg{width:11px;height:11px}}
