/*
===========================================================
 Divi Enfant - DiviKit
-------------------------------------------
 Author: DrakMaker
 Template: Divi
 Description: Thème principal
===========================================
*/


/* =========================================================
   BASE & FONDATIONS
   ======================================================== */

/* ============== MODULE : SÉLECTION ================= */

/* --- Couleur de sélection du texte --- */
::selection {
  background-color: #8000ff;
  color: #FFF;
}

/* --- Compatibilité Firefox --- */
::-moz-selection {
  background-color: #8000ff;
  color: #FFF;
}


/* ============== MODULE : FONT-FACE ================= */

/* --- Font-face Larken --- */
/* Larken Medium — font-face optimisé */
@font-face {
  font-family: 'Larken';
  src: url('/fonts/Larken_Regular.woff') format('woff'),
       url('/fonts/Larken_Regular.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}


/* ============== MODULE : VARIABLES ================= */

:root {
  /* --- Couleurs principales --- */
  --anthracite: #161719;
  --anthraciteMoyen: #212226;
  --anthraciteClair: #2b2e33;
  --brandColor: #8000ff;
  --brandColorPale: #e5e5ff;
  --grisClair: #f9f9f9;
  --grisMoyen: #f3f3f3;

  /* --- Couleurs d’accent --- */
  --accent1: #ffea00;
  --accent1Pale: #ffffcc;
  --accent2: #0cf2a6;
  --accent2Pale: #d9ffec;

  /* --- Typographies --- */
  --fontMain: "Poppins", sans-serif;
  --fontHeading: "Poppins", serif;
  --accentFont: 'Larken';

  /* --- Rayons, ombres, effets --- */
  --borderRadius: 5px;
  --ombrePortee: 0 10px 40px rgba(0, 0, 0, 0.05);
  --ombrePorteeForte: 0 10px 40px rgba(0, 0, 0, 0.08);
  --transition: all 0.3s ease-in-out;
  --agrandissement: scale(1.01);

  /* --- Échelles de tailles --- */
  --sizeXS: 0.5em;
  --sizeS: 1em;
  --sizeM: 1.5em;
  --sizeL: 2em;
  --sizeXL: 3em;
}


/* =========================================================
   LAYOUT GLOBAL
   ======================================================== */

/* ============== MODULE : CONTAINERS ================= */

/* --- Largeurs de conteneurs --- */
#top-header .container,
header .container,
footer .container,
.et_pb_row,
.et_pb_post_title .et_pb_title_container,
.et_pb_fullwidth_header .et_pb_fullwidth_header_container {
  max-width: 1500px;
  width: 90%;
}

/* --- Helper pleine largeur --- */
.fullWidth {
  width: 100% !important;
  max-width: 99%;
}


/* =========================================================
   TYPOGRAPHIE
   ======================================================== */

/* ============== MODULE : TEXTE GLOBAL ================= */

body,
.et_pb_module,
.et_pb_module p,
.et_pb_module span {
  font-family: var(--fontMain);
  font-size: 18px;
  font-weight: 300;
}

.et_pb_module p {
  margin: 0 0 var(--sizeXS);
}

.et_pb_module strong {
  font-weight: 500;
}

small {
  font-size: 0.8em !important;
}


/* ============== MODULE : TITRES ================= */

.et_pb_module h1,
.et_pb_module h2,
.et_pb_module h3,
.et_pb_module h4,
.et_pb_module h5,
.et_pb_module h6,
.et_pb_module h1 span,
.et_pb_module h2 span,
.et_pb_module h3 span,
.et_pb_module h4 span,
.et_pb_module h5 span,
.et_pb_module h6 span {
  font-family: var(--fontHeading);
  line-height: 1.3;
  font-weight: 500;
  padding-bottom: 0.5em;
}

.et_pb_module h1 { font-size: 3em; }
.et_pb_module h2 { font-size: 2em; }
.et_pb_module h3 { font-size: 1.333em; }
.et_pb_module h4 { font-size: 1.2em; }
.et_pb_module h5 { font-size: 1.15em; }
.et_pb_module h6 { font-size: 1em; }


/* ============== MODULE : BLOCKQUOTE & SÉPARATEURS ================= */

blockquote {
  border-color: var(--brandColor);
}

hr {
  border: none;
  border-top: 1px solid var(--grisClair);
  margin: 1em 0 1.5em;
}


/* ============== MODULE : TEXTES SPÉCIAUX ================= */

.surTitre {
  color: var(--brandColor) !important;
  margin-bottom: var(--sizeS) !important;
}

/* gros texte (intro, accroche) */
.big p {
  font-size: 1.5em !important;
}

.accentFont h1,
.accentFont h2,
.accentFont h3,
.accentFont h4,
.accentFont h5,
.accentFont p,
.accentFont span {
  font-family: var(--accentFont) !important;
}


/* ============== MODULE : LIENS ================= */

/* Soulignement animé uniquement dans les blocs de texte Divi */
.et_pb_text a {
  position: relative;
  text-decoration: none;
  color: var(--brandColor);
}

.et_pb_text a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}

.et_pb_text a:hover::after {
  transform: scaleX(1);
}

/* Liens dans les titres : sans soulignement */
.et_pb_module h1 a,
.et_pb_module h2 a,
.et_pb_module h3 a,
.et_pb_module h4 a,
.et_pb_module h5 a,
.et_pb_module h6 a {
}

/* Hover des liens de titres */
.et_pb_module h1 a:hover,
.et_pb_module h2 a:hover,
.et_pb_module h3 a:hover,
.et_pb_module h4 a:hover,
.et_pb_module h5 a:hover,
.et_pb_module h6 a:hover {
}


/* ============== MODULE : META ================= */

.post-meta,
.dsm-posted-category {
  color: #fff !important;
}

.post-meta a,
.dsm-posted-category a {
  background-color: var(--grisMoyen);
  display: inline-block;
  padding: 7px 10px 7px 7px;
  border-radius: 30px;
  color: var(--anthraciteMoyen);
  text-decoration: none;
  font-size: 13px;
  margin: var(--sizeXS) 0;
  line-height: 13px;
}

.post-meta a:before,
.dsm-posted-category a:before {
  content: "•";
  color: var(--brandColor);
  font-weight: 600;
  font-size: 20px;
  margin-right: 0.25em;
  vertical-align: -3px;
}

/* Masquer séparateur meta DSM */
.dsm-meta-seperator {
  display: none;
}


/* =========================================================
   MODULES DIVI
   ======================================================== */

/* ============== MODULE : HEADER ================= */

/* --- Menu principal --- */
nav ul li a {
  font-weight: 400;
  opacity: 1 !important;
}

nav ul li a:hover {
  color: var(--brandColor) !important;
}

.menu-item-44156 a:before {
  content: "+";
  color: var(--brandColor);
  display: inline-block;
  margin-right: 3px;
  font-weight: bold;
  font-size: 16px;
}


/* ============== MODULE : FOOTER ================= */

footer p {
  line-height: 1.8em !important;
}

footer small {
  font-size: 15px !important;
}


/* ============== MODULE : IMAGES ================= */

.header-image img,
.et_pb_image img,
.et_portfolio_image img,
.dsm-entry-thumbnail img {
  border-radius: var(--borderRadius);
}

/* Images sans arrondi si besoin */
.sans-border-radius img {
  border-radius: 0px !important;
}


/* ============== MODULE : EN-TÊTE FULLWIDTH ================= */

.et_pb_fullwidth_header {}

.et_pb_fullwidth_header .et_pb_module_header {
  font-size: 1em;
  color: var(--brandColor) !important;
  font-weight: 500;
}

.et_pb_fullwidth_header .et_pb_fullwidth_header_subhead {
  font-size: 3em;
  font-weight: 500;
  margin-bottom: 0.5em;
  line-height: 1.3em;
}

.et_pb_fullwidth_header .et_pb_header_content_wrapper p {}

.et_pb_fullwidth_header .header-image {
  margin: 0px;
  text-align: right;
}

.et_pb_fullwidth_header .header-image img {
  max-height: 500px;
  width: auto !important;
}


/* ============== MODULE : SLIDER ================= */

.et-pb-slider-arrows .et-pb-arrow-prev,
.et-pb-slider-arrows .et-pb-arrow-next {
  background-color: var(--brandColor);
  border-radius: 8px;
}

.et-pb-slider-arrows .et-pb-arrow-prev:before,
.et-pb-slider-arrows .et-pb-arrow-next:before {
  color: #fff;
}


/* ============== MODULE : BOUTONS ================= */

/* FIX icônes boutons Divi (neutralise content:'' injecté) */
body .et_pb_button:after {
  content: "\35" !important;
}

.et_pb_button {
  background-color: var(--anthracite) ;
  border: 4px solid var(--anthracite) ;
  border-radius:var(--borderRadius);
  color: #FFF;
  cursor: pointer;
}

.et_pb_button:hover {
  background-color: var(--brandColor) !important ;
  border: 4px solid var(--brandColor) !important ;
  border-radius:var(--borderRadius);
  color: var(--anthracite);
  cursor: pointer !important;
}

/* Variante bouton gris */
.btnGris {
  background-color: var(--grisMoyen) ;
  color: var(--anthracite) !important;
  box-shadow: none ;
  border: 4px solid var(--grisMoyen);
}


/* ============== MODULE : FORMULAIRES ================= */

input,
textarea {
  background-color: var(--grisClair) !important;
  border-radius: var(--borderRadius) !important;
  border: none !important;
  transition: 0.3s ease;
  font-size: 17px !important;
}

input:focus {
  background-color: var(--grisMoyen) !important;
}

.et_contact_bottom_container {
  margin-top: 1em;
}

.et_pb_contact_submit {
  max-height: 50px;
}

.et_pb_contact_form {
  margin-left: 0 !important;
}

p.et_pb_contact_field {
  margin-bottom: 1.333em;
  padding: 0;
}

p.et_pb_contact_field_half {
  padding-right: 1em;
}


/* ============== MODULE : TOGGLE & ACCORDÉON ================= */

.et_pb_toggle {
  border: none;
  border-bottom: 1px solid var(--grisMoyen) !important;
  color: var(--anthracite) !important;
  margin-bottom: 0em !important;
  transition: var(--transition);
  background: none;
  padding: var(--sizeM) 0;
}

.et_pb_toggle_open {}
.et_pb_toggle_close {}
.et_pb_toggle.et_pb_toggle_open {}

.et_pb_toggle_title {
  color: var(--anthracite);
}

.et_pb_toggle_title:before {
  color: var(--brandColor);
}


/* ============== MODULE : PORTFOLIO FILTRABLE ================= */

.et_pb_filterable_portfolio .et_pb_portfolio_item .et_overlay {
  background-color: var(--anthracite);
  opacity: 0.8;
  border-radius: var(--borderRadius);
  border: none;
  transition: var(--transition);
}

/* Effet de transition fluide sur le portfolio */
.et_pb_filterable_portfolio .et_pb_portfolio_item .et_overlay {
  opacity: 0;
  transition: opacity 0.4s ease-in-out, transform 0.4s ease-in-out;
}

/* Apparition au survol */
.et_pb_filterable_portfolio .et_pb_portfolio_item:hover .et_overlay {
  opacity: 0.9;
}

.et_pb_filterable_portfolio .et_pb_portfolio_item .et_overlay:before {
  color: var(--brandColor);
  opacity: 1;
}

/* Filtres portfolio */
.et_pb_filterable_portfolio .et_pb_portfolio_filters ul li {
  margin-right: 0.5em;
}

.et_pb_filterable_portfolio .et_pb_portfolio_filters ul li a {
  background-color: var(--grisClair);
  border-radius: var(--borderRadius) !important;
  text-decoration: none !important;
  border: none;
}

.et_pb_filterable_portfolio .et_pb_portfolio_filters ul li a.active {
  background-color: var(--anthracite);
  color: #fff;
}


/* ============== MODULE : BLOG ================= */

/* Thumbnail */
article.has-post-thumbnail a img {
  border-radius: var(--borderRadius);
}


/* ============== MODULE : PRICING TABLE ================= */

.et_pb_pricing > * {
  border: none !important;
}

/* Boîte principale */
.et_pb_pricing_table {
  border: 1px solid var(--grisMoyen);
  background-color: #fff;
  border-radius: var(--borderRadius);
  box-shadow: var(--ombrePortee);
}

/* En-tête */
.et_pb_pricing_heading {
  background-color: var(--anthraciteMoyen);
  border-radius: var(--borderRadius) var(--borderRadius) 0 0;
  padding: 2em 1em;
}

/* titre */
.et_pb_pricing_heading .et_pb_pricing_title:before {
  content: "•";
  color: var(--brandColor);
  display: inline-block;
  margin-right: 5px;
}

/* Table mise en avant */
.et_pb_featured_table .et_pb_pricing_heading {
  background-color: var(--brandColor);
}

/* Label "à la une" */
span.et_pb_best_value {
  color: #fff;
}

/* Bloc supérieur (prix + fréquence) */
.et_pb_pricing_content_top {
  border-bottom: 1px solid var(--grisMoyen);
  padding: 1em;
  color: var(--anthracite);
}

/* Content offre */
.et_pb_pricing_content {
  padding: 15px 30px;
}

/* Prix */
.et_pb_et_price,
.et_pb_sum {
  font-size: 1.5em !important;
  color: var(--anthracite) !important;
  font-weight: bold !important;
}

/* Symbole monétaire & fréquence */
.et_pb_dollar_sign,
.et_pb_frequency {
  font-size: 0.666em !important;
}

.et_pb_frequency:after {
  content: "*";
}

/* Slash */
.et_pb_frequency_slash {
  display: none;
}

/* Liste des avantages */
ul.et_pb_pricing li {
  padding: var(--sizeXS) var(--sizeM) 0 var(--sizeM);
}

/* Check icon des avantages */
.et_pb_pricing li span:before {
  border-color: var(--accent2);
}


/* ============== MODULE : CALL TO ACTION ================= */

.et_pb_promo {
  box-shadow: var(--ombrePortee);
  border-radius: var(--borderRadius);
  max-width: 900px;
  margin: auto;
}

.et_pb_promo_description {}
.et_pb_promo_description h2 {}
.et_pb_promo_description p {}
.et_pb_promo .et_pb_button_wrapper .et_pb_button {}
.et_pb_promo .et_pb_button_wrapper .et_pb_button:hover {}


/* ============== MODULE : BLURB ================= */

.et_pb_blurb {}

.et_pb_blurb .et_pb_blurb_content {
  max-width: 100%;
  text-align: inherit;
}

.et_pb_main_blurb_image {}
.et_pb_main_blurb_image img {}
.et_pb_main_blurb_image .et-pb-icon {}
.et_pb_blurb_container {}

.et_pb_blurb_container .et_pb_module_header span {
  font-weight: 500 !important;
  font-size: 1em;
}

.et_pb_blurb_container .et_pb_blurb_description {}
.et_pb_blurb a.et_pb_more_button {}
.et_pb_blurb:hover {}


/* ============== MODULE : TEAM MEMBER ================= */

.et_pb_team_member {}

.et_pb_team_member_image {
  max-width: 100%;
}

.et_pb_team_member_image img {}
.et_pb_team_member_description {}
.et_pb_team_member_description .et_pb_member_name {}

.et_pb_team_member_description .et_pb_member_position {
  margin-bottom: var(--sizeXS) !important;
  color: var(--brandColor) !important;
}

.et_pb_team_member_description .et_pb_member_description {}
.et_pb_team_member_description .et_pb_team_member_social_links {}
.et_pb_team_member_description .et_pb_team_member_social_links a {}
.et_pb_team_member_description .et_pb_team_member_social_links a:hover {}


/* ============== MODULE : TESTIMONIAL ================= */

.et_pb_testimonial {
  background: none !important;
  border: 1px solid var(--grisMoyen);
  border-radius: var(--borderRadius);
}

.et_pb_testimonial_portrait {}
.et_pb_testimonial_portrait img {}
.et_pb_testimonial_description {}

.et_pb_testimonial_description .et_pb_testimonial_content p {
  margin-bottom: var(--sizeXS) !important;
}

.et_pb_testimonial:before {
  color: var(--brandColor) !important;
}

.et_pb_testimonial_description .et_pb_testimonial_author {
  margin-top: 0;
  font-weight: 500;
}

.et_pb_testimonial_description .et_pb_testimonial_meta {
  margin-bottom: 0 !important;
}

.et_pb_testimonial_description .et_pb_testimonial_meta > * {
  font-size: 0.8em !important;
}

.et_pb_testimonial_description .et_pb_testimonial_company {}
.et_pb_testimonial_description .et_pb_testimonial_icon {}
.et_pb_testimonial:hover {}



/* =========================================================
   MODULES DIVI SUPREME
   ======================================================== */

/* ============== MODULE : FIL ARIANE ================= */

.dsm_breadcrumbs a {
  text-decoration: none !important;
}


/* ============== MODULE : BLOG / POST / CARD CAROUSEL ================= */

/* Boîte principale + overflow pour le zoom image */
.dsm-blog-carousel-item,
.dsm-post-carousel-item,
.dsm_card_carousel_child {
  background-color: #FFF;
  border-radius: var(--borderRadius);
  overflow: hidden;
}

/* Image : état normal */
.dsm-blog-carousel-item img,
.dsm-post-carousel-item img,
.dsm_card_carousel_child_image_background img {
  transition: transform 0.6s ease;
  transform: scale(1);
}

/* Image : effet de survol (léger zoom) */
.dsm-blog-carousel-item:hover img,
.dsm-post-carousel-item:hover img,
.dsm_card_carousel_child:hover .dsm_card_carousel_child_image_background img {
  transform: scale(1.05);
}

/* Image (bord supérieur arrondi) */
.dsm-blog-carousel-item img,
.dsm-post-carousel-item img,
.dsm_card_carousel_child_image_background {
  border-radius: var(--borderRadius) var(--borderRadius) 0 0;
}

/* Wrapper de contenu (texte + meta) */
.dsm-blog-carousel-item .dsm_card_wrapper,
.dsm-post-carousel-item .dsm_card_wrapper,
.dsm_card_wrapper {
  padding: 1em;
}

/* Titres dans les carrousels */
.dsm-blog-carousel-item,
.dsm-post-carousel-item,
.dsm_card_title {}

.dsm-blog-carousel-item:hover .dsm-entry-title a,
.dsm-post-carousel-item:hover .dsm-entry-title a,
.dsm_card_carousel_child:hover .dsm_card_title {
  color: var(--brandColor);
}


/* ============== MODULE : PAGINATION SWIPPER ================= */

.dsm_blog_carousel_wrapper .swiper-pagination,
.dsm_post_carousel_wrapper .swiper-pagination,
.dsm_card_carousel_wrapper .swiper-pagination {}

.swiper-pagination-bullet {
  background: var(--brandColor) !important;
}

.swiper-pagination-bullet-active {
  background: var(--brandColor) !important;
}


/* ============== MODULE : DSM IMAGE CAROUSEL ================= */

.dsm_image_carousel .dsm_image_carousel_item img {
  border-radius: var(--borderRadius);
}


/* ============== MODULE : DSM CARD CAROUSEL + BADGE ================= */

.dsm_card_carousel_child_badge_text {
  background: var(--brandColor);
  color: #FFF;
}


/* ============== MODULE : DSM ADVANCED TABS ================= */

.dsm_advanced_tabs {}

/* NAV : wrapper des onglets */
.dsm_advanced_tabs .dsm-advanced-tabs-wrapper {
  margin: auto;
}

/* Onglet */
.dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab {
  margin-left: 1em;
  background: var(--grisClair) !important;
  border-radius: var(--borderRadius);
  padding: 0.333em 0.666em !important;
  font-size: 15px;
}

/* Onglet actif */
.dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab.dsm-active {
  background: var(--anthracite) !important;
}

/* Titres & sous-titres d’onglet */
.dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab .dsm-title,
.dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab .dsm-tab-subtitle {
  color: var(--anthraciteClair);
  font-weight: 400;
}

.dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab .dsm-image img {
  margin-top: 5px;
}

/* Hover sur onglet */
.dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab:hover .dsm-title,
.dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab:hover .dsm-tab-subtitle {
  color: var(--anthracite);
}

/* Onglet actif (couleur texte) */
.dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab.dsm-active .dsm-title,
.dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab.dsm-active .dsm-tab-subtitle {
  color: #FFF;
}

/* Wrapper du titre de l'onglet */
.dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-title-wrapper {
  width: 80%;
}

/* Wrapper des panneaux */
.dsm-advanced-tabs-content-wrapper {}

/* Panneau de contenu */
.dsm_advanced_tabs .dsm-advanced-tabs-content-wrapper .dsm-content-wrapper {
  border: none !important;
  background: none !important;
  margin-top: 2em;
  padding: 0px !important;
}

/* Wrapper interne (image + texte) */
.dsm_advanced_tabs .dsm-advanced-tabs-content-wrapper .dsm-inner-content-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

/* Titre du contenu du tab */
.dsm_advanced_tabs .dsm-advanced-tabs-content-wrapper .dsm-title {
  font-size: 2em;
}

/* Colonnes internes */
.dsm_advanced_tabs .dsm-inner-content-wrapper > * {
  flex: 1 1 calc(50% - 1rem);
  box-sizing: border-box;
}

/* Colonne image */
.dsm_advanced_tabs .dsm-advanced-tabs-content-wrapper .dsm-image img {
  max-height: 500px;
  border-radius: var(--borderRadius);
}

/* Colonne texte */
.dsm_advanced_tabs .dsm-advanced-tabs-content-wrapper .dsm-inner-content {
  padding: 2em;
}

/* Responsive : tabs en une colonne */
@media (max-width: 768px) {
  .dsm_advanced_tabs .dsm-inner-content-wrapper > * {
    flex: 1 1 100%;
  }
  .dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab {
    width: 100%;
  }
  .dsm_advanced_tabs .dsm-content-wrapper {
    padding: 5px !important;
  }
  .dsm_advanced_tabs .dsm-inner-content {
    padding: 5px !important;
  }
  .dsm_advanced_tabs .dsm-image {
    padding-bottom: 10px;
  }
}


/* ============== MODULE : DSM TOGGLE ================= */

.dsm_content_toggle .dsm-switch-inner {
  background-color: var(--grisClair)
}

.dsm-toggle-head-one,
.dsm-toggle-head-two {
  padding-bottom: 0px !important;
}

.dsm_content_toggle_0 .dsm-toggle-switch:checked + .dsm-switch-inner {
  background-color: var(--brandColor) !important;
}

.dsm_content_toggle {}
.dsm-content-toggle-front,
.dsm-content-toggle-back {
  background: none !important;
}



/* =========================================================
   PORTFOLIO EN GRILLE
   ======================================================== */

/* ============== MODULE : PORTFOLIO MULTI-COLONNES ================= */

@media only screen and (min-width: 768px) {
  .three-column-grid .et_pb_grid_item { width: 31% !important; margin: 0 3.5% 3.5% 0 !important; }
  .three-column-grid .et_pb_grid_item:nth-child(3n) { margin-right: 0 !important; }
  .three-column-grid .et_pb_grid_item:nth-child(3n+1) { clear: left; }
  .three-column-grid .et_pb_grid_item:nth-child(4n+1) { clear: unset !important; }
  .three-column-grid .et_pb_grid_item:nth-child(12n+1) { clear: both !important; }
}

/* Supprime l’animation d’apparition au filtrage */
.et_pb_filterable_portfolio .et_pb_portfolio_item {
  opacity: 1 !important;
  transform: none !important;
}

/* Supprime l’animation JS injectée par Divi */
.et_pb_filterable_portfolio .et_pb_portfolio_item.et_pb_animation_off {
  opacity: 1 !important;
  animation: none !important;
}

.et_pb_filterable_portfolio_items {
  height: auto !important;
}



/* =========================================================
   DARK MODE
   ======================================================== */

/* ============== MODULE : BASE DARK ================= */

.dark,
.dark body {
  background-color: var(--anthracite);
  color: #fff;
}

/* Textes & titres */
.dark .et_pb_module,
.dark .et_pb_module p,
.dark .et_pb_module span,
.dark .et_pb_module h1,
.dark .et_pb_module h2,
.dark .et_pb_module h3,
.dark .et_pb_module h4,
.dark .et_pb_module h5,
.dark .et_pb_module h6 {
  color: #fff;
}

/* Liens */
.dark .et_pb_module a {
  color: #FFF;
}

.dark .et_pb_module a:hover {
  color: var(--brandColor);
}

/* Séparateurs & blockquotes */
.dark hr {
  border-top: 1px solid var(--anthraciteClair);
}

.dark blockquote {
  border-left-color: var(--brandColor);
  color: #fff;
}

/* Formulaires */
.dark input,
.dark textarea {
  background-color: var(--anthraciteClair) !important;
  color: #fff !important;
}

.dark input:focus,
.dark textarea:focus {
  background-color: var(--anthraciteMoyen) !important;
  border: 1px solid var(--brandColor);
}


/* ============== MODULE : DIVI EN DARK ================= */

/* En-tête (sous-titre) */
.dark .et_pb_fullwidth_header .et_pb_fullwidth_header_subhead {
  color: #FFF !important;
}

/* Accordéons / toggles */
.dark .et_pb_toggle {
  border-bottom: 1px solid var(--anthraciteClair) !important;
  background: none;
  color: #fff !important;
}

.dark .et_pb_toggle_title:before {
  color: var(--brandColor);
}

/* Pricing tables */
.dark .et_pb_pricing_table {
  background-color: var(--anthraciteMoyen) !important;
  border: 1px solid var(--anthraciteClair) !important;
  box-shadow: none;
}

.dark .et_pb_pricing_content_top {
  border-color: var(--anthraciteClair);
}

.dark .et_pb_pricing_heading {
  background-color: var(--anthraciteClair);
}

.dark .et_pb_featured_table .et_pb_pricing_heading {
  background-color: var(--brandColor);
}

.dark .et_pb_et_price,
.dark .et_pb_sum {
  color: #fff !important;
}

.dark .et_pb_featured_table {
  background: var(--anthraciteClair) !important;
}

.dark .et_pb_featured_table .et_pb_pricing_content_top {
  border-color: rgba(255, 255, 255, 0.3);
}

/* CTA */
.dark .et_pb_promo {
  background-color: var(--anthraciteMoyen);
  box-shadow: none;
}

.dark .et_pb_promo h2,
.dark .et_pb_promo p {
  color: #fff;
}

/* Blurb */
.dark .et_pb_blurb {}
.dark .et_pb_blurb:hover {}
.dark .et_pb_blurb_container .et_pb_module_header span {}

/* Team member */
.dark .et_pb_team_member {
  color: #fff;
}

.dark .et_pb_team_member_description .et_pb_member_position {
  color: var(--brandColor) !important;
}

/* Testimonial */
.dark .et_pb_testimonial {
  background-color: var(--anthraciteMoyen) !important;
}

.dark .et_pb_testimonial_description .et_pb_testimonial_content p {
  color: #fff;
}


/* ============== MODULE : DSM EN DARK ================= */

.dark .dsm-blog-carousel-item,
.dark .dsm-post-carousel-item,
.dark .dsm_card_carousel_child {
  background-color: var(--anthraciteMoyen) !important;
  color: #fff;
}

.dark .dsm-blog-carousel-item:hover,
.dark .dsm-post-carousel-item:hover,
.dark .dsm_card_carousel_child:hover {}

.dark .dsm-blog-carousel-item .dsm-entry-title a,
.dark .dsm-post-carousel-item .dsm-entry-title a,
.dark .dsm_card_carousel_child .dsm_card_title a {
  color: #fff;
}

.dark .dsm-blog-carousel-item .dsm-entry-title a:hover,
.dark .dsm-post-carousel-item .dsm-entry-title a:hover,
.dark .dsm_card_carousel_child .dsm_card_title a:hover {
  color: var(--brandColor);
}

/* Meta en dark (fond clair, texte sombre) */
.dark .post-meta {
  color: var(--anthracite) !important;
}

/* DSM Advanced Tabs (dark) */
.dark .dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab {
  color: #fff;
}

.dark .dsm-advanced-tabs-content-wrapper {
  border-top: 1px solid var(--anthraciteClair);
}

.dark .dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab.dsm-active {
  border-bottom: 2px solid var(--brandColor);
}

.dark .dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab .dsm-title,
.dark .dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab .dsm-tab-subtitle {
  color: #fff;
}

.dark .dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab.dsm-active .dsm-title,
.dark .dsm_advanced_tabs .dsm-advanced-tabs-wrapper .dsm-tab.dsm-active .dsm-tab-subtitle {
  color: var(--brandColor);
}

.dark .dsm_advanced_tabs .dsm-image img {
  border-radius: var(--borderRadius);
}

/* Portfolio dark */
.dark .et_pb_filterable_portfolio .et_pb_portfolio_filters ul li a {
  background-color: var(--anthraciteMoyen);
  color: #fff;
}

.dark .et_pb_filterable_portfolio .et_pb_portfolio_filters ul li a.active {
  background-color: var(--brandColor);
}

.dark .et_pb_filterable_portfolio .et_pb_portofolio_pagination {
  border-top: 1px solid var(--anthraciteClair);
}

.dark .et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li a {
  text-decoration: none;
}

.dark .et_pb_filterable_portfolio .et_pb_portofolio_pagination ul li a.active {
  color: var(--brandColor);
}

/* DSM Toggle dark */
.dark .dsm_content_toggle .dsm-switch-inner {
  background-color: var(--anthraciteClair);
}

.dark .dsm_content_toggle_0 .dsm-toggle-switch:checked + .dsm-switch-inner {
  background-color: var(--brandColor) !important;
}



/* =========================================================
   SECTIONS & PAGES SPÉCIFIQUES
   ======================================================== */

/* ============== MODULE : OFFRES ================= */

#offres .et_pb_blurb {
  background-color: #FFF;
  padding: 1em 2em;
  border-radius: var(--borderRadius);
}

#offres .et_pb_blurb ul li::marker {
  color: var(--brandColor) !important;
}


/* ============== MODULE : EXPERTISES ================= */

/* Section #expertises : icônes colorées */
#expertises .et_pb_blurb .et-pb-icon {
  color: var(--accent2);
  font-size: 25px;
}


/* ============== MODULE : FINANCEMENT ================= */

#financement {
  background-color: var(--grisMoyen) !important;
  max-width: 900px;
  margin: auto;
}

#financement .et_pb_module_header span {
  background-color: var(--accent2);
  padding: 0.2em 0.4em;
  border-radius: 5px;
  font-size: 14px;
}

#financement .et_pb_blurb_container {}

#financement .et_pb_blurb_description h4 {
  font-weight: 600 !important;
  font-size: 1.666em !important;
  padding-bottom: 0px;
}


/* ============== MODULE : BANDEAU CONFIANCE ================= */

#bandeauConfiance {
  position: relative;
  overflow: hidden;
}

#bandeauConfiance::before,
#bandeauConfiance::after {
  content: "";
  position: absolute;
  top: 0;
  width: 10%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}

#bandeauConfiance::before {
  left: 0;
  background: linear-gradient(to right, #fff, transparent);
}

#bandeauConfiance::after {
  right: 0;
  background: linear-gradient(to left, #fff, transparent);
}


/* ============== MODULE : SINGLE PROJECT ================= */

.single-project .et_pb_image {
  padding-bottom: 0px;
  margin-bottom: 0px !important;
}

.single-project .et_pb_image img {
  margin-bottom: 1em;
}


/* ============== MODULE : VIDEOS ================= */

#videos .dsm_card_carousel .dsm_card_carousel_child_subtitle {
  font-size: 15px !important;
  line-height: 1.3em !important;
  margin-bottom: 1em !important;
}



/* =========================================================
   EFFETS & COMPORTEMENTS AVANCÉS
   ======================================================== */

/* ============== MODULE : RANDOM BACKGROUND ================= */

.random-bg {
  position: relative;
  overflow: hidden;
  background-color: #161719 !important;
}

.random-bg::before,
.random-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: opacity 0.8s ease-in-out;
}

/* Image active */
.random-bg::before {
  opacity: 1;
  background-image: var(--current-bg);
}

/* Image suivante */
.random-bg::after {
  opacity: 0;
  background-image: var(--next-bg);
}

/* Crossfade */
.random-bg.fade-start::after {
  opacity: 1;
}

/* Contenu */
.random-bg > * {
  position: relative;
  z-index: 2;
}
