/*
 * FT Couverture — système visuel Divi
 * Modifiez d'abord les variables ci-dessous pour changer toute la palette.
 */
:root {
  --ftc-navy: #112a49;
  --ftc-navy-2: #1d3d5f;
  --ftc-red: #d40000;
  --ftc-red-dark: #a80000;
  --ftc-red-light: #ff2020;
  --ftc-cream: #f4f1ec;
  --ftc-white: #ffffff;
  --ftc-ink: #1f2d38;
  --ftc-muted: #66737d;
  --ftc-line: #dfe5e7;
  --ftc-shadow: 0 18px 50px rgba(16, 35, 53, .12);
  --ftc-radius: 10px;
}

.ftc-divi-site,
.ftc-divi-site #page-container {
  color: var(--ftc-ink);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}

.ftc-divi-site { overflow-x: hidden; }

.ftc-divi-site h1,
.ftc-divi-site h2,
.ftc-divi-site h3,
.ftc-divi-site h4 {
  color: var(--ftc-navy);
  font-family: "Segoe UI", Arial, sans-serif;
  font-weight: 760;
  letter-spacing: -.025em;
  line-height: 1.12;
  padding-bottom: 0;
}

.ftc-divi-site h1 { font-size: clamp(42px, 5vw, 74px); }
.ftc-divi-site h2 { font-size: clamp(32px, 3.3vw, 49px); }
.ftc-divi-site h3 { font-size: 21px; }
.ftc-divi-site p,
.ftc-divi-site li { font-size: 17px; line-height: 1.75; }
.ftc-divi-site a { color: var(--ftc-red-dark); }
.ftc-divi-site .et_pb_row { width: min(88%, 1180px); }
.ftc-divi-site .et_pb_text { margin-bottom: 0; }

.ftc-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ftc-red);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1.5;
  margin-bottom: 16px;
  text-transform: uppercase;
}

.ftc-kicker::before {
  background: currentColor;
  content: "";
  height: 2px;
  width: 34px;
}

/* Header global */
.ftc-global-topbar.et_pb_section {
  background: var(--ftc-navy) !important;
  padding: 7px 0 !important;
}

.ftc-global-topbar .et_pb_row { padding: 0 !important; }
.ftc-topbar-copy {
  align-items: center;
  color: #dce5eb;
  display: flex;
  font-size: 12px;
  justify-content: space-between;
  letter-spacing: .02em;
}

.ftc-topbar-copy a { color: var(--ftc-white); font-weight: 800; }

.ftc-global-header.et_pb_section {
  background: rgba(255, 255, 255, .98) !important;
  box-shadow: 0 8px 30px rgba(16, 35, 53, .09);
  padding: 0 !important;
  position: relative;
  z-index: 999;
}

.ftc-global-header .et_pb_row { padding: 8px 0 !important; }
.ftc-header-row { align-items: center; display: flex; }
.ftc-header-row > .et_pb_column { margin-bottom: 0 !important; }
.ftc-header-logo { line-height: 0; margin: 0 !important; }
.ftc-header-logo .et_pb_image_wrap { display: block; }
.ftc-header-logo img { display: block; height: 82px; object-fit: contain; object-position: left center; width: auto; }
.ftc-global-menu.et_pb_menu { background: transparent !important; }
.ftc-global-menu .et_pb_menu__wrap { justify-content: center; }
.ftc-global-menu .et-menu > li { padding-left: 10px; padding-right: 10px; }
.ftc-global-menu .et-menu > li > a {
  color: var(--ftc-navy) !important;
  font-size: 14px;
  font-weight: 700;
  padding-bottom: 27px;
  padding-top: 27px;
}

.ftc-global-menu .sub-menu { border-radius: 0 0 8px 8px; box-shadow: var(--ftc-shadow); }
.ftc-header-button { margin: 0 !important; text-align: right; z-index: 5; }
.ftc-header-button .et_pb_button { box-shadow: 0 8px 22px rgba(212,0,0,.25); font-size: 12px !important; padding: 13px 18px !important; white-space: nowrap; }

/* Fallback : header Divi classique */
#main-header { box-shadow: 0 5px 24px rgba(16, 35, 53, .09); }
#main-header #logo { max-height: 78%; width: auto; }
#main-header .nav li a { color: var(--ftc-navy); font-weight: 700; }
#top-menu li.current-menu-item > a { color: var(--ftc-red) !important; }

/* Hero */
.ftc-hero.et_pb_section {
  align-items: center;
  background-position: center center;
  background-size: cover;
  display: flex;
  min-height: 720px;
  overflow: hidden;
  padding: 120px 0 110px !important;
  position: relative;
}

.ftc-hero.et_pb_section::after {
  background: linear-gradient(90deg, rgba(9, 24, 36, .97) 0%, rgba(9, 24, 36, .88) 43%, rgba(9, 24, 36, .30) 72%, rgba(9, 24, 36, .08) 100%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.ftc-hero .ftc-hero-row { padding: 0 !important; position: relative; z-index: 2; }
.ftc-home-hero-logo.et_pb_image {
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 10px;
  box-shadow: 0 14px 36px rgba(3,15,25,.24);
  display: inline-block;
  margin: 0 0 25px !important;
  max-width: 220px;
  padding: 10px 14px;
  width: 220px !important;
}
.ftc-home-hero-logo .et_pb_image_wrap { display: block; }
.ftc-home-hero-logo img { display: block; height: auto; width: 100%; }
.ftc-hero .ftc-kicker { color: #fff; }
.ftc-hero .ftc-kicker::before { background: var(--ftc-red-light); }
.ftc-hero-copy h1 { color: var(--ftc-white); margin: 0 0 26px; max-width: 780px; }
.ftc-hero-copy > p { color: #e4ebef; font-size: 20px; line-height: 1.65; margin-bottom: 27px; max-width: 700px; }
.ftc-hero-proof { display: flex; flex-wrap: wrap; gap: 12px 25px; }
.ftc-hero-proof span { color: #fff; font-size: 13px; font-weight: 650; }
.ftc-hero .et_pb_button_module_wrapper { display: inline-block; margin-right: 12px; margin-top: 30px; }

/* Boutons */
.ftc-divi-site .et_pb_button::after { display: none !important; }
.ftc-divi-site .et_pb_button {
  border-radius: 4px;
  box-shadow: 0 8px 22px rgba(17,42,73,.16);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .065em;
  line-height: 1.3 !important;
  text-transform: uppercase;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.ftc-divi-site .et_pb_button:hover { transform: translateY(-2px); }
.ftc-button-primary.et_pb_button,
.ftc-button-primary .et_pb_button,
.ftc-header-button.et_pb_button,
.ftc-header-button .et_pb_button {
  background: var(--ftc-red) !important;
  border: 2px solid var(--ftc-red) !important;
  color: #fff !important;
  padding: 16px 22px !important;
}

.ftc-button-primary.et_pb_button:hover,
.ftc-button-primary .et_pb_button:hover,
.ftc-header-button.et_pb_button:hover,
.ftc-header-button .et_pb_button:hover { background: var(--ftc-red-dark) !important; border-color: var(--ftc-red-dark) !important; }
.ftc-button-ghost.et_pb_button,
.ftc-button-ghost .et_pb_button {
  background: rgba(17,42,73,.64) !important;
  border: 2px solid #fff !important;
  color: #fff !important;
  padding: 16px 22px !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
}

.ftc-button-light.et_pb_button,
.ftc-button-light .et_pb_button {
  background: #fff !important;
  border: 2px solid #fff !important;
  color: var(--ftc-navy) !important;
  padding: 16px 22px !important;
}

.ftc-button-outline-light.et_pb_button,
.ftc-button-outline-light .et_pb_button {
  background: rgba(17,42,73,.40) !important;
  border: 2px solid #fff !important;
  color: #fff !important;
  padding: 16px 22px !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.25);
}

.ftc-button-dark { margin-top: 24px; }
.ftc-button-dark.et_pb_button,
.ftc-button-dark .et_pb_button {
  background: var(--ftc-navy) !important;
  border: 2px solid var(--ftc-navy) !important;
  color: #fff !important;
  padding: 14px 20px !important;
}
.ftc-button-dark.et_pb_button:hover,
.ftc-button-dark .et_pb_button:hover { background: var(--ftc-red) !important; border-color: var(--ftc-red) !important; }

/* Sections communes */
.ftc-section.et_pb_section { background: #fff; padding: 85px 0 !important; }
.ftc-heading-section.et_pb_section { background: #fff; padding: 92px 0 18px !important; }
.ftc-section-heading { margin: auto; max-width: 780px; text-align: center; }
.ftc-section-heading h2 { margin-bottom: 20px; }
.ftc-section-heading p { color: var(--ftc-muted); margin: auto; max-width: 720px; }

.ftc-trust-section.et_pb_section { background: var(--ftc-white); box-shadow: 0 8px 32px rgba(16,35,53,.08); padding: 0 !important; position: relative; z-index: 4; }
.ftc-trust-section .et_pb_row { padding: 0 !important; }
.ftc-trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.ftc-trust-grid span { align-items: center; border-right: 1px solid var(--ftc-line); color: var(--ftc-navy); display: flex; font-size: 14px; font-weight: 750; gap: 13px; justify-content: center; min-height: 82px; }
.ftc-trust-grid span:last-child { border-right: 0; }
.ftc-trust-grid b { color: var(--ftc-red); font-size: 11px; letter-spacing: .12em; }

/* Cartes services sur fond de toiture */
.ftc-services-showcase.et_pb_section {
  background-color: var(--ftc-navy) !important;
  background-position: center 44% !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  isolation: isolate;
  overflow: hidden;
  padding: 92px 0 !important;
  position: relative;
}
.ftc-services-showcase.et_pb_section::before {
  background: linear-gradient(115deg, rgba(7, 22, 35, .93), rgba(17, 42, 73, .74));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.ftc-services-showcase.et_pb_section > .et_pb_row { position: relative; z-index: 1; }
.ftc-services-heading-row { padding: 0 0 34px !important; }
.ftc-services-showcase .ftc-section-heading h2 { color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.24); }
.ftc-services-showcase .ftc-section-heading p { color: #e5edf2; }
.ftc-services-showcase .ftc-kicker { color: #ff4a4a; }
.ftc-card-grid { padding: 0 !important; }
.ftc-card-grid > .et_pb_column {
  display: grid !important;
  float: none !important;
  gap: 22px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0 !important;
  width: 100% !important;
}
.ftc-card-module.et_pb_text {
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, .83);
  border: 1px solid rgba(255, 255, 255, .62);
  border-radius: 12px;
  box-sizing: border-box;
  color: var(--ftc-ink) !important;
  display: flex !important;
  height: auto !important;
  margin: 0 !important;
  min-height: 250px !important;
  min-width: 0;
  overflow: hidden;
  padding: 30px 32px 28px;
  position: relative;
  transition: background .25s ease, box-shadow .25s ease, transform .25s ease;
}
.ftc-card-module.et_pb_text::before {
  background: linear-gradient(90deg, var(--ftc-red), #ff4949);
  content: "";
  height: 4px;
  inset: 0 0 auto;
  position: absolute;
}
.ftc-card-module.et_pb_text:hover { background: rgba(255, 255, 255, .95); border-color: rgba(255,255,255,.92); box-shadow: 0 22px 54px rgba(3,15,25,.30); transform: translateY(-6px); }
.ftc-card-module .et_pb_text_inner { display: flex; flex-direction: column; height: 100%; min-width: 0; width: 100%; }
.ftc-card-number { align-self: flex-start; background: rgba(212,0,0,.10); border-radius: 999px; color: var(--ftc-red); display: block; font-size: 11px; font-weight: 850; letter-spacing: .12em; margin-bottom: 22px; padding: 6px 9px; }
.ftc-card-module h3 { margin-bottom: 12px; overflow-wrap: normal; word-break: normal; }
.ftc-card-module p { color: #4f606d; font-size: 15px; line-height: 1.6; margin: 0; overflow-wrap: normal; word-break: normal; }
.ftc-card-module .ftc-card-arrow { align-self: flex-start; color: var(--ftc-navy) !important; font-size: 13px; font-weight: 800; margin-top: auto; overflow-wrap: normal; padding-top: 20px; word-break: normal; }
.ftc-card-module .ftc-card-arrow:focus-visible { outline: 3px solid var(--ftc-red); outline-offset: 4px; }

/* Split */
.ftc-split-section.et_pb_section { background: var(--ftc-cream); }
.ftc-split-row { align-items: center; display: flex; }
.ftc-split-row .et_pb_column:last-child { padding-left: 5%; }
.ftc-split-row h2 { margin-bottom: 24px; }
.ftc-split-row p { color: #4f5d67; margin-bottom: 16px; }
.ftc-split-image img { aspect-ratio: 4 / 3; box-shadow: 25px 25px 0 var(--ftc-red); object-fit: cover; width: 100%; }
.ftc-check-list { list-style: none !important; margin: 22px 0 0 !important; padding: 0 !important; }
.ftc-check-list li { border-bottom: 1px solid #d9d4cd; color: var(--ftc-navy); font-size: 15px; font-weight: 700; padding: 9px 0 9px 30px; position: relative; }
.ftc-check-list li::before { color: var(--ftc-red); content: "✓"; font-weight: 900; left: 0; position: absolute; }

/* Chiffres */
.ftc-numbers-section.et_pb_section { background: #fff; padding: 0 !important; }
.ftc-numbers-section .et_pb_row { padding: 0 !important; }
.ftc-numbers { background: var(--ftc-navy); display: grid; grid-template-columns: repeat(4, 1fr); padding: 38px 28px; transform: translateY(50%); position: relative; z-index: 3; }
.ftc-numbers div { border-right: 1px solid rgba(255,255,255,.17); text-align: center; }
.ftc-numbers div:last-child { border: 0; }
.ftc-numbers strong { color: #fff; display: block; font-size: 37px; line-height: 1.1; }
.ftc-numbers strong::after { background: var(--ftc-red-light); content: ""; display: block; height: 3px; margin: 8px auto 7px; width: 26px; }
.ftc-numbers span { color: #fff; font-size: 13px; }

/* Process */
.ftc-process-section.et_pb_section { background: var(--ftc-navy); padding: 125px 0 90px !important; }
.ftc-process-section .ftc-kicker { color: #fff; }
.ftc-process-section .ftc-kicker::before { background: var(--ftc-red-light); }
.ftc-light h2 { color: #fff; }
.ftc-process-row { margin-top: 45px; }
.ftc-step { border-top: 1px solid rgba(255,255,255,.25); padding: 28px 16px 0 0; }
.ftc-step > span { background: var(--ftc-red); color: #fff; display: inline-block; font-size: 12px; font-weight: 900; letter-spacing: .12em; padding: 5px 8px; }
.ftc-step h3 { color: #fff; margin: 15px 0 12px; }
.ftc-step p { color: #b9c7d0; font-size: 14px; line-height: 1.65; }

/* Grille fonctions */
.ftc-feature-grid.et_pb_section { padding-top: 20px !important; }
.ftc-feature-row { padding: 12px 0 !important; }
.ftc-feature-row .et_pb_column { display: flex; }
.ftc-feature-row .et_pb_module { width: 100%; }
.ftc-feature { border: 1px solid var(--ftc-line); height: 100%; min-height: 265px; padding: 34px; }
.ftc-feature-mark { color: var(--ftc-red); font-size: 12px; font-weight: 900; letter-spacing: .12em; }
.ftc-feature h3 { margin: 40px 0 14px; }
.ftc-feature p { color: var(--ftc-muted); font-size: 15px; line-height: 1.65; }

/* Zone locale */
.ftc-local-section.et_pb_section { background: var(--ftc-cream); padding: 82px 0 !important; }
.ftc-local { margin: auto; max-width: 900px; text-align: center; }
.ftc-local p { color: var(--ftc-muted); }
.ftc-city-tags { display: flex; flex-wrap: wrap; gap: 9px; justify-content: center; margin: 28px 0; }
.ftc-city-tags span { background: #fff; border: 1px solid #ddd8d1; border-radius: 999px; color: var(--ftc-navy); font-size: 13px; font-weight: 700; padding: 8px 14px; }
.ftc-local > a { font-size: 13px; font-weight: 850; text-transform: uppercase; }
.ftc-city-grid { display: grid; gap: 14px; grid-template-columns: repeat(4, 1fr); }
.ftc-city-grid > div { background: var(--ftc-cream); min-height: 155px; padding: 28px; text-align: center; }
.ftc-city-grid span { display: block; font-size: 25px; margin-bottom: 14px; }
.ftc-city-grid strong { color: var(--ftc-navy); display: block; font-size: 16px; }
.ftc-city-grid small { color: var(--ftc-muted); display: block; margin-top: 4px; }

/* Galerie */
.ftc-gallery-row .et_pb_column { background: #fff; box-shadow: var(--ftc-shadow); }
.ftc-gallery-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.ftc-gallery-caption { padding: 25px 27px 30px; }
.ftc-gallery-caption p { color: var(--ftc-muted); font-size: 14px; line-height: 1.55; }

/* FAQ */
.ftc-faq-section.et_pb_section { background: #fff; }
.ftc-faq-row { align-items: flex-start; display: flex; }
.ftc-faq-row > .et_pb_column:first-child { padding-right: 4%; position: sticky; top: 120px; }
.ftc-faq-row h2 { margin-bottom: 18px; }
.ftc-faq-row p { color: var(--ftc-muted); }
.ftc-accordion .et_pb_toggle { border: 0; border-bottom: 1px solid var(--ftc-line); margin: 0; padding: 22px 50px 22px 24px; }
.ftc-accordion .et_pb_toggle_title { color: var(--ftc-navy); font-size: 17px; font-weight: 750; }
.ftc-accordion .et_pb_toggle_content { color: var(--ftc-muted); padding-top: 14px; }

/* Formulaire */
.ftc-contact-section { align-items: flex-start; display: flex; }
.ftc-contact-section > .et_pb_column:first-child { padding-right: 4%; }
.ftc-contact-section h2 { margin-bottom: 18px; }
.ftc-contact-section .et_pb_contact_field { margin-bottom: 14px; }
.ftc-contact-section input,
.ftc-contact-section textarea,
.ftc-contact-section select { background: var(--ftc-cream) !important; border: 1px solid transparent !important; border-radius: 3px !important; color: var(--ftc-ink) !important; font-size: 15px !important; padding: 16px !important; }
.ftc-contact-section input:focus,
.ftc-contact-section textarea:focus,
.ftc-contact-section select:focus { border-color: var(--ftc-red) !important; }
.ftc-contact-section .et_contact_bottom_container { float: none; margin-top: 12px; text-align: left; }
.ftc-contact-section .et_pb_contact_submit { background: var(--ftc-red); border: 0; border-radius: 3px; color: #fff; font-weight: 800; padding: 13px 24px; text-transform: uppercase; }
.ftc-form-privacy { color: var(--ftc-muted); font-size: 12px !important; line-height: 1.55 !important; margin-top: 16px; }
.ftc-contact-box { background: var(--ftc-navy); color: #d6e0e6; padding: 40px; }
.ftc-contact-box .ftc-kicker { color: #fff; }
.ftc-contact-box .ftc-kicker::before { background: var(--ftc-red-light); }
.ftc-contact-box h2 { color: #fff; font-size: 29px; margin-bottom: 24px; }
.ftc-contact-box p { border-bottom: 1px solid rgba(255,255,255,.13); font-size: 14px; padding-bottom: 15px; }
.ftc-contact-box strong { border-left: 3px solid var(--ftc-red-light); color: #fff; font-size: 11px; letter-spacing: .1em; padding-left: 8px; text-transform: uppercase; }
.ftc-contact-box a { color: #fff; font-size: 17px; font-weight: 750; }

/* CTA */
.ftc-cta-section.et_pb_section { background: var(--ftc-red); padding: 76px 0 !important; text-align: center; }
.ftc-cta-section .ftc-kicker { color: #fff; }
.ftc-cta-section .ftc-kicker::before { background: var(--ftc-navy); }
.ftc-cta-section h2 { color: #fff; margin-bottom: 15px; }
.ftc-cta-section p { color: #fff; margin: 0 auto 22px; max-width: 700px; }
.ftc-cta-section .et_pb_button_module_wrapper { display: inline-block; margin: 10px 6px 0; }
.ftc-cta-section .et_pb_button_module_wrapper .et_pb_button,
.ftc-cta-section .ftc-button-light.et_pb_button,
.ftc-cta-section .ftc-button-light .et_pb_button {
  background: #fff !important;
  border: 2px solid #fff !important;
  box-shadow: 0 10px 26px rgba(17,42,73,.24) !important;
  color: var(--ftc-navy) !important;
  padding: 16px 22px !important;
}

.ftc-cta-section .et_pb_button_module_wrapper + .et_pb_button_module_wrapper .et_pb_button,
.ftc-cta-section .ftc-button-outline-light.et_pb_button,
.ftc-cta-section .ftc-button-outline-light .et_pb_button {
  background: var(--ftc-navy) !important;
  border: 2px solid #fff !important;
  color: #fff !important;
  text-shadow: none;
}

.ftc-cta-section .et_pb_button_module_wrapper .et_pb_button:hover,
.ftc-cta-section .ftc-button-light.et_pb_button:hover,
.ftc-cta-section .ftc-button-light .et_pb_button:hover {
  background: var(--ftc-navy) !important;
  border-color: var(--ftc-navy) !important;
  color: #fff !important;
}

.ftc-cta-section .et_pb_button_module_wrapper + .et_pb_button_module_wrapper .et_pb_button:hover,
.ftc-cta-section .ftc-button-outline-light.et_pb_button:hover,
.ftc-cta-section .ftc-button-outline-light .et_pb_button:hover {
  background: #fff !important;
  border-color: #fff !important;
  color: var(--ftc-navy) !important;
}

/* Légal */
.ftc-legal-section { background: var(--ftc-cream) !important; }
.ftc-legal-section .et_pb_row { max-width: 900px; }
.ftc-legal h2 { font-size: 25px; margin: 34px 0 10px; }
.ftc-legal p,
.ftc-legal li { color: #4d5b64; font-size: 15px; }

/* Footer global */
.ftc-global-footer.et_pb_section { background: var(--ftc-navy) !important; padding: 74px 0 58px !important; }
.ftc-global-footer .ftc-kicker { color: #fff; margin-bottom: 19px; }
.ftc-global-footer .ftc-kicker::before { background: var(--ftc-red-light); }
.ftc-global-footer p,
.ftc-global-footer li { color: #bbc8d0; font-size: 14px; line-height: 1.75; }
.ftc-global-footer a { color: #fff; }
.ftc-footer-logo { background: #fff; height: auto; margin-bottom: 20px; max-width: 220px; padding: 8px; }
.ftc-footer-links { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.ftc-footer-links li { margin-bottom: 7px; }
.ftc-global-footer-bottom.et_pb_section { background: #0a1926 !important; padding: 17px 0 !important; }
.ftc-global-footer-bottom .et_pb_row { padding: 0 !important; }
.ftc-footer-bottom { color: #8fa0ab; display: flex; font-size: 11px; justify-content: space-between; }
.ftc-footer-bottom a { color: #c8d1d7; }

/* Mouvement et profondeur */
.ftc-motion-ready .ftc-reveal {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition: opacity .72s cubic-bezier(.2,.7,.2,1) var(--ftc-delay, 0ms), transform .72s cubic-bezier(.2,.7,.2,1) var(--ftc-delay, 0ms);
}

.ftc-motion-ready .ftc-reveal.ftc-reveal-left { transform: translate3d(-34px, 0, 0); }
.ftc-motion-ready .ftc-reveal.ftc-reveal-right { transform: translate3d(34px, 0, 0); }
.ftc-motion-ready .ftc-reveal.ftc-reveal-scale { transform: scale(.96); }
.ftc-motion-ready .ftc-reveal.ftc-is-visible { opacity: 1; transform: none; }

.ftc-motion-ready .ftc-hero.ftc-parallax-bg {
  background-position: center calc(50% + var(--ftc-parallax-y, 0px));
  will-change: background-position;
}

.ftc-card-arrow { transition: transform .25s ease; }
.ftc-gallery-image { overflow: hidden; }
.ftc-gallery-image img { transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.ftc-feature { transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }

@media (hover: hover) {
  .ftc-card-module:hover .ftc-card-arrow { transform: translateX(6px); }
  .ftc-gallery-row .et_pb_column:hover .ftc-gallery-image img { transform: scale(1.045); }
  .ftc-feature:hover { border-color: rgba(212,0,0,.45); box-shadow: 0 16px 38px rgba(17,42,73,.10); transform: translateY(-5px); }
}

@media (prefers-reduced-motion: reduce) {
  .ftc-motion-ready .ftc-reveal,
  .ftc-motion-ready .ftc-reveal.ftc-reveal-left,
  .ftc-motion-ready .ftc-reveal.ftc-reveal-right,
  .ftc-motion-ready .ftc-reveal.ftc-reveal-scale {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .ftc-motion-ready .ftc-hero.ftc-parallax-bg { background-position: center center; will-change: auto; }
  .ftc-gallery-image img,
  .ftc-feature,
  .ftc-card-arrow { transition: none; }
}

@media (max-width: 1100px) {
  .ftc-header-row > .et_pb_column:first-child { margin: 0 !important; width: 70% !important; }
  .ftc-header-row > .et_pb_column:nth-child(2) { margin: 0 !important; width: 30% !important; }
  .ftc-header-row > .et_pb_column:last-child { display: none; }
  .ftc-header-button { display: none; }
  .ftc-global-menu .et_pb_menu__menu { display: none; }
  .ftc-global-menu .et_mobile_nav_menu { display: flex; }
  .ftc-global-menu .et_pb_menu__wrap { justify-content: flex-end; }
  .ftc-city-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 980px) {
  .ftc-divi-site h1 { font-size: clamp(39px, 8vw, 58px); }
  .ftc-divi-site h2 { font-size: 34px; }
  /* Sur tablette et mobile, le logo complet prend trop de hauteur. On le
     masque dans le header Theme Builder comme dans le header Divi classique. */
  body.ftc-divi-site .ftc-global-header .ftc-header-logo,
  body.ftc-divi-site .ftc-global-header .ftc-header-row > .et_pb_column:first-child,
  body.ftc-divi-site #main-header .logo_container,
  body.ftc-divi-site #main-header #logo { display: none !important; }
  body.ftc-divi-site .ftc-global-header .ftc-header-row { display: block; }
  body.ftc-divi-site .ftc-global-header .ftc-header-row > .et_pb_column:nth-child(2) {
    margin: 0 !important;
    width: 100% !important;
  }
  body.ftc-divi-site .ftc-global-header .ftc-global-menu,
  body.ftc-divi-site .ftc-global-header .ftc-global-menu .et_pb_menu__wrap { width: 100%; }
  body.ftc-divi-site #main-header #et-top-navigation {
    float: none;
    padding-left: 0 !important;
    width: 100%;
  }
  .ftc-hero.et_pb_section { min-height: 640px; padding: 95px 0 !important; }
  .ftc-hero.et_pb_section::after { background: rgba(9, 24, 36, .82); }
  .ftc-hero-row .et_pb_column:first-child { width: 100% !important; }
  .ftc-hero-row .et_pb_column:last-child { display: none; }
  body.ftc-divi-site .ftc-home-hero-logo,
  body.ftc-divi-site .ftc-hero .ftc-home-hero-logo { display: none !important; }
  .ftc-section.et_pb_section { padding: 65px 0 !important; }
  .ftc-services-showcase.et_pb_section { background-position: 58% center !important; padding: 70px 0 !important; }
  .ftc-services-heading-row { padding-bottom: 25px !important; }
  .ftc-card-grid > .et_pb_column { gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ftc-trust-grid { grid-template-columns: repeat(2, 1fr); }
  .ftc-trust-grid span:nth-child(2) { border-right: 0; }
  .ftc-trust-grid span:nth-child(-n+2) { border-bottom: 1px solid var(--ftc-line); }
  .ftc-feature-row,
  .ftc-process-row,
  .ftc-gallery-row,
  .ftc-split-row,
  .ftc-faq-row,
  .ftc-contact-section { display: block; }
  .ftc-feature-row .et_pb_column,
  .ftc-process-row .et_pb_column,
  .ftc-gallery-row .et_pb_column { margin: 0 0 24px !important; width: 100% !important; }
  .ftc-split-row .et_pb_column { margin-bottom: 45px; width: 100% !important; }
  .ftc-split-row .et_pb_column:last-child { padding-left: 0; }
  .ftc-split-image img { box-shadow: 15px 15px 0 var(--ftc-red); }
  .ftc-numbers { transform: none; }
  .ftc-process-section.et_pb_section { padding-top: 85px !important; }
  .ftc-faq-row > .et_pb_column { margin-bottom: 35px; width: 100% !important; }
  .ftc-faq-row > .et_pb_column:first-child { padding-right: 0; position: static; }
  .ftc-contact-section > .et_pb_column { margin-bottom: 30px; width: 100% !important; }
  .ftc-contact-section > .et_pb_column:first-child { padding-right: 0; }
  .ftc-global-footer .et_pb_column { margin-bottom: 32px; width: 48% !important; }
  .ftc-global-footer .et_pb_row { display: flex; flex-wrap: wrap; justify-content: space-between; }
}

@media (max-width: 700px) {
  .ftc-topbar-copy span:nth-child(2) { display: none; }
  .ftc-header-logo img { height: 68px; }
  .ftc-hero.et_pb_section { min-height: 600px; padding: 80px 0 !important; }
  .ftc-hero-copy > p { font-size: 17px; }
  .ftc-hero-proof { display: block; }
  .ftc-hero-proof span { display: block; margin: 7px 0; }
  .ftc-hero .et_pb_button_module_wrapper { display: block; margin: 12px 0 0; }
  .ftc-hero .et_pb_button { box-sizing: border-box; text-align: center; width: 100%; }
  .ftc-trust-grid,
  .ftc-numbers { grid-template-columns: 1fr 1fr; }
  .ftc-trust-grid span { min-height: 67px; }
  .ftc-numbers { padding: 24px 15px; }
  .ftc-numbers div { border-bottom: 1px solid rgba(255,255,255,.14); padding: 15px 5px; }
  .ftc-numbers div:nth-child(2) { border-right: 0; }
  .ftc-numbers div:nth-child(n+3) { border-bottom: 0; }
  .ftc-city-grid { grid-template-columns: 1fr 1fr; }
  .ftc-city-grid > div { min-height: 135px; padding: 22px 12px; }
  .ftc-services-showcase.et_pb_section { padding: 58px 0 !important; }
  .ftc-card-grid > .et_pb_column { grid-template-columns: 1fr; }
  .ftc-card-module.et_pb_text { min-height: 215px !important; padding: 25px 24px 23px; }
  .ftc-global-footer .et_pb_column { width: 100% !important; }
  .ftc-footer-bottom { flex-direction: column; gap: 7px; text-align: center; }
}
