/* Front UI commun — socle institutionnel ADHA
   Utiliser ces classes progressivement sur les pages publiques.
   Objectif : titres, cartes, boutons, badges et états homogènes sans casser style.css/pages.css. */
:root{
  --front-green: var(--vert-fonce, #1A7346);
  --front-green-dark: var(--vert-tres-fonce, #0D1F1C);
  --front-green-light: var(--vert-clair, #85BB64);
  --front-bg: #f7faf7;
  --front-card-bg: #ffffff;
  --front-soft: #f1f7f2;
  --front-border: rgba(13,31,28,.12);
  --front-border-green: rgba(26,115,70,.20);
  --front-text: #183b34;
  --front-muted: #64746f;
  --front-shadow: none;
  --front-radius-lg: 18px;
  --front-radius-md: 14px;
}

.front-page{
  padding-top: 2rem;
  padding-bottom: 3.5rem;
}

.front-intro{
  max-width: 1040px;
  margin: 0 0 2rem;
  padding: 1.25rem 1.35rem 1.15rem;
  border: 1px solid var(--front-border);
  border-top: 4px solid var(--front-green);
  border-radius: 14px;
  background: #fff;
  box-shadow: none;
}

.front-intro h1,
.front-intro h2{
  position: relative;
  margin: 0 0 .65rem;
  padding-bottom: .7rem;
  color: var(--front-text);
  font-size: clamp(1.65rem, 2.5vw, 2.25rem);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -.02em;
  border-bottom: 1px solid var(--front-border);
}

.front-intro h1::after,
.front-intro h2::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 86px;
  height: 3px;
  background: var(--front-green);
}

.front-intro p{
  max-width: 780px;
  margin-bottom: 0;
  color: var(--front-muted);
  line-height: 1.75;
}

.front-section{
  margin-top: 2.05rem;
}

.front-section-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: .75rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--front-border);
}

.front-section-head h2,
.front-section-head h3{
  position: relative;
  margin: 0;
  padding-left: .85rem;
  color: var(--front-text);
  font-size: 1.18rem;
  line-height: 1.35;
}

.front-section-head h2::before,
.front-section-head h3::before{
  content: "";
  position: absolute;
  left: 0;
  top: .24rem;
  bottom: .24rem;
  width: 4px;
  border-radius: 99px;
  background: var(--front-green);
}

.front-count,
.front-chip{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 28px;
  padding: .25rem .65rem;
  border: 1px solid var(--front-border-green);
  border-radius: 999px;
  color: var(--front-green);
  background: var(--front-soft);
  font-size: .86rem;
  font-weight: 700;
  white-space: nowrap;
}

.front-grid{
  display: grid;
  gap: 1rem;
}

.front-grid--two{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.front-grid--three{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.front-card{
  position: relative;
  overflow: hidden;
  border: 1px solid var(--front-border);
  border-radius: var(--front-radius-lg);
  background: var(--front-card-bg);
  padding: 1.1rem 1.15rem;
  box-shadow: none;
}

.front-card::before{
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--front-green);
  opacity: .78;
}

.front-card-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .75rem;
}

.front-card-title-wrap{
  min-width: 0;
  display: grid;
  gap: .4rem;
}

.front-card h3,
.front-card-title{
  margin: 0;
  color: var(--front-text);
  font-size: 1.04rem;
  line-height: 1.35;
}

.front-card-text{
  margin: 0 0 1rem;
  color: #4f6460;
  line-height: 1.65;
}

.front-meta{
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1rem;
  color: var(--front-muted);
  font-size: .9rem;
  margin-bottom: .85rem;
}

.front-ref{
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  font-size: .78rem;
  color: #49655d;
  border: 1px solid var(--front-border);
  border-radius: 999px;
  padding: .28rem .62rem;
  background: #fff;
}

.front-actions{
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.front-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  border: 1px solid var(--front-border-green);
  border-radius: 999px;
  background: #fff;
  color: var(--front-green);
  text-decoration: none;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.2;
  transition: background .18s ease, border-color .18s ease, color .18s ease;
}

.front-btn:hover{
  color: #fff;
  border-color: var(--front-green);
  background: var(--front-green);
}

.front-btn--primary{
  color: #fff;
  background: var(--front-green);
  border-color: var(--front-green);
}

.front-btn--primary:hover{
  background: var(--front-green-dark);
  border-color: var(--front-green-dark);
}

.front-btn--muted{
  color: var(--front-text);
  border-color: var(--front-border);
  background: #fff;
}

.front-badge{
  width: max-content;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .18rem .55rem;
  border-radius: 999px;
  border: 1px solid var(--front-border-green);
  color: var(--front-green);
  background: var(--front-soft);
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: .02em;
}

.front-badge::before{
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex: 0 0 auto;
}

.front-badge--success{
  color: #5f812c;
  background: #f2f8e9;
  border-color: rgba(95,129,44,.18);
}

.front-badge--muted{
  color: #68746b;
  background: #f4f7f3;
  border-color: rgba(104,116,107,.18);
}

.front-badge--warning{
  color: #8a5a10;
  background: #fff8e6;
  border-color: rgba(138,90,16,.18);
}

.front-empty{
  border: 1px dashed var(--front-border-green);
  border-radius: var(--front-radius-md);
  padding: 1rem 1.1rem;
  color: var(--front-muted);
  background: #f8fcf9;
}

html[dir="rtl"] .front-intro{
  border-left: 1px solid var(--front-border);
  border-right: 1px solid var(--front-border);
}

html[dir="rtl"] .front-intro h1::after,
html[dir="rtl"] .front-intro h2::after{
  left: auto;
  right: 0;
}

html[dir="rtl"] .front-card::before{
  inset: 0 0 0 auto;
}

html[dir="rtl"] .front-card-head,
html[dir="rtl"] .front-section-head{
  direction: rtl;
}

html[dir="rtl"] .front-section-head h2,
html[dir="rtl"] .front-section-head h3{
  padding-left: 0;
  padding-right: .85rem;
}

html[dir="rtl"] .front-section-head h2::before,
html[dir="rtl"] .front-section-head h3::before{
  left: auto;
  right: 0;
}

@media (max-width: 900px){
  .front-grid--two,
  .front-grid--three{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px){
  .front-page{
    padding-top: 1.4rem;
  }

  .front-intro{
    padding: 1rem;
  }

  .front-card-head,
  .front-section-head{
    align-items: flex-start;
    flex-direction: column;
  }

  .front-ref,
  .front-count,
  .front-chip{
    white-space: normal;
  }
}

main.container.front-page{
  padding-inline: 2rem;
}

.front-page .front-section{
  margin-top: 1.65rem;
}

.front-card,
.front-page .rubrique-card{
  overflow: hidden;
}

.front-page .article-body{
  padding: 1.25rem 1.35rem;
}

@media (max-width: 980px){
}

@media (max-width: 700px){
  main.container.front-page,
  main.container .front-page{
    width: 100%;
    padding-inline: 1rem;
  }
  
.front-page .article-body{
  padding:0px;
}

}

/* --------------------------------------------------------------------------
   09. Compatibilité render_page.php commun
   Ces règles stylent les helpers PHP site_render_page_header() et
   site_render_section_nav() pour qu'ils reprennent exactement le langage
   visuel du socle : bloc titre type Publications + menu horizontal pills.
   -------------------------------------------------------------------------- */

.site-page-hero{
  width: min(1040px, 100%);
  margin: 0 0 1.45rem;
  padding: 1.25rem 1.35rem 1.15rem;
  border: 1px solid var(--front-border);
  border-top: 4px solid var(--front-green);
  border-radius: var(--front-radius-lg);
  background: #fff;
  box-shadow: none;
}

.site-page-hero h1{
  position: relative;
  margin: 0 0 .65rem;
  padding: 0 0 .72rem;
  border-bottom: 1px solid var(--front-border);
  color: var(--front-text);
  font-size: clamp(1.75rem, 2.8vw, 2.45rem);
  line-height: 1.12;
  font-weight: 900;
  letter-spacing: -.02em;
}

.site-page-hero h1::after{
  content: "";
  position: absolute;
  inset-inline-start: 0;
  bottom: -1px;
  width: 86px;
  height: 3px;
  border-radius: 99px;
  background: var(--front-green);
}

.site-page-hero p{
  max-width: 820px;
  margin: 0;
  color: var(--front-muted);
  line-height: 1.75;
  text-align: start;
}

.site-section-nav{
  width: min(1120px, 100%);
  margin: 0 0 1.6rem;
  padding: .9rem;
  border: 1px solid var(--front-border);
  border-radius: var(--front-radius-lg);
  background: #fff;
  box-shadow: none;
}

.site-section-nav ul{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-section-nav li{
  margin: 0;
  padding: 0;
}

.site-section-nav a{
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  border: 1px solid var(--front-border-green);
  border-radius: 999px;
  background: #fff;
  color: var(--front-green);
  text-decoration: none;
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.2;
  box-shadow: none;
}

.site-section-nav a:hover,
.site-section-nav a.is-active{
  border-color: var(--front-green-light);
  background: var(--front-green-light);
  color: #fff;
}

.site-page-body{
  width: min(1120px, 100%);
}

.site-page-body > :first-child{
  margin-top: 0;
}

.site-page-body .front-actions{
  margin-top: 1.2rem;
}

@media (max-width: 700px){
  .site-page-hero{
    padding: 1rem;
  }

  .site-section-nav{
    padding: .75rem;
  }

  .site-section-nav a{
    width: 100%;
    justify-content: flex-start;
  }
}

/* ========================================================================== 
   PATCH_FRONT_STRUCTURE_PHASE1_20260510
   Socle commun des pages internes : front-page / breadcrumb / front-intro /
   front-tabs / front-section / front-grid / front-card / front-btn.
   Les modules conservent leurs CSS dédiés.
========================================================================== */

:root{
  --front-max: 1180px;
  --front-pad-x: clamp(16px, 3vw, 28px);
  --front-gap: clamp(1rem, 2vw, 1.4rem);
  --front-green: var(--adha-green, #1A7346);
  --front-green-light: var(--adha-green-light, #85BB64);
  --front-text: var(--adha-gray-dark, #334648);
  --front-muted: var(--adha-gray, #5B6A6C);
  --front-border: rgba(51,70,72,.14);
  --front-radius: var(--adha-radius, 16px);
  --front-radius-lg: var(--adha-radius-lg, 20px);
}

main.container.front-page,
.front-page{
  width: min(100% - var(--front-pad-x) * 2, var(--front-max));
  margin-inline: auto;
  padding-block: clamp(1rem, 2vw, 1.35rem) clamp(2rem, 4vw, 3rem);
  box-sizing: border-box;
}

.front-page *,
.front-page *::before,
.front-page *::after{
  box-sizing: border-box;
}

.front-page .breadcrumb,
.breadcrumb{
  width: 100%;
  max-width: 100%;
  margin: 0 0 .85rem;
  color: var(--front-muted);
  font-size: .86rem;
  line-height: 1.5;
}

.front-page .breadcrumb a,
.breadcrumb a{
  color: var(--front-green);
  text-decoration: none;
  font-weight: 750;
}

.front-page .breadcrumb .sep,
.breadcrumb .sep{
  color: rgba(91,106,108,.55);
  margin-inline: .35rem;
}

.front-intro{
  width: 100%;
  max-width: 100%;
  margin: 0 0 var(--front-gap);
  padding: clamp(1.15rem, 2.2vw, 1.65rem);
  border: 1px solid var(--front-border);
  border-inline-start: 4px solid var(--front-green-light);
  border-radius: var(--front-radius-lg);
  background: #fff;
  box-shadow: none;
  overflow: hidden;
}

html[dir="rtl"] .front-intro{
  border-inline-start: 1px solid var(--front-border);
  border-inline-end: 4px solid var(--front-green-light);
}

.front-chip{
  width: max-content;
  max-width: 100%;
  min-height: 24px;
  padding: 0 .58rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(133,187,100,.12);
  color: var(--front-green);
  font-size: .74rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.front-intro h1{
  max-width: 100%;
  margin: .55rem 0 .65rem;
  color: var(--front-text);
  font-size: clamp(2rem, 4vw, 3.05rem);
  line-height: 1.08;
  font-weight: 850;
  letter-spacing: -.035em;
}

.front-intro h1::after{
  content: "";
  width: 96px;
  height: 4px;
  display: block;
  margin-top: .55rem;
  border-radius: 999px;
  background: var(--front-green);
}

html[dir="rtl"] .front-intro h1::after{
  margin-inline-start: auto;
  margin-inline-end: 0;
}

.front-intro p{
  max-width: 900px;
  margin: .75rem 0 0;
  color: var(--front-muted);
  font-size: .98rem;
  line-height: 1.75;
  overflow-wrap: break-word;
}

.front-tabs{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin-top: .95rem;
  max-width: 100%;
}

.front-tab,
.front-tabs a,
.front-tabs button{
  min-height: 32px;
  padding: 0 .85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(133,187,100,.38);
  border-radius: 999px;
  background: #fff;
  color: var(--front-green);
  font-size: .82rem;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.front-tab.active,
.front-tab.is-active,
.front-tabs a.active,
.front-tabs a.is-active,
.front-tabs button.active,
.front-tabs button.is-active,
.front-tabs [aria-current="page"]{
  background: var(--front-green);
  border-color: var(--front-green);
  color: #fff;
}

.front-section{
  width: 100%;
  max-width: 100%;
  margin-top: var(--front-gap);
}

.front-grid{
  display: grid;
  gap: var(--front-gap);
  width: 100%;
}

.front-grid--three{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.front-grid--two{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.front-card{
  min-width: 0;
  border: 1px solid var(--front-border);
  border-radius: var(--front-radius-lg);
  background: #fff;
  overflow: hidden;
  box-shadow: none;
}

.front-card-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  flex-wrap: wrap;
}

.front-badge{
  width: max-content;
  max-width: 100%;
  min-height: 24px;
  padding: 0 .58rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(133,187,100,.1);
  color: var(--front-green);
  font-size: .72rem;
  font-weight: 850;
  line-height: 1;
}

.front-btn,
a.front-btn,
button.front-btn{
  min-height: 32px;
  padding: 0 .85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid var(--front-green);
  background: #fff;
  color: var(--front-green);
  font-size: .8rem;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
  box-shadow: none;
}

.front-btn--primary,
a.front-btn--primary,
button.front-btn--primary{
  background: var(--front-green);
  color: #fff;
}

.front-btn:hover,
a.front-btn:hover,
button.front-btn:hover{
  background: var(--front-green);
  color: #fff;
}

.pagination,
.front-pagination{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: clamp(1.2rem, 2.2vw, 1.8rem);
}

.pagination a,
.pagination span,
.front-pagination a,
.front-pagination span{
  min-width: 32px;
  height: 32px;
  padding: 0 .55rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--front-border);
  border-radius: 8px;
  color: var(--front-text);
  text-decoration: none;
  font-weight: 800;
  line-height: 1;
}

.pagination a.active,
.pagination span.active,
.front-pagination a.active,
.front-pagination span.active{
  background: var(--front-green);
  border-color: var(--front-green);
  color: #fff;
}

@media screen and (max-width: 900px){
  .front-grid--three,
  .front-grid--two{
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 768px){
  main.container.front-page,
  .front-page{
    width: min(100% - 24px, var(--front-max));
    padding-block: .85rem 2rem;
    overflow-x: hidden;
  }

  .front-page .breadcrumb,
  .breadcrumb{
    font-size: .78rem;
    margin-bottom: .65rem;
  }

  .front-intro{
    padding: 1.05rem;
    border-radius: 16px;
    margin-bottom: 1rem;
  }

  .front-chip{
    min-height: 22px;
    padding: 0 .5rem;
    font-size: .66rem;
  }

  .front-intro h1{
    font-size: clamp(1.65rem, 7.4vw, 2.1rem);
    line-height: 1.1;
    margin: .45rem 0 .55rem;
  }

  .front-intro h1::after{
    width: 72px;
    height: 3px;
    margin-top: .45rem;
  }

  .front-intro p{
    font-size: .9rem;
    line-height: 1.68;
  }

  .front-tabs{
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    gap: .45rem;
    padding-bottom: .35rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .front-tabs::-webkit-scrollbar{
    display: none;
  }

  .front-tabs a,
  .front-tabs button,
  .front-tab{
    flex: 0 0 auto;
    min-height: 34px;
    padding: 0 .78rem;
    font-size: .78rem;
  }

  .front-section{
    margin-top: 1rem;
  }

  .front-card{
    border-radius: 16px;
  }

  .front-btn,
  a.front-btn,
  button.front-btn{
    min-height: 30px;
    padding: 0 .72rem;
    font-size: .74rem;
  }

  .pagination a,
  .pagination span,
  .front-pagination a,
  .front-pagination span{
    min-width: 28px;
    height: 28px;
    border-radius: 7px;
    font-size: .76rem;
  }
}

/* ========================================================================== 
   PATCH_FRONT_STRUCTURE_PHASE2_20260511
   Homogénéisation finale des structures internes :
   - front-intro : accent haut vert partout, plus d'accent vertical
   - front-tabs : sous-menu style Actualités partout
   - mobile : tabs en scroll horizontal compact partout
========================================================================== */

/* --------------------------------------------------------------------------
   1) Header titre commun : même style partout
-------------------------------------------------------------------------- */
main.front-page header.front-intro,
main.front-page .front-intro,
.front-page header.front-intro,
.front-page .front-intro,
.front-page .site-page-hero.front-intro,
.front-page .front-page-heading.front-intro,
.front-page .page-heading.front-intro,
.front-page .contact-intro,
.front-page .actualites-intro,
.front-page .publications-intro,
.front-page .markets-intro,
.front-page .sectors-intro,
.front-page .organization-intro,
.front-page .jobs-intro{
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 clamp(1rem, 2vw, 1.35rem) !important;
  padding: clamp(1.15rem, 2.2vw, 1.65rem) !important;
  border: 1px solid rgba(51,70,72,.14) !important;
  border-top: 4px solid var(--adha-green, #1A7346) !important;
  border-inline-start: 1px solid rgba(51,70,72,.14) !important;
  border-inline-end: 1px solid rgba(51,70,72,.14) !important;
  border-radius: var(--adha-radius-lg, 20px) !important;
  background: #fff !important;
  box-shadow: none !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html[dir="rtl"] main.front-page header.front-intro,
html[dir="rtl"] main.front-page .front-intro,
html[dir="rtl"] .front-page header.front-intro,
html[dir="rtl"] .front-page .front-intro,
html[dir="rtl"] .front-page .contact-intro,
html[dir="rtl"] .front-page .actualites-intro,
html[dir="rtl"] .front-page .publications-intro,
html[dir="rtl"] .front-page .markets-intro,
html[dir="rtl"] .front-page .sectors-intro,
html[dir="rtl"] .front-page .organization-intro,
html[dir="rtl"] .front-page .jobs-intro{
  border: 1px solid rgba(51,70,72,.14) !important;
  border-top: 4px solid var(--adha-green, #1A7346) !important;
}

.front-page .front-intro .front-chip,
.front-page .front-chip{
  width: max-content !important;
  max-width: 100% !important;
  min-height: 24px !important;
  padding: 0 .58rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(133,187,100,.34) !important;
  border-radius: 999px !important;
  background: rgba(133,187,100,.08) !important;
  color: var(--adha-green, #1A7346) !important;
  font-size: .72rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

.front-page .front-intro h1,
.front-page header.front-intro h1,
.front-page .contact-intro h1,
.front-page .actualites-intro h1,
.front-page .publications-intro h1,
.front-page .markets-intro h1,
.front-page .sectors-intro h1,
.front-page .organization-intro h1,
.front-page .jobs-intro h1{
  max-width: 100% !important;
  margin: .55rem 0 .65rem !important;
  padding: 0 !important;
  color: var(--adha-gray-dark, #334648) !important;
  font-size: clamp(2rem, 4vw, 3.05rem) !important;
  line-height: 1.08 !important;
  font-weight: 850 !important;
  letter-spacing: -.035em !important;
}

.front-page .front-intro h1::after,
.front-page header.front-intro h1::after,
.front-page .contact-intro h1::after,
.front-page .actualites-intro h1::after,
.front-page .publications-intro h1::after,
.front-page .markets-intro h1::after,
.front-page .sectors-intro h1::after,
.front-page .organization-intro h1::after,
.front-page .jobs-intro h1::after{
  content: "" !important;
  width: 96px !important;
  max-width: 96px !important;
  height: 4px !important;
  display: block !important;
  margin-top: .55rem !important;
  margin-inline-start: 0 !important;
  margin-inline-end: auto !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--adha-green, #1A7346) !important;
}

html[dir="rtl"] .front-page .front-intro h1::after,
html[dir="rtl"] .front-page header.front-intro h1::after,
html[dir="rtl"] .front-page .contact-intro h1::after,
html[dir="rtl"] .front-page .actualites-intro h1::after,
html[dir="rtl"] .front-page .publications-intro h1::after,
html[dir="rtl"] .front-page .markets-intro h1::after,
html[dir="rtl"] .front-page .sectors-intro h1::after,
html[dir="rtl"] .front-page .organization-intro h1::after,
html[dir="rtl"] .front-page .jobs-intro h1::after{
  margin-inline-start: auto !important;
  margin-inline-end: 0 !important;
}

.front-page .front-intro p,
.front-page header.front-intro p,
.front-page .contact-intro p,
.front-page .actualites-intro p,
.front-page .publications-intro p,
.front-page .markets-intro p,
.front-page .sectors-intro p,
.front-page .organization-intro p,
.front-page .jobs-intro p{
  max-width: 900px !important;
  margin: .75rem 0 0 !important;
  padding: 0 !important;
  color: var(--adha-gray, #5B6A6C) !important;
  font-size: .98rem !important;
  line-height: 1.75 !important;
  text-align: start !important;
  overflow-wrap: break-word !important;
}

/* --------------------------------------------------------------------------
   2) Sous-menu commun : reprendre le comportement Actualités partout
-------------------------------------------------------------------------- */
.front-page .front-tabs,
.front-page nav.front-tabs,
.front-page .actualites-tabs,
.front-page .publications-tabs,
.front-page .markets-tabs,
.front-page .sectors-tabs,
.front-page .organization-tabs,
.front-page .apropos-tabs,
.front-page .jobs-tabs,
.front-page .front-section-tabs,
.front-page .section-tabs,
.front-page .page-tabs,
.front-page .site-section-nav,
.front-page .site-section-nav ul,
.front-page .side-nav,
.front-page .side-nav ul,
.front-page .subnav,
.front-page .subnav ul{
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: .5rem !important;
  margin: .95rem 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  list-style: none !important;
  overflow: visible !important;
}

html[dir="rtl"] .front-page .front-tabs,
html[dir="rtl"] .front-page nav.front-tabs,
html[dir="rtl"] .front-page .actualites-tabs,
html[dir="rtl"] .front-page .publications-tabs,
html[dir="rtl"] .front-page .markets-tabs,
html[dir="rtl"] .front-page .sectors-tabs,
html[dir="rtl"] .front-page .organization-tabs,
html[dir="rtl"] .front-page .apropos-tabs,
html[dir="rtl"] .front-page .jobs-tabs,
html[dir="rtl"] .front-page .front-section-tabs,
html[dir="rtl"] .front-page .section-tabs,
html[dir="rtl"] .front-page .page-tabs,
html[dir="rtl"] .front-page .site-section-nav,
html[dir="rtl"] .front-page .site-section-nav ul,
html[dir="rtl"] .front-page .side-nav,
html[dir="rtl"] .front-page .side-nav ul,
html[dir="rtl"] .front-page .subnav,
html[dir="rtl"] .front-page .subnav ul{
  justify-content: flex-start !important;
}

.front-page .front-tabs li,
.front-page .actualites-tabs li,
.front-page .publications-tabs li,
.front-page .markets-tabs li,
.front-page .sectors-tabs li,
.front-page .organization-tabs li,
.front-page .apropos-tabs li,
.front-page .jobs-tabs li,
.front-page .front-section-tabs li,
.front-page .section-tabs li,
.front-page .page-tabs li,
.front-page .site-section-nav li,
.front-page .side-nav li,
.front-page .subnav li{
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.front-page .front-tab,
.front-page .front-tabs a,
.front-page .front-tabs button,
.front-page .actualites-tabs a,
.front-page .publications-tabs a,
.front-page .markets-tabs a,
.front-page .sectors-tabs a,
.front-page .organization-tabs a,
.front-page .apropos-tabs a,
.front-page .jobs-tabs a,
.front-page .front-section-tab,
.front-page .front-section-tabs a,
.front-page .section-tabs a,
.front-page .page-tabs a,
.front-page .site-section-nav a,
.front-page .side-nav a,
.front-page .subnav a{
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 32px !important;
  height: 32px !important;
  padding: 0 .85rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(133,187,100,.38) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--adha-green, #1A7346) !important;
  font-size: .82rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

.front-page .front-tab.active,
.front-page .front-tab.is-active,
.front-page .front-tabs a.active,
.front-page .front-tabs a.is-active,
.front-page .front-tabs [aria-current="page"],
.front-page .actualites-tabs a.active,
.front-page .actualites-tabs a.is-active,
.front-page .publications-tabs a.active,
.front-page .publications-tabs a.is-active,
.front-page .markets-tabs a.active,
.front-page .markets-tabs a.is-active,
.front-page .sectors-tabs a.active,
.front-page .sectors-tabs a.is-active,
.front-page .organization-tabs a.active,
.front-page .organization-tabs a.is-active,
.front-page .apropos-tabs a.active,
.front-page .apropos-tabs a.is-active,
.front-page .jobs-tabs a.active,
.front-page .jobs-tabs a.is-active,
.front-page .front-section-tab.active,
.front-page .front-section-tab.is-active,
.front-page .front-section-tabs a.active,
.front-page .section-tabs a.active,
.front-page .page-tabs a.active,
.front-page .site-section-nav a.active,
.front-page .site-section-nav a.is-active,
.front-page .site-section-nav a[aria-current="page"],
.front-page .side-nav a.active,
.front-page .side-nav a.is-active,
.front-page .side-nav a[aria-current="page"],
.front-page .subnav a.active,
.front-page .subnav a.is-active,
.front-page .subnav a[aria-current="page"]{
  background: var(--adha-green, #1A7346) !important;
  border-color: var(--adha-green, #1A7346) !important;
  color: #fff !important;
}

/* Si un sous-menu est placé juste après le header, il doit visuellement rester léger. */
.front-page > .front-tabs,
.front-page > nav.front-tabs,
.front-page > .front-section-tabs,
.front-page > .section-tabs,
.front-page > .page-tabs,
.front-page > .site-section-nav{
  margin-top: -.45rem !important;
  margin-bottom: clamp(1rem, 2vw, 1.35rem) !important;
}

/* --------------------------------------------------------------------------
   3) Mobile : sous-menu horizontal scrollable compact, façon Actualités
-------------------------------------------------------------------------- */
@media screen and (max-width: 768px){
  main.container.front-page,
  .front-page{
    width: min(100% - 24px, var(--front-max, 1180px)) !important;
    max-width: min(100% - 24px, var(--front-max, 1180px)) !important;
    overflow-x: hidden !important;
  }

  main.front-page header.front-intro,
  main.front-page .front-intro,
  .front-page header.front-intro,
  .front-page .front-intro,
  .front-page .contact-intro,
  .front-page .actualites-intro,
  .front-page .publications-intro,
  .front-page .markets-intro,
  .front-page .sectors-intro,
  .front-page .organization-intro,
  .front-page .jobs-intro{
    padding: 1.05rem !important;
    border-radius: 16px !important;
    border: 1px solid rgba(51,70,72,.14) !important;
    border-top: 4px solid var(--adha-green, #1A7346) !important;
  }

  .front-page .front-intro h1,
  .front-page header.front-intro h1,
  .front-page .contact-intro h1,
  .front-page .actualites-intro h1,
  .front-page .publications-intro h1,
  .front-page .markets-intro h1,
  .front-page .sectors-intro h1,
  .front-page .organization-intro h1,
  .front-page .jobs-intro h1{
    font-size: clamp(1.65rem, 7.4vw, 2.1rem) !important;
    line-height: 1.1 !important;
    margin: .45rem 0 .55rem !important;
  }

  .front-page .front-intro h1::after,
  .front-page header.front-intro h1::after,
  .front-page .contact-intro h1::after,
  .front-page .actualites-intro h1::after,
  .front-page .publications-intro h1::after,
  .front-page .markets-intro h1::after,
  .front-page .sectors-intro h1::after,
  .front-page .organization-intro h1::after,
  .front-page .jobs-intro h1::after{
    width: 72px !important;
    max-width: 72px !important;
    height: 3px !important;
    margin-top: .45rem !important;
  }

  .front-page .front-tabs,
  .front-page nav.front-tabs,
  .front-page .actualites-tabs,
  .front-page .publications-tabs,
  .front-page .markets-tabs,
  .front-page .sectors-tabs,
  .front-page .organization-tabs,
  .front-page .apropos-tabs,
  .front-page .jobs-tabs,
  .front-page .front-section-tabs,
  .front-page .section-tabs,
  .front-page .page-tabs,
  .front-page .site-section-nav,
  .front-page .site-section-nav ul,
  .front-page .side-nav,
  .front-page .side-nav ul,
  .front-page .subnav,
  .front-page .subnav ul{
    width: 100% !important;
    max-width: 100% !important;
    flex-wrap: nowrap !important;
    gap: .45rem !important;
    margin-top: .75rem !important;
    padding: .05rem 0 .35rem !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    scroll-snap-type: x proximity;
  }

  .front-page .front-tabs::-webkit-scrollbar,
  .front-page nav.front-tabs::-webkit-scrollbar,
  .front-page .actualites-tabs::-webkit-scrollbar,
  .front-page .publications-tabs::-webkit-scrollbar,
  .front-page .markets-tabs::-webkit-scrollbar,
  .front-page .sectors-tabs::-webkit-scrollbar,
  .front-page .organization-tabs::-webkit-scrollbar,
  .front-page .apropos-tabs::-webkit-scrollbar,
  .front-page .jobs-tabs::-webkit-scrollbar,
  .front-page .front-section-tabs::-webkit-scrollbar,
  .front-page .section-tabs::-webkit-scrollbar,
  .front-page .page-tabs::-webkit-scrollbar,
  .front-page .site-section-nav::-webkit-scrollbar,
  .front-page .site-section-nav ul::-webkit-scrollbar,
  .front-page .side-nav::-webkit-scrollbar,
  .front-page .side-nav ul::-webkit-scrollbar,
  .front-page .subnav::-webkit-scrollbar,
  .front-page .subnav ul::-webkit-scrollbar{
    display: none !important;
  }

  .front-page .front-tab,
  .front-page .front-tabs a,
  .front-page .front-tabs button,
  .front-page .actualites-tabs a,
  .front-page .publications-tabs a,
  .front-page .markets-tabs a,
  .front-page .sectors-tabs a,
  .front-page .organization-tabs a,
  .front-page .apropos-tabs a,
  .front-page .jobs-tabs a,
  .front-page .front-section-tab,
  .front-page .front-section-tabs a,
  .front-page .section-tabs a,
  .front-page .page-tabs a,
  .front-page .site-section-nav a,
  .front-page .side-nav a,
  .front-page .subnav a{
    flex: 0 0 auto !important;
    min-height: 34px !important;
    height: 34px !important;
    padding: 0 .78rem !important;
    font-size: .78rem !important;
    scroll-snap-align: start;
  }
}

/* ========================================================================== 
   PATCH_FRONT_STRUCTURE_PHASE4_CANONICAL_20260511
   Socle canonique des pages internes publiques ADHA.
   HOME exclue. Modules = composants spécifiques uniquement.
========================================================================== */

:root{
  --front-max: 1180px;
  --front-pad-x: clamp(16px, 3vw, 28px);
  --front-gap: clamp(1rem, 2vw, 1.4rem);
  --front-green: var(--adha-green, #1A7346);
  --front-green-light: var(--adha-green-light, #85BB64);
  --front-text: var(--adha-gray-dark, #334648);
  --front-muted: var(--adha-gray, #5B6A6C);
  --front-border: rgba(51,70,72,.14);
  --front-radius: 16px;
  --front-radius-lg: 20px;
}

body:not(.home) main.container.front-page,
body:not(.home) .front-page{
  width: min(100% - var(--front-pad-x) * 2, var(--front-max)) !important;
  max-width: min(100% - var(--front-pad-x) * 2, var(--front-max)) !important;
  margin-inline: auto !important;
  padding-block: clamp(1rem, 2vw, 1.35rem) clamp(2rem, 4vw, 3rem) !important;
  box-sizing: border-box !important;
}

body:not(.home) .front-page *,
body:not(.home) .front-page *::before,
body:not(.home) .front-page *::after{ box-sizing: border-box; }

body:not(.home) .front-page .breadcrumb,
body:not(.home) .breadcrumb{
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 .85rem !important;
  padding: 0 !important;
  color: var(--front-muted) !important;
  font-size: .86rem !important;
  line-height: 1.5 !important;
  background: transparent !important;
  border: 0 !important;
}

body:not(.home) .front-page .breadcrumb a,
body:not(.home) .breadcrumb a{
  color: var(--front-green) !important;
  text-decoration: none !important;
  font-weight: 800 !important;
}

body:not(.home) .front-page .breadcrumb .sep,
body:not(.home) .breadcrumb .sep{
  color: rgba(91,106,108,.55) !important;
  margin-inline: .35rem !important;
}

body:not(.home) .front-page header.front-intro,
body:not(.home) .front-page .front-intro{
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 var(--front-gap) !important;
  padding: clamp(1.15rem, 2.2vw, 1.65rem) !important;
  border: 1px solid var(--front-border) !important;
  border-top: 4px solid var(--front-green) !important;
  border-inline-start: 1px solid var(--front-border) !important;
  border-inline-end: 1px solid var(--front-border) !important;
  border-radius: var(--front-radius-lg) !important;
  background: #fff !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

html[dir="rtl"] body:not(.home) .front-page header.front-intro,
html[dir="rtl"] body:not(.home) .front-page .front-intro{
  border: 1px solid var(--front-border) !important;
  border-top: 4px solid var(--front-green) !important;
}

body:not(.home) .front-page .front-chip{
  width: max-content !important;
  max-width: 100% !important;
  min-height: 24px !important;
  padding: 0 .58rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(133,187,100,.34) !important;
  border-radius: 999px !important;
  background: rgba(133,187,100,.08) !important;
  color: var(--front-green) !important;
  font-size: .72rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

body:not(.home) .front-page header.front-intro h1,
body:not(.home) .front-page .front-intro h1{
  max-width: 100% !important;
  margin: .55rem 0 .65rem !important;
  padding: 0 !important;
  color: var(--front-text) !important;
  font-size: clamp(2rem, 4vw, 3.05rem) !important;
  line-height: 1.08 !important;
  font-weight: 850 !important;
  letter-spacing: -.035em !important;
}

body:not(.home) .front-page header.front-intro h1::after,
body:not(.home) .front-page .front-intro h1::after{
  content: "" !important;
  width: 96px !important;
  max-width: 96px !important;
  height: 4px !important;
  display: block !important;
  margin-top: .55rem !important;
  margin-inline-start: 0 !important;
  margin-inline-end: auto !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--front-green) !important;
}

html[dir="rtl"] body:not(.home) .front-page header.front-intro h1::after,
html[dir="rtl"] body:not(.home) .front-page .front-intro h1::after{
  margin-inline-start: auto !important;
  margin-inline-end: 0 !important;
}

body:not(.home) .front-page header.front-intro p,
body:not(.home) .front-page .front-intro p{
  max-width: 900px !important;
  margin: .75rem 0 0 !important;
  padding: 0 !important;
  color: var(--front-muted) !important;
  font-size: .98rem !important;
  line-height: 1.75 !important;
  text-align: start !important;
  overflow-wrap: break-word !important;
}

body:not(.home) .front-page .front-tabs,
body:not(.home) .front-page nav.front-tabs,
body:not(.home) .front-page .site-section-nav,
body:not(.home) .front-page .site-section-nav ul,
body:not(.home) .front-page .front-section-tabs,
body:not(.home) .front-page .section-tabs,
body:not(.home) .front-page .page-tabs,
body:not(.home) .front-page .side-nav,
body:not(.home) .front-page .side-nav ul,
body:not(.home) .front-page .subnav,
body:not(.home) .front-page .subnav ul{
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: .5rem !important;
  margin: .95rem 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  list-style: none !important;
  overflow: visible !important;
}

body:not(.home) .front-page .front-tabs li,
body:not(.home) .front-page .site-section-nav li,
body:not(.home) .front-page .front-section-tabs li,
body:not(.home) .front-page .section-tabs li,
body:not(.home) .front-page .page-tabs li,
body:not(.home) .front-page .side-nav li,
body:not(.home) .front-page .subnav li{
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body:not(.home) .front-page .front-tab,
body:not(.home) .front-page .front-tabs a,
body:not(.home) .front-page .front-tabs button,
body:not(.home) .front-page .site-section-nav a,
body:not(.home) .front-page .front-section-tabs a,
body:not(.home) .front-page .section-tabs a,
body:not(.home) .front-page .page-tabs a,
body:not(.home) .front-page .side-nav a,
body:not(.home) .front-page .subnav a{
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 32px !important;
  height: 32px !important;
  padding: 0 .85rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(133,187,100,.38) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--front-green) !important;
  font-size: .82rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

body:not(.home) .front-page .front-tab.active,
body:not(.home) .front-page .front-tab.is-active,
body:not(.home) .front-page .front-tabs a.active,
body:not(.home) .front-page .front-tabs a.is-active,
body:not(.home) .front-page .front-tabs [aria-current="page"],
body:not(.home) .front-page .site-section-nav a.active,
body:not(.home) .front-page .site-section-nav a.is-active,
body:not(.home) .front-page .site-section-nav a[aria-current="page"],
body:not(.home) .front-page .front-section-tabs a.active,
body:not(.home) .front-page .front-section-tabs a.is-active,
body:not(.home) .front-page .section-tabs a.active,
body:not(.home) .front-page .page-tabs a.active,
body:not(.home) .front-page .side-nav a.active,
body:not(.home) .front-page .side-nav a.is-active,
body:not(.home) .front-page .side-nav a[aria-current="page"],
body:not(.home) .front-page .subnav a.active,
body:not(.home) .front-page .subnav a.is-active,
body:not(.home) .front-page .subnav a[aria-current="page"]{
  background: var(--front-green) !important;
  border-color: var(--front-green) !important;
  color: #fff !important;
}

body:not(.home) .front-page .front-section{
  width: 100% !important;
  max-width: 100% !important;
  margin-top: var(--front-gap) !important;
}

body:not(.home) .front-page .front-grid{
  display: grid !important;
  gap: var(--front-gap) !important;
  width: 100% !important;
}

body:not(.home) .front-page .front-grid--three{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
body:not(.home) .front-page .front-grid--two{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

body:not(.home) .front-page .front-card{
  min-width: 0 !important;
  border: 1px solid var(--front-border) !important;
  border-radius: var(--front-radius-lg) !important;
  background: #fff !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

body:not(.home) .front-page .front-card-head{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: .65rem !important;
  flex-wrap: wrap !important;
}

body:not(.home) .front-page .front-badge{
  width: max-content !important;
  max-width: 100% !important;
  min-height: 24px !important;
  padding: 0 .58rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: rgba(133,187,100,.1) !important;
  color: var(--front-green) !important;
  font-size: .72rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
}

body:not(.home) .front-page .front-btn,
body:not(.home) .front-page a.front-btn,
body:not(.home) .front-page button.front-btn{
  min-height: 32px !important;
  padding: 0 .85rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  border: 1px solid var(--front-green) !important;
  background: #fff !important;
  color: var(--front-green) !important;
  font-size: .8rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
body:not(.home) .front-page .front-btn--primary,
body:not(.home) .front-page a.front-btn--primary,
body:not(.home) .front-page button.front-btn--primary{
  background: var(--front-green) !important;
  color: #fff !important;
}

body:not(.home) .front-page .pagination,
body:not(.home) .front-page .front-pagination{
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: .35rem !important;
  margin-top: clamp(1.2rem, 2.2vw, 1.8rem) !important;
}
body:not(.home) .front-page .pagination a,
body:not(.home) .front-page .pagination span,
body:not(.home) .front-page .front-pagination a,
body:not(.home) .front-page .front-pagination span{
  min-width: 32px !important;
  height: 32px !important;
  padding: 0 .55rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid var(--front-border) !important;
  border-radius: 8px !important;
  color: var(--front-text) !important;
  text-decoration: none !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}
body:not(.home) .front-page .pagination a.active,
body:not(.home) .front-page .pagination span.active,
body:not(.home) .front-page .front-pagination a.active,
body:not(.home) .front-page .front-pagination span.active{
  background: var(--front-green) !important;
  border-color: var(--front-green) !important;
  color: #fff !important;
}

@media screen and (max-width: 900px){
  body:not(.home) .front-page .front-grid--three,
  body:not(.home) .front-page .front-grid--two{ grid-template-columns: 1fr !important; }
}

@media screen and (max-width: 768px){
  body:not(.home) main.container.front-page,
  body:not(.home) .front-page{
    width: min(100% - 24px, var(--front-max)) !important;
    max-width: min(100% - 24px, var(--front-max)) !important;
    padding-block: .85rem 2rem !important;
    overflow-x: hidden !important;
  }
  body:not(.home) .front-page .breadcrumb,
  body:not(.home) .breadcrumb{
    font-size: .78rem !important;
    margin-bottom: .65rem !important;
  }
  body:not(.home) .front-page header.front-intro,
  body:not(.home) .front-page .front-intro{
    padding: 1.05rem !important;
    border-radius: 16px !important;
    margin-bottom: 1rem !important;
  }
  body:not(.home) .front-page .front-chip{
    min-height: 22px !important;
    padding: 0 .5rem !important;
    font-size: .66rem !important;
  }
  body:not(.home) .front-page header.front-intro h1,
  body:not(.home) .front-page .front-intro h1{
    font-size: clamp(1.65rem, 7.4vw, 2.1rem) !important;
    line-height: 1.1 !important;
    margin: .45rem 0 .55rem !important;
  }
  body:not(.home) .front-page header.front-intro h1::after,
  body:not(.home) .front-page .front-intro h1::after{
    width: 72px !important;
    max-width: 72px !important;
    height: 3px !important;
    margin-top: .45rem !important;
  }
  body:not(.home) .front-page header.front-intro p,
  body:not(.home) .front-page .front-intro p{
    font-size: .9rem !important;
    line-height: 1.68 !important;
  }
  body:not(.home) .front-page .front-tabs,
  body:not(.home) .front-page nav.front-tabs,
  body:not(.home) .front-page .site-section-nav,
  body:not(.home) .front-page .site-section-nav ul,
  body:not(.home) .front-page .front-section-tabs,
  body:not(.home) .front-page .section-tabs,
  body:not(.home) .front-page .page-tabs,
  body:not(.home) .front-page .side-nav,
  body:not(.home) .front-page .side-nav ul,
  body:not(.home) .front-page .subnav,
  body:not(.home) .front-page .subnav ul{
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    gap: .45rem !important;
    padding: .05rem 0 .35rem !important;
    margin-top: .75rem !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    scroll-snap-type: x proximity;
  }
  body:not(.home) .front-page .front-tabs::-webkit-scrollbar,
  body:not(.home) .front-page nav.front-tabs::-webkit-scrollbar,
  body:not(.home) .front-page .site-section-nav::-webkit-scrollbar,
  body:not(.home) .front-page .site-section-nav ul::-webkit-scrollbar,
  body:not(.home) .front-page .front-section-tabs::-webkit-scrollbar,
  body:not(.home) .front-page .section-tabs::-webkit-scrollbar,
  body:not(.home) .front-page .page-tabs::-webkit-scrollbar,
  body:not(.home) .front-page .side-nav::-webkit-scrollbar,
  body:not(.home) .front-page .side-nav ul::-webkit-scrollbar,
  body:not(.home) .front-page .subnav::-webkit-scrollbar,
  body:not(.home) .front-page .subnav ul::-webkit-scrollbar{ display: none !important; }
  body:not(.home) .front-page .front-tabs a,
  body:not(.home) .front-page .front-tabs button,
  body:not(.home) .front-page .front-tab,
  body:not(.home) .front-page .site-section-nav a,
  body:not(.home) .front-page .front-section-tabs a,
  body:not(.home) .front-page .section-tabs a,
  body:not(.home) .front-page .page-tabs a,
  body:not(.home) .front-page .side-nav a,
  body:not(.home) .front-page .subnav a{
    flex: 0 0 auto !important;
    min-height: 34px !important;
    height: 34px !important;
    padding: 0 .78rem !important;
    font-size: .78rem !important;
    scroll-snap-align: start;
  }
  body:not(.home) .front-page .front-section{ margin-top: 1rem !important; }
  body:not(.home) .front-page .front-card{ border-radius: 16px !important; }
  body:not(.home) .front-page .front-btn,
  body:not(.home) .front-page a.front-btn,
  body:not(.home) .front-page button.front-btn{
    min-height: 30px !important;
    padding: 0 .72rem !important;
    font-size: .74rem !important;
  }
  body:not(.home) .front-page .pagination a,
  body:not(.home) .front-page .pagination span,
  body:not(.home) .front-page .front-pagination a,
  body:not(.home) .front-page .front-pagination span{
    min-width: 28px !important;
    height: 28px !important;
    border-radius: 7px !important;
    font-size: .76rem !important;
  }
}

/* ========================================================================== 
   PATCH_FRONT_STRUCTURE_PHASE5_NAV_OVERFLOW_20260511
   Sous-menus + anti-débordement mobile sur pages internes.
   Scope : body:not(.home) .front-page uniquement.
========================================================================== */

/* 1) Anti-débordement général : ne masque pas la structure, empêche juste
   les conteneurs internes de pousser la largeur mobile. */
body:not(.home){
  overflow-x: hidden;
}

body:not(.home) .front-page{
  min-width: 0 !important;
  overflow-x: clip !important;
}

@supports not (overflow-x: clip){
  body:not(.home) .front-page{ overflow-x: hidden !important; }
}

body:not(.home) .front-page > *,
body:not(.home) .front-page .front-intro,
body:not(.home) .front-page .front-section,
body:not(.home) .front-page .front-card,
body:not(.home) .front-page .content,
body:not(.home) .front-page .rich-content,
body:not(.home) .front-page .article-content,
body:not(.home) .front-page .page-content{
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

body:not(.home) .front-page img,
body:not(.home) .front-page video,
body:not(.home) .front-page iframe,
body:not(.home) .front-page table{
  max-width: 100% !important;
}

/* 2) Breadcrumb : un dernier libellé long ne doit jamais pousser la page. */
body:not(.home) .front-page .breadcrumb,
body:not(.home) .breadcrumb{
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

body:not(.home) .front-page .breadcrumb a,
body:not(.home) .breadcrumb a,
body:not(.home) .front-page .breadcrumb span,
body:not(.home) .breadcrumb span{
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
}

/* 3) Sous-menus publics : même rendu que Actualités, même si l'ancien HTML
   utilise markets-nav / side-nav / site-section-nav / publications-nav, etc. */
body:not(.home) .front-page :is(
  nav.front-tabs,
  .front-tabs,
  .actualites-tabs,
  .markets-tabs,
  .marches-tabs,
  .market-tabs,
  .markets-nav,
  .marches-nav,
  .market-nav,
  .sectors-tabs,
  .sector-tabs,
  .sectors-nav,
  .sector-nav,
  .organization-tabs,
  .apropos-tabs,
  .about-tabs,
  .organization-nav,
  .apropos-nav,
  .publications-tabs,
  .publication-tabs,
  .publications-nav,
  .publication-nav,
  .media-tabs,
  .jobs-tabs,
  .jobs-nav,
  .front-section-tabs,
  .section-tabs,
  .page-tabs,
  .site-section-nav,
  .side-nav,
  .subnav
):not(.breadcrumb):not(.pagination):not(.front-pagination){
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: .5rem !important;
  margin: .95rem 0 var(--front-gap, 1.2rem) !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  list-style: none !important;
  overflow: visible !important;
}

body:not(.home) .front-page :is(
  .front-tabs,
  .actualites-tabs,
  .markets-tabs,
  .marches-tabs,
  .markets-nav,
  .marches-nav,
  .sectors-tabs,
  .sectors-nav,
  .organization-tabs,
  .apropos-tabs,
  .organization-nav,
  .apropos-nav,
  .publications-tabs,
  .publication-tabs,
  .publications-nav,
  .publication-nav,
  .media-tabs,
  .jobs-tabs,
  .jobs-nav,
  .front-section-tabs,
  .section-tabs,
  .page-tabs,
  .site-section-nav,
  .side-nav,
  .subnav
) > ul{
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: inherit !important;
  align-items: center !important;
  gap: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  border: 0 !important;
  background: transparent !important;
}

body:not(.home) .front-page :is(
  .front-tabs,
  .actualites-tabs,
  .markets-tabs,
  .marches-tabs,
  .markets-nav,
  .marches-nav,
  .sectors-tabs,
  .sectors-nav,
  .organization-tabs,
  .apropos-tabs,
  .organization-nav,
  .apropos-nav,
  .publications-tabs,
  .publication-tabs,
  .publications-nav,
  .publication-nav,
  .media-tabs,
  .jobs-tabs,
  .jobs-nav,
  .front-section-tabs,
  .section-tabs,
  .page-tabs,
  .site-section-nav,
  .side-nav,
  .subnav
) li{
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body:not(.home) .front-page :is(
  .front-tabs,
  .actualites-tabs,
  .markets-tabs,
  .marches-tabs,
  .markets-nav,
  .marches-nav,
  .sectors-tabs,
  .sectors-nav,
  .organization-tabs,
  .apropos-tabs,
  .organization-nav,
  .apropos-nav,
  .publications-tabs,
  .publication-tabs,
  .publications-nav,
  .publication-nav,
  .media-tabs,
  .jobs-tabs,
  .jobs-nav,
  .front-section-tabs,
  .section-tabs,
  .page-tabs,
  .site-section-nav,
  .side-nav,
  .subnav
) a,
body:not(.home) .front-page :is(
  .front-tabs,
  .actualites-tabs,
  .markets-tabs,
  .marches-tabs,
  .sectors-tabs,
  .organization-tabs,
  .apropos-tabs,
  .publications-tabs,
  .publication-tabs,
  .media-tabs,
  .jobs-tabs,
  .front-section-tabs,
  .section-tabs,
  .page-tabs
) button{
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 32px !important;
  height: 32px !important;
  padding: 0 .85rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(133,187,100,.38) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--front-green, #1A7346) !important;
  font-size: .82rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

body:not(.home) .front-page :is(
  .front-tabs,
  .actualites-tabs,
  .markets-tabs,
  .marches-tabs,
  .markets-nav,
  .marches-nav,
  .sectors-tabs,
  .sectors-nav,
  .organization-tabs,
  .apropos-tabs,
  .organization-nav,
  .apropos-nav,
  .publications-tabs,
  .publication-tabs,
  .publications-nav,
  .publication-nav,
  .media-tabs,
  .jobs-tabs,
  .jobs-nav,
  .front-section-tabs,
  .section-tabs,
  .page-tabs,
  .site-section-nav,
  .side-nav,
  .subnav
) a:is(.active,.is-active,[aria-current="page"]),
body:not(.home) .front-page :is(
  .front-tabs,
  .actualites-tabs,
  .markets-tabs,
  .marches-tabs,
  .sectors-tabs,
  .organization-tabs,
  .apropos-tabs,
  .publications-tabs,
  .publication-tabs,
  .media-tabs,
  .jobs-tabs,
  .front-section-tabs,
  .section-tabs,
  .page-tabs
) button:is(.active,.is-active,[aria-current="page"]){
  background: var(--front-green, #1A7346) !important;
  border-color: var(--front-green, #1A7346) !important;
  color: #fff !important;
}

/* 4) Cas Marchés observé : liens simples après le header, sans wrapper exploitable.
   On évite le dépassement et on force un rendu nav quand ces liens sont dans un bloc. */
body:not(.home) .front-page .markets-page-links,
body:not(.home) .front-page .marches-page-links,
body:not(.home) .front-page .ao-page-links{
  width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .5rem !important;
  margin: .95rem 0 var(--front-gap, 1.2rem) !important;
  overflow: hidden !important;
}

/* 5) Publications : lignes type "Galeries photo / 10 éléments" contenues. */
body:not(.home) .front-page :is(
  .publications-page,
  .publications-section,
  .publications-filter,
  .publications-filters,
  .publication-types,
  .publication-type-list,
  .media-type-list,
  .publication-category-list
){
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}

body:not(.home) .front-page :is(
  .publications-filter,
  .publications-filters,
  .publication-types,
  .publication-type-list,
  .media-type-list,
  .publication-category-list
) > *{
  min-width: 0 !important;
  max-width: 100% !important;
}

@media screen and (max-width: 768px){
  /* Conteneur principal mobile : largeur stable, pas de poussée à droite. */
  body:not(.home) main.container.front-page,
  body:not(.home) .front-page{
    width: min(100% - 24px, var(--front-max, 1180px)) !important;
    max-width: min(100% - 24px, var(--front-max, 1180px)) !important;
    margin-inline: auto !important;
    overflow-x: clip !important;
  }

  @supports not (overflow-x: clip){
    body:not(.home) main.container.front-page,
    body:not(.home) .front-page{ overflow-x: hidden !important; }
  }

  body:not(.home) .front-page :is(
    nav.front-tabs,
    .front-tabs,
    .actualites-tabs,
    .markets-tabs,
    .marches-tabs,
    .market-tabs,
    .markets-nav,
    .marches-nav,
    .market-nav,
    .sectors-tabs,
    .sector-tabs,
    .sectors-nav,
    .sector-nav,
    .organization-tabs,
    .apropos-tabs,
    .about-tabs,
    .organization-nav,
    .apropos-nav,
    .publications-tabs,
    .publication-tabs,
    .publications-nav,
    .publication-nav,
    .media-tabs,
    .jobs-tabs,
    .jobs-nav,
    .front-section-tabs,
    .section-tabs,
    .page-tabs,
    .site-section-nav,
    .side-nav,
    .subnav
  ):not(.breadcrumb):not(.pagination):not(.front-pagination){
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    gap: .45rem !important;
    padding: .05rem 0 .35rem !important;
    margin-top: .75rem !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    scroll-snap-type: x proximity;
    mask-image: linear-gradient(to right, transparent 0, #000 10px, #000 calc(100% - 10px), transparent 100%);
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 10px, #000 calc(100% - 10px), transparent 100%);
  }

  html[dir="rtl"] body:not(.home) .front-page :is(
    nav.front-tabs,
    .front-tabs,
    .actualites-tabs,
    .markets-tabs,
    .marches-tabs,
    .markets-nav,
    .marches-nav,
    .sectors-tabs,
    .sectors-nav,
    .organization-tabs,
    .apropos-tabs,
    .organization-nav,
    .apropos-nav,
    .publications-tabs,
    .publication-tabs,
    .publications-nav,
    .publication-nav,
    .media-tabs,
    .jobs-tabs,
    .jobs-nav,
    .front-section-tabs,
    .section-tabs,
    .page-tabs,
    .site-section-nav,
    .side-nav,
    .subnav
  ):not(.breadcrumb):not(.pagination):not(.front-pagination){
    mask-image: linear-gradient(to left, transparent 0, #000 10px, #000 calc(100% - 10px), transparent 100%);
    -webkit-mask-image: linear-gradient(to left, transparent 0, #000 10px, #000 calc(100% - 10px), transparent 100%);
  }

  body:not(.home) .front-page :is(
    .front-tabs,
    .actualites-tabs,
    .markets-tabs,
    .marches-tabs,
    .markets-nav,
    .marches-nav,
    .sectors-tabs,
    .sectors-nav,
    .organization-tabs,
    .apropos-tabs,
    .organization-nav,
    .apropos-nav,
    .publications-tabs,
    .publication-tabs,
    .publications-nav,
    .publication-nav,
    .media-tabs,
    .jobs-tabs,
    .jobs-nav,
    .front-section-tabs,
    .section-tabs,
    .page-tabs,
    .site-section-nav,
    .side-nav,
    .subnav
  )::-webkit-scrollbar{
    display: none !important;
  }

  body:not(.home) .front-page :is(
    .front-tabs,
    .actualites-tabs,
    .markets-tabs,
    .marches-tabs,
    .markets-nav,
    .marches-nav,
    .sectors-tabs,
    .sectors-nav,
    .organization-tabs,
    .apropos-tabs,
    .organization-nav,
    .apropos-nav,
    .publications-tabs,
    .publication-tabs,
    .publications-nav,
    .publication-nav,
    .media-tabs,
    .jobs-tabs,
    .jobs-nav,
    .front-section-tabs,
    .section-tabs,
    .page-tabs,
    .site-section-nav,
    .side-nav,
    .subnav
  ) > ul{
    flex-wrap: nowrap !important;
    overflow: visible !important;
  }

  body:not(.home) .front-page :is(
    .front-tabs,
    .actualites-tabs,
    .markets-tabs,
    .marches-tabs,
    .markets-nav,
    .marches-nav,
    .sectors-tabs,
    .sectors-nav,
    .organization-tabs,
    .apropos-tabs,
    .organization-nav,
    .apropos-nav,
    .publications-tabs,
    .publication-tabs,
    .publications-nav,
    .publication-nav,
    .media-tabs,
    .jobs-tabs,
    .jobs-nav,
    .front-section-tabs,
    .section-tabs,
    .page-tabs,
    .site-section-nav,
    .side-nav,
    .subnav
  ) a,
  body:not(.home) .front-page :is(
    .front-tabs,
    .actualites-tabs,
    .markets-tabs,
    .marches-tabs,
    .sectors-tabs,
    .organization-tabs,
    .apropos-tabs,
    .publications-tabs,
    .publication-tabs,
    .media-tabs,
    .jobs-tabs,
    .front-section-tabs,
    .section-tabs,
    .page-tabs
  ) button{
    flex: 0 0 auto !important;
    min-height: 34px !important;
    height: 34px !important;
    padding: 0 .78rem !important;
    font-size: .78rem !important;
    scroll-snap-align: start;
  }

  /* Publications : les lignes compteur restent dans la largeur et ne créent pas de grip. */
  body:not(.home) .front-page :is(
    .publications-filter,
    .publications-filters,
    .publication-types,
    .publication-type-list,
    .media-type-list,
    .publication-category-list
  ){
    overflow-x: hidden !important;
  }

  body:not(.home) .front-page :is(
    .publications-filter,
    .publications-filters,
    .publication-types,
    .publication-type-list,
    .media-type-list,
    .publication-category-list
  ) a,
  body:not(.home) .front-page :is(
    .publications-filter,
    .publications-filters,
    .publication-types,
    .publication-type-list,
    .media-type-list,
    .publication-category-list
  ) button{
    max-width: 100% !important;
  }
}

/* ========================================================================== 
   PATCH_FRONT_STRUCTURE_PHASE6_NAVS_REAL_20260511
   Pont final pour les vrais sous-menus PHP + rubriques Publications.
========================================================================== */

body:not(.home) .front-page .front-tabs,
body:not(.home) .front-page nav.front-tabs,
body:not(.home) .front-page ul.front-tabs{
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

body:not(.home) .front-page .front-tabs .front-tab,
body:not(.home) .front-page .front-tabs a.front-tab{
  flex: 0 0 auto !important;
}

/* Publications : anciennes rubriques transformées visuellement en tabs communes. */
body:not(.home) .front-page :is(.pub-rubrics,.pub-rubric-list,.pub-rubric-tabs,.publication-types,.publication-type-list,.media-type-list,.publication-category-list,.publications-tabs){
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: .5rem !important;
  margin: .95rem 0 var(--front-gap, 1.2rem) !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

body:not(.home) .front-page :is(.pub-rubric-chip,.publication-type-chip,.media-type-chip,.publication-category-chip),
body:not(.home) .front-page :is(.pub-rubrics,.pub-rubric-list,.publication-types,.publication-type-list,.media-type-list,.publication-category-list,.publications-tabs) a{
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 32px !important;
  height: 32px !important;
  padding: 0 .85rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(133,187,100,.38) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--front-green, #1A7346) !important;
  font-size: .82rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

body:not(.home) .front-page :is(.pub-rubric-chip,.publication-type-chip,.media-type-chip,.publication-category-chip).is-active,
body:not(.home) .front-page :is(.pub-rubric-chip,.publication-type-chip,.media-type-chip,.publication-category-chip).active,
body:not(.home) .front-page :is(.pub-rubrics,.pub-rubric-list,.publication-types,.publication-type-list,.media-type-list,.publication-category-list,.publications-tabs) a:is(.active,.is-active,[aria-current="page"]){
  background: var(--front-green, #1A7346) !important;
  border-color: var(--front-green, #1A7346) !important;
  color: #fff !important;
}

@media screen and (max-width: 768px){
  body:not(.home) .front-page .front-tabs,
  body:not(.home) .front-page nav.front-tabs,
  body:not(.home) .front-page ul.front-tabs,
  body:not(.home) .front-page :is(.pub-rubrics,.pub-rubric-list,.pub-rubric-tabs,.publication-types,.publication-type-list,.media-type-list,.publication-category-list,.publications-tabs){
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    gap: .45rem !important;
    padding: .05rem 0 .35rem !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    scroll-snap-type: x proximity;
  }

  body:not(.home) .front-page .front-tabs::-webkit-scrollbar,
  body:not(.home) .front-page nav.front-tabs::-webkit-scrollbar,
  body:not(.home) .front-page ul.front-tabs::-webkit-scrollbar,
  body:not(.home) .front-page :is(.pub-rubrics,.pub-rubric-list,.pub-rubric-tabs,.publication-types,.publication-type-list,.media-type-list,.publication-category-list,.publications-tabs)::-webkit-scrollbar{
    display: none !important;
  }

  body:not(.home) .front-page .front-tabs .front-tab,
  body:not(.home) .front-page .front-tabs a.front-tab,
  body:not(.home) .front-page :is(.pub-rubric-chip,.publication-type-chip,.media-type-chip,.publication-category-chip),
  body:not(.home) .front-page :is(.pub-rubrics,.pub-rubric-list,.publication-types,.publication-type-list,.media-type-list,.publication-category-list,.publications-tabs) a{
    flex: 0 0 auto !important;
    min-height: 34px !important;
    height: 34px !important;
    padding: 0 .78rem !important;
    font-size: .78rem !important;
    scroll-snap-align: start;
  }
}
