.rlcc.rlcc-search-band {
  background: var(--rlcc-color-surface-low);
  border-bottom: 1px solid rgba(29, 29, 27, 0.1);
  padding: 20px 0;
}
.rlcc .rlcc-search {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0;
  background: transparent;
  border: 0;
}
.rlcc .rlcc-search__field {
  position: relative;
  display: flex;
  align-items: center;
  background: transparent;
  border: 1px solid rgba(26, 26, 26, 0.4);
  border-radius: 0;
  transition: border-color 0.18s ease;
}
.rlcc .rlcc-search__field + .rlcc-search__field { border-left: 0; }
.rlcc .rlcc-search__field:focus-within { border-color: rgba(26, 26, 26, 0.7); }
.rlcc .rlcc-search__field--q,
.rlcc .rlcc-search__field--loc { flex: 1 1 0; min-width: 0; }
.rlcc .rlcc-search__field input,
.rlcc .rlcc-search__field select {
  width: 100%;
  height: auto;
  margin: 0;
  padding: 16px 30px;
  border: 0;
  background: transparent;
  color: #2e2a28;
  font-family: var(--rlcc-font-heading);
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.rlcc .rlcc-search__field--q input { padding-left: 50px; }
/* Métiers retenus : les pastilles s'alignent sur UNE ligne, qui glisse si elles
   débordent — même parti pris que les localités juste en dessous. Les laisser passer à
   la ligne ferait grandir la barre à chaque métier ajouté, et le bouton d'envoi, étiré
   sur toute la hauteur, suivrait. */
.rlcc .rlcc-search__field--q .rlcc-chosen {
  display: flex;
  align-items: center;
  gap: 6px;
  max-width: 60%;
  margin-inline-start: 44px;
  overflow-x: auto;
  scrollbar-width: none;
}
.rlcc .rlcc-search__field--q .rlcc-chosen::-webkit-scrollbar { display: none; }
.rlcc .rlcc-search__field--q .rlcc-chosen:empty { display: none; }
.rlcc .rlcc-search__field--q .rlcc-chosen__item { flex: 0 0 auto; max-width: 14em; }
.rlcc .rlcc-search__field--q .rlcc-chosen__label { overflow: hidden; text-overflow: ellipsis; }
/* L'icône garde sa place, mais le champ n'a plus à la contourner : ce sont les
   pastilles qui tiennent la marge. Il reste toujours de quoi taper. */
.rlcc .rlcc-search__field--q.has-chosen input {
  flex: 1 0 7em;
  min-width: 0;
  padding-left: 10px;
}
/* LE CHEVRON APPARTIENT AU CHAMP, PAS AU SELECT. Porté par le `background-image` du
   select, il disparaissait dès que front.js rehaussait le champ : le select reste dans le
   formulaire mais passe en opacité nulle (`.rlcc-combo__native`), emportant son chevron
   avec lui. Restaient le trait de séparation ci-dessous et les 60 px réservés à sa droite
   — un séparateur qui ne séparait plus rien, devant un vide qui avait l'air d'un second
   champ amputé. Retour de recette : « on dirait à droite de la bordure noire qu'il y a
   comme un sélecteur alors qu'il n'y a pas de champ. »
   Posé sur le CHAMP, il survit au rehaussement et rend les deux états identiques à l'œil,
   ce que le select seul ne pouvait pas faire. */
.rlcc .rlcc-search__field--loc select {
  padding-left: 28px;
  padding-right: 60px;
  cursor: pointer;
}
.rlcc .rlcc-search__field--loc::after {
  content: "";
  position: absolute;
  right: 10px;
  top: 50%;
  width: 24px;
  height: 24px;
  margin-top: -12px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c8c8c8' stroke-width='2.5'%3E%3Cpath d='m6.7 9.42 5.3 5.116 5.3-5.116'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 24px 24px;
  pointer-events: none;
  transition: rotate 0.18s ease;
}
/* La liste ouverte retourne le chevron, comme le faisait le bouton du composant. Sans
   `:has`, le chevron reste simplement fixe : rien ne casse. */
.rlcc .rlcc-search__field--loc:has(.rlcc-combo.is-open)::after { rotate: 180deg; }
.rlcc .rlcc-search__field input::placeholder { color: var(--rlcc-color-neutral); font-weight: 400; }
.rlcc .rlcc-search__field--loc select:has(option:first-child:checked) { color: var(--rlcc-color-neutral); }
.rlcc .rlcc-search__icon {
  position: absolute;
  left: 20px;
  width: 16px;
  height: 16px;
  color: #c8c8c8;
  opacity: 1;
  pointer-events: none;
}
.rlcc .rlcc-search__field--loc::before {
  content: "";
  position: absolute;
  right: 40px;
  top: 50%;
  width: 1px;
  height: 16px;
  margin-top: -8px;
  background: #c8c8c8;
  pointer-events: none;
}
/* Localité : le select natif est rehaussé en liste cherchable (front.js). Le
   contrôle prend la place exacte du select — la bordure et le chevron restent
   portés par le champ, pour que rien ne bouge à l'oeil entre les deux rendus. */
.rlcc .rlcc-search__field--loc .rlcc-combo { width: 100%; }
.rlcc .rlcc-search__field--loc .rlcc-combo__control {
  min-height: 58px;
  padding: 0 60px 0 28px;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  flex-wrap: nowrap;
  gap: 6px;
  /* Choix multiple : les puces s'alignent sur UNE ligne, qui glisse si elles débordent.
     Les laisser passer à la ligne ferait grandir la barre à chaque localité ajoutée, et
     le bouton d'envoi, étiré sur toute la hauteur, suivrait. */
  overflow-x: auto;
  scrollbar-width: none;
}
.rlcc .rlcc-search__field--loc .rlcc-combo__control::-webkit-scrollbar { display: none; }
.rlcc .rlcc-search__field--loc .rlcc-combo__chip { flex: 0 0 auto; max-width: 14em; }
.rlcc .rlcc-search__field--loc .rlcc-combo__chip-x { flex: 0 0 auto; }
/* Il reste toujours de quoi taper, même la barre pleine de puces. */
.rlcc .rlcc-search__field--loc .rlcc-combo__input { flex: 1 0 7em; }
/* Avant que front.js ne rehausse le champ, un select `multiple` s'affiche en liste
   déroulée : sans cette borne, la barre de recherche s'ouvrirait sur toute la hauteur
   du référentiel le temps du chargement. */
.rlcc .rlcc-search__field--loc select[multiple] {
  height: 58px;
  overflow: hidden;
}
.rlcc .rlcc-search__field--loc .rlcc-combo.is-open .rlcc-combo__control,
.rlcc .rlcc-search__field--loc .rlcc-combo__control:hover,
.rlcc .rlcc-search__field--loc .rlcc-combo__control:focus-within { border: 0; box-shadow: none; }
.rlcc .rlcc-search__field--loc .rlcc-combo__input {
  height: auto;
  font-family: var(--rlcc-font-heading);
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  color: #2e2a28;
}
.rlcc .rlcc-search__field--loc .rlcc-combo__input::placeholder { color: var(--rlcc-color-neutral); }
/* Le chevron du champ fait déjà office d'indicateur. */
.rlcc .rlcc-search__field--loc .rlcc-combo__toggle { display: none; }
/* Le bord et l'angle vivent désormais sur le panneau : la liste n'est plus qu'un bloc
   défilant à l'intérieur, elle ne borde plus rien. */
.rlcc .rlcc-search__field--loc .rlcc-combo__panel {
  border-radius: 0;
  border-color: rgba(29, 29, 27, 0.35);
}

.rlcc .rlcc-search__submit {
  flex: 0 0 280px;
  align-self: stretch;
  height: auto;
  margin: 0;
  padding: 0 16px;
  background-color: var(--rlcc-color-accent-text);
  border-color: var(--rlcc-color-accent-text);
  font-family: var(--rlcc-font-heading);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2.4px;
  white-space: nowrap;
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.12s ease;
}
.rlcc .rlcc-search__submit:hover { background-color: var(--rlcc-color-primary-deep); border-color: var(--rlcc-color-primary-deep); }
.rlcc .rlcc-search__submit:active { transform: scale(0.96); }

.rlcc .rlcc-search__suggest {
  top: calc(100% + 1px);
  margin: 0;
  border: 1px solid rgba(29, 29, 27, 0.35);
  border-radius: 0;
  background: var(--rlcc-color-surface);
  box-shadow: 0 1px 2px rgba(29, 29, 27, 0.06), 0 8px 24px rgba(29, 29, 27, 0.12);
}
.rlcc .rlcc-search__suggest .rlcc-suggest__item {
  min-height: 40px;
  padding: 9px 16px 9px 50px;
  border: 0;
  font-family: var(--rlcc-font-body);
  font-size: 15px;
  color: var(--rlcc-color-text);
  transition: background-color 0.12s ease;
}
.rlcc .rlcc-search__suggest .rlcc-suggest__item:hover,
.rlcc .rlcc-search__suggest .rlcc-suggest__item:focus { background: var(--rlcc-color-surface-low); color: var(--rlcc-color-accent-text); }

.rlcc.rlcc-listing {
  background: var(--rlcc-color-surface-low);
}
.rlcc.rlcc-listing--nw .rlcc-container { padding-top: 0; padding-bottom: 0; }
.rlcc .rlcc-listing__grid {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
}
.rlcc .rlcc-listing__facets {
  flex: 0 0 33%;
  max-width: 33%;
  display: flex;
  flex-direction: column;
  padding: 40px 4% 40px 0;
  /* Les filtres suivent le défilement de la liste, SANS zone de défilement propre.
     La colonne a été bornée à la fenêtre avec `overflow-y: auto` : elle captait alors
     la molette dès qu'elle débordait, et la liste d'offres restait figée tant que le
     pointeur passait à gauche. Retirer `overscroll-behavior: contain` n'y suffit pas —
     le navigateur verrouille la cible d'un geste de molette sur la zone survolée, et le
     geste suivant y reste accroché.

     Le collant ne s'applique donc qu'aux fenêtres assez hautes pour contenir la colonne
     repliée (~790 px sous l'en-tête). En dessous, la colonne défile avec la page et
     reste atteignable jusqu'en bas — c'est le seul compromis qui laisse le défilement
     de la liste toujours disponible. */
}
@media (min-height: 940px) {
  .rlcc .rlcc-listing__facets {
    position: sticky;
    top: 115px;
  }
}
.rlcc .rlcc-listing__main {
  flex: 1 1 auto;
  min-width: 0;
  padding: 40px 0 40px 4%;
  border-left: 1px solid rgba(29, 29, 27, 0.1);
}

.rlcc .rlcc-facets__reset {
  align-self: flex-start;
  min-height: 38px;
  margin-bottom: 40px;
  padding: 8px 16px;
  font-family: var(--rlcc-font-heading);
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: normal;
  text-transform: none;
  background-color: var(--rlcc-color-accent-text);
  border-color: var(--rlcc-color-accent-text);
  box-shadow: none;
  opacity: 0.6;
}
.rlcc .rlcc-facets__reset:hover {
  background-color: var(--rlcc-color-accent-text);
  border-color: var(--rlcc-color-accent-text);
  opacity: 1;
}
.rlcc .rlcc-facet {
  margin: 0 0 40px;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.rlcc .rlcc-facet:last-child { margin-bottom: 0; }
.rlcc .rlcc-facet__title {
  margin: 0 0 24px;
  font-family: var(--rlcc-font-heading);
  font-size: 20px;
  font-weight: 700;
  line-height: 24px;
  letter-spacing: -0.1px;
  text-transform: none;
  color: var(--rlcc-color-ink);
}
.rlcc .rlcc-facet__frame {
  padding: 20px;
  background: rgba(236, 234, 232, 0.4);
  border: 0;
}
.rlcc .rlcc-facet__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.rlcc .rlcc-facet__item {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  padding: 0;
  min-height: 20px;
  color: var(--rlcc-color-text);
  font-family: var(--rlcc-font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: -0.1px;
  text-decoration: none;
  transition: color 0.12s ease;
}
.rlcc .rlcc-facet__item:hover { color: var(--rlcc-color-accent-text); }
.rlcc .rlcc-facet__item--child {
  padding-left: 22px;
  font-size: 15px;
  color: rgba(29, 29, 27, 0.82);
}
.rlcc .rlcc-facet--localisation .rlcc-facet__list {
  /* Seule facette bornée : la liste des localités est trop longue pour la colonne.
     Le défilement se propage à la page une fois la liste au bout — la retenir ici
     arrêterait la page sous le pointeur, sans que rien ne l'explique à l'écran. */
  max-height: 340px;
  overflow-y: auto;
}
.rlcc .rlcc-facet__item:focus-visible { outline: 2px solid var(--rlcc-color-primary); outline-offset: 2px; }
.rlcc .rlcc-facet__item:active .rlcc-facet__box { transform: scale(0.9); }
.rlcc .rlcc-facet__box {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  position: relative;
  background: transparent;
  border: 1px solid rgba(29, 29, 27, 0.4);
  border-radius: 0;
  transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}
.rlcc .rlcc-facet__item.is-checked .rlcc-facet__box {
  background: var(--rlcc-color-primary-active);
  border-color: var(--rlcc-color-primary-active);
}
.rlcc .rlcc-facet__item.is-checked .rlcc-facet__box::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 6px;
  height: 10px;
  border: solid var(--rlcc-color-on-primary);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.rlcc .rlcc-facet__text { flex: 1 1 auto; font-family: var(--rlcc-font-body); }
.rlcc .rlcc-facet__count {
  padding: 0;
  background: transparent;
  border-radius: 0;
  color: var(--rlcc-color-text);
  font-family: var(--rlcc-font-body);
  font-size: inherit;
  font-weight: inherit;
  opacity: 1;
}

.rlcc .rlcc-facet__more {
  display: flex;
  flex-direction: column;
  margin-top: 16px;
}
.rlcc .rlcc-facet__more > summary {
  order: 2;
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 8px;
  list-style: none;
  min-height: 32px;
  padding: 8px;
  background: var(--rlcc-color-ink);
  color: var(--rlcc-color-surface-high);
  font-family: var(--rlcc-font-heading);
  font-size: 14px;
  font-weight: 500;
  line-height: 16px;
  letter-spacing: normal;
  border-radius: 4px;
  cursor: pointer;
  user-select: none;
  transition: background-color 0.15s ease, transform 0.12s ease;
}
.rlcc .rlcc-facet__more > summary:hover { background: #383836; }
.rlcc .rlcc-facet__more > summary:active { transform: scale(0.96); }
.rlcc .rlcc-facet__more > summary::-webkit-details-marker { display: none; }
.rlcc .rlcc-facet__more > summary::marker { content: ""; }
.rlcc .rlcc-facet__more[open] > summary { margin-top: 8px; }
.rlcc .rlcc-facet__more-label--close { display: none; }
.rlcc .rlcc-facet__more[open] .rlcc-facet__more-label--open { display: none; }
.rlcc .rlcc-facet__more[open] .rlcc-facet__more-label--close { display: inline; }
.rlcc .rlcc-facet__more-chevron { flex: 0 0 auto; transition: transform 0.2s ease; }
.rlcc .rlcc-facet__more[open] .rlcc-facet__more-chevron { transform: rotate(180deg); }
.rlcc .rlcc-facet__list--more { order: 1; margin-top: 0; overflow: hidden; }
.rlcc .rlcc-facet__more:not([open]) .rlcc-facet__list--more { display: none; }
html.rlcc-js .rlcc .rlcc-facet__list--more { transition: height 0.28s cubic-bezier(0.2, 0, 0, 1); }

.rlcc .rlcc-facets-toggle { display: none; }

.rlcc .rlcc-listing__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px 24px;
  margin: 0 0 14px;
  padding: 0 20px 14px;
  border-bottom: 1px solid rgba(29, 29, 27, 0.1);
}
.rlcc .rlcc-listing__count {
  margin: 0;
  font-family: var(--rlcc-font-body);
  font-size: 16px;
  font-weight: 300;
  color: var(--rlcc-color-text);
}
.rlcc .rlcc-listing__count strong {
  font-family: var(--rlcc-font-heading);
  font-size: 18px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

/* Recherche élargie : la localité demandée ne portait aucune offre, la liste montre
   celles du bassin. La phrase se lit AVANT les cartes, discrète mais pas décorative —
   sans elle, le candidat croit lire des offres de sa localité. Elle hérite sa police du
   listing : elle prolonge le compteur juste au-dessus, elle n'a pas de voix propre. */
.rlcc .rlcc-listing__widened {
  margin: 0 0 20px;
  padding: 12px 16px;
  border-left: 2px solid var(--rlcc-color-accent);
  background-color: var(--rlcc-color-cream);
  font-family: inherit;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.5;
  color: var(--rlcc-color-text);
}
.rlcc .rlcc-listing__sort {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.rlcc .rlcc-listing__sort-label {
  margin-right: 8px;
  font-family: var(--rlcc-font-heading);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  color: var(--rlcc-color-muted);
}
.rlcc .rlcc-listing__sort-opt {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 10px;
  font-family: var(--rlcc-font-heading);
  font-size: 12px;
  font-weight: 400;
  color: var(--rlcc-color-text);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color 0.12s ease, border-color 0.12s ease;
  /* Un libellé de tri ne se coupe jamais en cours de route : « Les plus / récentes »
     sur deux lignes cesse de se lire comme un choix, et son soulignement d'option
     active ne désigne plus rien. Les deux déclarations ne font pas double emploi —
     `text-wrap` est une composante de `white-space`, et une règle `text-wrap` visant
     ces éléments suffirait à défaire un `nowrap` posé seul. */
  white-space: nowrap;
  text-wrap: nowrap;
}
.rlcc a.rlcc-listing__sort-opt:hover { color: var(--rlcc-color-accent-text); }
.rlcc .rlcc-listing__sort-opt.is-current {
  font-weight: 500;
  border-bottom-color: var(--rlcc-color-primary);
}
.rlcc .rlcc-listing__sort-opt.is-disabled { color: #9a9793; cursor: not-allowed; padding-inline-end: 2px; }
.rlcc .rlcc-listing__sort-hint {
  font-family: var(--rlcc-font-heading);
  font-size: 11px;
  color: #9a9793;
  white-space: nowrap;
  text-wrap: nowrap;
}

.rlcc .rlcc-active-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
  margin: 0 0 18px;
  padding: 0 20px;
}
.rlcc .rlcc-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.rlcc .rlcc-chips__item { display: inline-flex; }
.rlcc .rlcc-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 6px 10px 6px 14px;
  background: var(--rlcc-color-surface);
  border: 1px solid var(--rlcc-color-border);
  color: var(--rlcc-color-text);
  font-family: var(--rlcc-font-body);
  font-size: 14px;
  line-height: 1.3;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease, transform 0.12s ease;
}
.rlcc .rlcc-chip::before { content: ""; position: absolute; inset: -4px 0; }
.rlcc .rlcc-chip:hover { background: var(--rlcc-color-ink); color: var(--rlcc-color-surface); }
.rlcc .rlcc-chip:active { transform: scale(0.96); }
.rlcc .rlcc-chip__x { flex: 0 0 auto; opacity: 0.65; transition: opacity 0.12s ease; }
.rlcc .rlcc-chip:hover .rlcc-chip__x { opacity: 1; }
.rlcc .rlcc-chips__reset {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  color: var(--rlcc-color-accent-text);
  font-family: var(--rlcc-font-body);
  font-size: 14px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.rlcc .rlcc-chips__reset:hover { color: var(--rlcc-color-primary-hover); }

.rlcc .rlcc-suggested {
  margin-top: 56px;
  padding: 28px 20px 0;
  border-top: 2px solid var(--rlcc-color-border);
}
.rlcc .rlcc-suggested__title {
  margin: 0 0 4px;
  font-family: var(--rlcc-font-heading);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.1px;
  color: var(--rlcc-color-ink);
  text-wrap: balance;
}
.rlcc .rlcc-suggested__subtitle {
  margin: 0 0 10px;
  font-family: var(--rlcc-font-body);
  font-size: 14px;
  font-weight: 300;
  color: var(--rlcc-color-muted);
}

.rlcc .rlcc-offres { display: flex; flex-direction: column; }
.rlcc .rlcc-offre {
  border-top: 1px solid var(--rlcc-color-surface-high);
  transition: background-color 0.2s ease;
}
.rlcc .rlcc-offre:hover { background-color: var(--rlcc-color-surface-high); }
.rlcc .rlcc-offre__link {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 20px;
  text-decoration: none;
  color: var(--rlcc-color-text);
}
.rlcc .rlcc-offre__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.rlcc .rlcc-offre__secteur {
  margin-bottom: 6px;
  color: var(--rlcc-color-accent-text);
  font-family: var(--rlcc-font-heading);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  line-height: 19.2px;
}
.rlcc .rlcc-offre__title {
  margin: 0 0 6px;
  color: var(--rlcc-color-ink);
  font-family: var(--rlcc-font-heading);
  font-size: 24px;
  font-weight: 400;
  line-height: 39.6px;
  letter-spacing: -0.1px;
}
.rlcc .rlcc-offre__metas {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--rlcc-color-text);
  font-family: var(--rlcc-font-body);
  font-size: 16px;
  font-weight: 300;
  line-height: 25.6px;
  letter-spacing: -0.1px;
}
.rlcc .rlcc-offre__metas .rlcc-offre__meta { display: inline-flex; align-items: center; font-family: var(--rlcc-font-body); }
.rlcc .rlcc-offre__metas .rlcc-offre__meta:not(:last-child)::after {
  content: "\00B7";
  margin: 0 7px;
  color: var(--rlcc-color-text);
  font-size: inherit;
  line-height: 1;
}
.rlcc .rlcc-offre__arrow {
  flex: 0 0 auto;
  color: var(--rlcc-color-text);
  font-size: 20px;
  line-height: 1;
  transition: transform 0.2s ease, color 0.2s ease;
}
.rlcc .rlcc-offre:hover .rlcc-offre__arrow {
  color: var(--rlcc-color-primary);
  transform: translateX(4px);
}

.rlcc .rlcc-listing__empty {
  margin: 6px 0 0;
  padding: 44px 32px;
  color: var(--rlcc-color-text);
  background: rgba(236, 234, 232, 0.4);
  border: 1px solid rgba(29, 29, 27, 0.08);
}
.rlcc .rlcc-listing__empty-title {
  margin: 0 0 10px;
  font-family: var(--rlcc-font-heading);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.1px;
  text-wrap: balance;
}
.rlcc .rlcc-listing__empty-text {
  margin: 0;
  max-width: 62ch;
  font-family: var(--rlcc-font-body);
  font-size: 16px;
  font-weight: 300;
  line-height: 1.6;
  text-wrap: pretty;
}
.rlcc .rlcc-listing__empty-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 18px;
  margin-top: 26px;
}
.rlcc .rlcc-listing__empty-actions .rlcc-btn { min-height: 48px; padding-left: 28px; padding-right: 28px; }
.rlcc .rlcc-listing__empty-actions .rlcc-btn:active { transform: scale(0.96); }
.rlcc .rlcc-listing__empty-all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  color: var(--rlcc-color-accent-text);
  font-family: var(--rlcc-font-body);
  font-size: 15px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.rlcc .rlcc-listing__empty-all:hover { color: var(--rlcc-color-primary-hover); }

html.rlcc-js .rlcc-listing__main,
html.rlcc-js .rlcc .rlcc-listing__facets { transition: opacity 0.18s ease; }
html.rlcc-js .rlcc-listing.is-loading .rlcc-listing__main,
html.rlcc-js .rlcc-listing.is-loading .rlcc-listing__facets {
  opacity: 0.45;
  pointer-events: none;
}

.rlcc .rlcc-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 60px;
}
.rlcc .rlcc-pagination__link,
.rlcc .rlcc-pagination__gap {
  min-width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 11px;
  font-family: var(--rlcc-font-body);
  font-size: 14px;
  font-weight: 400;
  line-height: 32px;
  color: var(--rlcc-color-text);
  text-decoration: none;
  border-radius: 0;
  box-shadow: none;
}
.rlcc .rlcc-pagination__link,
.rlcc .rlcc-pagination__gap {
  background: transparent;
  border: 1px solid rgba(29, 29, 27, 0.28);
}
.rlcc .rlcc-pagination__link:hover { border-color: rgba(29, 29, 27, 0.7); color: var(--rlcc-color-text); background: transparent; box-shadow: none; }
.rlcc .rlcc-pagination__link.is-current {
  color: var(--rlcc-color-surface);
  background: var(--rlcc-color-ink-strong);
  border-color: var(--rlcc-color-ink-strong);
  font-weight: 600;
  box-shadow: none;
}

.rlcc.rlcc-listing--simple { background: transparent; }

@media (max-width: 992px) {
  .rlcc .rlcc-listing__grid { flex-direction: column; }

  .rlcc .rlcc-facets-toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    margin: 18px 0 0;
    padding: 10px 18px;
    background: var(--rlcc-color-surface);
    border: 1px solid var(--rlcc-color-border);
    border-radius: 0;
    color: var(--rlcc-color-ink);
    font-family: var(--rlcc-font-heading);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, transform 0.12s ease;
  }
  .rlcc .rlcc-facets-toggle:active { transform: scale(0.96); }
  .rlcc .rlcc-facets-toggle.is-open { background: var(--rlcc-color-ink); color: var(--rlcc-color-surface); }
  .rlcc .rlcc-facets-toggle__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    background: var(--rlcc-color-primary);
    color: var(--rlcc-color-on-primary);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
  }

  .rlcc .rlcc-listing__facets {
    flex-basis: auto;
    max-width: none;
    width: 100%;
    margin-top: 14px;
    padding: 20px;
    background: rgba(236, 234, 232, 0.4);
    border: 1px solid rgba(29, 29, 27, 0.08);
    /* Panneau dépliable en pleine largeur : plus rien à faire suivre. */
    position: static;
    max-height: none;
    overflow: visible;
  }
  html.rlcc-js .rlcc .rlcc-listing__facets { display: none; }
  html.rlcc-js .rlcc .rlcc-listing__facets.is-open {
    display: flex;
    animation: rlcc-facets-in 0.22s cubic-bezier(0.2, 0, 0, 1);
  }

  .rlcc .rlcc-listing__main {
    width: 100%;
    padding: 20px 0 40px;
    border-left: none;
  }
  .rlcc .rlcc-facets__reset { align-self: stretch; justify-content: center; margin-bottom: 22px; }
  .rlcc .rlcc-facet { margin-bottom: 18px; }
  .rlcc .rlcc-facet__title { margin-bottom: 14px; font-size: 18px; }
  .rlcc .rlcc-listing__bar,
  .rlcc .rlcc-active-filters { padding-left: 6px; padding-right: 6px; }
}
@keyframes rlcc-facets-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (max-width: 768px) {
  .rlcc .rlcc-search { flex-wrap: wrap !important; }
  .rlcc .rlcc-search__field--q,
  .rlcc .rlcc-search__field--loc {
    flex: 1 1 100% !important;
    min-width: 0;
  }
  .rlcc .rlcc-search__field + .rlcc-search__field {
    border-left: 1px solid rgba(26, 26, 26, 0.4);
    border-top: 0;
  }
  .rlcc .rlcc-search__field--q input { padding: 14px 16px 14px 46px; }
  .rlcc .rlcc-search__field--q .rlcc-search__icon { left: 16px; }
  .rlcc .rlcc-search__field--loc select { padding: 14px 56px 14px 16px; }
  .rlcc .rlcc-search__submit {
    flex: 1 1 100%;
    margin: 0;
    min-height: 52px;
    padding: 0 16px;
  }
  .rlcc .rlcc-listing__bar { flex-direction: column; align-items: flex-start; gap: 2px; }
  /* LIGNE DE TRI SUR UN TELEPHONE : le libellé et les deux options tiennent sur une
     seule ligne au bureau, jamais sur 393 px. La ligne y débordait, « Les plus
     récentes » se coupait en deux et la mention venait buter contre « Pertinence ».
     La grille rend le rang que la ligne ne peut plus donner : « Trier : » occupe la
     première rangée à lui seul, chaque option prend sa colonne, et la mention se range
     sous « Pertinence » — la seule option à laquelle elle se rapporte. Les colonnes
     sont dimensionnées sur le texte entier (`max-content`), ce qui interdit à la grille
     de rétrécir une option jusqu'à la casser. */
  .rlcc .rlcc-listing__sort {
    display: grid;
    grid-template-columns: max-content max-content;
    justify-content: start;
    align-items: center;
    gap: 2px 10px;
  }
  .rlcc .rlcc-listing__sort-label { grid-column: 1 / -1; margin-right: 0; }
  /* Sans placement explicite, la mention retomberait en première colonne, sous « Les
     plus récentes ». Son retrait la cale sur le texte de « Pertinence » et non sur le
     bord de la colonne, l'option portant 10 px de retrait horizontal. */
  .rlcc .rlcc-listing__sort-hint { grid-column: 2; padding-inline: 10px; }
  .rlcc .rlcc-offre__link { padding: 20px 6px; gap: 16px; }
  .rlcc .rlcc-offre__title { font-size: 18px; line-height: 1.4; }
  .rlcc .rlcc-listing__empty { padding: 32px 20px; }
  .rlcc .rlcc-suggested { padding-left: 6px; padding-right: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  .rlcc .rlcc-facet__list--more,
  .rlcc .rlcc-facets-toggle,
  .rlcc .rlcc-search__submit,
  .rlcc .rlcc-chip,
  .rlcc .rlcc-facet__more > summary,
  .rlcc .rlcc-facet__more-chevron,
  .rlcc .rlcc-facet__box,
  .rlcc .rlcc-offre,
  .rlcc .rlcc-offre__arrow { transition: none !important; animation: none !important; }
}

#section-9101-139 .ct-shortcode,
#section-9201-139 .ct-shortcode,
#shortcode-9102-139,
#shortcode-9202-139 {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}
#section-9101-139 .ct-section-inner-wrap { padding-top: 0 !important; padding-bottom: 0 !important; }
#section-9201-139 .ct-section-inner-wrap { padding-top: 0 !important; padding-bottom: 0 !important; }
.rlcc.rlcc-search-band {
  width: 100%;
  --rlcc-container: 1440px;
  --rlcc-gutter: 80px;
}
.rlcc.rlcc-listing {
  width: 100%;
  --rlcc-container: 100%;
  --rlcc-gutter: 40px;
}
@media (max-width: 992px) {
  .rlcc.rlcc-search-band { --rlcc-gutter: clamp(20px, 5vw, 70px); }
  .rlcc.rlcc-listing { --rlcc-gutter: clamp(20px, 2.1vw, 40px); }
  .rlcc .rlcc-facet__list { gap: 4px; }
  .rlcc .rlcc-facet__item { padding-block: 6px; }
}
/* Élément du constructeur de pages, posé HORS de .rlcc : aucun jeton n'y est déclaré.
   La couleur cite quand même son rôle, avec le littéral en repli — c'est le repli qui
   peint aujourd'hui, et le jeton prendra la main le jour où l'élément entrera dans une
   racine de charte. La pile de polices suit la même règle, pour la même raison. */
#headline-378-139 {
  display: block;
  width: 100%;
  font-family: var(--rlcc-font-body, 'TT Hoves', Arial, sans-serif) !important;
  font-size: 58px !important;
  font-weight: 300 !important;
  line-height: 58px !important;
  letter-spacing: -0.1px !important;
  color: var(--rlcc-color-ink-strong, #1a1a1a) !important;
  text-align: right;
}

.rlcc-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
