/* france-finlab.digital — Portail d'information financière
   Palette: primaire #1a3c6e (bleu marine), accent #e8a020 (or)
   Layout: docstyle | Nav: classic | Structure: timeline-core | SVG: infographic */

:root {
  --primary: #1a3c6e;
  --primary-light: #2a5298;
  --accent: #e8a020;
  --accent-light: #f5c060;
  --text-dark: #1a1a2e;
  --text-muted: #5a6a7e;
  --bg-light: #f4f7fb;
  --bg-white: #ffffff;
  --border: #d0dce8;
  --success: #2e7d32;
  --danger: #c62828;
}

body { font-family: 'Segoe UI', Arial, sans-serif; color: var(--text-dark); background: var(--bg-light); }

/* Navbar */
.navbar { background: var(--primary) !important; }
.navbar-brand { font-weight: 700; font-size: 1.4rem; color: #fff !important; letter-spacing: .5px; }
.navbar-brand span { color: var(--accent); }
.nav-link { color: rgba(255,255,255,.85) !important; font-size: .95rem; }
.nav-link:hover, .nav-link.active { color: var(--accent) !important; }

/* Hero */
.hero-section { background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%); color: #fff; padding: 4rem 0 3rem; }
.hero-section h1 { font-size: 2.4rem; font-weight: 800; line-height: 1.2; }
.hero-section .lead { font-size: 1.15rem; opacity: .9; }

/* Cards */
.card { border: 1px solid var(--border); border-radius: 8px; background: var(--bg-white); }
.card-header { background: var(--primary); color: #fff; font-weight: 600; border-radius: 8px 8px 0 0 !important; }

/* Timeline */
.timeline { position: relative; padding-left: 2rem; }
.timeline::before { content: ''; position: absolute; left: .75rem; top: 0; bottom: 0; width: 2px; background: var(--accent); }
.timeline-item { position: relative; margin-bottom: 2rem; }
.timeline-item::before { content: ''; position: absolute; left: -1.6rem; top: .35rem; width: 14px; height: 14px; border-radius: 50%; background: var(--accent); border: 2px solid var(--primary); }

/* Tables */
.table-custom thead { background: var(--primary); color: #fff; }
.table-custom tbody tr:nth-child(even) { background: var(--bg-light); }
.table-custom td, .table-custom th { padding: .65rem 1rem; border: 1px solid var(--border); }

/* Badges */
.badge-primary { background: var(--primary); color: #fff; }
.badge-accent { background: var(--accent); color: #fff; }

/* Sections */
.section-title { font-size: 1.8rem; font-weight: 700; color: var(--primary); border-left: 4px solid var(--accent); padding-left: .75rem; margin-bottom: 1.5rem; }
.section-subtitle { color: var(--text-muted); font-size: 1rem; margin-bottom: 2rem; }

/* Related links block */
.related-block { background: var(--bg-light); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; }
.related-block h5 { color: var(--primary); font-weight: 700; margin-bottom: .75rem; }

/* Footer */
footer { background: var(--primary); color: rgba(255,255,255,.85); padding: 3rem 0 1.5rem; }
footer a { color: var(--accent-light); text-decoration: none; }
footer a:hover { color: #fff; }
footer .footer-title { color: #fff; font-weight: 700; font-size: 1.05rem; margin-bottom: 1rem; }

/* Cookie banner */
#cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; background: var(--primary); color: #fff; padding: 1rem 1.5rem; z-index: 9999; display: none; }

/* Checklist */
.checklist li { padding: .4rem 0; border-bottom: 1px solid var(--border); }
.checklist li:last-child { border-bottom: none; }
.checklist li::before { content: '✓ '; color: var(--success); font-weight: 700; }

/* Alert info */
.alert-info-custom { background: #e8f0fe; border-left: 4px solid var(--primary); color: var(--text-dark); border-radius: 4px; padding: 1rem 1.25rem; }

/* Breadcrumb */
.breadcrumb-custom { background: none; padding: .5rem 0; font-size: .9rem; }
.breadcrumb-item a { color: var(--primary-light); }

@media (max-width: 768px) {
  .hero-section h1 { font-size: 1.7rem; }
  .section-title { font-size: 1.4rem; }
}
