/* NJANSANG — filtres partagés par La Carte et À emporter (barre de filtres, préférences, état vide, méta des plats). Chargé après styles.css, avant carte.css ou emporter.css. */
@layer pages {
  .filters-wrap { position: relative; z-index: 5; }
  .filters { display: block; margin-block-end: var(--space-5); }
  .filters__mobile { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
  .filters__open .icon { color: var(--color-terracotta); }
  .filters__panel { display: grid; gap: 1.1rem; }
  .filters__group { display: grid; gap: .5rem; }
  .filters__label { font-size: var(--fs-label); text-transform: uppercase; letter-spacing: .12em; font-weight: 650; color: var(--color-encre-2); }
  .filters__all summary { font-size: .9rem; font-weight: 600; color: var(--color-terracotta-texte); min-height: 44px; display: inline-flex; align-items: center; }
  .mini-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem 1rem; padding-block: .5rem; }
  .mini-check { display: flex; align-items: center; gap: .5rem; font-size: .9rem; min-height: 2.25rem; }
  .mini-check input { inline-size: 1.15rem; block-size: 1.15rem; accent-color: var(--color-terracotta); }
  .filters__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding-block-start: .75rem; border-block-start: 1px solid var(--color-ligne); }
  .filters__result { font-weight: 600; font-size: .9375rem; }
  .filters__result--dark { color: var(--color-creme-attenue); margin-block-end: 1rem; }
  .prefs-banner { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .75rem; padding: .7rem 1rem; border-radius: var(--radius-s); background: #E4EEDF; border: 1px solid #A9C9A4; font-size: .9375rem; margin-block-end: var(--space-5); }
  .prefs-banner button { font-weight: 650; color: var(--color-foret); text-decoration: underline; min-height: 44px; }
  /* Panneau de filtres : ordinateur = barre collante */
  @media (min-width: 48em) {
    .filters__mobile { display: none; }
    .filters--sticky { position: sticky; top: calc(var(--header-h) - 1px); z-index: 6; }
    .filters .filters__panel { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2rem; padding: 1.25rem 1.5rem; background: rgb(248 241 227 / .97); border: 1px solid var(--color-sable); border-radius: var(--radius-m); box-shadow: var(--shadow-s); }
    .filters__foot { grid-column: 1 / -1; }
  }
  @media (max-width: 47.99em) {
    .js .filters .filters__panel { display: none; }
    .js .sheet .filters__panel { display: grid; }
  }
  .filters--compact .filters__panel { display: grid !important; }
  @media (min-width: 64em) { .filters .filters__panel { grid-template-columns: auto auto auto auto; align-items: start; } .filters--compact .filters__panel { grid-template-columns: 1.1fr 1.3fr auto; } }
  .menu-section__empty { display: grid; gap: .75rem; justify-items: start; padding: 1.5rem; border: 1.5px dashed var(--color-sable); border-radius: var(--radius-m); background: var(--color-ivoire); }
  .menu-section__empty p:first-child { font-family: var(--font-display); font-size: 1.3rem; }
  .menu-section__empty .suggest { display: flex; flex-wrap: wrap; gap: .5rem; }
  .menu-section__empty .suggest button { font-weight: 650; color: var(--color-terracotta-texte); text-decoration: underline; min-height: 44px; }
  .dish__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .9rem; margin-block-start: .15rem; }
  .dish__allergens, .dish__origin { font-size: .875rem; color: var(--color-encre-2); }
  .dish__label { font-weight: 650; color: var(--color-encre); }
  .dish__origin { display: flex; gap: .35rem; align-items: flex-start; }
  .dish__origin .icon { margin-block-start: .2rem; }
  ::view-transition-old(root), ::view-transition-new(root) { animation-duration: 250ms; }
}
