/* ====================================================================
   Almaviva Portail — Annuaire médical (extension de portail-carrieres.css)
   Réutilise tout le système .alm-carriere-* (hero, breadcrumb, filtres,
   grid, cards, btn) et ajoute uniquement le slot photo praticien + la
   rangée 3 actions (RDV / fiche / contact).
   Couleurs : bleu #004899 / hover #003670, orange CTA var(--cta-bg)
   — le jeton, jamais sa valeur : var(--alm-orange) y était figé et court-circuitait la
   remédiation de contraste qui l'a porté à var(--alm-orange) (tools/fix-oranges-contraste).
   (jamais #EE7203 sur bouton, jamais orange sur bleu).
   ==================================================================== */

/* ========== Card : design annuaire ÉTAB (radius 24, shadow douce, hover lift) ========== */
.alm-annuaire-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0; /* on annule le padding de .alm-carriere-card pour laisser la photo en bord-à-bord */
  border-radius: 24px;
  border: 1px solid var(--alm-border, #DDDDD5);
  box-shadow: 0 4px 20px rgba(0, 0, 0, .08);
  transition: transform .2s ease, box-shadow .2s ease;
}
.alm-annuaire-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .12);
}

.alm-annuaire-card__photo {
  aspect-ratio: 4 / 3;
  background: #f4f4f0;
  overflow: hidden;
  position: relative;
  width: 100%;
  border-radius: 22px 22px 0 0;   /* suit le radius de la carte en haut */
  display: flex;
  align-items: center;
  justify-content: center;
}
.alm-annuaire-card__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Fallback avatar = initiales sur fond BLEU plein (design étab) */
.alm-annuaire-card__photo-initials {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #004899, #003670);
  color: #fff;
  font-family: var(--font-title), "Century Gothic", sans-serif;
  font-size: 34px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .02em;
}
.alm-annuaire-card__photo-placeholder {
  align-items: center;
  color: #b6b9bd;
  display: flex;
  height: 100%;
  justify-content: center;
  width: 100%;
}
.alm-annuaire-card__photo-placeholder svg {
  width: 48px;
  height: 48px;
}

.alm-annuaire-card .alm-carriere-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 8px;
  padding: 18px 20px 20px;
}

/* ========== Titre : honorifique Dr/Pr en bleu ========== */
.alm-annuaire-card__title {
  font-size: 17px;
  line-height: 1.25;
  margin: 0;
}
.alm-annuaire-card__honorific {
  color: var(--alm-blue, #004899);
  margin-right: 4px;
  font-weight: 700;
}

/* ========== Spécialité : forte mais sobre ========== */
.alm-annuaire-card__spec {
  color: #1a1a1a;
  font-size: 13px;
  font-weight: 600;
  margin: 0;
}

/* ========== Ville en accent dans le bloc location ========== */
.alm-annuaire-card__ville {
  color: var(--alm-blue, #004899);
  font-weight: 600;
}

/* ========== Rangée des 3 actions ========== */
.alm-annuaire-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: auto;       /* colle en bas de carte */
  padding-top: 10px;
  border-top: 1px solid #f0eee9;
}
.alm-annuaire-card__actions .alm-carriere-btn {
  font-size: 13.5px;
  padding: 9px 18px;
  flex: 0 0 auto;
}
/* RDV : bouton BLEU plein (design annuaire étab), pas orange. On bat
   .alm-carriere-btn--primary (--cta-bg orange) avec une spécificité 0,2,0. */
.alm-annuaire-card__actions .alm-annuaire-card__rdv,
.alm-annuaire-card__actions a.alm-annuaire-card__rdv:link,
.alm-annuaire-card__actions a.alm-annuaire-card__rdv:visited {
  background: var(--alm-blue, #004899);
  color: #fff !important;
}
.alm-annuaire-card__actions .alm-annuaire-card__rdv:hover,
.alm-annuaire-card__actions .alm-annuaire-card__rdv:focus {
  background: #003670;
  color: #fff !important;
}
.alm-annuaire-card__link,
.alm-annuaire-card__link:link,
.alm-annuaire-card__link:visited {
  color: var(--alm-blue, #004899);
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .15s;
}
.alm-annuaire-card__link:hover,
.alm-annuaire-card__link:focus { color: #003670; }

.alm-annuaire-card__contact,
.alm-annuaire-card__contact:link,
.alm-annuaire-card__contact:visited {
  color: #4a4f55;
  font-size: 13px;
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: rgba(0,72,153,0.25);
  text-underline-offset: 3px;
  transition: color .15s, text-decoration-color .15s;
}
.alm-annuaire-card__contact:hover,
.alm-annuaire-card__contact:focus {
  color: var(--alm-blue, #004899);
  text-decoration-color: var(--alm-blue, #004899);
}

/* ========== Meta sous l'annuaire (timestamp + cache info) ========== */
.alm-annuaire-meta {
  margin-top: 28px;
  font-size: 12px;
  color: #646970;
  text-align: right;
}

/* ========== Grid : 3 colonnes desktop, descente responsive ========== */
.alm-annuaire-grid {
  grid-template-columns: repeat(3, 1fr);
}
.alm-annuaire-grid[hidden] { display: none; }

/* ========== Responsive ========== */
@media (max-width: 1024px) {
  .alm-annuaire-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .alm-annuaire-grid { grid-template-columns: 1fr; }
  .alm-annuaire-card__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .alm-annuaire-card__actions .alm-carriere-btn { width: 100%; text-align: center; }
}

.alm-annuaire-pagination {
  margin: 40px 0 8px;
  padding-top: 28px;
  border-top: 1px solid var(--almaviva-bordure, #e3e6ea);
}
.alm-annuaire-pagination__etat {
  margin: 0 0 16px;
  font-size: 0.9375rem;
  color: #5a6572;
  text-align: center;
}
.alm-annuaire-pagination__liste {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.alm-annuaire-pagination__liste li { margin: 0; padding: 0; list-style: none; }
.alm-annuaire-pagination__lien {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--almaviva-bordure, #e3e6ea);
  border-radius: 8px;
  background: var(--almaviva-blanc, #fff);
  color: var(--almaviva-bleu, #004899);
  font-family: var(--almaviva-font-titre, inherit);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.alm-pann-body__inner .alm-annuaire-pagination__lien:hover,
.alm-pann-body__inner .alm-annuaire-pagination__lien:focus-visible,
.alm-pann-body__inner .alm-annuaire-pagination__lien:active {
  background: var(--almaviva-bleu, #004899);
  border-color: var(--almaviva-bleu, #004899);
  color: var(--almaviva-blanc, #fff);
}
.alm-annuaire-pagination__lien:focus-visible {
  outline: 3px solid var(--almaviva-orange, #ee7203);
  outline-offset: 2px;
}
.alm-annuaire-pagination__lien--courant {
  background: var(--almaviva-bleu, #004899);
  border-color: var(--almaviva-bleu, #004899);
  color: var(--almaviva-blanc, #fff);
  cursor: default;
}
.alm-annuaire-pagination__ellipse {
  min-width: 24px;
  color: #8a93a0;
  text-align: center;
  user-select: none;
}
.alm-annuaire-submit {
  border: 1px solid var(--almaviva-bleu, #004899);
  background: var(--almaviva-bleu, #004899);
  color: var(--almaviva-blanc, #fff);
  min-height: 44px;
  padding: 0 18px;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
}
.alm-annuaire-submit:hover,
.alm-annuaire-submit:focus-visible {
  background: #003a7a;
  border-color: #003a7a;
}

@media (max-width: 600px) {
  .alm-annuaire-pagination__liste { gap: 6px; }
  .alm-annuaire-pagination__lien {
    min-width: 44px;
    padding: 0 8px;
    font-size: 0.875rem;
  }
  .alm-annuaire-pagination__lien--prec,
  .alm-annuaire-pagination__lien--suiv { flex-basis: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .alm-annuaire-pagination__lien { transition: none; }
}

.alm-prat-searchbar .alm-pann-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 0 0 220px;
  min-width: 0;
  margin: 0;
}
.alm-prat-searchbar .alm-pann-field--search { flex: 1 1 auto; }
.alm-prat-searchbar .alm-pann-field__label {
  font-size: 13px;
  font-weight: 600;
  color: #042C53;
}
.alm-prat-searchbar .alm-pann-field input[type="search"],
.alm-prat-searchbar .alm-pann-field select {
  width: 100%;
  height: 48px;
  min-height: 44px;
  box-sizing: border-box;
  padding: 0 14px;
  border: 1px solid #CBD9E8;
  border-radius: 11px;
  background: #fff;
  font-family: inherit;
  font-size: 14px;
  color: #042C53;
  appearance: none;
}
.alm-prat-searchbar .alm-pann-field select {
  padding-right: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238CA3BC' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px 16px;
}
.alm-prat-searchbar .alm-pann-field input[type="search"]::placeholder { color: #8CA3BC; }
.alm-prat-searchbar .alm-pann-field input[type="search"]:focus,
.alm-prat-searchbar .alm-pann-field select:focus {
  outline: 2px solid #185FA5;
  outline-offset: 0;
  border-color: #185FA5;
}
.alm-prat-searchbar__row--filters { flex-wrap: wrap; }
.alm-prat-searchbar .alm-prat-map-section { margin-top: 0; }

.alm-prat-map__pop { display: flex; flex-direction: column; gap: 2px; }
.alm-prat-map__pop-nom { font-weight: 700; color: #042C53; }
.alm-prat-map__pop-etab { color: #185FA5; font-size: 13px; }
.alm-prat-map__pop-ville { color: #5a6572; font-size: 13px; }
.alm-prat-map__pop-nb { margin-top: 4px; font-size: 13px; font-weight: 600; color: #004899; }

@media (max-width: 900px) {
  .alm-prat-searchbar .alm-pann-field { flex-basis: 100%; }
}

.alm-pann-archive { background: #fff; }
.alm-pann-body { background: #F4F4F0; padding: clamp(28px, 4vw, 56px) clamp(16px, 3vw, 40px); }
.alm-pann-body__inner { max-width: 1200px; margin: 0 auto; }

.alm-pann-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.alm-pann-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
  background: #fff;
  border: 1px solid #E4E4DE;
  border-radius: 12px;
  padding: 18px;
  box-sizing: border-box;
  transition: box-shadow .18s ease, transform .18s ease;
}
.alm-pann-card:hover { box-shadow: 0 6px 18px rgba(0, 72, 153, .08); transform: translateY(-2px); }
.alm-pann-card[hidden] { display: none; }

.alm-pann-card__head { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.alm-pann-card__avatar {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #004899, #003670);
}
.alm-pann-card__avatar img { width: 56px; height: 56px; object-fit: cover; display: block; }
.alm-pann-card__initiales {
  color: #fff;
  font-family: var(--almaviva-font-titre, inherit);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .02em;
}
.alm-pann-card__identite { min-width: 0; flex: 1 1 auto; }
.alm-pann-card__nom {
  margin: 0 0 3px;
  font-family: var(--almaviva-font-titre, inherit);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
  color: #004899;
  overflow-wrap: anywhere;
}
.alm-pann-card__spec {
  margin: 0;
  font-size: 13px;
  line-height: 1.35;
  color: #6B6B66;
  overflow-wrap: anywhere;
}

.alm-pann-card__meta { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 7px; }
.alm-pann-card__ligne { display: flex; align-items: flex-start; gap: 8px; min-width: 0; font-size: 13.5px; color: #4A4A45; }
.alm-pann-card__ico { flex: 0 0 15px; color: #8CA3BC; line-height: 0; margin-top: 2px; }
.alm-pann-card__etab { font-weight: 600; color: #042C53; overflow-wrap: anywhere; min-width: 0; }
.alm-pann-card__ville { overflow-wrap: anywhere; min-width: 0; }

.alm-pann-card__rdv {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid #004899;
  border-radius: 11px;
  background: #fff;
  color: #004899;
  font-family: var(--almaviva-font-titre, inherit);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  text-align: center;
  transition: background-color .18s ease, color .18s ease;
}
.alm-pann-body__inner .alm-pann-card__rdv:hover,
.alm-pann-body__inner .alm-pann-card__rdv:focus-visible,
.alm-pann-body__inner .alm-pann-card__rdv:active { background: #004899; color: #fff; }
.alm-pann-card__rdv:focus-visible { outline: 3px solid var(--cta-bg); outline-offset: 2px; }
.alm-pann-card__fleche { line-height: 0; }

.alm-pann-empty {
  background: #fff;
  border: 1px solid #E4E4DE;
  border-radius: 12px;
  padding: 32px 20px;
  text-align: center;
  color: #4A4A45;
}

/* ALM_ANNUAIRE_UNE_RANGEE_v1 — `.alm-pann-row--recherche` et `.alm-pann-row--selects`
   ne sont plus émises : les cinq champs tiennent dans `.alm-pann-champs`, réglée
   plus bas. Les deux règles qui les portaient sont retirées plutôt que laissées
   mortes — une feuille qui nomme un sélecteur absent du balisage ment sur ce
   qu'elle décrit. */

.alm-prat-searchbar .alm-pann-field__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #6B6B66;
}

.alm-pann-compteur { display: flex; align-items: baseline; gap: 6px; }
.alm-pann-compteur__nb { font-family: var(--almaviva-font-titre, inherit); font-size: 20px; font-weight: 700; color: #004899; }
.alm-pann-compteur__mot { font-size: 14px; color: #4A4A45; }

.alm-annuaire-submit {
  background: var(--cta-bg);
  border: 1px solid var(--cta-bg);
  color: #fff;
  min-height: 44px;
  border-radius: 11px;
  padding: 0 20px;
  font-weight: 600;
  cursor: pointer;
}
.alm-annuaire-submit:hover,
.alm-annuaire-submit:focus-visible { background: var(--cta-bg-hover); border-color: var(--cta-bg-hover); }
.alm-annuaire-submit:focus-visible { outline: 3px solid #004899; outline-offset: 2px; }

.alm-annuaire-pagination__etat { font-size: 14px; color: #4A4A45; }

/* ALM_ANNUAIRE_ALIGNEMENT_v1 — les seuils de la grille passent de 640/1024 à
   680/1080, ceux de la rangée de champs. Mesuré à 1 024 px avant correction :
   la grille rendait TROIS colonnes de 308,85 px pendant que les champs
   s'étaient déjà dépilés — deux rythmes sur la même page, à la même largeur.
   Un seul jeu de seuils pour les deux. La dernière règle `.alm-pann-row--selects`
   part avec eux : ce sélecteur n'est plus émis. */
@media (max-width: 679px) {
  .alm-pann-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 680px) and (max-width: 1079px) {
  .alm-pann-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1080px) {
  .alm-pann-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .alm-pann-card, .alm-pann-card__rdv { transition: none; }
  .alm-pann-card:hover { transform: none; }
}

.alm-prat-searchbar .alm-annuaire-submit,
.alm-prat-searchbar .alm-annuaire-submit:hover,
.alm-prat-searchbar .alm-annuaire-submit:focus-visible {
  color: #fff;
  border-color: var(--cta-bg);
}
.alm-prat-searchbar .alm-annuaire-submit:hover,
.alm-prat-searchbar .alm-annuaire-submit:focus-visible {
  background: var(--cta-bg-hover);
  border-color: var(--cta-bg-hover);
}

.alm-pann-carte-bascule { display: none; }
html.alm-js .alm-pann-carte-bascule {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  min-height: 48px;
  margin: 0 0 12px;
  padding: 0 16px;
  border: 1.5px solid #004899;
  border-radius: 11px;
  background: #fff;
  color: #004899;
  font-family: var(--almaviva-font-titre, inherit);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color .18s ease, color .18s ease;
}
html.alm-js .alm-pann-carte-bascule:hover,
html.alm-js .alm-pann-carte-bascule:focus-visible { background: #EAF1FB; }
html.alm-js .alm-pann-carte-bascule:focus-visible { outline: 3px solid var(--cta-bg); outline-offset: 2px; }
html.alm-js .alm-pann-carte-bascule[aria-expanded="true"] {
  background: #004899;
  border-color: #004899;
  color: #fff;
}
html.alm-js .alm-pann-carte-bascule[aria-expanded="true"]:hover,
html.alm-js .alm-pann-carte-bascule[aria-expanded="true"]:focus-visible { background: #003674; border-color: #003674; }
.alm-pann-carte-bascule__ico,
.alm-pann-carte-bascule__chevron { line-height: 0; flex: 0 0 auto; }
.alm-pann-carte-bascule__texte { flex: 1 1 auto; text-align: left; }
.alm-pann-carte-bascule__chevron { transition: transform .2s ease; }
html.alm-js .alm-pann-carte-bascule[aria-expanded="true"] .alm-pann-carte-bascule__chevron { transform: rotate(180deg); }

html.alm-js .alm-prat-map-section[data-replie="1"] {
  visibility: hidden;
  max-height: 0;
  margin: 0;
  overflow: hidden;
  transition: max-height .24s ease, visibility .24s ease, margin .24s ease;
}
html.alm-js .alm-prat-map-section {
  transition: max-height .24s ease, visibility .24s ease, margin .24s ease;
}

.alm-pann-body__inner .alm-pann-carte-geo {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 500;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #CBD9E8;
  border-radius: 10px;
  background: #fff;
  color: #004899;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 40, 90, .12);
}
.alm-pann-body__inner .alm-pann-carte-geo:hover,
.alm-pann-body__inner .alm-pann-carte-geo:focus-visible,
.alm-pann-body__inner .alm-pann-carte-geo:active { background: #EAF1FB; color: #004899; border-color: #CBD9E8; }
.alm-pann-carte-geo:focus-visible { outline: 3px solid var(--cta-bg); outline-offset: 2px; }

.alm-pann-body__inner .alm-prat-map-section { position: relative; }

.alm-pann-card {
  box-shadow: 0 1px 2px rgba(0, 40, 90, .05), 0 10px 24px rgba(0, 40, 90, .05);
}
.alm-pann-card:hover,
.alm-pann-card:focus-within {
  box-shadow: 0 1px 2px rgba(0, 40, 90, .07), 0 14px 32px rgba(0, 40, 90, .10);
}

:root {
  --alm-annuaire-header-h: 80px;
  --alm-annuaire-carte-repliable: 1;
}

.alm-pann-body__inner .alm-prat-map-section { margin-bottom: clamp(20px, 3vw, 40px); }
.alm-prat-searchbar { margin-bottom: clamp(16px, 2.2vw, 26px); }
.alm-annuaire-pagination { margin-top: clamp(28px, 3.5vw, 44px); }

@media (min-width: 1024px) {
  :root { --alm-annuaire-carte-repliable: 0; }
  html.alm-js .alm-pann-carte-bascule { display: none; }
  .alm-pann-body__inner .alm-prat-map-section {
    position: sticky;
    top: var(--alm-annuaire-header-h);
    z-index: 2;
    background: #F4F4F0;
  }
  .alm-pann-body__inner .alm-prat-map-section .alm-prat-map {
    height: 260px;   /* ALM_ANNUAIRE_ALIGNEMENT_v1 — 260 partout, cf. bloc final */
    min-height: 0;
    position: relative;
    top: auto;
  }
  html.alm-js .alm-prat-map-section[data-replie="1"] { visibility: visible; max-height: none; overflow: visible; }
}

@media (max-width: 640px) {
  .alm-pann-field input[type="search"],
  .alm-pann-field select { min-height: 46px; height: 46px; }
  .alm-annuaire-pagination__liste { gap: 6px; }
  .alm-annuaire-pagination__lien { min-width: 44px; padding: 0 6px; }
  .alm-annuaire-pagination__intermediaire { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html.alm-js .alm-prat-map-section,
  html.alm-js .alm-prat-map-section[data-replie="1"],
  .alm-pann-carte-bascule,
  .alm-pann-carte-bascule__chevron { transition: none; }
  .alm-pann-card:hover { transform: none; }
}


/* ====================================================================
   ALM_ANNUAIRE_ALIGNEMENT_v1 — les trois blocs au même bord.

   CE QUI CLOCHAIT, ET POURQUOI ON NE LE VOYAIT PAS DANS CETTE FEUILLE.
   La barre de recherche était plus étroite que la carte et que la grille :
   1 084,80 px contre 1 200 à 1 440, soit 57,59 px de retrait de chaque côté
   (91,20/1 188,80 contre 40/1 240 à 1 280 ; 71,67/952,31 contre 30,72/993,28
   à 1 024 ; 53,75/714,23 contre 23,03/744,97 à 768).

   La cause n'est pas ici mais dans `annuaire-carte.css` :

       .alm-prat-searchbar { max-width: var(--alm-container); margin: … auto …; }

   et `--alm-container` vaut `min(1320px, 100% - 2 * var(--alm-gutter))`. Dans
   `.alm-pann-body__inner`, large de 1 200 px, le second terme l'emporte : la
   barre se retranche une gouttière de chaque côté d'un conteneur qui l'a DÉJÀ
   posée. Une gouttière comptée deux fois — et seulement sur ce bloc, puisque
   `.alm-prat-map-section` porte `max-width: none` et que la grille n'en a pas.

   POURQUOI ON N'ÉDITE PAS `annuaire-carte.css`. Elle est servie aux 16 sites
   d'établissement dont la page annuaire porte le bloc `alm/annuaire`
   (blogs 4, 9, 10, 11, 13, 14, 15, 18, 20, 28, 31 à 35). Chez eux la barre est
   posée à la racine de la page, pas dans un conteneur de 1 200 : sa
   `max-width` y est utile. On la neutralise donc ICI, dans une feuille dont
   l'`enqueue` est gardé par `almaviva_is_portail()` ET par le gabarit
   (inc/praticien/annuaire-reseau.php) : blog 1, cette page, rien d'autre.

   POURQUOI DEUX CLASSES. `annuaire-carte.css` est mise en file pendant le
   rendu du gabarit, donc imprimée dans le pied ; cette feuille l'est dans la
   tête. À spécificité égale, c'est elle qui perdrait. L'ancêtre
   `.alm-pann-body__inner` porte la spécificité à (0,2,0) et rend le résultat
   indépendant de l'ordre d'impression — sans `!important`.
   ==================================================================== */

.alm-pann-body__inner {
  /* Une seule source pour le cadre des trois blocs. Le rayon et la marge
     interne sont énoncés ici et repris partout ailleurs : deux valeurs égales
     par recopie finissent par diverger. */
  --alm-pann-rayon: 12px;
  --alm-pann-pad: clamp(16px, 2.5vw, 22px);
  --alm-pann-filet: var(--alm-gray-200);
}
@supports (border-color: color-mix(in srgb, red 20%, transparent)) {
  .alm-pann-body__inner { --alm-pann-filet: color-mix(in srgb, var(--alm-blue) 20%, transparent); }
}

.alm-pann-body__inner .alm-prat-searchbar {
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}
.alm-pann-body__inner .alm-prat-searchbar__inner {
  padding: var(--alm-pann-pad);
  border-radius: var(--alm-pann-rayon);
  overflow: hidden;              /* la barre de résultats vient bord à bord */
}
.alm-pann-body__inner .alm-prat-map { border-radius: var(--alm-pann-rayon); }
.alm-pann-body__inner .alm-pann-card { border-radius: var(--alm-pann-rayon); }

/* 14 px sous la recherche. La bascule « Voir la carte » vient se loger dans cet
   intervalle sous 1 024 ; au-dessus elle est masquée et l'écart est net. */
.alm-pann-body__inner .alm-prat-searchbar { margin-bottom: 14px; }
.alm-pann-body__inner .alm-prat-map-section { margin-top: 0; }


/* ---- La rangée unique de champs -------------------------------------- */

.alm-pann-champs {
  display: grid;
  /* `minmax(0, Nfr)` et non `Nfr` : une piste `1fr` vaut `minmax(auto, 1fr)`,
     dont le plancher est le `min-content` du contenu. « Hôpital Privé Toulon
     Saint-Jean » dans un <select> pousserait alors sa colonne bien au-delà de
     sa part et déséquilibrerait les quatre autres. */
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 12px;
  /* Les champs s'alignent sur leur base : les libellés n'ont pas tous la même
     hauteur de rendu, et `stretch` étirerait les champs de façon inégale. */
  align-items: end;
  margin-top: 12px;
}
.alm-pann-champs .alm-pann-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.alm-pann-champs .alm-annuaire-submit { align-self: end; white-space: nowrap; }

/* On avait posé ici une variante à QUATRE colonnes, sous `[data-alm-instantane]`,
   en croyant le bouton masqué dès l'arrivée de l'index. Il ne l'est pas : le
   `hidden` que le script posait était sans effet (cf. le commentaire dans
   `portail-annuaire-filtre.js`). Le bouton occupe donc sa cinquième piste dans
   tous les états, et la variante est retirée — mesurée, elle renvoyait le
   bouton à la ligne, seul sous le champ de recherche. */

/* Hauteur de champ 42 px — la rangée à cinq colonnes n'existe qu'au-dessus de
   1 080, et c'est là que la mesure est demandée. Sous ce seuil la mise en page
   se dépile et le doigt reprend la main : on remonte à 46 px pour tenir le
   plancher de 44 px des cibles tactiles. Même remontée sur pointeur grossier,
   quelle que soit la largeur — un écran tactile large existe. */
@media (min-width: 1080px) {
  .alm-pann-body__inner .alm-prat-searchbar .alm-pann-field input[type="search"],
  .alm-pann-body__inner .alm-prat-searchbar .alm-pann-field select,
  .alm-pann-body__inner .alm-prat-searchbar .alm-annuaire-submit {
    height: 42px;
    min-height: 42px;
  }
}
@media (min-width: 1080px) and (pointer: coarse) {
  .alm-pann-body__inner .alm-prat-searchbar .alm-pann-field input[type="search"],
  .alm-pann-body__inner .alm-prat-searchbar .alm-pann-field select,
  .alm-pann-body__inner .alm-prat-searchbar .alm-annuaire-submit {
    height: 46px;
    min-height: 46px;
  }
}
@media (max-width: 1079px) {
  .alm-pann-body__inner .alm-prat-searchbar .alm-pann-field input[type="search"],
  .alm-pann-body__inner .alm-prat-searchbar .alm-pann-field select,
  .alm-pann-body__inner .alm-prat-searchbar .alm-annuaire-submit {
    height: 46px;
    min-height: 46px;
  }
  /* Sous 1 080 : la recherche prend toute la largeur, le bouton aussi. */
  .alm-pann-champs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .alm-pann-champs .alm-pann-field--search { grid-column: 1 / -1; }
  .alm-pann-champs .alm-annuaire-submit { grid-column: 1 / -1; width: 100%; }
}
@media (max-width: 679px) {
  .alm-pann-champs { grid-template-columns: minmax(0, 1fr); }
}


/* ---- La barre de résultats ------------------------------------------- */

.alm-pann-resultats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  /* Elle vient toucher les bords du cadre : les marges internes de `__inner`
     sont annulées puis rendues en marge propre. */
  margin: 16px calc(-1 * var(--alm-pann-pad)) calc(-1 * var(--alm-pann-pad));
  padding: 12px var(--alm-pann-pad);
  border-top: 1px solid var(--alm-pann-filet);
  background: var(--alm-bg-soft);
}
.alm-pann-resultats .alm-pann-compteur { margin: 0; }
.alm-pann-resultats .alm-pann-effacer { margin-left: auto; }

.alm-pann-puces {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.alm-pann-puces:empty { display: none; }

.alm-pann-puce {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  /* La croix fait 44x44 pour tenir la cible tactile ; la puce s'aligne dessus
     plutôt que d'étendre une zone de clic invisible sous elle — une zone qu'on
     ne pourrait mesurer qu'en se mesurant soi-même. */
  min-height: 44px;
  padding-left: 14px;
  border: 1px solid var(--alm-pann-filet);
  border-radius: 999px;
  background: #fff;
  font-size: 13.5px;
  color: var(--alm-gray-700);
}
.alm-pann-puce__txt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 22ch; }

.alm-pann-puce__x {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  color: var(--alm-blue);
  text-decoration: none;
}
.alm-pann-body__inner .alm-pann-puce__x:hover,
.alm-pann-body__inner .alm-pann-puce__x:active {
  background: var(--alm-blue);
  color: var(--on-blue);   /* jeton « texte sur fond bleu », pas un blanc de plus */
}
.alm-pann-puce__x:focus-visible { outline: 3px solid var(--cta-bg); outline-offset: 2px; }

.alm-pann-effacer {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 4px;
  color: var(--alm-blue);
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.alm-pann-body__inner .alm-pann-effacer:hover { color: var(--alm-blue-2); }
.alm-pann-effacer:focus-visible { outline: 3px solid var(--cta-bg); outline-offset: 2px; }
.alm-pann-effacer[hidden] { display: none; }

@media (max-width: 679px) {
  /* « Effacer » sur sa propre ligne : poussé à droite d'une ligne déjà pleine
     de puces, il se retrouverait seul contre le bord, loin de ce qu'il efface. */
  .alm-pann-resultats .alm-pann-effacer { margin-left: 0; }
}


/* ---- La carte -------------------------------------------------------- */

/* 260 px partout, 210 sous 680. La feuille partagée la pose à 300 (250 sous
   767) : ces deux valeurs sont celles des sites d'établissement, où la carte
   est le premier objet de la page. Ici elle vient après la recherche. */
@media (max-width: 1023px) {
  .alm-pann-body__inner .alm-prat-map-section .alm-prat-map { height: 260px; min-height: 0; }
}
@media (max-width: 679px) {
  .alm-pann-body__inner .alm-prat-map-section .alm-prat-map { height: 210px; min-height: 0; }
}


/* ---- La grille ------------------------------------------------------- */

.alm-pann-grid {
  /* Sans `1fr` sur les rangées, une spécialité qui tient sur trois lignes étire
     sa fiche et laisse les deux autres de la rangée plus courtes, avec leurs
     boutons à des hauteurs différentes. Défaut déjà rencontré sur Organisation. */
  grid-auto-rows: 1fr;
}
.alm-pann-card { height: 100%; }
/* Le bouton descend en bas de fiche : c'est lui qui doit s'aligner d'une fiche
   à l'autre, pas le bas du texte qui le précède. */
.alm-pann-card__rdv:last-child { margin-top: auto; }


.alm-pann-modale {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.alm-pann-modale[hidden] { display: none; }

.alm-pann-modale__fond {
  position: absolute;
  inset: 0;
  background: rgba(0, 38, 79, .58);
}

.alm-pann-modale__boite {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 560px;
  max-height: calc(100dvh - 48px);
  background: #fff;
  border-radius: var(--alm-pann-rayon, 12px);
  box-shadow: 0 24px 64px rgba(0, 38, 79, .28);
  overflow: hidden;
}
.alm-pann-modale__boite:focus { outline: none; }
.alm-pann-modale__boite:focus-visible { outline: 3px solid var(--cta-bg); outline-offset: 3px; }

.alm-pann-modale__poignee { display: none; }

.alm-pann-modale__fermer {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--alm-gray-700);
  cursor: pointer;
}
.alm-pann-body__inner ~ .alm-pann-modale .alm-pann-modale__fermer:active,
.alm-pann-modale .alm-pann-modale__fermer:active { background: var(--alm-bg-soft); }
.alm-pann-modale__fermer:focus-visible { outline: 3px solid var(--cta-bg); outline-offset: 2px; }

.alm-pann-modale__defile {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 24px 24px 20px;
}

.alm-pann-modale__entete {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding-right: 44px;
  min-width: 0;
}

.alm-pann-modale__portrait {
  flex: 0 0 auto;
  width: 96px;
  height: 96px;
  border-radius: var(--alm-pann-rayon, 12px);
  overflow: hidden;
  display: block;
  line-height: 0;
}
.alm-pann-modale__portrait img,
.alm-pann-modale__silhouette { width: 96px; height: 96px; display: block; }
.alm-pann-modale__portrait img { object-fit: cover; }
.alm-pann-modale__silhouette-fond { fill: var(--alm-gray-200); }
.alm-pann-modale__silhouette-trait { fill: var(--alm-gray-500); }

.alm-pann-modale__identite { min-width: 0; flex: 1 1 auto; }
.alm-pann-modale__nom {
  margin: 0 0 6px;
  font-family: var(--font-title, inherit);
  font-size: 21px;
  line-height: 1.25;
  font-weight: 700;
  color: var(--alm-blue);
  overflow-wrap: anywhere;
}
.alm-pann-modale__spec {
  margin: 0 0 4px;
  font-size: 14.5px;
  line-height: 1.45;
  color: var(--alm-gray-700);
}
.alm-pann-modale__type {
  margin: 0 0 4px;
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--alm-gray-700);
}
.alm-pann-modale__secteur {
  display: inline-block;
  margin: 6px 0 0;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--alm-bg-soft);
  border: 1px solid var(--alm-pann-filet, var(--alm-gray-200));
  font-size: 12.5px;
  font-weight: 700;
  color: var(--alm-blue);
}
.alm-pann-modale__spec[hidden],
.alm-pann-modale__type[hidden],
.alm-pann-modale__secteur[hidden],
.alm-pann-modale__complete[hidden],
.alm-pann-modale__pied[hidden] { display: none; }

.alm-pann-modale__lieu {
  margin: 20px 0 0;
  padding: 16px 0 0;
  list-style: none;
  border-top: 1px solid var(--alm-pann-filet, var(--alm-gray-200));
}
.alm-pann-modale__ligne {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--alm-gray-700);
}
.alm-pann-modale__ico { flex: 0 0 16px; line-height: 0; margin-top: 3px; color: var(--alm-blue); }
.alm-pann-modale__lieu-txt {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.alm-pann-modale .alm-pann-modale__etab {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  min-height: 44px;
  max-width: 100%;
  font-weight: 700;
  color: var(--alm-blue);
  text-decoration: underline;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}
.alm-pann-modale__etab:focus-visible { outline: 3px solid var(--cta-bg); outline-offset: 2px; }
.alm-pann-modale__ville { color: var(--alm-gray-700); }

.alm-pann-modale__complete {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 16px;
  padding: 0 4px;
  color: var(--alm-blue);
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.alm-pann-modale__complete:focus-visible { outline: 3px solid var(--cta-bg); outline-offset: 2px; }

.alm-pann-modale__pied {
  flex: 0 0 auto;
  padding: 16px 24px;
  border-top: 1px solid var(--alm-pann-filet, var(--alm-gray-200));
  background: #fff;
}
.alm-pann-modale .alm-pann-modale__rdv,
.alm-pann-modale a.alm-pann-modale__rdv:link,
.alm-pann-modale a.alm-pann-modale__rdv:visited {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  padding: 0 20px;
  border-radius: 11px;
  background: var(--cta-bg);
  color: var(--cta-text);
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
}
.alm-pann-modale .alm-pann-modale__complete,
.alm-pann-modale .alm-pann-modale__etab { text-decoration: underline; }
.alm-pann-modale .alm-pann-modale__rdv:active { background: var(--cta-bg-hover); color: var(--cta-text); }
.alm-pann-modale__rdv:focus-visible { outline: 3px solid var(--alm-blue); outline-offset: 3px; }

html.alm-pann-modale-ouverte body {
  position: fixed;
  width: 100%;
  overflow: hidden;
}

@media (hover: hover) and (pointer: fine) {
  .alm-pann-modale .alm-pann-modale__fermer:hover { background: var(--alm-bg-soft); }
  .alm-pann-modale .alm-pann-modale__rdv:hover { background: var(--cta-bg-hover); color: var(--cta-text); }
  .alm-pann-modale .alm-pann-modale__etab:hover,
  .alm-pann-modale .alm-pann-modale__complete:hover { color: var(--alm-blue-2); }
}

@media (max-width: 679px) {
  .alm-pann-modale {
    align-items: flex-end;
    padding: 0;
  }
  .alm-pann-modale__boite {
    max-width: none;
    max-height: 90dvh;
    border-radius: 16px 16px 0 0;
  }
  .alm-pann-modale__poignee {
    display: block;
    flex: 0 0 auto;
    width: 44px;
    height: 4px;
    margin: 10px auto 2px;
    border-radius: 999px;
    background: var(--alm-gray-300);
  }
  .alm-pann-modale__fermer { top: 4px; right: 6px; }
  .alm-pann-modale__defile { padding: 12px 20px 16px; }
  .alm-pann-modale__entete { gap: 14px; }
  .alm-pann-modale__portrait,
  .alm-pann-modale__portrait img,
  .alm-pann-modale__silhouette { width: 76px; height: 76px; }
  .alm-pann-modale__nom { font-size: 19px; }
  .alm-pann-modale__pied { padding: 12px 20px calc(12px + env(safe-area-inset-bottom, 0px)); }
}

@media (max-height: 460px) {
  .alm-pann-modale { align-items: flex-end; padding: 0; }
  .alm-pann-modale__boite { max-width: none; max-height: 92dvh; border-radius: 14px 14px 0 0; }
  .alm-pann-modale__defile { padding: 10px 20px 12px; }
  .alm-pann-modale__entete { gap: 12px; }
  .alm-pann-modale__portrait,
  .alm-pann-modale__portrait img,
  .alm-pann-modale__silhouette { width: 56px; height: 56px; }
  .alm-pann-modale__nom { font-size: 17px; margin-bottom: 2px; }
  .alm-pann-modale__lieu { margin-top: 12px; padding-top: 10px; }
  .alm-pann-modale__complete { margin-top: 8px; }
  .alm-pann-modale__pied { padding: 10px 20px calc(10px + env(safe-area-inset-bottom, 0px)); }
  .alm-pann-modale__rdv { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .alm-pann-modale,
  .alm-pann-modale__boite { transition: none; }
}

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

.alm-pann-resultats:not(:has(.alm-pann-puce)):not(:has(.alm-pann-effacer:not([hidden]))) {
  display: none;
}

.alm-pann-barre-v2 .alm-pann-body__inner .alm-prat-searchbar {
  position: relative;
  z-index: 1;
  margin-top: calc(-40px - clamp(28px, 4vw, 56px));
  margin-bottom: clamp(20px, 2.6vw, 32px);
}

.alm-pann-barre-v2 .alm-pann-body__inner .alm-prat-searchbar__inner {
  background: #fff;
  border: 1px solid #E3E9F1;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0, 40, 90, .10), 0 2px 6px rgba(0, 40, 90, .06);
}

.alm-pann-barre-v2 .alm-prat-searchbar__title {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35;
  color: #004899;
}

.alm-pann-barre-v2 .alm-prat-searchbar__pin {
  display: inline-flex;
  flex: 0 0 auto;
  margin-top: 2px;
  line-height: 0;
  color: #004899;
}

.alm-pann-barre-v2 .alm-pann-champs {
  gap: 14px 12px;
  align-items: end;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field {
  position: relative;
  gap: 7px;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #5F6B7D;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field input[type="search"],
.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field select {
  height: 46px;
  min-height: 46px;
  border: 1px solid #D5E0EE;
  border-radius: 10px;
  background-color: #fff;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field--search input[type="search"] {
  padding-left: 42px;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field__loupe {
  position: absolute;
  left: 14px;
  bottom: 0;
  display: flex;
  align-items: center;
  height: 46px;
  line-height: 0;
  color: #66738A;
  pointer-events: none;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field input[type="search"]::placeholder {
  color: #66738A;
  opacity: 1;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field select {
  padding-right: 36px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2366738A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 13px center;
  background-size: 15px 15px;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field input[type="search"]:focus,
.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field select:focus {
  outline: 2px solid #004899;
  outline-offset: 2px;
  border-color: #004899;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-annuaire-submit {
  height: 46px;
  min-height: 46px;
  align-self: end;
  padding: 0 22px;
  border: 1px solid #EE7203;
  border-radius: 10px;
  background-color: #EE7203;
  color: #fff;
  font-weight: 600;
  transition: background-color 150ms ease, border-color 150ms ease;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-annuaire-submit:hover,
.alm-pann-barre-v2 .alm-pann-champs .alm-annuaire-submit:focus-visible {
  background-color: #D96502;
  border-color: #D96502;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-annuaire-submit:focus-visible {
  outline: 2px solid #004899;
  outline-offset: 2px;
}

.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field--search { grid-area: rech; }
.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field:has(#annuaireSpec) { grid-area: spec; }
.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field:has(#annuaireEtab) { grid-area: etab; }
.alm-pann-barre-v2 .alm-pann-champs .alm-pann-field:has(#annuaireVille) { grid-area: ville; }
.alm-pann-barre-v2 .alm-pann-champs .alm-annuaire-submit { grid-area: btn; }

@media (min-width: 1080px) {
  .alm-pann-barre-v2 .alm-pann-champs {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    grid-template-areas:
      "rech  spec  spec"
      "etab  ville btn";
  }
  .alm-pann-barre-v2 .alm-pann-champs .alm-annuaire-submit { width: auto; }
}

@media (min-width: 680px) and (max-width: 1079px) {
  .alm-pann-barre-v2 .alm-pann-champs {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas:
      "rech  rech"
      "spec  etab"
      "ville btn";
  }
  .alm-pann-barre-v2 .alm-pann-champs .alm-annuaire-submit { width: 100%; }
}

@media (max-width: 679px) {
  .alm-pann-barre-v2 .alm-pann-champs {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "rech"
      "spec"
      "etab"
      "ville"
      "btn";
  }
  .alm-pann-barre-v2 .alm-pann-champs .alm-annuaire-submit { width: 100%; }
}

@media (max-width: 782px) {
  .alm-pann-barre-v2 .alm-pann-body__inner .alm-prat-searchbar {
    margin-top: calc(-20px - clamp(28px, 4vw, 56px));
  }
  .alm-pann-barre-v2 .alm-pann-body__inner .alm-prat-searchbar__inner {
    border-radius: 12px;
  }
}
