/* ==========================================================================
   Page Application web (modèle Framer, voir _src/framer/adapt.js)
   Cohabitation des styles : core.css (DeaX) règle les éléments de base pour tout le site ;
   dans div#main, le gabarit Framer reprend ses propres valeurs par défaut.
   ========================================================================== */

/* Badges Framer : retirés comme sur la démo d'origine */
#__framer-badge-container, a[href="https://framer.com/"] { display: none !important; }

/* Réinitialisations DeaX neutralisées dans le gabarit (spécificité minimale : les classes Framer priment) */
:where(#main) :where(img, svg, video) { display: revert; max-width: revert; }
:where(#main) img { height: revert; }
:where(#main) :where(button) { cursor: revert; }

/* Texte réservé aux lecteurs d'écran (suite du H1 du hero) */
.dx-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }


/* Titre du hero : la 2e ligne (« Sur mesure. Sans limites. ») est plus longue que le mot d'origine ;
   sur petit écran elle passe sur deux lignes, centrées, au lieu de déborder */
@media (max-width: 809.98px) {
  .framer-dkzye { white-space: normal !important; max-width: 100%; }
  .framer-dkzye p { white-space: normal !important; text-wrap: balance; --framer-text-alignment: center !important; }
}

/* Appel à l'action final : la carte de liens du modèle (remplacée par le pied de page DeaX) laissait
   le paysage se déployer sous les boutons ; on garde cet espace pour que le texte reste sur le ciel */
footer .framer-1hn4fdg { padding-bottom: 160px; }
@media (max-width: 1199.98px) { footer .framer-1hn4fdg { padding-bottom: 200px; } }
@media (max-width: 809.98px) { footer .framer-1hn4fdg { padding-bottom: 220px; } }

/* Pied de page DeaX : même fond que l'appel à l'action final. Une seule image couvre les deux blocs
   (--dx-cta et --dx-bgw calculés par le script de la page), puis s'assombrit sous le CTA pour la lisibilité. */
footer.framer-4qNWO img[src*="Osh2UHQcarC8mZnL6oh6gwYnbA"] { opacity: 0; }
footer.framer-4qNWO { background: url("../../app-web/static/images/Osh2UHQcarC8mZnL6oh6gwYnbA.jpg") center top / var(--dx-bgw, cover) no-repeat; }
.site-footer {
  background:
    linear-gradient(180deg, rgba(15, 19, 27, 0) 0, rgba(15, 19, 27, .8) 100px, rgba(15, 19, 27, .9) 420px, rgba(15, 19, 27, .94) 100%),
    url("../../app-web/static/images/Osh2UHQcarC8mZnL6oh6gwYnbA.jpg") center calc(-1 * var(--dx-cta, 0px)) / var(--dx-bgw, cover) no-repeat,
    var(--night);
}

/* Cartes « Un logiciel qui vous appartient vraiment » : flottement léger et réaction au survol / toucher.
   Propriétés translate/scale indépendantes de transform, que Framer anime déjà au défilement. */
@keyframes dx-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -9px; } }
@keyframes dx-icon { 0%, 100% { rotate: 0deg; } 25% { rotate: -12deg; } 75% { rotate: 12deg; } }
[data-framer-name="Stats"] .framer-cSJRf {
  animation: dx-float 6s ease-in-out infinite;
  transition: scale .45s cubic-bezier(.22, 1, .36, 1), box-shadow .45s cubic-bezier(.22, 1, .36, 1);
}
[data-framer-name="Stats"] .framer-1mjgo4z-container .framer-cSJRf { animation-delay: -1.2s; }
[data-framer-name="Stats"] .framer-13259be-container .framer-cSJRf { animation-delay: -2.4s; }
[data-framer-name="Stats"] .framer-1ixz1so-container .framer-cSJRf { animation-delay: -.6s; }
[data-framer-name="Stats"] .framer-cSJRf:is(:hover, :active) { scale: 1.04; box-shadow: 0 28px 60px -28px rgba(18, 23, 34, .45); }
[data-framer-name="Stats"] .framer-cSJRf:is(:hover, :active) img { animation: dx-icon .6s ease-in-out; }
@media (prefers-reduced-motion: reduce) {
  [data-framer-name="Stats"] .framer-cSJRf, [data-framer-name="Stats"] .framer-cSJRf img { animation: none; }
}

/* Mobile : comme sur ordinateur, l'interface du hero est d'abord cachée par les herbes (pleine largeur),
   puis grossit et sort de la prairie au défilement pendant que l'avant-plan s'écarte vers le bas.
   (Sur téléphone, le modèle retirait l'avant-plan de collines et l'effet de défilement de l'interface.) */
@keyframes dx-rise { from { translate: 0 var(--dx-rise-from, 78%); scale: .64; } to { translate: 0 0; scale: 1; } }
@keyframes dx-grass { from { translate: 0 0; } to { translate: 0 var(--dx-grass-to, 46%); } }
@media (max-width: 809.98px) {
  [data-framer-name="Hero"] { clip-path: inset(0); }
  [data-framer-name="Hero"] .framer-h1rone { position: relative; }
  [data-framer-name="Hero"] .framer-h1rone::after {
    content: ""; position: absolute; z-index: 3; left: -40px; right: -40px; top: -22%; height: 540px; pointer-events: none;
    background: url("../../app-web/static/images/OH5Re0X1fnTabOLoEQYYNvYZWdQ.png") center top / 230% auto no-repeat;
    -webkit-mask-image: linear-gradient(to bottom, #000 62%, transparent 82%); mask-image: linear-gradient(to bottom, #000 62%, transparent 82%);
  }
  @supports (animation-timeline: scroll()) {
    [data-framer-name="Hero"] .framer-1hw9hq1 { animation: dx-rise linear both; animation-timeline: scroll(root); animation-range: 0 380px; }
    [data-framer-name="Hero"] .framer-h1rone::after { animation: dx-grass linear both; animation-timeline: scroll(root); animation-range: 0 380px; }
  }
}
@media (max-width: 809.98px) and (prefers-reduced-motion: reduce) {
  [data-framer-name="Hero"] .framer-1hw9hq1, [data-framer-name="Hero"] .framer-h1rone::after { animation: none; }
}

/* Mobile : espace entre les cartes « En bref » (carte Accès retirée) et la FAQ */
@media (max-width: 809.98px) { [data-framer-name="Stats"] { margin-bottom: 56px; } }

/* Hero : liste « Maquette gratuite · Code source livré · V1 en 3 j à 2 semaines » retirée */
.framer-19r2iw5[data-framer-name="List"] { display: none !important; }
