/* ── TOKENS DE DESIGN — ACP ──────────────────────────────────────────────── */

:root {
  /* Couleurs */
  --rouge:          #8B1A1A;
  --rouge-dark:     #6B1414;
  --rouge-light:    #A82020;
  --rouge-pale:     #F9F0F0;
  --or:             #C8962A;
  --or-light:       #E0B040;
  --or-pale:        #FBF5E6;
  --vert:           #4A7C59;
  --vert-dark:      #2E6B3E;
  --vert-pale:      #EDF4EF;
  --parchemin:      #F6F1E8;
  --parchemin-dark: #EDE8DC;
  --sombre:         #2C1810;

  /* Neutres */
  --fond:           #FFFFFF;
  --fond-alt:       #F8F5F0;
  --texte:          #1A1A1A;
  --muted:          #6B6B6B;
  --leger:          #9B9B9B;
  --bordure:        #E0DCD4;
  --bordure-md:     #C8C4BC;

  /* Typographie */
  --font-titre:  'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-corps:  'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
  --font-mono:   'Courier New', monospace;

  /* Échelle typographique */
  --t-xs:   0.75rem;
  --t-sm:   0.875rem;
  --t-base: 1rem;
  --t-lg:   1.125rem;
  --t-xl:   1.25rem;
  --t-2xl:  1.5rem;
  --t-3xl:  1.875rem;
  --t-4xl:  2.25rem;
  --t-5xl:  3rem;
  --t-6xl:  3.75rem;

  /* Espacements */
  --sp-1:  0.25rem;
  --sp-2:  0.5rem;
  --sp-3:  0.75rem;
  --sp-4:  1rem;
  --sp-5:  1.25rem;
  --sp-6:  1.5rem;
  --sp-8:  2rem;
  --sp-10: 2.5rem;
  --sp-12: 3rem;
  --sp-16: 4rem;
  --sp-20: 5rem;
  --sp-24: 6rem;

  /* Rayons */
  --r-sm:  4px;
  --r-md:  8px;
  --r-lg:  16px;
  --r-xl:  24px;
  --r-full: 9999px;

  /* Ombres */
  --shadow-xs: 0 1px 2px rgba(0,0,0,0.06);
  --shadow-sm: 0 1px 4px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.10), 0 2px 4px rgba(0,0,0,0.06);
  --shadow-lg: 0 8px 24px rgba(0,0,0,0.12), 0 4px 8px rgba(0,0,0,0.06);
  --shadow-xl: 0 16px 48px rgba(0,0,0,0.16), 0 8px 16px rgba(0,0,0,0.08);

  /* Transitions */
  --ease:      cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out:  cubic-bezier(0, 0, 0.2, 1);
  --ease-in:   cubic-bezier(0.4, 0, 1, 1);
  --t-fast:    120ms;
  --t-base:    200ms;
  --t-slow:    350ms;

  /* Layout */
  --max-w:     1200px;
  --max-w-lg:  960px;
  --max-w-sm:  640px;
  --nav-h:     68px;
}

/* ── RESET & BASE ─────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-corps);
  font-size: var(--t-base);
  line-height: 1.65;
  color: var(--texte);
  background: var(--fond);
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

img { display: block; max-width: 100%; height: auto; }
a { color: var(--rouge); text-decoration: none; }
a:hover { text-decoration: underline; }
button { cursor: pointer; font-family: inherit; }
input, textarea, select { font-family: inherit; }

h1, h2, h3, h4, h5 {
  font-family: var(--font-titre);
  line-height: 1.25;
  color: var(--sombre);
}

/* ── UTILITAIRES ──────────────────────────────────────────────────────────── */

.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.container {
  width: 100%;
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--sp-6);
}

.container--sm {
  max-width: var(--max-w-sm);
}

.container--lg {
  max-width: var(--max-w-lg);
}

.text-rouge   { color: var(--rouge); }
.text-or      { color: var(--or); }
.text-vert    { color: var(--vert); }
.text-muted   { color: var(--muted); }
.text-center  { text-align: center; }
.text-sm      { font-size: var(--t-sm); }
.font-titre   { font-family: var(--font-titre); }

.mt-auto { margin-top: auto; }
.hidden  { display: none !important; }

/* Animations d'entrée */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.animate-in {
  animation: fadeUp var(--t-slow) var(--ease-out) both;
}
