.elementor-kit-7{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;background-color:#FFFFFF;font-family:"Manrope", Sans-serif;font-size:16px;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 h1{font-family:"Manrope", Sans-serif;font-size:80px;}.elementor-kit-7 h2{font-size:48px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1300px;}.e-con{--container-max-width:1300px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* =========================================
   Menu
   ========================================= */

.elementor-nav-menu--main .menu-parent > a {
  cursor: default;
}


/* =========================================
   Section propriétés : grille
   ========================================= */

/* 2 colonnes si la place le permet, sinon 1 */
.cards-grid {
  display: grid !important;
  gap: 24px !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(340px, (100% - 24px) / 2)), 1fr));
}

.cards-grid > * {
  min-width: 0;
}


/* =========================================
   Section propriétés : carte
   ========================================= */

.card {
  padding: clamp(20px, 3vw, 32px) !important;
  transition: background-color .25s ease, border-color .25s ease;
}

.card h3 {
  line-height: 1.15 !important;
  overflow-wrap: break-word;
  hyphens: auto;
}

.card a {
  white-space: normal !important;
}


/* =========================================
   Section propriétés : symbole grec
   ========================================= */

.card-emissivity   { --card-symbol: "ε"; }
.card-albedo       { --card-symbol: "ρ"; }
.card-conductivity { --card-symbol: "λ"; }
.card-spectral     { --card-symbol: "τ"; }

/* Symbole = 1,6 × la taille du titre (40 / 30 / 24) */
.card .card-head {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 14px !important;
  --symbol-size: 64px;
  --symbol-shift: -0.10em;
}

.card-albedo .card-head {
  --symbol-shift: -0.20em;
}

.card .card-head > * {
  min-width: 0;
}

.card .card-head::before {
  content: var(--card-symbol);
  content: var(--card-symbol) / "";

  /* Neutralise la superposition d'arrière-plan d'Elementor */
  position: static !important;
  inset: auto !important;
  width: auto !important;
  height: auto !important;
  opacity: 1 !important;
  background: none !important;
  mix-blend-mode: normal !important;
  border-radius: 0 !important;

  flex: 0 0 auto;
  display: block;
  min-width: 0.6em;
  font-family: "Manrope", sans-serif;
  font-weight: 500;
  font-size: var(--symbol-size);
  line-height: 1;
  color: #bfea74;
  transform: translateY(var(--symbol-shift));
  transition: color .25s ease;
}

@media (max-width: 1024px) {
  .card .card-head {
    --symbol-size: 48px;
    gap: 12px !important;
  }
}

@media (max-width: 767px) {
  .card .card-head {
    --symbol-size: 38px;
    gap: 10px !important;
  }
}


/* =========================================
   Section propriétés : survol et focus
   ========================================= */

.card * {
  transition: color .25s ease;
}

.card:hover *,
.card:focus-within * {
  color: #032062 !important;
}

.card:hover .card-head::before,
.card:focus-within .card-head::before {
  color: #032062;
}

.card:focus-within {
  background-color: #bfea74;
}


/* =========================================
   Section services
   ========================================= */

.service-card img {
  display: block;
  width: 100%;
  aspect-ratio: 7 / 4;
  object-fit: cover;
}

.service-card a {
  white-space: normal !important;
}

/* Desktop uniquement : liens alignés en bas des cartes */
@media (min-width: 1025px) {
  .service-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100%;
  }

  .service-card > :last-child {
    margin-top: auto !important;
    padding-top: 8px;
    align-self: flex-start;
  }
}


/* =========================================
   Section actualités
   ========================================= */

/* Images à hauteur fixe */
.news-img img,
img.news-img,
.news-item-img img,
img.news-item-img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

/* Carte entière cliquable via le lien du titre */
.news-featured,
.news-item {
  position: relative;
}

.news-title a::before,
a.news-title::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* Titre : pas de soulignement par défaut */
.news-title,
.news-title a,
a.news-title {
  color: inherit;
  text-decoration: none !important;
}

/* Titre souligné au survol et au clavier */
.news-featured:hover .news-title,
.news-featured:hover .news-title a,
.news-featured:focus-within .news-title,
.news-featured:focus-within .news-title a,
.news-item:hover .news-title,
.news-item:hover .news-title a,
.news-item:focus-within .news-title,
.news-item:focus-within .news-title a {
  text-decoration: underline !important;
  text-decoration-thickness: 1.5px !important;
  text-underline-offset: 4px;
}

.news-featured:focus-within,
.news-item:focus-within {
  outline: 2px solid #bfea74;
  outline-offset: 3px;
}

/* Titre : soulignement transparent par défaut */
.news-title,
.news-title a,
a.news-title {
  color: inherit;
  text-decoration-line: underline !important;
  text-decoration-thickness: 1.5px !important;
  text-decoration-color: transparent !important;
  text-underline-offset: 8px;
}

/* Titre : soulignement visible au survol et au clavier */
.news-featured:hover .news-title,
.news-featured:hover .news-title a,
.news-featured:focus-within .news-title,
.news-featured:focus-within .news-title a,
.news-item:hover .news-title,
.news-item:hover .news-title a,
.news-item:focus-within .news-title,
.news-item:focus-within .news-title a {
  text-decoration-color: currentColor !important;
  text-underline-offset: 4px;
}

/* =========================================
   Actu liste : images de même largeur
   ========================================= */

/* Largeur de l'image : modifier uniquement cette valeur */
.news-item {
  --news-img-w: 30%;
}

.news-item > :first-child {
  flex: 0 0 var(--news-img-w) !important;
  max-width: var(--news-img-w);
}

.news-item > :last-child {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

/* Mobile : carte en colonne, image pleine largeur */
@media (max-width: 767px) {
  .news-item > :first-child {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100%;
  }
}

/* =========================================
   Actualités : répartition une / liste
   ========================================= */

/* Une 40 %, liste 60 % */
.news-layout > :first-child {
  flex: 2 1 360px !important;
  min-width: 0;
}

.news-layout > :last-child {
  flex: 3 1 540px !important;
  min-width: 0;
}

/* Sous 1300 px : la une au-dessus, la liste en dessous */
@media (max-width: 1299px) {
  .news-layout > :first-child,
  .news-layout > :last-child {
    flex: 1 1 100% !important;
  }
}

@media (max-width: 1299px) {
  .news-img img,
  img.news-img {
    aspect-ratio: 21 / 9;
  }
}

/* Mobile : images moins hautes (une et liste) */
@media (max-width: 767px) {
  .news-img img,
  img.news-img,
  .news-item-img img,
  img.news-item-img {
    aspect-ratio: 2 / 1;
  }
}

/* =========================================
   Section témoignages : carrousel (widget V3, style Bulle)
   ========================================= */

.elementor-widget-testimonial-carousel {
  --t-footer-h: 56px;   /* marge au-dessus du nom + nom + fonction */
  --t-dots-space: 32px; /* espace réservé aux points sous le nom */
}

/* 1. Bords arrondis du bloc blanc */
.elementor-widget-testimonial-carousel .elementor-testimonial__content {
  border-radius: 16px !important;
}

/* Hauteur du nom et de la fonction fixée pour pouvoir centrer les flèches */
.elementor-widget-testimonial-carousel .elementor-testimonial__footer {
  margin-top: 16px !important;
}

.elementor-widget-testimonial-carousel .elementor-testimonial__name,
.elementor-widget-testimonial-carousel .elementor-testimonial__title {
  line-height: 20px !important;
}

/* 2. Flèches centrées sur le bloc blanc */
.elementor-widget-testimonial-carousel .elementor-swiper-button {
  top: calc(50% - (var(--t-footer-h) + var(--t-dots-space)) / 2) !important;
}

/* 3. Espace réduit entre la citation et les points */
.elementor-widget-testimonial-carousel .elementor-main-swiper,
.elementor-widget-testimonial-carousel .swiper {
  padding-bottom: var(--t-dots-space) !important;
}

.elementor-widget-testimonial-carousel .swiper-pagination {
  bottom: 0 !important;
}

/* Points inactifs : contour bleu */
.elementor-widget-testimonial-carousel .swiper-pagination-bullet {
  box-shadow: inset 0 0 0 1.5px #032062;
  opacity: 1 !important;
}

/* Carrousel de témoignages : carte centrée entre les flèches */
.elementor-widget-testimonial-carousel .elementor-main-swiper {
  width: calc(100% - 80px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.elementor-widget-testimonial-carousel .elementor-swiper-button-prev {
  left: 0 !important;
}

.elementor-widget-testimonial-carousel .elementor-swiper-button-next {
  right: 0 !important;
}

@media (max-width: 767px) {
  .elementor-widget-testimonial-carousel .elementor-main-swiper {
    width: calc(100% - 64px) !important;
  }
}

/* =========================================
   Nous trouver : carte pleine hauteur et largeur
   ========================================= */

.nous-trouver-map {
  position: relative;
  min-height: 400px;
}

/* Le widget HTML ne doit pas servir de repère à l'iframe */
.nous-trouver-map .elementor-element {
  position: static;
}

.nous-trouver-map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* =========================================
   Lien avec flèche décorative (ex. « Contactez-nous → »)
   ========================================= */

.link-arrow::after {
  content: "→";
  content: "→" / "";
  display: inline-block;
  margin-left: 8px;
  transition: transform .25s ease;
}

.link-arrow:hover::after,
.link-arrow:focus-visible::after {
  transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
  .link-arrow::after {
    transition: none;
  }
}

/* =========================================
   Témoignages : carrousel pleine largeur en mobile
   ========================================= */

@media (max-width: 767px) {
  .testimonials > .elementor-widget-testimonial-carousel {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100%;
    min-width: 0;
  }
}



/* =========================================
   Tableau de données sur fond marine
   ========================================= */

.data-table {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Défilement horizontal sur petit écran */
.data-table__scroll {
  overflow-x: auto;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 12px;
}

.data-table table {
  width: 100%;
  min-width: 760px;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  font-family: Manrope, sans-serif;
  font-size: 16px;
  line-height: 22px;
  color: #ffffff;
}

/* Cellules : on neutralise le fond alterné et le survol du thème */
.data-table table tbody > tr > th,
.data-table table tbody > tr > td,
.data-table table tbody > tr:hover > th,
.data-table table tbody > tr:hover > td {
  padding: 16px 14px;
  border: 1px solid rgba(255, 255, 255, .35);
  background-color: transparent;
  text-align: center;
  vertical-align: middle;
  font-weight: 600;
}

/* Colonne d'en-tête : fond vert, texte marine, sur les deux lignes */
.data-table table tbody > tr > th,
.data-table table tbody > tr:hover > th {
  width: 200px;
  background-color: #bfea74;
  color: #032062;
  font-weight: 700;
  text-align: left;
}

/* Valeurs du rapport en vert */
.data-table table tbody > tr:last-child > td {
  color: #bfea74;
}

/* Légende : gras droit, comme les autres légendes du site */
.data-table figcaption {
  margin: 0;
  font-family: Manrope, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  font-style: normal;
  color: #ffffff;
}

/* Mobile : texte un peu plus compact */
@media (max-width: 767px) {
  .data-table table {
    font-size: 14px;
    line-height: 20px;
  }

  .data-table table tbody > tr > th,
  .data-table table tbody > tr > td {
    padding: 12px 10px;
  }
  
  .data-table figcaption {
    font-size: 14px;
    line-height: 20px;
  }
}

/* Tableau 1 */

/* =========================================
   Formules et colonnes : pas de débordement horizontal
   ========================================= */

/* Une formule trop large défile dans son rectangle */
.formula,
.formula-accent {
  max-width: 100%;
  overflow-x: auto;
}

/* Colonnes et cellules de grille : autorisées à rétrécir */
.split-col,
.method-grid > *,
.grid-2 > *,
.calc-card {
  min-width: 0;
}

/* Les formules MathML ne dépassent jamais leur conteneur */
.formula math,
.formula-accent math {
  max-width: 100%;
}

/* Tableau 2 */

/* =========================================
   Tableau de données, variante avec ligne d'en-tête en haut
   ========================================= */

.data-table--head table {
  min-width: 1000px;
}

/* Ligne d'en-tête verte */
.data-table--head table thead > tr > th {
  padding: 14px 12px;
  border: 1px solid rgba(255, 255, 255, .35);
  background-color: #bfea74;
  color: #032062;
  font-weight: 700;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  vertical-align: middle;
}

/* Toutes les valeurs en blanc, y compris la dernière ligne */
.data-table--head table tbody > tr:last-child > td {
  color: #ffffff;
}

/* Mots en gras transformés en pastilles marine, sur fond vert */
.mission-pills strong,
.mission-pills b {
  background-color: #032062;
  color: #bfea74;
  font-weight: 600;
  padding: 2px 10px;
  border-radius: 6px;
  /* La pastille se coupe proprement quand elle passe à la ligne */
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* Voile dégradé de la carte à photo : transparent en haut, marine en bas */
.feature-card-overlay {
  background: linear-gradient(180deg, rgba(3, 32, 98, 0) 30%, rgba(3, 32, 98, .92) 100%);
}

/* =========================================
   Formulaire de contact (Contact Form 7)
   ========================================= */

/* Retours à la ligne ajoutés par CF7 */
.themacs-form br {
  display: none;
}

/* Grille des champs : 2 colonnes */
.themacs-form .tf-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.themacs-form .tf-full {
  grid-column: 1 / -1;
}

.themacs-form .tf-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

/* Libellés */
.themacs-form label {
  font-family: Manrope, sans-serif;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: #032062;
}

/* Champs */
.themacs-form input[type="text"],
.themacs-form input[type="email"],
.themacs-form input[type="tel"],
.themacs-form textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #e3e8f2;
  border-radius: 8px;
  background: #ffffff;
  font-family: Manrope, sans-serif;
  font-size: 15px;
  line-height: 22px;
  color: #032062;
  transition: border-color .2s ease;
}

.themacs-form textarea {
  min-height: 170px;
  resize: vertical;
}

.themacs-form ::placeholder {
  color: #6b7280;
}

/* Focus visible au clavier */
.themacs-form input:focus,
.themacs-form textarea:focus {
  outline: 2px solid #032062;
  outline-offset: 1px;
  border-color: #032062;
}

/* Case de consentement */
.themacs-form .tf-consent {
  margin-top: 20px;
  font-family: Manrope, sans-serif;
  font-size: 14px;
  line-height: 22px;
  color: #333333;
}

.themacs-form .tf-consent label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-weight: 500;
  color: #333333;
}

.themacs-form .tf-consent input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: #032062;
}

.themacs-form .tf-consent a {
  color: #032062;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: #bfea74;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* Mention des champs obligatoires, sous la case */
.themacs-form .tf-required {
  margin: 8px 0 0 28px;
  font-family: Manrope, sans-serif;
  font-size: 13px;
  line-height: 18px;
  font-weight: 500;
  color: #032062;
}

/* Bouton d'envoi, aligné à droite */
.themacs-form .tf-actions {
  margin-top: 20px;
  display: flex;
    justify-content: flex-start;
}

.themacs-form .tf-submit {
  padding: 12px 26px;
  border: 1.5px solid #032062;
  border-radius: 999px;
  background: #032062;
  color: #ffffff;
  font-family: Manrope, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

/* Survol et clavier : fond vert, texte marine, comme les boutons du site */
.themacs-form .tf-submit:hover,
.themacs-form .tf-submit:focus-visible {
  background: #bfea74;
  border-color: #bfea74;
  color: #032062;
}

/* Contour visible au clavier */
.themacs-form .tf-submit:focus-visible {
  outline: 2px solid #032062;
  outline-offset: 2px;
}

/* Bouton désactivé tant que la case n'est pas cochée */
.themacs-form .tf-submit:disabled,
.themacs-form .tf-submit:disabled:hover {
  background: #032062;
  border-color: #032062;
  color: #ffffff;
  opacity: .4;
  cursor: not-allowed;
}

/* Messages d'erreur sous les champs */
.themacs-form .wpcf7-not-valid {
  border-color: #c0392b;
}

.themacs-form .wpcf7-not-valid-tip {
  margin-top: 4px;
  font-size: 13px;
  color: #c0392b;
}

/* Message de réponse après envoi */
.themacs-form .wpcf7-response-output {
  margin: 20px 0 0;
  padding: 12px 16px;
  border-radius: 8px;
  font-family: Manrope, sans-serif;
  font-size: 14px;
}

.themacs-form.sent .wpcf7-response-output {
  border-color: #bfea74;
  background: #f4fbe8;
  color: #032062;
}

/* Mobile : une colonne, bouton pleine largeur */
@media (max-width: 767px) {
  .themacs-form .tf-grid {
    grid-template-columns: 1fr;
  }

  .themacs-form .tf-submit {
    width: 100%;
    padding: 12px 22px;
  }
}

/* =========================================
   Actualités : cartes du Loop Grid
   ========================================= */

/* « Lire l'article » : pas de soulignement au repos */
.post-card-more {
  text-decoration: none;
}

/* Survol de la carte : le titre et « Lire l'article » se soulignent */
.post-card:hover .post-card-title,
.post-card:focus-visible .post-card-title,
.post-card:hover .post-card-more,
.post-card:focus-visible .post-card-more {
  text-decoration: underline;
  text-decoration-color: #bfea74;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

/* Contour visible au clavier sur toute la carte */
.post-card:focus-visible {
  outline: 2px solid #032062;
  outline-offset: 4px;
  border-radius: 18px;
}

/* =========================================
   Actualités : pagination
   ========================================= */

.news-loop .elementor-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin-top: 64px;
}

/* Numéros : ronds à contour marine */
.news-loop .elementor-pagination .page-numbers {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 48px;
  height: 48px;
  margin: 0;
  border: 2px solid #032062;
  border-radius: 999px;
  color: #032062;
  font-family: Manrope, sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .2s ease;
}

/* Précédent et Suivant : pilules */
.news-loop .elementor-pagination .page-numbers.prev,
.news-loop .elementor-pagination .page-numbers.next {
  width: auto;
  padding: 0 24px;
  font-weight: 600;
}

/* Flèches décoratives, non lues par les lecteurs d'écran */
.news-loop .elementor-pagination .page-numbers.prev::before {
  content: "←";
  content: "←" / "";
  margin-right: 8px;
}

.news-loop .elementor-pagination .page-numbers.next::after {
  content: "→";
  content: "→" / "";
  margin-left: 8px;
}

/* Survol et clavier */
.news-loop .elementor-pagination a.page-numbers:hover,
.news-loop .elementor-pagination a.page-numbers:focus-visible {
  background: rgba(3, 32, 98, .06);
}

/* Page en cours : remplie en marine */
.news-loop .elementor-pagination .page-numbers.current {
  background: #032062;
  color: #ffffff;
}

/* Points de suspension */
.news-loop .elementor-pagination .page-numbers.dots {
  width: auto;
  border-color: transparent;
}

/* Précédent ou Suivant inactif (première ou dernière page) */
.news-loop .elementor-pagination span.page-numbers.prev,
.news-loop .elementor-pagination span.page-numbers.next {
  opacity: .35;
}

/* Mobile : tout sur une ligne, Précédent et Suivant réduits à la flèche */
@media (max-width: 767px) {
  .news-loop .elementor-pagination {
    flex-wrap: nowrap;
    gap: 6px;
    margin-top: 40px;
  }

  .news-loop .elementor-pagination .page-numbers {
    width: 40px;
    height: 40px;
    font-size: 15px;
  }

  /* Le texte reste lu par les lecteurs d'écran, seule la flèche est visible */
  .news-loop .elementor-pagination .page-numbers.prev,
  .news-loop .elementor-pagination .page-numbers.next {
    width: 40px;
    padding: 0;
    font-size: 0;
  }

  .news-loop .elementor-pagination .page-numbers.prev::before,
  .news-loop .elementor-pagination .page-numbers.next::after {
    margin: 0;
    font-size: 18px;
  }

  .news-loop .elementor-pagination .page-numbers.dots {
    width: auto;
    padding: 0 2px;
  }
}

/* Bouton Retour : flèche décorative, non lue par les lecteurs d'écran */
.back-link::before {
  content: "←";
  content: "←" / "";
  margin-right: 8px;
  display: inline-block;
  transition: transform .25s ease;
}

.back-link:hover::before,
.back-link:focus-visible::before {
  transform: translateX(-4px);
}

@media (prefers-reduced-motion: reduce) {
  .back-link::before {
    transition: none;
  }
}

/* =========================================
   Contenu des articles (modèle Article unique)
   ========================================= */

/* Largeur de lecture confortable, centrée */
.elementor-widget.article-content {
  width: 100%;
  max-width: 820px;
}

/* Texte courant */
.article-content p,
.article-content li,
.article-content td,
.article-content blockquote {
  font-family: Manrope, sans-serif;
  color: #032062;
}

/* Espacement régulier entre les blocs, qui remplace celui du thème */
.article-content p,
.article-content ul,
.article-content ol,
.article-content figure,
.article-content blockquote,
.article-content table,
.article-content .wp-block-table,
.article-content .wp-block-embed,
.article-content .wp-block-buttons,
.article-content video,
.article-content iframe {
  margin-top: 0;
  margin-bottom: 20px;
}

/* Paragraphes vides */
.article-content p:empty {
  display: none;
}

/* Sous-titres */
.article-content h1,
.article-content h2,
.article-content h3,
.article-content h4 {
  font-family: Manrope, sans-serif;
  font-weight: 700;
  color: #032062;
}

/* Un H1 dans le contenu est affiché comme un H2 (en attendant de le corriger dans l'article) */
.article-content h1,
.article-content h2 {
  margin-top: 40px;
  margin-bottom: 12px;
  font-size: 32px;
  line-height: 40px;
}

.article-content h3 {
  margin-top: 32px;
  margin-bottom: 10px;
  font-size: 24px;
  line-height: 32px;
}

.article-content h4 {
  margin-top: 24px;
  margin-bottom: 8px;
  font-size: 20px;
  line-height: 28px;
}

/* Pas de marge en haut du tout premier bloc */
.article-content .elementor-widget-container > :first-child,
.article-content > :first-child {
  margin-top: 0;
}

/* Gras */
.article-content strong {
  font-weight: 700;
  color: #032062;
}

/* Liens : marine, soulignement vert */
.article-content a {
  color: #032062;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: #bfea74;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.article-content a:hover,
.article-content a:focus-visible {
  text-decoration-color: #032062;
}

/* Images : bordure verte, coins arrondis, taille raisonnable, centrées */
.article-content img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 560px;
  height: auto;
  margin-left: 0;
  margin-right: 0;
  border: 2px solid #bfea74;
  border-radius: 18px;
}

.article-content figure {
  margin-left: 0;
  margin-right: 0;
}

/* Légendes sous les images */
.article-content figcaption {
  margin-top: 10px;
  font-family: Manrope, sans-serif;
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: #032062;
  text-align: center;
}

/* Listes à puces : rond vert, comme sur le reste du site */
.article-content ul {
  list-style: none;
  padding-left: 0;
}

.article-content ul li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 10px;
}

.article-content ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #bfea74;
}

/* Listes numérotées : chiffre marine en gras */
.article-content ol {
  padding-left: 24px;
}

.article-content ol li {
  margin-bottom: 10px;
  padding-left: 6px;
}

.article-content ol li::marker {
  color: #032062;
  font-weight: 700;
}

/* Citations : filet vert à gauche */
.article-content blockquote {
  margin-left: 0;
  margin-right: 0;
  padding: 4px 0 4px 20px;
  border-left: 3px solid #bfea74;
  font-size: 20px;
  line-height: 32px;
  font-weight: 600;
  font-style: normal;
  color: #032062;
}

.article-content blockquote p {
  margin: 0;
  color: #032062;
}

/* Séparateurs */
.article-content hr {
  border: 0;
  height: 1px;
  background: #e3e8f2;
  margin: 40px 0;
}

/* Tableaux : défilement horizontal si trop larges */
.article-content .wp-block-table {
  overflow-x: auto;
}

.article-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  line-height: 22px;
}

.article-content th,
.article-content td {
  padding: 12px 14px;
  border: 1px solid #e3e8f2;
  text-align: left;
}

.article-content th {
  font-family: Manrope, sans-serif;
  background: #032062;
  color: #ffffff;
  font-weight: 700;
}

/* Vidéos : YouTube, Vimeo (iframe) et fichiers téléversés (video) */
.article-content iframe,
.article-content video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 2px solid #bfea74;
  border-radius: 18px;
  background: #032062;
}

/* Bloc Intégration de WordPress : pas de marge parasite autour de la vidéo */
.article-content .wp-block-embed {
  margin-left: 0;
  margin-right: 0;
}

.article-content .wp-block-embed__wrapper {
  border-radius: 18px;
  overflow: hidden;
}

/* Boutons de l'éditeur WordPress : style des boutons du site */
.article-content .wp-block-button__link {
  padding: 12px 26px;
  border: 1.5px solid #032062;
  border-radius: 999px;
  background: #032062;
  color: #ffffff;
  font-weight: 600;
  text-decoration: none;
}

.article-content .wp-block-button__link:hover,
.article-content .wp-block-button__link:focus-visible {
  background: #bfea74;
  border-color: #bfea74;
  color: #032062;
}

/* Images alignées à gauche ou à droite, avec le texte qui coule à côté */
.article-content .alignleft,
.article-content img.alignleft {
  float: left;
  max-width: 50%;
  margin: 6px 32px 20px 0;
}

.article-content .alignright,
.article-content img.alignright {
  float: right;
  max-width: 50%;
  margin: 6px 0 20px 32px;
}

/* Les blocs qui suivent repassent sous l'image */
.article-content h2,
.article-content h3,
.article-content hr,
.article-content table,
.article-content .wp-block-table {
  clear: both;
}

/* Tablette */
@media (max-width: 1024px) {
  .article-content h1,
  .article-content h2 {
    font-size: 28px;
    line-height: 36px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .article-content h1,
  .article-content h2 {
    margin-top: 32px;
    font-size: 24px;
    line-height: 32px;
  }

  .article-content h3 {
    margin-top: 24px;
    font-size: 20px;
    line-height: 28px;
  }

  .article-content ul li::before {
    top: 9px;
  }

  .article-content img {
    max-height: 420px;
  }

  .article-content img,
  .article-content iframe,
  .article-content video,
  .article-content .wp-block-embed__wrapper {
    border-radius: 12px;
  }
  
    /* Mobile : plus de texte à côté des images, elles passent en pleine largeur */
  .article-content .alignleft,
  .article-content .alignright,
  .article-content img.alignleft,
  .article-content img.alignright {
    float: none;
    max-width: 100%;
    margin: 0 0 20px;
  }
}

.legal-row {
  display: contents;
}

/* =========================================
   Sélecteur de langue WPML dans le menu
   ========================================= */

/* Drapeaux arrondis */
.elementor-nav-menu .wpml-ls-flag {
  width: 22px !important;
  height: auto !important;
  border-radius: 3px !important;
  display: block !important;
}

/* Parent : repère pour le sous-menu */
.elementor-nav-menu li.wpml-ls-menu-item {
  position: relative !important;
}

/* Sous-menu : même largeur que le parent, coins arrondis uniquement sur les bords externes */
.elementor-nav-menu li.wpml-ls-menu-item > ul,
.elementor-nav-menu li.wpml-ls-menu-item .wpml-ls-sub-menu,
.elementor-nav-menu li.wpml-ls-menu-item .sub-menu {
  left: 0 !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* Items internes : alignés à gauche, pas de radius individuel */
.elementor-nav-menu li.wpml-ls-menu-item ul li {
  border-radius: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

.elementor-nav-menu li.wpml-ls-menu-item ul li > a {
  border-radius: 0 !important;
  padding: 10px 20px 10px 22px !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  box-sizing: border-box !important;
  transition: background-color .2s ease, color .2s ease !important;
}

/* Décaler le sélecteur de langue à droite de Contactez-nous */
.elementor-nav-menu > ul > li.wpml-ls-menu-item {
  margin-left: 30px !important;
}







/* =========================================
   Sélecteur WPML en mode burger (tablette et mobile)
   Le menu horizontal reste affiché, réduit au seul sélecteur,
   à gauche du burger. Le sélecteur est retiré du menu déroulant.
   1350px = point de bascule du burger (même valeur que le bloc Burger)
   ========================================= */

@media (max-width: 1350px) {

  /* Widget menu : sélecteur et burger côte à côte, alignés à droite */
  .elementor-widget-nav-menu .elementor-widget-container,
  .elementor-widget-nav-menu:not(:has(.elementor-widget-container)) {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap;
    align-items: center !important;
    justify-content: flex-end !important;
    --lang-gap: 4px; /* écart entre le sélecteur et le burger : modifier cette valeur */
  }

  /* Menu horizontal : réaffiché malgré le mode burger */
  .elementor-widget-nav-menu nav.elementor-nav-menu--main {
    display: block !important;
  }

  /* ...mais seul le sélecteur de langue y reste visible */
  .elementor-widget-nav-menu nav.elementor-nav-menu--main > ul > li:not(.wpml-ls-menu-item) {
    display: none !important;
  }

  /* Plus de marge autour du sélecteur */
  .elementor-nav-menu > ul > li.wpml-ls-menu-item,
  nav.elementor-nav-menu--main li.wpml-ls-menu-item {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Lien du sélecteur : padding horizontal réduit, écart contrôlé à droite */
  nav.elementor-nav-menu--main li.wpml-ls-menu-item > a.elementor-item {
    padding-left: 8px !important;
    padding-right: var(--lang-gap) !important;
  }

  /* Sélecteur retiré du menu déroulant (barre bleue avec le drapeau) */
  nav.elementor-nav-menu--dropdown li.wpml-ls-menu-item {
    display: none !important;
  }
  
    /* Menu déroulant : plein écran sous le header, sans dépendre du calcul JS d'Elementor */
  nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    --header-h: 51px; /* hauteur du header en mobile : à ajuster */
    position: fixed !important;
    top: var(--header-h) !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: auto !important;
    margin: 0 !important;
    z-index: 9997;
  }

  /* Menu ouvert : défilement interne si le contenu dépasse */
  .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown {
    max-height: none !important;
    overflow-y: auto !important;
  }

  /* Pas de séparateur sous Contactez-nous */
  nav.elementor-nav-menu--dropdown li.menu-cta {
    border-bottom: 0 !important;
  }
  
    /* Sous-menu du sélecteur : drapeau centré */
  nav.elementor-nav-menu--main li.wpml-ls-menu-item ul li > a {
    justify-content: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    border: 0 !important;
    gap: 0 !important;
  }

  /* Nom de langue masqué par WPML : ne prend plus de place */
  nav.elementor-nav-menu--main li.wpml-ls-menu-item ul li > a > span {
    display: none !important;
  }

  /* Drapeau : sans marge, centré dans la pastille */
  nav.elementor-nav-menu--main li.wpml-ls-menu-item ul li > a .wpml-ls-flag {
    margin: 0 auto !important;
  }

  /* Burger ouvert : sélecteur inactif et liste des langues masquée */
  .elementor-widget-nav-menu:has(.elementor-menu-toggle.elementor-active) nav.elementor-nav-menu--main li.wpml-ls-menu-item {
    pointer-events: none;
  }

  .elementor-widget-nav-menu:has(.elementor-menu-toggle.elementor-active) nav.elementor-nav-menu--main li.wpml-ls-menu-item > ul {
    display: none !important;
  }
}

/* =========================================
   Menu : pas de contour au tap, contour conservé au clavier
   ========================================= */

.elementor-nav-menu a,
.elementor-menu-toggle {
  -webkit-tap-highlight-color: transparent;
}

.elementor-nav-menu a:focus:not(:focus-visible),
.elementor-menu-toggle:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

/* =========================================
   Écrans tactiles : aucun contour sur le sélecteur de langue
   (les écrans avec souris et clavier gardent le contour au focus)
   ========================================= */

@media (hover: none) {
  .elementor-nav-menu li.wpml-ls-menu-item > a,
  .elementor-nav-menu li.wpml-ls-menu-item > a:focus,
  .elementor-nav-menu li.wpml-ls-menu-item > a:active,
  .elementor-nav-menu li.wpml-ls-menu-item > a.highlighted {
    outline: none !important;
    box-shadow: none !important;
  }
}

/* =========================================
   Ancres : défilement fluide, décalé sous le header
   ========================================= */

html {
  scroll-padding-top: 120px; /* hauteur du header + marge : à ajuster */
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}/* End custom CSS */