/* Technodelic Tees | Product image hover zoom + enlarged-image viewer (shared by Home, Shop, Fall Edit). */

/* ---- tile trigger: the photo is a button; the title below is the link to the product page ---- */
.product-visual{position:relative}
.tt-zoom{position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:zoom-in;overflow:hidden;border-radius:inherit}
.tt-zoom img{position:absolute;inset:0;width:100%;height:100%;display:block;transform:scale(1);transition:transform .28s cubic-bezier(.2,.6,.2,1)}
.fe-orig-img{position:relative}
.fe-orig-img .tt-zoom{border-radius:3px}
.fe-orig-img .tt-zoom img{object-fit:cover}
.tt-zoom:focus-visible{outline:3px solid var(--pink,#ed0b86);outline-offset:-3px}
.tt-zoom-icon{position:absolute;right:10px;bottom:10px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,250,243,.94);color:#172345;box-shadow:0 4px 14px rgba(17,24,45,.16);pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity .2s ease,transform .2s ease}
.tt-zoom:focus-visible .tt-zoom-icon{opacity:1;transform:none}
/* neutralise the old whole-tile scale so only the contained image zooms */
.product-card:hover img{transform:none}
@media (hover:hover) and (pointer:fine){
  .product-card .tt-zoom:hover img,.tt-zoom:hover img{transform:scale(1.05)}
  .tt-zoom:hover .tt-zoom-icon{opacity:1;transform:none}
}
/* touch: no hover, so the small icon stays visible as a quiet cue */
@media (hover:none),(pointer:coarse){
  .tt-zoom-icon{opacity:.92;transform:none;width:30px;height:30px;right:8px;bottom:8px}
}
@media (prefers-reduced-motion:reduce){
  .tt-zoom img,.tt-zoom-icon{transition:none}
  .product-card .tt-zoom:hover img,.tt-zoom:hover img{transform:none}
}
.product-grid .product-card h3 a{color:inherit;text-decoration:none}
.product-grid .product-card h3 a:hover,.fe-orig-cap:hover b{color:#612b5b}
.fe-orig-cap{display:block;margin-top:12px;text-align:center;color:inherit;text-decoration:none}

/* ---- viewer ---- */
html.tt-viewer-open{overflow:hidden}
.tt-viewer{border:0;padding:0;margin:0;max-width:none;max-height:none;width:100%;height:100%;background:transparent;color:#1d1d3b;overflow:hidden}
.tt-viewer[open]{display:flex;align-items:center;justify-content:center;animation:tt-viewer-in .22s ease}
.tt-viewer::backdrop{background:rgba(20,16,30,.72)}
@keyframes tt-viewer-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.tt-viewer[open]{animation:none}}
.tt-viewer-panel{display:flex;flex-direction:column;width:min(94vw,1040px);height:min(92vh,880px);background:#fffaf3;border-radius:14px;overflow:hidden;box-shadow:0 24px 70px rgba(10,8,20,.45)}
.tt-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 22px;border-bottom:1px solid #ebe5dc}
.tt-viewer-title{margin:0;font:600 clamp(24px,2.4vw,32px)/1.1 "Cormorant Garamond",Georgia,serif;color:#071444}
.tt-viewer-close,.tt-viewer-nav{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #d9d0c4;border-radius:50%;background:#fff;color:#071444;cursor:pointer;flex:none}
.tt-viewer-close:hover,.tt-viewer-nav:hover:not(:disabled){background:#f3ece2}
.tt-viewer button:focus-visible,.tt-viewer a:focus-visible{outline:3px solid var(--pink,#ed0b86);outline-offset:2px}
.tt-viewer-stage{position:relative;flex:1;min-height:0;background:#f4f1e9}
.tt-viewer-track{display:flex;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x pinch-zoom;overscroll-behavior:contain;outline:0}
.tt-viewer-track::-webkit-scrollbar{display:none}
.tt-viewer-slide{flex:0 0 100%;height:100%;margin:0;display:flex;align-items:center;justify-content:center;scroll-snap-align:center;padding:14px;box-sizing:border-box}
/* never upscale past the file's own pixels; proportions always preserved */
.tt-viewer-slide img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.tt-viewer-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;box-shadow:0 4px 14px rgba(17,24,45,.16)}
.tt-viewer-prev{left:14px}.tt-viewer-next{right:14px}
.tt-viewer-nav:disabled{opacity:.3;cursor:default}
.tt-viewer.is-single .tt-viewer-nav,.tt-viewer.is-single .tt-viewer-tabs{display:none}
.tt-viewer-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;border-top:1px solid #ebe5dc;background:#fffaf3}
.tt-viewer-tabs{display:flex;gap:8px}
.tt-viewer-tabs button{min-height:44px;padding:0 16px;border:1px solid #d9d0c4;border-radius:999px;background:#fff;color:#071444;font:600 13px/1 Jost,sans-serif;cursor:pointer}
.tt-viewer-tabs button[aria-pressed="true"]{background:#071444;border-color:#071444;color:#fff}
.tt-viewer-cta{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 26px;border-radius:7px;background:#071444;color:#fff;font:700 13px/1.2 Jost,sans-serif;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;margin-left:auto}
.tt-viewer-cta:hover{background:#142768}

@media (max-width:700px){
  .tt-viewer-panel{width:calc(100vw - 20px);height:calc(100dvh - 20px);border-radius:12px}
  .tt-viewer-head{padding:6px 8px 6px 16px}
  .tt-viewer-title{font-size:26px}
  .tt-viewer-slide{padding:8px}
  .tt-viewer-nav{display:none}
  .tt-viewer-foot{flex-direction:column-reverse;align-items:stretch;gap:10px;padding:10px 12px calc(12px + env(safe-area-inset-bottom))}
  .tt-viewer-tabs{justify-content:center}
  .tt-viewer-cta{width:100%;margin-left:0;min-height:50px}
}
