/* ═════════════ Thème commun du site — tons bleus et clairs ═════════════
   Chargé par partials/head_commun.php sur toutes les pages publiques,
   avant les feuilles propres à chaque page. */
/* ─── Police Plus Jakarta Sans, auto-hébergée ─── */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/plus-jakarta-sans-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/plus-jakarta-sans-italic-latin.woff2') format('woff2');
  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;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/plus-jakarta-sans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/plus-jakarta-sans-latin.woff2') format('woff2');
  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 {
  --bleu-900: #0a2540;
  --bleu-800: #0d3460;
  --bleu-700: #0b5cab;
  --bleu-600: #1170d6;
  --bleu-500: #2f8af5;
  --bleu-300: #8cc4ff;
  --bleu-100: #e6f2ff;
  --bleu-50:  #f4f9ff;
  --cyan-400: #38bdf8;
  --vert:     #16a34a;
  --rouge:    #e0533d;
  --texte:    #334a63;
  --gris:     #5b7189;
  --bordure:  #e3eefb;
  --police:   'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --bs-body-font-family: var(--police);
  --bs-body-color: var(--texte);
  --bs-body-bg: #fff;
  --bs-link-color-rgb: 11, 92, 171;
}
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { font-family: var(--police); color: var(--texte); -webkit-font-smoothing: antialiased; }

/* ─── Boutons ─── */
.btn-omega, .btn-omega-outline, .btn-whatsapp {
  border-radius: 999px; font-weight: 600;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.btn-omega {
  --bs-btn-color: #fff; --bs-btn-bg: var(--bleu-600); --bs-btn-border-color: var(--bleu-600);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--bleu-700); --bs-btn-hover-border-color: var(--bleu-700);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--bleu-700); --bs-btn-active-border-color: var(--bleu-700);
  --bs-btn-focus-shadow-rgb: 47, 138, 245;
  box-shadow: 0 8px 20px -8px rgba(17, 112, 214, .55);
}
.btn-omega-outline {
  --bs-btn-color: var(--bleu-700); --bs-btn-bg: #fff; --bs-btn-border-color: var(--bleu-300);
  --bs-btn-hover-color: var(--bleu-700); --bs-btn-hover-bg: var(--bleu-50); --bs-btn-hover-border-color: var(--bleu-500);
  --bs-btn-active-color: var(--bleu-700); --bs-btn-active-bg: var(--bleu-100); --bs-btn-focus-shadow-rgb: 47, 138, 245;
}
.btn-whatsapp {
  --bs-btn-color: #fff; --bs-btn-bg: #25D366; --bs-btn-border-color: #25D366;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #1EBE5B; --bs-btn-hover-border-color: #1EBE5B;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #1AA851; --bs-btn-active-border-color: #1AA851;
  --bs-btn-focus-shadow-rgb: 37, 211, 102;
  box-shadow: 0 8px 20px -8px rgba(37, 211, 102, .6);
}
.btn-omega:hover, .btn-omega-outline:hover, .btn-whatsapp:hover { transform: translateY(-2px); }

/* ─── Barre de navigation commune ─── */
.site-nav {
  background: rgba(255, 255, 255, .78);
  backdrop-filter: saturate(180%) blur(12px); -webkit-backdrop-filter: saturate(180%) blur(12px);
  padding-block: .75rem; transition: box-shadow .25s ease, background-color .25s ease;
  font-family: var(--police);
}
.site-nav.defile { background: rgba(255, 255, 255, .94); box-shadow: 0 6px 24px -12px rgba(10, 37, 64, .25); }
.site-nav .navbar-brand { font-weight: 800; color: var(--bleu-900); display: flex; align-items: center; gap: .6rem; font-size: 1.15rem; }
.site-nav .nav-link { color: var(--bleu-900); font-weight: 500; font-size: 1rem; }
.site-nav .nav-link:hover { color: var(--bleu-600); }
.nav-avatar {
  width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid #fff;
  box-shadow: 0 0 0 2px var(--bleu-300), 0 4px 10px -4px rgba(10, 37, 64, .35);
}
@media (max-width: 767.98px) { .site-nav .navbar-collapse { padding-top: .75rem; } }

/* ─── Éléments typographiques communs ─── */
.eyebrow {
  display: inline-block; margin-bottom: 1rem; padding: .35rem .9rem; border-radius: 999px;
  background: var(--bleu-100); color: var(--bleu-700); font-size: .8rem; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase;
}
.texte-degrade {
  background: linear-gradient(90deg, var(--bleu-600), var(--cyan-400));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ─── Pied de page commun ─── */
.site-footer { background: var(--bleu-900); color: #b9cbe0; padding: 2.5rem 0 2rem; font-size: .925rem; font-family: var(--police); }
.site-footer a { color: #dbe8f7; text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer .footer-nom { color: #fff; font-weight: 700; font-size: 1.05rem; }
.site-footer .footer-mention { margin: 1.5rem 0 0; font-size: .8rem; color: #8aa1bb; text-align: center; }
.site-footer .footer-avertissement {
  margin: 1.75rem 0 0; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .1);
  font-size: .8rem; color: #8aa1bb; text-align: center;
}

/* ─── Accessibilité ─── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Pages dont le contenu commence sous la barre de navigation fixe */
body.nav-fixe { padding-top: 66px; }

/* ─── Bandeau de consentement (pixel Meta) ─── */
.consentement {
  position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 1080; max-width: 760px; margin: 0 auto;
  display: flex; align-items: center; gap: 1rem 1.5rem; flex-wrap: wrap;
  background: #fff; color: var(--texte); border: 1px solid var(--bordure); border-radius: 1rem;
  padding: 1rem 1.25rem; box-shadow: 0 20px 50px -20px rgba(10, 37, 64, .45); font-family: var(--police); font-size: .9rem;
}
.consentement-texte { margin: 0; flex: 1 1 22rem; line-height: 1.5; }
.consentement-texte a { color: var(--bleu-700); }
.consentement-boutons { display: flex; gap: .6rem; }
.consentement-btn {
  border: 2px solid var(--bleu-600); background: #fff; color: var(--bleu-700); font-weight: 700; font-size: .9rem;
  border-radius: 999px; padding: .5rem 1.4rem; cursor: pointer; transition: background-color .2s ease, color .2s ease;
}
.consentement-btn:hover, .consentement-btn:focus-visible { background: var(--bleu-600); color: #fff; }
@media (max-width: 575.98px) {
  .consentement { left: .5rem; right: .5rem; bottom: .5rem; }
  .consentement-boutons { width: 100%; }
  .consentement-btn { flex: 1; }
}
