:root{
  --card-w: 290px;
  --card-h: 440px;
}
.card-fixed{
  width:var(--card-w);
  height:var(--card-h);
  overflow:hidden;
  position:relative;
}
.media-box{
  height:210px;
  background:#f7f7f7;
  border-radius:10px;
  overflow:hidden;
  position:relative;
}
.media-box img, .media-box video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.carousel-nav{
  position:absolute; top:50%; left:0; right:0;
  display:flex; justify-content:space-between; padding:0 6px; transform:translateY(-50%);
}
.carousel-nav button{
  background:rgba(0,0,0,.45); border:0; color:#fff;
  width:32px; height:32px; border-radius:999px;
}
.badge-stock{
  position:absolute; top:10px; right:10px;
}
.spec-pill{ font-size:.8rem; background:#eef; padding:.2rem .5rem; border-radius:999px; }
.fixed-grid{ display:flex; flex-wrap:wrap; gap:12px; }
.fixed-grid > *{ flex: 0 0 var(--card-w); }
.modal-spec pre{ white-space:pre-wrap; }
.small{ font-size:.9rem; }
