/* Vertevance · product viewer (v129)
   Native <dialog> (top layer, inert page, Esc to close). Loaded for phones and tablets, and for
   touch screens at any width so an iPad in landscape gets it too. Every gesture has a button:
   swipe → previous / next, double-tap → zoom button, pull-down → close (WCAG 2.2 · 2.5.1, 2.5.7). */
@media (max-width:1023px),(any-pointer:coarse){
  html.pv-lock,html.pv-lock body{overflow:hidden!important}
  dialog.m-pv{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;color:#fff;
    display:flex;align-items:flex-end;justify-content:center;
    background:rgba(6,3,20,calc(.78 - var(--drag,0) * .5));
    opacity:0;transition:opacity .35s ease;overscroll-behavior:contain}
  dialog.m-pv:not([open]){display:none}
  dialog.m-pv::backdrop{background:transparent}
  dialog.m-pv.is-open{opacity:1}
  .pv-sheet{position:relative;width:100%;height:calc(100% - 12px);display:flex;flex-direction:column;
    border-radius:26px 26px 0 0;overflow:hidden;
    background:radial-gradient(120% 70% at 50% 34%,#2a1f72 0%,#170f45 46%,#0c0726 100%);
    border:1px solid rgba(170,178,255,.16);border-bottom:0;box-shadow:0 -30px 60px -30px rgba(0,0,0,.8);
    transform:translateY(100%);transition:transform .55s cubic-bezier(.16,1,.3,1)}
  .m-pv.is-open .pv-sheet{transform:none}
  .pv-sheet::before{content:"";position:absolute;top:8px;left:50%;width:40px;height:4px;margin-left:-20px;border-radius:4px;background:rgba(255,255,255,.25);z-index:3}
  .pv-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:22px 14px 6px 20px;position:relative;z-index:2}
  .pv-meta{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
  .pv-group{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#a99de0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--mono,ui-monospace,monospace)}
  .pv-count{font-size:13px;color:#fff;font-variant-numeric:tabular-nums}
  .pv-btn{flex:0 0 44px;width:44px;height:44px;border-radius:50%;position:relative;display:inline-flex;align-items:center;justify-content:center;
    border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);color:#fff;cursor:pointer;padding:0;
    transition:transform .2s cubic-bezier(.16,1,.3,1),background .2s,opacity .2s}
  .pv-btn:active{transform:scale(.92)}
  .pv-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .pv-btn[disabled]{opacity:.3;cursor:default}
  .pv-btn[aria-pressed="true"]{background:rgba(120,110,255,.35);border-color:rgba(190,198,255,.5)}
  .pv-btn:focus-visible,.pv-ask:focus-visible,.pv-dots button:focus-visible{outline:2px solid #9fb0ff;outline-offset:2px}
  .pv-stage{flex:1;min-height:0;position:relative}
  .pv-track{position:absolute;inset:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior:contain;outline:none}
  .pv-track::-webkit-scrollbar{display:none}
  .pv-track.locked{overflow:hidden}
  .pv-nav{position:absolute;top:50%;margin-top:-22px;z-index:2;background:rgba(16,10,44,.6)}
  .pv-prev{left:10px} .pv-next{right:10px}
  .pv-slide{flex:0 0 100%;height:100%;margin:0;scroll-snap-align:center;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center;
    padding:10px 14%;position:relative;overflow:hidden}
  .pv-slide::before{content:"";position:absolute;left:50%;top:50%;width:80%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
    background:radial-gradient(closest-side,rgba(120,110,255,.30),rgba(120,110,255,0));pointer-events:none}
  .pv-slide img{position:relative;max-width:100%;max-height:100%;object-fit:contain;
    filter:drop-shadow(0 22px 34px rgba(0,0,0,.55)) brightness(1.03) contrast(1.04) saturate(1.05);user-select:none;-webkit-user-drag:none;
    opacity:0;transform:scale(.96);transition:opacity .45s ease,transform .6s cubic-bezier(.16,1,.3,1)}
  .pv-slide img[src]{opacity:1;transform:none}
  .pv-slide.zoom{overflow:auto;display:block;padding:0;cursor:zoom-out;touch-action:pan-x pan-y}
  .pv-slide.zoom img{max-width:none;max-height:none;width:240%;height:auto;margin:0}
  .pv-slide.zoom::before{display:none}
  .pv-dots{display:flex;justify-content:center;gap:2px;padding:6px 0 0;min-height:14px}
  .pv-dots button{width:24px;height:24px;padding:0;border:0;background:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
  .pv-dots button i{display:block;width:6px;height:6px;border-radius:6px;background:rgba(255,255,255,.25);transition:width .35s cubic-bezier(.16,1,.3,1),background .3s}
  .pv-dots button[aria-current="true"] i{width:20px;background:linear-gradient(90deg,#4f5bff,#2fd4c4)}
  .pv-info{padding:8px 22px 4px;text-align:center}
  .pv-name{display:block;font-size:20px;line-height:1.25;color:#fff;font-weight:600;margin:0}
  .pv-sub{display:block;margin-top:4px;font-size:14px;color:#b9aee3}
  .pv-hint{margin:8px 0 0;font-size:12px;color:#8a80b8;letter-spacing:.02em}
  .pv-acts{padding:12px 16px calc(16px + env(safe-area-inset-bottom))}
  .pv-ask{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;border-radius:16px;color:#fff;text-decoration:none;font-size:16px;font-weight:500;
    background:linear-gradient(100deg,#3b46f5 0%,#5b3df2 45%,#8e33fb 100%);box-shadow:0 10px 24px -12px rgba(90,70,255,.95),inset 0 1px 0 rgba(255,255,255,.22)}
  .pv-ask:active{transform:scale(.97)}
  @media (prefers-reduced-motion:reduce){ dialog.m-pv,.pv-sheet,.pv-slide img{transition:none!important} }
  @media (prefers-reduced-transparency:reduce),(prefers-contrast:more){ dialog.m-pv{background:#07031a} .pv-nav{background:#1a1150} }
}
/* phones: the arrows are smaller and sit lower so they never cover the product */
@media (max-width:600px){
  .pv-slide{padding:10px 6%}
  .pv-nav{top:auto;bottom:6px;margin-top:0;width:40px;height:40px;flex-basis:40px}
}
/* tablets and touch screens: a centred card instead of a full sheet */
@media (min-width:601px){
  dialog.m-pv{align-items:center}
  .pv-sheet{width:min(760px,92vw);height:min(88svh,980px);border-radius:28px;border-bottom:1px solid rgba(170,178,255,.16);
    transform:translateY(40px) scale(.97);opacity:0;transition:transform .55s cubic-bezier(.16,1,.3,1),opacity .35s ease}
  .m-pv.is-open .pv-sheet{opacity:1}
  .pv-sheet::before{display:none}
  .pv-hint{display:none}
}
/* landscape phones: everything shrinks to keep the product large */
@media (max-height:480px) and (orientation:landscape){
  .pv-sheet{height:100%;border-radius:0;width:100%;border:0}
  .pv-top{padding:8px 12px 0 calc(16px + env(safe-area-inset-left))}
  .pv-dots,.pv-hint,.pv-sheet::before{display:none}
  .pv-info{padding:2px 16px 0}
  .pv-name{font-size:16px} .pv-sub{font-size:12.5px;margin-top:0}
  .pv-acts{padding:6px calc(16px + env(safe-area-inset-right)) 8px}
  .pv-ask{min-height:44px;max-width:420px;margin:0 auto}
  .pv-nav{top:50%;bottom:auto;margin-top:-20px}
}
