@charset "UTF-8";
.et_pb_button,
.et_pb_module .et_pb_button,
.et_pb_button_module_wrapper .et_pb_button {
  display: inline-block;
  padding: var(--cg-btn-padding-y) var(--cg-btn-padding-x);
  font-size: var(--cg-btn-font-size);
  font-weight: var(--cg-btn-font-weight);
  line-height: var(--cg-btn-line-height);
  border-radius: var(--cg-btn-border-radius);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  text-decoration: none;
  cursor: pointer;
  -webkit-filter: none;
          filter: none;
  -webkit-box-shadow: none;
          box-shadow: none;
  background-color: var(--cg-btn-color-background);
  color: var(--cg-btn-color-text);
  border: 1px solid var(--cg-btn-color-border);
}
.et_pb_button:hover,
.et_pb_module .et_pb_button:hover,
.et_pb_button_module_wrapper .et_pb_button:hover {
  background-color: var(--cg-btn-hover-background);
  color: var(--cg-btn-hover-color);
  padding: var(--cg-btn-padding-y) var(--cg-btn-padding-x);
  -webkit-filter: none;
          filter: none;
  -webkit-box-shadow: none;
          box-shadow: none;
  border-width: 1px;
  border-style: solid;
}
.et_pb_button:active,
.et_pb_module .et_pb_button:active,
.et_pb_button_module_wrapper .et_pb_button:active {
  background-color: var(--cg-btn-active-background);
  color: var(--cg-btn-active-color);
}
.et_pb_button:after,
.et_pb_module .et_pb_button:after,
.et_pb_button_module_wrapper .et_pb_button:after {
  font-family: "ETmodules";
  line-height: var(--cg-btn-line-height);
}

.et_pb_module .btn-primary,
.et_pb_module .et_pb_button.btn-primary {
  background-color: var(--cg-color-secondary);
  color: var(--cg-color-white);
  border-color: var(--cg-color-secondary);
}
.et_pb_module .btn-primary:hover,
.et_pb_module .et_pb_button.btn-primary:hover {
  background-color: var(--cg-color-secondary-dark);
  border-color: var(--cg-color-secondary-dark);
}
.et_pb_module .btn-secondary,
.et_pb_module .et_pb_button.btn-secondary {
  background-color: var(--cg-color-gray-200);
  color: var(--cg-color-gray-800);
  border-color: var(--cg-color-gray-200);
}
.et_pb_module .btn-secondary:hover,
.et_pb_module .et_pb_button.btn-secondary:hover {
  background-color: var(--cg-color-gray-300);
  border-color: var(--cg-color-gray-300);
}
.et_pb_module .btn-dark,
.et_pb_module .et_pb_button.btn-dark {
  background-color: rgb(33, 33, 33);
  color: var(--cg-color-gray-100);
  border: none;
}
.et_pb_module .btn-dark:hover,
.et_pb_module .et_pb_button.btn-dark:hover {
  border: none !important;
  background-color: rgb(18, 18, 18);
}
.et_pb_module .btn-call-to-action,
.et_pb_module .et_pb_button.btn-call-to-action {
  background-color: var(--cg-color-secondary);
  color: var(--cg-color-white);
  border-color: var(--cg-color-secondary);
}
.et_pb_module .btn-call-to-action:hover,
.et_pb_module .et_pb_button.btn-call-to-action:hover {
  background-color: var(--cg-color-secondary-dark);
  border-color: var(--cg-color-secondary-dark);
}

.section-dark .et_pb_button:not([class*=btn-]),
.section-dark .et_pb_button_module_wrapper .et_pb_button:not([class*=btn-]),
.et_pb_bg_layout_dark .et_pb_button:not([class*=btn-]),
.et_pb_bg_layout_dark .et_pb_button_module_wrapper .et_pb_button:not([class*=btn-]) {
  background-color: transparent;
  color: var(--cg-color-white);
  border-color: var(--cg-color-white);
}
.section-dark .et_pb_button:not([class*=btn-]):hover,
.section-dark .et_pb_button_module_wrapper .et_pb_button:not([class*=btn-]):hover,
.et_pb_bg_layout_dark .et_pb_button:not([class*=btn-]):hover,
.et_pb_bg_layout_dark .et_pb_button_module_wrapper .et_pb_button:not([class*=btn-]):hover {
  background-color: var(--cg-color-white);
  color: var(--cg-color-gray-900);
}

@media (max-width: 479px) {
  .et_pb_button,
  .et_pb_module .et_pb_button {
    font-size: calc(var(--cg-btn-font-size) * 0.875);
  }
}
.menu-item-25833987 > a {
  background-color: var(--cg-color-secondary);
  color: var(--cg-color-white);
  padding: 0.8em 1.5em;
  border-radius: var(--cg-btn-border-radius);
  -webkit-transition: background-color 0.3s ease;
  transition: background-color 0.3s ease;
  text-decoration: none;
  display: inline-block;
}
.menu-item-25833987 > a:hover {
  background-color: var(--cg-color-secondary-dark);
  color: var(--cg-color-white);
}

.et_pb_module.dipi_carousel_child .dipi-carousel-button-wrapper .dipi-carousel-button.et_pb_button {
  max-width: 100%;
}
.et_pb_module.dipi_carousel_child .dipi-carousel-button-wrapper .dipi-carousel-button.et_pb_button, .et_pb_module.dipi_carousel_child .dipi-carousel-button-wrapper .dipi-carousel-button.et_pb_button:hover {
  background-color: var(--cg-color-gray-800);
  color: var(--cg-color-white);
  border: none;
}
.et_pb_module.dipi_carousel_child .dipi-carousel-button-wrapper .dipi-carousel-button.et_pb_button:hover {
  background-color: var(--cg-color-gray-900);
}

.et_pb_button.et_pb_button_dark {
  margin: 0;
  padding: 0.3em 1em;
  max-width: 100%;
  display: inline-block;
  cursor: pointer;
  outline: none;
  background-color: rgb(33, 33, 33);
  background-attachment: scroll;
  background-clip: border-box;
  background-image: none;
  background-origin: padding-box;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 5px;
  border-style: none;
  border-width: 0;
  border-color: rgb(109, 109, 109);
  border-image-outset: 0;
  border-image-repeat: stretch;
  border-image-slice: 100%;
  border-image-source: none;
  border-image-width: 1;
  color: rgb(109, 109, 109);
  font-family: var(--cg-font-family-body);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
  -webkit-box-shadow: none;
          box-shadow: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-filter: none;
          filter: none;
  list-style: none;
}
.et_pb_button.et_pb_button_dark:hover {
  background-color: rgb(45, 45, 45);
  color: rgb(150, 150, 150);
}
@media (max-width: 479px) {
  .et_pb_button.et_pb_button_dark {
    width: 100%;
    text-align: center;
  }
}

.more-link {
  background-color: var(--cg-color-secondary);
  color: var(--cg-color-white);
  border-color: var(--cg-color-secondary);
  padding: var(--cg-btn-padding-y) var(--cg-btn-padding-x);
  border-radius: var(--cg-btn-border-radius);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: var(--cg-spacing-md);
}
.more-link:hover {
  background-color: var(--cg-color-secondary-dark);
  border-color: var(--cg-color-secondary-dark);
  color: var(--cg-color-white);
}

.has-post-thumbnail img {
  border-radius: var(--cg-bg-image-border-radius);
}

.et_pb_module .et_pb_blog_grid .et_pb_salvattore_content .column.size-1of3 {
  width: 31.75%; /* Column width */
  margin-right: 2.375%; /* Reduce space between columns */
}
.et_pb_module .et_pb_blog_grid .entry-title a,
.et_pb_module .et_pb_blog_grid .post-content {
  font-size: var(--cg-font-size-base);
  line-height: 1;
}
.et_pb_module .et_pb_blog_grid .entry-title a {
  font-weight: 600;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.et_pb_module .et_pb_blog_grid .post-content {
  font-weight: 400;
}

.dipi_timeline_ribbon_text {
  font-size: var(--cg-font-size-h3);
  color: var(--cg-secondary-color);
}

body #main-content .et_pb_blog_grid .et_pb_post .more-link,
body #main-content .et_pb_post .more-link {
  background-color: transparent;
  border: 1px solid var(--cg-color-primary);
  color: var(--cg-btn-color-text);
  padding: 0.75rem 1.125rem;
  border-radius: 0.25rem;
  font-weight: 400;
  font-size: 18px;
}
body #main-content .et_pb_blog_grid .et_pb_post .more-link:hover,
body #main-content .et_pb_post .more-link:hover {
  border-color: var(--cg-color-secondary);
  background-color: var(--cg-color-secondary);
  color: var(--cg-color-white);
}
body #main-content .section-dark .et_pb_post .more-link {
  background-color: rgb(33, 33, 33);
  color: rgb(109, 109, 109);
  border: none;
  padding: var(--cg-btn-padding-y) var(--cg-btn-padding-x);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
body #main-content .section-dark .et_pb_post .more-link:hover {
  color: var(--cg-color-white);
  background-color: var(--cg-color-primary);
}
body #main-content .more-link {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: var(--cg-spacing-md);
}

/* ==========================================================================
   GLOBAL VARIABLES - DIVI CHILD THEME (Desktop First)
   --------------------------------------------------------------------------
   Global CSS configuration
   ========================================================================== */
:root {
  /* --------------------------------------
   * 1. COLOR PALETTE
   -------------------------------------- */
  /* Gray Palette */
  --cg-color-white: #FFFFFF;
  --cg-color-gray-100: #FAFAFA;
  --cg-color-gray-200: #e0e0e0;
  --cg-color-gray-300: #bdbdbd;
  --cg-color-gray-400: #9e9e9e;
  --cg-color-gray-500: #757575;
  --cg-color-gray-600: #676767;
  --cg-color-gray-700: #313133;
  --cg-color-gray-800: #212121;
  --cg-color-gray-900: #121212;
  /* Main Colors */
  --cg-color-primary: #030303;
  --cg-color-secondary: #FD6734;
  --cg-color-tertiary: #FD6734;
  /* Background Colors */
  --cg-background-color-footer: #000000;
  --cg-background-color-cta: var(--cg-color-secondary);
  /* Text Colors */
  --cg-color-text: var(--cg-color-gray-600);
  --cg-color-text-light: var(--cg-color-gray-100);
  --cg-color-text-strong: var(--cg-color-gray-900);
  --cg-color-text-base: var(--cg-color-gray-600);
  --cg-color-text-over-title: var(--cg-color-gray-600);
  /* --------------------------------------
   * 2. TYPOGRAPHY
   -------------------------------------- */
  /* Base Typography */
  --cg-font-family-body: "DM Sans", var(--cg-font-family-fallback-sans);
  --cg-font-family-heading: "DM Sans", var(--cg-font-family-fallback-sans);
  --cg-font-family-fallback-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  --cg-font-size-base: 20px;
  --cg-font-size-lg: 1.2rem;
  --cg-font-size-sm: 0.9rem;
  --cg-line-height-base: 1.2;
  --cg-line-height-heading: 1;
  /* Heading Styles */
  --cg-font-size-h1: 4rem;
  --cg-max-width-h1: 800px;
  --cg-spacing-h1: var(--cg-spacing-lg);
  --cg-font-color-h1: var(--cg-color-gray-600);
  --cg-font-size-h2: 2.25rem;
  --cg-max-width-h2: 700px;
  --cg-spacing-h2: 0;
  --cg-font-color-h2: var(--cg-color-secondary);
  --cg-font-size-h3: 1.8rem;
  --cg-max-width-h3: 600px;
  --cg-spacing-h3: var(--cg-spacing-sm);
  --cg-font-color-h3: var(--cg-color-secondary);
  --cg-font-size-h4: 1.5rem;
  --cg-max-width-h4: 500px;
  --cg-spacing-h4: var(--cg-spacing-md);
  --cg-font-color-h4: var(--cg-color-gray-600);
  --cg-font-size-h5: 1.4rem;
  --cg-max-width-h5: 400px;
  --cg-spacing-h5: var(--cg-spacing-sm);
  --cg-font-color-h5: var(--cg-color-gray-600);
  --cg-font-size-h6: 1.125rem;
  --cg-max-width-h6: 300px;
  --cg-spacing-h6: var(--cg-spacing-sm);
  --cg-font-color-h6: var(--cg-color-gray-600);
  /* Font Weights */
  --cg-font-weight-light: 300;
  --cg-font-weight-regular: 400;
  --cg-font-weight-medium: 500;
  --cg-font-weight-semibold: 600;
  --cg-font-weight-bold: 700;
  /* Heading Font Weights */
  --cg-font-weight-h1: var(--cg-font-weight-regular);
  --cg-font-weight-h2: var(--cg-font-weight-semibold);
  --cg-font-weight-h3: var(--cg-font-weight-bold);
  --cg-font-weight-h4: var(--cg-font-weight-bold);
  --cg-font-weight-h5: var(--cg-font-weight-medium);
  --cg-font-weight-h6: var(--cg-font-weight-medium);
  /* Letter Spacing */
  --cg-letter-spacing-heading: -0.02em;
  --cg-letter-spacing-body: 0;
  /* Typography Styles */
  --cg-font-size-over-title: 1.125rem;
  --cg-font-weight-over-title: var(--cg-font-weight-regular);
  --cg-line-height-over-title: 1.2;
  --cg-letter-spacing-over-title: 0.05em;
  --cg-font-size-footer: var(--cg-font-size-sm);
  /* --------------------------------------
   * 3. SPACING
   -------------------------------------- */
  --cg-spacing-xs: 0.25em;
  --cg-spacing-sm: 0.5em;
  --cg-spacing-md: 1em;
  --cg-spacing-lg: 1.5em;
  --cg-spacing-xl: 2.5em;
  /* Section Spacing */
  --cg-section-padding-y: clamp(2rem, 5vw, 6rem);
  /* --------------------------------------
   * 4. MODULES
   -------------------------------------- */
  /* Row Max Width */
  --cg-row-max-width: 2560px;
  --cg-row-margin-side: 5%;
  /* Images and Media */
  --cg-image-border-radius: 5px;
  --cg-image-padding: 3rem;
  --cg-image-bg-header-padding: 15rem;
  /* Buttons */
  --cg-btn-font-size: 18px;
  --cg-btn-padding-y: 0.5em;
  --cg-btn-padding-x: 1em;
  --cg-btn-border-radius: 5px;
  --cg-btn-font-weight: 500;
  --cg-btn-line-height: 1.7em;
  --cg-btn-color-text: var(--cg-color-text);
  --cg-btn-color-border: var(--cg-color-text);
  --cg-btn-color-background: transparent;
  --cg-btn-hover-background: var(--cg-color-secondary);
  --cg-btn-hover-color: #fff;
  --cg-btn-disabled-background: var(--cg-color-gray-400);
  --cg-btn-disabled-text: var(--cg-color-gray-700);
  /* Menu */
  --cg-menu-font-family: var(--cg-font-family-body);
  --cg-menu-font-size: 1.2rem;
  --cg-menu-font-weight: 400;
  --cg-menu-line-height: 1.5;
  --cg-menu-color-text: var(--cg-color-gray-700);
  --cg-menu-color-bg: transparent;
  --cg-menu-color-link-hover: var(--cg-color-secondary);
  --cg-menu-color-active: var(--cg-color-primary);
  --cg-menu-padding-y: 1.5em;
  --cg-menu-padding-x: 2em;
  --cg-menu-item-spacing: 1em;
  --cg-logo-max-height: 70px;
  /* --------------------------------------
   * 5. TEXT MAX WIDTHS IN COLUMNS
   * Variables pour les longueurs maximales de texte selon le type de colonne
   * Ces variables peuvent être modifiées après la compilation
   -------------------------------------- */
  /* Longueurs maximales des textes selon le type de colonne */
  --cg-text-max-width-4_4: 52rem;
  --cg-text-max-width-3_4: 45rem;
  --cg-text-max-width-2_3: 40rem;
  --cg-text-max-width-1_2: 35rem;
  --cg-text-max-width-default: 100%;
  /* Longueurs maximales sur mobile */
  --cg-text-mobile-max-width: 100%;
  /* Longueurs maximales sur tablette (em) */
  --cg-text-tablet-max-width-full: 90%;
  --cg-text-tablet-max-width-half: 35em;
  --cg-text-tablet-max-width-third: 30em;
  --cg-text-tablet-max-width-two-thirds: 40em;
  /* Longueurs maximales sur desktop (em) */
  --cg-text-desktop-max-width-full: 75%;
  --cg-text-desktop-max-width-half: 40em;
  --cg-text-desktop-max-width-third: 25em;
  --cg-text-desktop-max-width-quarter: 20em;
  --cg-text-desktop-max-width-two-thirds: 35em;
  --cg-text-desktop-max-width-three-quarters: 40em;
  /* Longueurs maximales sur tablette (rem) */
  --cg-text-tablet-max-width-full-rem: 90%;
  --cg-text-tablet-max-width-half-rem: 80%;
  --cg-text-tablet-max-width-third-rem: 40rem;
  --cg-text-tablet-max-width-two-thirds-rem: 50rem;
  /* Longueurs maximales sur desktop (rem) */
  --cg-text-desktop-max-width-full-rem: 70rem;
  --cg-text-desktop-max-width-half-rem: 38rem;
  --cg-text-desktop-max-width-third-rem: 30rem;
  --cg-text-desktop-max-width-quarter-rem: 20rem;
  --cg-text-desktop-max-width-two-thirds-rem: 50rem;
  --cg-text-desktop-max-width-three-quarters-rem: 55rem;
  --cg-post-content-max-width: 75%;
  /* --------------------------------------
   * 6. BREAKPOINTS
   -------------------------------------- */
  --cg-breakpoint-mobile: 479px;
  --cg-breakpoint-tablet: 980px;
  --cg-breakpoint-desktop: 981px;
  /* Variables spécifiques à Divi */
  --divi-section-padding: 4%;
  --divi-row-padding: 2%;
  --divi-column-padding: 30px;
  /* Breakpoints Divi */
  --divi-breakpoint-desktop: 980px;
  --divi-breakpoint-tablet: 768px;
  --divi-breakpoint-phone: 480px;
  /* Breakpoints spécifiques pour le menu Divi */
  --divi-menu-breakpoint-desktop: 981px;
  --divi-menu-breakpoint-tablet: 980px;
  --divi-menu-breakpoint-mobile: 767px;
  /* Header heights selon breakpoint menu Divi */
  --cg-header-height: 240px;
  --cg-header-height-mobile: 80px;
  /* Section spacing */
  --cg-section-margin-top: 20px;
  --cg-section-margin-bottom: 20px;
}

/* Tablet (768px - 980px) */
@media (max-width: 980px) {
  :root {
    --cg-font-size-base: 18px;
    --cg-font-size-h1: 3.5rem;
    --cg-font-size-h2: 2.5rem;
    --cg-font-size-h3: 1.6rem;
    /* Max widths */
    --cg-max-width-h1: 700px;
    --cg-max-width-h2: 600px;
    --cg-max-width-h3: 500px;
    /* Menu */
    --cg-menu-font-size: 1.125rem;
    --cg-menu-padding-y: 1.2em;
    --cg-menu-padding-x: 1.5em;
    --cg-logo-max-height: 60px;
    --cg-header-height: var(--cg-header-height-mobile);
  }
}
/* Mobile (< 768px) */
@media (max-width: 767px) {
  :root {
    --cg-font-size-base: 16px;
    --cg-font-size-h1: 3rem;
    --cg-font-size-h2: 2.25rem;
    --cg-font-size-h3: 1.4rem;
    /* Max widths */
    --cg-max-width-h1: 100%;
    --cg-max-width-h2: 100%;
    --cg-max-width-h3: 100%;
    /* Menu */
    --cg-menu-font-size: 1rem;
    --cg-menu-padding-y: 1em;
    --cg-menu-padding-x: 1em;
    --cg-logo-max-height: 50px;
    /* Spacing */
    --cg-section-margin-top: 10px;
    --cg-section-margin-bottom: 10px;
    --cg-image-bg-header-padding: 6.4rem;
    --cg-post-content-max-width: 100%;
  }
}
/* Phone (< 480px) - Pour les ajustements très spécifiques */
@media (max-width: 479px) {
  :root {
    --cg-font-size-h1: 2.5rem;
    --cg-font-size-h2: 2rem;
  }
}
/* ========================================
   MENU VARIABLES - DIVI LOGIC
   Mobile:   0 - 767px
   Tablet: 768px - 980px
   Desktop: 981px and above
======================================== */
/* ------------------------------
   MOBILE FIRST (up to 767px)
------------------------------ */
:root {
  /* Menu Typography */
  --cg-menu-font-family: var(--cg-font-family-body);
  --cg-menu-font-size: 1rem;
  --cg-menu-font-weight: 400;
  --cg-menu-line-height: 1.5;
  /* Menu Colors */
  --cg-menu-color-text: var(--cg-color-gray-700);
  --cg-menu-color-bg: transparent;
  --cg-menu-color-link-hover: var(--cg-color-secondary);
  --cg-menu-color-active: var(--cg-color-primary);
  /* Spacing */
  --cg-menu-padding-y: 1em;
  --cg-menu-padding-x: 1em;
  --cg-menu-item-spacing: 1em;
  /* Logo */
  --cg-logo-max-height: 50px;
}

/* ------------------------------
    TABLET (768px to 980px)
 ------------------------------ */
@media (max-width: 980px) {
  :root {
    --cg-menu-font-size: 1.125rem;
    --cg-menu-padding-y: 1.2em;
    --cg-menu-padding-x: 1.5em;
    --cg-logo-max-height: 60px;
  }
}
/* ------------------------------
    DESKTOP (≥ 981px)
 ------------------------------ */
@media (min-width: 981px) {
  :root {
    --cg-menu-font-size: 1.2rem;
    --cg-menu-padding-y: 1.5em;
    --cg-menu-padding-x: 2em;
    --cg-logo-max-height: 70px;
  }
}
/* ------------------------------
  SPECIFIC VARIABLES FOR TEXT MODULE
------------------------------ */
:root {
  --cg-module-text-margin-bottom: 0;
}

/* ------------------------------
  SPECIFIC VARIABLES FOR SECTIONS
------------------------------ */
:root {
  --cg-section-margin-top: 20px;
  --cg-section-margin-bottom: 20px;
}

@media (max-width: 479px) {
  :root {
    --cg-section-margin-top: 10px;
    --cg-section-margin-bottom: 10px;
  }
}
@media (max-width: 479px) and (max-width: 980px) {
  :root {
    --cg-section-margin-top: 20px;
    --cg-section-margin-bottom: 20px;
  }
}
/* Menu breakpoint - Desktop (> $breakpoint-menu) */
@media (min-width: 981px) {
  :root {
    --cg-header-height: 240px;
  }
}
/* Menu breakpoint - Mobile et Tablet (≤ $breakpoint-menu) */
@media (max-width: 980px) {
  :root {
    --cg-header-height: var(--cg-header-height-mobile);
  }
}