/* A bounded catalog: eight products per page and an optional compact layout. */
html { scroll-padding-top: calc(var(--header-height, 105px) + 12px); }
.catalog-tools {
  position: sticky; top: var(--header-height, 105px); z-index: 4;
  background: var(--page); border-bottom: 2px solid var(--ink); padding: 10px 0;
  display: grid; gap: 12px;
}
.catalog-tools .filters { flex-wrap: nowrap; overflow-x: auto; padding: 2px 3px 6px; scrollbar-width: thin; scrollbar-color: var(--ink) var(--sky-soft); }
.catalog-tools .filters button { flex: 0 0 auto; white-space: nowrap; }
.catalog-tools .search-row { margin: 0; }
.catalog-mode { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.catalog-mode .result-count { margin: 0; font-size: 12px; }
#compact-view { flex: 0 0 auto; padding: 5px 10px; font-size: 12px; border-radius: 5px; }
#compact-view[aria-pressed="true"] { background: var(--sky-soft); }
.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin: 20px 0; }
.pagination:empty { display: none; }
.pagination button { min-width: 36px; padding: 6px; font-size: 13px; border-radius: 5px; }
.pagination [aria-current="page"] { background: #ffe56b; transform: translate(2px,2px); box-shadow: 1px 1px 0 var(--ink); }
.page-gap { min-width: 16px; text-align: center; }
.card p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.card :is(button,a)[data-product] { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.grid.is-list { grid-template-columns: minmax(0,1fr); gap: 16px; }
.grid.is-list .card { display: grid; grid-template-columns: 100px minmax(0,1fr); }
.grid.is-list .product-art { height: 100%; min-height: 112px; border-bottom: 0; border-right: var(--line); }
.grid.is-list .app-icon { width: 66px; height: 66px; font-size: 35px; }
.grid.is-list .app-icon:has(.product-logo) { padding: 7px; }
.grid.is-list .cover-tag, .grid.is-list .cover-category, .grid.is-list .cover-shape, .grid.is-list .cover-lines, .grid.is-list .product-art::before, .grid.is-list .product-art::after { display: none; }
.grid.is-list .card-body { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px 18px; padding: 14px; }
.grid.is-list .card-title { grid-column: 1; grid-row: 1; align-self: end; }
.grid.is-list h3 { font-size: 19px; }
.grid.is-list .card p { grid-column: 1; grid-row: 2; min-height: 0; -webkit-line-clamp: 2; font-size: 13px; }
.grid.is-list .card :is(button,.product-link) { grid-column: 2; grid-row: 1 / span 2; margin: 0; align-self: center; min-width: 140px; }
.product-details { margin: 22px 0; display: grid; gap: 16px; }
.product-details section { border-left: 3px solid var(--ink); padding-left: 12px; }
.product-details h3 { font-size: 15px; margin-bottom: 7px; letter-spacing: 0; }
.product-details p, .product-details li { font-size: 14px; color: var(--muted); }
.product-details ul { padding-left: 19px; margin: 0; }
.product-details li + li { margin-top: 5px; }
.product-source { width: fit-content; color: var(--primary); text-decoration: underline; font-size: 13px; font-weight: 700; }
#product-dialog .dialog-head { position: sticky; top: -25px; background: var(--page); z-index: 3; padding: 8px 0 12px; border-bottom: 2px solid var(--ink); }
@media (max-width: 700px) {
  .catalog-tools { gap: 9px; padding: 8px 0; }
  .catalog-tools .search-row { display: grid; grid-template-columns: minmax(0,1fr) 140px; gap: 8px; }
  .catalog-tools .custom-select { min-width: 0; }
  .catalog-tools input, .catalog-tools .select-trigger { padding: 10px 9px; font-size: 12px; }
  .catalog-tools #search { padding-left: 30px; }
  .catalog-tools .search-wrap > span { left: 9px; top: 8px; }
  .catalog-tools .select-trigger { gap: 5px; }
  .pagination { gap: 4px; margin: 16px 0; }
  .pagination button { min-width: 28px; padding: 4px; font-size: 11px; }
  .page-gap { min-width: 12px; }
  .grid.is-list .card { grid-template-columns: 72px minmax(0,1fr); }
  .grid.is-list .product-art { min-height: 94px; }
  .grid.is-list .app-icon { width: 48px; height: 48px; border-radius: 8px; font-size: 28px; }
  .grid.is-list .app-icon:has(.product-logo) { padding: 5px; }
  .grid.is-list .card-body { padding: 10px; gap: 5px 8px; }
  .grid.is-list h3 { font-size: 15px; }
  .grid.is-list .duration { display: none; }
  .grid.is-list .card p { font-size: 11px; }
  .grid.is-list .card :is(button,.product-link) { min-width: 30px; padding: 6px; font-size: 16px; }
  .grid.is-list .card-action-label { display: none; }
}

#plan-picker{border:var(--line);padding:14px;margin:20px 0;background:var(--ice);min-width:0}#plan-picker legend{font-weight:800;padding:0 6px}#plan-options{display:grid;gap:10px}.plan-option{display:flex;align-items:center;gap:12px;background:white;border:2px solid var(--ink);padding:12px;box-shadow:3px 3px var(--ink);cursor:pointer;transition:background-color .12s}.plan-option:has(input:checked){background:#ffe56b}.plan-option:focus-within{outline:3px solid var(--primary);outline-offset:3px}.plan-option input{width:19px;height:19px;flex-shrink:0;accent-color:var(--ink)}.plan-option span{min-width:0;overflow-wrap:anywhere}.plan-option strong,.plan-option small{display:block}.plan-option small{font-size:12px;margin-top:4px}#plan-summary{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}#add-to-cart:disabled{opacity:.55;cursor:not-allowed;transform:none}.cart-row-top{flex-wrap:wrap}.cart-row-top span{overflow-wrap:anywhere}.cart-row>p{font-size:12px}

.product-link{border:var(--line);border-radius:6px;box-shadow:3px 3px 0 var(--ink);text-align:center}.product-link:focus-visible{outline:3px solid var(--primary);outline-offset:4px}
