/* ============================================================
   styles.css — partagé entre toutes les pages.
   Contient uniquement les rules trivialement identiques sur les
   5 pages (variables, reset, base typo, utilities). Les blocs
   page-spécifiques (header, footer, sections, formulaires...)
   restent inline pour préserver les ajustements par page.
   ============================================================ */

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

html {
  scroll-padding-top: 120px;
  scroll-behavior: smooth;
  overflow-x: clip;
}

:root {
  --bg: #fdfdfd;
  --bg-alt: #f5f5f5;
  --bg-dark: #0a0a0a;
  --text: #0a0a0a;
  --text-mid: #555;
  --text-dim: #888;
  --line: rgba(10, 10, 10, 0.1);
  --accent: #c0392b;
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'Inter', 'Helvetica Neue', sans-serif;
  --slide-ease: cubic-bezier(0.65, 0, 0.35, 1);
}

body {
  background: var(--bg);
  font-family: var(--sans);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
body.menu-open { overflow: hidden; }

/* ============ UTILITAIRES ============ */
.t-accent { color: var(--accent); }

/* ============ ANIMATIONS REVEAL (scroll-triggered) ============ */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition:
    opacity 1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal.in { opacity: 1; transform: translateY(0); }

.reveal-left {
  opacity: 0;
  transform: translateX(-60px);
  transition:
    opacity 1.1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-left.in { opacity: 1; transform: translateX(0); }

.reveal-right {
  opacity: 0;
  transform: translateX(60px);
  transition:
    opacity 1.1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-right.in { opacity: 1; transform: translateX(0); }

.reveal-zoom {
  opacity: 0;
  transform: scale(0.94);
  transition:
    opacity 1s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-zoom.in { opacity: 1; transform: scale(1); }

/* ============ FOOTER — liens légaux (partagés) ============ */
.footer-legal-links {
  display: inline-flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-left: 1rem;
}
.footer-legal-links a {
  color: rgba(255, 255, 255, 0.55);
  text-decoration: none;
  font-size: inherit;
  letter-spacing: inherit;
  transition: color 0.25s ease;
}
.footer-legal-links a:hover { color: #fff; }
@media (max-width: 600px) {
  .footer-legal-links { display: flex; margin: 0.8rem 0 0; gap: 1rem; justify-content: center; }
}
