/* ifsi-theme.css : charte concours-ifsi (surcharge des variables de styles.css).
   Chargée APRÈS styles.css dans Layout.astro. Rhabille toutes les pages internes
   (accueil, voies, épreuves, métier, salaire, annales, fiches, app…) à la DA « rose santé » :
   fond crème rosé, Newsreader (titres) + Hanken Grotesk (labeur), accent corail #E0445F. */
:root {
  /* Accent principal + déclinaisons DA (exposées pour l'accueil / le hero) */
  --accent: #E0445F;
  --accent2: #B82E48;
  --accent-deep: #B82E48;
  --accent-soft: #F4A6B4;
  --accent-mid: #EC6E86;
  --accent-wash: #FDEBEE;
  --tint: #FCE9EC;
  --tint-2: #F9DBE0;
  --tint-3: #FBCDD5;
  --accent-rgb: 224, 68, 95;
  --accent-deep-rgb: 184, 46, 72;
  --bg-rgb: 252, 248, 246;

  --ink: #2C2630;
  --encre: #2C2630;
  --bg: #FCF8F6;
  --card: #FFFFFF;
  --card2: #FCE9EC;
  --text: #5A5159;
  --heading: #2C2630;
  --muted: #9A8B90;
  --line: #EFE2E4;
  --border: #EFE2E4;
  --ok: #3E8A63;
  --okbg: #E9F2EC;
  --warn: #B4841A;
  --warnbg: #FBF3DD;
  --bad: #C0392B;
  --badbg: #FBEAE8;
  --shadow: 0 1px 3px rgba(76, 42, 52, .06), 0 12px 30px rgba(76, 42, 52, .08);
  --shadow-strong: 0 24px 60px rgba(76, 42, 52, .20);
  --radius: 16px;
  --radius-lg: 22px;
  --font-sans: 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
}

/* Variante sombre : prune profond cohérent avec la DA (le toggle de thème reste fonctionnel). */
:root[data-theme="dark"] {
  --accent: #EC6E86;
  --accent2: #F4A6B4;
  --accent-deep: #E0445F;
  --accent-soft: #F4A6B4;
  --accent-mid: #EC6E86;
  --accent-wash: #2A1A20;
  --tint: #241A20;
  --tint-2: #2E2028;
  --tint-3: #3A2730;
  --ink: #150F13;
  --encre: #F6EDEF;
  --bg: #171115;
  --card: #211820;
  --card2: #2A1F27;
  --text: #E4D7DB;
  --heading: #FBF1F4;
  --muted: #B49AA2;
  --line: #362A31;
  --ok: #6FBF95;
  --okbg: #16301F;
  --warn: #F5C451;
  --warnbg: #332810;
  --bad: #F0776F;
  --badbg: #3A1C1A;
  --shadow: 0 1px 3px rgba(0, 0, 0, .45), 0 10px 30px rgba(0, 0, 0, .35);
  --shadow-strong: 0 18px 50px rgba(0, 0, 0, .55);
}

/* Newsreader gère l'italique et les tracking négatifs de la DA : on NE neutralise PAS
   les italiques (contrairement à Fredoka), et on laisse le tracking serré des gros titres. */
.page h1, .hero h1, h1.serif { letter-spacing: -.02em; }

/* Boutons DA : rectangles arrondis (pas de pilule). */
.btn { border-radius: 13px; }
.btn-accent { background: var(--accent); color: #fff; box-shadow: 0 12px 26px -8px rgba(var(--accent-rgb), .5); }
.btn-accent:hover { filter: brightness(1.03); }

/* Marque : wordmark Newsreader, « -ifsi.fr » en dégradé accent (peint dans le Header). */
.brand .wm { font-family: var(--font-serif); font-weight: 600; letter-spacing: -.01em; }

/* Orbe du bouton IA (assistant Revis-IA santé) : dégradé rose monochrome cohérent avec la DA. */
.chatbtn-orb { position: relative; width: 32px; height: 32px; border: none; border-radius: 50%; cursor: pointer; background: transparent; padding: 0; flex: none; animation: cwFloat 4.5s ease-in-out infinite; }
.chatbtn-orb span { position: absolute; border-radius: 50%; display: block; }
.chatbtn-orb .orb-aura { inset: -6px; background: conic-gradient(from 0deg, #E0445F, #EC6E86, #F4A6B4, #B82E48, #E0445F); filter: blur(9px); opacity: .5; z-index: 0; animation: cwPulse 3.6s ease-in-out infinite; }
.chatbtn-orb .orb-face { inset: 0; background: conic-gradient(from 0deg, #E0445F, #EC6E86, #F4A6B4, #B82E48, #E0445F); z-index: 1; animation: cwSpin 9s linear infinite; }
.chatbtn-orb .orb-gloss { inset: 0; background: radial-gradient(circle at 32% 26%, rgba(255,255,255,.75), rgba(255,255,255,0) 46%); z-index: 2; box-shadow: inset 0 -5px 10px rgba(76,42,52,.22); }
.chatbtn-orb:hover { filter: brightness(1.05); }
@keyframes cwFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(12px); } }
@keyframes cwPulse { 0%, 100% { transform: scale(1); opacity: .42; } 50% { transform: scale(1.22); opacity: .7; } }
@keyframes cwSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .chatbtn-orb, .chatbtn-orb .orb-aura, .chatbtn-orb .orb-face { animation: none; } }
