/* products.css - 產品列表頁面特定樣式 */

.visually-hidden{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0
}

/* ===== Hero 影片（滿出容器 full-bleed） ===== */
.banner{position:relative;overflow:hidden;margin:14px 0 8px;border-radius:18px;height:360px;background:#000}
.banner--bleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.banner .yt{position:absolute;left:50%;top:50%;width:100vw;height:calc(100vw * 9 / 16);transform:translate(-50%,-50%);border:0;pointer-events:none}
.banner .banner-fallback{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion:reduce){.banner .yt{display:none}.banner .banner-fallback{display:block}}
@media (max-width:992px){.banner{height:300px}}
@media (max-width:720px){.banner{height:220px;border-radius:14px}}

/* 主體 */
.layout{display:grid;grid-template-columns:240px 1fr;gap:20px;align-items:start}
.sidebar{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:12px}
.sidebar h3{margin:0 0 8px;font-size:18px}
.cat-list{list-style:none;margin:0;padding:0}
.cat-list li{margin:2px 0}
.cat-list a{display:block;padding:10px 12px;border-radius:10px;color:#333}
.cat-list a:hover{background:var(--light)}
.cat-list a.active{background:var(--brand);color:var(--onbrand)}
.main{min-width:0}

.filters{display:flex;gap:10px;align-items:center;margin:2px 0 14px;flex-wrap:wrap}
.filters input[type="search"], .filters select{padding:9px 12px;border:1px solid #ddd;border-radius:10px}
.filters .btn{padding:9px 12px;border-radius:999px;border:1px solid var(--brand);background:#fff;color:#222}
.filters .btn:hover{background:var(--light)}
.result-meta{color:var(--muted);font-size:14px;margin-top:-6px;margin-bottom:8px}

/* ★ 三欄 */
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}

.p-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}

/* ✅ 產品縮圖區：支援 p-card__thumb 與 p-thumb，底色全白 */
.p-card__thumb,
.p-thumb{aspect-ratio:4/3;background:#fff;display:block;overflow:hidden}
.p-card__thumb img,
.p-thumb img{width:100%;height:100%;object-fit:contain;object-position:center;transition:transform .25s ease;background:#fff}
.p-card__thumb:hover img,
.p-thumb:hover img{transform:scale(1.04)}

.p-body{padding:14px}
.p-title{margin:0 0 4px;font-weight:700}
.p-meta{color:var(--muted);font-size:14px;margin:0}

/* Skeleton Loading */
.skeleton{position:relative;overflow:hidden;background:#eee}
.skeleton::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.5) 50%, rgba(255,255,255,0) 100%);transform:translateX(-100%);animation:shimmer 1.4s infinite}
@keyframes shimmer{100%{transform:translateX(100%)}}
.s-card{border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;background:#fff}
.s-thumb{aspect-ratio:4/3}
.s-line{height:14px;margin:10px 14px;border-radius:8px}
.s-line.w60{width:60%}.s-line.w40{width:40%}

/* 通知 */
.note{padding:10px 12px;border-radius:12px;background:#fff;box-shadow:var(--shadow);border:1px solid #eee}
.note.error{border-color:#f2caca;background:#fff5f5;color:#a40000}
.note.info{border-color:#e5e5e5}

/* Modal（詳情） */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center;padding:20px;z-index:1500}
.modal.show{display:flex}
.modal-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);max-width:980px;width:100%;overflow:hidden}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #eee}
.modal-title{font-weight:700}
.modal-close{appearance:none;border:0;background:transparent;font-size:26px;line-height:1;cursor:pointer;color:#666}
.modal-body{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px}
.gallery{display:flex;flex-direction:column;gap:10px}
/* ✅ Modal 主圖白底 */
.zoom-wrap{position:relative;border-radius:12px;overflow:hidden;background:#fff;box-shadow:var(--shadow);aspect-ratio:4/3}
.zoom-wrap img{width:100%;height:100%;object-fit:contain;object-position:center;transition:transform .15s ease, transform-origin .1s ease;cursor:zoom-in;background:#fff}
.zoom-wrap.zoomed img{transform:scale(2.2);cursor:zoom-out}
.thumbs{display:flex;gap:10px;flex-wrap:wrap}
.thumbs button{appearance:none;border:1px solid #e5e5e5;background:#fff;border-radius:10px;overflow:hidden;cursor:pointer;padding:0}
.thumbs img{width:96px;height:72px;object-fit:contain;object-position:center;display:block;background:#fff}
.info .tag{display:inline-block;font-size:12px;color:var(--onbrand);background:var(--brand);padding:4px 8px;border-radius:999px}
.info p{margin:.6em 0}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}

/* RWD */
@media (max-width:992px){.product-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){.layout{grid-template-columns:1fr}.product-grid{grid-template-columns:repeat(2,1fr)}.modal-body{grid-template-columns:1fr}}
@media (max-width:480px){.product-grid{grid-template-columns:1fr}}
