/* TCP product photo viewer: swipe track, thumbnails, counter, arrows. Loaded only on products with 2+ photos. */
.tcp-pv{min-width:0;width:100%}
.tcp-pv-stage{position:relative;background:#fafbfd;border:1px solid var(--tcp-line,#dce3e9);border-radius:1.2rem;overflow:hidden}
.tcp-pv-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;outline-offset:-3px}
.tcp-pv-track::-webkit-scrollbar{display:none}
.tcp-pv-slide{flex:0 0 100%;min-width:0;scroll-snap-align:center;scroll-snap-stop:always;aspect-ratio:1/1;max-height:560px;margin:0 auto;box-sizing:border-box}
.tcp-pv-link{display:block;width:100%;height:100%;cursor:zoom-in}
.tcp-pv-link:focus-visible{outline-offset:-5px}
.tcp-pv-link>img.tcp-pv-img{display:block;width:100%;height:100%;object-fit:contain;padding:1.25rem;box-sizing:border-box;border:0;background:transparent}
.tcp-pv-link>.tcp-cutout-frame{width:100%;height:100%;max-width:none;aspect-ratio:auto;border-radius:0}
.tcp-pv-count{position:absolute;right:.75rem;top:.75rem;padding:.2rem .6rem;border-radius:999px;background:rgba(21,43,66,.72);color:#fff;font:600 .8rem/1.4 system-ui,sans-serif;pointer-events:none}
.tcp-pv-nav{position:absolute;top:50%;transform:translateY(-50%);display:none;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;padding:0;border:1px solid var(--tcp-line,#dce3e9);border-radius:50%;background:rgba(255,255,255,.94);color:var(--tcp-ink,#152b42);box-shadow:0 2px 8px rgba(21,43,66,.18);cursor:pointer}
.tcp-pv-nav:disabled{opacity:.35;cursor:default}
.tcp-pv-nav:focus-visible,.tcp-pv-thumb:focus-visible{outline:3px solid var(--tcp-blue,#075b98);outline-offset:2px}
.tcp-pv-prev{left:.6rem}.tcp-pv-next{right:.6rem}
@media (hover:hover) and (pointer:fine){.tcp-pv-nav{display:flex}}
.tcp-pv-dots{display:none;justify-content:center;gap:.4rem;margin-top:.6rem}
.tcp-pv-dot{width:.5rem;height:.5rem;border-radius:50%;background:#c3ccd5;transition:background .2s,transform .2s}
.tcp-pv-dot.is-active{background:var(--tcp-blue,#075b98);transform:scale(1.25)}
.tcp-pv-thumbs{display:flex;gap:.6rem;overflow-x:auto;scrollbar-width:thin;padding:6px 6px .35rem;margin:.75rem -6px 0}
.tcp-pv-thumb{flex:0 0 auto;width:4.5rem;height:4.5rem;padding:0;border:2px solid var(--tcp-line,#dce3e9);border-radius:.7rem;background:#fafbfd;overflow:hidden;cursor:pointer}
.tcp-pv-thumb[aria-current="true"]{border-color:var(--tcp-blue,#075b98)}
.tcp-pv-thumb-img{display:block;width:100%;height:100%;object-fit:cover}
/* Phones: the next photo peeks in from the right; dots show the position. */
@media (max-width:700px){
 .tcp-pv-stage{background:transparent;border:0;border-radius:0;overflow:visible}
 .tcp-pv-track{padding-inline:6%;scroll-padding-inline:6%;gap:.6rem}
 .tcp-pv-slide{flex-basis:88%;background:#fafbfd;border:1px solid var(--tcp-line,#dce3e9);border-radius:1rem;overflow:hidden}
 .tcp-pv-count{right:calc(6% + .6rem)}
 .tcp-pv-dots{display:flex}
 .tcp-pv-thumb{width:3.75rem;height:3.75rem}
}
/* One-time nudge: the photos slide 28px left and back, once, to show they swipe. */
.tcp-pv.tcp-pv-nudge .tcp-pv-slide{animation:tcp-pv-nudge .9s ease-in-out 1}
@keyframes tcp-pv-nudge{0%,100%{transform:translateX(0)}40%{transform:translateX(-28px)}}
@media (prefers-reduced-motion:reduce){.tcp-pv-dot{transition:none}.tcp-pv.tcp-pv-nudge .tcp-pv-slide{animation:none}.tcp-pv-track{scroll-behavior:auto}}
