/* L'Éclat — direction typographique & animations signature
   Chargée après prestige.css / admin.css / account.css : affine la DA
   noir & blanc existante sans en changer la structure. */

@font-face{font-family:'Fraunces Display';src:url('../fonts/fraunces-roman.woff2') format('woff2');font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:'Fraunces Display';src:url('../fonts/fraunces-italic.woff2') format('woff2');font-weight:300 900;font-style:italic;font-display:swap}
@font-face{font-family:'Manrope';src:url('../fonts/manrope.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Mono';src:url('../fonts/instrument-mono-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Mono';src:url('../fonts/instrument-mono-bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

:root{
  --ease-precise:cubic-bezier(.16,.8,.24,1);
  --font-mono:'Instrument Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}

/* Chiffres alignés — prix, stats, compteurs : partout où un nombre porte l'information. */
.price,
.choice-price,
.summary-total strong,
.admin-metric strong,
.admin-kpi-feature strong,
.admin-kpi-mini-grid strong,
.admin-chart-head>strong,
.admin-chart-labels small,
.quote-live-total strong,
.account-points strong,
.account-stat strong,
.next-service,
.stat strong,
.loyalty-number,
.appointment-price strong,
.document-summary .document-total dd,
.invoice-sheet tfoot td:last-child{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
}

/* ============ mouvement signature : le geste, pas l'effet ============ */

/* Boutons — reflet qui glisse une fois, jamais de rebond. */
.btn-main{position:relative;overflow:hidden;isolation:isolate}
.btn-main::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(115deg,transparent 40%,rgba(0,0,0,.16) 50%,transparent 60%);
  transform:translateX(-120%);
}
.btn-main:hover::before{transition:transform .7s var(--ease-precise);transform:translateX(120%)}

/* Cartes — un reflet discret suit le curseur, comme la lumière sur une carrosserie. */
.service-card,.review-card,.admin-v9-card,.admin-metric,.secondary-card,.booking-card,.account-card,.pro-business-form-card{
  position:relative;isolation:isolate;
}
.service-card::before,.review-card::before,.admin-v9-card::before,.admin-metric::before,.secondary-card::before,.pro-business-form-card::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;
  background:radial-gradient(240px circle at var(--mx,50%) var(--my,0%),rgba(255,255,255,.05),transparent 65%);
  opacity:0;transition:opacity .35s var(--ease-precise);
}
.service-card:hover::before,.admin-v9-card:hover::before,.secondary-card:hover::before,.pro-business-form-card:hover::before{opacity:1}
.service-card>*,.review-card>*,.admin-v9-card>*,.secondary-card>*{position:relative;z-index:1}

/* Reveal au scroll — easing affiné, plus net, moins "rebond". */
.reveal-ready{transition:opacity .7s var(--ease-precise),transform .7s var(--ease-precise)!important}

@media(prefers-reduced-motion:reduce){
  .btn-main::before{display:none}
  .service-card::before,.review-card::before,.admin-v9-card::before,.admin-metric::before,.secondary-card::before,.pro-business-form-card::before{display:none}
}
