/* ----------------------------------------------------------------
	Custom CSS

	Add all your Custom Styled CSS here for New Styles or
	Overwriting Default Theme Styles for Better Handling Updates
-----------------------------------------------------------------*/

.youtube_player.responsive-video {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
  }

  .youtube_player.responsive-video iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }
[data-bs-theme="dark"] {
    color-scheme: dark;
    --bs-body-bg: #575858;
  }
  /* Modification du comportement d'affichage du corps de la page */
  .update-content ul {
    margin-left: 30px;
  }

  /* Police adaptée à la dyslexie */
  .body-dyslexia {
    font-family: "Open-Dyslexic", "Inter", sans-serif;
    --cnvs-primary-font: "Open-Dyslexic", "Inter", sans-serif !important;
    --cnvs-secondary-font: "Open-Dyslexic", "Inter", sans-serif !important;
    --bs-font-sans-serif: "Open-Dyslexic", sans-serif !important;
    --bs-font-monospace: "Open-Dyslexic", monospace !important;
    --cnvs-primary-menu-submenu-font: "Open-Dyslexic", "Inter", sans-serif !important;
  }

  .dark .custom-border-shadow {
    --cnvs-box-shadow-sm: 0 0.125rem 0.25rem rgb(255 255 255 / 8%);
    --cnvs-box-shadow: 0 0.5rem 1rem rgb(255 255 255 / 15%);
  }

  .dark .module.shadow {
    box-shadow: 0 2px 20px 0 rgb(255 255 255 / 10%) !important;
  }

  .dark .menu-item:hover .menu-link,
  .dark .sub-menu:hover .menu-link {
    color: white;
  }

  a:focus-visible {
    border: 0.1rem dashed #1f1c00;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  }

  .allmargin-xs {
    margin: 1rem !important;
  }

  .leftmargin-xs {
    margin-left: 1rem !important;
  }

  .rightmargin-xs {
    margin-right: 1rem !important;
  }

  .topmargin-xs {
    margin-top: 1rem !important;
  }

  .bottommargin-xs {
    margin-bottom: 1rem !important;
  }

  .dark .quickLink:hover {
    color: #ccc;
    filter: none;
    transform: scale(1.35);
    background-color: rgb(238, 185, 62);
    border-radius: 50%;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    cursor: pointer;
    width: 100px;
    height: 100px;
  }

  .footer-logo {
    display: block;
    margin-bottom: 30px;
    max-width: 250px;
  }

  .bgiconAccueil {
    display: block;
    position: absolute;
    bottom: -44px;
    right: 23px;
    font-size: 210px;
    color: rgba(0, 0, 0, 0.1);
  }

  /* Correction de la position des listes à puces dans la section blog */
  .entry-content ul {
    margin-left: 30px;
  }

  .map {
    margin-bottom: 0px !important;
  }

  .primary-menu .menu-item:focus {
    outline: 1px solid #205089 !important;
    background-color: #020101;
    margin-left: 7px;
  }

  .entry-content a:not(.button):not(.relatifContent) {
    display: inline-block;
    font-style: italic;
    border-bottom: 1px solid #205089;
  }

  .entry-content a:not(.button):not(.relatifContent):hover {
    color: #e2001a;
    border-bottom-color: #e2001a;
    text-decoration: none !important;
    transition: all 0.3s ease-in-out;
  }

  .dark .button:hover {
    border: solid 2px #fff;
  }

  /* Ajout des différentes style pour la partie : Contact du Template Tinymce */
  .highlightEvent {
    display: flex;
    flex-direction: column;
    margin-top: 3rem;
  }

  .module.shadow {
    border-radius: 17px;
    background-color: var(--white);
    padding: 1.5rem 1.5rem;
    box-shadow: 0 2px 20px 0 rgb(0 0 0 / 10%) !important;
  }

  .module {
    width: 100%;
    min-width: 50%;
    max-width: 100%;
    border: 0;
    margin-top: 0;
    margin-bottom: 2rem;
    overflow: hidden;
  }

  .iconTest {
    fill: #fff;
    /* Couleur initiale de l'icône */
    transition: fill 0.3s;
    /* Animation de transition de couleur */
  }

  .iconTest:hover {
    fill: #eeb93e;
    /* Couleur au survol de la souris */
  }

  .wprock-img-zoom-hover .wprock-img-zoom {
    overflow: hidden;
    position: relative;
  }

  .wprock-img-zoom-hover .wprock-img-zoom img {
    max-width: 100%;
    -moz-transition: all 0.8s;
    -webkit-transition: all 0.8s;
    transition: all 0.8s;
  }

  .wprock-img-zoom-hover .wprock-img-zoom * {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }

  .wprock-img-zoom-hover:hover .wprock-img-zoom img {
    -moz-transform: scale(1.2);
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
  }

  .dp-none {
    display: none !important;
  }

  .responsive-video {
    position: relative;
    padding-bottom: 56.25%;
    /* ratio d'aspect 16:9 pour une vidéo YouTube */
    height: 0;
    overflow: hidden;
  }

  .responsive-video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }

  /* Ajustements du template lien TinyMCE pour le mobile */
  .promo-tinymce-link h3 {
    line-height: 1.4;
  }

  .promo-tinymce-link .text-break {
    word-break: break-word;
  }

  @media (max-width: 575.98px) {
    .promo-tinymce-link {
      padding: 1.5rem !important;
    }

    .promo-tinymce-link h3 {
      font-size: 1.35rem;
    }

    .promo-tinymce-link .button {
      display: block;
      width: 100%;
      text-align: center;
    }
  }

  .button i {
    margin-right: 15px !important;
  }

  .button-mini i {
    margin-right: 9px !important;
  }

  .fw-extrabold {
    font-weight: 1000 !important;
    font-size: 1em;
  }

  .dark a {
    color: white;
  }

  .dark .entry-content a:not(.button) {
    border-bottom: 1px solid #fff;
  }

  .dark .iconlist > li i:first-child,
  .iconlist > li img:first-child {
    color: white;
  }

  .quickaccess {
    background-color: #4b751e;
    padding: 1rem;
    margin-right: -0px;
    margin-left: -0px;
  }

  .quickaccess a {
    color: #fff;
    transition: color 0.3s ease;
  }

  .quickaccess .clickable-composite:hover a {
    color: #fff;
    text-decoration: underline !important;
    text-decoration-color: #fff;
    text-underline-offset: 3px !important;
  }

  .dark .quickaccess .clickable-composite:hover a {
    color: #fff;
    text-decoration: underline !important;
    text-decoration-color: #fff;
    text-underline-offset: 3px !important;
  }

  .dark .quickaccess {
    background-color: #36393d;
  }

  .dark .button.button-border {
    --cnvs-btn-border-color: #ffffff;
    border: var(--cnvs-btn-border-width) solid var(--cnvs-btn-border-color);
    background: none;
    color: var(--cnvs-btn-border-color);
  }

  .dark #oc-clients-full {
    background-color: #dddcdc;
  }

  /* ---------------------------------------------------------------- Communiqués de presse -----------------------------------------------------------------*/
  .color-2,
  .h-color-2:hover {
    color: var(--cnvs-secondary-color) !important;
  }

  .color-3,
  .h-color-3:hover {
    color: #6c7885 !important;
  }

  .bg-color-2,
  .h-bg-color-2:hover {
    background-color: var(--cnvs-secondary-color) !important;
  }

  .iconlist > li {
    line-height: 24px;
  }

  .iconlist > li [class^="icon-"]:first-child,
  .iconlist > li [class*=" icon-"]:first-child {
    width: 24px;
    height: 24px;
    text-align: center;
    border-radius: 50%;
  }

  .dotted-bg:before {
    content: "";
    position: absolute;
    display: block;
    top: 50%;
    left: 50%;
    width: 110%;
    height: 100%;
    background-size: 12px 12px;
    background-position: center;
    transform: translate(-50%, -50%);
    background-image: radial-gradient(
      rgba(var(--cnvs-themecolor-rgb), 0.3) 14%,
      transparent 14%
    );
    -webkit-mask-image: radial-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0) 75%);
    mask-image: radial-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0) 75%);
    z-index: 0;
  }

  .services-grid .feature-box {
    padding: 2rem;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    border-radius: 0.5rem;
    border: 1px solid var(--cnvs-secondary-color);
  }

  .services-grid .feature-box:hover {
    background-size: cover;
  }

  .hover-button {
    display: block;
    margin-top: 20px;
    font-weight: 600;
  }

  .dark .hover-button {
    color: #fff;
  }

  .dark .services-grid .feature-box {
    background-color: #343a40;
  }

  .services-grid .feature-box {
    background-color: #e0e0e0;
  }

  .fbox-icon i {
    background-color: #343a40;
  }

  .dark .fbox-icon i {
    background-color: rgba(0, 0, 0, 0.1);
    color: #fff;
  }

  .services-grid .feature-box,
  .services-grid .feature-box .fbox-icon,
  .services-grid .feature-box .fbox-content,
  .hover-button {
    transition: all 0.4s ease, border-color 0s ease;
  }

  .heading-block h3 {
    font-size: 2.1rem;
    line-height: 1.3 !important;
  }

  .form-widget label {
    text-transform: none;
    letter-spacing: 0;
    font-size: 1rem;
    font-weight: 500;
    margin-bottom: 5px;
  }

  .dark .presse {
    color: #fff !important;
  }

  .presse {
    color: #000 !important;
  }

  /* Changement de couleur lors du survol */
  .feature-box:hover .presse {
    color: white !important;
  }

  @media (min-width: 992px) {
    .services-grid .feature-box {
      padding: 3rem;
      background-size: 0;
      border: 1px solid rgba(0, 0, 0, 0.1);
    }

    .dark .services-grid .feature-box {
      border: 1px solid rgba(255, 255, 255, 0.1);
    }

    .services-grid .feature-box:hover {
      transform: translateY(-6px);
      border-color: var(--cnvs-themecolor);
    }

    .services-grid .feature-box:not(:hover) .hover-button {
      opacity: 0;
      transform: translateY(-5px);
    }

    .services-grid .feature-box .fbox-icon,
    .services-grid .feature-box .fbox-content {
      transform: translateY(20px);
    }

    .services-grid .feature-box:hover .fbox-icon,
    .services-grid .feature-box:hover .fbox-content {
      transform: translateY(0px);
    }

    .dark .services-grid .feature-box:hover .fbox-icon i {
      background-color: rgba(92, 112, 131, 0.6);
    }

    .services-grid .feature-box:hover .fbox-icon i {
      background-color: rgba(52, 58, 64, 0.6);
    }

    .heading-block h3 {
      font-size: 2.5rem;
      line-height: 1.3 !important;
    }

    body .dark .heading-block h3 {
      color: #000 !important;
    }

    .hero-title.display-3 {
      font-size: 4.25rem;
      letter-spacing: -3px;
    }
  }

  @media (max-width: 991.98px) {
    .presse {
      color: #fff !important;
    }

    .dark .fbox-icon i {
      background-color: #343a40;
    }
  }

  /* CSS pour masquer le contenu du titre destiné à l'affichage visuel */
  h3 .ellipsis {
    visibility: visible;
    /* rend les points de suspension visibles seulement si 'ellipsis' n'est pas vide */
  }

  /* Classe pour masquer le texte hors de l'écran mais le rendre lisible par les lecteurs d'écran */
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
  }

  .clickable-composite {
    cursor: pointer;
  }

  #footer {
    --cnvs-copyrights-link-color: var(--cnvs-contrast-900);
  }

  /* ----------------------------------------------------------------
      accessibilité : Gestion des différents focus
  -----------------------------------------------------------------*/
  .using-keyboard a:focus {
    outline: 3px solid blue !important;
  }

  .using-keyboard button:focus {
    outline: 3px solid green !important;
  }

  .using-keyboard div[tabindex]:focus {
    outline: 3px solid yellow !important;
  }

  .using-keyboard .entry a:focus {
    outline: 3px solid blue;
    display: block;
  }

  .using-keyboard #gotoTop:focus {
    outline: 3px solid blue;
    box-shadow: 0 0 5px blue;
  }

  .using-keyboard .menu-link:focus {
    outline: 3px solid #007bff;
  }

  .using-keyboard .leaflet-marker-icon:focus {
    outline: 3px solid orange !important;
    box-shadow: 0 0 5px orange;
  }

  .using-keyboard .leaflet-marker-icon:focus-visible {
    outline: 3px solid orange !important;
    box-shadow: 0 0 5px orange;
  }

  .widget > h2,
  .widget > .h2 {
    margin-bottom: var(--cnvs-widget-title-margin);
    font-size: var(--cnvs-widget-title-font-size);
    font-weight: var(--cnvs-widget-title-font-weight);
    letter-spacing: var(--cnvs-widget-title-letter-spacing);
    text-transform: var(--cnvs-widget-title-text-transform);
  }

  .entry-title h3,
  .entry-title .h3 {
    --cnvs-post-title-font-size: 0.875rem;
  }

  /* Classe CSS pour cacher les éléments visuellement mais les rendre accessibles aux lecteurs d'écran */
  .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
  }

  /* Retailler les images de la page voir le visuel de l'annuaire */
  .image-container-annuaire-view {
    height: 193px;
    overflow: hidden;
    position: relative;
  }

  .image-container-annuaire-view img {
    display: block;
    min-height: 193px;
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .btn-blue {
    --bs-btn-color: #fff;
    --bs-btn-bg: #1265a8;
    --bs-btn-border-color: #1265a8;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-gray-900);
    --bs-btn-hover-border-color: #565e64;
    --bs-btn-focus-shadow-rgb: 130, 138, 145;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--bs-gray-900);
    --bs-btn-active-border-color: var(--bs-gray-900);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #1265a8;
    --bs-btn-disabled-border-color: #1265a8;
  }

  .btn-outline-blue {
    --bs-btn-color: #1265a8;
    --bs-btn-border-color: #1265a8;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #1265a8;
    --bs-btn-hover-border-color: #1265a8;
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #1265a8;
    --bs-btn-active-border-color: #1265a8;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #1265a8;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #1265a8;
    --bs-gradient: none;
  }

  .dark .btn-outline-blue {
    --bs-btn-color: #fff;
  }

  .dark .button.button-circle {
    border: solid 3px white;
  }

  .theme {
    width: 9rem;
    height: 3.5rem;
    border: 2px solid #a8a699;
    border-radius: 4.5rem;
    padding: 3px;
    display: flex;
    box-sizing: border-box;
    justify-content: space-between;
  }

  .theme-btn {
    font-size: 1.6rem;
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 0;
  }

  .theme-clair {
    color: #000;
    background-color: #fff;
  }

  .theme-sombre {
    color: #fff;
    background-color: #000;
  }

  .text-acc {
    width: auto;
    height: 6rem;
    border: 1px solid #a8a699;
    background-color: #fff;
    border-radius: 1rem;
    padding: 0 1.2rem;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .text-acc-btn {
    font-size: 1.6rem;
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: solid 1px #000;
    background-color: #fff;
    color: #000;
  }

  .text-acc-btn:hover {
    background-color: #000;
    color: #fff;
  }

  button[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
  }

  .modal1 .block .button {
    white-space: normal;
    /* Permet au texte de s'adapter à la largeur disponible */
    word-wrap: break-word;
    /* Si le texte est trop long, il sera coupé et placé à la ligne suivante */
    width: 100%;
    /* Assurez-vous que le bouton utilise toute la largeur du modal */
    text-align: center;
    /* Centrer le texte à l'intérieur du bouton */
    box-sizing: border-box;
    /* Assure que le padding et la bordure n'augmentent pas la largeur totale du bouton */
  }

  .zoom-value,
  .spacing-value {
    font-size: 16px;
    font-weight: bold;
    margin-left: 10px;
  }

  .dark .entry-title h2 a:hover,
  .dark .entry-title h3 a:hover,
  .dark .entry-title h4 a:hover {
    color: #e2001a;
    border-bottom-color: #e2001a;
    text-decoration: none !important;
    transition: all 0.3s ease-in-out;
  }

  .dark .menu-item > .menu-link span,
  .menu-item:hover > .menu-link span {
    color: #fff !important;
  }

  .dark .sub-menu-container .menu-item .menu-link:hover {
    color: #fff !important;
    /* Forcer l'application avec !important */
    border: solid 1px #fff !important;
    /* Forcer également la bordure */
  }

  .entry-meta li {
    color: var(--cnvs-contrast-700) !important;
  }

  .dark#footer .footer-widgets-wrap a,
  .dark #footer .footer-widgets-wrap a {
    color: rgba(255, 255, 255, 1);
  }

  .dark .text-copyright {
    color: rgba(255, 255, 255, 1);
  }

  .menu-header-link {
    text-transform: uppercase;
    font-weight: 700 !important;
    font: var(--cnvs-primary-font);
    font-size: calc(var(--cnvs-primary-menu-submenu-font-size) * 1.1);
    letter-spacing: 1px;
    color: var(--cnvs-primary-menu-submenu-color);
    padding: 0 !important;
    line-height: 1.3 !important;
  }

  .entry-title a.hover {
    color: var(--cnvs-themecolor);
    border-bottom: 1px solid #205089;
  }

  .dark .entry-title a.hover {
    color: var(--cnvs-contrast-700) !important;
    border-bottom: 1px solid #fff;
  }

  .card-title a.hover {
    color: var(--cnvs-themecolor);
    border-bottom: 1px solid #205089;
  }

  .dark .card-title a.hover {
    color: var(--cnvs-contrast-700) !important;
    border-bottom: 1px solid #fff;
  }

  .img-search {
    width: 100%;
    /* Occupe toute la largeur disponible */
    height: 250px !important;
    /* Fixe une hauteur identique pour toutes les images */
    object-fit: cover;
    /* Adapte l'image tout en remplissant l'espace */
    border-radius: 8px;
    /* Conserve les coins arrondis */
  }

  .bg-light2 {
    background-color: #f8f9fa;
  }

  .dark .bg-light2 {
    background-color: #4a4b4c;
  }

  .image-index-container {
    position: relative;
    width: 100%;
    overflow: hidden;
    background-color: #fff;
  }

  .image-index-container::before {
    content: "";
    display: block;
    padding-top: 56.25%;
    /* 16:9 ratio (9/16 = 0.5625) */
  }

  .image-index-container img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    /* Ou cover */
  }

  .sortir {
    border: 1px solid rgba(var(--bs-secondary-rgb), 0.6);
    height: 600px !important;
    /* Valeur par défaut */
  }

  /* Pour les smartphones (max-width: 767px) */
  @media (max-width: 767px) {
    .sortir {
      height: 440px !important;
    }
  }

  /* Pour les tablettes (entre 768px et 991px) */
  @media (min-width: 768px) and (max-width: 991px) {
    .sortir {
      height: 440px !important;
    }
  }

  /* Pour les grands écrans (à partir de 992px) */
  @media (min-width: 992px) {
    .sortir {
      height: 440px !important;
    }
  }

  /* Optionnel pour les très grands écrans (à partir de 1200px) */
  @media (min-width: 1200px) {
    .sortir {
      /* Vous pouvez ajuster ici si besoin, par exemple conserver 50vh ou une autre valeur */
      height: 500px !important;
    }
  }

  /* Conteneur pour la carte OpenStreetMap */
  .openMap {
    width: 100%;
    height: 500px;
    /* Ajustez la hauteur selon vos besoins */
    position: relative;
    z-index: 0;
    border: 1px solid #ccc;
    /* Optionnel : ajouter une bordure */
    background: #fff;
  }

  /* Styles spécifiques à Leaflet */
  .leaflet-container {
    background: #fff;
    color: #333;
    font-family: Arial, sans-serif;
  }

  /* Style pour les popups de Leaflet */
  .leaflet-popup-content-wrapper {
    background: #fff;
    border-radius: 5px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  }

  .leaflet-popup-content {
    margin: 8px;
    line-height: 1.4;
  }

  .leaflet-popup-tip {
    background: #fff;
  }

  /* Contrôles de zoom et autres éléments Leaflet (optionnel) */
  .leaflet-control-zoom,
  .leaflet-control-attribution {
    font-size: 14px;
    font-family: Arial, sans-serif;
  }

  .no-border {
    border-bottom: none !important;
  }

  .photo-credit {
    position: absolute;
    left: 17px;
    /* Aligné à gauche */
    top: 100%;
    transform: translateY(-50%) rotate(-90deg);
    transform-origin: left center;
    /* Ajuste le pivot pour une meilleure rotation */
    background: rgba(0, 0, 0, 0.3);
    /* Fond semi-transparent */
    color: white;
    padding: 5px 10px;
    font-size: 12px;
    font-family: Arial, sans-serif;
    white-space: nowrap;
    border-radius: 3px;
  }

  .event {
    background-color: #f3f3f3;
  }

  .dark .event {
    background-color: #43474a;
  }

  .border-0 {
    border: 0 !important;
  }

  .team-content span {
    display: block;
    color: var(--cnvs-team-title-designation-font-color);
    font-weight: var(--cnvs-team-title-designation-font-weight);
    font-family: var(--cnvs-team-title-designation-font-family);
    font-style: var(--cnvs-team-title-designation-font-style);
    font-size: var(--cnvs-team-title-designation-font-size);
    margin-top: 5px;
  }

  .fs-09 {
    font-size: 0.9524rem !important;
  }

  .team-name {
    background-color: var(--cnvs-themecolor);
  }

  .dark .team-name {
    background-color: var(--cnvs-header-sticky-bg);
  }

  .bg-evenement {
    background-color: var(--cnvs-contrast-0);
  }

  .dark .bg-evenement {
    background-color: var(--cnvs-contrast-100);
  }

  .fc-button {
    background-color: #1968df !important;
    border-color: #1968df !important;
  }

  .dark .title-bottom-border h1,
  .dark .title-bottom-border .h1,
  .dark .title-bottom-border h2,
  .dark .title-bottom-border .h2,
  .dark .title-bottom-border h3,
  .dark .title-bottom-border .h3,
  .dark .title-bottom-border h4,
  .dark .title-bottom-border .h4,
  .dark .title-bottom-border h5,
  .dark .title-bottom-border .h5,
  .dark .title-bottom-border h6,
  .dark .title-bottom-border .h6 {
    border-bottom: calc(var(--cnvs-fancy-title-border-size) * 2) solid #efefef;
  }

  #page-menu.sticky-page-menu:not(.dots-menu) #page-menu-wrap {
    top: var(--cnvs-page-submenu-sticky-offset);
  }

  .permanentLink {
    background-color: #ebebeb;
  }

  .dark .permanentLink {
    background-color: #7e7e7e;
  }

  .clickable-composite:hover .bottomAccess a {
    color: var(--cnvs-link-color);
    text-decoration: underline !important;
    text-decoration-color: var(--cnvs-link-color);
    text-underline-offset: 3px !important;
  }

  .dark .clickable-composite:hover .bottomAccess a {
    color: #fff;
    text-decoration: underline !important;
    text-decoration-color: #fff;
    text-underline-offset: 3px !important;
  }

  .button-green-cah {
    --cnvs-btn-color: #59ba41;
    color: #000 !important;
  }

  .button-green-cah:hover {
    color: #fff !important;
  }

  /* Font-size responsive utils */
  @media (max-width: 575.98px) {
    .fs-sm-6 {
      font-size: 0.875rem !important;
    }

    /* 14px */
    .fs-sm-5 {
      font-size: 1rem !important;
    }

    /* 16px */
    .fs-sm-4 {
      font-size: 1.25rem !important;
    }

    /* 20px */
  }

  @media (min-width: 576px) and (max-width: 767.98px) {
    .fs-md-6 {
      font-size: 0.875rem !important;
    }

    .fs-md-5 {
      font-size: 1rem !important;
    }

    .fs-md-4 {
      font-size: 1.25rem !important;
    }
  }

  @media (min-width: 768px) and (max-width: 991.98px) {
    .fs-lg-6 {
      font-size: 0.875rem !important;
    }

    .fs-lg-5 {
      font-size: 1rem !important;
    }

    .fs-lg-4 {
      font-size: 1.25rem !important;
    }
  }

  @media (min-width: 992px) {
    .fs-xl-6 {
      font-size: 0.875rem !important;
    }

    .fs-xl-5 {
      font-size: 1rem !important;
    }

    .fs-xl-4 {
      font-size: 1.25rem !important;
    }
  }

  /* Ancien code BTN : quickAccess */
  /* .btn-quickacces {
      top: 15%;
      right: 25px;
      transform: translateY(-50%) rotate(-90deg);
      transform-origin: right center;
      white-space: nowrap;
      z-index: 999;
      background-color: #005694;
      color: #fff;
  }

  .btn-quickacces:hover {
      background-color: #000;
      color: #fff;
  }

  .dark .btn-quickacces {
      background-color: var(--cnvs-contrast-0) !important;
      color: #fff;
  }

  .border-bottom-blue {
      border-bottom: 2px solid var(--cnvs-themecolor);
  }

  .button-border.button-white,
  .button-border.button-light.button-white {
      color: #fff;
      border-color: #fff;
      background-color: transparent;
  }

  .button-border.button-white:hover,
  .button-border.button-light.button-white:hover {
      background-color: #fff;
      color: #000 !important;
      border-color: transparent !important;
  }
  */

  .quickacces-wrapper {
    position: fixed;
    right: 74px; /* valeur desktop */
    transform: rotate(-90deg);
    transform-origin: right center;
    z-index: 999;
    white-space: nowrap;
  }

  /* Responsive : mobile */
  @media (max-width: 575.98px) {
    .quickacces-wrapper {
      right: 56px;
    }
  }

  /* Apparition rebond fluide */
  .btn-quickacces {
    animation: bounceAndPulse 1.5s ease-out forwards;
  }

  .btn-quickacces:hover {
    background-color: #000;
    color: #fff;
  }

  .dark .btn-quickacces {
    background-color: var(--cnvs-contrast-0) !important;
    color: #fff;
  }

  @keyframes bounceAndPulse {
    0% {
      transform: scale(0.8);
      opacity: 0;
    }
    30% {
      transform: scale(1.3);
      opacity: 1;
    }
    60% {
      transform: scale(0.95);
    }
    80% {
      transform: scale(1.1);
    }
    100% {
      transform: scale(1);
    }
  }

  @keyframes pulseQuick {
    0%,
    100% {
      transform: scale(1);
    }
    50% {
      transform: scale(1.07);
    }
  }

  .btn-quickacces.pulsing {
    animation: pulseQuick 2.5s ease-in-out infinite;
    animation-delay: 0s;
  }

  .menu-link h3 {
    text-decoration: none;
  }
  .menu-link:hover h3 {
    text-decoration: underline !important;
  }

  /* =========================
      LE SLIDER ACCUEIL
      Chaîne de hauteur Splide (s'aligne sur les classes min-vh-* existantes)
  ========================= */

  #slider.min-vh-60 {
    min-height: 60vh;
  }

  @supports (min-height: 100svh) {
    #slider.min-vh-60 {
      min-height: 60svh !important;
    }
  }

  @media (min-width: 768px) {
    #slider.min-vh-md-100 {
      min-height: 100vh;
    }

    @supports (min-height: 100svh) {
      #slider.min-vh-md-100 {
        min-height: 100svh !important;
      }
    }
  }

  #home-splide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  #home-splide .splide__track,
  #home-splide .splide__list,
  #home-splide .splide__slide,
  #home-splide .slide-bg-wrapper {
    height: 100%;
    min-height: 100%;
  }

  /* Certains navigateurs exigent que html/body occupent 100% */
  html,
  body {
    height: 100%;
  }

  /* =========================
      Aspect visuel : image "cover", voile sombre, centrage du contenu
  ========================= */

  /* Chaque diapositive est un conteneur positionné, contenu masqué si dépassement */
  #home-splide .splide__slide {
    position: relative;
    overflow: hidden;
  }

  /* Wrapper qui couvre toute la diapositive */
  #home-splide .slide-bg-wrapper {
    position: absolute;
    inset: 0;
    /* top/right/bottom/left: 0 */
  }

  /* Image qui remplace l’ancien background-image en mode cover + centrée */
  #home-splide .slide-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* équivalent de background-size: cover */
    object-position: center;
    /* équivalent de background-position: center */
    z-index: 0;
  }

  /* Voile sombre (overlay) sur toute la diapositive */
  #home-splide .video-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
  }

  /* Légendes et contenu au-dessus de l’image/overlay */
  #home-splide .container,
  #home-splide .slider-caption {
    position: relative;
    z-index: 2;
  }

  /* Centrage vertical et horizontal du bloc de légende sur toute la slide */
  #home-splide .slider-caption.slider-caption-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 100%;
  }

  /* =========================
     Commandes : flèches, pagination, compteur, bouton Lecture/Pause
  ========================= */

  /* Conteneur des flèches, centré verticalement, aux bords gauche/droit */
  #home-splide .splide__arrows {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 1rem;
    z-index: 3;
  }

  /* Style des boutons flèches (fond sombre translucide, circulaires) */
  #home-splide .splide__arrow {
    background: rgb(0, 86, 148);
    color: #fff;
    border: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    cursor: pointer;
    /* conserve la couleur du thème (ex. .dark) */
  }

  /* Anneau de focus visible pour l’accessibilité clavier */
  #home-splide .splide__arrow:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }

  /* Position de la pagination (points) */
  #home-splide .splide__pagination {
    bottom: 1rem;
  }

  /* Compteur “slide actuelle / total” en bas à droite */
  #home-splide .slide-number {
    position: absolute;
    bottom: 1rem;
    right: 1rem;
    z-index: 3;
    color: #fff;
    display: inline-flex;
    gap: 0.25rem;
    align-items: baseline;
    font-weight: 600;
  }

  /* Bouton Lecture/Pause discret en bas à gauche */
  #home-splide .a11y-toggle {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    z-index: 3;
    background: rgb(0, 86, 148);
    color: #fff;
    border: 0;
    padding: 0.4rem 0.75rem;
    border-radius: 999px;
    cursor: pointer;
  }

  /* Focus visible pour le bouton Lecture/Pause */
  #home-splide .a11y-toggle:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }

  @media (max-width: 575.98px) {
    #home-splide .slider-caption h2 {
      font-size: 1.6rem;
      line-height: 1.2;
    }

    #home-splide .slider-caption p {
      font-size: 1rem;
    }

    #home-splide .splide__arrows {
      padding: 0 0.5rem;
    }

    #home-splide .splide__arrow {
      width: 36px;
      height: 36px;
    }

    #home-splide .a11y-toggle {
      font-size: 0.85rem;
      padding: 0.35rem 0.6rem;
    }
  }

  #events-splide .splide__arrow {
    background: rgb(148, 193, 31);
    border: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    cursor: pointer;
    color: #fff;
  }

  #events-splide .splide__arrow:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }

  /* cartes cliquables comme avant */
  .card .stretched-link {
    position: relative;
    z-index: 1;
  }

  .card {
    border-radius: 0.5rem;
    overflow: hidden;
  }

  /* plein écran + marge intérieure comme ton ancien padding:20px; */
  .splide-fw .splide__track {
    padding-left: 20px;
    padding-right: 20px;
  }

  /* flèches centrées verticalement, visibles par-dessus */
  #events-splide .splide__arrows {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 12px;
    /* léger recul pour ne pas coller au bord */
    z-index: 3;
  }

  /* arrondis + ombre bien visibles quand on ajoute du padding */
  #events-splide .card {
    border-radius: 0.75rem;
    overflow: hidden;
  }

  /* déplacer un peu les flèches vers l’intérieur en mobile (ou les masquer si tu préfères) */
  @media (max-width: 576px) {
    #events-splide .splide__arrows {
      padding: 0 6px;
    }

    /* ou: #events-splide .splide__arrows { display:none; } */
  }

  /* plein écran + respiration intérieure comme ton padding inline */
  .splide-fw .splide__track {
    padding-left: 0;
    padding-right: 0;
  }

  /* flèches centrées verticalement, style discret */
  #news-splide .splide__arrows {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 12px;
    z-index: 3;
  }

  #news-splide .splide__arrow {
    background: rgb(37, 83, 139);
    border: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    cursor: pointer;
  }

  #news-splide .splide__arrow:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }

  /* images = même rendu */
  #news-splide img.object-cover {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #news-splide .entry-image {
    --cnvs-post-image-size: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
  }

  #news-splide .entry-title h3 {
    line-height: 1.35;
    min-height: calc(2 * 1.35em);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  #news-splide .entry-content {
    line-height: 1.5;
    min-height: calc(4 * 1.5em);
    max-height: none;
    overflow: visible;
    display: block;
    -webkit-line-clamp: unset;
    -webkit-box-orient: unset;
  }

  #news-splide.splide--few .splide__list::before,
  #news-splide.splide--few .splide__list::after {
    content: "";
    flex: 0 0 var(--news-splide-offset-px, 0);
  }

  .heading-nav-list {
    max-width: 1320px;
    margin: 0 auto 2rem;
    padding: 1.5rem;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 1rem;
    background-color: rgba(255, 255, 255, 0.9);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  }

  .dark .heading-nav-list {
    background-color: rgba(15, 23, 42, 0.9);
    border-color: rgba(255, 255, 255, 0.15);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
  }

  .heading-view-panel {
    position: relative;
  }

  .heading-nav-list__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.75rem;
    margin: 0;
    padding: 0;
  }

  .heading-nav-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.95);
    border-radius: 1rem;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
    overflow: hidden;
  }

  .dark .heading-nav-card {
    background-color: rgba(24, 33, 57, 0.95);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.45);
  }

  .heading-nav-card__media {
    position: relative;
    aspect-ratio: 3 / 2;
    overflow: hidden;
  }

  .heading-nav-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .heading-nav-card__body {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }

  .heading-nav-card__title {
    font-weight: 600;
    line-height: 1.3;
  }

  .heading-nav-card__meta,
  .heading-nav-card__excerpt {
    color: var(--cnvs-contrast-700);
  }

  .dark .heading-nav-card__meta,
  .dark .heading-nav-card__excerpt {
    color: rgba(255, 255, 255, 0.75);
  }

  .heading-view-toggle {
    min-width: 240px;
    font-weight: 600;
    background-color: #ffffff;
    color: #1f2937;
    border: 2px solid rgba(255, 255, 255, 0.85);
    border-radius: 999px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.75rem 1.85rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease,
      border-color 0.2s ease;
  }

  .heading-view-toggle:hover,
  .heading-view-toggle:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
    color: #fff;
    border-color: rgba(17, 24, 39, 0.35);
  }

  .section.dark .heading-view-toggle,
  .dark .heading-view-toggle {
    background-color: rgba(255, 255, 255, 0.98);
    color: #111827;
    border-color: rgba(255, 255, 255, 0.85);
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.4);
  }

  .section.dark .heading-view-toggle:hover,
  .section.dark .heading-view-toggle:focus-visible,
  .dark .heading-view-toggle:hover,
  .dark .heading-view-toggle:focus-visible {
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
  }

  .heading-view-toggle:focus-visible {
    outline: 3px solid rgba(252, 211, 77, 0.8);
    outline-offset: 3px;
  }

  .heading-nav-card__link:hover,
  .heading-nav-card__link:focus-visible {
    text-decoration: underline;
  }

  @media (max-width: 767.98px) {
    .heading-nav-list {
      padding: 1.25rem;
    }

    .heading-nav-card__body {
      padding: 1rem;
    }
  }

  /* Card */
  .map-card {
    background: rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 12px;
    padding: 12px 14px;
    backdrop-filter: blur(4px);
    transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s;
  }

  .map-card:focus-within {
    outline: 2px solid #0a58ca;
    outline-offset: 2px;
  }

  .map-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
    border-color: rgba(255, 255, 255, 0.35);
  }

  /* Titre + index badge */
  .map-card__head {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.25rem;
  }

  .map-card__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
  }

  /* Ligne adresse */
  .map-card__addr {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    opacity: 0.95;
  }

  .map-card__addr i {
    opacity: 0.85;
  }

  /* Texte */
  .map-card p {
    margin: 0.35rem 0 0;
  }

  /* Actions */
  .map-card__actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
  }

  .map-card__actions .button {
    line-height: 1.2;
  }

  /* Couleurs fallback pour thèmes sombres */
  #mapList,
  #mapList * {
    color: var(--bs-body-color, #fff);
  }
  #mapList .button {
    color: #fff;
  }

  .kiosque-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #f7f4ee 0%, #ffffff 60%);
  }

  .kiosque-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(
        circle at 15% 20%,
        rgba(210, 176, 120, 0.22),
        transparent 55%
      ),
      radial-gradient(
        circle at 85% 25%,
        rgba(95, 130, 155, 0.16),
        transparent 45%
      );
    pointer-events: none;
  }

  .kiosque-hero .row {
    position: relative;
    z-index: 1;
  }

  .kiosque-cover {
    position: relative;
    min-height: 340px;
    height: 100%;
    background: #0f1c2c;
  }

  .kiosque-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .kiosque-cover::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
      180deg,
      rgba(12, 18, 28, 0.2),
      rgba(12, 18, 28, 0.55)
    );
  }

  .kiosque-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    background: #0f2c3f;
    color: #ffffff;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .kiosque-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    color: #5b6775;
    font-size: 0.95rem;
  }

  .kiosque-meta a {
    color: inherit;
    text-decoration: none;
  }

  .kiosque-meta a:hover,
  .kiosque-meta a:focus {
    color: #0f2c3f;
    text-decoration: underline;
  }

  .kiosque-actions .button {
    border-radius: 999px;
  }

  .kiosque-fileline {
    font-size: 0.9rem;
    color: #6c757d;
  }

  .kiosque-spec li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.6rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  }

  .kiosque-spec li:last-child {
    border-bottom: 0;
  }

  .kiosque-mini {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
  }

  .kiosque-mini img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 12px;
  }

  @media (max-width: 991px) {
    .kiosque-cover {
      min-height: 240px;
    }

    .kiosque-actions .button {
      width: 100%;
      justify-content: center;
    }
  }

  /* Neutralise totalement le style natif du <button> */
  #copyrights .as-link {
    appearance: none;
    -webkit-appearance: none;
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none;
    /* on gère le focus nous-mêmes plus bas */
    font: inherit;
    color: inherit;
    cursor: pointer;
    text-decoration: none;
  }

  /* Effets hover/focus sans "cadre" */
  #copyrights .as-link:hover,
  #copyrights .as-link:focus-visible,
  #copyrights .copy-links a.copy-link:hover,
  #copyrights .copy-links a.copy-link:focus-visible {
    text-decoration: underline !important;
    text-underline-offset: 3px;
    text-decoration-thickness: 2px;
  }

  /* Si un style global rajoute une ombre/focus, on la coupe ici aussi */
  #copyrights .as-link:focus,
  #copyrights .as-link:active {
    box-shadow: none !important;
    outline: none !important;
  }
