/* =============================================================================
   Product listings (shop, category, brand, product search).
   ============================================================================= */

.dmh-shop { padding-bottom: var(--dmh-section); }

.dmh-shop__head {
  position: relative; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 14px 0 16px;
  padding: clamp(18px, 3vw, 28px) clamp(18px, 3vw, 32px); border-radius: var(--dmh-radius-leaf); overflow: hidden; isolation: isolate;
  background:
    radial-gradient(70% 140% at 100% 0%, color-mix(in srgb, var(--tile) 30%, transparent), transparent 70%),
    linear-gradient(120deg, var(--dmh-navy-900), var(--dmh-navy-800));
  color: var(--dmh-white);
}
.dmh-shop__head::after { content: ""; position: absolute; inset: auto -40px -60px auto; z-index: -1; width: 220px; height: 220px; border-radius: 50%; border: 1px solid rgb(234 211 154 / 0.25); }
.dmh-shop__head .dmh-eyebrow { color: var(--dmh-accent-on-dark); }
.dmh-shop__title { margin: 6px 0 4px; color: var(--dmh-white); font-size: var(--dmh-text-h1); font-weight: 700; }
.dmh-shop__count { margin: 0; color: var(--dmh-on-dark-soft); font-size: var(--dmh-text-sm); }
.dmh-shop__count strong { color: var(--dmh-accent-on-dark); }
.dmh-shop__art { flex: none; width: 120px; height: 120px; border-radius: 50%; background: var(--dmh-stage); box-shadow: 0 0 0 6px rgb(255 255 255 / 0.08); }
.dmh-shop__art img { width: 100%; height: 100%; object-fit: contain; padding: 14px; mix-blend-mode: multiply; }

.dmh-shop__tabs { margin-bottom: 6px; }
.dmh-shop__tabs .dmh-pills { margin-bottom: 10px; }
.dmh-pills a[aria-current="page"] { border-color: var(--dmh-navy-800); background: var(--dmh-navy-800); color: var(--dmh-accent-on-dark); }

/* Filters */
.dmh-filters { margin-bottom: 12px; border: 1px solid var(--dmh-line); border-radius: var(--dmh-radius-leaf-sm); background: var(--dmh-white); }
.dmh-filters__toggle { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 46px; padding: 0 16px; border: 0; background: none; color: var(--dmh-brand); font: 700 var(--dmh-text-sm) var(--dmh-font); cursor: pointer; }
.dmh-filters__toggle::after { content: ""; margin-left: auto; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform var(--dmh-dur); }
.dmh-filters.is-open .dmh-filters__toggle::after { transform: rotate(-135deg); }
.js .dmh-filters:not(.is-open) .dmh-filters__body { display: none; }
.dmh-filters__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--dmh-red-600); }
.dmh-filters__body { display: grid; gap: 14px; padding: 4px 16px 16px; }
.dmh-filters__group { display: grid; grid-template-columns: 90px minmax(0, 1fr); align-items: start; gap: 10px; }
.dmh-filters__label { margin: 8px 0 0; color: var(--dmh-text-muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.dmh-filters__opts { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.dmh-filters__opts a {
  display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; border: 1px solid var(--dmh-line); border-radius: var(--dmh-radius-pill);
  color: var(--dmh-text); font-size: 0.8rem; font-weight: 600; text-decoration: none; transition: border-color var(--dmh-dur), background var(--dmh-dur);
}
.dmh-filters__opts small { color: var(--dmh-text-muted); font-weight: 400; }
.dmh-filters__opts a:hover { border-color: var(--dmh-gold-500); }
.dmh-filters__opts a[aria-current="true"] { border-color: var(--dmh-navy-800); background: var(--dmh-navy-800); color: var(--dmh-accent-on-dark); }
.dmh-filters__opts a[aria-current="true"] small { color: var(--dmh-on-dark-soft); }
.dmh-filters__clear { justify-self: start; display: inline-flex; align-items: center; gap: 6px; color: var(--dmh-red-700); font-size: 0.8rem; font-weight: 600; text-decoration: none; }

/* Sort bar */
.dmh-shop__bar { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; overflow-x: auto; scrollbar-width: none; }
.dmh-shop__bar::-webkit-scrollbar { display: none; }
.dmh-shop__bar-label { flex: none; margin: 0; color: var(--dmh-text-muted); font-size: 0.8rem; }
.dmh-sort { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
.dmh-sort a { display: block; padding: 7px 12px; border-radius: var(--dmh-radius-pill); color: var(--dmh-text); font-size: 0.8rem; font-weight: 600; white-space: nowrap; text-decoration: none; }
.dmh-sort a:hover { background: var(--dmh-white); }
.dmh-sort a[aria-current="true"] { background: var(--dmh-white); color: var(--dmh-brand); box-shadow: inset 0 0 0 1px var(--dmh-gold-500); }

.dmh-empty { padding: 40px 20px; border: 1px dashed var(--dmh-line-strong); border-radius: var(--dmh-radius-leaf); background: var(--dmh-white); text-align: center; }
.dmh-empty__title { margin: 0 0 6px; font-size: var(--dmh-text-h3); font-weight: 700; }

/* Category description (SEO text) */
.dmh-shop__desc { position: relative; margin-top: 32px; padding: clamp(18px, 3vw, 28px); border: 1px solid var(--dmh-line); border-radius: var(--dmh-radius-leaf); background: var(--dmh-white); }
.dmh-shop__desc-body { max-height: 260px; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent); mask-image: linear-gradient(180deg, #000 70%, transparent); }
.dmh-shop__desc.is-open .dmh-shop__desc-body { max-height: none; -webkit-mask-image: none; mask-image: none; }
.dmh-shop__desc .dmh-btn { margin-top: 12px; }

@media (min-width: 1024px) {
  .dmh-filters { border: 0; background: none; }
  .dmh-filters__toggle { display: none; }
  .dmh-filters__body, .js .dmh-filters:not(.is-open) .dmh-filters__body { display: grid; padding: 14px 16px; border: 1px solid var(--dmh-line); border-radius: var(--dmh-radius-leaf-sm); background: var(--dmh-white); } /* always visible on desktop */
}
@media (max-width: 767px) {
  .dmh-shop__art { width: 84px; height: 84px; }
  .dmh-filters__group { grid-template-columns: 1fr; gap: 6px; }
  .dmh-filters__label { margin: 0; }
}
