/* ============================================================
   Catalogue : panneau de filtres (latéral / tiroir mobile) + résultats
   ============================================================ */
.catalog { display: grid; gap: var(--s-8); align-items: start; }
@media (min-width: 1024px) { .catalog { grid-template-columns: 280px minmax(0, 1fr); } }

/* Panneau de filtres */
.catalog__panel { background: var(--surface-1); border: 1px solid var(--line-soft); border-radius: var(--r-3); }
@media (min-width: 1024px) {
  .catalog__panel { position: sticky; top: calc(var(--header-h) + var(--s-4)); max-height: calc(100vh - var(--header-h) - var(--s-8)); overflow-y: auto; }
}
.catalog__panel-head { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-4) var(--s-4) 0; }
.catalog__panel-title { display: flex; align-items: center; gap: var(--s-2); font-size: var(--fs-base); margin-right: auto; }
.catalog__panel-title .i { color: var(--violet); }
.catalog__close { display: none; }
.catalog__form { display: grid; gap: var(--s-5); padding: var(--s-4); }
.catalog__search .input { min-height: 38px; }

.facet { border: 0; padding: 0; min-width: 0; }
.facet__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px var(--s-2); width: 100%; margin-bottom: var(--s-2);
  font-family: var(--font-body); font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--text-3); }
.facet__hint { text-transform: none; letter-spacing: 0; font-weight: 400; }
.facet__opts { display: flex; flex-wrap: wrap; gap: 6px; }
.facet__opts .choice span { height: 28px; padding: 0 10px; gap: 6px; }
.facet__opts .choice em { font-style: normal; }
.facet__opts .chip.is-empty { opacity: .5; }
.facet__opts--collapsible.is-collapsed > :nth-child(n+15) { display: none; }
.facet__more { margin-top: var(--s-2); font-size: var(--fs-sm); color: var(--violet); }
.facet__more:hover { color: var(--violet-light); }

/* Tiroir mobile */
@media (max-width: 1023px) {
  .catalog__panel {
    position: fixed; z-index: var(--z-drawer); top: 0; bottom: 0; left: 0; width: min(360px, 88vw);
    border-radius: 0; border: 0; border-right: 1px solid var(--line); overflow-y: auto;
    transform: translateX(-100%); visibility: hidden;
    transition: transform var(--d) var(--ease), visibility 0s linear var(--d);
  }
  .catalog__panel.is-open { transform: none; visibility: visible; transition: transform var(--d) var(--ease); }
  .catalog__panel-head { position: sticky; top: 0; z-index: 1; background: var(--surface-1); padding-bottom: var(--s-3); border-bottom: 1px solid var(--line-soft); }
  .catalog__close { display: inline-flex; }
  .catalog__scrim:not([hidden]) { position: fixed; inset: 0; z-index: calc(var(--z-drawer) - 1); background: var(--scrim); }
}
@media (min-width: 1024px) { .catalog__open { display: none; } .catalog__scrim { display: none !important; } }

/* Barre d'outils des résultats */
.catalog__bar { display: flex; align-items: center; gap: var(--s-3); margin-bottom: var(--s-4); }
.catalog__sort { display: flex; align-items: center; gap: var(--s-2); margin-left: auto; }
.catalog__sort .select { width: auto; }

.catalog__summary { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-4); margin-bottom: var(--s-5); min-height: 28px; }
.catalog__count { color: var(--text-2); font-size: var(--fs-md); }
.catalog__count strong { color: var(--text); }
.catalog__chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; list-style: none; padding: 0; }
.catalog__chips .chip .i { opacity: .7; }
.catalog__clear { font-size: var(--fs-sm); color: var(--text-3); margin-left: var(--s-1); }
.catalog__clear:hover { color: var(--text); }

.catalog__results { transition: opacity var(--d-fast) var(--ease); }
.catalog__results.is-loading { opacity: .45; pointer-events: none; }
.catalog__more { display: flex; justify-content: center; margin-top: var(--s-10); }

/* Mode liste */
.catalog__results.is-list .catalog__grid { grid-template-columns: 1fr; gap: 0; }
.catalog__results.is-list .card {
  display: grid; grid-template-columns: 52px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: var(--s-4); row-gap: 2px;
  align-items: center; padding: var(--s-3) 0; border-bottom: 1px solid var(--line-soft);
}
.catalog__results.is-list .card__media { grid-row: 1 / span 2; }
.catalog__results.is-list .card__reveal,
.catalog__results.is-list .card__peek,
.catalog__results.is-list .card__badges { display: none; }
.catalog__results.is-list .card:hover .card__cover img { transform: none; }
.catalog__results.is-list .card__title { align-self: end; font-size: var(--fs-base); }
.catalog__results.is-list .card__meta { align-self: start; margin-top: 0; }
.catalog > * { min-width: 0; }
@media (max-width: 479px) {
  .catalog__bar { flex-wrap: wrap; }
  .catalog__sort label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}
