/* Identité ALPF commune au site public et à l’application. */
@font-face { font-family: 'Source Sans 3'; src: url('../../../assets/fonts/source-sans-3-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Source Sans 3'; src: url('../../../assets/fonts/source-sans-3-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Source Sans 3'; src: url('../../../assets/fonts/source-sans-3-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Playfair Display'; src: url('../../../assets/fonts/playfair-display-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
:root {
  /* Palette du logo : bleu vif, rouge, vert et jaune (identique au site public). */
  --color-primary: #0B5FD3;
  --color-primary-dark: #0A4BA8;
  --color-primary-light: #2F7FE6;
  --color-primary-soft: #C9DDF9;
  --color-primary-tint: #EAF2FD;
  --color-navy: #0E2A55;
  --color-secondary: #E31E2D;
  --color-secondary-dark: #B8121F;
  --color-secondary-light: #FDECEE;
  --color-accent: #FFD200;
  --color-accent-dark: #F2C200;
  --color-accent-light: #FFF6CC;
  --color-green: #1FA23F;
  --color-green-dark: #167A2F;
  --color-green-light: #E7F7EB;
  --color-bg: #FFFFFF;
  --color-bg-alt: #F3F7FD;
  --color-title: #123B7A;
  --color-text: #3D4B5F;
  --color-text-light: #64748B;
  --color-border: #D9E5F5;
  --color-border-light: #EAF1FA;
  --font-body: 'Source Sans 3', 'Segoe UI', sans-serif;
  --font-heading: 'Playfair Display', Georgia, serif;
}

/* ── Bouton de soumission en cours d'envoi (assets/js/form-loading.js) ── */
.is-loading { cursor: progress !important; opacity: .85; pointer-events: none; }
.is-loading .submit-spinner {
  display: inline-block; flex: 0 0 auto;
  width: 1em; height: 1em; margin-right: .5em; vertical-align: -.15em;
  border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%;
  animation: submit-spin .7s linear infinite;
}
/* Sur un lien avec icône, le spinner remplace l'icône le temps du chargement. */
.is-loading .submit-spinner + svg { display: none; }
@keyframes submit-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .is-loading .submit-spinner { animation-duration: 1.6s; } }
