/* ===== JECI — styles complémentaires (Tailwind gère le reste) ===== */
:root { --emeraude:#0F8A6C; --marine:#0B1F3A; --or:#C9962C; --ivoire:#F4EEE2; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { background: var(--ivoire); color: var(--marine); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
:focus-visible { outline: 3px solid var(--or); outline-offset: 3px; border-radius: 6px; }

/* Grain papier ivoire (rappel de l'affiche) */
.papier {
  background-color: var(--ivoire);
  background-image: radial-gradient(rgba(11,31,58,.045) 1px, transparent 1px);
  background-size: 5px 5px;
}

/* Formes organiques */
.blob { position:absolute; border-radius:9999px; pointer-events:none; }

/* Titre hero */
.hero-title { font-family:'Poppins',sans-serif; font-weight:800; letter-spacing:-.035em; line-height:.95; }

/* Révélation au scroll (sobre) */
.reveal { opacity:0; transform:translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity:1; transform:none; }

/* Boutons */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.6rem; min-height:52px; padding:.85rem 1.7rem;
  border-radius:14px; font-weight:700; font-family:'Poppins',sans-serif; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0) scale(.98); }
.btn-or { background:var(--or); color:var(--marine); box-shadow:0 10px 24px -10px rgba(201,150,44,.8); }
.btn-or:hover { background:#D8A53A; }
.btn-emeraude { background:var(--emeraude); color:#fff; box-shadow:0 10px 24px -10px rgba(15,138,108,.8); }
.btn-emeraude:hover { background:#0A6B54; }
.btn-ligne { border:2px solid rgba(244,238,226,.55); color:var(--ivoire); }
.btn-ligne:hover { background:rgba(244,238,226,.12); }
.btn .arr { transition: transform .25s ease; }
.btn:hover .arr { transform: translateX(4px); }

/* Navbar */
.nav-link { position:relative; font-weight:500; padding:.25rem 0; }
.nav-link::after { content:''; position:absolute; left:0; bottom:-4px; height:2px; width:0; background:var(--or); transition:width .3s ease; }
.nav-link:hover::after, .nav-link[aria-current="page"]::after { width:100%; }
#site-header.scrolled { background:rgba(11,31,58,.92); backdrop-filter: blur(12px); box-shadow:0 10px 30px -15px rgba(0,0,0,.5); }

/* Secteurs interactifs */
.axe { cursor:pointer; text-align:left; transition: all .35s ease; border:2px solid transparent; }
.axe[aria-selected="true"] { transform: translateY(-6px); box-shadow: 0 30px 60px -24px rgba(11,31,58,.5); border-color: var(--or); }
.axe-detail { display:none; }
.axe-detail.active { display:block; animation: fadeIn .5s ease; }
@keyframes fadeIn { from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none} }

/* Note épinglée */
.note { background:#FBF7EE; transform:rotate(-1.6deg); box-shadow: 0 40px 70px -30px rgba(11,31,58,.55), 0 2px 0 rgba(201,150,44,.25);
  background-image: repeating-linear-gradient(transparent 0 38px, rgba(15,138,108,.12) 38px 39px); }
.punaise { position:absolute; top:-18px; left:50%; transform:translateX(-50%); width:38px; height:38px; border-radius:9999px;
  background: radial-gradient(circle at 35% 30%, #F1CF7A, #C9962C 55%, #8C650F); box-shadow: 0 8px 12px rgba(0,0,0,.35); }
.hand { font-family:'Caveat',cursive; }

/* Timeline programme */
.tl-item { position:relative; padding-left:2rem; }
.tl-item::before { content:''; position:absolute; left:0; top:.5rem; width:14px; height:14px; border-radius:9999px; background:var(--or); box-shadow:0 0 0 5px rgba(201,150,44,.2); }
.tl-item::after { content:''; position:absolute; left:6px; top:1.6rem; bottom:-1.6rem; width:2px; background:rgba(11,31,58,.15); }
.tl-item:last-child::after { display:none; }
.jour-btn[aria-selected="true"] { background:var(--marine); color:var(--ivoire); }
.jour-panel { display:none; } .jour-panel.active { display:block; animation: fadeIn .5s ease; }

/* Formulaires */
.champ { width:100%; min-height:52px; padding:.8rem 1rem; border-radius:12px; border:1.5px solid rgba(11,31,58,.18); background:#fff; color:var(--marine); transition: border-color .2s, box-shadow .2s; }
.champ:focus { outline:none; border-color:var(--emeraude); box-shadow:0 0 0 4px rgba(15,138,108,.18); }
.champ.invalide { border-color:#B3261E; }

/* Lightbox */
#lightbox { display:none; } #lightbox.open { display:flex; animation: fadeIn .3s ease; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal { opacity:1; transform:none; transition:none; }
  *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* Groupe radio invalide */
fieldset.invalide { outline: 2px solid #B3261E; outline-offset: 6px; border-radius: 12px; }
