/*
 * FT Couverture — couche d'effets non destructive.
 * Tous les sélecteurs sont limités à la classe ajoutée par cette extension.
 */

.ftce-effects-active.ftc-divi-site {
  --ftce-red-glow: rgba(181, 18, 27, .20);
  --ftce-blue-glow: rgba(17, 42, 73, .16);
  --ftce-soft-shadow: 0 18px 45px rgba(17, 42, 73, .12);
  --ftce-deep-shadow: 0 26px 70px rgba(17, 42, 73, .20);
}

/* Apparitions au défilement, sans écraser les transformations configurées dans Divi. */
.ftce-effects-active .ftce-reveal {
  opacity: 0;
  scale: .985;
  translate: 0 34px;
  transition:
    opacity .72s cubic-bezier(.22, .8, .28, 1),
    scale .72s cubic-bezier(.22, .8, .28, 1),
    translate .72s cubic-bezier(.22, .8, .28, 1);
  transition-delay: var(--ftce-delay, 0ms);
  will-change: opacity, scale, translate;
}

.ftce-effects-active .ftce-reveal.ftce-visible {
  opacity: 1;
  scale: 1;
  translate: 0 0;
}

/* Hero plus vivant : halo de marque, parallaxe et entrée hiérarchisée. */
.ftce-effects-active .ftc-hero.et_pb_section {
  background-position: center calc(50% + var(--ftce-hero-shift, 0px));
  isolation: isolate;
}

.ftce-effects-active .ftc-hero.et_pb_section::before {
  animation: ftce-hero-glow 9s ease-in-out infinite alternate;
  background:
    radial-gradient(circle at 16% 24%, rgba(181, 18, 27, .32), transparent 24%),
    radial-gradient(circle at 74% 76%, rgba(65, 103, 139, .22), transparent 28%);
  content: "";
  inset: -12%;
  pointer-events: none;
  position: absolute;
  transform: scale(1.03);
  z-index: 1;
}

.ftce-effects-active .ftc-hero.et_pb_section::after { z-index: 0; }
.ftce-effects-active .ftc-hero .ftc-hero-row { z-index: 2; }

.ftce-effects-active .ftc-hero-copy h1 {
  text-shadow: 0 10px 35px rgba(0, 0, 0, .25);
}

.ftce-effects-active .ftc-hero-proof span {
  align-items: center;
  display: inline-flex;
  gap: 7px;
}

.ftce-effects-active .ftc-hero-proof span::before {
  background: var(--ftc-red-light, #ff6b6f);
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(255, 107, 111, .12);
  content: "";
  height: 6px;
  width: 6px;
}

/* Fonds graphiques légers pour rythmer les longues zones blanches. */
.ftce-effects-active .ftc-heading-section.et_pb_section,
.ftce-effects-active .ftce-airy-section.et_pb_section {
  background-color: #fbfaf8 !important;
  background-image:
    radial-gradient(circle at 8% 25%, rgba(181, 18, 27, .075) 0, rgba(181, 18, 27, 0) 27%),
    radial-gradient(circle at 92% 82%, rgba(17, 42, 73, .09) 0, rgba(17, 42, 73, 0) 30%),
    linear-gradient(135deg, rgba(17, 42, 73, .025) 25%, transparent 25%, transparent 75%, rgba(17, 42, 73, .025) 75%);
  background-size: auto, auto, 46px 46px;
  overflow: hidden;
  position: relative;
}

.ftce-effects-active .ftc-heading-section.et_pb_section::before,
.ftce-effects-active .ftce-airy-section.et_pb_section::before {
  border: 1px solid rgba(181, 18, 27, .11);
  border-radius: 50%;
  content: "";
  height: 290px;
  pointer-events: none;
  position: absolute;
  right: -175px;
  top: -165px;
  width: 290px;
}

.ftce-effects-active .ftc-services-grid.et_pb_section,
.ftce-effects-active .ftc-feature-grid.et_pb_section {
  background-color: #fff !important;
  background-image:
    linear-gradient(90deg, transparent 0, transparent 49.8%, rgba(17, 42, 73, .035) 50%, transparent 50.2%),
    radial-gradient(circle at 50% 0, rgba(181, 18, 27, .055), transparent 38%);
  background-size: 90px 100%, auto;
}

.ftce-effects-active .ftc-split-section.et_pb_section {
  isolation: isolate;
  overflow: hidden;
  position: relative;
}

.ftce-effects-active .ftc-split-section.et_pb_section::before,
.ftce-effects-active .ftc-split-section.et_pb_section::after {
  border-radius: 50%;
  content: "";
  filter: blur(1px);
  pointer-events: none;
  position: absolute;
  z-index: -1;
}

.ftce-effects-active .ftc-split-section.et_pb_section::before {
  background: rgba(181, 18, 27, .07);
  height: 300px;
  left: -190px;
  top: 12%;
  width: 300px;
}

.ftce-effects-active .ftc-split-section.et_pb_section::after {
  border: 54px solid rgba(17, 42, 73, .055);
  bottom: -170px;
  height: 350px;
  right: -120px;
  width: 350px;
}

.ftce-effects-active .ftc-local-section.et_pb_section {
  background-color: var(--ftc-cream, #f4f1ec) !important;
  background-image:
    radial-gradient(circle at 15% 110%, rgba(181, 18, 27, .10), transparent 34%),
    radial-gradient(circle at 90% -10%, rgba(17, 42, 73, .10), transparent 32%),
    repeating-linear-gradient(135deg, transparent 0, transparent 32px, rgba(17, 42, 73, .025) 33px, transparent 34px);
}

.ftce-effects-active .ftc-faq-section.et_pb_section {
  background-color: #f8fafb !important;
  background-image:
    radial-gradient(circle at 100% 10%, rgba(17, 42, 73, .09), transparent 31%),
    radial-gradient(circle at 0 90%, rgba(181, 18, 27, .065), transparent 27%);
}

.ftce-effects-active .ftc-gallery-section.et_pb_section {
  background-color: #f7f4ef !important;
  background-image: repeating-linear-gradient(45deg, rgba(17, 42, 73, .018) 0 1px, transparent 1px 18px);
}

/* Barre de confiance et chiffres. */
.ftce-effects-active .ftc-trust-section.et_pb_section {
  box-shadow: 0 16px 45px rgba(17, 42, 73, .12);
}

.ftce-effects-active .ftc-trust-grid span {
  background: linear-gradient(180deg, #fff, #fcfbf9);
  position: relative;
  transition: color .25s ease, background .25s ease;
}

.ftce-effects-active .ftc-trust-grid span::after {
  background: var(--ftc-red, #b5121b);
  bottom: 0;
  content: "";
  height: 3px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%) scaleX(0);
  transition: transform .35s ease;
  width: 58%;
}

.ftce-effects-active .ftc-trust-grid span:hover {
  background: #fff;
  color: var(--ftc-red-dark, #8e0814);
}

.ftce-effects-active .ftc-trust-grid span:hover::after { transform: translateX(-50%) scaleX(1); }

.ftce-effects-active .ftc-numbers {
  background-image:
    radial-gradient(circle at 15% 10%, rgba(255, 107, 111, .18), transparent 30%),
    linear-gradient(120deg, #112a49, #0b2036 68%, #173a5b);
  box-shadow: 0 24px 60px rgba(17, 42, 73, .25);
  overflow: hidden;
}

.ftce-effects-active .ftc-numbers strong {
  text-shadow: 0 8px 22px rgba(0, 0, 0, .22);
  transition: scale .25s ease, color .25s ease;
}

.ftce-effects-active .ftc-numbers div:hover strong {
  color: #fff;
  scale: 1.08;
}

/* Cartes : profondeur, lumière suivie au pointeur et micro-interactions. */
.ftce-effects-active .ftc-card-link,
.ftce-effects-active .ftc-feature,
.ftce-effects-active .ftc-city-grid > div,
.ftce-effects-active .ftc-gallery-row > .et_pb_column {
  isolation: isolate;
  overflow: hidden;
  position: relative;
  transition: border-color .35s ease, box-shadow .35s ease, translate .35s ease;
}

.ftce-effects-active .ftce-interactive::before {
  background: radial-gradient(circle at var(--ftce-x, 50%) var(--ftce-y, 50%), rgba(255, 255, 255, .82), rgba(255, 255, 255, 0) 38%);
  content: "";
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  transition: opacity .3s ease;
  mix-blend-mode: soft-light;
  z-index: 0;
}

.ftce-effects-active .ftce-interactive:hover::before { opacity: .72; }

.ftce-effects-active .ftce-interactive > * {
  position: relative;
  z-index: 1;
}

.ftce-effects-active .ftc-card-link::after,
.ftce-effects-active .ftc-feature::after,
.ftce-effects-active .ftc-city-grid > div::after {
  background: linear-gradient(90deg, var(--ftc-red, #b5121b), var(--ftc-navy, #112a49));
  bottom: 0;
  content: "";
  height: 4px;
  left: 0;
  position: absolute;
  scale: 0 1;
  transform-origin: left center;
  transition: scale .42s cubic-bezier(.2, .8, .2, 1);
  width: 100%;
}

.ftce-effects-active .ftc-card-link:hover,
.ftce-effects-active .ftc-feature:hover,
.ftce-effects-active .ftc-city-grid > div:hover,
.ftce-effects-active .ftc-gallery-row > .et_pb_column:hover {
  border-color: rgba(181, 18, 27, .16);
  box-shadow: var(--ftce-deep-shadow);
  translate: 0 -9px;
}

.ftce-effects-active .ftc-card-link:hover::after,
.ftce-effects-active .ftc-feature:hover::after,
.ftce-effects-active .ftc-city-grid > div:hover::after { scale: 1 1; }

.ftce-effects-active .ftc-card-arrow {
  transition: color .25s ease, letter-spacing .25s ease, translate .25s ease;
}

.ftce-effects-active .ftc-card-link:hover .ftc-card-arrow {
  color: var(--ftc-red, #b5121b);
  letter-spacing: .035em;
  translate: 7px 0;
}

.ftce-effects-active .ftc-feature-mark,
.ftce-effects-active .ftc-card-number {
  text-shadow: 0 8px 20px rgba(181, 18, 27, .13);
}

/* Images et galerie. */
.ftce-effects-active .ftc-split-image,
.ftce-effects-active .ftc-gallery-image {
  overflow: hidden;
}

.ftce-effects-active .ftc-split-image img,
.ftce-effects-active .ftc-gallery-image img {
  transition: filter .55s ease, scale .65s cubic-bezier(.2, .8, .2, 1);
}

.ftce-effects-active .ftc-split-image:hover img,
.ftce-effects-active .ftc-gallery-row > .et_pb_column:hover .ftc-gallery-image img {
  filter: contrast(1.04) saturate(1.06);
  scale: 1.045;
}

.ftce-effects-active .ftc-gallery-row > .et_pb_column {
  box-shadow: 0 14px 38px rgba(17, 42, 73, .11);
}

/* Étapes et FAQ. */
.ftce-effects-active .ftc-process-section.et_pb_section {
  background-image:
    radial-gradient(circle at 10% 15%, rgba(255, 107, 111, .14), transparent 30%),
    radial-gradient(circle at 90% 85%, rgba(77, 120, 159, .14), transparent 32%),
    linear-gradient(120deg, #112a49, #0a1c2e 72%);
  overflow: hidden;
  position: relative;
}

.ftce-effects-active .ftc-step {
  transition: border-color .3s ease, translate .3s ease;
}

.ftce-effects-active .ftc-step:hover {
  border-color: var(--ftc-red-light, #ff6b6f);
  translate: 0 -5px;
}

.ftce-effects-active .ftc-step > span {
  display: inline-block;
  transition: scale .3s ease;
}

.ftce-effects-active .ftc-step:hover > span { scale: 1.12; }

.ftce-effects-active .ftc-accordion .et_pb_toggle {
  background: rgba(255, 255, 255, .76);
  border: 1px solid rgba(17, 42, 73, .07);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(17, 42, 73, .05);
  margin-bottom: 10px;
  transition: background .3s ease, border-color .3s ease, box-shadow .3s ease, translate .3s ease;
}

.ftce-effects-active .ftc-accordion .et_pb_toggle:hover,
.ftce-effects-active .ftc-accordion .et_pb_toggle_open {
  background: #fff;
  border-color: rgba(181, 18, 27, .18);
  box-shadow: 0 15px 35px rgba(17, 42, 73, .09);
  translate: 5px 0;
}

/* Boutons : reflet et ombre renforcés, sans perte de contraste. */
.ftce-effects-active .et_pb_button {
  background-image: linear-gradient(105deg, transparent 20%, rgba(255, 255, 255, .28) 43%, transparent 66%) !important;
  background-position: 180% center !important;
  background-repeat: no-repeat !important;
  background-size: 220% 100% !important;
  overflow: hidden;
  transition: background-position .65s ease, box-shadow .3s ease, translate .3s ease !important;
}

.ftce-effects-active .et_pb_button:hover {
  background-position: -120% center !important;
  box-shadow: 0 14px 34px rgba(17, 42, 73, .25) !important;
  translate: 0 -3px;
}

.ftce-effects-active .ftc-button-primary .et_pb_button:hover,
.ftce-effects-active .ftc-header-button .et_pb_button:hover {
  box-shadow: 0 14px 36px rgba(181, 18, 27, .34) !important;
}

/* Menu plus dynamique mais lisible. */
.ftce-effects-active .ftc-global-menu .et-menu > li > a,
.ftce-effects-active #top-menu > li > a {
  position: relative;
}

.ftce-effects-active .ftc-global-menu .et-menu > li > a::before,
.ftce-effects-active #top-menu > li > a::before {
  background: var(--ftc-red, #b5121b);
  bottom: 19px;
  content: "";
  display: block !important;
  height: 2px;
  left: 0;
  opacity: 1;
  position: absolute;
  scale: 0 1;
  top: auto;
  transform-origin: left center;
  transition: scale .28s ease;
  width: 100%;
}

.ftce-effects-active .ftc-global-menu .et-menu > li:hover > a::before,
.ftce-effects-active .ftc-global-menu .et-menu > li.current-menu-item > a::before,
.ftce-effects-active #top-menu > li:hover > a::before,
.ftce-effects-active #top-menu > li.current-menu-item > a::before { scale: 1 1; }

/* CTA et formulaire. */
.ftce-effects-active .ftc-cta-section.et_pb_section {
  animation: ftce-cta-gradient 12s ease-in-out infinite alternate;
  background-image:
    radial-gradient(circle at 10% 10%, rgba(255, 255, 255, .17), transparent 30%),
    radial-gradient(circle at 90% 95%, rgba(17, 42, 73, .28), transparent 34%),
    linear-gradient(115deg, #b5121b, #8e0814 58%, #b5121b) !important;
  background-size: auto, auto, 180% 180% !important;
  overflow: hidden;
  position: relative;
}

.ftce-effects-active .ftc-contact-box {
  background-image:
    radial-gradient(circle at 100% 0, rgba(255, 107, 111, .18), transparent 32%),
    linear-gradient(145deg, #112a49, #0b2036);
  box-shadow: 0 22px 55px rgba(17, 42, 73, .20);
}

.ftce-effects-active .ftc-contact-section input,
.ftce-effects-active .ftc-contact-section textarea,
.ftce-effects-active .ftc-contact-section select {
  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease, translate .25s ease;
}

.ftce-effects-active .ftc-contact-section input:focus,
.ftce-effects-active .ftc-contact-section textarea:focus,
.ftce-effects-active .ftc-contact-section select:focus {
  background: #fff !important;
  box-shadow: 0 0 0 4px rgba(181, 18, 27, .09);
  translate: 0 -2px;
}

/* Footer : éclairage discret, liens animés. */
.ftce-effects-active .ftc-global-footer.et_pb_section {
  background-image:
    radial-gradient(circle at 8% 10%, rgba(255, 107, 111, .10), transparent 27%),
    radial-gradient(circle at 92% 100%, rgba(72, 113, 151, .15), transparent 30%),
    linear-gradient(130deg, #112a49, #0b2036) !important;
}

.ftce-effects-active .ftc-footer-links a {
  display: inline-block;
  transition: color .25s ease, translate .25s ease;
}

.ftce-effects-active .ftc-footer-links a:hover {
  color: var(--ftc-red-light, #ff6b6f);
  translate: 5px 0;
}

@keyframes ftce-hero-glow {
  0% { opacity: .66; transform: scale(1.02) translate3d(-1%, 0, 0); }
  100% { opacity: 1; transform: scale(1.08) translate3d(2%, 1%, 0); }
}

@keyframes ftce-cta-gradient {
  0% { background-position: center, center, 0% 50%; }
  100% { background-position: center, center, 100% 50%; }
}

@media (max-width: 980px) {
  .ftce-effects-active .ftce-reveal { translate: 0 22px; }
  .ftce-effects-active .ftc-hero.et_pb_section { background-position: center center; }
  .ftce-effects-active .ftc-hero.et_pb_section::before { inset: -4%; }
  .ftce-effects-active .ftc-card-link:hover,
  .ftce-effects-active .ftc-feature:hover,
  .ftce-effects-active .ftc-city-grid > div:hover,
  .ftce-effects-active .ftc-gallery-row > .et_pb_column:hover { translate: 0 -4px; }
  .ftce-effects-active .ftc-accordion .et_pb_toggle:hover,
  .ftce-effects-active .ftc-accordion .et_pb_toggle_open { translate: 0 0; }
}

@media (max-width: 700px) {
  .ftce-effects-active .ftce-reveal { scale: .995; translate: 0 16px; }
  .ftce-effects-active .ftc-heading-section.et_pb_section,
  .ftce-effects-active .ftce-airy-section.et_pb_section { background-size: auto, auto, 64px 64px; }
  .ftce-effects-active .ftc-hero.et_pb_section::before { animation-duration: 14s; opacity: .65; }
  .ftce-effects-active .ftc-trust-grid span::after { display: none; }
  .ftce-effects-active .ftc-split-section.et_pb_section::before,
  .ftce-effects-active .ftc-split-section.et_pb_section::after { opacity: .55; }
}

@media (prefers-reduced-motion: reduce) {
  .ftce-effects-active *,
  .ftce-effects-active *::before,
  .ftce-effects-active *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }

  .ftce-effects-active .ftce-reveal {
    opacity: 1 !important;
    scale: 1 !important;
    translate: 0 0 !important;
  }

  .ftce-effects-active .ftc-hero.et_pb_section { background-position: center center !important; }
}
