/* The grid catalog shares the TV listing's quiet, compact hierarchy. */
.cat-listing--mosaic { background:#fff; }
.cat-listing--mosaic .cat-listing__hero { background:#fff; border-bottom:0; }
.cat-listing--mosaic .cat-listing__hero .pc-wrap { padding-top:16px; padding-bottom:4px; }
.cat-listing--mosaic .cat-listing__body { grid-template-columns:216px minmax(0,1fr); gap:32px; padding-top:12px; }
.cat-listing--mosaic .cat-filters { position:static; max-height:none; overflow:visible; }
.cat-listing--mosaic .cat-toolbar { align-items:center; gap:12px 16px; margin-bottom:12px; }
.cat-listing--mosaic .cat-toolbar__title { font-size:28px; }
.cat-listing--mosaic .cat-toolbar__count { color:#53616c; font-weight:500; }
.cat-mosaic-lede { margin:0 0 16px; max-width:75ch; font-size:14px; line-height:1.6; color:#53616c; }
.cat-mosaic-nav { display:flex; flex-wrap:wrap; gap:8px 24px; margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid #e0e5e9; }
.cat-listing .cat-mosaic-nav a { min-height:32px; display:inline-flex; align-items:center; color:#145b94; font-size:14px; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.cat-listing .cat-reset { display:inline-flex; align-items:center; min-height:36px; margin-bottom:16px; color:#145b94; text-decoration:underline; text-underline-offset:3px; font-size:14px; }
.cat-listing--mosaic .cat-filters__form li+li { border:0; }
.cat-listing--mosaic .cat-filters__form label { min-height:32px; font-size:14px; font-weight:500; gap:8px; }
.cat-listing--mosaic .cat-filters__form legend { font-size:15px; }
.cat-listing--mosaic .cat-grid { gap:20px; }
.cat-listing--mosaic .cat-tile { padding:12px 12px 16px; border-radius:12px; }
.cat-listing--mosaic .cat-tile__plate { height:164px; aspect-ratio:auto; }
.cat-listing--mosaic .cat-tile__plate img { padding:2% 15%; }
.cat-listing--mosaic .cat-tile__title { margin:12px 4px 0; font-size:16px; }
.cat-listing--mosaic a.cat-tile__link { color:#145b94; }
.cat-listing--mosaic .cat-tile__chips { margin:10px 4px 0; }
.cat-listing--mosaic .cat-tile__foot { margin-inline:4px; }
.cat-listing--mosaic .cat-tile__price b { font-size:26px; }
.cat-listing--mosaic .cat-tile__add { width:100%; min-height:44px; font-size:14px; }
.cat-listing--mosaic .cat-tile .compare-toggle { margin:10px 0px 4px; }
/* Homepage PC recommendations are a choice of builds, not a specifications table. */
.home-shelf--pcs-compact .home-shelf__track { grid-template-rows:auto; align-items:stretch; }
.home-shelf--pcs-compact .home-shelf__track>li { display:flex; grid-row:1; min-width:0; }
.home-shelf--pcs-compact .pc-tile--compact { display:flex; flex-direction:column; grid-row:auto; padding:16px; width:100%; min-width:0; height:100%; border-radius:12px; transform:none; }
.home-shelf--pcs-compact .pc-tile--compact:hover { transform:none; }
.pc-tile--compact .pc-tile__plate { height:216px; width:100%; aspect-ratio:auto; margin-bottom:20px; }
.pc-tile--compact .pc-tile__plate img { padding:8% 17%; mix-blend-mode:normal; }
.pc-tile--compact .pc-tile__badge { top:24px; left:24px; font-size:12px; }
.pc-tile--compact .pc-tile__title { align-self:stretch; margin:0 4px 10px; font-size:19px; text-align:left; }
.pc-tile--compact .pc-tile__lines { margin:0 4px 24px; font-size:14px; line-height:1.6; }
.pc-tile--compact .pc-tile__foot { width:calc(100% - 8px); margin: auto 4px 0; padding-top:16px; border-top:1px solid #e0e5e9; align-self:auto; }
.pc-tile--compact .pc-tile__price b { font-size:28px; }
.pc-tile--compact .pc-tile__cta { border-radius:6px; font-size:14px; padding-inline:14px; }
@media(min-width:861px) and (max-width:1200px) {
 .cat-listing--mosaic .cat-listing__body { grid-template-columns:192px minmax(0,1fr); gap:24px; }
 .cat-listing--mosaic .cat-toolbar__sort { width:100%; margin-left:0; }
 .cat-listing--mosaic .cat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .pc-tile--compact .pc-tile__foot { flex-wrap:wrap; }
}
@media(max-width:860px) {
 .cat-listing--mosaic .cat-listing__body { display:block; }
 .cat-listing--mosaic .cat-toolbar__title { width:100%; }
 .cat-listing--mosaic .cat-toolbar__sort { width:100%; margin:0; gap:12px; }
 .cat-listing--mosaic .cat-toolbar__sort label { flex:1; }
 .cat-listing--mosaic .cat-toolbar__sort select { width:100%; }
 .cat-listing--mosaic .cat-mobile-advice { margin:16px 0 20px; }
 .cat-listing--mosaic .cat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:640px) {
 .home-shelf--pcs-compact .pc-tile--compact { display:flex; flex-direction:column; }
 .pc-tile--compact .pc-tile__plate { height:192px; margin-bottom:16px; }
 .pc-tile--compact .pc-tile__title { font-size:20px; }
 .pc-tile--compact .pc-tile__lines { margin-bottom:20px; }
 .pc-tile--compact .pc-tile__foot { flex-wrap:nowrap; }
}
@media(max-width:520px) {
 .cat-listing--mosaic .cat-grid { grid-template-columns:1fr; gap:16px; }
 .cat-listing--mosaic .cat-tile { display:grid; grid-template-columns:112px minmax(0,1fr); gap:12px; height:auto; align-content:start; }
 .cat-listing--mosaic .cat-tile__media { grid-column:1; grid-row:1 / span 2; align-self:start; }
 .cat-listing--mosaic .cat-tile__plate { height:112px; }
 .cat-listing--mosaic .cat-tile__labels,
 .cat-listing--mosaic .cat-tile__reviews { grid-column:2; margin-left:0; margin-right:0; }
 .cat-listing--mosaic .cat-tile__title { grid-column:2; margin:4px 0 0; }
 .cat-listing--mosaic .cat-tile__chips { grid-column:2; margin:0; align-self:start; }
 .cat-listing--mosaic .cat-tile__mark { left:4px; bottom:4px; height:16px; padding:2px; }
 .cat-listing--mosaic .cat-tile__foot { display:grid; grid-template-areas:"old old" "price stock" "cart cart" "compare compare"; gap:10px 12px; grid-column:1 / -1; margin:0; padding:0; }
 .cat-listing--mosaic .cat-tile__foot .catalog-old-price { grid-area:old; margin:0; }
 .cat-listing--mosaic .cat-tile__price { grid-area:price; }
 .cat-listing--mosaic .cat-tile__stock { grid-area:stock; margin:0; justify-self:end; }
 .cat-listing--mosaic .cat-tile__cart { grid-area:cart; margin:0; }
 .cat-listing--mosaic .cat-tile .compare-toggle { grid-area:compare; margin:10px 0px 4px; }
}
.pc-tile--compact .pc-tile__plate,.cat-listing--mosaic .cat-tile__plate { grid-template-rows:minmax(0,1fr); }
.pc-tile--compact .pc-tile__plate img,.cat-listing--mosaic .cat-tile__plate img { min-height:0; max-height:100%; height:100%; }

/* Configurable builds share the category grid without its subgrid rows. */
.cat-listing .pc-tile{display:flex;flex-direction:column;grid-row:auto;height:100%;min-width:0}.cat-listing .pc-tile__plate{flex:none;width:100%;height:210px;aspect-ratio:auto}.cat-listing .pc-tile__plate img{min-height:0;max-height:100%}.cat-listing .pc-tile__foot{margin-top:auto}.cat-listing .pc-tile__specs{margin-bottom:18px}
.cat-listing .pc-tile__title { align-self:stretch; text-align:left; }

@media(max-width:700px){.cat-listing .cat-toolbar{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) 44px;align-items:center;gap:12px}.cat-listing .cat-toolbar .cat-toolbar__title{width:auto;min-width:0;margin:0;font-size:24px;line-height:1.2;overflow-wrap:anywhere}.cat-listing .cat-toolbar .cat-toolbar__count{margin:0;font-size:13px;white-space:nowrap}.cat-listing .cat-toolbar .cat-toolbar__count::before{display:none}.cat-listing .cat-toolbar .cat-toolbar__filters{position:relative;display:flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;min-height:44px;margin:0;padding:0}.cat-listing .cat-toolbar__filters-label{display:none}.cat-listing .cat-toolbar__filters svg{width:20px;height:20px;flex:none}.cat-listing .cat-toolbar__sort{grid-column:1/-1;width:100%;margin:0}.cat-listing .cat-toolbar__badge{position:absolute;top:-6px;right:-6px}}

.cat-listing--mosaic .cat-tile__foot { grid-template-areas:"old old" "price stock" "shipping shipping" "cart cart" "compare compare"; }

.cat-listing .pc-tile__foot { align-self:stretch; }

/* Optional details should only take space when the card has content for them. */
.cat-tile :is(.cat-tile__labels, .cat-tile__reviews, .cat-tile__chips, .cat-tile__was, .cat-tile__ship):not(:has(> *)) { display:none; }
.cat-tile__foot:not(:has(.catalog-old-price)) { grid-template-areas:"price stock" "shipping shipping" "cart cart" "compare compare"; }
.cat-tile__foot:not(:has(.free-shipping-label)) { grid-template-areas:"old old" "price stock" "cart cart" "compare compare"; }
.cat-tile__foot:not(:has(.catalog-old-price, .free-shipping-label)) { grid-template-areas:"price stock" "cart cart" "compare compare"; }
