/* Progressive motion: the original content stays visible without JavaScript. */
body.cc-motion-ready .cc-live-scene { overflow: hidden; isolation: isolate; }
body.cc-motion-ready .cc-live-photo {
  pointer-events: none;
  translate: var(--cc-pointer-x, 0px) calc(var(--cc-parallax-y, 0px) + var(--cc-pointer-y, 0px));
  scale: 1.18;
  will-change: translate;
}
body.cc-motion-ready .cc-live-background { position: absolute; inset: 0; z-index: -3; background-size: cover; background-repeat: no-repeat; }
body.cc-motion-ready .cc-live-background ~ :is(.cc-i-hero-copy, .cc-c-reveal) { position: relative; z-index: 3; }
body.cc-motion-ready .cc-live-scene > :is(.cc-s-orbit, .cc-i-shape, .cc-d-ring, .cc-c-lines, .cc-news-orbit) { animation: ccLiveOrbit 6.8s cubic-bezier(.45, 0, .55, 1) infinite !important; transform-origin: center; }
body.cc-motion-ready .cc-live-scene > .cc-i-shape { animation-name: ccLiveSquare !important; animation-duration: 7.5s !important; }
body.cc-motion-ready .cc-live-scene > .cc-c-lines { animation-name: ccLiveLines !important; animation-duration: 8.5s !important; }
body.cc-motion-ready .cc-live-scene .cc-motion-glow { animation: ccLiveGlow 6s ease-in-out infinite !important; }
body.cc-motion-ready.home .process#processus:after { animation: ccLiveProcess 5.8s ease-in-out infinite !important; }
body.cc-motion-ready.home .hero:after { animation: ccLiveOrbit 8s ease-in-out infinite; }
@keyframes ccLiveOrbit { 0%,100% { translate: 0 0; rotate: -5deg; scale: .91; } 50% { translate: -46px 38px; rotate: 17deg; scale: 1.17; } }
@keyframes ccLiveSquare { 0%,100% { translate: 0 0; rotate: -8deg; scale: .95; } 50% { translate: -48px 35px; rotate: 22deg; scale: 1.16; } }
@keyframes ccLiveLines { 0%,100% { translate: 0 0; rotate: -2deg; } 50% { translate: -38px 28px; rotate: 7deg; } }
@keyframes ccLiveGlow { 0%,100% { scale: .85; translate: 0 0; opacity: .4; } 50% { scale: 1.25; translate: -35px 24px; opacity: .7; } }
@keyframes ccLiveProcess { 0%,100% { scale: .84; translate: 0 0; } 50% { scale: 1.24; translate: -52px 40px; } }

/* Native-scroll carousels preserve the real cards, links and reading order. */
body.cc-motion-ready .cc-live-carousel { position: relative; z-index: 2; min-width: 0; width: 100%; max-width: 1380px; margin-inline: auto; color: #102638; --cc-slides: 3; --cc-slide-gap: 22px; }
body.cc-motion-ready .cc-live-viewport { width: 100%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; border-radius: 20px; padding-block: 12px 22px; outline-offset: 3px; }
.cc-live-viewport::-webkit-scrollbar { display: none; }
body.cc-motion-ready .cc-live-carousel .cc-live-track { display: flex !important; flex-wrap: nowrap !important; align-items: stretch !important; gap: var(--cc-slide-gap) !important; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; overflow: visible !important; scroll-snap-type: none !important; transform: none !important; transition: none !important; }
body.cc-motion-ready .cc-live-carousel .cc-live-track > article { box-sizing: border-box; flex: 0 0 calc((100% - (var(--cc-slides) - 1) * var(--cc-slide-gap)) / var(--cc-slides)) !important; min-width: 0; max-width: none; height: auto; scroll-snap-align: start; scroll-snap-stop: always; opacity: 1 !important; translate: none !important; transform: none !important; overflow: hidden; }
body.cc-motion-ready .cc-live-carousel .cc-live-track > article > :is(p, div) { min-width: 0; }
body.cc-motion-ready .cc-live-carousel .cc-live-track > article h3 { overflow-wrap: break-word; }
body.cc-motion-ready .cc-live-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 12px; min-height: 48px; position: relative; }
body.cc-motion-ready .cc-live-controls[hidden] { display: none; }
body.cc-motion-ready .cc-live-controls button { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 46px; height: 46px; padding: 0; border: 1px solid #bac5cc; border-radius: 50%; background: #fff; color: #102638; cursor: pointer; transition: background .25s, color .25s, border-color .25s, translate .25s; }
body.cc-motion-ready .cc-live-controls button:hover { background: #102638; color: #fff; border-color: #102638; translate: 0 -3px; }
body.cc-motion-ready .cc-live-controls button:focus-visible, body.cc-motion-ready .cc-live-viewport:focus-visible { outline: 3px solid #9a7a3e; outline-offset: 4px; }
.cc-live-controls svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body.cc-motion-ready .cc-live-controls .cc-live-play { width: auto; border-radius: 24px; padding-inline: 15px; gap: 7px; font: 600 12px/1 Inter, sans-serif; }
.cc-live-count { margin-left: auto; min-width: 5em; font: 600 12px/1.4 Montserrat, sans-serif; color: inherit; text-align: right; font-variant-numeric: tabular-nums; }
.cc-live-meter { display: block; height: 3px; width: 100%; margin-top: 9px; overflow: hidden; background: rgba(107,127,139,.2); border-radius: 3px; }
.cc-live-meter[hidden] { display: none; }
.cc-live-meter > span { display: block; width: 100%; height: 100%; background: #98722c; transform-origin: left; transform: scaleX(var(--cc-carousel-progress,.2)); transition: transform .65s cubic-bezier(.2,.75,.25,1); }
.cc-live-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
body.cc-motion-ready.home .services .cc-live-carousel { --cc-slides: 2; color: #e1e8ec; }
body.cc-motion-ready.home .services .cc-live-controls button { background: #0c293e; color: #fff; border-color: #59707f; }
body.cc-motion-ready.home .services .cc-live-controls button:hover { background: #d7b36a; color: #071d2f; border-color: #d7b36a; }
body.cc-motion-ready.home .services .cc-live-meter > span { background: #d7b36a; }
body.cc-motion-ready.home .services .cc-live-track > .card { display: flex !important; flex-direction: column; background: #0b263b; padding: clamp(24px,3vw,40px); }
body.cc-motion-ready.home .services .cc-live-track > .card:hover { background: #d7b36a; }
body.cc-motion-ready.home .services .cc-live-track > .card > a { margin-top: auto; padding-top: 20px; }
body.cc-motion-ready.home .services .cc-live-track > .card h3, body.cc-motion-ready.home .services .cc-live-track > .card p { min-height: 0; }
body.cc-motion-ready.home .process#processus .cc-live-carousel .step { min-height: 350px; }
body.cc-motion-ready.home .process#processus .cc-live-carousel .step.is-active { border-color: rgba(215,179,106,.72) !important; }
body.cc-motion-ready.home .process#processus .intro { margin-bottom: 38px !important; }
body.cc-motion-ready .cc-live-track > .cc-partner-logo { gap: 16px; padding: 26px 22px; }
body.cc-motion-ready .cc-live-track > .cc-partner-logo strong { font-size: clamp(14px,1.3vw,19px); overflow-wrap: anywhere; }
body.cc-motion-ready .cc-live-track > .cc-partner-logo svg { flex-basis: 48px; width: 48px; height: 48px; }

/* Pointer depth and icon accents; text itself remains steady. */
body.cc-motion-ready .cc-live-card { --cc-tilt-x: 0deg; --cc-tilt-y: 0deg; }
body.cc-motion-ready .cc-live-card :is(.cc-service-icon,.cc-step-icon,.cc-a-value-icon,.cc-s-icon) { transition: transform .55s cubic-bezier(.2,.75,.25,1), color .3s, background .3s; }
body.cc-motion-ready .cc-live-card:hover :is(.cc-service-icon,.cc-step-icon,.cc-a-value-icon,.cc-s-icon) { transform: translateY(-7px) rotate(-7deg) scale(1.12); }
@media (hover:hover) and (pointer:fine) {
  body.cc-motion-ready .cc-live-card:not(.cc-live-track > article):hover { transform: perspective(1100px) rotateX(var(--cc-tilt-x)) rotateY(var(--cc-tilt-y)) translateY(-6px); }
  body.cc-motion-ready .cc-live-track > article:hover { box-shadow: inset 0 0 0 1px rgba(215,179,106,.7); }
}
@media (max-width:1049px) { body.cc-motion-ready .cc-live-carousel { --cc-slides: 2; --cc-slide-gap: 18px; } }
@media (max-width:679px) {
  body.cc-motion-ready .cc-live-carousel, body.cc-motion-ready.home .services .cc-live-carousel { --cc-slides: 1; --cc-slide-gap: 16px; }
  body.cc-motion-ready .cc-live-controls { gap: 8px; }
  body.cc-motion-ready .cc-live-controls button { width: 42px; height: 42px; }
  body.cc-motion-ready .cc-live-controls .cc-live-play { padding-inline: 12px; font-size: 11px; }
  body.cc-motion-ready .cc-live-photo { scale: 1.12; }
  body.cc-motion-ready.home .process#processus .cc-live-carousel .step { min-height: 325px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto !important; }
  body.cc-motion-ready .cc-live-photo { translate: none !important; scale: 1 !important; will-change: auto; }
  body.cc-motion-ready .cc-live-scene > :is(.cc-s-orbit,.cc-i-shape,.cc-d-ring,.cc-c-lines,.cc-news-orbit), body.cc-motion-ready .cc-live-scene .cc-motion-glow, body.cc-motion-ready.home .process#processus:after, body.cc-motion-ready.home .hero:after { animation: none !important; }
  body.cc-motion-ready .cc-live-card, body.cc-motion-ready .cc-live-card *, .cc-live-meter > span { animation: none !important; transition: none !important; }
  body.cc-motion-ready .cc-live-card:hover { transform: none !important; }
}

/* Keep the faces in the replacement photographs clear of the header crop. */
body.cc-motion-ready :is(.cc-contact-hero, .cc-inst-counsel .cc-i-hero) .cc-live-photo {
  background-position: center top !important;
  transform-origin: center top;
}
body.cc-motion-ready.home .services .cc-live-track > .card { border-radius: 20px; }
body.cc-motion-ready .cc-live-controls button[hidden] { display: none !important; }

/* Readable static grids in Elementor and when JavaScript is unavailable. */
body:not(.cc-motion-ready).home .process#processus .steps {
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  grid-auto-flow: row !important;
  grid-auto-columns: auto !important;
  transform: none !important;
}
body:not(.cc-motion-ready) :is(.cc-a-value-grid,.cc-partner-logo-grid,.services .grid) > article {
  opacity: 1 !important;
  transform: none !important;
}
@media(max-width:1049px) {
  body:not(.cc-motion-ready).home .process#processus .steps { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media(max-width:679px) {
  body:not(.cc-motion-ready).home .process#processus .steps { grid-template-columns: 1fr !important; }
}