/* ===== SoSeMMil — styles de base & tokens de marque ===== */
:root {
  --sose-green: #1b5e3f;        /* vert principal (logo/flyer) */
  --sose-green-dark: #0e3a27;   /* vert foncé (bandeaux) */
  --sose-green-light: #2e8b5e;
  --sose-red: #c0392b;          /* rouge (caducée, accents) */
  --sose-gold: #c9a24b;         /* or (filets, soulignés) */
  --sose-cream: #f3eee3;        /* fond crème */
  --sose-ink: #1f2a24;          /* texte sombre */
}

html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', sans-serif;
  color: #475569;
  background: var(--sose-cream);
}
h1, h2, h3, h4, h5, h6 { font-family: 'Poppins', sans-serif; color: var(--sose-ink); }

/* Lien de nav actif */
.nav-link.active { color: var(--sose-green); font-weight: 600; }
.nav-link { transition: color .2s ease; }
.nav-link:hover { color: var(--sose-green); }

/* Filet or décoratif */
.gold-rule { height: 3px; width: 64px; background: var(--sose-gold); border-radius: 999px; }

/* Hero du congrès — dégradé de marque + motif médical discret.
   Pour une photo de fond, place static/images/hero-bg.jpg et décommente l'URL. */
.congress-hero {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(14,58,39,.93), rgba(27,94,63,.82)),
    url('../images/hero-bg.jpg') center/cover no-repeat;
  background-color: var(--sose-green-dark);
}
/* Motif "croix médicales" en filigrane */
.congress-hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.06' stroke-width='2'%3E%3Cpath d='M30 20v20M20 30h20'/%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}
/* Halo doré décoratif */
.congress-hero::after {
  content: "";
  position: absolute;
  top: -120px; right: -120px;
  width: 360px; height: 360px;
  background: radial-gradient(circle, rgba(201,162,75,.28), transparent 70%);
  pointer-events: none;
}
.congress-hero > * { position: relative; z-index: 1; }

/* Logo partenaire : tuile placeholder */
.partner-tile {
  display:flex; align-items:center; justify-content:center;
  aspect-ratio: 1/1; background:#fff; border:1px solid #ece6d8;
  border-radius: 999px; color:#94a3b8; font-weight:600; font-size:.7rem; text-align:center;
  transition: transform .2s ease, box-shadow .2s ease;
}
.partner-tile:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,.06); }

/* Frise programme */
.timeline { position: relative; padding-left: 1.75rem; }
.timeline::before {
  content:""; position:absolute; left:.45rem; top:.4rem; bottom:.4rem;
  width:2px; background: linear-gradient(var(--sose-gold), #ece6d8);
}
.timeline-item { position: relative; padding-bottom: 1.5rem; }
.timeline-item::before {
  content:""; position:absolute; left:-1.52rem; top:.35rem;
  width:12px; height:12px; border-radius:999px;
  background: var(--sose-green); border:2px solid #fff; box-shadow:0 0 0 2px var(--sose-gold);
}

/* Carte flottante */
.card { background:#fff; border:1px solid #ece6d8; border-radius:1rem; }

/* Petites animations d'apparition (sans lib) */
[data-reveal] { opacity:0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
[data-reveal].is-visible { opacity:1; transform:none; }
