/* One card surface for shelves, search, providers, recent games and recommendations.
   Keep .game-item / .slot-md-3 for the existing pagination and carousel code.
   vgc-media deliberately avoids the legacy slot-card image cropping rules. */
body .game-item.vjuh-game-card { box-sizing:border-box; padding:0!important; margin:0!important; min-width:0!important; float:none!important; }
body :is(#game-shelves-wrap,#slots-search-results,#desktopRecentGamesList,#mobileRecentGamesList,.vjuh-catalog-results,.vjuh-shelf-catalog,.gamesBox__dsShl) .game-item.vjuh-game-card > a.vgc-link {
  display:block!important; position:relative; width:100%!important; max-width:100%!important; height:auto!important; padding:0!important; margin:0!important;
  overflow:hidden!important; border:1px solid #a1b6e331!important; border-radius:15px!important; background:linear-gradient(140deg,#122039,#0a1425)!important;
  box-sizing:border-box; color:#edf2fb; text-decoration:none!important; transform:none!important; box-shadow:inset 0 1px #c6dcff08!important;
  transition:border-color .2s ease,box-shadow .2s ease;
}
body .vjuh-game-card .vgc-media { display:block; position:relative; width:100%; aspect-ratio:220/350; overflow:hidden; background:#0c1528; }
body .vjuh-game-card .vgc-media > img { display:block!important; position:absolute; inset:0; width:100%!important; height:100%!important; max-width:100%; max-height:100%; object-fit:contain; object-position:center; margin:0; border-radius:0; opacity:1; filter:none; transition:transform .25s ease; }
body .vjuh-game-card .vgs-card-caption { display:flex!important; flex-direction:column; justify-content:center; gap:5px!important; height:58px; min-height:58px!important; box-sizing:border-box; padding:10px 11px!important; background:linear-gradient(135deg,#14223a88,#0a1425); border-top:1px solid #a8c5ed0e; }
body .vjuh-game-card .vgs-card-title { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px!important; font-weight:600; line-height:1.3!important; color:#edf2fb; }
body .vjuh-game-card .vgs-card-provider { display:block; min-height:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px!important; font-weight:400; line-height:1.2!important; color:#8ea6c8; }

/* Fluid tracks fill the available container; never reuse carousel fixed widths. */
body .vjuh-catalog-results .slots-render.vjuh-card-grid,
body #slots-search-results.shelf-grid.vjuh-card-grid,
body .vjuh-shelf-catalog.shelf-grid.vjuh-card-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(154px,1fr))!important; grid-auto-flow:row!important; gap:16px!important; align-items:start!important;
  width:100%!important; max-width:100%!important; min-width:0; margin-left:0!important; margin-right:0!important; padding:0!important; box-sizing:border-box;
}
body .vjuh-shelf-catalog.shelf-grid.vjuh-card-grid { display:grid; }
body .vjuh-catalog-results .slots-render.vjuh-card-grid > .game-item.vjuh-game-card,
body #slots-search-results.shelf-grid.vjuh-card-grid > .game-item.vjuh-game-card,
body .vjuh-shelf-catalog.shelf-grid.vjuh-card-grid > .game-item.vjuh-game-card { width:100%!important; min-width:0!important; max-width:none!important; flex:none!important; }

.desktop-recent-games,.mobile-recent-games { display:none; }
.desktop-recent-games { margin:20px 0 24px; width:100%; }
.desktop-recent-games__head,.mobile-recent-games__head { display:flex; align-items:center; justify-content:space-between; margin:0 0 12px; }
.mobile-recent-games__title { font-size:19px; font-weight:700; color:#edf3ff; }
body #desktopRecentGamesList,body #mobileRecentGamesList { display:flex!important; gap:14px; width:100%; max-width:100%; overflow-x:auto; overflow-y:hidden; padding:0 0 5px; margin:0; scroll-snap-type:x mandatory; scrollbar-width:none; }
body #desktopRecentGamesList::-webkit-scrollbar,body #mobileRecentGamesList::-webkit-scrollbar { display:none; }
body #desktopRecentGamesList > .game-item.vjuh-game-card { flex:0 0 clamp(148px,calc((100vw - 250px)/7),176px); width:clamp(148px,calc((100vw - 250px)/7),176px)!important; max-width:none!important; scroll-snap-align:start; }
@media(min-width:821px) { .desktop-recent-games.is-visible { display:block; } }
@media(max-width:820px) {
  .mobile-recent-games.is-visible { display:block; margin:10px 0 20px; }
  body #mobileRecentGamesList { gap:10px; }
  body #mobileRecentGamesList > .game-item.vjuh-game-card { flex:0 0 144px; width:144px!important; max-width:none!important; scroll-snap-align:start; }
  body .vjuh-game-card .vgs-card-caption { height:53px; min-height:53px!important; padding:9px!important; }
  body .vjuh-game-card .vgs-card-title { font-size:11px!important; }
  body .vjuh-game-card .vgs-card-provider { font-size:9px!important; }
  body :is(#game-shelves-wrap,#slots-search-results,#desktopRecentGamesList,#mobileRecentGamesList,.vjuh-catalog-results,.vjuh-shelf-catalog,.gamesBox__dsShl) .game-item.vjuh-game-card > a.vgc-link { border-radius:13px!important; }
  body .vjuh-catalog-results .slots-render.vjuh-card-grid,
  body #slots-search-results.shelf-grid.vjuh-card-grid,
  body .vjuh-shelf-catalog.shelf-grid.vjuh-card-grid { grid-template-columns:repeat(auto-fill,minmax(140px,1fr))!important; gap:10px!important; }
}
@media(max-width:600px) {
  body .vjuh-catalog-results .slots-render.vjuh-card-grid,
  body #slots-search-results.shelf-grid.vjuh-card-grid,
  body .vjuh-shelf-catalog.shelf-grid.vjuh-card-grid { grid-template-columns:repeat(auto-fill,minmax(100px,1fr))!important; }
}
@media(max-width:359px) {
  body #mobileRecentGamesList > .game-item.vjuh-game-card { flex-basis:132px; width:132px!important; }
  body .vjuh-catalog-results .slots-render.vjuh-card-grid,
  body #slots-search-results.shelf-grid.vjuh-card-grid,
  body .vjuh-shelf-catalog.shelf-grid.vjuh-card-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}
@media(hover:hover) {
  body :is(#game-shelves-wrap,#slots-search-results,#desktopRecentGamesList,#mobileRecentGamesList,.vjuh-catalog-results,.vjuh-shelf-catalog,.gamesBox__dsShl) .game-item.vjuh-game-card > a.vgc-link:hover { border-color:#82acff99!important; box-shadow:0 0 0 1px #789bff22,0 8px 20px #03071033!important; }
  .vjuh-game-card > a:hover .vgc-media > img { transform:scale(1.025); }
}
.vjuh-game-card > a:focus-visible { outline:2px solid #80cfff; outline-offset:2px; }
@media(prefers-reduced-motion:reduce) { body .vjuh-game-card a,body .vjuh-game-card img { transition:none!important; } }
