/* =========================
   RESET hello-elementor — neutralise #c36
========================= */

a {
  color: inherit;
  text-decoration: none;
}
a:hover,
a:active {
  color: inherit;
}

button,
[type="button"],
[type="submit"],
[type="reset"] {
  border-color: currentColor;
  color: inherit;
  background-color: transparent;
}

button:hover,
button:focus,
[type="button"]:hover,
[type="button"]:focus,
[type="submit"]:hover,
[type="submit"]:focus {
  background-color: transparent;
  color: inherit;
}

/* =========================
   BASE
========================= */

html{
  background: white; /* zones latérales sur grands écrans */
  position: relative;
}

body{
  background: white;
  color: black;
  margin: 0 auto;
  padding-left: 5%;
  padding-right: 5%;
  max-width: 1512px; /* largeur max = MacBook Pro 14" */
  display: flex;
  flex-direction: column;
  gap: 5vh;
}

.elementor{
  display: flex;
  flex-direction: column;
  gap: 0vh;
}

.container{
  width: min(1200px, calc(100% - 2rem));
  margin-inline: auto;
}

/* Sécurité anti-bullets / marges WP */
.main-nav ul,
.main-nav li,
.mobile_menu ul,
.mobile_menu li{
  margin: 0;
  padding: 0;
  list-style: none;
}

a{
  color: inherit;
}

/* =========================
   ESPACEMENT SECTIONS
========================= */

.home_hero,
.home_acces_rapide,
.presentation_equipe,
.bloc_img_txt,
.bloc_txt_img,
.partenaires,
.en_savoir_plus,
.reglements,
.hero_photo,
.navigation_pages,
.frise_chrono,
.accompagnement,
.bien_etre,
.besoins_spécifiques,
.ACO,
.CDI,
.pastorale_axes,
.restauration,
.role_essentiel,
.actus-grid,
.modalités_paiement {
  margin-bottom: 5vh;
}

/* Espacement : parent des cartes facturation supplémentaire */
.e-con-boxed:has(.bloc_fact_supp) {
  margin-bottom: 5vh;
}

/* =========================
   FONTS
========================= */

@font-face {
  font-family: "poppins_regular";
  src: url(../fonts/Poppins-Regular.ttf);
}

@font-face {
  font-family: "poppins_bold";
  src: url(../fonts/Poppins-Bold.ttf);
}

@font-face {
  font-family: "poppins_italic";
  src: url(../fonts/Poppins-Italic.ttf);
}

@font-face {
  font-family: "Loos_regular";
  src: url(../fonts/fonnts.com-Loos_Normal_Regular.otf);
}

@font-face {
  font-family: "Loos_bold";
  src: url(../fonts/fonnts.com-Loos_Normal_Bold.otf);
}

p, a, li, ul, span{
  font-family: "Poppins", sans-serif;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6{
  font-family: "Loos_bold", sans-serif;
  font-weight: 700;
  margin: 0;
}

h1{
  font-size: 3rem;
  text-shadow: 4px 4px 3px rgba(0, 0, 0, 0.4);
}

@media (min-width: 1870px){

  /* titres principaux */
  h1{
    font-size: 4.5rem;
  }

  h2{
    font-size: 2.5rem;
  }

  h3{
    font-size: 1.8rem;
  }

  /* textes */
  p,
  span,
  a,
  li{
    font-size: 1.2rem;
  }
}

/* =========================
   (OPTION) Couleurs fallback
========================= */

:root{
  --color-primary: #4678B9;
  --color-secondary: #AAC1DF;
  --color-muted: #e9e2d8;
  --color-on-primary: #fff; /* texte sur fond --color-primary — basculer en #1a1a1a si couleur claire */

  --header-height: 60px;
  --header-gap: 24px;
  --nav-gap: 14px;

  --drop-gap: 12px;
  --drop-padding: 14px;
  --drop-radius: 28px;

  --flex-direction: none;
}

.bleu1{
  background-color: var(--primary3)!important;
}

.bleu2{
  background-color: var(--primary5)!important;
}

.bleu3{
  background-color: var(--primary7)!important;
}

.beige1{
  background-color: var(--muted4)!important;
}

.beige2{
  background-color: var(--muted7)!important;
}

.clair1{
  background-color: var(--secondary3);
}

/* =========================
   HEADER – LAYOUT
========================= */

.site-header{
  position: relative;
  z-index: 999;
  background: white;

  /* Couleurs figées — le header ne doit jamais hériter des surcharges par page */
  --color-primary:   #4678B9;
  --color-secondary: #AAC1DF;
  --color-muted:     #e9e2d8;
  --primary2:  rgb(62, 106, 163);
  --primary7:  rgb(22, 36, 53);
  --secondary3: rgb(126, 161, 205);
  --muted2:    rgb(227, 216, 201);
  --muted7:    rgb(197, 166, 126);
}

.header-inner{
  position: relative; /* ancre absolute pour .drop */
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--header-height);
  gap: var(--header-gap);
}

/* =========================
   LOGO
========================= */

.logo{
  flex: 0 0 auto;
}

.logo a{
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  border: none;
}

.logo-img{
  display: block;
  max-height: 64px;
  width: auto;
  height: auto;
}

/* =========================
   MENU TOP (WP)
========================= */

.main-nav{
  flex: 1 1 auto;
  display: flex;
  justify-content: right;
  position: relative;
  overflow: visible;
}

.nav-list{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nav-gap);
  width: 90%;
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: visible;
}

.nav-list > li{
  position: relative;
}

.nav-list > li > a{
  font-family: "Loos_bold", sans-serif;
  font-size: 1.2rem;
  padding: 0.35rem 0.55rem;
  cursor: pointer;
  text-decoration: none;
  color: black;
  display: block;
  border: none;
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

/* Rounded spécifiques — items sans dropdown (pill complet) */
.nav-list > li:nth-child(1) > a,
.nav-list > li:nth-child(5) > a,
.nav-list > li:nth-child(7) > a,
.nav-list > li:nth-child(8) > a{
  border-radius: 25px;
}

/* Items avec dropdown — radius uniquement en haut */
.nav-list > li:nth-child(2) > a,
.nav-list > li:nth-child(3) > a,
.nav-list > li:nth-child(4) > a,
.nav-list > li:nth-child(6) > a{
  border-radius: 15px 15px 0 0;
}

/* On cache les sub-menu WP (tu utilises tes mega panels) */
.nav-list .sub-menu{
  display: none;
}

/* =========================
   HOVER COULEURS
========================= */

.nav-list > li:nth-child(1) > a:hover{
  background-color: var(--primary7);
  color: white;
}

.nav-list > li:nth-child(2) > a:hover{
  background-color: var(--primary2);
  color: white;
}

.nav-list > li:nth-child(3) > a:hover{
  background-color: var(--secondary3);
  color: white;
}

.nav-list > li:nth-child(4) > a:hover{
  background-color: var(--muted2);
  color: var(--color-primary);
}

.nav-list > li:nth-child(5) > a:hover{
  background-color: var(--muted7);
  color: white;
  border-radius: 25px;
}

.nav-list > li:nth-child(6) > a:hover{
  background-color: var(--primary7);
  color: white;
}

.nav-list > li:nth-child(7) > a:hover{
  background-color: var(--primary2);
  color: white;
}

.nav-list > li:nth-child(8) > a:hover{
  background-color: var(--secondary3);
  color: white;
  border-radius: 25px;
}

/* =========================
   “ACTIVE” quand mega menu ouvert
========================= */

.nav-list > li.is-open > a{
  color: white;
}

.nav-list > li.is-open.is-lycee > a{
  background-color: var(--primary2);
}

.nav-list > li.is-open.is-formations > a{
  background-color: var(--secondary3);
}

.nav-list > li.is-open.is-vie > a{
  background-color: var(--muted2);
  color: var(--color-primary);
}

.nav-list > li.is-open.is-inscriptions > a{
  background-color: var(--primary7);
}

/* =========================
   MEGA PANELS (tes .drop_*)
========================= */

.drop{
  display: none;
  position: absolute;
  top: calc(85%);
  left: 50%;
  z-index: 1000;

  width: 90%;
  max-width: min(1100px, calc(100vw - 2rem));
  background-color: white;
  border-radius: var(--drop-radius);
  padding: var(--drop-padding);
  gap: var(--drop-gap);

  align-items: stretch;
  justify-content: space-around;

  box-shadow: 0 12px 30px rgba(0,0,0,0.08);
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease, transform 160ms ease;

  transform: translateX(-50%) translateY(6px);
}

/* pont anti-flicker */
.drop::before{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -14px;
  height: 14px;
}

/* visible */
.drop.visible{
  display: flex;
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

/* cartes */
.drop a{
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-width: 160px;
  max-width: 240px;
  height: auto;

  padding: 0.75rem;
  gap: 8px;

  cursor: pointer;
  text-decoration: none;
  color: inherit;
}

/* image wrapper */
.drop a .img-wrapper{
  position: relative;
  width: 100%;
}

.drop a .img-wrapper img{
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 18px;
  height: auto;
}

/* flèche overlay */
.drop a .img-wrapper::after{
  content: "";
  position: absolute;
  bottom: -8px;
  right: -8px;
  width: 56px;
  height: 56px;
  background-image: url("https://bourg-chevreau.allincommunication.fr/site/wp-content/uploads/2026/03/fleche_actu.png");
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 10;
  pointer-events: none;
}

.drop a .titre_menu{
  font-family: "Loos_bold", sans-serif !important;
  font-size: 1.15rem;
  margin: 0;
}

.drop a .desc_menu{
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.15rem;
}

/* bordures */
.drop_lycee{ border: solid 5px var(--primary2); }
.drop_formations{ border: solid 5px var(--secondary3); }
.drop_inscriptions{ border: solid 5px var(--primary7); }
.drop_viedeseleves{ border: solid 5px var(--muted2); }

/* vie des élèves : variantes */
.drop_viedeseleves a .img-wrapper img{
  border-radius: 18px;
}

/* =========================
   BURGER + MOBILE MENU
========================= */

/* ---- Burger ---- */
/* =========================
   BURGER
========================= */

.menu-burger {
  display: none;
  position: relative;
  z-index: 2; /* au-dessus du overlay mobile_menu */
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 6px;
}

.menu-burger .ligne-burger {
  width: 28px;
  height: 3px;
  background-color: #1a1a1a;
  border-radius: 50px;
  display: block;
  transition: transform 300ms cubic-bezier(0.33, 1, 0.68, 1), opacity 200ms ease;
  transform-origin: center;
}

/* Burger → X */
.menu-burger.is-open .ligne-burger:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.menu-burger.is-open .ligne-burger:nth-child(2) { opacity: 0; transform: scaleX(0); }
.menu-burger.is-open .ligne-burger:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

/* header-inner au-dessus du menu overlay */
.header-inner { z-index: 2; }

/* =========================
   MENU OVERLAY — slide from right
========================= */

.mobile_menu {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100dvh;
  background: #fff;
  z-index: 1;
  overflow: hidden;

  /* Fermé : hors écran à droite */
  transform: translateX(100%);
  visibility: hidden;
  pointer-events: none;
  transition:
    transform 0.44s cubic-bezier(0.33, 1, 0.68, 1),
    visibility 0s linear 0.44s;
}

.mobile_menu.menu_active {
  transform: translateX(0);
  visibility: visible;
  pointer-events: auto;
  transition:
    transform 0.44s cubic-bezier(0.33, 1, 0.68, 1),
    visibility 0s linear 0s;
}

/* =========================
   PANELS — glissement gauche/droite
========================= */

.mobile_panels {
  display: flex;
  width: 200%;
  height: 100%;
  transition: transform 0.38s cubic-bezier(0.33, 1, 0.68, 1);
}
.mobile_panels.show-sub { transform: translateX(-50%); }

/* Panel principal */
.mob-main-panel {
  width: 50%;
  height: 100%;
  overflow-y: auto;
  padding: calc(var(--header-height) + 2rem) 2.5rem 3rem;
  box-sizing: border-box;
}

.mob-nav {
  display: flex;
  flex-direction: column;
}

/* Slot sous-panneaux */
.mob-sub-slot {
  width: 50%;
  height: 100%;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}

/* Sous-panneaux */
.mob-subpanel {
  position: absolute;
  inset: 0;
  padding: calc(var(--header-height) + 2rem) 2.5rem 3rem;
  display: none;
  flex-direction: column;
  overflow-y: auto;
  box-sizing: border-box;
}
.mob-subpanel.is-active { display: flex; }

/* =========================
   ITEMS NAV
========================= */

.mob-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.15rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
  color: #1a1a1a;
  font-family: "Loos_bold", sans-serif;
  font-size: clamp(1.4rem, 4.5vw, 1.8rem);
  text-decoration: none;
  border-radius: 0;
  background: transparent;
  border-top: none;
  border-left: none;
  border-right: none;
  cursor: pointer;
  width: 100%;
  text-align: left;
  transition: color 180ms ease, padding-left 180ms ease;
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
}

.mob-nav > .mob-item:first-child,
.mob-subpanel > .mob-item:first-of-type {
  border-top: 1px solid rgba(0, 0, 0, 0.07);
}

.mob-item:hover,
.mob-item:active {
  color: var(--color-primary);
  padding-left: 0.4rem;
  background: transparent;
  transform: none;
}

.mob-chevron {
  flex-shrink: 0;
  color: rgba(0, 0, 0, 0.25);
  transition: color 180ms ease;
}

.mob-item:hover .mob-chevron { color: var(--muted7); }

/* =========================
   BOUTON RETOUR
========================= */

.mob-back {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0 0 1.8rem;
  color: rgba(0, 0, 0, 0.35);
  font-size: 0.9rem;
  font-family: "poppins_regular", sans-serif;
  border: none;
  background: none;
  cursor: pointer;
  transition: color 180ms ease;
  -webkit-tap-highlight-color: transparent;
}
.mob-back:hover { color: #1a1a1a; }

/* =========================
   TITRE DU SOUS-PANNEAU
========================= */

.mob-sub-title {
  font-family: "Loos_bold", sans-serif;
  font-size: clamp(2rem, 7vw, 3rem);
  line-height: 1.1;
  color: #1a1a1a;
  margin: 0 0 1.8rem;
}

/* Couleur accent par section — identique au hover desktop */
#mob-sub-lycee     .mob-sub-title { color: var(--primary2); }
#mob-sub-lycee     .mob-back:hover { color: var(--primary2); }

#mob-sub-formations .mob-sub-title { color: var(--secondary3); }
#mob-sub-formations .mob-back:hover { color: var(--secondary3); }

#mob-sub-vie       .mob-sub-title { color: var(--muted7); }
#mob-sub-vie       .mob-back:hover { color: var(--muted7); }

#mob-sub-inscriptions .mob-sub-title { color: var(--primary7); }
#mob-sub-inscriptions .mob-back:hover { color: var(--primary7); }

/* =========================
   HOME HERO (DESKTOP)
========================= */

.home_hero{
  margin-bottom: 5vh;
  width: 100%;
  height: 75vh;
  margin-left: auto;
  margin-right: auto;
  border-radius: 30px;
  overflow: hidden;
  position: relative;
}

.home_hero > .e-con-inner{
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

.home_hero .hero_video{
  width: 100%;
  height: 100%;
  position: relative;
}

.home_hero .elementor-background-video-container{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 30px;
}

.home_hero video.elementor-background-video-hosted{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 30px;
}

.home_hero .hero_video::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.25);
  pointer-events: none;
}

.home_hero .home_hero_txt,
.home_hero .home_hero_title{
  position: relative;
  z-index: 2;
  color: #fff;
  margin: 0;
}

.home_hero .home_hero_txt{
  position: absolute;
  bottom: 345px;
  left: 45px;
  max-width: 60%;
  font-size: 2rem;
}

.home_hero .home_hero_title{
  position: absolute;
  bottom: 70px;
  left: 45px;
  max-width: 40%;
}

.home_hero .home_hero_title .elementor-heading-title{
  color: #fff;
  margin: 0;
  text-align: left;
  width: min(50vw, 800px);
  font-size: clamp(5rem, 5vw, 7rem);
}

.home_hero .home_hero_img{
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3;
}

.home_hero .home_hero_img img{
  display: block;
  width: min(520px, 25vw);
  height: auto;
}

/* =========================
   HOME ACCÈS RAPIDE (DESKTOP)
========================= */

.home_acces_rapide{
  margin-bottom: 5vh;
}

.home_acces_rapide .e-con-inner{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  align-items: stretch;
}

.home_acces_rapide_intro{
  height: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.home_acces_rapide_intro .elementor-widget-heading{
  display: flex;
  justify-content: center;
}

.home_acces_rapide_intro .elementor-widget-heading h2{
  font-size: 2.5rem;
  width: 60%;
  margin: 1vw;
}

.home_acces_rapide_intro .elementor-widget-text-editor{
  display: flex;
  justify-content: center;
}

.home_acces_rapide_intro p{
  font-size: 1rem;
  width: 60%;
  margin: 1vw;
}

.home_acces_rapide_boite{
  width: 100%;
  display: flex;
  flex-direction: column;
  border-radius: 30px;
  border: solid 2px black;
  position: relative;
  overflow: hidden;
}

.acces_rapide_img1,
.acces_rapide_img2,
.acces_rapide_img3,
.acces_rapide_img4,
.acces_rapide_img5{
  height: 25vh;
  display: flex;
  justify-content: center;
  border-bottom: solid 2px black;
}

.acces_rapide_img1{ background-color: var(--color-secondary); }
.acces_rapide_img2{ background-color: var(--color-secondary); }
.acces_rapide_img3{ background-color: var(--color-muted); }
.acces_rapide_img4{ background-color: var(--color-muted); }
.acces_rapide_img5{ background-color: var(--primary5); }

.acces_rapide_img1 img,
.acces_rapide_img2 img,
.acces_rapide_img3 img,
.acces_rapide_img4 img,
.acces_rapide_img5 img{
  height: 25vh;
  width: auto;
}

.home_acces_rapide_boite h2{
  margin: 1.5vw;
  font-size: 1.5rem;
}

.home_acces_rapide_boite p{
  margin: 1.5vw;
  margin-top: 0;
  width: 70%;
}

.acces_rapide_fleche{
  width: fit-content;
  position: absolute;
  bottom: 10px;
  right: 15px;
}

.acces_rapide_fleche img{
  width: 50px;
  height: auto;
}

/* =========================
   LAYOUT ÉQUIPE
========================= */

.presentation_equipe{
  margin-top: 5vh;
  margin-bottom: 5vh;
}

.presentation_equipe .e-con-inner{
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr;
  grid-template-areas:
    "texte image"
    "texte equipe";
  row-gap: 10px;
}

/* BLOC TEXTE MR CHEVALIER */
.presentation_equipe .txt_mr_chevalier{
  grid-area: texte;
  width: 70%;
  text-align: left;
}

/* IMAGE MR CHEVALIER */
.presentation_equipe .image_mr_chevalier div{
  grid-area: image;
  display: flex;
  justify-content: center;
  align-items: center;
}

.image_mr_chevalier img{
  width: 40%;
  height: auto;
}

/* BLOC ÉQUIPE */
.presentation_equipe .bloc_vie_scolaire{
  grid-area: equipe;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
  gap: 2vh;
}

/* CARTES ÉQUIPE */
.sandra_gohier,
.marie_renou{
  width: 80%;
  height: fit-content;
  border-radius: 30px;
  overflow: hidden;
  border: solid 2px black;
  display: flex;
  flex-direction: column;
  position: relative;
}

.marie_renou{
  margin-left: 20%;
}

/* TEXTE CARTES */
.nom_equipe{
  background-color: var(--primary5);
  color: white;
  padding-left: 2vh;
  padding-right: 1vh;
  padding-top: 1vh;
}

.nom_equipe p{ margin: 0; }

.equipe_fonction{
  background-color: var(--primary5);
  color: white;
  padding-left: 2vh;
  padding-right: 1vh;
  padding-bottom: 1vh;
}

.equipe_fonction p{ margin: 0; }

.txt_equipe{
  padding: 2vh;
}

/* IMAGES ABSOLUTES */
.img_sandra_gohier{
  height: 80px;
  width: 80px;
  position: absolute;
  top: -5%;
  right: 0%;
}

.img_sandra_gohier img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.img_marie_renou{
  height: 80px;
  width: 80px;
  position: absolute;
  bottom: 0%;
  right: 0%;
}

.img_marie_renou img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* =========================
   ACTUS - CARDS
========================= */

.actus-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin-top: 5vh;
  margin-bottom: 5vh;
}

.actu-card{
  overflow: hidden;
  background: #fff;
}

.actu-card__media{
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 26px;
}

.actu-card__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.actu-card__img--placeholder{
  width: 100%;
  height: 100%;
  background: #e9e9e9;
}

.actu-card__body{
  padding-top: 28px;
}

.actu-card__title{
  margin: 0 0 14px 0;
  font-size: 1.1rem;
  line-height: 1.05;
  font-weight: 800;
}

.actu-card__title a{
  color: inherit;
  text-decoration: none;
}

.actu-card__date{
  margin: 0 0 22px 0;
  color: #bcbcbc;
  font-size: 1rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.actu-card__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 11px;
  border: 2px solid #1a1a1a;
  border-radius: 999px;
  color: #1a1a1a;
  text-decoration: none;
  font-size: 1.05rem;
}

.actu-card__btn:hover{
  background: rgba(0,0,0,0.04);
}

/* =========================
   BLOC IMAGE + TEXTE
========================= */

.bloc_img_txt{
  margin-top: 5vh;
  margin-bottom: 5vh;
}

.bloc_img_txt .e-con-inner{
  display: flex;
  align-items: stretch;
  gap: 64px;
  position: relative;
}

.bloc_img_txt_image{
  flex: 0 0 50%;
  height: 40vh;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}

.bloc_img_txt_image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bloc_img_txt_text{
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
}

.bloc_img_txt_text a{
  align-self: flex-start;
  padding: 10px 16px;
  border-radius: 100px;
  background-color: var(--primary7);
}

.bloc_img_txt_text a span{
  color: white;
  font-size: 1rem;
}

/* =========================
   PARTENAIRES
========================= */

.partenaires{
  margin-top: 5vh;
  margin-bottom: 5vh;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  align-items: center;
}

.partenaires img{
  width: 150px;
  height: auto;
  margin-right: 24px;
}

.partenaires img:hover{
  transform: translateY(-4px);
  transition: transform 160ms ease;
}

/* =========================
   EN SAVOIR PLUS
========================= */

.en_savoir_plus{
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  position: relative;
  min-height: 40vh;
  padding-bottom: 4rem;
}

.en_savoir_plus_haut{
  display: flex;
  justify-content: space-between;
  width: 90%;
  height: 25vh;
  background-color: var(--secondary3);
  padding: clamp(1rem, 3vw, 3rem);
  border-radius: 30px;
  position: relative;
}

.en_savoir_plus_haut .elementor-element-a796161{
  width: 60%;
}

.en_savoir_plus_haut h2,
.en_savoir_plus_haut .uk-text-center{
  color: white;
  margin: 0;
  text-align: center;
}

.grosse_beige{
  width: 60px;
  height: auto;
  position: absolute;
  top: 5%;
  left: 5%;
}

.grosse_beige img{
  width: 100%;
  height: auto;
}

.grosse_marron{
  width: 60px;
  height: auto;
  position: absolute;
  bottom: 5%;
  right: 5%;
}

.grosse_marron img{
  width: 100%;
  height: auto;
}

.petite_beige{
  width: 30px;
  height: auto;
  position: absolute;
  top: 10%;
  right: 5%;
}

.petite_beige img{
  width: 100%;
  height: auto;
}

.petite_marron{
  width: 30px;
  height: auto;
  position: absolute;
  bottom: 10%;
  left: 5%;
}

.petite_marron img{
  width: 100%;
  height: auto;
}

.en_savoir_plus_bas{
  display: flex;
  width: 50%;
  padding: clamp(1rem, 2vw, 2.5rem);
  border-radius: 30px;
  background-color: white;
  border: solid 5px var(--muted2);
  position: absolute;
  bottom: -2rem;
}

.en_savoir_plus_bas p{
  text-align: center;
}

/* =========================
   HERO PHOTO
========================= */

.hero_photo{
  border-radius: 50px;
  overflow: hidden;
  height: 45vh;
}

.hero_photo .e-con-inner{
  width: 100%;
  display: flex;
  justify-content: space-between;
  position: relative;
  margin-bottom: 5vh;
}

.hero_photo .e-con-inner img{
  height: 45vh;
  width: auto;
}

.hero_photo .e-con-inner .hero_img_absolute{
  position: absolute;
  bottom: 0;
  right: 0;
  display: flex;
  align-items: flex-end;
}

.hero_photo .e-con-inner .hero_img_absolute img{
  height: 15vh;
}

.hero_photo .e-con-inner h1,
.hero_photo .e-con-inner h2{
  width: min(30vw, 450px);
  color: white;
}

.hero_photo p{
  color: white !important;
}

.hero_photo .e-child{
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 50%;
    margin-left: 5%;
}

/* =========================
   NAVIGATION PAGES
========================= */

.navigation_pages .e-con-inner{
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: stretch; /* tous les blocs à la même hauteur */
  gap: 1.5rem;
  margin-bottom: 10vh;
}

.navigation_pages .e-con-inner .btn_nav{
  cursor: pointer;
  flex: 1;            /* distribue équitablement : 2 ou 3 blocs */
  display: flex;
  flex-direction: row;
  gap: 1rem;
  justify-content: flex-start;
  align-items: center;
  border: solid 3px var(--primary3);
  border-radius: 25px;
  padding: 1.25rem;
  box-sizing: border-box;
  overflow: hidden;   /* rien ne dépasse jamais */
}

/* Icône container : taille fixe identique pour toutes les bulles */
.navigation_pages .e-con-inner .btn_nav .elementor-widget-image{
  flex-shrink: 0;
  width: clamp(52px, 5vw, 76px);
  height: clamp(52px, 5vw, 76px);
  display: flex;
  align-items: center;
  justify-content: center;
  border: solid 3px var(--primary3);
  border-radius: 16px;
  padding: clamp(8px, 1vw, 14px);
  box-sizing: border-box;
  overflow: hidden;
}

/* L'image remplit sa bulle, son ratio ne change rien à la taille */
.navigation_pages .e-con-inner .btn_nav img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  border: none;
  padding: 0;
  border-radius: 0;
}

/* Empêche le e-con Elementor (wrapper de l'image) de s'étirer */
.navigation_pages .e-con-inner .btn_nav > .e-con:first-child{
  flex: 0 0 auto;
}

.navigation_pages .e-con-inner .btn_nav h1,
.navigation_pages .e-con-inner .btn_nav h4,
.navigation_pages .e-con-inner .btn_nav .elementor-heading-title{
  font-size: clamp(0.9rem, 1.3vw, 1.3rem);
  font-family: "Loos_bold", sans-serif;
  font-weight: 700;
  margin: 0;
  overflow: hidden;
}

.navigation_pages .e-con-inner .btn_nav p{
  font-size: clamp(0.75rem, 1vw, 0.9rem);
  margin: 0;
  overflow: hidden;
}

.nav_a_propos1{
  background-color: var(--primary3);
  border: solid 3px var(--primary3)!important;
  color: white;
}

.nav_equipe2{
  background-color: var(--primary5);
  border: solid 3px var(--primary5)!important;
  color: white;
}

.nav_pastorale3{
  background-color: var(--primary7);
  border: solid 3px var(--primary7)!important;
  color: white;
}

.nav_inscriptions1{
  background-color: var(--primary7);
  border: solid 3px var(--primary7)!important;
  color: white;
}

.nav_tarifs2{
  background-color: var(--primary7);
  border: solid 3px var(--primary7)!important;
  color: white;
}

.nav_bourses3{
  background-color: var(--primary7);
  border: solid 3px var(--primary7)!important;
  color: white;
}

.nav_a_viedeseleves1{
  background-color: #d4ae87;
  border: solid 3px rgb(22, 36, 53)!important;
  color: white;
}

.nav_annees_lycees2{
  background-color: #b8906a;
  border: solid 3px rgb(22, 36, 53)!important;
  color: white;
}

.no-style{
  padding: 0!important;
  margin: 0!important;
  background-color: transparent!important;
  span{
    color: black!important;
  }
}

.bord_rond img{
  border-radius: 25px;
}

.btn_formation_activites a{
  font-family: "Loos_bold", sans-serif;
  background-color: var(--color-secondary)!important;
}

/* Sur l'item actif : border de la bulle en blanc */
.nav_a_propos1 .elementor-widget-image,
.nav_equipe2 .elementor-widget-image,
.nav_pastorale3 .elementor-widget-image,
.nav_inscriptions1 .elementor-widget-image,
.nav_tarifs2 .elementor-widget-image,
.nav_bourses3 .elementor-widget-image,
.nav_a_viedeseleves1 .elementor-widget-image,
.nav_annees_lycees2 .elementor-widget-image{
  border: solid 3px white !important;
}

/* =========================
   FRISE CHRONO
========================= */

.frise_chrono .e-con-inner{
  display: flex;
  justify-content: space-between;
  margin-top: 10vh;
  margin-bottom: 10vh;
}

.frise_chrono .e-con-inner p{
  border-left: solid 1px black;
  padding-left: 15px;
  font-size: 0.9rem;
}

.frise_chrono .e-con-inner .bloc_frise_bleu{
  width: 10vw;
  max-width: 200px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.frise_chrono .e-con-inner .bloc_frise_bleu .histoire_date p{
  font-weight: bold;
  font-size: 1.5rem;
  color: var(--color-primary);
  border-left: none;
}

.frise_chrono .e-con-inner .bloc_frise_bleu .elementor-widget-image{
  display: flex;
  justify-content: center;
}

.frise_chrono .e-con-inner .bloc_frise_beige{
  width: 10vw;
  max-width: 200px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.frise_chrono .e-con-inner .bloc_frise_beige .histoire_date_beige p{
  font-weight: bold;
  font-size: 1.5rem;
  color: var(--muted4);
  border-left: none !important;
}

.frise_chrono .e-con-inner .bloc_frise_beige .elementor-widget-image{
  display: flex;
  justify-content: center;
}

/* =========================
   RÉSULTATS BAC
========================= */

.resultats_bac .e-con-inner{
  display: flex;
  justify-content: center;
  gap: clamp(1.5rem, 3vw, 3rem);
  margin-top: 10vh;
  margin-bottom: 10vh;
}

.resultats_bac .e-con-inner .resultat_bac_titre{
  flex: 1 1 0;
  max-width: 380px;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  height: 25vh;
}

.resultats_bac .e-con-inner .resultats_brevet{
  flex: 1 1 0;
  max-width: 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-around;
  height: 25vh;
  padding: clamp(0.5rem, 1vw, 1.5rem);
  border: solid 1px var(--color-primary);
  border-radius: 25px;
}

.resultats_bac .e-con-inner .resultats_brevet img{
  width: 40px;
  height: auto;
}

.resultats_bac .e-con-inner .resultats_brevet .elementor-widget-heading{
  display: flex;
  justify-content: center;
  align-items: center;
}

.resultats_bac .e-con-inner .resultats_brevet .elementor-widget-heading h3{
  font-size: 1.1rem;
  font-weight: bold;
  width: 70%;
  text-align: center;
}

.resultats_bac .e-con-inner .resultats_avant{
  color: #bcbcbc;
}

/* =========================
   BLOC TEXTE + IMAGE
========================= */

.bloc_txt_img{
  margin-top: 5vh;
  margin-bottom: 5vh;
}

.bloc_txt_img .e-con-inner{
  display: flex;
  align-items: stretch;
  gap: 64px;
  position: relative;
}

.bloc_txt_img_image{
  flex: 0 0 50%;
  height: 40vh;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}

.bloc_txt_img_image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bloc_txt_img_text{
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
}

.bloc_txt_img_text a{
  align-self: flex-start;
  padding: 10px 16px;
  border-radius: 100px;
  background-color: var(--primary7);
}

.bloc_txt_img_text a span{
  color: white;
  font-size: 1rem;
}

/* =========================
   RÔLES ESSENTIELS
========================= */

.role_essentiel .e-con-inner{
  margin-top: clamp(70px, 8vw, 110px); /* espace pour le portrait qui déborde en haut */
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.role_essentiel .e-con-inner .roles_box{
  width: 20vw;
  max-width: 320px;
  position: relative;
  overflow: visible;
  background: white;
  border-radius: 25px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.10);
}

/* Section image — overflow visible pour que le portrait dépasse en haut */
.role_essentiel .e-con-inner .roles_box .roles_images{
  position: relative;
  height: clamp(160px, 18vw, 250px);
  overflow: visible;
  border-radius: 25px 25px 0 0;
}

/* Fond coloré + motif via ::before (clippé au border-radius) */
.role_essentiel .e-con-inner .roles_box .roles_images::before{
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--primary3);
  background-image: url("https://bourg-chevreau.allincommunication.fr/site/wp-content/uploads/2026/03/fond_role.png");
  background-size: cover;
  background-position: center;
  border-radius: 25px 25px 0 0;
  z-index: 0;
}

/* L'image fond Elementor est remplacée par le ::before CSS */
.role_essentiel .e-con-inner .roles_box .roles_images .roles_image_fond{
  display: none;
}

/* Portrait : déborde au-dessus de la section colorée */
.role_essentiel .e-con-inner .roles_box .roles_images .roles_portraits{
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  top: clamp(-65px, -7vw, -100px);
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: flex-end;
}

.role_essentiel .e-con-inner .roles_box .roles_images .roles_portraits img{
  width: 85%;
  height: 100%;
  object-fit: contain;
  object-position: bottom;
}

/* Section texte */
.role_essentiel .e-con-inner .roles_box .roles_infos{
  padding: clamp(1rem, 1.5vw, 1.75rem);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: flex-start;
  border-radius: 0 0 25px 25px;
}

.role_essentiel .e-con-inner .roles_box .roles_infos .role{
  font-family: "Loos_bold", sans-serif;
  font-size: clamp(1rem, 1.2vw, 1.3rem);
  line-height: 1.2;
}

.role_essentiel .e-con-inner .roles_box .roles_infos .btn_roles{
  padding: 0.5rem 1.25rem;
  border: solid 1.5px black;
  border-radius: 100px;
  font-size: clamp(0.75rem, 0.9vw, 0.95rem);
  margin-top: 0.25rem;
}

/* =========================
   PARTENAIRES ROLES
========================= */

.partenaire_roles .e-con-inner{
  display: flex;
  flex-direction: column;
  row-gap: 6vh;
}

.partenaire_roles .e-con-inner .partenaire_ligne{
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}

.partenaire_roles .e-con-inner .partenaire_ligne .box_partenaire{
  display: flex;
  justify-content: space-between;
  width: 48%;
  gap: clamp(1rem, 3vw, 3rem);
  border: solid 2px var(--color-primary);
  border-radius: 25px;
  padding: clamp(1rem, 2vw, 2.5rem);
}

.partenaire_roles .e-con-inner .partenaire_ligne .box_partenaire .box_partenaire_image{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.partenaire_roles .e-con-inner .partenaire_ligne .box_partenaire .text_bloc_partenaire{
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
}

/* =========================
   PASTORALE AXES
========================= */

.pastorale_axes .e-con-inner{
  margin-top: 5vh;
  margin-bottom: 5vh;
  display: flex;
  justify-content: center;
  gap: clamp(1.5rem, 3vw, 3rem);
}

.pastorale_axes .e-con-inner .pastorale_box{
  flex: 1 1 0;
  max-width: 420px;
  min-height: 35vh;
  height: auto;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
  padding: clamp(1.5rem, 2.5vw, 3rem);
  border: solid 2px black;
  border-radius: 25px;
  box-sizing: border-box;
}

.pastorale_axes .e-con-inner .pastorale_box .pastorale_txt{
  width: 90%;
  text-align: center;
}

.restauration .e-con-inner{
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
  }

  .restauration_infos{
    display: flex;
    flex-direction: column;
    row-gap: 2vh;
    margin-top: 4vh;
    width: 45%;
  }

  .restauration_menu{
    width: 45%;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .restauration_infos_box{
    display: flex;
    width: 100%;
    justify-content: space-around;
    border: solid black 1px;
    border-radius: 25px;
    padding: 2vw;
  }
  
  .restauration_infos_box_img{
    width: 30%;
    display: flex;
    align-items: center;
  }

  .restauration_infos_titre{
    width: 30%;
    display: flex;
    align-items: center;
  }

  .restauration_infos_titre h3{
    font-size: 1rem;
  }

  .restauration_infos_texte{
    width: 40%;
    display: flex;
    align-items: center;
  }

  .restauration_infos_texte p{
    font-size: 0.8rem;
  }

  .internat .e-con-inner{
    margin-top: 5vh;
    display: flex;
    justify-content: space-between;
  }

  .internat_carrousel{
    width: 48%;
  }

  .internat_txt{
    width: 48%;
  }

  .CDI .e-con-inner{
    display: flex;
  }

  .cdi_infos{
    display: flex;
    flex-direction: column;
    margin-top: 4vh;
    row-gap: 2vh;
    width: 48%;
  }

  .cdi_infos_box{
    display: flex;
    justify-content: left;
    gap: 2vw;
  }

  .cdi_infos_box_img{
    width: 15%;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: solid 2px var(--muted4);
  }

  .cdi_infos_box_txt{
    width: 65%;
    display: flex;
    align-items: center;
  }

  .cdi_infos_box_txt p{
    font-size: 1rem;
    margin: 0;
  }

  .cdi_img{
    width: 48%;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
  }

  .reglements .e-con-inner{
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .reglements_haut{
    margin-top: 5vh;
    display: flex;
    justify-content: space-between;
    width: 90%;
    height: 25vh;
    background-color: var(--muted2);
    padding: clamp(1rem, 3vw, 3rem);
    border-radius: 30px;
    position: relative;
    color: black;
    text-align: center;
  }

  .reglement_texte{
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .reglement_titre{
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 2vh;
  }

  .reglements_haut p{
    width: 70%;
  }

  .reglements_haut h2{
    width: 70%;
  }

  .reglement_bas{
    display: flex;
    width: 60%;
    background-color: white;
    border: solid 3px var(--muted7);
    border-radius: 25px;
    margin-top: -2rem;
    position: relative;
    z-index: 2;
  }

  .reglement_bas_box{
    padding: 1vw;
    display: flex;
    justify-content: space-around;
    align-items: center;
  }

  .reglement_bas_box1{
    border-right: solid 3px var(--muted7);
  }

  .reglement_bas_box3{
    border-left: solid 3px var(--muted7);
  }

  .reglement_bas_box_img{
    width: 30%;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .reglement_bas_box_txt{
    width: 60%;
    font-family: 'Loos_bold';
    font-size: 0.9rem;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .reglement_bas_box_txt p{
    margin: 0;
  }

/* =====================================================
   PAGE BIEN VIVRE SES ANNÉES LYCÉE
===================================================== */

/* Wrappers de sections — flex colonne */
.accompagnement .e-con-inner,
.bien_etre .e-con-inner,
.besoins_spécifiques .e-con-inner,
.ACO .e-con-inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

/* Mots en surbrillance dans les titres (Elementor text highlight) */
.elementor-heading-title mark {
  background-color: var(--color-muted);
  color: inherit;
  border-radius: 8px;
  padding: 2px 10px;
  font-style: normal;
}

/* Bouton beige */
.btn_beige .elementor-button {
  background-color: var(--color-muted);
  color: black;
  border-radius: 100px;
  font-family: "Loos_bold", sans-serif;
  font-size: 0.95rem;
  transition: opacity 150ms ease;
}
.btn_beige .elementor-button:hover {
  opacity: 0.8;
}

/* ==========
   ACCOMPAGNEMENT — bloc txt+img : image naturelle, centrée
========== */
.accompagnement .bloc_txt_img .e-con-inner {
  align-items: center;
}
.accompagnement .bloc_txt_img .e-con-inner > .e-con:last-child img {
  width: 100%;
  height: auto;
  border-radius: 0;
  object-fit: contain;
}

/* ==========
   BIEN ÊTRE — 3 cartes
========== */
.bien_etre .e-con-inner > .e-con {
  display: flex;
  flex-direction: row;
  gap: 1.5rem;
  align-items: stretch;
}

.bloc_sante {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1rem;
  padding: 2rem 1.5rem;
  border: 1.5px solid var(--color-muted);
  border-radius: 25px;
}

.bloc_sante img {
  width: 65px;
  height: 65px;
  object-fit: contain;
  background-color: var(--color-muted);
  border-radius: 50%;
  padding: 14px;
}

.bloc_sante h3 {
  font-size: 1rem;
  margin: 0;
}

.bloc_sante p {
  font-size: 0.9rem;
  line-height: 1.5;
  margin: 0;
}

/* ==========
   BESOINS SPÉCIFIQUES — image centrée pleine largeur
========== */
.besoins_spécifiques .e-con-inner img {
  width: 100%;
  max-width: 1000px;
  height: auto;
  margin: 0 auto;
  display: block;
}

/* ==========
   ACO — bloc txt+img + 3 cartes
========== */
.ACO .bloc_txt_img .e-con-inner {
  align-items: center;
}
.ACO .bloc_txt_img .e-con-inner > .e-con:last-child img {
  width: 100%;
  height: auto;
  border-radius: 20px;
  object-fit: cover;
}

.ligne_blocs_aco {
  display: flex;
  flex-direction: row;
  gap: 1.5rem;
  align-items: stretch;
}

.bloc_aco {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1rem;
  padding: 2rem 1.5rem;
  border: 1.5px solid var(--color-muted);
  border-radius: 25px;
}

.bloc_aco img {
  width: 65px;
  height: 65px;
  object-fit: contain;
  background-color: var(--color-muted);
  border-radius: 50%;
  padding: 14px;
}

.bloc_aco h3 {
  font-size: 1rem;
  margin: 0;
}

.bloc_aco p {
  font-size: 0.9rem;
  line-height: 1.5;
  margin: 0;
}

/* =====================================================
   RESPONSIVE TABLETTE
===================================================== */

/* =========================
   TABLETTE ≤1250px
========================= */

@media (max-width: 1200px){

  .home_hero{
    width: 100%;
    height: 70vh;
  }

  .home_hero .home_hero_txt{
    top: 100px;
    left: 35px;
    font-size: 1.6rem;
    max-width: 70%;
  }

  .home_hero .home_hero_title{
    bottom: 50px;
    left: 35px;
    max-width: 60%;
  }

  .home_hero .home_hero_title .elementor-heading-title{
    font-size: 3.8rem;
    width: auto;
    line-height: 1.1;
  }

  .home_hero .home_hero_img img{
    width: min(420px, 30vw);
  }

  .main-nav{
    display: none;
  }

  .menu-burger{
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .drop{
    display: none;
  }

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

  .actu-card__title{
    font-size: 1.9rem;
  }

  .home_acces_rapide {
    margin-bottom: 5vh;
  }

  /* tablet ≤1200px : grid 2 colonnes */
  .home_acces_rapide .e-con-inner {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }

  .home_acces_rapide_boite {
    width: 100%;
    display: flex;
    flex-direction: column;
    border-radius: 30px;
    border: solid 2px black;
    position: relative;
    overflow: hidden;
  }

  .presentation_equipe .e-con-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto 1fr;
    grid-template-areas:
        "texte image"
        "texte equipe";
    column-gap: 3vw;
  }

  .sandra_gohier, .marie_renou {
    width: 100%;
    height: fit-content;
    border-radius: 30px;
    overflow: hidden;
    border: solid 2px black;
    display: flex;
    flex-direction: column;
    position: relative;
  }

  .sandra_gohier p, .marie_renou p{
    font-size: 0.9rem;
  }

  .marie_renou {
    margin-left: 0%;
  }

  .bloc_img_txt_image {
    flex: 0 0 50%;
    height: 30vh;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .en_savoir_plus_bas {
    display: flex;
    width: 60%;
    padding: 2vw;
    border-radius: 30px;
    background-color: white;
    border: solid 5px var(--muted2);
    position: absolute;
    bottom: -2rem;
  }

  .navigation_pages .e-con-inner .btn_nav {
    flex: 1;
    display: flex;
    flex-direction: row;
    gap: 0.75rem;
    justify-content: flex-start;
    align-items: center;
    border-radius: 25px;
    padding: 0.9rem;
    box-sizing: border-box;
    overflow: hidden;
  }

  .navigation_pages .e-con-inner .btn_nav p{
    font-size: 0.8rem;
    margin: 0;
  }

  .frise_chrono .e-con-inner {
    display: flex;
    justify-content: space-between;
    margin-top: 10vh;
    margin-bottom: 10vh;
    flex-wrap: wrap;
    row-gap: 6vh;
  }

  .frise_chrono .e-con-inner .bloc_frise_bleu {
    width: 20vw;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    row-gap: 1vh;
    padding-right: 1vw;
  }

  .frise_chrono .e-con-inner .bloc_frise_beige {
    width: 20vw;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    row-gap: 1vh;
    padding-right: 1vw;
  }

  .resultats_bac .e-con-inner {
    display: flex;
    justify-content: center;
    gap: clamp(1rem, 2vw, 2rem);
    margin-top: 10vh;
    margin-bottom: 10vh;
    flex-wrap: wrap;
  }

  .resultats_bac .e-con-inner .resultat_bac_titre {
    flex: 1 1 200px;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    height: 25vh;
  }

  .resultats_bac .e-con-inner .resultats_brevet {
    width: 29vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-around;
    height: 25vh;
    padding: 1vw;
    border: solid 1px var(--color-primary);
    border-radius: 25px;
  }

  .home_acces_rapide_boite p {
    margin: 1.5vw;
    margin-top: 0;
    width: 70%;
    font-size: 0.9rem;
  } 

  .role_essentiel .e-con-inner {
    margin-top: clamp(70px, 8vw, 110px);
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 5vh;
  }

  .role_essentiel .e-con-inner .roles_box {
    width: 20vw;
  }

  .role_essentiel .e-con-inner .roles_box .roles_infos .btn_roles a{
    font-family: "Poppins", sans-serif;
    font-weight: 400;
    width: 100%;
    display: flex;
  }

  .role_essentiel .e-con-inner .roles_box .roles_infos .btn_roles span{
    font-family: "Poppins", sans-serif;
    font-weight: 400;
    width: 100%;
    display: flex;
  }

  .partenaire_roles .e-con-inner .partenaire_ligne .box_partenaire {
    display: flex;
    justify-content: space-between;
    width: 48%;
    gap: 3vw;
    border: solid 2px var(--color-primary);
    border-radius: 25px;
    padding: 2vw;
  }

  .partenaire_roles .e-con-inner .partenaire_ligne .box_partenaire h3{
    font-size: 1.5rem;
  }

  .partenaire_roles .e-con-inner .partenaire_ligne .box_partenaire p{
    font-size: 0.9rem;
  }

  .pastorale_axes .e-con-inner {
    margin-top: 5vh;
    margin-bottom: 5vh;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    row-gap: 2vh;
  }

  .pastorale_axes .e-con-inner .pastorale_box {
    width: 100%;
    height: 35vh;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    align-items: center;
    border: solid 2px black;
    border-radius: 25px;
  }

}

/* =====================================================
   RESPONSIVE TÉLÉPHONE
===================================================== */

/* =========================
   MOBILE ≤768px
========================= */

@media (max-width: 768px){

  /* ======== BASE ======== */
  p { font-size: 0.9rem; }
  h2 { text-align: center; }

  /* ======== HOME HERO ======== */
  .home_hero {
    width: 100%;
    height: 56vh;
    border-radius: 22px;
  }
  .home_hero .home_hero_txt {
    top: 18px;
    left: 18px;
    max-width: 85%;
    font-size: 1.25rem;
  }
  .home_hero .home_hero_title {
    top: 48px;
    left: 18px;
    max-width: 90%;
    bottom: auto;
  }
  .home_hero .home_hero_title .elementor-heading-title { font-size: 3rem; }
  .home_hero .home_hero_img img { width: min(360px, 55vw); }

  /* ======== HERO PHOTO ======== */
  .hero_photo {
    height: auto;
    border-radius: 30px;
  }
  .hero_photo .e-con-inner {
    height: 40vh;
    width: 100%;
    background-color: var(--primary3);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    border-radius: 30px;
    overflow: hidden;
    margin-bottom: 5vh;
  }
  .hero_photo .e-child {
    width: 90%;
    margin-left: 0;
    text-align: center;
  }
  .hero_photo .e-con-inner img { display: none; }
  .hero_photo .e-con-inner .hero_img_absolute img {
    height: 12vh;
    display: flex;
  }
  .hero_photo .e-con-inner h1,
  .hero_photo .e-con-inner h2 {
    width: 100%;
    margin: 0;
    color: white;
    text-align: center;
    padding-left: 5vw;
    padding-right: 5vw;
  }

  /* ======== HOME ACCÈS RAPIDE ======== */
  /* ≤768px : garde 2 colonnes (toujours tablette) */
  .home_acces_rapide .e-con-inner {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }
  .home_acces_rapide_intro {
    grid-column: 1 / -1;
    height: auto;
    justify-content: center;
  }
  .home_acces_rapide_intro h2,
  .home_acces_rapide_intro p { text-align: center; }
  .home_acces_rapide_boite { width: 100%; }
  .home_acces_rapide_boite h2 {
    font-size: 1rem;
    margin: 0.75rem 1rem 0.25rem;
  }
  .home_acces_rapide_boite p {
    font-size: 0.8rem;
    margin: 0 1rem 0.5rem;
    width: auto;
  }
  .acces_rapide_fleche img { display: none; }

  /* ======== PRÉSENTATION ÉQUIPE ======== */
  .presentation_equipe .e-con-inner {
    grid-template-columns: 1fr;
    grid-template-areas:
      "image"
      "texte"
      "equipe";
  }

  /* ======== ACTUS ======== */
  .actus-grid { grid-template-columns: 1fr; }
  .actu-card__body { padding: 22px; }
  .actu-card__title { font-size: 1.5rem; }

  /* ======== BLOC IMG + TXT ======== */
  .bloc_img_txt .e-con-inner {
    flex-direction: column-reverse;
    gap: 0;
  }
  .bloc_img_txt_text {
    all: unset;
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    height: 30vh;
    align-items: center;
    text-align: center;
  }

  /* ======== BLOC TXT + IMG ======== */
  .bloc_txt_img .e-con-inner {
    flex-direction: column-reverse;
    gap: 32px;
  }

  /* ======== EN SAVOIR PLUS ======== */
  .en_savoir_plus { min-height: 55vh; }
  .en_savoir_plus_haut {
    height: auto;
    min-height: 28vh;
    width: 90%;
    padding: 1.5rem;
  }
  .en_savoir_plus_haut .elementor-element-a796161 {
    width: 90%;
    margin-top: 8vh;
  }
  .en_savoir_plus_bas {
    width: 85%;
    padding: 1.5rem;
    position: absolute;
    bottom: -2rem;
  }
  .en_savoir_plus_bas p { text-align: center; }
  .en_savoir_plus_bas .elementor-widget-image { display: none; }

  /* ======== NAVIGATION PAGES ======== */
  .navigation_pages .e-con-inner {
    flex-direction: column;
    align-items: stretch;
    height: auto;
    margin-bottom: 5vh;
    gap: 0.75rem;
  }
  .navigation_pages .e-con-inner .btn_nav {
    width: 100%;
    flex: unset;
    flex-direction: row;
    gap: 0.75rem;
    padding: 0.9rem;
  }
  .navigation_pages .e-con-inner .btn_nav .elementor-widget-image {
    width: clamp(44px, 8vw, 60px);
    height: clamp(44px, 8vw, 60px);
    padding: 8px;
    border: solid 2px var(--primary3);
    border-radius: 14px;
  }
  .navigation_pages .e-con-inner .btn_nav img {
    width: 100%; height: 100%; object-fit: contain;
    border: none; padding: 0; border-radius: 0;
  }
  .nav_a_propos1 .elementor-widget-image,
  .nav_equipe2 .elementor-widget-image,
  .nav_pastorale3 .elementor-widget-image { border: solid 2px white; }

  /* ======== FRISE CHRONO ======== */
  .frise_chrono .e-con-inner {
    flex-wrap: wrap;
    row-gap: 4vh;
    margin-top: 5vh;
    margin-bottom: 5vh;
  }
  .frise_chrono .e-con-inner .bloc_frise_bleu,
  .frise_chrono .e-con-inner .bloc_frise_beige { width: 42%; }

  /* ======== RÉSULTATS BAC ======== */
  .resultats_bac .e-con-inner {
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    margin-top: 5vh;
    margin-bottom: 5vh;
  }
  .resultats_bac .e-con-inner .resultat_bac_titre {
    width: 100%;
    flex: unset;
    max-width: none;
    height: auto;
    text-align: center;
  }
  .resultats_bac .e-con-inner .resultats_brevet {
    flex: 1 1 140px;
    max-width: none;
    height: auto;
    min-height: 18vh;
    padding: 1rem;
  }
  .resultats_bac .e-con-inner .resultats_brevet .elementor-widget-heading h3 {
    font-size: 1rem;
    width: 100%;
    text-align: center;
  }

  /* ======== RÔLES ESSENTIELS ======== */
  .role_essentiel .e-con-inner {
    margin-top: clamp(60px, 12vw, 90px);
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem;
    align-items: flex-end;
  }
  .role_essentiel .e-con-inner .roles_box {
    width: calc(50% - 0.75rem);
    max-width: 200px;
  }
  .role_essentiel .e-con-inner .roles_box .roles_images {
    height: clamp(120px, 22vw, 180px);
  }
  .role_essentiel .e-con-inner .roles_box .roles_images .roles_portraits {
    top: clamp(-50px, -8vw, -70px);
  }

  /* ======== PARTENAIRES RÔLES ======== */
  .partenaire_roles .e-con-inner { row-gap: 1.5rem; }
  .partenaire_roles .e-con-inner .partenaire_ligne {
    flex-direction: column;
    gap: 1rem;
  }
  .partenaire_roles .e-con-inner .partenaire_ligne .box_partenaire {
    width: 100%;
    padding: 1.25rem;
    gap: 1rem;
  }
  .partenaire_roles .e-con-inner .partenaire_ligne .box_partenaire h3 { font-size: 1.25rem; }
  .partenaire_roles .e-con-inner .partenaire_ligne .box_partenaire p  { font-size: 0.85rem; }

  /* ======== PASTORALE AXES ======== */
  .pastorale_axes .e-con-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
    margin-top: 3vh;
    margin-bottom: 3vh;
  }
  .pastorale_axes .e-con-inner .pastorale_box {
    flex: unset;
    max-width: none;
    width: 100%;
    min-height: auto;
    height: auto;
    padding: 1.5rem;
  }

  /* ======== RESTAURATION ======== */
  .restauration .e-con-inner { flex-direction: column; }
  .restauration_infos {
    width: 100%;
    margin-top: 2vh;
  }
  .restauration_infos_box { padding: 1rem; }
  .restauration_infos_box_img { width: 20%; }
  .restauration_infos_titre  { width: 35%; }
  .restauration_infos_titre h3 { font-size: 0.95rem; }
  .restauration_infos_texte  { width: 45%; }
  .restauration_infos_texte p { font-size: 0.75rem; }

  /* ======== INTERNAT ======== */
  .internat .e-con-inner {
    flex-direction: column;
    gap: 2rem;
    margin-top: 3vh;
  }
  .internat_carrousel,
  .internat_txt { width: 100%; }

  /* ======== CDI ======== */
  .CDI .e-con-inner {
    flex-direction: column;
    gap: 2rem;
  }
  .cdi_infos {
    width: 100%;
    margin-top: 2vh;
  }
  .cdi_img {
    width: 100%;
    justify-content: center;
  }
  .cdi_infos_box {
    width: 100%;
    gap: 1rem;
  }
  .cdi_infos_box_img {
    width: 15%;
    border-right: solid 2px var(--muted4);
  }
  .cdi_infos_box_txt { width: 75%; }
  .cdi_infos_box_txt p { font-size: 0.85rem; }

  /* ======== RÉGLEMENTS ======== */
  .reglements_haut {
    height: auto;
    min-height: 20vh;
    padding: 1.5rem;
    width: 95%;
  }
  .reglements_haut p,
  .reglements_haut h2 { width: 90%; }
  .reglement_bas {
    width: 90%;
    margin-top: -1.5rem;
  }
  .reglement_bas_box { padding: 0.75rem; }
  .reglement_bas_box_txt { font-size: 0.8rem; }

  /* ======== BIEN ÊTRE ======== */
  .bien_etre .e-con-inner > .e-con { flex-direction: column; }

  /* ======== ACO ======== */
  .ligne_blocs_aco { flex-direction: column; }

}



/* =========================
   MOBILE ≤520px
========================= */

@media (max-width: 520px){
  :root{
    --header-height: 72px;
  }

  .logo-img{
    max-height: 54px;
  }

  .mobile_menu_list a{
    font-size: 1.2rem;
  }

  /* ======== HOME ACCÈS RAPIDE ======== */
  /* mobile ≤520px : 1 colonne, images courtes format paysage */
  .home_acces_rapide .e-con-inner {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }
  .home_acces_rapide_intro { grid-column: 1; }
  .home_acces_rapide_boite { width: 100%; }
  .acces_rapide_img1,
  .acces_rapide_img2,
  .acces_rapide_img3,
  .acces_rapide_img4,
  .acces_rapide_img5 { height: 28vw; overflow: hidden; }
  .acces_rapide_img1 img,
  .acces_rapide_img2 img,
  .acces_rapide_img3 img,
  .acces_rapide_img4 img,
  .acces_rapide_img5 img {
    height: 28vw;
    margin-top: 0;
  }
  .home_acces_rapide_boite h2 {
    font-size: 1rem;
    margin: 0.6rem 0.9rem 0.2rem;
  }
  .home_acces_rapide_boite p {
    font-size: 0.8rem;
    margin: 0 0.9rem 0.6rem;
    width: auto;
  }
}

/* =====================================================
   RESPONSIVE GRAND ÉCRAN ≥1400px
===================================================== */

@media (min-width: 1400px){

  .home_hero .home_hero_txt{
    font-size: 2.25rem;
    top: 160px;
    left: 55px;
  }

  .home_hero .home_hero_title{
    bottom: 80px;
    left: 55px;
  }

  .home_acces_rapide_boite h2{
    font-size: 1.6rem;
  }
}

/* ======================================================
   DROPDOWN 2 ITEMS (Vie des élèves)
====================================================== */

.drop_viedeseleves {
  max-width: min(740px, calc(100vw - 2rem));
}

.drop_viedeseleves a {
  max-width: 320px;
}

/* ======================================================
   COULEURS PAR PAGE
   Le slug est ajouté en classe body via functions.php
   → body.page-slug-{slug}
   Le JS relit --color-primary / --color-secondary
   au DOMContentLoaded et régénère toutes les nuances.
====================================================== */

/* À propos : couleur primaire de base — aucune surcharge nécessaire */

/* Équipes & Réseaux — bleu légèrement plus foncé */
html:has(body.page-slug-equipes-reseaux-lycee-bourg-chevreau) {
  --color-primary:   #3460a0;
  --color-secondary: #8aafd8;
}

/* Pastorale — primary9 (#4678B9 step 9 = quasi-noir) */
html:has(body.page-slug-pastorale-lycee-bourg-chevreau) {
  --color-primary:   #060809;
  --color-secondary: #2a3848;
}

/* Formations (template) : couleur primaire de base — aucune surcharge */

/* Vie au quotidien — beige clair (allégé) */
html:has(body.page-slug-vie-quotidienne-lycee-bourg-chevreau) {
  --color-primary:    #d4ae87;
  --color-secondary:  #f0e3d0;
  --color-muted:      #faf5ee;
  --color-on-primary: #1a1a1a;
}

/* Bien vivre ses années lycée — beige doux (allégé) */
html:has(body.page-slug-bien-vivre-ses-annees-lycee-bourg-chevreau) {
  --color-primary:    #b8906a;
  --color-secondary:  #e4ceb4;
  --color-muted:      #f4ecdf;
  --color-on-primary: #1a1a1a;
}

/* Actualités — muted comme primaire */
html:has(body.page-slug-actualites) {
  --color-primary:    #e9e2d8;
  --color-secondary:  #f3ede4;
  --color-muted:      #faf7f3;
  --color-on-primary: #1a1a1a;
}

html:has(body.page-slug-actualites) .site-footer {
  background-color: var(--muted7);
}

/* ======================================================
   PAGE INSCRIPTIONS — étapes & cartes
====================================================== */

/* ---- Badge "Étape X" ---- */
.etape_insc {
  width: fit-content;
  margin-bottom: 0.5rem;
}
.etape_insc p {
  display: inline-block;
  border: 1.5px solid rgba(0,0,0,0.22);
  border-radius: 100px;
  padding: 3px 14px;
  font-size: 0.85rem;
  margin: 0;
  color: black;
}

/* ---- Fond et forme de toutes les cartes ---- */
.bloc_insc {
  background-color: #eef0f9;
  border-radius: 30px;
  border: solid 2px;
}

/* ---- Espacement entre les cartes de premier niveau ---- */
.bloc_insc.e-con-boxed,
.ligne_bloc_insc {
  margin-bottom: clamp(1.5rem, 3vw, 3rem);
}

/* ---- Standalone bloc_insc (Étape 1, Bac Pro) : ligne texte | image ---- */
.bloc_insc.e-con-boxed .e-con-inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  padding: clamp(2rem, 3.5vw, 4rem) clamp(2.5rem, 4.5vw, 5.5rem);
}

/* Colonne texte */
.bloc_insc.e-con-boxed .e-con-inner > .e-con:first-child {
  flex: 1 1 55%;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

/* Colonne image */
.bloc_insc.e-con-boxed .e-con-inner > .e-con:last-child {
  flex: 0 0 38%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}

/* ---- Ligne 2 cartes côte à côte (Étapes 2 & 3) ---- */
.ligne_bloc_insc .e-con-inner {
  display: flex;
  flex-direction: row;
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: stretch;
}

.ligne_bloc_insc .e-con-inner > .bloc_insc {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: clamp(1.5rem, 2.5vw, 3rem);
  gap: 1.25rem;
}

/* Colonne texte à l'intérieur */
.ligne_bloc_insc .bloc_insc > .e-con:first-child {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

/* Colonne image : pousse vers le bas */
.ligne_bloc_insc .bloc_insc > .e-con:last-child {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  margin-top: 0.5rem;
}

/* ---- Images ---- */
.bloc_insc img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

/* ---- Mark highlights — fond sombre, texte blanc ---- */
.bloc_insc .elementor-heading-title mark {
  background-color: #182e57;
  color: white;
  border-radius: 10px;
  padding: 2px 12px;
  font-style: normal;
}

/* ---- Titres ---- */
.bloc_insc h2 {
  text-align: left;
  font-size: clamp(1.4rem, 2.2vw, 2.4rem);
  line-height: 1.2;
  margin: 0;
}
.bloc_insc h3 {
  font-family: "Loos_bold", sans-serif;
  font-size: clamp(1rem, 1.3vw, 1.25rem);
  margin: 0;
}

/* ---- Texte courant ---- */
.bloc_insc .elementor-widget-text-editor p {
  font-size: clamp(0.88rem, 1.05vw, 1rem);
  line-height: 1.65;
  margin: 0;
}

/* ---- Bouton PDF ---- */
.btn_pdf_ms .elementor-button {
  background: transparent !important;
  box-shadow: none !important;
  padding: 0;
  color: var(--color-primary);
  font-family: "Loos_bold", sans-serif;
  font-size: 1rem;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.btn_pdf_ms .elementor-button:hover {
  opacity: 0.75;
  background: transparent !important;
}

/* ---- Responsive tablette ≤1200px ---- */
@media (max-width: 1200px) {
  .bloc_insc.e-con-boxed .e-con-inner {
    gap: 2.5rem;
    padding: 2.5rem 3rem;
  }
  .bloc_insc h2 { font-size: clamp(1.2rem, 2.2vw, 2rem); }
  .ligne_bloc_insc .e-con-inner { gap: 1.5rem; }
  .ligne_bloc_insc .e-con-inner > .bloc_insc { padding: 2rem; }
}

/* ---- Responsive mobile ≤768px ---- */
@media (max-width: 768px) {
  /* Standalone : passe en colonne */
  .bloc_insc.e-con-boxed .e-con-inner {
    flex-direction: column;
    padding: 1.5rem;
    gap: 1.5rem;
  }
  .bloc_insc.e-con-boxed .e-con-inner > .e-con:first-child { flex: 1 1 auto; }
  .bloc_insc.e-con-boxed .e-con-inner > .e-con:last-child {
    flex: 0 0 auto;
    width: 100%;
  }

  /* Ligne : 2 cartes empilées */
  .ligne_bloc_insc .e-con-inner {
    flex-direction: column;
    gap: 1rem;
  }
  .ligne_bloc_insc .e-con-inner > .bloc_insc {
    padding: 1.5rem;
    gap: 1rem;
  }

  /* Titres */
  .bloc_insc h2 {
    font-size: 1.35rem;
    text-align: left;
  }
  .bloc_insc h3 { font-size: 1rem; }
  .bloc_insc .elementor-widget-text-editor p { font-size: 0.9rem; }
}

/* =====================================================
   PAGE TARIFS
===================================================== */

/* ---- Modalités de paiement — 3 colonnes ---- */
/* Grid bypasse les e-con-full/flex-direction forcés par Elementor */
.modalités_paiement .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  align-items: start;
  margin-top: 5vh;
  margin-bottom: 5vh;
}

.tableau_tarif{
  margin-bottom: 5vh;
}

.modalités_paiement .e-con-inner > .e-con {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0;
  padding: 0 clamp(1rem, 2.5vw, 2rem);
  border-right: 1.5px solid var(--color-muted, #e9e2d8);
  gap: 0.65rem;
  box-sizing: border-box;
}
.modalités_paiement .e-con-inner > .e-con:first-child { padding-left: 0; }
.modalités_paiement .e-con-inner > .e-con:last-child  { border-right: none; padding-right: 0; }

.modalités_paiement .e-con-inner > .e-con > .elementor-widget-heading .elementor-heading-title {
  font-family: "Loos_bold", sans-serif;
  font-size: clamp(0.95rem, 1.3vw, 1.15rem);
  margin-bottom: 0.5rem;
}

/* Rangées icône + texte — spécificité augmentée pour battre Elementor */
.elementor .modalités_paiement .e-con-inner > .e-con > .e-con:not(.bloc_trimestre1):not(.bloc_trimestre2) {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start;
  gap: 0.65rem;
  width: 100%;
}

.elementor .modalités_paiement .e-con-inner > .e-con > .e-con:not(.bloc_trimestre1):not(.bloc_trimestre2) .elementor-widget-image img {
  width: 32px;
  height: 32px;
  object-fit: contain;
  flex-shrink: 0;
  display: block;
}

.elementor .modalités_paiement .e-con-inner > .e-con:nth-child(2) > .e-con .elementor-widget-image img {
  width: 44px !important;
  height: 44px !important;
}

.elementor .modalités_paiement .e-con-inner > .e-con > .e-con:not(.bloc_trimestre1):not(.bloc_trimestre2) .elementor-widget-text-editor {
  font-size: 0.875rem;
  line-height: 1.5;
}

/* ---- Blocs trimestre ---- */
.bloc_trimestre1,
.bloc_trimestre2 {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  border-radius: 16px;
  padding: 0.9rem 1.1rem;
  gap: 1rem;
  width: 100%;
  box-sizing: border-box;
  flex: 0 0 auto !important;
}

.bloc_trimestre1 { background: var(--primary7, #1a3060); color: white; }
.bloc_trimestre2 { background: white; border: 1.5px solid black; color: black; }

.titre_trimestre {
  font-family: "Loos_bold", sans-serif;
  font-size: clamp(0.85rem, 1vw, 1rem);
  line-height: 1.25;
  flex-shrink: 0;
  padding-right: 1rem;
  border-right: 1.5px solid rgba(255, 255, 255, 0.3);
}
.bloc_trimestre2 .titre_trimestre { border-right-color: rgba(0, 0, 0, 0.15); }

.bloc_trimestre1 .elementor-widget-text-editor p,
.bloc_trimestre2 .elementor-widget-text-editor p {
  font-size: 0.8rem;
  line-height: 1.4;
  margin: 0;
}

/* ---- Cartes "facturation supplémentaire" ---- */
/* Conteneur des 4 cartes : grid pour bypasser e-con-full d'Elementor */

.fact_supplementaires{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 2vw;
}

.fact_supplementaires .e-con-inner{
  margin-top: 5vh;
  display: flex;
  justify-content: space-evenly;
  flex-wrap: wrap;
  position: relative;
  row-gap: 2vw;
}

.bloc_fact_supp {
  width: 23% !important;
  flex-direction: column !important;
  border: 2px solid black;
  border-radius: 25px;
  overflow: hidden;
  background: white;
  min-width: 0;
  gap: 0 !important;
  padding: 0 !important;
}

.bloc_fact_supp > .elementor-widget-image img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

.bloc_fact_supp > .elementor-widget-heading {
  padding: 1rem 1.1rem 0;
}
.bloc_fact_supp > .elementor-widget-heading .elementor-heading-title {
  font-family: "Loos_bold", sans-serif;
  font-size: clamp(0.9rem, 1.1vw, 1.1rem);
  margin: 0;
}

.bloc_fact_supp > .elementor-widget-text-editor {
  padding: 0.5rem 1.1rem;
  font-size: 0.85rem;
  line-height: 1.5;
  flex: 1;
}

.fact_supp {
  flex-direction: row !important;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1.1rem !important;
  border-top: 1.5px solid var(--color-muted, #e9e2d8);
  margin-top: auto;
  flex: 0 0 auto !important;
  width: 100%;
  box-sizing: border-box;
}

.fact_supp .elementor-widget-text-editor {
  padding: 0 !important;
  font-size: 0.85rem;
}
.fact_supp .elementor-widget-text-editor p { margin: 0; }

.prix_fact_supp p {
  color: var(--color-primary, #4678B9);
  font-family: "Loos_bold", sans-serif;
  margin: 0;
}

/* ---- Responsive tablette ≤1200px ---- */
@media (max-width: 1200px) {
  .modalités_paiement .e-con-inner > .e-con {
    padding: 0 clamp(0.75rem, 2vw, 1.25rem);
  }
  .bloc_fact_supp > .elementor-widget-text-editor { font-size: 0.8rem; }
  
  .bloc_fact_supp {
  width: 40% !important;
  flex-direction: column !important;
  border: 2px solid black;
  border-radius: 25px;
  overflow: hidden;
  background: white;
  min-width: 0;
  gap: 0 !important;
  padding: 0 !important;
}
}

/* ---- Responsive mobile ≤768px ---- */
@media (max-width: 768px) {
  .bloc_fact_supp {
  width: 80% !important;
  flex-direction: column !important;
  border: 2px solid black;
  border-radius: 25px;
  overflow: hidden;
  background: white;
  min-width: 0;
  gap: 0 !important;
  padding: 0 !important;
}
  .modalités_paiement .e-con-inner {
    grid-template-columns: 4fr !important;
    gap: 1.5rem;
  }
  .modalités_paiement .e-con-inner > .e-con {
    padding: 0 !important;
    border-right: none;
    border-bottom: 1.5px solid var(--color-muted, #e9e2d8);
    padding-bottom: 1.5rem !important;
  }
  .modalités_paiement .e-con-inner > .e-con:last-child {
    border-bottom: none;
    padding-bottom: 0 !important;
  }

}

/* ================================
   FOOTER
================================ */

.site-footer:not(.dynamic-footer) {
  max-width: none;
}

.footer-placeholder {
  height: 45vh;
}

.site-footer {
  all: unset;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100vw !important;
  height: 45vh;
  background-color: var(--color-primary);
  font-family: "Poppins", sans-serif;
  color: var(--color-on-primary);
  padding: 44px 72px 28px;
  border-radius: 28px 28px 0 0;
  box-sizing: border-box;
  z-index: 10;
}

/* ---- Top : 3 colonnes ---- */
.footer-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 2rem;
  align-items: start;
}

.footer-col {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

/* Colonne gauche — nom établissement */
.footer-school {
  font-family: "Loos_bold", sans-serif;
  font-size: 1.1rem;
  line-height: 1.3;
  margin: 0;
  font-style: normal;
}

.footer-tagline {
  font-size: 0.78rem;
  opacity: 0.65;
  margin: 0;
}

/* Label de section */
.footer-label {
  font-family: "Loos_bold", sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.55;
  margin: 0 0 0.2rem;
}

/* Adresse */
.footer-address {
  font-style: normal;
  font-size: 0.85rem;
  line-height: 1.65;
  opacity: 0.85;
}

/* Colonne contact */
.footer-col--contact p,
.footer-col--contact a {
  font-size: 0.85rem;
  line-height: 1.65;
  opacity: 0.85;
  color: inherit;
  text-decoration: none;
}

.footer-col--contact a:hover {
  opacity: 1;
  text-decoration: underline;
}

/* ---- Séparateur ---- */
.footer-divider {
  border: none;
  border-top: 1px solid currentColor;
  opacity: 0.18;
  margin: 0;
}

/* ---- Bottom ---- */
.footer-bottom {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 1rem;
}

.footer-legal {
  display: flex;
  gap: 10px;
  font-size: 0.78rem;
  align-items: center;
  opacity: 0.7;
}

.footer-legal a {
  color: inherit;
  text-decoration: none;
}

.footer-legal a:hover {
  opacity: 1;
  text-decoration: underline;
}

.footer-copy {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.78rem;
  opacity: 0.6;
  white-space: nowrap;
}

.footer-copy a {
  color: inherit;
  text-decoration: none;
}

.footer-copy a:hover {
  text-decoration: underline;
  opacity: 1;
}

.footer-copy__sep {
  opacity: 0.5;
}

/* ================================
   TABLETTE (max 1024px)
================================ */

@media (max-width: 1024px) {
  .footer-placeholder {
    height: 320px;
  }

  .site-footer {
    height: auto;
    min-height: 320px;
    padding: 36px 40px 24px;
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }

  .footer-col--brand {
    grid-column: 1 / -1;
  }
}

/* ================================
   MOBILE (max 768px)
================================ */

@media (max-width: 768px) {
  .footer-placeholder {
    height: 480px;
  }

  .site-footer {
    height: auto;
    min-height: 480px;
    padding: 32px 24px 20px;
  }

  .footer-top {
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }

  .footer-bottom {
    grid-template-columns: 1fr;
    gap: 10px;
    text-align: center;
  }

  .footer-legal {
    justify-content: center;
    flex-wrap: wrap;
  }

  .footer-copy {
    justify-content: center;
    flex-wrap: wrap;
    white-space: normal;
    text-align: center;
  }
}


.bourses .e-con-inner{
  display: flex;
  justify-content: space-evenly;
  .bloc_bourse{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 40%;
    border-radius: 25px;
    border: solid;
    padding: 3vw;
    gap: 1vw;
  }
}

@media (max-width: 768px) {
  .bourses .e-con-inner{
  display: flex;
  flex-direction: column;
  gap: 2vh;
  .bloc_bourse{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 90%;
    border-radius: 25px;
    border: solid;
    padding: 3vw;
    gap: 1vw;
  }
  }
}

/* ======================================================
   ULTRA LARGE SCREENS — SCALE TYPO x1.5
====================================================== */
