/* NOVARE — Animation System Tokens
   Base technique pour les futures animations du site.
   Aucun effet visuel n’est appliqué tant qu’une classe/attribut d’animation n’est pas ajouté au HTML. */
:root {
  --motion-duration-fast: 180ms;
  --motion-duration-base: 320ms;
  --motion-duration-slow: 640ms;
  --motion-delay-step: 80ms;
  --motion-ease-standard: cubic-bezier(.22, 1, .36, 1);
  --motion-ease-emphasized: cubic-bezier(.16, 1, .3, 1);
  --motion-distance-sm: 12px;
  --motion-distance-md: 24px;
  --motion-scale-soft: .98;
}

html.js-ready [data-animate] {
  will-change: transform, opacity;
}

html.js-ready [data-animate][data-animation-idle="true"] {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
  }

  html.js-ready [data-animate] {
    transition: none !important;
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* V48 — NOVARE section signature, premium cleanup.
   Single visible brand signature: blue index + short rule.
   Removes the earlier “double signature” feeling while keeping the motion readable and light. */
@media (min-width: 768px) {
  main section.novare-section-signature:not(.about-hero):not(.pole-custom-hero):not(.hero) :where(.section-title, .big-serif, .process-head, .booking-form-head) {
    position: relative;
  }

  main section.novare-section-signature:not(.about-hero):not(.pole-custom-hero):not(.hero) :where(.section-title, .big-serif, .process-head, .booking-form-head)::before {
    content: attr(data-novare-signature-index);
    display: block;
    width: max-content;
    margin-bottom: clamp(10px, 1.2vw, 16px);
    font-family: var(--font-sans, Poppins, system-ui, sans-serif);
    font-size: clamp(12px, .88vw, 15px);
    font-weight: 600;
    line-height: 1;
    letter-spacing: .24em;
    color: #006DED;
    transform: translate3d(0, 14px, 0);
    opacity: 0;
    transition:
      transform 460ms cubic-bezier(.16, 1, .3, 1),
      opacity 240ms ease-out;
    pointer-events: none;
  }

  main section.novare-section-signature:not(.about-hero):not(.pole-custom-hero):not(.hero) :where(.section-title, .big-serif, .process-head, .booking-form-head)::after {
    content: "";
    display: block;
    width: clamp(34px, 4vw, 58px);
    height: 2px;
    margin-top: clamp(12px, 1.25vw, 17px);
    background: #006DED;
    transform-origin: left center;
    transform: scaleX(.28);
    opacity: .58;
    transition:
      transform 500ms cubic-bezier(.16, 1, .3, 1) 120ms,
      opacity 240ms ease-out 120ms;
  }

  main section.novare-section-signature.novare-signature-in:not(.about-hero):not(.pole-custom-hero):not(.hero) :where(.section-title, .big-serif, .process-head, .booking-form-head)::before {
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }

  main section.novare-section-signature.novare-signature-in:not(.about-hero):not(.pole-custom-hero):not(.hero) :where(.section-title, .big-serif, .process-head, .booking-form-head)::after {
    transform: scaleX(1);
    opacity: .9;
  }
}

@media (max-width: 767px), (prefers-reduced-motion: reduce) {
  main section.novare-section-signature :where(.section-title, .big-serif, .process-head, .booking-form-head)::before {
    content: none !important;
  }
}

