/* type */
.item {
  --item-font: var(--font-body);
  --card: #121215; --card-2: #212227; --card-3: #2c2e33; --card-ink: #f7f8f9; --card-mute: #a9abb3; --tile-price: #bcbec8;
  --buy: #335fff; --buy-hover: #4d74ff; --view: #393b3f; --view-hover: #4a4c51;
  font-family: var(--item-font);
}
.item :is(h1, h2) { font-family: var(--item-font); letter-spacing: 0; }

/* band */
.item-top {
  padding: calc(var(--header-space) + clamp(24px, 1rem + 1.5 * var(--vw), 48px)) 0 clamp(56px, 2.5rem + 4 * var(--vw), 112px);
  background: var(--grain), url("/images/ripples.svg") 0 0 / 720px auto, var(--marigold);
}

/* panels */
.item-hero, .item-panel { --focus: var(--card-ink); }
.item-panel {
  margin-top: 20px; padding: 24px 16px; border-radius: var(--r-lg);
  background: var(--card); color: var(--card-ink); box-shadow: var(--shade-day-lg);
}
.item-panel h2 { margin-bottom: 12px; color: var(--card-ink); font: 700 1.25rem/1.2 var(--item-font); }
@media (min-width: 768px) { .item-panel { padding: clamp(24px, .75rem + 2.25 * var(--vw), 44px); border-radius: 32px; } }

/* hero */
.item-hero {
  display: grid; gap: 20px; margin-top: 12px; padding: 16px 16px 24px;
  border-radius: var(--r-lg); background: var(--card); color: var(--card-ink); box-shadow: var(--shade-day-lg);
}
.item-shot { display: grid; place-items: center; aspect-ratio: 1; margin: 0; overflow: hidden; border-radius: 20px; background: var(--card-2); }
.item-shot img { width: 100%; max-width: min(100%, 700px); }
.item-shot--b img { max-width: min(100%, 420px); }
.item-favs { display: flex; align-items: center; gap: 8px; margin-top: 16px; font: 500 1rem/1 var(--item-font); }
.item-favs__star { flex: none; width: 28px; height: 28px; }
.item-title { max-width: 100%; color: var(--card-ink); font: 800 clamp(1.625rem, 1.25rem + 1 * var(--vw), 2rem)/1.15 var(--item-font); overflow-wrap: break-word; }
.item-by { margin-top: 6px; color: var(--card-mute); font: 500 1rem/1.25 var(--item-font); }
.item-by a { border-radius: var(--r-xs); color: var(--card-ink); text-decoration: none; }
@media (min-width: 768px) {
  .item-hero {
    grid-template-columns: minmax(0, 37fr) minmax(0, 63fr); align-items: start; column-gap: clamp(20px, .5rem + 1.5 * var(--vw), 32px);
    margin-top: 20px; padding: clamp(24px, .75rem + 2.25 * var(--vw), 44px); border-radius: 32px;
  }
  .item-shot { border-radius: 22px; }
}
@media (hover: hover) { .item-by a:hover { text-decoration: underline 1.5px; text-underline-offset: .2em; } }

/* rows */
.item-facts { margin: 24px 0 0; font: 400 1rem/1.25 var(--item-font); }
.item-facts > div { display: grid; grid-template-columns: minmax(0, 6.5rem) minmax(0, 1fr); align-items: start; column-gap: 12px; padding-block: 6px; }
.item-facts dt { color: var(--card-mute); font-weight: 500; }
.item-facts dd { min-width: 0; margin: 0; color: var(--card-ink); overflow-wrap: anywhere; }
.item-facts a { border-radius: var(--r-xs); color: var(--card-ink); text-decoration: underline 1.5px rgb(247 248 249 / .4); text-underline-offset: .2em; }
.item-facts > div:first-child { padding: 0 0 6px; }
.item-facts > div:first-child dt { line-height: 1.5rem; }
.item-price { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font: 700 1.25rem/1.2 var(--item-font); }
.item-chip {
  display: inline-flex; align-items: center; min-height: 24px; padding: 2px 10px; border-radius: var(--r-pill);
  background: rgb(247 248 249 / .14); color: var(--card-ink); font: 700 .8125rem/1 var(--item-font); letter-spacing: .02em;
}
.item-facts .item-cta {
  display: flex; align-items: center; justify-content: center; width: 100%; max-width: 22.75rem; min-height: 52px; margin-top: 12px; padding: 10px 16px;
  border-radius: 8px; background: var(--buy); color: #fff; font: 500 1.25rem/1.2 var(--item-font); text-align: center; text-decoration: none;
  transition: background-color var(--dur-2);
}
.item-facts .item-cta--view { background: var(--view); }
.item-ends { margin-top: 10px; color: var(--card-mute); font: 500 .875rem/1.4 var(--item-font); }
.item-buy { padding-bottom: 6px; }
.item-desc { white-space: pre-line; }
.item-badge { display: inline-block; width: 1em; height: 1em; margin-left: .3em; vertical-align: -.15em; overflow: visible; }
@media (min-width: 600px) { .item-facts > div { grid-template-columns: minmax(0, 9.375rem) minmax(0, 1fr); } }
@media (max-width: 599.98px) { .item-facts > div:has(> .item-desc) { grid-template-columns: minmax(0, 1fr); row-gap: 4px; } }
@media (hover: hover) {
  .item-facts a:hover { text-decoration-color: var(--card-ink); }
  .item-facts .item-cta:hover { background: var(--buy-hover); }
  .item-facts .item-cta--view:hover { background: var(--view-hover); }
}

/* tiles */
.tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; margin: 0; padding: 0; list-style: none; }
.tile { display: flex; flex-direction: column; height: 100%; border-radius: 10px; color: var(--card-ink); text-decoration: none; }
.tile img { width: 100%; aspect-ratio: 1; border-radius: 10px; background: var(--card-2); transition: background-color var(--dur-2); }
.tile__name {
  display: -webkit-box; margin: 8px 2px 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
  font: 500 .9375rem/1.3 var(--item-font); overflow-wrap: anywhere;
}
.tile__price { margin: 4px 2px 0; color: var(--tile-price); font: 500 .875rem/1.3 var(--item-font); }
.tile[aria-current] img { box-shadow: 0 0 0 3px var(--buy); }
@media (min-width: 600px) { .tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 768px) { .tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 16px; } }
@media (min-width: 1024px) { .tiles { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (hover: hover) {
  .tile:hover img { background: var(--card-3); }
  .tile:hover .tile__name { text-decoration: underline 1.5px; text-underline-offset: .2em; }
}

/* lists */
.item-list { margin-top: 12px; }
.item-list__title { margin-bottom: 20px; color: var(--card-ink); font: 800 clamp(1.625rem, 1.25rem + 1 * var(--vw), 2rem)/1.15 var(--item-font); overflow-wrap: break-word; }
.item-group + .item-group { margin-top: 28px; padding-top: 24px; border-top: 1px solid rgb(247 248 249 / .12); }
.item-group h2 { margin-bottom: 14px; }
.item-cells { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; margin: 0; padding: 0; list-style: none; }
.item-cells .tile__name { margin-top: 10px; font: 600 1.0625rem/1.25 var(--item-font); }
@media (min-width: 600px) { .item-cells { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 768px) {
  .item-list { margin-top: 20px; }
  .item-cells { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 16px; }
}

/* pager */
.pager { margin-top: clamp(28px, 1.25rem + 1.5 * var(--vw), 44px); }
.pager ul { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; margin: 0; padding: 0; list-style: none; }
.pager a {
  display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px;
  border-radius: 8px; background: var(--card-2); color: var(--card-ink); font: 600 1rem/1 var(--item-font); text-decoration: none;
  transition: background-color var(--dur-2);
}
.pager a[aria-current] { background: var(--card-ink); color: var(--card); }
.pager li[aria-hidden] { padding-inline: 2px; color: var(--card-mute); }
@media (hover: hover) { .pager a:not([aria-current]):hover { background: var(--card-3); } }

/* robux */
.robux__icon {
  display: inline-block; position: relative; top: -.125rem; width: 1.25rem; height: 1.25rem; margin: .0625rem .1875rem 0 0;
  vertical-align: middle; background: url("/images/item/robux.svg") -1.25rem -1.25rem / 2.5rem 5rem no-repeat;
}
.tile__price .robux__icon { top: -.0625rem; margin: 0 -.125rem 0 0; background-position: 0 -1.25rem; }

/* wide screens */
@media (min-width: 1440px) {
  .item-top { padding-bottom: 7rem; background-size: 200px 200px, 45rem auto, auto; }
  .item-hero { margin-top: 1.25rem; padding: 2.75rem; border-radius: 2rem; column-gap: 2rem; }
  .item-panel { margin-top: 1.25rem; padding: 2.75rem; border-radius: 2rem; }
  .item-panel h2 { margin-bottom: .75rem; }
  .item-shot { border-radius: 1.375rem; }
  .item-favs { gap: .5rem; margin-top: 1rem; }
  .item-favs__star { width: 1.75rem; height: 1.75rem; }
  .item-by { margin-top: .375rem; }
  .item-facts { margin-top: 1.5rem; }
  .item-facts > div { column-gap: .75rem; padding-block: .375rem; }
  .item-facts > div:first-child { padding: 0 0 .375rem; }
  .item-buy { padding-bottom: .375rem; }
  .item-price { gap: .375rem .75rem; }
  .item-chip { min-height: 1.5rem; padding: .125rem .625rem; }
  .item-facts .item-cta { min-height: 3.25rem; margin-top: .75rem; padding: .625rem 1rem; border-radius: .5rem; }
  .item-ends { margin-top: .625rem; }
  .tiles { gap: 1.5rem 1rem; }
  .tile, .tile img { border-radius: .625rem; }
  .tile__name { margin: .5rem .125rem 0; }
  .tile__price { margin: .25rem .125rem 0; }
  .item-list { margin-top: 1.25rem; }
  .item-list__title { margin-bottom: 1.25rem; }
  .item-group + .item-group { margin-top: 1.75rem; padding-top: 1.5rem; }
  .item-group h2 { margin-bottom: .875rem; }
  .item-cells { gap: 1.5rem 1rem; }
  .item-cells .tile__name { margin-top: .625rem; }
  .pager { margin-top: 2.75rem; }
  .pager ul { gap: .375rem; }
  .pager a { min-width: 2.75rem; min-height: 2.75rem; padding: 0 .75rem; border-radius: .5rem; }
}

/* forced colours */
@media (forced-colors: active) {
  .item-chip, .pager a[aria-current] { border: 2px solid CanvasText; }
  .pager a:not([aria-current]) { border: 1px solid ButtonText; }
  .item-hero, .item-panel { border: 1px solid CanvasText; }
  .item-cta { border: 2px solid ButtonText; }
  .tile[aria-current] { outline: 3px solid Highlight; outline-offset: 2px; }
  .robux__icon { display: none; }
  .robux .visually-hidden { position: static !important; width: auto; height: auto; margin: 0; overflow: visible; clip-path: none; }
}
