:root {
  --highlight-color: #9600FF;
}

.paragraph--articles .header h2 {padding-right:120px;}

.gslide-description.description-bottom, .gslide-description.description-bottom * {background-color:transparent;color:white !important;}
.glightbox-clean .gdesc-inner {
    padding: 8px 0px;
}
.glightbox-clean .gdesc-inner .gslide-desc {font-size:14px !important;line-height:120% !important;}

header {
position: sticky;
top: 0;
}
/* logo */

h2.logo {
	border:solid 1px black;
	border-radius:50%;
	height:108px;
	width:108px;
}
h2.logo a {
	display:block;
	padding:24px 0px 0px 10px;
}


body.scrolled h2.logo {
	border:none;
	height:auto;
	width:auto;
}

body.scrolled h2.logo a {
	display:block;
	padding:0px;
}

#block-frontend-main-menu ul li {display:inline-block;}

#block-frontend-search-form-narrow {display:none;}


h2.size42 {font-size:42px;line-height:44px;}


.wysiwyg h2 {font-size:32px;line-height:34px;}
.wysiwyg h2 strong {font-weight:normal;}

.wysiwyg h3 {font-size:26px;line-height:28px;}

.wysiwyg p.standfirst {
	font-size:26px;line-height:32px;
}

.row.equal-cols { display:flex; flex-wrap:wrap; margin-left:-15px; margin-right:-15px; }
.row.equal-cols > [class*="col-"] { display:flex; padding-left:15px; padding-right:15px; }
.equal-cols > div { display:flex; flex-direction:column; height:100%; }

#block-frontend-main-menu a:hover, #block-frontend-main-menu a.is-active, 
li.menu__item--active-trail > a {
	color: var(--highlight-color);
	}

  .view-empty {font-size: 14px;
    line-height: 21px;
    letter-spacing: 1px;
    margin-bottom:42px;}



/* MENU */


/* Conteneur principal */
#block-frontend-main-menu {
  position: relative;
}

#block-frontend-main-menu ul,
#block-frontend-main-menu ul ul {
  margin: 0;
  padding: 0;
}


/* Niveau 1 */
#block-frontend-main-menu > ul {
  display: flex;
  gap: 2rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Liens */
#block-frontend-main-menu a {
  text-decoration: none;
  paaadding: 0.25rem 0; 
  display: block;
  white-space: nowrap;
}

/* Tous les sous-menus (niveau 2 + niveau 3) */
#block-frontend-main-menu ul ul {
  display: none;
  position: absolute;
  top: calc(100% + 2px);
  left: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
  gap: 1rem;
  background-color:white;
}

#block-frontend-main-menu ul ul li a:after {content:" | ";}
#block-frontend-main-menu ul ul li:last-child a:after {content:"";}
/* Niveau 3 : même logique que le 2, on ne change plus left/right */
#block-frontend-main-menu ul ul ul {
  top: calc(100% + 2px); /* petit décalage pour éviter les chevauchements */
  left: 0;
}

/* Affichage du niveau 2 */
#block-frontend-main-menu li:hover > ul,#block-frontend-main-menu li.menu__item--active-trail > ul {
  display: flex;
}

#block-frontend-main-menu > ul > li:hover > ul {z-index:1000;width: 100%;}


#block-frontend-main-menu > ul > li > ul > li:hover::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  height: 40px; /* ou plus selon le saut entre le lien et le menu */
  width: 100vw;
 
}

/* Niveau 1 (menu principal) */
#block-frontend-main-menu > ul {
  position: relative;
  z-index: 1;
}

/* Niveau 2 */
#block-frontend-main-menu ul ul {
  z-index: 10;
}

/* Niveau 3 */
#block-frontend-main-menu ul ul ul {
  z-index: 20;
}




/* --- BURGER BUTTON --- */
.burger {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 1000;
  background: none;
  border: none;
  cursor: pointer;
  display: none; /* sera visible en mobile */
  flex-direction: column;
  gap: 5px;
  padding: 0.5rem;
}

.burger span {
  display: block;
  width: 24px;
  height: 2px;
  background-color: #000;
}

/* --- MENU COLLAPSIBLE --- */
#block-frontend-main-menu > ul {
  display: flex;
  gap: 2rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

/* --- Responsive : Mobile --- */
@media (min-width: 1181px) {
  .submenu-toggle {
    display: none;
  }
}
.submenu-toggle {
  background: none;
  border: none;
  font-size: 1.2rem;
  cursor: pointer;
  margin-left: 0.5rem;
}

@media (max-width:1180px) {
  .burger {
    display: flex;
  }

  #block-frontend-main-menu > ul {
    display: none;
    flex-direction: column;
    padding: 1rem;
    gap: 1rem;
  }

  #block-frontend-main-menu.is-open > ul {
    display: flex;
  }

  /* Sous-menus : tout s’ouvre à la verticale */
  #block-frontend-main-menu ul ul {
     display: none; /* caché par défaut */
    position: static;
    padding-left: 1rem;
    margin-top: 0.5rem;
  }
  #block-frontend-main-menu li.open > ul {
    display: block;
  }
	
	h2.logo {border-style:none;width:auto;height:auto;}
	h2.logo a {padding:0;}
	
	 #block-frontend-main-menu li {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
 #block-frontend-main-menu li > a {
    display: inline; /* ou inline-flex si tu veux plus de contrôle */
  }
  .submenu-toggle {
    margin-left: 1rem;
    flex-shrink: 0;
  }

  #block-frontend-main-menu li > a {
    flex-grow: 1;
  }
	
	
  #block-frontend-main-menu ul ul {
     max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
    position: static;
    flex-direction: column;
    padding-left: 1rem;
    margin-top: 0.5rem;
  }

 #block-frontend-main-menu ul ul li {
    display: block;
  }

  #block-frontend-main-menu li.open > ul {
     max-height: 1000px;
  }
}



/* paragraphs */

.paragraph--articles, .mb60 {margin-bottom:60px;}




/* publications */

.teaser-publication  {
  overflow:hidden;
}


/* Bloc des CTA */

div.header {position:relative;}
div.header div.cta {position:absolute;top:0;right:0;}

div.header div.cta a {color: var(--highlight-color);}
div.header div.cta a:after {content:" >";}

.cta-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  margin: 2rem 0;
}

.cta-link {
  flex: 1 1 200px; /* largeur mini 200px, s'étend selon l'espace */
  max-width: 300px; /* limite sur grands écrans */
  text-align: center;
  padding: 1rem;
  border-top: 3px solid #ccc;
  text-decoration: none;
  font-family: inherit;
  font-size: 1rem;
  color: #333;
  background: white;
  transition: all 0.2s ease;
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.cta-link:hover,
.cta-link:focus {
  border-top-color: var(--highlight-color);
  color: var(--highlight-color);
  box-shadow: 0 2px 10px color-mix(in srgb, var(--highlight-color) 40%, transparent);
}

.cta-link.is-active {
  border-top-color: var(--highlight-color);
  color: var(--highlight-color);
  box-shadow: 0 2px 10px color-mix(in srgb, var(--highlight-color) 60%, transparent);
}

/* fin du Bloc des CTA */


/* debut Breadcrumbs */


#block-frontend-breadcrumbs nav[role="navigation"] ol {
  list-style: none;
  padding: 0;
  margin: 0 0 42px 0;
  display: flex;
  flex-wrap: wrap; /* utile si l’écran est petit */
  gap: 0.5em;

  font-size: 14px;
    line-height: 21px;
    letter-spacing: 1px;
}

#block-frontend-breadcrumbs nav[role="navigation"] li::after {
  content: ">";
  margin: 0 0.5em;
  color: #888;

  
}

#block-frontend-breadcrumbs nav[role="navigation"] li:last-child::after {
  content: "";
}


a:hover {color: var(--highlight-color);}

/* galerie */

.swiper-button-next, .swiper-button-prev {
    position: absolute;
    top: var(--swiper-navigation-top-offset, 50%);
    width: calc(var(--swiper-navigation-size) / 44 * 27);
    height: var(--swiper-navigation-size);
    margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
    z-index: 10;
    cursor: pointer;
    display: flex
;
    align-items: center;
    justify-content: center;
    color: var(--highlight-color);
}

.swiper-button-prev {
	left: var(--swiper-navigation-sides-offset, -40px);
}

.paragraph--galerie-photos .retrait {overflow:visible;}

a.media-lightbox-gallery img {max-height:500px;width:auto;}
.mfp-title.black {color:black;}

/* fin Breadcrumbs */


#block-frontend-primary-local-tasks {
	position:fixed;bottom:10px;right:10px;z-index:1000;
	}
	
#block-frontend-primary-local-tasks ul li {
  display:inline-block;padding:4px;
  border:solid 1px red;
  background-color: white;}

#block-frontend-primary-local-tasks ul li:hover {
  display:inline-block;padding:4px;
  border:solid 1px red;
  background-color: red;}  

#block-frontend-primary-local-tasks ul li a {
color:red;
}  

#block-frontend-primary-local-tasks ul li a:hover {
color:white;
}  

.mb-30 {
		margin-bottom:30px;
}

.image-square-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 100%; /* Ratio 1:1 */
    overflow: hidden;

}

.image-square-wrapper .media {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.image-square-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}