/* Annuaire : grilles, cartes, listes et horaires */

.ms-annuaire-meta [class*="fa-envelope"]{
font-family:"Font Awesome 6 Free", "Font Awesome 5 Free", Arial, Helvetica, sans-serif !important;
  font-size:1rem;
  font-style:normal;
  font-weight:900;
  line-height:1;
  color:#416f78;
}

.ms-annuaire-meta [class*="fa-envelope"]::before{
content:"" !important;
  font-family:"Font Awesome 6 Free", "Font Awesome 5 Free", Arial, Helvetica, sans-serif !important;
  font-style:normal;
  font-weight:900;
  line-height:1;
  color:#416f78;
}

.ms-annuaire-meta [class*="fa-phone"]{
font-family:Arial, Helvetica, sans-serif !important;
  font-size:1rem;
  font-style:normal;
  font-weight:800;
  line-height:1;
  color:#416f78;
}

.ms-annuaire-meta [class*="fa-phone"]::before{
content:"☎︎" !important;
  font-family:Arial, Helvetica, sans-serif !important;
  font-variant-emoji:text;
  font-style:normal;
  font-weight:800;
  line-height:1;
  color:#416f78;
}

.ms-annuaire-card:hover .ms-annuaire-card__thumb img{
transform:scale(1.02);
}

.ms-annuaire-wrap{
display:grid;
  gap:26px;
}

.ms-annuaire-category{
display:grid;
  gap:18px;
}

.ms-annuaire-category__header{
display:flex;
  align-items:center;
  gap:16px;
  margin-top:40px;
  margin-bottom:8px;
}

.ms-annuaire-category__logo{
width:80px;
  max-width:80px;
  flex:0 0 80px;
}

.ms-annuaire-category__logo img{
width:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}

.ms-annuaire-category__header > h3{
margin:0;
  color:var(--ms-heading);
  font-family:var(--ms-font-heading);
  font-size:var(--ms-h3);
  line-height:1.12;
  font-weight:700;
}

.ms-annuaire-grid{
display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:22px;
}

.ms-annuaire-card,
.ms-annuaire-line{
background:#fff;
  border-radius:22px;
  box-shadow:var(--ms-shadow);
  overflow:hidden;
}

.ms-annuaire-card__thumb{
height:160px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:#f7f8fa;
}

.ms-annuaire-card__thumb img,
.ms-annuaire-line__thumb img{
max-width:80px;
  width:auto;
  height:auto;
  object-fit:contain;
}

.ms-annuaire-card__body{
padding:20px 22px 24px;
}

.ms-annuaire-meta{
display:grid;
  gap:8px;
}

.ms-annuaire-meta p{
margin:0;
  font-size:1rem;
}

.ms-annuaire-meta a{
color:var(--ms-heading);
  text-decoration:underline;
  text-underline-offset:.16em;
}

.ms-annuaire-list{
display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:20px;
}

.ms-annuaire-line{
display:grid;
  grid-template-columns:96px 1fr;
  gap:18px;
  padding:18px;
}

.ms-annuaire-line__thumb{
display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:4px;
}

.ms-annuaire-no-category{
margin-top:8px;
}

.ms-annuaire-line{
gap:0;
}

.ms-annuaire-line__thumb{
background:#fff;
  width:96px;
  min-width:96px;
  max-width:96px;
  height:96px;
  min-height:96px;
  max-height:96px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.ms-annuaire-line__thumb img{
width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.ms-annuaire-line__body{
padding:0;
  margin-left:1rem;
}

.ms-annuaire-line__body h3{
font-size:1.02rem;
  line-height:1.2;
  margin-bottom:.35em;
}

.ms-annuaire-meta{
gap:0;
}

.ms-annuaire-grid{
display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  justify-content:start;
  gap:22px;
}

.ms-annuaire-card{
display:grid;
  grid-template-columns:96px minmax(0, 1fr);
  column-gap:16px;
  row-gap:0;
  align-items:start;
  width:100%;
  min-width:0;
  max-width:none;
  padding:14px 18px 14px 14px;
  background:#fff;
  border-radius:30px;
  overflow:hidden;
  box-sizing:border-box;
}

.ms-annuaire-card__thumb{
width:96px;
  min-width:96px;
  max-width:96px;
  height:96px;
  min-height:96px;
  max-height:96px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  align-self:start;
  padding:0;
  margin:0;
  background:#fff;
  overflow:hidden;
  border-radius:18px;
}

.ms-annuaire-card__thumb img{
width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.ms-annuaire-card__body{
align-self:start;
  min-width:0;
  padding:0;
  margin:0;
  font-size:1.08rem;
  line-height:1.45;
}

.ms-annuaire-card__body h3{
font-size:1.08rem;
  line-height:1.2;
  margin:0 0 6px 0;
}

@media (max-width: 991px){
.ms-annuaire-grid{
grid-template-columns:repeat(2, minmax(0, 1fr));
}
}

@media (max-width: 700px){
.ms-annuaire-grid,
.ms-annuaire-list{
grid-template-columns:1fr;
}

.ms-annuaire-card{
width:100%;
    min-width:0;
    max-width:100%;
}
}

@media (max-width: 640px){
.ms-annuaire-line{
grid-template-columns:1fr;
}

.ms-annuaire-line__thumb{
justify-content:flex-start;
}
}

:is(.entry-content, .ms-flex-main, .ms-richtext, .ms-demarche-content, .ms-legal, .ms-credits, .ms-accessibility) a:not(.wp-block-button__link):not(.wp-element-button):not(.ms-flex-cta):not(.ms-page-paginage-nav__link):not(.ms-pdf-item__link):not(.ms-annuaire-card):not(.ms-annuaire-card__thumb):not([class*="menu"]):not([class*="button"]):not(:has(img)){
color:var(--ms-visible-link);
  font-weight:700;
  text-decoration:none;
  background:linear-gradient(to top, var(--ms-visible-link-bg) 42%, transparent 42%);
  border-radius:3px;
  padding:0 .08em;
  transition:background-color .2s ease, color .2s ease, box-shadow .2s ease, outline-color .2s ease;
}

:is(.entry-content, .ms-flex-main, .ms-richtext, .ms-demarche-content, .ms-legal, .ms-credits, .ms-accessibility) a:not(.wp-block-button__link):not(.wp-element-button):not(.ms-flex-cta):not(.ms-page-paginage-nav__link):not(.ms-pdf-item__link):not(.ms-annuaire-card):not(.ms-annuaire-card__thumb):not([class*="menu"]):not([class*="button"]):not(:has(img)):hover{
color:var(--ms-visible-link-dark);
  background:var(--ms-visible-link-bg-hover);
  text-decoration:none;
}

.ms-annuaire-meta a[href^="tel:"]:not(:has(img))::before,
.ms-annuaire-meta a[href^="mailto:"]:not(:has(img))::before{
content:none !important;
  display:none !important;
}

.ms-annuaire-submit{
min-height:44px;
  min-width:44px;
}

.ms-annuaire-card{
position:relative;
}

.ms-annuaire-card:focus-within{
outline:3px solid var(--ms-a11y-focus) !important;
  outline-offset:4px;
  border-radius:14px;
}

.ms-annuaire-card a{
text-decoration:none;
}

#annuaire-sante,
#bus-pmi,
#oxyjeunes{
scroll-margin-top:240px;
}

.ms-annuaire-card--has-hours,
.ms-annuaire-line--has-hours{
position:relative;
}

.ms-annuaire-hours-control{
display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  height:0;
  margin:0;
  overflow:visible;
}

.ms-annuaire-hours-toggle{
position:relative;
  z-index:2;
  flex:0 0 auto;
  width:30px;
  min-width:30px;
  max-width:30px;
  height:30px;
  min-height:30px;
  max-height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  padding:0;
  border:1px solid rgba(65,111,120,.28);
  border-radius:999px;
  background:#fff;
  color:#416F78;
  font:inherit;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  transform:translateY(calc(-100% - 8px));
  transition:color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.ms-annuaire-hours-toggle:hover,
.ms-annuaire-hours-toggle:focus-visible{
color:#2f565e;
  border-color:#416F78;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  transform:translateY(calc(-100% - 8px));
}

.ms-annuaire-hours[hidden]{
display:none;
}
