@import url("https://fonts.googleapis.com/css?family=Roboto:200,300,300italic,400,600,700&display=swap");
/* Menu latéral ZEF - sous-menus plus compacts */
.zef-sidebar,
.sidebar,
nav {
    overflow: visible;
}

.zef-sidebar .submenu,
.sidebar .submenu,
nav .submenu {
    margin-top: 6px;
    margin-bottom: 8px;
    padding-left: 0;
}

.zef-sidebar .submenu li,
.sidebar .submenu li,
nav .submenu li {
    line-height: 1.25;
    margin: 0;
    padding: 3px 0;
}

.zef-sidebar .submenu a,
.sidebar .submenu a,
nav .submenu a {
    font-size: 14px;
    font-weight: 600;
}

/* Limite les grands espacements entre entrées principales */
.zef-sidebar li,
.sidebar li,
nav li {
    margin-bottom: 4px;
}

/* Évite que le menu devienne trop haut */
.zef-sidebar {
    max-height: calc(100vh - 20px);
    overflow-y: auto;
}
/* ------------------------------------ */
.card .link{
	font-family: "Trebuchet", Arial, Tahoma, sans-serif!important;
	font-size: 19px!important;
	text-decoration: none!important;
    font-weight: 500!important;
	color: #555555;
	background: none;
	border: none;
}
.card .link:active {
	color: #ffffff;
	background: red;
	
}
.ligne input[type=submit] {
	padding: 10px 30px!important;
}
.ligne input[type=submit]:hover {
	padding: 10px 30px!important;
	color: #ffffff!important;
	background: #000000!important;	
}
.ligne {
	padding: 10px!important;
}
.card-header.collapsed {
    /*background:#ccc;*/
}
.card-header:not(.collapsed) {
    background:#ffffff;
}
.card-header:not(.collapsed):hover {
    background: #aaa4a4!important;
	color: #ffffff!important;
}
.card-header:not(.collapsed):hover .link {
	color: #ffffff!important;
}
/* ------------------------------------ */
.categories, .sidelink {
  padding: 0; }
  .categories li, .sidelink li {
    position: relative;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #dee2e6;
    list-style: none; }
    .categories li:last-child, .sidelink li:last-child {
      margin-bottom: 0;
      border-bottom: none;
      padding-bottom: 0; }
    .categories li a, .sidelink li a {
      display: block;
      color: #000000; }
      .categories li a span, .sidelink li a span {
        position: absolute;
        right: 0;
        top: 0;
        color: #ccc; }
    .categories li.active a, .sidelink li.active a {
      color: #000000;
      font-style: italic; }
.list-unstyled {
  padding-left: 0;
  list-style: none; }
  
  .ftco-footer .ftco-footer-logo {
    text-transform: uppercase;
    letter-spacing: .1em; }
  .ftco-footer .ftco-footer-widget h2 {
    color: #fff;
    margin-bottom: 40px;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 1px; }
  .ftco-footer .ftco-footer-widget ul li a span {
    color: #fff; }
  .ftco-footer .ftco-footer-widget .btn-primary {
    background: #fff !important;
    border: 2px solid #fff !important; }
    .ftco-footer .ftco-footer-widget .btn-primary:hover {
      background: #fff;
      border: 2px solid #fff !important; }
  .ftco-footer p {
    color: rgba(255, 255, 255, 0.5); }
  .ftco-footer a {
    color: rgba(255, 255, 255, 0.5); }
    .ftco-footer a:hover {
      color: #fff; }
  .ftco-footer .ftco-heading-2 {
    font-size: 17px;
    font-weight: 400;
    color: #000000; }
  .ftco-footer .categories li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding: 10px 0; }
    .ftco-footer .categories li a {
      color: rgba(255, 255, 255, 0.5) !important; }
      .ftco-footer .categories li a span {
        color: rgba(255, 255, 255, 0.8) !important; }
        color: rgba(255, 255, 255, 0.8) !important; }
/* ------------------------------------ */

.progressbar {
  margin-bottom: 30px;
  overflow: hidden;
  color: #455A64;
  padding-left: 0px;
  margin-top: 30px
}

.progressbar .text {
  font-size: 15px;
  font-weight: bold;
  margin-top: 10px;
}

.progressbar li {
  list-style-type: none;
  font-size: 13px;
  width: 16.6%;
  float: left;
  position: relative;
  font-weight: 400
}

.progressbar .step0:before {
  font-family: "Material Icons";
  content: "\e14c";
  color: #fff
}
/* ------------------------------------ */
.project-tab {
    padding: 10%;
    margin-top: -8%;
}
.project-tab #tabs{
    background: #007b5e;
    color: #eee;
}
.project-tab #tabs h6.section-title{
    color: #eee;
}
.project-tab #tabs .nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active {
    color: #0062cc;
    background-color: transparent;
    border-color: transparent transparent #f3f3f3;
    border-bottom: 3px solid !important;
    font-size: 16px;
    font-weight: bold;
}
.project-tab .nav-link {
    border: 1px solid transparent;
    border-top-left-radius: .25rem;
    border-top-right-radius: .25rem;
    color: #0062cc;
    font-size: 16px;
    font-weight: 600;
}
.project-tab .nav-link:hover {
    border: none;
}
.project-tab thead{
    background: #f3f3f3;
    color: #333;
}
.project-tab a{
    text-decoration: none;
    color: #333;
    font-weight: 600;
}























.bleu { color: #0348b7; font-weight: 600; }
.rouge { color: #db0000; font-weight: 600; }
.vert { color: #00cc03; font-weight: 600; }
.orange { color: #f98d27; font-weight: 600; }
.violet { color: #bf00ea; font-weight: 600; }
.bleuCiel { color: #26c8ff; font-weight: 600; }

.leFooter { z-index: 80; text-align: center; width: 100%; min-width: 100%!important; max-width: 100%!important; background-color: #1d1919; position: relative; padding: 20px!important; margin: 0!important; }

ul li {
	 list-style: none;
}

.nav-side-menu {
  overflow: auto;
  font-family: verdana;
  font-size: 12px;
  font-weight: 200;
  background-color: #ffffff;
  position: fixed;
  top: 0px;
  width: 300px;
  height: 100%;
  color: #000000;
}
.nav-side-menu .brand {
  background-color: #ffffff;
  line-height: 50px;
  display: block;
  text-align: center;
  font-size: 14px;
}
.nav-side-menu .toggle-btn {
  display: none;
}
.nav-side-menu ul,
.nav-side-menu li {
  list-style: none;
  padding: 0px;
  margin: 0px;
  line-height: 35px;
  cursor: pointer;
  color: #555555;
  
    .collapsed{
       .arrow:before{
                 font-family: FontAwesome;
                 /*content: "\f105";*/
                 content: "\f0d9";
                 display: inline-block;
                 padding-left:10px;
                 padding-right: 10px;
                 vertical-align: middle;
                 float:right;
            }
     }

}
.nav-side-menu ul :not(collapsed) .arrow:before,
.nav-side-menu li :not(collapsed) .arrow:before {
  font-family: FontAwesome;
  /*content: "\f107";*/
  content: "\f0d7";
  display: inline-block;
  padding-left: 10px;
  padding-right: 10px;
  vertical-align: middle;
  float: right;
  
  
}
.nav-side-menu ul .active,
.nav-side-menu li .active {
  border-left: 0 solid #d19b3d;
  background-color: #4f5b69;
}
.nav-side-menu ul .sub-menu li.active,
.nav-side-menu li .sub-menu li.active {
  color: #d19b3d;
}

/* Menu : Form */
.form-check-input input[type=submit] {
	font-family: "Trebuchet", Arial, Tahoma, sans-serif!important;
	font-size: 19px!important;
	font-weight: 600px!important;
	color: #555555!important;
	background: none!important;	
	border: none!important;	
}




.nav-side-menu input[type=submit] {
	font-family: "Trebuchet", Arial, Tahoma, sans-serif!important;
	font-size: 19px!important;
	font-weight: 600px!important;
	color: #555555!important;
background: none;	
border: none;	
}
.nav-side-menu input[type=submit]:hover {
  background-color: #4f5b69!important;
  color: #ffffff!important;
  width: 100%;
    padding-right: 30%;
    padding-left: 30%;
  margin: 0px;
  line-height: 35px;
}
.nav-side-menu ul li a, .nav-side-menu input[type=submit] {
	font-family: "Trebuchet", Arial, Tahoma, sans-serif!important;
	font-size: 19px!important;
	font-weight: 600!important;
	color: #555555!important;
}

.nav-side-menu ul .sub-menu li.active a,
.nav-side-menu li .sub-menu li.active a {
  color: #d19b3d;
  
}
.nav-side-menu ul .sub-menu li,
.nav-side-menu li .sub-menu li {
  background-color: #ffffff;
  border: none;
  line-height: 28px;
  border-bottom: 0 solid #23282e;
  /*margin-left: 0px;*/
  text-align: center;
}
.nav-side-menu ul .sub-menu li:hover,
.nav-side-menu li .sub-menu li:hover {
  background-color: #020203;
  color: #ffffff!important;
}
.nav-side-menu ul .sub-menu li:before,
.nav-side-menu li .sub-menu li:before {
  /*font-family: FontAwesome;
  content: "\f105";*/
  display: inline-block;
  padding-left: 10px;
  padding-right: 10px;
  vertical-align: middle;
}
.nav-side-menu li {
  padding-left: 0px;
  border-left: 0 solid #2e353d;
  border-bottom: 0 solid #23282e;
  text-align: center;
  line-height: 38px!important;
  font-size: 14px!important;
}
.nav-side-menu li a {
  text-decoration: none;
  color: #000000;
}
.nav-side-menu li a i {
  padding-left: 10px;
  width: 20px;
  padding-right: 20px;
}
.nav-side-menu li:hover {
  border-left: 0 solid #d19b3d;
  background-color: #4f5b69;
  -webkit-transition: all 1s ease;
  -moz-transition: all 1s ease;
  -o-transition: all 1s ease;
  -ms-transition: all 1s ease;
  transition: all 1s ease;
}

.nav-side-menu li:hover a {
	color: #ffffff!important;
}	

@media (max-width: 767px) {
  .nav-side-menu {
    position: relative;
    width: 100%;
    margin-bottom: 10px;
	text-align: center;
  }
  
  .nav-side-menu .toggle-btn {
    display: block;
    cursor: pointer;
    position: absolute;
    right: 10px;
    top: 10px;
    z-index: 10 !important;
    padding: 3px;
    background-color: #ffffff;
    color: #000;
    width: 40px;
    text-align: center;
  }
	
	 .menu-content {
		margin: 0;
		padding: 0;
	}
  .brand {
    text-align: center!important;
    font-size: 22px;
    padding-left: 20px;
    line-height: 50px !important;
  }
  .brand img { max-height: 60px!important; }
}

@media (min-width: 767px) {
  .nav-side-menu .menu-list .menu-content {
    display: block;
	width: 100%!important;
  }
  .brand img { margin-top: 70px!important; margin-bottom: 80px!important;}
}

body {
  margin: 0px;
  padding: 0px;
}


.social:hover {
	-webkit-transform: scale(0.9);
	-moz-transform: scale(0.9);
	-o-transform: scale(0.9);
	opacity: 1.0;	  
 }

.social {
	-webkit-transform: scale(0.8);
	/* Browser Variations: */
	-moz-transform: scale(0.8);
	-o-transform: scale(0.8);
	-webkit-transition-duration: 0.5s;
	-moz-transition-duration: 0.5s;
	-o-transition-duration: 0.5s;
	color: #333333;
	opacity: 0.7;
	height: 150px!important;
 }
 
 
.titre-container {
	display: inline-block!important;
	position: relative!important!important;
}
 
.titre-icone {
	padding: auto!important;
	color: red;
	position: relative!important!important;
}

.TitreRouge { margin-top: 30px; color: #cd1b3c; 	font-family: "Trebuchet", Arial, sans-serif; font-size: 42px; }
.TitreNoir { margin-top: 30px; color: #000000; 	font-family: "Trebuchet", Arial, sans-serif; font-size: 42px; }
.colorGlyph { color: #437f97; }
.colorGlyphRose { color: #cd1b3c!important; }
/* ========================================================================== */
/* ZEF front dynamique - layout fixed menu / footer aligné contenu             */
/* ========================================================================== */
:root {
    --zef-sidebar-width: 300px;
    --zef-content-gutter: 42px;
}

.zef-public-body {
    margin: 0;
    padding: 0;
    background: #eeeeee;
}

.zef-public-layout {
    width: 100%;
    max-width: none;
    margin: 0;
    padding-right: 0;
    padding-left: 0;
}

.zef-public-row {
    display: flex;
    flex-wrap: nowrap;
    margin-right: 0;
    margin-left: 0;
}

.zef-public-sidebar-col {
    flex: 0 0 var(--zef-sidebar-width);
    width: var(--zef-sidebar-width);
    max-width: var(--zef-sidebar-width);
    min-height: 1px;
    padding-right: 0;
    padding-left: 0;
}

.zef-public-content-col {
    flex: 0 0 calc(100% - var(--zef-sidebar-width));
    width: calc(100% - var(--zef-sidebar-width));
    max-width: calc(100% - var(--zef-sidebar-width));
    padding-right: var(--zef-content-gutter);
    padding-left: var(--zef-content-gutter);
}

.nav-side-menu,
.zef-front-sidebar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    width: var(--zef-sidebar-width) !important;
    height: 100vh !important;
    min-height: 100vh !important;
    max-height: 100vh !important;
    margin: 0 !important;
    background: #ffffff !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 1000 !important;
}

.zef-site-footer-wrap {
    box-sizing: border-box;
    margin: 40px 0 0 var(--zef-sidebar-width);
    padding: 0 var(--zef-content-gutter) 70px;
    max-width: calc(100% - var(--zef-sidebar-width));
    color: #000000;
}

.zef-site-footer-separator {
    display: block;
    height: 2px;
    margin: 60px 0 22px;
    border: 0;
    background-color: #000000;
}

.zef-site-footer-container {
    margin-bottom: 70px;
}

.zef-site-footer-section {
    color: #000000;
}

.zef-site-footer-title-rule {
    display: block;
    height: 12px;
    margin: 0 0 22px;
    border: 0;
    background-color: #444444;
}

.zef-site-footer-title-rule-legal {
    max-width: 155px;
}

.zef-site-footer-title-rule-contact {
    max-width: 75px;
}

.zef-site-footer-copyright {
    margin-top: 20px;
    color: #000000;
    text-align: center;
}

/* Ancien footer pleine largeur : neutralisation de secours */
.leFooter {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
}

/* Compatibilité mobile : le menu redevient dans le flux. */
@media (max-width: 900px) {
    .zef-public-row {
        display: block;
    }

    .zef-public-sidebar-col,
    .zef-public-content-col {
        width: 100%;
        max-width: 100%;
        padding-right: 12px;
        padding-left: 12px;
    }

    .nav-side-menu,
    .zef-front-sidebar {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
        border-right: 0 !important;
        border-bottom: 1px solid #d7d7d7 !important;
    }

    .zef-site-footer-wrap {
        margin-left: 0;
        max-width: 100%;
        padding-right: 12px;
        padding-left: 12px;
    }
}

/* ========================================================================== */
/* ZEF Bureau — Documents du contenu : version sobre PRO                      */
/* Cible : /admin/contents/documents.php                                      */
/* ========================================================================== */
.zef-content-current-title{
    display:inline-flex;
    align-items:center;
    width:max-content;
    max-width:100%;
    margin:.55rem 0 .18rem;
    padding:.42rem .72rem;
    border-radius:12px;
    background:rgba(11,111,164,.10);
    border:1px solid rgba(11,111,164,.18);
    color:#0b6fa4;
    font-size:1.12rem;
    font-weight:800;
    line-height:1.25;
    letter-spacing:-.01em;
    box-shadow:0 6px 16px rgba(11,111,164,.06);
}

.zef-admin-card .zef-admin-upload-form label,
.zef-admin-card .zef-admin-form label{
    color:#0f172a;
    font-weight:700;
}

.zef-admin-card .zef-admin-upload-form input[type="text"],
.zef-admin-card .zef-admin-upload-form input[type="number"],
.zef-admin-card .zef-admin-upload-form input[type="file"],
.zef-admin-card .zef-admin-upload-form select,
.zef-admin-card .zef-admin-upload-form textarea,
.zef-admin-card .zef-admin-form input[type="text"],
.zef-admin-card .zef-admin-form input[type="number"],
.zef-admin-card .zef-admin-form input[type="file"],
.zef-admin-card .zef-admin-form select,
.zef-admin-card .zef-admin-form textarea{
    background:#f5f8fc;
    border:1px solid #cfe0ef;
    color:#0f172a;
    font-weight:600;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
    transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.zef-admin-card .zef-admin-upload-form input[type="text"]:focus,
.zef-admin-card .zef-admin-upload-form input[type="number"]:focus,
.zef-admin-card .zef-admin-upload-form input[type="file"]:focus,
.zef-admin-card .zef-admin-upload-form select:focus,
.zef-admin-card .zef-admin-upload-form textarea:focus,
.zef-admin-card .zef-admin-form input[type="text"]:focus,
.zef-admin-card .zef-admin-form input[type="number"]:focus,
.zef-admin-card .zef-admin-form input[type="file"]:focus,
.zef-admin-card .zef-admin-form select:focus,
.zef-admin-card .zef-admin-form textarea:focus{
    background:#ffffff;
    border-color:#0b6fa4;
    box-shadow:0 0 0 3px rgba(11,111,164,.12);
    outline:0;
}

.zef-admin-card .zef-admin-form input[readonly],
.zef-admin-card .zef-admin-upload-form input[readonly]{
    background:#eef3f8;
    color:#334155;
}

.zef-upload-selected{
    margin:1rem 0 1.1rem;
    padding:1rem;
    border:1px dashed #bfd4e8;
    border-radius:14px;
    background:linear-gradient(180deg, rgba(245,248,252,.96), rgba(255,255,255,.96));
}

.zef-upload-selected[hidden]{
    display:none !important;
}

.zef-upload-selected-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.8rem;
    margin-bottom:.7rem;
}

.zef-upload-selected-head strong{
    color:#0f172a;
    font-size:.95rem;
    font-weight:800;
}

.zef-upload-clear-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:.38rem .7rem;
    border:1px solid #ef4444;
    border-radius:8px;
    background:#ffffff;
    color:#dc2626;
    font-size:.86rem;
    font-weight:700;
    line-height:1.15;
    cursor:pointer;
    transition:background-color .16s ease, color .16s ease, border-color .16s ease;
}

.zef-upload-clear-btn:hover,
.zef-upload-clear-btn:focus{
    background:#dc2626;
    border-color:#dc2626;
    color:#ffffff;
    outline:0;
}

.zef-upload-selected-list{
    display:grid;
    gap:.45rem;
    margin:0;
    padding:0;
    list-style:none;
}

.zef-upload-selected-item{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    min-height:38px;
    padding:.48rem .65rem;
    border:1px solid #e1ebf5;
    border-radius:10px;
    background:#ffffff;
}

.zef-upload-selected-name{
    min-width:0;
    color:#0f172a;
    font-size:.92rem;
    font-weight:650;
    line-height:1.25;
    overflow-wrap:anywhere;
}

.zef-upload-selected-meta{
    flex:0 0 auto;
    color:#64748b;
    font-size:.84rem;
    font-weight:700;
    white-space:nowrap;
}

.zef-admin-document-card{
    border-color:#dbe7f3;
    box-shadow:0 8px 22px rgba(15,23,42,.04);
}

.zef-admin-image-options{
    background:rgba(245,248,252,.92);
    border-radius:12px;
}

@media (max-width:640px){
    .zef-content-current-title{
        width:100%;
        font-size:1rem;
    }

    .zef-upload-selected-head,
    .zef-upload-selected-item{
        align-items:flex-start;
        flex-direction:column;
    }

    .zef-upload-clear-btn{
        width:100%;
    }
}

/* ========================================================================== */
/* ZEF Bureau — Composant aide / conseil / mini-tuto réutilisable              */
/* Utilisation : .zef-admin-helper + variante --guide / --info / --warning     */
/* ========================================================================== */
.zef-admin-helper{
    display:grid;
    grid-template-columns:58px minmax(0, 1fr);
    gap:16px;
    align-items:start;
    margin-bottom:18px;
    padding:20px;
    border:1px solid var(--zef-helper-border, #bfdbfe);
    border-left-width:5px;
    border-radius:18px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,255,255,.52)),
        var(--zef-helper-bg, #eff6ff);
    color:var(--zef-admin-text, #172033);
    box-shadow:0 12px 28px rgba(15,23,42,.05);
}

.zef-admin-helper--guide,
.zef-admin-helper--info{
    --zef-helper-bg:#eff6ff;
    --zef-helper-border:#93c5fd;
    --zef-helper-accent:#1d4ed8;
    --zef-helper-icon-bg:#dbeafe;
    --zef-helper-eyebrow-bg:#dbeafe;
}

.zef-admin-helper--tip{
    --zef-helper-bg:#ecfdf5;
    --zef-helper-border:#86efac;
    --zef-helper-accent:#166534;
    --zef-helper-icon-bg:#dcfce7;
    --zef-helper-eyebrow-bg:#dcfce7;
}

.zef-admin-helper--warning{
    --zef-helper-bg:#fffbeb;
    --zef-helper-border:#facc15;
    --zef-helper-accent:#92400e;
    --zef-helper-icon-bg:#fef3c7;
    --zef-helper-eyebrow-bg:#fef3c7;
}

.zef-admin-helper__icon{
    width:48px;
    height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    background:var(--zef-helper-icon-bg, #dbeafe);
    color:var(--zef-helper-accent, #1d4ed8);
    font-size:1.45rem;
    line-height:1;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.62);
}

.zef-admin-helper__content{
    min-width:0;
}

.zef-admin-helper__head{
    margin-bottom:14px;
}

.zef-admin-helper__eyebrow{
    display:inline-flex;
    align-items:center;
    width:max-content;
    max-width:100%;
    margin:0 0 8px;
    padding:4px 9px;
    border-radius:999px;
    background:var(--zef-helper-eyebrow-bg, #dbeafe);
    color:var(--zef-helper-accent, #1d4ed8);
    font-size:12px;
    font-weight:900;
    letter-spacing:.03em;
    text-transform:uppercase;
}

.zef-admin-helper h2{
    margin:0 0 6px;
    color:#0f172a;
    font-size:22px;
    line-height:1.18;
}

.zef-admin-helper__intro{
    max-width:820px;
    margin:0;
    color:#334155;
    font-weight:600;
}

.zef-admin-helper__steps{
    display:grid;
    gap:10px;
    margin:0;
    padding-left:0;
    list-style:none;
    counter-reset:zef-helper-step;
}

.zef-admin-helper__steps li{
    counter-increment:zef-helper-step;
    position:relative;
    min-height:42px;
    padding:10px 12px 10px 48px;
    border:1px solid rgba(148,163,184,.26);
    border-radius:14px;
    background:rgba(255,255,255,.72);
}

.zef-admin-helper__steps li::before{
    content:counter(zef-helper-step);
    position:absolute;
    top:10px;
    left:12px;
    width:26px;
    height:26px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:var(--zef-helper-accent, #1d4ed8);
    color:#ffffff;
    font-size:13px;
    font-weight:900;
    line-height:1;
}

.zef-admin-helper__steps strong{
    display:block;
    margin-bottom:3px;
    color:#0f172a;
    font-weight:900;
}

.zef-admin-helper__steps span{
    display:block;
    color:#475569;
    font-weight:600;
}

@media (max-width:680px){
    .zef-admin-helper{
        grid-template-columns:1fr;
        padding:16px;
    }

    .zef-admin-helper__icon{
        width:44px;
        height:44px;
    }

    .zef-admin-helper h2{
        font-size:20px;
    }

    .zef-admin-helper__steps li{
        padding-left:44px;
    }
}



/* ========================================================================== */
/* Correctif front public SEO - pages internes / footer                       */
/* ========================================================================== */
.zef-public-content-col {
    box-sizing: border-box;
    min-height: 100vh;
    overflow: visible;
}

.zef-front-main {
    box-sizing: border-box;
    margin-right: auto;
    margin-left: 0;
}

.zef-front-card a,
.zef-front-card h2 a {
    color: #2f80a0;
    text-decoration: none;
}

.zef-front-card a:hover,
.zef-front-card h2 a:hover {
    color: #cd1b3c;
    text-decoration: none;
}

.zef-site-footer-wrap {
    clear: both;
}

.zef-site-footer p {
    margin: 0 0 12px;
    color: #000000;
    font-size: 15px;
    line-height: 1.55;
}

.zef-site-footer h6 {
    color: #000000;
    font-size: 16px;
    font-weight: 800;
}

@media (min-width: 901px) {
    .zef-public-content-col {
        padding-top: 0;
    }
}

@media (max-width: 900px) {
    .zef-front-main {
        margin-right: 0;
        margin-left: 0;
    }
}

/* ========================================================================== */
/* HOTFIX 2026-05-23 — Pages internes SEO : structure, clearfix et footer      */
/* Objectif : corriger le rendu des pages internes sans toucher au SQL/PHP.    */
/* ========================================================================== */

/* Le fichier historique définit .titre-container en inline-block.
   Sur pages.php cette classe est aussi posée sur la colonne principale :
   on force donc le comportement de vraie colonne de contenu. */
.zef-public-content-col.titre-container,
.titre-container.zef-public-content-col{
    display:block !important;
    position:relative !important;
    float:none !important;
    box-sizing:border-box !important;
}

/* Colonne principale : même logique que la page d'accueil, avec espace propre
   entre le menu fixe et le contenu. */
.zef-public-content-col{
    box-sizing:border-box !important;
    min-height:100vh;
    overflow:visible !important;
}

.zef-front-main{
    display:block;
    box-sizing:border-box;
    width:100%;
    max-width:980px;
    margin:72px auto 0;
    padding:0 0 72px;
    clear:both;
}

/* Les anciens includes utilisent encore des floats Bootstrap / inline styles.
   flow-root évite que le footer remonte à côté du contenu. */
.zef-front-static-page,
.zef-front-static-page section,
.zef-content-detail,
.zef-front-grid{
    display:flow-root;
    clear:both;
}

.zef-front-static-page .col-md-4{
    box-sizing:border-box;
}

/* Listes internes : images propres, sans débordement horizontal. */
.zef-front-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(260px, 1fr));
    gap:42px 46px;
    align-items:start;
}

.zef-front-card{
    display:block;
    min-width:0;
}

.zef-front-card-img,
.zef-content-detail__hero img,
.zef-content-detail__gallery img{
    display:block;
    max-width:100%;
    height:auto;
}

.zef-front-card-img{
    width:100%;
    max-height:330px;
    object-fit:cover;
}

.zef-front-title-block{
    text-align:center;
    margin:0 0 38px;
}

.zef-front-title-block h1{
    margin:10px 0 8px;
    color:#cd1b3c;
    font-family:"Trebuchet", Arial, sans-serif;
    font-size:38px;
    font-weight:500;
    line-height:1.15;
}

.zef-front-calendar{
    position:relative;
    display:inline-block;
    width:30px;
    height:51px;
    color:transparent;
    font-size:0;
    line-height:0;
    vertical-align:middle;
}

.zef-front-calendar::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(#437f97, #437f97) left 0 top 5px / 100% 2px no-repeat,
        linear-gradient(#437f97, #437f97) left 0 bottom 0 / 100% 2px no-repeat,
        linear-gradient(#437f97, #437f97) left 0 top 5px / 2px calc(100% - 5px) no-repeat,
        linear-gradient(#437f97, #437f97) right 0 top 5px / 2px calc(100% - 5px) no-repeat,
        linear-gradient(#437f97, #437f97) left 5px top 12px / calc(100% - 10px) 2px no-repeat,
        linear-gradient(#437f97, #437f97) left 7px top 0 / 3px 8px no-repeat,
        linear-gradient(#437f97, #437f97) right 7px top 0 / 3px 8px no-repeat;
}

.zef-front-calendar::after{
    content:"";
    position:absolute;
    top:17px;
    left:7px;
    width:3px;
    height:3px;
    background:#437f97;
    box-shadow:
        7px 0 0 #437f97,
        14px 0 0 #437f97,
        0 6px 0 #437f97,
        7px 6px 0 #437f97,
        14px 6px 0 #437f97;
}

/* Fiche détail spectacle : base proche de l'ancien site, mais stable. */
.zef-content-detail__hero{
    margin:0 0 28px;
}

.zef-content-detail__hero img{
    width:100%;
    max-height:560px;
    object-fit:cover;
}

.zef-content-detail__header h1{
    margin:0 0 18px;
    color:#cd1b3c;
    font-family:"Trebuchet", Arial, sans-serif;
    font-size:34px;
    font-weight:500;
    line-height:1.2;
}

.zef-content-detail__layout{
    display:grid;
    grid-template-columns:minmax(0, 1fr) 310px;
    gap:44px;
    align-items:start;
}

.zef-content-detail__body{
    min-width:0;
}

.zef-content-detail__aside{
    min-width:0;
}

.zef-content-detail__panel{
    margin:0 0 8px;
    border:1px solid #dddddd;
    border-radius:4px;
    background:#ffffff;
    overflow:hidden;
}

.zef-content-detail__panel summary{
    cursor:pointer;
    padding:14px 16px;
    color:#222222;
    font-weight:700;
    list-style:none;
}

.zef-content-detail__panel summary::-webkit-details-marker{
    display:none;
}

.zef-content-detail__panel-content{
    padding:0 16px 16px;
    color:#555555;
    line-height:1.55;
}

.zef-content-detail__gallery{
    display:grid;
    grid-template-columns:repeat(3, minmax(160px, 1fr));
    gap:18px;
    margin:38px 0 0;
}

.zef-content-detail__gallery figure{
    margin:0;
}

.zef-content-detail__gallery img{
    width:100%;
    max-height:260px;
    object-fit:cover;
}

/* Footer : reste sous le contenu, jamais à côté des floats des anciens includes. */
.zef-site-footer-wrap{
    display:block !important;
    float:none !important;
    clear:both !important;
    position:relative !important;
    box-sizing:border-box !important;
    width:calc(100% - var(--zef-sidebar-width)) !important;
    max-width:calc(100% - var(--zef-sidebar-width)) !important;
    margin:20px 0 0 var(--zef-sidebar-width) !important;
    padding:0 var(--zef-content-gutter) 64px !important;
}

.zef-site-footer-container{
    max-width:980px;
    margin-right:auto;
    margin-left:auto;
}

.zef-site-footer-separator{
    margin-top:0;
}

@media (max-width:1100px){
    .zef-front-main,
    .zef-site-footer-container{
        max-width:860px;
    }

    .zef-content-detail__layout{
        grid-template-columns:1fr;
    }

    .zef-content-detail__aside{
        max-width:420px;
    }
}

@media (max-width:900px){
    .zef-front-main{
        max-width:100%;
        margin-top:28px;
        padding-right:0;
        padding-left:0;
    }

    .zef-site-footer-wrap{
        width:100% !important;
        max-width:100% !important;
        margin-left:0 !important;
        padding-right:12px !important;
        padding-left:12px !important;
    }

    .zef-front-grid{
        grid-template-columns:1fr;
    }

    .zef-content-detail__gallery{
        grid-template-columns:1fr;
    }
}

/* ========================================================================== */
/* Finitions 2026-05-23 — pages publiques SEO / fiche spectacle               */
/* Objectif : rendu plus proche de l'ancien site, sans toucher aux requêtes.   */
/* ========================================================================== */

.zef-public-body{
    background:#eeeeee;
    color:#222222;
    font-family:"Trebuchet MS", "Trebuchet", Arial, sans-serif;
}

.zef-front-main{
    max-width:1120px;
    margin-top:64px;
}

.zef-front-title-block{
    margin-bottom:44px;
}

.zef-front-title-block h1{
    color:#cd1b3c;
    font-size:42px;
    letter-spacing:-.02em;
}

.zef-front-title-block p{
    margin:0;
    color:#222222;
    font-size:19px;
}

.zef-front-grid{
    grid-template-columns:repeat(2, minmax(300px, 1fr));
    gap:58px 64px;
}

.zef-front-card h2{
    margin:12px 0 8px;
    color:#157ea5;
    font-family:"Trebuchet MS", "Trebuchet", Arial, sans-serif;
    font-size:30px;
    font-weight:500;
    line-height:1.05;
}

.zef-front-card h2 a{
    color:inherit;
    text-decoration:none;
}

.zef-front-card h2 a:hover,
.zef-front-card h2 a:focus{
    color:#cd1b3c;
    text-decoration:none;
}

.zef-front-card-meta p,
.zef-front-card-text p{
    margin:0 0 14px;
    color:#222222;
    font-size:15px;
    line-height:1.55;
}

.zef-front-card-img{
    aspect-ratio:16 / 9;
    max-height:none;
    object-fit:cover;
}

.zef-content-detail{
    max-width:1060px;
    margin:0 auto;
}

.zef-content-detail__hero{
    margin:0 0 34px;
}

.zef-content-detail__hero img{
    width:100%;
    max-height:610px;
    object-fit:cover;
}

.zef-content-detail__header{
    max-width:680px;
    margin-bottom:12px;
}

.zef-content-detail__date{
    margin:0 0 16px;
    color:#333333;
    font-size:15px;
    line-height:1.35;
}

.zef-content-detail__header h1{
    margin:0 0 20px;
    color:#cd1b3c;
    font-size:36px;
    font-weight:500;
    line-height:1.15;
}

.zef-content-detail__cast,
.zef-content-detail__section,
.zef-content-detail__important{
    color:#222222;
    font-size:15px;
    line-height:1.62;
}

.zef-content-detail__cast{
    margin:0 0 22px;
}

.zef-content-detail__section{
    margin:0 0 18px;
}

.zef-content-detail__layout{
    grid-template-columns:minmax(0, 1fr) 330px;
    gap:58px;
}

.zef-content-detail__panel{
    margin:0 0 9px;
    border:1px solid #dddddd;
    border-radius:5px;
    background:#ffffff;
    box-shadow:0 1px 2px rgba(0,0,0,.04);
}

.zef-content-detail__panel summary{
    position:relative;
    display:block;
    min-height:54px;
    padding:17px 18px 15px 62px;
    color:#222222;
    font-size:15px;
    font-weight:700;
    line-height:1.25;
}

.zef-content-detail__panel summary::before{
    content:"+";
    position:absolute;
    top:0;
    left:0;
    width:48px;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    border-right:1px solid #dddddd;
    color:#9aa3aa;
    font-size:25px;
    font-weight:400;
}

.zef-content-detail__panel[open] summary::before{
    content:"−";
    color:#0f2e44;
}

.zef-content-detail__panel-content{
    padding:2px 18px 18px 62px;
    color:#555555;
    font-size:15px;
    line-height:1.55;
}

.zef-content-detail__documents{
    margin-top:18px;
}

.zef-content-detail__documents h2{
    margin:0 0 10px;
    color:#333333;
    font-size:30px;
    font-weight:400;
}

.zef-content-detail__documents a{
    display:block;
    margin:0 0 8px;
    color:#157ea5;
    font-size:15px;
    text-decoration:underline;
}

.zef-content-detail__gallery{
    grid-template-columns:repeat(3, minmax(190px, 1fr));
    gap:22px;
    margin-top:58px;
}

.zef-content-detail__gallery img{
    width:100%;
    aspect-ratio:4 / 3;
    max-height:none;
    object-fit:cover;
}

.zef-site-footer-wrap{
    margin-top:70px !important;
}

@media (max-width:1180px){
    .zef-front-main,
    .zef-content-detail,
    .zef-site-footer-container{
        max-width:960px;
    }

    .zef-content-detail__layout{
        grid-template-columns:minmax(0, 1fr) 300px;
        gap:42px;
    }
}

@media (max-width:980px){
    .zef-front-grid,
    .zef-content-detail__layout{
        grid-template-columns:1fr;
    }

    .zef-content-detail__aside{
        max-width:none;
    }
}

@media (max-width:680px){
    .zef-front-title-block h1{
        font-size:34px;
    }

    .zef-front-card h2,
    .zef-content-detail__documents h2{
        font-size:25px;
    }

    .zef-content-detail__header h1{
        font-size:31px;
    }

    .zef-content-detail__gallery{
        grid-template-columns:1fr;
    }
}

/* ========================================================================== */
/* ZEF Bureau — Pages légales / footer RGPD                                   */
/* ========================================================================== */
.zef-footer-links{
    margin:0;
    padding:0;
    list-style:none;
}

.zef-footer-links li{
    margin:0 0 8px;
    padding:0;
}

.zef-footer-links a{
    display:inline-block;
    padding:6px 10px;
    border-radius:2px;
    background:rgba(0,0,0,.08);
    color:#222222;
    font-weight:700;
    line-height:1.2;
    text-decoration:none;
}

.zef-footer-links a:hover,
.zef-footer-links a:focus{
    background:rgba(47,128,160,.16);
    color:#2f80a0;
    text-decoration:none;
    outline:0;
}

.zef-site-footer a[href^="mailto:"]{
    color:#222222;
    font-weight:700;
    text-decoration:none;
}

.zef-site-footer a[href^="mailto:"]:hover,
.zef-site-footer a[href^="mailto:"]:focus{
    color:#2f80a0;
    text-decoration:underline;
}

.zef-legal-main{
    padding-top:42px;
    padding-bottom:24px;
}

.zef-legal-page{
    width:min(100%, 1120px);
    margin:0 auto 40px;
    padding:0 0 10px;
    color:#5c5c5c;
    font-family:"Open Sans", Arial, sans-serif;
    font-size:16px;
    line-height:1.72;
}

.zef-legal-header{
    margin:0 0 34px;
    padding:22px 0 24px;
    border-bottom:1px solid rgba(0,0,0,.08);
}

.zef-legal-header h1{
    margin:0;
    color:#666666;
    font-family:"Open Sans", Arial, sans-serif;
    font-size:34px;
    font-weight:500;
    line-height:1.25;
}

.zef-legal-section{
    margin:0 0 26px;
}

.zef-legal-section h2{
    margin:0 0 12px;
    color:#666666;
    font-size:25px;
    font-weight:800;
    line-height:1.25;
}

.zef-legal-section p{
    margin:0 0 15px;
}

.zef-legal-section ul{
    margin:0 0 18px 24px;
    padding:0;
}

.zef-legal-section li{
    margin:0 0 7px;
    list-style:disc;
}

.zef-legal-section a,
.zef-legal-summary a{
    color:#2f80a0;
    font-weight:700;
    text-decoration:none;
}

.zef-legal-section a:hover,
.zef-legal-section a:focus,
.zef-legal-summary a:hover,
.zef-legal-summary a:focus{
    text-decoration:underline;
}

.zef-legal-summary{
    margin:0 0 36px;
    padding:20px 24px;
    border:1px solid rgba(47,128,160,.18);
    border-radius:10px;
    background:rgba(255,255,255,.58);
}

.zef-legal-summary strong{
    display:block;
    margin:0 0 8px;
    color:#666666;
    text-transform:uppercase;
    letter-spacing:.03em;
}

.zef-legal-summary ol{
    margin:0;
    padding-left:20px;
}

.zef-legal-summary li{
    margin:0 0 6px;
    list-style:decimal;
}

.zef-legal-table-wrap{
    width:100%;
    margin:16px 0 14px;
    overflow-x:auto;
}

.zef-legal-table{
    width:100%;
    min-width:720px;
    border-collapse:collapse;
    background:#ffffff;
}

.zef-legal-table th,
.zef-legal-table td{
    padding:10px 12px;
    border-bottom:1px solid rgba(0,0,0,.08);
    text-align:left;
    vertical-align:top;
}

.zef-legal-table th{
    color:#222222;
    font-weight:800;
    background:rgba(0,0,0,.045);
}

.zef-legal-table tr:nth-child(even) td{
    background:rgba(0,0,0,.025);
}

.zef-cookie-preferences-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 20px;
    border:0;
    border-radius:999px;
    background:#ffffff;
    color:#2f80a0;
    font-weight:800;
    box-shadow:0 8px 22px rgba(0,0,0,.08);
    cursor:pointer;
}

.zef-cookie-preferences-button:hover,
.zef-cookie-preferences-button:focus{
    color:#ffffff;
    background:#2f80a0;
    outline:0;
}

.zef-legal-update{
    margin-top:34px;
    padding-top:18px;
    border-top:1px solid rgba(0,0,0,.08);
    color:#777777;
    font-size:14px;
}

@media (max-width:900px){
    .zef-legal-main{
        padding-top:22px;
    }

    .zef-legal-page{
        width:100%;
        padding-right:8px;
        padding-left:8px;
        font-size:15px;
    }

    .zef-legal-header h1{
        font-size:28px;
    }

    .zef-legal-section h2{
        font-size:22px;
    }
}


/* ========================================================================== */
/* ZEF Bureau — Préférences cookies                                            */
/* ========================================================================== */
.zef-cookie-preferences-page{
    max-width:860px;
}

.zef-cookie-preferences-header{
    text-align:center;
}

.zef-cookie-preferences-header h1{
    margin-bottom:12px;
    color:#111111;
    font-size:42px;
    font-weight:800;
}

.zef-cookie-preferences-header p{
    margin:0 auto 28px;
    max-width:720px;
    color:#666666;
    font-size:18px;
}

.zef-cookie-preferences-card{
    max-width:760px;
    margin:0 auto 30px;
    padding:26px 28px;
    border:1px solid rgba(47,128,160,.18);
    border-radius:14px;
    background:#ffffff;
    box-shadow:0 12px 28px rgba(0,0,0,.055);
}

.zef-cookie-preferences-card h2{
    margin:0 0 20px;
    color:#111111;
    font-size:26px;
    line-height:1.25;
}

.zef-cookie-choice{
    margin:0 0 18px;
}

.zef-cookie-choice label{
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin:0;
    cursor:pointer;
}

.zef-cookie-choice input[type="checkbox"]{
    flex:0 0 auto;
    width:18px;
    height:18px;
    margin-top:4px;
    accent-color:#2f80a0;
}

.zef-cookie-choice span{
    display:block;
}

.zef-cookie-choice strong{
    display:block;
    margin:0 0 4px;
    color:#111111;
    font-size:18px;
    font-weight:800;
}

.zef-cookie-choice em{
    display:block;
    color:#666666;
    font-size:17px;
    font-style:normal;
    line-height:1.45;
}

.zef-cookie-choice--disabled{
    opacity:.65;
}

.zef-cookie-preferences-status{
    min-height:22px;
    margin:8px 0 18px;
    color:#2f80a0;
    font-weight:800;
}

.zef-cookie-preferences-actions{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:14px;
    margin-top:18px;
}

.zef-cookie-preferences-save,
.zef-cookie-preferences-secondary,
.zef-cookie-preferences-back a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:12px 24px;
    border:0;
    border-radius:999px;
    background:#ffffff;
    color:#2f80a0;
    font-weight:800;
    text-decoration:none;
    box-shadow:0 8px 22px rgba(0,0,0,.08);
    cursor:pointer;
}

.zef-cookie-preferences-save{
    background:#2f80a0;
    color:#ffffff;
}

.zef-cookie-preferences-secondary:hover,
.zef-cookie-preferences-secondary:focus,
.zef-cookie-preferences-back a:hover,
.zef-cookie-preferences-back a:focus{
    background:#2f80a0;
    color:#ffffff;
    outline:0;
    text-decoration:none;
}

.zef-cookie-preferences-save:hover,
.zef-cookie-preferences-save:focus{
    background:#22667f;
    outline:0;
}

.zef-cookie-preferences-back{
    margin:10px auto 0;
    text-align:center;
}

@media (max-width:900px){
    .zef-cookie-preferences-header h1{
        font-size:32px;
    }

    .zef-cookie-preferences-card{
        padding:20px 18px;
    }

    .zef-cookie-preferences-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .zef-cookie-preferences-save,
    .zef-cookie-preferences-secondary,
    .zef-cookie-preferences-back a{
        width:100%;
    }
}

/* ========================================================================== */
/* ZEF Bureau — Navigation précédent / suivant des fiches                     */
/* Objectif : remplacer les chevrons WordPress par une navigation claire PRO   */
/* ========================================================================== */
.zef-content-detail__navigation{
    display:flex;
    align-items:stretch;
    justify-content:space-between;
    gap:18px;
    margin:0 auto 34px;
    padding:0;
    max-width:1060px;
}

.zef-content-detail__navigation-side{
    flex:1 1 0;
    min-width:0;
    display:flex;
    align-items:center;
    gap:14px;
    padding:16px 18px;
    border:1px solid rgba(67,127,151,.24);
    border-radius:16px;
    background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,255,255,.58));
    color:#222222;
    text-decoration:none;
    box-shadow:0 10px 24px rgba(0,0,0,.055);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}

.zef-content-detail__navigation-side:hover,
.zef-content-detail__navigation-side:focus{
    border-color:rgba(205,27,60,.42);
    background:#ffffff;
    color:#222222;
    text-decoration:none;
    transform:translateY(-2px);
    box-shadow:0 16px 34px rgba(0,0,0,.085);
    outline:0;
}

.zef-content-detail__navigation-side--previous{
    justify-content:flex-start;
    text-align:left;
}

.zef-content-detail__navigation-side--next{
    justify-content:flex-end;
    text-align:right;
}

.zef-content-detail__navigation-icon{
    flex:0 0 42px;
    width:42px;
    height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#437f97;
    color:#ffffff;
    font-size:22px;
    font-weight:800;
    line-height:1;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);
}

.zef-content-detail__navigation-side:hover .zef-content-detail__navigation-icon,
.zef-content-detail__navigation-side:focus .zef-content-detail__navigation-icon{
    background:#cd1b3c;
}

.zef-content-detail__navigation-text{
    min-width:0;
    display:block;
}

.zef-content-detail__navigation-label{
    display:block;
    margin:0 0 4px;
    color:#666666;
    font-size:12px;
    font-weight:800;
    letter-spacing:.06em;
    line-height:1.2;
    text-transform:uppercase;
}

.zef-content-detail__navigation-title{
    display:block;
    color:#157ea5;
    font-family:"Trebuchet MS", "Trebuchet", Arial, sans-serif;
    font-size:18px;
    font-weight:700;
    line-height:1.25;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.zef-content-detail__navigation-side:hover .zef-content-detail__navigation-title,
.zef-content-detail__navigation-side:focus .zef-content-detail__navigation-title{
    color:#cd1b3c;
}

.zef-content-detail__navigation-spacer{
    flex:1 1 0;
}

@media (max-width:900px){
    .zef-content-detail__navigation{
        flex-direction:column;
        margin-bottom:28px;
    }

    .zef-content-detail__navigation-side,
    .zef-content-detail__navigation-side--next{
        justify-content:flex-start;
        text-align:left;
    }

    .zef-content-detail__navigation-side--next .zef-content-detail__navigation-icon{
        order:0;
    }

    .zef-content-detail__navigation-side--next .zef-content-detail__navigation-text{
        order:1;
    }

    .zef-content-detail__navigation-title{
        white-space:normal;
    }

    .zef-content-detail__navigation-spacer{
        display:none;
    }
}
/* ========================================================================== */

/* ========================================================================== */
/* ZEF Bureau — Alignement visuel thème WordPress actuel — 2026-05-24          */
/* Objectif : fond blanc pages, menu plus proche du thème, chevrons sobres.    */
/* ========================================================================== */
:root{
    --zef-sidebar-width:300px;
    --zef-content-gutter:42px;
    --zef-wp-blue:#2f80a0;
    --zef-wp-red:#cd1b3c;
    --zef-wp-text:#4f4f4f;
    --zef-wp-muted:#777777;
    --zef-wp-line:#e4e4e4;
    --zef-wp-footer:#eeeeee;
}

html,
body,
.zef-public-body,
.zef-public-layout,
.zef-public-row,
.zef-public-content-col{
    background:#ffffff !important;
}

.zef-public-body{
    color:var(--zef-wp-text);
    font-family:"Open Sans", Arial, Helvetica, sans-serif;
    font-size:15px;
    line-height:1.62;
}

.zef-public-content-col{
    padding-right:var(--zef-content-gutter) !important;
    padding-left:var(--zef-content-gutter) !important;
}

.zef-front-main{
    width:100%;
    max-width:980px;
    margin:44px auto 0 !important;
    padding-bottom:72px;
}

.zef-content-detail{
    max-width:980px;
    color:var(--zef-wp-text);
}

.zef-front-title-block h1,
.zef-content-detail__header h1{
    font-family:"Open Sans", Arial, Helvetica, sans-serif;
    font-weight:400;
    letter-spacing:-.018em;
}

.zef-front-title-block h1{
    color:var(--zef-wp-red);
    font-size:34px;
    line-height:1.22;
}

.zef-content-detail__header{
    max-width:640px;
}

.zef-content-detail__header h1{
    color:var(--zef-wp-blue);
    font-size:27px;
    line-height:1.25;
}

.zef-content-detail__date,
.zef-content-detail__cast,
.zef-content-detail__section,
.zef-content-detail__important,
.zef-content-detail__panel-content,
.zef-front-card-meta p,
.zef-front-card-text p{
    color:#555555;
    font-family:"Open Sans", Arial, Helvetica, sans-serif;
    font-size:14px;
    line-height:1.65;
}

.zef-content-detail__cast strong,
.zef-content-detail__section strong,
.zef-content-detail__important strong{
    color:#444444;
    font-weight:700;
}

.zef-content-detail__hero{
    margin-bottom:30px;
}

.zef-content-detail__hero img{
    width:100%;
    max-height:none;
    object-fit:contain;
}

.zef-content-detail__layout{
    grid-template-columns:minmax(0, 1fr) 300px;
    gap:48px;
}

.zef-content-detail__panel{
    border:1px solid var(--zef-wp-line);
    border-radius:4px;
    background:#ffffff;
    box-shadow:0 1px 2px rgba(0,0,0,.035);
}

.zef-content-detail__panel summary{
    min-height:48px;
    padding:15px 16px 13px 60px;
    color:#333333;
    font-family:"Open Sans", Arial, Helvetica, sans-serif;
    font-size:13px;
    font-weight:700;
    line-height:1.25;
}

.zef-content-detail__panel summary::before{
    width:48px;
    border-right:1px solid var(--zef-wp-line);
    color:#b8b8b8;
    font-size:20px;
    font-weight:300;
}

.zef-content-detail__panel[open] summary::before{
    color:#0f2e44;
}

.zef-content-detail__gallery{
    grid-template-columns:repeat(3, minmax(170px, 1fr));
    gap:22px;
    margin-top:54px;
}

/* Menu latéral : priorité aux styles réellement visibles, car navbar.inc.php
   contient aussi un bloc <style> embarqué. */
.zef-front-sidebar,
.nav-side-menu{
    background:#ffffff !important;
    border-right:1px solid var(--zef-wp-line) !important;
}

.zef-front-menu-link{
    color:var(--zef-wp-text) !important;
    font-family:"Trebuchet", Arial, Tahoma, sans-serif !important;
    font-size:19px !important;
    font-weight:400 !important;
    line-height:30px !important;
    letter-spacing:-.012em !important;
}

.zef-front-menu-link.is-child{
    color:#5f5f5f !important;
    font-size:16px !important;
    font-weight:500 !important;
    letter-spacing:-.004em !important;
}

.zef-front-level-2 .zef-front-menu-link{
    color:#666666 !important;
    font-size:15px !important;
    font-weight:500 !important;
}

.zef-front-menu-link:hover,
.zef-front-menu-link:focus,
.zef-front-menu-link.is-active,
.zef-front-menu-item.is-open > .zef-front-menu-row > .zef-front-menu-link{
    color:var(--zef-wp-blue) !important;
    background:transparent !important;
}

.zef-front-menu-toggle{
    color:#8a8a8a !important;
    font-size:20px !important;
    font-weight:400 !important;
}

.zef-front-menu-toggle:hover,
.zef-front-menu-toggle:focus{
    color:var(--zef-wp-blue) !important;
}

/* Navigation précédent / suivant : petits carrés type thème WordPress. */
.zef-content-detail__navigation{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:6px !important;
    max-width:980px !important;
    margin:0 auto 28px !important;
    padding:0 !important;
}

.zef-content-detail__navigation-side,
.zef-content-detail__navigation-side--previous,
.zef-content-detail__navigation-side--next{
    flex:0 0 auto !important;
    width:47px !important;
    height:47px !important;
    min-width:47px !important;
    min-height:47px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:0 !important;
    padding:0 !important;
    border:2px solid var(--zef-wp-red) !important;
    border-radius:0 !important;
    background:#ffffff !important;
    color:#0f2e44 !important;
    box-shadow:none !important;
    text-align:center !important;
    text-decoration:none !important;
    transform:none !important;
    transition:border-color .14s ease, background-color .14s ease, color .14s ease !important;
}

.zef-content-detail__navigation-side:hover,
.zef-content-detail__navigation-side:focus{
    border-color:var(--zef-wp-blue) !important;
    background:#ffffff !important;
    color:var(--zef-wp-blue) !important;
    box-shadow:none !important;
    transform:none !important;
    outline:0 !important;
}

.zef-content-detail__navigation-icon{
    flex:0 0 auto !important;
    width:auto !important;
    height:auto !important;
    display:block !important;
    border-radius:0 !important;
    background:transparent !important;
    color:inherit !important;
    font-family:Arial, Helvetica, sans-serif !important;
    font-size:28px !important;
    font-weight:700 !important;
    line-height:1 !important;
    box-shadow:none !important;
}

.zef-content-detail__navigation-text,
.zef-content-detail__navigation-label,
.zef-content-detail__navigation-title,
.zef-content-detail__navigation-spacer{
    display:none !important;
}

.zef-content-detail__navigation--single-next,
.zef-content-detail__navigation--single-previous{
    justify-content:flex-start !important;
}

/* Footer : fond gris uniquement sur le pied de page, comme le site actuel. */
.zef-site-footer-wrap{
    width:calc(100% - var(--zef-sidebar-width)) !important;
    max-width:calc(100% - var(--zef-sidebar-width)) !important;
    margin:0 0 0 var(--zef-sidebar-width) !important;
    padding:0 var(--zef-content-gutter) 44px !important;
    background:var(--zef-wp-footer) !important;
    color:#555555 !important;
}

.zef-site-footer-separator{
    display:none !important;
}

.zef-site-footer-container{
    max-width:980px !important;
    margin:0 auto !important;
    padding-top:42px !important;
    padding-bottom:26px !important;
}

.zef-site-footer h6{
    margin:0 0 14px !important;
    color:#777777 !important;
    font-family:"Open Sans", Arial, Helvetica, sans-serif !important;
    font-size:12px !important;
    font-weight:700 !important;
    line-height:1.25 !important;
}

.zef-site-footer-title-rule{
    display:none !important;
}

.zef-site-footer p,
.zef-site-footer a,
.zef-site-footer-copyright{
    color:#666666 !important;
    font-family:"Open Sans", Arial, Helvetica, sans-serif !important;
    font-size:13px !important;
    line-height:1.45 !important;
}

.zef-footer-links a{
    display:block !important;
    width:100% !important;
    max-width:220px !important;
    margin:0 0 7px !important;
    padding:8px 12px !important;
    border-radius:0 !important;
    background:rgba(0,0,0,.075) !important;
    color:#666666 !important;
    font-size:13px !important;
    font-weight:700 !important;
    text-decoration:none !important;
}

.zef-footer-links a:hover,
.zef-footer-links a:focus{
    background:rgba(47,128,160,.16) !important;
    color:var(--zef-wp-blue) !important;
}

.zef-site-footer-copyright{
    margin-top:18px !important;
    text-align:center !important;
}

@media (max-width:1180px){
    .zef-front-main,
    .zef-content-detail,
    .zef-site-footer-container{
        max-width:900px !important;
    }

    .zef-content-detail__layout{
        grid-template-columns:minmax(0, 1fr) 285px;
        gap:36px;
    }
}

@media (max-width:900px){
    .zef-public-content-col{
        padding-right:16px !important;
        padding-left:16px !important;
    }

    .zef-front-main{
        margin-top:28px !important;
    }

    .zef-content-detail__layout,
    .zef-content-detail__gallery{
        grid-template-columns:1fr !important;
    }

    .zef-site-footer-wrap{
        width:100% !important;
        max-width:100% !important;
        margin-left:0 !important;
        padding-right:16px !important;
        padding-left:16px !important;
    }
}

/* ==========================================================================
   ZEF Bureau — Typographies WordPress BeTheme — 2026-05-25
   Source de référence : ancien site WordPress / BeTheme.
   - Corps : Roboto 14px / 21px / 400.
   - Menu : Trebuchet 19px / 400.
   - Titres H1-H4 : Trebuchet, graisse légère.
   ========================================================================== */
:root{
    --zef-wp-font-body:"Roboto", Arial, Tahoma, sans-serif;
    --zef-wp-font-menu:"Trebuchet", Arial, Tahoma, sans-serif;
    --zef-wp-font-title:"Trebuchet", Arial, Tahoma, sans-serif;
    --zef-wp-font-special:"Tahoma", Arial, Tahoma, sans-serif;

    --zef-wp-body-size:14px;
    --zef-wp-body-line:21px;
    --zef-wp-body-weight:400;

    --zef-wp-menu-size:19px;
    --zef-wp-menu-line:30px;
    --zef-wp-menu-weight:400;

    --zef-wp-h1-size:25px;
    --zef-wp-h1-line:25px;
    --zef-wp-h1-weight:300;

    --zef-wp-h2-size:30px;
    --zef-wp-h2-line:30px;
    --zef-wp-h2-weight:300;

    --zef-wp-h3-size:25px;
    --zef-wp-h3-line:27px;
    --zef-wp-h3-weight:300;

    --zef-wp-h4-size:21px;
    --zef-wp-h4-line:25px;
    --zef-wp-h4-weight:300;
}

/* Base publique : textes courants comme l’ancien WordPress. */
html,
body,
.zef-public-body,
.zef-public-layout,
.zef-public-content-col,
.zef-front-main,
.zef-content-detail,
.zef-front-static-page,
.zef-legal-page{
    font-family:var(--zef-wp-font-body) !important;
    font-size:var(--zef-wp-body-size) !important;
    line-height:var(--zef-wp-body-line) !important;
    font-weight:var(--zef-wp-body-weight) !important;
    letter-spacing:0 !important;
}

/* Menu latéral : même famille que #menu > ul > li > a du WordPress. */
.zef-front-sidebar,
.nav-side-menu,
.zef-front-menu,
.zef-front-menu-row,
.zef-front-menu-link,
.nav-side-menu ul li a,
.nav-side-menu input[type=submit]{
    font-family:var(--zef-wp-font-menu) !important;
}

.zef-front-menu-link,
.nav-side-menu ul li a,
.nav-side-menu input[type=submit]{
    font-size:var(--zef-wp-menu-size) !important;
    line-height:var(--zef-wp-menu-line) !important;
    font-weight:var(--zef-wp-menu-weight) !important;
    letter-spacing:0 !important;
}

.zef-front-menu-link.is-child{
    font-family:var(--zef-wp-font-menu) !important;
    font-size:14px !important;
    line-height:22px !important;
    font-weight:400 !important;
    letter-spacing:0 !important;
}

.zef-front-level-2 .zef-front-menu-link{
    font-family:var(--zef-wp-font-menu) !important;
    font-size:13px !important;
    line-height:20px !important;
    font-weight:400 !important;
}

/* Titres front : reprise BeTheme h1/h2/h3/h4. */
.zef-content-detail__page-title,
.zef-content-detail__header h1,
.zef-content-detail__subtitle,
.zef-front-title-block h1,
.zef-front-card h2,
.zef-legal-header h1,
.zef-legal-section h2,
.TitreRouge,
.TitreNoir,
h1,
h2,
h3,
h4{
    font-family:var(--zef-wp-font-title) !important;
    letter-spacing:0 !important;
}

.zef-content-detail__page-title,
.zef-front-title-block h1,
.TitreRouge,
.TitreNoir,
h1{
    font-size:var(--zef-wp-h1-size) !important;
    line-height:var(--zef-wp-h1-line) !important;
    font-weight:var(--zef-wp-h1-weight) !important;
}

.zef-content-detail__subtitle,
.zef-content-detail__header h1:not(.zef-content-detail__page-title),
.zef-content-detail__documents h2,
.zef-front-card h2,
h2{
    font-size:var(--zef-wp-h2-size) !important;
    line-height:var(--zef-wp-h2-line) !important;
    font-weight:var(--zef-wp-h2-weight) !important;
}

.zef-legal-section h2,
h3{
    font-size:var(--zef-wp-h3-size) !important;
    line-height:var(--zef-wp-h3-line) !important;
    font-weight:var(--zef-wp-h3-weight) !important;
}

h4{
    font-size:var(--zef-wp-h4-size) !important;
    line-height:var(--zef-wp-h4-line) !important;
    font-weight:var(--zef-wp-h4-weight) !important;
}

/* Textes de fiche spectacle : Roboto, proportions WordPress. */
.zef-content-detail__date,
.zef-content-detail__cast,
.zef-content-detail__section,
.zef-content-detail__important,
.zef-content-detail__panel summary,
.zef-content-detail__panel-content,
.zef-content-detail__resources,
.zef-content-detail__resource-link,
.zef-content-detail__documents,
.zef-content-detail__documents a,
.zef-front-card-meta p,
.zef-front-card-text p{
    font-family:var(--zef-wp-font-body) !important;
    font-size:14px !important;
    line-height:21px !important;
    font-weight:400 !important;
    letter-spacing:0 !important;
}

.zef-content-detail__cast strong,
.zef-content-detail__section strong,
.zef-content-detail__important strong,
.zef-content-detail__panel strong{
    font-family:var(--zef-wp-font-body) !important;
    font-weight:700 !important;
}

/* Navigation précédent/suivant : label et bulle comme l’ancien thème. */
.zef-content-detail__navigation-label,
.zef-content-detail__navigation-title,
.zef-content-detail__fixed-nav-label,
.zef-content-detail__fixed-nav-title{
    font-family:var(--zef-wp-font-body) !important;
}

.zef-content-detail__navigation-label,
.zef-content-detail__fixed-nav-label{
    font-size:11px !important;
    line-height:1.2 !important;
    font-weight:700 !important;
}

.zef-content-detail__navigation-title,
.zef-content-detail__fixed-nav-title{
    font-size:14px !important;
    line-height:1.35 !important;
    font-weight:600 !important;
}

/* Footer : textes WordPress, sans changer la structure actuelle. */
.zef-site-footer-wrap,
.zef-site-footer,
.zef-site-footer p,
.zef-site-footer a,
.zef-footer-links a,
.zef-site-footer-copyright{
    font-family:var(--zef-wp-font-body) !important;
    font-size:14px !important;
    line-height:21px !important;
    font-weight:400 !important;
    letter-spacing:0 !important;
}

.zef-site-footer h6,
.zef-site-footer .text-uppercase,
.zef-site-footer .fw-bold{
    font-family:var(--zef-wp-font-body) !important;
    font-size:13px !important;
    line-height:19px !important;
    font-weight:700 !important;
    letter-spacing:0 !important;
}

/* Pages légales : alignement sur la base typographique publique. */
.zef-legal-page,
.zef-legal-section,
.zef-legal-section p,
.zef-legal-section li,
.zef-legal-summary,
.zef-legal-table{
    font-family:var(--zef-wp-font-body) !important;
    font-size:14px !important;
    line-height:21px !important;
}

/* Adaptations responsives issues des valeurs WordPress. */
@media only screen and (min-width:768px) and (max-width:959px){
    html,
    body,
    .zef-public-body,
    .zef-content-detail{
        font-size:13px !important;
        line-height:19px !important;
    }

    .zef-front-menu-link{
        font-size:16px !important;
    }

    .zef-content-detail__page-title,
    .zef-front-title-block h1,
    h1{
        font-size:21px !important;
        line-height:21px !important;
    }

    .zef-content-detail__subtitle,
    .zef-content-detail__header h1:not(.zef-content-detail__page-title),
    h2{
        font-size:26px !important;
        line-height:26px !important;
    }
}

@media only screen and (max-width:767px){
    html,
    body,
    .zef-public-body,
    .zef-content-detail{
        font-size:13px !important;
        line-height:19px !important;
    }

    .zef-front-menu-link{
        font-size:14px !important;
    }

    .zef-content-detail__page-title,
    .zef-front-title-block h1,
    h1{
        font-size:19px !important;
        line-height:19px !important;
    }

    .zef-content-detail__subtitle,
    .zef-content-detail__header h1:not(.zef-content-detail__page-title),
    h2{
        font-size:23px !important;
        line-height:23px !important;
    }
}
/* ========================================================================== */

/* ==========================================================================
   ZEF Bureau — HOTFIX navigation haute — 2026-05-25
   Objectif : masquer le texte des liens précédent/suivant sous les chevrons.
   Le texte reste disponible uniquement dans la bulle au survol/focus.
   ========================================================================== */
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side{
    font-size:0 !important;
    line-height:0 !important;
}

.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-icon{
    font-size:28px !important;
    line-height:1 !important;
}

.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-text{
    position:absolute !important;
    top:50% !important;
    left:calc(100% + 12px) !important;
    z-index:30 !important;
    display:block !important;
    width:max-content !important;
    max-width:260px !important;
    min-width:190px !important;
    padding:10px 13px !important;
    border:1px solid rgba(0,0,0,.08) !important;
    background:#ffffff !important;
    color:#555555 !important;
    box-shadow:0 8px 22px rgba(0,0,0,.12) !important;
    text-align:left !important;
    font-size:14px !important;
    line-height:1.35 !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(-50%) translateX(-4px) !important;
    transition:opacity .16s ease, visibility .16s ease, transform .16s ease !important;
}

.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:hover .zef-content-detail__navigation-text,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:focus .zef-content-detail__navigation-text,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:focus-within .zef-content-detail__navigation-text{
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(-50%) translateX(0) !important;
}

.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-label{
    display:block !important;
    margin:0 0 4px !important;
    color:#888888 !important;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, Tahoma, sans-serif) !important;
    font-size:11px !important;
    font-weight:700 !important;
    letter-spacing:.04em !important;
    line-height:1.2 !important;
    text-transform:uppercase !important;
}

.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-title{
    display:block !important;
    color:#555555 !important;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, Tahoma, sans-serif) !important;
    font-size:14px !important;
    font-weight:600 !important;
    line-height:1.35 !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
}

@media (max-width:980px){
    .zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-text{
        top:calc(100% + 10px) !important;
        left:0 !important;
        transform:translateY(0) translateX(0) !important;
    }

    .zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:hover .zef-content-detail__navigation-text,
    .zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:focus .zef-content-detail__navigation-text,
    .zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:focus-within .zef-content-detail__navigation-text{
        transform:translateY(0) translateX(0) !important;
    }
}
/* ========================================================================== */

/* ==========================================================================
   ZEF Bureau — HOTFIX navigation haute masquage direct — 2026-05-25
   Objectif : empêcher l’affichage du texte brut des liens précédent/suivant
   sous les chevrons rouges, y compris si le texte est directement dans <a>.
   ========================================================================== */
.zef-content-detail > .zef-content-detail__navigation{
    overflow:visible !important;
}

.zef-content-detail > .zef-content-detail__navigation > a,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side{
    position:relative !important;
    flex:0 0 47px !important;
    width:47px !important;
    height:47px !important;
    min-width:47px !important;
    max-width:47px !important;
    min-height:47px !important;
    max-height:47px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 !important;
    border:2px solid var(--zef-wp-red, #cd1b3c) !important;
    background:#ffffff !important;
    color:transparent !important;
    font-size:0 !important;
    line-height:0 !important;
    text-indent:-9999px !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-decoration:none !important;
}

.zef-content-detail > .zef-content-detail__navigation > a::first-letter,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side::first-letter{
    color:transparent !important;
}

.zef-content-detail > .zef-content-detail__navigation > a .zef-content-detail__navigation-icon,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-icon{
    position:relative !important;
    z-index:2 !important;
    text-indent:0 !important;
    color:#0f2e44 !important;
    font-size:28px !important;
    line-height:1 !important;
}

.zef-content-detail > .zef-content-detail__navigation > a:hover .zef-content-detail__navigation-icon,
.zef-content-detail > .zef-content-detail__navigation > a:focus .zef-content-detail__navigation-icon,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:hover .zef-content-detail__navigation-icon,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:focus .zef-content-detail__navigation-icon{
    color:var(--zef-wp-blue, #2f80a0) !important;
}

/* Le titre reste disponible uniquement dans la bulle structurée. */
.zef-content-detail > .zef-content-detail__navigation > a .zef-content-detail__navigation-text,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-text{
    position:absolute !important;
    top:50% !important;
    left:calc(100% + 12px) !important;
    z-index:30 !important;
    display:block !important;
    width:max-content !important;
    max-width:260px !important;
    min-width:190px !important;
    padding:10px 13px !important;
    border:1px solid rgba(0,0,0,.08) !important;
    background:#ffffff !important;
    color:#555555 !important;
    box-shadow:0 8px 22px rgba(0,0,0,.12) !important;
    text-align:left !important;
    font-size:14px !important;
    line-height:1.35 !important;
    text-indent:0 !important;
    white-space:normal !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(-50%) translateX(-4px) !important;
    transition:opacity .16s ease, visibility .16s ease, transform .16s ease !important;
}

.zef-content-detail > .zef-content-detail__navigation > a:hover .zef-content-detail__navigation-text,
.zef-content-detail > .zef-content-detail__navigation > a:focus .zef-content-detail__navigation-text,
.zef-content-detail > .zef-content-detail__navigation > a:focus-within .zef-content-detail__navigation-text,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:hover .zef-content-detail__navigation-text,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:focus .zef-content-detail__navigation-text,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:focus-within .zef-content-detail__navigation-text{
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(-50%) translateX(0) !important;
}

.zef-content-detail > .zef-content-detail__navigation > a .zef-content-detail__navigation-label,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-label{
    display:block !important;
    margin:0 0 4px !important;
    color:#888888 !important;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, Tahoma, sans-serif) !important;
    font-size:11px !important;
    font-weight:700 !important;
    letter-spacing:.04em !important;
    line-height:1.2 !important;
    text-transform:uppercase !important;
    text-indent:0 !important;
}

.zef-content-detail > .zef-content-detail__navigation > a .zef-content-detail__navigation-title,
.zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-title{
    display:block !important;
    color:#555555 !important;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, Tahoma, sans-serif) !important;
    font-size:14px !important;
    font-weight:600 !important;
    line-height:1.35 !important;
    text-indent:0 !important;
}

@media (max-width:980px){
    .zef-content-detail > .zef-content-detail__navigation > a .zef-content-detail__navigation-text,
    .zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-text{
        top:calc(100% + 10px) !important;
        left:0 !important;
        transform:translateY(0) translateX(0) !important;
    }

    .zef-content-detail > .zef-content-detail__navigation > a:hover .zef-content-detail__navigation-text,
    .zef-content-detail > .zef-content-detail__navigation > a:focus .zef-content-detail__navigation-text,
    .zef-content-detail > .zef-content-detail__navigation > a:focus-within .zef-content-detail__navigation-text,
    .zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:hover .zef-content-detail__navigation-text,
    .zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:focus .zef-content-detail__navigation-text,
    .zef-content-detail > .zef-content-detail__navigation .zef-content-detail__navigation-side:focus-within .zef-content-detail__navigation-text{
        transform:translateY(0) translateX(0) !important;
    }
}
/* ========================================================================== */

/* ==========================================================================
   ZEF Bureau — RESTAURATION chevrons latéraux fixes — 2026-05-25
   Navigation bleue fixe, à gauche et à droite de la zone de lecture.
   ========================================================================== */
.zef-content-detail__fixed-navigation{
    position:fixed !important;
    inset:0 !important;
    z-index:1200 !important;
    width:100% !important;
    height:100% !important;
    pointer-events:none !important;
}

.zef-content-detail__fixed-nav{
    position:fixed !important;
    top:50% !important;
    z-index:1201 !important;
    width:38px !important;
    height:64px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:#2f80a0 !important;
    color:#ffffff !important;
    text-decoration:none !important;
    box-shadow:none !important;
    opacity:.96 !important;
    pointer-events:auto !important;
    transform:translateY(-50%) !important;
    transition:background-color .16s ease, opacity .16s ease !important;
}

.zef-content-detail__fixed-nav:hover,
.zef-content-detail__fixed-nav:focus{
    background:#1f6f8f !important;
    color:#ffffff !important;
    opacity:1 !important;
    text-decoration:none !important;
}

.zef-content-detail__fixed-nav--previous{
    left:300px !important;
}

.zef-content-detail__fixed-nav--next{
    right:0 !important;
}

.zef-content-detail__fixed-nav-icon{
    display:block !important;
    color:#ffffff !important;
    font-family:Arial, Helvetica, sans-serif !important;
    font-size:30px !important;
    font-weight:300 !important;
    line-height:1 !important;
    text-indent:0 !important;
}

.zef-content-detail__fixed-nav-text{
    position:absolute !important;
    top:50% !important;
    z-index:1202 !important;
    display:block !important;
    width:max-content !important;
    max-width:270px !important;
    min-width:210px !important;
    padding:16px 20px !important;
    border:0 !important;
    background:#ffffff !important;
    color:#555555 !important;
    box-shadow:0 8px 22px rgba(0,0,0,.13) !important;
    text-align:left !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(-50%) !important;
    transition:opacity .16s ease, visibility .16s ease, transform .16s ease !important;
}

.zef-content-detail__fixed-nav--previous .zef-content-detail__fixed-nav-text{
    left:100% !important;
    margin-left:0 !important;
    transform:translateY(-50%) translateX(-8px) !important;
}

.zef-content-detail__fixed-nav--next .zef-content-detail__fixed-nav-text{
    right:100% !important;
    margin-right:0 !important;
    transform:translateY(-50%) translateX(8px) !important;
}

.zef-content-detail__fixed-nav:hover .zef-content-detail__fixed-nav-text,
.zef-content-detail__fixed-nav:focus .zef-content-detail__fixed-nav-text,
.zef-content-detail__fixed-nav:focus-within .zef-content-detail__fixed-nav-text{
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(-50%) translateX(0) !important;
}

.zef-content-detail__fixed-nav-label{
    display:block !important;
    margin:0 0 8px !important;
    color:#8b8b8b !important;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, Tahoma, sans-serif) !important;
    font-size:11px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    letter-spacing:.06em !important;
    text-transform:uppercase !important;
}

.zef-content-detail__fixed-nav-title{
    display:block !important;
    color:#555555 !important;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, Tahoma, sans-serif) !important;
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1.35 !important;
    white-space:normal !important;
}

/* La navigation fixe ne doit jamais s’imprimer. */
@media print{
    .zef-content-detail__fixed-navigation{
        display:none !important;
    }
}

/* Tablette/mobile : on évite que le bouton gauche recouvre le menu. */
@media (max-width:980px){
    .zef-content-detail__fixed-nav{
        width:44px !important;
        height:64px !important;
    }

    .zef-content-detail__fixed-nav--previous{
        left:0 !important;
    }

    .zef-content-detail__fixed-nav-icon{
        font-size:30px !important;
    }

    .zef-content-detail__fixed-nav-text{
        display:none !important;
    }
}
/* ========================================================================== */

/* ==========================================================================
   ZEF Bureau — AJUSTEMENT largeur et position chevrons fixes — 2026-05-25
   Objectif : chevrons bleus plus fins et bouton gauche placé dans la page,
   pas dans le menu latéral.
   ========================================================================== */
.zef-content-detail__fixed-nav{
    width:38px !important;
    height:64px !important;
}

.zef-content-detail__fixed-nav-icon{
    font-size:30px !important;
}

.zef-content-detail__fixed-nav--previous{
    left:300px !important;
}

.zef-content-detail__fixed-nav--next{
    right:0 !important;
}

@media (max-width:1200px){
    .zef-content-detail__fixed-nav--previous{
        left:250px !important;
    }
}

@media (max-width:980px){
    .zef-content-detail__fixed-nav--previous{
        left:0 !important;
    }
}
/* ========================================================================== */


/* ==========================================================================
   ZEF Bureau — pictogramme calendrier + titre rubrique — 2026-05-25
   Objectif : conserver les proportions width/height du calendrier agrandi,
   maintenir les petits carrés intérieurs et doubler la taille du titre.
   ========================================================================== */
.zef-front-calendar{
    position:relative !important;
    display:inline-block !important;
    width:49px !important;
    height:51px !important;
    color:transparent !important;
    font-size:0 !important;
    line-height:0 !important;
    vertical-align:middle !important;
}

.zef-front-calendar::before{
    content:"" !important;
    position:absolute !important;
    inset:0 !important;
    background:
        linear-gradient(#437f97, #437f97) left 0 top 8px / 100% 3px no-repeat,
        linear-gradient(#437f97, #437f97) left 0 bottom 0 / 100% 3px no-repeat,
        linear-gradient(#437f97, #437f97) left 0 top 8px / 3px calc(100% - 8px) no-repeat,
        linear-gradient(#437f97, #437f97) right 0 top 8px / 3px calc(100% - 8px) no-repeat,
        linear-gradient(#437f97, #437f97) left 8px top 20px / calc(100% - 16px) 3px no-repeat,
        linear-gradient(#437f97, #437f97) left 12px top 0 / 5px 13px no-repeat,
        linear-gradient(#437f97, #437f97) right 12px top 0 / 5px 13px no-repeat !important;
}

.zef-front-calendar::after{
    content:"" !important;
    position:absolute !important;
    top:28px !important;
    left:12px !important;
    width:5px !important;
    height:5px !important;
    background:#437f97 !important;
    box-shadow:
        11px 0 0 #437f97,
        22px 0 0 #437f97,
        0 10px 0 #437f97,
        11px 10px 0 #437f97,
        22px 10px 0 #437f97 !important;
}

.zef-front-title-block h1{
    font-size:50px !important;
    line-height:50px !important;
}
/* ========================================================================== */

/* ==========================================================================
   ZEF Bureau — AJUSTEMENT fiche profil colonne texte — 2026-05-25
   Objectif : rapprocher le rendu des pages profil de l’ancien WordPress.
   Le texte sous l’image est légèrement rentré et la colonne principale est
   plus étroite, tout en conservant l’image principale large.
   ========================================================================== */
@media (min-width:981px){
    .zef-content-detail__header,
    .zef-content-detail__layout,
    .zef-content-detail__gallery{
        margin-left:70px !important;
    }

    .zef-content-detail__header{
        max-width:620px !important;
    }

    .zef-content-detail__layout{
        grid-template-columns:minmax(0, 560px) 280px !important;
        column-gap:70px !important;
        max-width:910px !important;
        margin-right:auto !important;
    }

    .zef-content-detail__body{
        max-width:560px !important;
    }

    .zef-content-detail__aside{
        width:280px !important;
        max-width:280px !important;
    }

    .zef-content-detail__gallery{
        max-width:560px !important;
    }
}

@media (min-width:981px) and (max-width:1280px){
    .zef-content-detail__header,
    .zef-content-detail__layout,
    .zef-content-detail__gallery{
        margin-left:55px !important;
    }

    .zef-content-detail__layout{
        grid-template-columns:minmax(0, 520px) 260px !important;
        column-gap:55px !important;
        max-width:835px !important;
    }

    .zef-content-detail__body,
    .zef-content-detail__gallery{
        max-width:520px !important;
    }

    .zef-content-detail__aside{
        width:260px !important;
        max-width:260px !important;
    }
}

@media (max-width:980px){
    .zef-content-detail__header,
    .zef-content-detail__layout,
    .zef-content-detail__gallery{
        margin-left:0 !important;
    }

    .zef-content-detail__body,
    .zef-content-detail__aside,
    .zef-content-detail__gallery{
        max-width:none !important;
        width:auto !important;
    }
}
/* ========================================================================== */


/* ==========================================================================
   ZEF Bureau — Recherche footer + page résultats — 2026-05-30
   ========================================================================== */
.zef-footer-search-col{
    min-width:0;
}

.zef-site-footer-title-rule-search{
    max-width:82px;
}

.zef-footer-search-form{
    margin:0;
}

.zef-footer-search-label{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}

.zef-footer-search-row{
    display:flex;
    align-items:stretch;
    max-width:260px;
    border:1px solid rgba(47,128,160,.22);
    background:#ffffff;
}

.zef-footer-search-input{
    min-width:0;
    flex:1 1 auto;
    height:40px;
    padding:0 11px;
    border:0;
    background:#ffffff;
    color:#333333;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, sans-serif);
    font-size:13px;
    line-height:40px;
    outline:0;
}

.zef-footer-search-input::placeholder{
    color:#8a8a8a;
}

.zef-footer-search-submit{
    flex:0 0 auto;
    min-width:48px;
    height:40px;
    padding:0 12px;
    border:0;
    border-left:1px solid rgba(47,128,160,.22);
    background:#ffffff;
    color:var(--zef-wp-blue, #2f80a0);
    font-family:var(--zef-wp-font-body, "Roboto", Arial, sans-serif);
    font-size:12px;
    font-weight:800;
    cursor:pointer;
}

.zef-footer-search-submit:hover,
.zef-footer-search-submit:focus{
    background:var(--zef-wp-blue, #2f80a0);
    color:#ffffff;
    outline:0;
}

.zef-search-page{
    max-width:980px;
}

.zef-search-header{
    margin:0 0 28px;
    padding:0 0 24px;
    border-bottom:1px solid rgba(0,0,0,.08);
}

.zef-search-eyebrow{
    display:inline-flex;
    align-items:center;
    margin:0 0 8px;
    color:var(--zef-wp-blue, #2f80a0);
    font-family:var(--zef-wp-font-body, "Roboto", Arial, sans-serif);
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.zef-search-header h1{
    margin:0 0 10px;
    color:var(--zef-wp-red, #cd1b3c);
    font-family:var(--zef-wp-font-title, "Trebuchet", Arial, sans-serif);
    font-size:42px;
    font-weight:300;
    line-height:1.15;
}

.zef-search-header p{
    max-width:680px;
    margin:0;
    color:#666666;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, sans-serif);
    font-size:15px;
    line-height:1.55;
}

.zef-search-form{
    margin:0 0 26px;
    padding:20px;
    border:1px solid rgba(47,128,160,.18);
    background:#f7f9fb;
}

.zef-search-form label{
    display:block;
    margin:0 0 8px;
    color:#333333;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, sans-serif);
    font-size:13px;
    font-weight:800;
}

.zef-search-form-row{
    display:flex;
    align-items:stretch;
    gap:10px;
}

.zef-search-form input[type="search"]{
    flex:1 1 auto;
    min-width:0;
    height:46px;
    padding:0 14px;
    border:1px solid rgba(47,128,160,.24);
    background:#ffffff;
    color:#333333;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, sans-serif);
    font-size:15px;
    outline:0;
}

.zef-search-form input[type="search"]:focus{
    border-color:var(--zef-wp-blue, #2f80a0);
    box-shadow:0 0 0 3px rgba(47,128,160,.12);
}

.zef-search-form button{
    flex:0 0 auto;
    min-width:130px;
    height:46px;
    padding:0 18px;
    border:1px solid var(--zef-wp-blue, #2f80a0);
    background:var(--zef-wp-blue, #2f80a0);
    color:#ffffff;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, sans-serif);
    font-size:13px;
    font-weight:800;
    cursor:pointer;
}

.zef-search-form button:hover,
.zef-search-form button:focus{
    border-color:var(--zef-wp-red, #cd1b3c);
    background:var(--zef-wp-red, #cd1b3c);
    outline:0;
}

.zef-search-summary,
.zef-search-message{
    margin:0 0 24px;
    color:#555555;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, sans-serif);
    font-size:16px;
    line-height:1.5;
}

.zef-search-message{
    padding:18px 20px;
    border:1px solid rgba(0,0,0,.08);
    background:#f7f7f7;
}

.zef-search-message--error{
    border-color:rgba(205,27,60,.28);
    background:rgba(205,27,60,.06);
    color:#9f1239;
}

.zef-search-results{
    display:grid;
    gap:24px;
}

.zef-search-card{
    display:grid;
    grid-template-columns:260px minmax(0, 1fr);
    gap:24px;
    padding:0 0 24px;
    border-bottom:1px solid rgba(0,0,0,.08);
}

.zef-search-card-media{
    display:block;
    min-height:146px;
    background:#eeeeee;
    color:#777777;
    text-decoration:none;
    overflow:hidden;
}

.zef-search-card-media img{
    display:block;
    width:100%;
    aspect-ratio:16 / 9;
    object-fit:cover;
}

.zef-search-card-media span{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:146px;
    color:#777777;
    font-size:13px;
}

.zef-search-card-body{
    min-width:0;
}

.zef-search-card h2{
    margin:0 0 8px;
    color:var(--zef-wp-blue, #2f80a0);
    font-family:var(--zef-wp-font-title, "Trebuchet", Arial, sans-serif);
    font-size:30px;
    font-weight:300;
    line-height:1.18;
}

.zef-search-card h2 a{
    color:inherit;
    text-decoration:none;
}

.zef-search-card h2 a:hover,
.zef-search-card h2 a:focus{
    color:var(--zef-wp-red, #cd1b3c);
    text-decoration:none;
}

.zef-search-card-date,
.zef-search-card-meta,
.zef-search-card-preview{
    margin:0 0 8px;
    color:#555555;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, sans-serif);
    font-size:14px;
    line-height:1.55;
}

.zef-search-card-date{
    color:#333333;
    font-weight:700;
}

.zef-search-card-link{
    display:inline-flex;
    align-items:center;
    margin-top:6px;
    color:var(--zef-wp-blue, #2f80a0);
    font-family:var(--zef-wp-font-body, "Roboto", Arial, sans-serif);
    font-size:13px;
    font-weight:800;
    text-decoration:none;
}

.zef-search-card-link::after{
    content:"›";
    margin-left:7px;
    font-size:18px;
    line-height:1;
}

.zef-search-card-link:hover,
.zef-search-card-link:focus{
    color:var(--zef-wp-red, #cd1b3c);
    text-decoration:none;
}

@media (max-width:900px){
    .zef-footer-search-row{
        max-width:100%;
    }

    .zef-search-header h1{
        font-size:34px;
    }

    .zef-search-form-row,
    .zef-search-card{
        grid-template-columns:1fr;
        flex-direction:column;
    }

    .zef-search-form button{
        width:100%;
    }

    .zef-search-card{
        display:grid;
        gap:14px;
    }
}

/* ========================================================================== */
/* ZEF Bureau — Documents et liens utiles sous le texte principal              */
/* Objectif : afficher les documents dans la colonne texte, pas dans l'aside.  */
/* ========================================================================== */
.zef-content-detail__resources{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:10px !important;
    margin:24px 0 28px !important;
    padding:0 !important;
}

.zef-content-detail__resource-link{
    --zef-resource-color:#555555;
    --zef-resource-border:#d9d9d9;
    --zef-resource-bg:#ffffff;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:7px !important;
    max-width:100% !important;
    color:var(--zef-resource-color) !important;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, Tahoma, sans-serif) !important;
    font-size:14px !important;
    line-height:21px !important;
    font-weight:700 !important;
    text-decoration:none !important;
    overflow-wrap:anywhere !important;
    transition:background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease !important;
}

.zef-content-detail__resource-link:hover,
.zef-content-detail__resource-link:focus{
    color:var(--zef-wp-red, #cd1b3c) !important;
    text-decoration:none !important;
    outline:0 !important;
}

.zef-content-detail__resource-icon{
    flex:0 0 auto !important;
    color:currentColor !important;
    font-weight:900 !important;
    line-height:1 !important;
}

.zef-content-detail__resource-link--gray{
    --zef-resource-color:#555555;
    --zef-resource-border:#d9d9d9;
    --zef-resource-bg:#f7f7f7;
}

.zef-content-detail__resource-link--red{
    --zef-resource-color:#cd1b3c;
    --zef-resource-border:rgba(205,27,60,.36);
    --zef-resource-bg:rgba(205,27,60,.07);
}

.zef-content-detail__resource-link--blue{
    --zef-resource-color:#2f80a0;
    --zef-resource-border:rgba(47,128,160,.36);
    --zef-resource-bg:rgba(47,128,160,.08);
}

.zef-content-detail__resource-link--black{
    --zef-resource-color:#222222;
    --zef-resource-border:rgba(0,0,0,.34);
    --zef-resource-bg:rgba(0,0,0,.055);
}

.zef-content-detail__resource-link--text{
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    text-decoration:underline !important;
    text-underline-offset:2px !important;
}

.zef-content-detail__resource-link--text:hover,
.zef-content-detail__resource-link--text:focus{
    text-decoration:underline !important;
}

.zef-content-detail__resource-link--outline,
.zef-content-detail__resource-link--solid{
    min-height:38px !important;
    padding:8px 14px !important;
    border:2px solid var(--zef-resource-border) !important;
    border-radius:4px !important;
}

.zef-content-detail__resource-link--outline{
    background:#ffffff !important;
}

.zef-content-detail__resource-link--outline:hover,
.zef-content-detail__resource-link--outline:focus{
    background:var(--zef-resource-bg) !important;
    transform:translateY(-1px) !important;
}

.zef-content-detail__resource-link--solid{
    background:var(--zef-resource-bg) !important;
}

.zef-content-detail__resource-link--solid:hover,
.zef-content-detail__resource-link--solid:focus{
    border-color:var(--zef-resource-color) !important;
    transform:translateY(-1px) !important;
}

@media (max-width:680px){
    .zef-content-detail__resources{
        align-items:stretch !important;
    }

    .zef-content-detail__resource-link--outline,
    .zef-content-detail__resource-link--solid{
        width:100% !important;
    }
}
/* ========================================================================== */

/* ==========================================================================
   ZEF Bureau — Ressources fiche publique : bordure bouton renforcée
   ========================================================================== */
.zef-content-detail__resource-link,
.zef-content-detail__resources .zef-content-detail__resource-link,
.zef-content-detail__resources a.zef-content-detail__resource-link,
.zef-content-detail__document-link{
    border-width:2px !important;
}
/* ========================================================================== */


/* ==========================================================================
   ZEF Bureau — Pages légales : bandeau titre bleu-gris — 2026-05-31
   Objectif : rapprocher les pages légales du rendu du site actuel avec un
   bandeau de titre plus marqué, sans modifier le HTML/PHP.
   ========================================================================== */
.zef-legal-page .zef-legal-header{
    margin:0 0 34px !important;
    padding:30px 34px !important;
    border:1px solid rgba(47,128,160,.18) !important;
    border-bottom-color:rgba(47,128,160,.26) !important;
    border-radius:0 !important;
    background:linear-gradient(180deg, #edf5f8 0%, #e3eef3 100%) !important;
    box-shadow:0 10px 24px rgba(15,23,42,.045) !important;
}

.zef-legal-page .zef-legal-header h1{
    margin:0 !important;
    color:#3f5f6d !important;
    font-family:var(--zef-wp-font-title, "Trebuchet", Arial, Tahoma, sans-serif) !important;
    font-size:40px !important;
    line-height:1.18 !important;
    font-weight:700 !important;
    letter-spacing:-.015em !important;
}

@media (max-width:900px){
    .zef-legal-page .zef-legal-header{
        margin-bottom:26px !important;
        padding:22px 20px !important;
    }

    .zef-legal-page .zef-legal-header h1{
        font-size:31px !important;
        line-height:1.18 !important;
    }
}
/* ========================================================================== */


/* ========================================================================== */
/* ZEF Bureau — Galerie photos cliquable                                       */
/* Objectif : ouvrir chaque vignette de fiche dans un nouvel onglet.           */
/* ========================================================================== */
.zef-content-detail__gallery-link{
    display:block !important;
    color:inherit !important;
    text-decoration:none !important;
    cursor:pointer !important;
}

.zef-content-detail__gallery-link img{
    display:block !important;
    width:100% !important;
    height:auto !important;
}

.zef-content-detail__gallery-link:hover,
.zef-content-detail__gallery-link:focus{
    text-decoration:none !important;
    outline:0 !important;
}
/* ========================================================================== */


/* ========================================================================== */
/* ZEF Bureau — Page Contact : portraits responsive mobile — 2026-06-03        */
/* Objectif : empêcher l'écrasement des photos sur smartphone.                 */
/* Cible réelle : /contact/ via includes/contact.inc.php dans zef-dynamic.      */
/* ========================================================================== */
.zef-front-static-page--contact,
.zef-front-static-page--contact *{
    box-sizing:border-box !important;
}

.zef-front-static-page--contact img,
.zef-front-static-page--contact .img-fluid,
.zef-front-static-page--contact figure img,
.zef-front-static-page--contact p img,
.zef-front-static-page--contact div img{
    display:block !important;
    width:auto !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    object-fit:contain !important;
    object-position:center center !important;
}

.zef-front-static-page--contact .row{
    align-items:flex-start !important;
}

.zef-front-static-page--contact [class*="col-"]{
    min-width:0 !important;
}

/* Cas fréquent de l'ancien thème : image avec largeur inline, hauteur héritée
   ou contrainte par une colonne. Sur mobile, on force un affichage portrait
   non déformé, centré, sans rogner la photo. */
@media (max-width:900px){
    .zef-front-static-page--contact{
        width:100% !important;
        max-width:100% !important;
        overflow:visible !important;
    }

    .zef-front-static-page--contact .row{
        display:flex !important;
        flex-wrap:wrap !important;
        margin-right:-8px !important;
        margin-left:-8px !important;
    }

    .zef-front-static-page--contact [class*="col-"]{
        flex:0 0 100% !important;
        width:100% !important;
        max-width:100% !important;
        padding-right:8px !important;
        padding-left:8px !important;
        margin-bottom:30px !important;
    }

    .zef-front-static-page--contact img,
    .zef-front-static-page--contact .img-fluid,
    .zef-front-static-page--contact figure img,
    .zef-front-static-page--contact p img,
    .zef-front-static-page--contact div img{
        width:auto !important;
        max-width:min(100%, 420px) !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        margin-right:auto !important;
        margin-left:auto !important;
        object-fit:contain !important;
    }
}

@media (max-width:520px){
    .zef-front-static-page--contact img,
    .zef-front-static-page--contact .img-fluid,
    .zef-front-static-page--contact figure img,
    .zef-front-static-page--contact p img,
    .zef-front-static-page--contact div img{
        max-width:100% !important;
    }
}
/* ========================================================================== */

/* ==========================================================================
   ZEF Bureau — Cartes front : métadonnées plus compactes — 2026-06-06
   Objectif : réduire l’espace vertical entre date, artiste et lieu.
   ========================================================================== */
.zef-front-card-meta{
    margin-top:2px !important;
}

.zef-front-card-meta p{
    margin:0 0 6px !important;
    line-height:1.28 !important;
}

.zef-front-card-meta p:last-child{
    margin-bottom:0 !important;
}
/* ========================================================================== */

/* ========================================================================== */
/* ZEF Bureau — Pages passerelles à vignettes liées — 2026-06-11              */
/* ========================================================================== */
.zef-front-linked-title-block{
    margin-bottom:28px !important;
}

.zef-front-linked-intro{
    max-width:760px;
    margin:0 auto 34px;
    color:#555555;
    font-family:var(--zef-wp-font-body, "Roboto", Arial, sans-serif);
    font-size:14px;
    line-height:21px;
}

.zef-front-linked-intro p{
    margin:0 0 14px;
}

.zef-front-grid--linked-cards{
    align-items:start;
}

.zef-front-card--linked .zef-front-card-time{
    color:var(--zef-wp-blue, #2f80a0) !important;
    font-weight:800 !important;
}

.zef-front-card--linked .zef-front-card-meta p{
    overflow-wrap:anywhere;
}
/* ========================================================================== */
