/* Homepage-only: no selectors reach the header, hero or footer. */
.gp-home-refresh {
  --refresh-ink: #082251;
  --refresh-red: #c12626;
}

/* 1. NOS PARTENAIRES (f5af9f8) */
.gp-home-refresh.elementor-element-f5af9f8 {
  padding: 40px 20px !important;
  background: #f8fafc !important;
  border-bottom: 1px solid #e2e8f0 !important;
}

.gp-refresh-partner-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.gp-refresh-partner-inner h2 {
  margin: 0 0 24px;
  text-align: center;
  color: #64748b;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.gp-refresh-partner-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
  align-items: center;
}

.gp-refresh-partner {
  display: flex;
  height: 64px;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: #ffffff;
  border: 1px solid #eef2f6;
  padding: 10px 16px;
  box-shadow: 0 2px 6px rgba(10, 37, 64, 0.03);
  transition: all 0.25s ease;
}

.gp-refresh-partner img {
  display: block;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 42px !important;
  object-fit: contain;
  filter: grayscale(20%);
  opacity: 0.88;
  transition: all 0.25s ease;
}

.gp-refresh-partner:hover {
  background: #ffffff;
  border-color: #cbd5e1;
  box-shadow: 0 8px 20px rgba(10, 37, 64, 0.08);
  transform: translateY(-2px);
}

.gp-refresh-partner:hover img {
  filter: grayscale(0%);
  opacity: 1;
}

/* 2. LES 4 CARDS SERVICES (963fdae) */
.gp-home-refresh.elementor-element-963fdae {
  padding: 80px 20px !important;
  background: #ffffff !important;
  display: block !important;
}

.gp-home-refresh.elementor-element-963fdae>.elementor-container {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px !important;
  max-width: 1220px !important;
  margin: 0 auto !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

.gp-home-refresh.elementor-element-963fdae>.elementor-container>.elementor-column {
  width: 100% !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 18px !important;
  padding: 34px 26px !important;
  box-shadow: 0 4px 18px rgba(8, 34, 81, 0.04) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease !important;
  position: relative !important;
  text-align: left !important;
}

.gp-home-refresh.elementor-element-963fdae>.elementor-container>.elementor-column:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 16px 36px rgba(8, 34, 81, 0.1) !important;
  border-color: #c12626 !important;
  background: #ffffff !important;
}

.gp-home-refresh.elementor-element-963fdae .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.gp-home-refresh.elementor-element-963fdae .elementor-widget-ld_icon_box,
.gp-home-refresh.elementor-element-963fdae .elementor-widget-container,
.gp-home-refresh.elementor-element-963fdae .iconbox {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  width: 100% !important;
  height: 100% !important;
  align-items: flex-start !important;
  text-align: left !important;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
}

.gp-home-refresh.elementor-element-963fdae .iconbox-icon-container {
  width: 52px !important;
  height: 52px !important;
  border-radius: 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 0 22px 0 !important;
  transition: transform 0.25s ease !important;
}

.gp-home-refresh.elementor-element-963fdae .elementor-column:hover .iconbox-icon-container {
  transform: scale(1.08) !important;
}

.gp-home-refresh.elementor-element-963fdae .iconbox-icon-container svg {
  width: 24px !important;
  height: 24px !important;
  fill: currentColor !important;
}

/* Tint distincts for the 4 service cards */
.gp-home-refresh.elementor-element-963fdae .elementor-column:nth-child(1) .iconbox-icon-container {
  background: rgba(193, 38, 38, 0.1) !important;
  color: #c12626 !important;
}

.gp-home-refresh.elementor-element-963fdae .elementor-column:nth-child(2) .iconbox-icon-container {
  background: rgba(8, 34, 81, 0.09) !important;
  color: #082251 !important;
}

.gp-home-refresh.elementor-element-963fdae .elementor-column:nth-child(3) .iconbox-icon-container {
  background: rgba(2, 132, 199, 0.1) !important;
  color: #0284c7 !important;
}

.gp-home-refresh.elementor-element-963fdae .elementor-column:nth-child(4) .iconbox-icon-container {
  background: rgba(16, 185, 129, 0.1) !important;
  color: #059669 !important;
}

.gp-home-refresh.elementor-element-963fdae .contents {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  width: 100% !important;
}

.gp-home-refresh.elementor-element-963fdae .lqd-iconbox-heading {
  font-size: 20px !important;
  line-height: 1.3 !important;
  font-weight: 750 !important;
  color: #082251 !important;
  margin: 0 0 12px 0 !important;
  min-height: 52px !important;
}

.gp-home-refresh.elementor-element-963fdae .contents p {
  font-size: 14.5px !important;
  line-height: 1.6 !important;
  color: #536079 !important;
  margin: 0 0 24px 0 !important;
  min-height: 72px !important;
  flex-grow: 1 !important;
}

.gp-home-refresh.elementor-element-963fdae .elementor-button.btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #c12626 !important;
  text-decoration: none !important;
  padding: 6px 0 !important;
  border-bottom: 2px solid transparent !important;
  margin-top: auto !important;
  transition: all 0.2s ease !important;
}

.gp-home-refresh.elementor-element-963fdae .elementor-button.btn:hover {
  color: #9f1b24 !important;
  border-bottom-color: #9f1b24 !important;
  transform: translateX(3px) !important;
}

.gp-home-refresh.elementor-element-963fdae .elementor-button.btn .btn-icon {
  margin-left: 4px !important;
  transition: transform 0.2s ease !important;
}

.gp-home-refresh.elementor-element-963fdae .elementor-button.btn:hover .btn-icon {
  transform: translateX(4px) !important;
}

/* 3. TRUST SECTION (gp-home-trust-section) */
.gp-home-refresh.gp-home-trust-section {
  background: #f2f5fa !important;
  padding: 76px 0 !important;
}

.gp-home-refresh .gp-pricing-container {
  display: grid;
  grid-template-columns: .85fr 1.35fr;
  gap: 60px;
  align-items: center;
}

.gp-home-refresh .gp-pricing-container>div:first-child {
  text-align: left !important;
  margin: 0 !important;
}

.gp-home-refresh .gp-pricing-container h2 {
  font-size: clamp(28px, 3vw, 40px) !important;
  line-height: 1.15 !important;
  margin: 22px 0 !important;
}

.gp-home-refresh .gp-home-pillars-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

.gp-home-refresh .gp-dom-pillar-card {
  padding: 26px !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 14px !important;
}

/* 4. CARDS MISSION VISION VALEURS (752f73f) */
.gp-home-refresh.elementor-element-752f73f {
  padding: 80px 20px !important;
  background: #f8fafc !important;
  border: 0 !important;
}

.gp-home-refresh.elementor-element-752f73f .elementor-container {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 28px !important;
  max-width: 1220px !important;
  margin: 0 auto !important;
}

.gp-home-refresh.elementor-element-752f73f .elementor-column {
  width: 100% !important;
  padding: 0 !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 18px !important;
  box-shadow: 0 4px 18px rgba(8, 34, 81, 0.05) !important;
  background: #ffffff !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}

.gp-home-refresh.elementor-element-752f73f .elementor-column:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 16px 36px rgba(8, 34, 81, 0.12) !important;
}

.gp-home-refresh.elementor-element-752f73f .elementor-column:nth-child(1) {
  border-top: 5px solid #082251 !important;
}

.gp-home-refresh.elementor-element-752f73f .elementor-column:nth-child(2) {
  border-top: 5px solid #c12626 !important;
}

.gp-home-refresh.elementor-element-752f73f .elementor-column:nth-child(3) {
  border-top: 5px solid #059669 !important;
}

.gp-home-refresh.elementor-element-752f73f .elementor-column>.elementor-widget-wrap {
  padding: 38px 30px !important;
  display: flex !important;
  flex-direction: column !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  height: 100% !important;
}

.gp-home-refresh.elementor-element-752f73f .elementor-widget-ld_icon_box,
.gp-home-refresh.elementor-element-752f73f .elementor-widget-container {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.gp-home-refresh.elementor-element-752f73f .iconbox {
  background: transparent !important;
  padding: 0 !important;
  box-shadow: none !important;
  text-align: left !important;
  align-items: flex-start !important;
}

.gp-home-refresh.elementor-element-752f73f .lqd-iconbox-heading {
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #082251 !important;
  margin: 0 0 16px 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

.gp-home-refresh.elementor-element-752f73f .contents p {
  font-size: 15px !important;
  line-height: 1.75 !important;
  color: #475569 !important;
  margin: 0 !important;
}

/* 5. NOS DÉMARCHES LES PLUS POPULAIRES (60d46d3e) */
.gp-home-refresh.elementor-element-60d46d3e {
  padding: 80px 20px !important;
  min-height: 0 !important;
  background: #f8fafc !important;
  border-radius: 0 !important;
  width: 100% !important;
  max-width: none !important;
}

.gp-home-refresh.elementor-element-60d46d3e::before,
.gp-home-refresh.elementor-element-60d46d3e::after {
  display: none !important;
}

.gp-home-refresh.elementor-element-60d46d3e .elementor-spacer {
  display: none !important;
}

.gp-home-refresh.elementor-element-60d46d3e .elementor-widget-container,
.gp-home-refresh.elementor-element-60d46d3e .split-inner {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

.gp-home-refresh .gp-refresh-directory {
  max-width: 1220px;
  width: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  opacity: 1 !important;
  visibility: visible !important;
}

.gp-refresh-directory-h2 {
  grid-column: 1 / -1;
  margin-bottom: 8px;
}

.gp-refresh-directory-h2 h2 {
  color: #082251;
  font-size: clamp(26px, 2.6vw, 36px);
  font-weight: 800;
  margin: 0;
  letter-spacing: -0.02em;
}

.gp-refresh-directory-h5 {
  grid-column: 1 / -1;
  margin-top: 24px;
}

.gp-refresh-directory-h5 h5 {
  color: #64748b;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-weight: 800;
  margin: 0;
  padding-bottom: 10px;
  border-bottom: 2px solid #e2e8f0;
}

.gp-refresh-directory-h4 h4 {
  margin: 0;
  font-size: 15px;
  line-height: 1.4;
  height: 100%;
}

.gp-refresh-directory-h4 a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  min-height: 58px;
  background: #ffffff;
  padding: 16px 20px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  color: #082251;
  font-size: 14.5px;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 2px 6px rgba(8, 34, 81, 0.03);
  transition: all 0.22s ease;
}

.gp-refresh-directory-h4 a::after {
  content: '→';
  color: #94a3b8;
  font-size: 16px;
  font-weight: 700;
  margin-left: 10px;
  transition: transform 0.2s ease, color 0.2s ease;
}

.gp-refresh-directory-h4 a:hover {
  border-color: #c12626;
  color: #c12626;
  box-shadow: 0 6px 16px rgba(193, 38, 38, 0.1);
  transform: translateY(-2px);
}

.gp-refresh-directory-h4 a:hover::after {
  color: #c12626;
  transform: translateX(4px);
}

.gp-refresh-directory-h4 a:empty {
  display: none;
}

/* 6. BLOG SHOWCASE */
.gp-home-refresh.gp-home-blog-section {
  padding: 80px 20px !important;
  background: #fff !important;
}

.gp-home-blog-section.gp-home-refresh .gp-exec-container {
  max-width: 1220px;
  padding: 0;
}

.gp-home-blog-section.gp-home-refresh .gp-mag-grid {
  gap: 30px;
}

.gp-home-blog-section.gp-home-refresh .gp-mag-card {
  box-shadow: none;
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid #dce2ea;
  overflow: hidden;
}

.gp-home-blog-section.gp-home-refresh .gp-mag-title {
  font-size: 21px;
  line-height: 1.35;
}

.gp-home-blog-section.gp-home-refresh .gp-mag-card img {
  border-radius: 12px;
}

/* 7. ACCESSIBILITY & RESPONSIVE BREAKPOINTS */
.gp-home-refresh a:focus-visible {
  outline: 3px solid #c12626;
  outline-offset: 4px;
}

@media (max-width: 1080px) {
  .gp-refresh-partner-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gp-home-refresh.elementor-element-963fdae>.elementor-container {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
  }

  .gp-home-refresh .gp-pricing-container {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .gp-home-refresh .gp-refresh-directory {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .gp-home-refresh.elementor-element-963fdae {
    display: block !important;
    padding: 48px 16px !important;
  }

  .gp-home-refresh.elementor-element-963fdae>.elementor-container {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .gp-home-refresh.elementor-element-963fdae>.elementor-container>.elementor-column {
    padding: 26px 20px !important;
  }

  .gp-home-refresh.elementor-element-963fdae .lqd-iconbox-heading,
  .gp-home-refresh.elementor-element-963fdae .contents p {
    min-height: 0 !important;
  }

  .gp-refresh-partner-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .gp-refresh-partner {
    height: 56px;
    padding: 8px 12px;
  }

  .gp-refresh-partner img {
    max-height: 36px !important;
  }

  .gp-home-refresh .gp-home-pillars-grid {
    grid-template-columns: 1fr !important;
  }

  .gp-home-refresh.elementor-element-752f73f {
    padding: 50px 16px !important;
  }

  .gp-home-refresh.elementor-element-752f73f .elementor-container {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .gp-home-refresh.elementor-element-752f73f .elementor-column>.elementor-widget-wrap {
    padding: 28px 22px !important;
  }

  .gp-home-refresh.elementor-element-60d46d3e {
    padding: 50px 16px !important;
  }

  .gp-home-refresh .gp-refresh-directory {
    grid-template-columns: 1fr !important;
    gap: 12px;
  }

  .gp-refresh-directory-h4 a {
    min-height: 52px;
    padding: 14px 16px;
  }

  /* 8. MOBILE DROPDOWN BUTTONS (SECTION 9916731) */
  .elementor-element-9916731 {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    padding: 30px 16px !important;
    background: #f8fafc !important;
  }

  .elementor-element-9916731 .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    width: 100% !important;
  }

  .elementor-element-9916731 .elementor-widget-ucaddon_dropdown_button {
    width: 100% !important;
    position: relative !important;
  }

  /* Élever le z-index du widget et conteneur contenant le bouton ouvert */
  .elementor-element-9916731 .elementor-widget-ucaddon_dropdown_button:has(.ca_btn.ue_active_drop),
  .elementor-element-9916731 .ca_btn_wrapper:has(.ca_btn.ue_active_drop),
  .elementor-element-9916731 .ca_btn_container:has(.ca_btn.ue_active_drop) {
    z-index: 9999 !important;
    position: relative !important;
  }

  .elementor-element-9916731 .ca_btn_wrapper {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
  }

  .elementor-element-9916731 .ca_btn_container {
    width: 100% !important;
    display: block !important;
    position: relative !important;
  }

  .elementor-element-9916731 .ca_btn {
    width: 100% !important;
    min-height: 54px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 14px 20px !important;
    background: #082251 !important;
    color: #ffffff !important;
    border: 1px solid #102d64 !important;
    border-radius: 14px !important;
    font-size: 15.5px !important;
    font-weight: 750 !important;
    letter-spacing: -0.01em !important;
    box-shadow: 0 4px 14px rgba(8, 34, 81, 0.12) !important;
    cursor: pointer !important;
    overflow: visible !important;
    position: relative !important;
    transition: all 0.22s ease !important;
  }

  .elementor-element-9916731 .ca_btn i,
  .elementor-element-9916731 .ca_btn svg {
    order: 2 !important;
    font-size: 16px !important;
    color: #cbd5e1 !important;
    fill: #cbd5e1 !important;
    transition: transform 0.25s ease, color 0.25s ease !important;
  }

  .elementor-element-9916731 .ca_btn .ue-btn-text {
    order: 1 !important;
    color: #ffffff !important;
  }

  /* État actif / ouvert */
  .elementor-element-9916731 .ca_btn.ue_active_drop {
    background: #c12626 !important;
    border-color: #c12626 !important;
    border-bottom-left-radius: 6px !important;
    border-bottom-right-radius: 6px !important;
    box-shadow: 0 8px 24px rgba(193, 38, 38, 0.25) !important;
  }

  .elementor-element-9916731 .ca_btn.ue_active_drop i,
  .elementor-element-9916731 .ca_btn.ue_active_drop svg {
    transform: rotate(180deg) !important;
    color: #ffffff !important;
    fill: #ffffff !important;
  }

  /* Menu déroulant de chaque bouton */
  .elementor-element-9916731 .ca_btn .ca_dropdown {
    width: 100% !important;
    min-width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 8px !important;
    position: absolute !important;
    top: calc(100% + 4px) !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 14px !important;
    box-shadow: 0 16px 36px rgba(8, 34, 81, 0.16) !important;
    z-index: 99999 !important;
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    overflow: hidden !important;
  }

  .elementor-element-9916731 .ca_btn.ue_active_drop .ca_dropdown {
    display: flex !important;
    flex-direction: column !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  .elementor-element-9916731 .ca_btn .ca_dropdown li {
    display: block !important;
    width: 100% !important;
    margin: 0 0 4px 0 !important;
    list-style: none !important;
  }

  .elementor-element-9916731 .ca_btn .ca_dropdown li:last-child {
    margin-bottom: 0 !important;
  }

  .elementor-element-9916731 .ca_btn .ca_dropdown li a {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 12px 14px !important;
    background: #ffffff !important;
    color: #082251 !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    border: none !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease !important;
  }

  .elementor-element-9916731 .ca_btn .ca_dropdown li a i,
  .elementor-element-9916731 .ca_btn .ca_dropdown li a svg {
    order: 0 !important;
    font-size: 14px !important;
    color: #c12626 !important;
    fill: #c12626 !important;
    transform: none !important;
    flex-shrink: 0 !important;
  }

  .elementor-element-9916731 .ca_btn .ca_dropdown li a:hover,
  .elementor-element-9916731 .ca_btn .ca_dropdown li a:active {
    background: #f1f5f9 !important;
    color: #c12626 !important;
    transform: translateX(4px) !important;
  }
}

@media (prefers-reduced-motion: reduce) {

  .gp-home-refresh *,
  .gp-home-refresh *::before,
  .gp-home-refresh *::after {
    transition: none !important;
    animation: none !important;
  }
}