/* ==========================================================================
   EM RENOVA — Interactions discrètes
   Le design principal reste dans styles.css : aucune palette ni typo redéfinie.
   ========================================================================== */

/* Le décor injecté par l'ancien script n'est plus animé ni affiché. */
.hero{isolation:isolate;}
.hero-mesh{display:none;}

/* Une image ne dépend jamais d'un observateur JavaScript pour être visible. */
[data-reveal-mask]{clip-path:none;opacity:1;}

/* La bande reste lisible quand on la survole ou qu'un élément prend le focus. */
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused;}

/* Retour en haut : contrôle distinct des contacts à droite. */
.to-top{
  position:fixed;left:22px;bottom:22px;width:46px;height:46px;border-radius:50%;
  background:var(--white);color:var(--accent-text);border:1px solid var(--line);
  display:grid;place-items:center;font-size:1.3rem;font-weight:500;
  box-shadow:var(--shadow-sm);z-index:80;
  opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none;
  transition:opacity .2s,transform .2s,background .2s,color .2s,visibility .2s;
}
.to-top.in{opacity:1;visibility:visible;transform:none;pointer-events:auto;}
.to-top:hover{background:var(--violet-600);color:var(--on-accent);}

.form-field input:focus,.form-field textarea:focus,.form-field select:focus{
  box-shadow:0 3px 0 var(--violet-100);
}

/* Confirmation persistante : le texte explique l'état sans dépendre de la couleur. */
#contactStatus:empty{display:none;}
.form-status{grid-column:1/-1;margin:0;padding:14px 16px;border:1px solid currentColor;border-left-width:4px;border-radius:var(--r-xs);font-size:.95rem;line-height:1.6;overflow-wrap:anywhere;}
.form-status.success{color:var(--accent-text);background:var(--violet-100);}
.form-status.error{color:#9f1c1c;background:#fff4f4;}

@media (max-width:560px){
  .to-top{left:14px;bottom:max(14px,env(safe-area-inset-bottom));width:44px;height:44px;}
}

@media (prefers-reduced-motion:reduce){
  [data-reveal-mask]{clip-path:none !important;opacity:1 !important;}
  [data-parallax],[data-tilt],.magnetic{transform:none !important;}
  .marquee-track{animation:none !important;}
}
