@tailwind base;
@tailwind components;
@tailwind utilities;

/*
 * Manrope, auto-hébergée (14/10) : un seul fichier variable de 25 Ko,
 * préchargé par le layout. Plus de feuille Google Fonts bloquante (≈ 780 ms
 * sur mobile 4G), ni de Source Serif 4 / IBM Plex Sans, vestiges de
 * l'ancienne charte « Tribunal fiscal » qui pesaient 64 Ko sans servir.
 * Licence : public/fonts/manrope-OFL.txt.
 */
@font-face {
  font-family: "Manrope";
  src: url("/fonts/manrope-latin-wght.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F,
    U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --font-sans: "Manrope", "Helvetica Neue", Arial, sans-serif;
  --font-serif: var(--font-sans);
}

body {
  font-family: var(--font-sans);
  background-color: #ffffff;
  color: #0b0d12;
  -webkit-font-smoothing: antialiased;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

@layer components {
  /* Notarial letterhead rule — 1px brass filet. */
  .filet {
    border-top: 1px solid #b08d57;
  }
  .display {
    font-family: var(--font-serif);
    font-weight: 600;
    letter-spacing: -0.01em;
  }
  .tnum {
    font-variant-numeric: tabular-nums;
  }
  /* Primary CTA: solid brass on night blue, ink text, hover = inversion. */
  .cta-primary {
    @apply inline-block rounded bg-laiton px-6 py-3 font-sans text-base font-medium text-encre transition;
  }
  .cta-primary:hover {
    @apply bg-nuit text-creme;
    box-shadow: inset 0 0 0 1px #b08d57;
  }
  /* Legal footnote box — crème background, brass filet. */
  .note-juridique {
    @apply border border-laiton bg-creme p-4 text-sm leading-relaxed;
  }
}

@media print {
  header, footer, .no-print {
    display: none !important;
  }
}
