/* ═══════════════════════════════════════════════════════════
   WEALTHWAFFLE — ww-all.css
   Single CSS bundle — ww.css + ww2.css + ww5.css merged
   Generated automatically — do not edit individual files
   Edit this file directly for all style changes
═══════════════════════════════════════════════════════════ */


/* ═══ WW BASE — Variables, Reset, Typography, Layout ═══ */

/* ═══════════════════════════════════════
   WEALTHWAFFLE — Shared Stylesheet
   Dark mode default · Light mode toggle
═══════════════════════════════════════ */

/* ── Variables dark (default) ── */
:root {
  --rose:   #E87CC3;
  --cyan:   #5BB8D4;
  --terra:  #C4724A;
  --gold:   #E8C23A;
  --slate:  #C8C6E8;
  --green:  #7EC8A0;

  --bg:      #080717;
  --s1:      #0f0e22;
  --s2:      #161430;
  --s3:      #1e1c3a;
  --s4:      #252342;
  --faint:   #2e2b50;
  --border:  rgba(255,255,255,0.08);

  --text:    #f2f0ff;
  --text2:   #ccc8f0;
  --muted:   #8e8ab8;
  --muted2:  #5e5a7e;
}

/* ── Variables light ── */
body.light {
  --bg:      #f0eeff;
  --s1:      #e8e4fc;
  --s2:      #ddd8f8;
  --s3:      #d0cbf2;
  --s4:      #c4beed;
  --faint:   #b8b2e0;
  --border:  rgba(0,0,0,0.10);

  --text:    #0e0c20;
  --text2:   #1e1a3a;
  --muted:   #4a4668;
  --muted2:  #7a76a0;
}

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: 'DM Sans', sans-serif;
  min-height: 100vh;
  overflow-x: hidden;
  transition: background 0.35s, color 0.35s;
}

/* ── Ambient orbs ── */
.bg-mesh { position: fixed; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
.bg-orb  { position: absolute; border-radius: 50%; filter: blur(90px); opacity: 0.45; animation: drift 20s ease-in-out infinite alternate; }
body.light .bg-orb { opacity: 0.20; }

.orb1 { width:500px;height:500px; background:radial-gradient(circle,rgba(232,124,195,.38),transparent 70%); top:-100px;left:-80px; animation-duration:22s; }
.orb2 { width:420px;height:420px; background:radial-gradient(circle,rgba(91,184,212,.28),transparent 70%); bottom:-60px;right:-60px; animation-duration:27s;animation-delay:-10s; }
.orb3 { width:300px;height:300px; background:radial-gradient(circle,rgba(196,114,74,.18),transparent 70%); top:50%;left:50%;animation-name:drift3;animation-duration:32s;animation-delay:-16s; }
@keyframes drift  { from{transform:translate(0,0) scale(1)} to{transform:translate(26px,16px) scale(1.07)} }
@keyframes drift3 { from{transform:translate(-50%,-50%) scale(1)} to{transform:translate(calc(-50% + 20px),calc(-50% + 12px)) scale(1.06)} }

/* ══════════════════════════
   NAVBAR
══════════════════════════ */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  height: 60px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 22px;
  background: rgba(8,7,23,0.88);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  transition: background 0.35s, border-color 0.35s;
}
body.light nav {
  background: rgba(240,238,255,0.90);
  border-bottom-color: rgba(0,0,0,0.09);
}

.nav-brand {
  font-family: 'DM Serif Display', serif;
  font-style: italic;
  font-size: 1.2rem;
  color: var(--text);
  text-decoration: none;
  display: flex; align-items: center; gap: 7px;
  flex-shrink: 0;
}
.nav-brand em {
  font-style: normal;
  background: linear-gradient(90deg, var(--rose), var(--cyan));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

.nav-center {
  display: flex; align-items: center; gap: 2px;
  list-style: none;
}
.nav-center a {
  font-size: 0.80rem; font-weight: 500;
  color: var(--muted);
  text-decoration: none;
  padding: 6px 10px; border-radius: 8px;
  transition: color 0.18s, background 0.18s;
  white-space: nowrap;
}
.nav-center a:hover, .nav-center a.active { color: var(--text); background: rgba(255,255,255,0.06); }
body.light .nav-center a:hover,
body.light .nav-center a.active { background: rgba(0,0,0,0.06); }

.nav-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

/* Theme toggle */
.theme-btn {
  width: 34px; height: 34px;
  border-radius: 9px;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.10);
  color: var(--muted);
  font-size: 15px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.2s, border-color 0.2s, transform 0.2s;
  flex-shrink: 0;
}
body.light .theme-btn { background: rgba(0,0,0,0.06); border-color: rgba(0,0,0,0.10); }
.theme-btn:hover { transform: scale(1.12); background: rgba(232,124,195,0.14); border-color: rgba(232,124,195,0.28); }

/* Nav CTA */
.nav-cta {
  background: linear-gradient(135deg, var(--rose), #b8449a) !important;
  color: #fff !important; font-weight: 700 !important;
  padding: 7px 13px !important;
  border-radius: 9px;
  box-shadow: 0 3px 14px rgba(232,124,195,0.28);
  transition: transform 0.2s, box-shadow 0.2s !important;
}
.nav-cta:hover { transform: translateY(-1px) !important; box-shadow: 0 6px 20px rgba(232,124,195,0.40) !important; background: none !important; }

/* Burger */
.burger {
  display: none; flex-direction: column; gap: 5px;
  cursor: pointer; padding: 4px; background: none; border: none;
}
.burger span { width:22px;height:2px;background:var(--muted);border-radius:2px;transition:0.3s; }

/* Mobile menu */
.mobile-menu {
  display: none; position: fixed; top: 60px; left: 0; right: 0;
  background: rgba(8,7,23,0.97); backdrop-filter: blur(20px);
  z-index: 99; padding: 14px 18px 22px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  flex-direction: column; gap: 3px;
}
body.light .mobile-menu { background: rgba(236,234,252,0.98); border-bottom-color: rgba(0,0,0,0.08); }
.mobile-menu.open { display: flex; }
.mobile-menu a {
  font-size: 0.95rem; font-weight: 500; color: var(--muted);
  text-decoration: none; padding: 11px 13px; border-radius: 11px;
  transition: color 0.18s, background 0.18s;
}
.mobile-menu a:hover { color: var(--text); background: rgba(255,255,255,0.05); }
body.light .mobile-menu a:hover { background: rgba(0,0,0,0.05); }
.mobile-menu .nav-cta { color: #fff !important; text-align: center; margin-top: 6px; }

/* ══════════════════════════
   PAGE WRAPPER
══════════════════════════ */
.page { position: relative; z-index: 1; max-width: 820px; margin: 0 auto; padding: 0 22px 80px; }

/* ══════════════════════════
   TYPOGRAPHY
══════════════════════════ */
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 0.70rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase;
  padding: 4px 12px; border-radius: 20px; margin-bottom: 12px;
}

h1.display {
  font-family: 'DM Serif Display', serif; font-style: italic;
  font-size: clamp(2.6rem, 8vw, 4rem);
  color: var(--text); line-height: 1.04; letter-spacing: -1.5px; margin-bottom: 14px;
}
h2.display {
  font-family: 'DM Serif Display', serif; font-style: italic;
  font-size: clamp(1.8rem, 5vw, 2.6rem);
  color: var(--text); line-height: 1.1; margin-bottom: 12px;
}
h3.serif {
  font-family: 'DM Serif Display', serif; font-style: italic;
  font-size: 1.4rem; color: var(--text); margin-bottom: 10px;
}
.gradient-text {
  background: linear-gradient(90deg, var(--rose), var(--cyan));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.lead { font-size: 1.0rem; color: var(--muted); line-height: 1.7; max-width: 580px; }
body.light .lead { color: var(--muted); }

/* ══════════════════════════
   CARDS
══════════════════════════ */
.card {
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 22px 20px;
  transition: background 0.2s, border-color 0.2s, transform 0.22s cubic-bezier(.34,1.56,.64,1), box-shadow 0.2s;
}
body.light .card { background: var(--s1); }

.card-link { text-decoration: none; display: block; cursor: pointer; }
.card-link:hover { transform: translateY(-4px); }
.card-link:hover .card { border-color: rgba(232,124,195,0.30); box-shadow: 0 12px 36px rgba(0,0,0,0.18); }
body.light .card-link:hover .card { box-shadow: 0 12px 36px rgba(0,0,0,0.10); }

/* Content card (article style) */
.content-card {
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 32px 28px;
  margin-bottom: 24px;
}
body.light .content-card { background: var(--s1); }

.content-card h3 {
  font-family: 'DM Serif Display', serif; font-style: italic;
  font-size: 1.3rem; color: var(--text); margin-bottom: 12px;
}
.content-card p { font-size: 0.90rem; color: var(--text2); line-height: 1.72; margin-bottom: 10px; }
body.light .content-card p { color: var(--text2); }
.content-card p:last-child { margin-bottom: 0; }
.content-card strong { color: var(--text); font-weight: 600; }
body.light .content-card strong { color: var(--text); }

/* Info box */
.info-box {
  background: rgba(91,184,212,0.08);
  border: 1px solid rgba(91,184,212,0.20);
  border-left: 3px solid var(--cyan);
  border-radius: 0 12px 12px 0;
  padding: 14px 16px;
  margin: 16px 0;
  font-size: 0.85rem;
  color: var(--text2);
  line-height: 1.6;
}
body.light .info-box { background: rgba(91,184,212,0.07); color: var(--muted); }

.warn-box {
  background: rgba(232,194,58,0.08);
  border: 1px solid rgba(232,194,58,0.20);
  border-left: 3px solid var(--gold);
  border-radius: 0 12px 12px 0;
  padding: 14px 16px;
  margin: 16px 0;
  font-size: 0.85rem;
  color: var(--text2);
  line-height: 1.6;
}
body.light .warn-box { color: var(--muted); }

/* Source link */
.source-link {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 0.75rem; color: var(--cyan);
  text-decoration: none; margin-top: 12px;
  padding: 5px 10px; border-radius: 8px;
  background: rgba(91,184,212,0.08);
  border: 1px solid rgba(91,184,212,0.18);
  transition: background 0.18s;
}
.source-link:hover { background: rgba(91,184,212,0.15); }
body.light .source-link { background: rgba(91,184,212,0.10); }

/* Number/stat highlight */
.stat-highlight {
  display: inline-block;
  font-family: 'DM Serif Display', serif; font-style: italic;
  font-size: 2rem; line-height: 1;
  background: linear-gradient(90deg, var(--rose), var(--cyan));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  margin-right: 6px;
}

/* Checklist */
.checklist { list-style: none; margin: 14px 0; display: flex; flex-direction: column; gap: 8px; }
.checklist li {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 0.88rem; color: var(--text2); line-height: 1.55;
}
body.light .checklist li { color: var(--muted); }
.checklist li::before {
  content: '✓'; color: var(--cyan); font-weight: 700;
  font-size: 0.85rem; margin-top: 1px; flex-shrink: 0;
}

/* Grid */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }

/* ══════════════════════════
   BUTTONS
══════════════════════════ */
.btn-primary {
  display: inline-flex; align-items: center; gap: 7px;
  background: linear-gradient(135deg, var(--rose), #b8449a);
  color: #fff;
  font-family: 'DM Sans', sans-serif; font-size: 0.90rem; font-weight: 700;
  padding: 13px 22px; border-radius: 12px; border: none;
  cursor: pointer; text-decoration: none;
  transition: transform 0.22s cubic-bezier(.34,1.56,.64,1), box-shadow 0.2s;
  box-shadow: 0 4px 20px rgba(232,124,195,0.30);
  white-space: nowrap;
}
.btn-primary:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 10px 30px rgba(232,124,195,0.42); }

.btn-ghost {
  display: inline-flex; align-items: center; gap: 7px;
  background: rgba(255,255,255,0.06);
  color: var(--text);
  font-family: 'DM Sans', sans-serif; font-size: 0.90rem; font-weight: 600;
  padding: 13px 22px; border-radius: 12px;
  border: 1px solid var(--border); cursor: pointer; text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
}
.btn-ghost:hover { background: rgba(255,255,255,0.10); border-color: rgba(255,255,255,0.16); }
body.light .btn-ghost { background: rgba(0,0,0,0.05); border-color: rgba(0,0,0,0.12); }
body.light .btn-ghost:hover { background: rgba(0,0,0,0.09); }

/* ══════════════════════════
   DIVIDER
══════════════════════════ */
.divider { height: 1px; background: linear-gradient(90deg, transparent, var(--faint), transparent); margin: 10px 0; }
body.light .divider { background: linear-gradient(90deg, transparent, rgba(0,0,0,0.10), transparent); }

/* Section label with line */
.section-label {
  width: 100%; display: flex; align-items: center; gap: 12px;
  margin-bottom: 16px;
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted);
}
.section-label::after { content:''; flex:1; height:1px; background:linear-gradient(90deg,var(--faint),transparent); }
body.light .section-label::after { background: linear-gradient(90deg,rgba(0,0,0,0.10),transparent); }

/* ══════════════════════════
   FORMS
══════════════════════════ */
.form-input {
  flex: 1; min-width: 180px;
  background: var(--s3);
  border: 1px solid var(--border);
  border-radius: 12px; padding: 13px 16px;
  font-family: 'DM Sans', sans-serif; font-size: 0.88rem;
  color: var(--text); outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.form-input::placeholder { color: var(--muted2); }
.form-input:focus { border-color: rgba(232,124,195,0.50); box-shadow: 0 0 0 3px rgba(232,124,195,0.09); }
body.light .form-input { background: #fff; border-color: rgba(0,0,0,0.12); color: var(--text); }
body.light .form-input::placeholder { color: var(--muted2); }
body.light .form-input:focus { border-color: rgba(232,124,195,0.45); }

/* ══════════════════════════
   BREADCRUMB
══════════════════════════ */
.breadcrumb {
  display: flex; align-items: center; gap: 6px;
  font-size: 0.75rem; color: var(--muted); margin-bottom: 28px; flex-wrap: wrap;
}
.breadcrumb a { color: var(--muted); text-decoration: none; transition: color 0.18s; }
.breadcrumb a:hover { color: var(--rose); }
.breadcrumb span { opacity: 0.4; }

/* ══════════════════════════
   NEWSLETTER BAR
══════════════════════════ */
.nl-bar {
  background: linear-gradient(135deg, rgba(232,124,195,0.10), rgba(91,184,212,0.07));
  border: 1px solid rgba(232,124,195,0.18);
  border-radius: 20px; padding: 28px 28px 24px;
  margin-top: 48px; text-align: center;
  position: relative; overflow: hidden;
}
body.light .nl-bar { background: linear-gradient(135deg, rgba(232,124,195,0.08), rgba(91,184,212,0.05)); }
.nl-bar::before {
  content:''; position:absolute; top:0;left:0;right:0; height:2px;
  background: linear-gradient(90deg, var(--rose), var(--cyan));
}
.nl-bar h3 { font-family:'DM Serif Display',serif; font-style:italic; font-size:1.3rem; color:var(--text); margin-bottom:6px; }
.nl-bar p { font-size:0.85rem; color:var(--muted); margin-bottom:18px; }
.nl-form { display:flex; gap:8px; max-width:400px; margin:0 auto; flex-wrap:wrap; justify-content:center; }
.nl-success { display:none; font-size:0.88rem; color:var(--cyan); margin-top:10px; font-weight:500; }

/* ══════════════════════════
   SOCIAL CARDS
══════════════════════════ */
.social-card {
  display:flex; align-items:center; gap:13px;
  background: var(--s2); border:1px solid var(--border);
  border-radius:14px; padding:13px 15px;
  text-decoration:none; color:var(--text);
  transition: background 0.18s, border-color 0.18s, transform 0.18s;
}
body.light .social-card { background: var(--s1); }
.social-card:hover { background:var(--s3); transform:translateY(-3px); border-color:rgba(232,124,195,0.22); }
body.light .social-card:hover { background: var(--s2); }
.soc-icon { width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0; }
.i-tiktok  { background:rgba(232,124,195,0.12); color:var(--rose); }
.i-insta   { background:rgba(220,130,200,0.10); color:#f0a0d8; }
.i-youtube { background:rgba(255,70,70,0.10);   color:#ff7070; }
.i-x       { background:rgba(240,238,255,0.07); color:#b8b4d8; }
.i-news    { background:rgba(91,184,212,0.10);  color:var(--cyan); }
.soc-info { flex:1; }
.soc-name { font-size:0.85rem; font-weight:600; color:var(--text); }
.soc-handle { font-size:0.72rem; color:var(--muted); }
.soc-arr { color:var(--muted); font-size:11px; flex-shrink:0; transition:transform 0.18s, color 0.18s; }
.social-card:hover .soc-arr { transform:translateX(3px); color:var(--rose); }

/* ══════════════════════════
   FOOTER
══════════════════════════ */
footer {
  text-align:center; padding:44px 0 0;
  border-top:1px solid var(--faint); margin-top:48px;
}
body.light footer { border-top-color: rgba(0,0,0,0.10); }
.footer-waffle { font-size:2rem; display:block; margin-bottom:10px; animation:float 4s ease-in-out infinite; }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} }
.slogan { font-family:'DM Serif Display',serif; font-style:italic; font-size:1.05rem; color:var(--muted); margin-bottom:5px; }
.slogan em { font-style:normal; background:linear-gradient(90deg,var(--rose),var(--cyan)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.footer-sub { font-size:0.70rem; color:var(--muted2); letter-spacing:0.05em; margin-bottom:14px; }
.footer-links { display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; padding-bottom:28px; }
.footer-link {
  background:none; border:none; cursor:pointer;
  font-family:'DM Sans',sans-serif; font-size:0.72rem; color:var(--muted);
  text-decoration:underline; text-underline-offset:3px; text-decoration-color:transparent;
  transition:color 0.18s, text-decoration-color 0.18s;
}
.footer-link:hover { color:var(--rose); text-decoration-color:var(--rose); }
.footer-sep { font-size:0.60rem; color:var(--muted2); opacity:0.5; }

/* ══════════════════════════
   MODAL
══════════════════════════ */
.modal-overlay {
  display:none; position:fixed; inset:0;
  background:rgba(4,3,14,0.80); backdrop-filter:blur(12px);
  z-index:300; align-items:flex-end; justify-content:center;
}
.modal-overlay.open { display:flex; animation:overlayIn 0.2s ease both; }
@keyframes overlayIn { from{opacity:0} to{opacity:1} }
.modal-box {
  background:var(--s2); border:1px solid rgba(232,124,195,0.10);
  border-radius:26px 26px 0 0; width:100%; max-width:700px;
  max-height:90vh; overflow-y:auto;
  padding:8px 26px 52px; position:relative;
  animation:sheetUp 0.3s cubic-bezier(0.32,0.72,0,1) both;
}
body.light .modal-box { background: var(--s1); }
@keyframes sheetUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
.modal-handle { width:36px;height:4px;background:var(--faint);border-radius:2px;margin:14px auto 20px; }
.modal-close {
  position:absolute; top:16px; right:16px;
  background:var(--s3); border:none; color:var(--muted);
  font-size:12px; width:28px; height:28px; border-radius:50%;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background 0.18s, color 0.18s;
}
.modal-close:hover { background:rgba(232,124,195,0.16); color:var(--rose); }
.legal-header { text-align:center; margin-bottom:24px; padding-bottom:18px; border-bottom:1px solid var(--faint); }
.legal-icon { font-size:26px; margin-bottom:8px; display:block; }
.legal-header h2 { font-family:'DM Serif Display',serif; font-style:italic; font-size:1.45rem; font-weight:400; color:var(--text); margin-bottom:3px; }
.legal-updated { font-size:0.70rem; color:var(--muted); }
.legal-section { margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid var(--faint); }
.legal-section:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
.legal-section h3 { font-size:0.70rem; font-weight:700; letter-spacing:0.10em; text-transform:uppercase; color:var(--rose); margin-bottom:7px; }
.legal-section p { font-size:0.83rem; line-height:1.65; color:var(--muted); margin-bottom:5px; }
.legal-section p:last-child { margin-bottom:0; }
.legal-section p strong { color:var(--text); font-weight:500; }
.legal-section a { color:var(--cyan); text-decoration:none; }
.legal-section a:hover { text-decoration:underline; }

/* ══════════════════════════
   COOKIE BANNER
══════════════════════════ */
.cookie-banner {
  display:none; position:fixed; bottom:18px; left:50%; transform:translateX(-50%);
  width:calc(100% - 28px); max-width:540px;
  background:var(--s2); border:1px solid rgba(232,124,195,0.16);
  border-radius:18px; padding:18px 20px; z-index:400;
  box-shadow:0 20px 60px rgba(0,0,0,0.50);
}
body.light .cookie-banner { background: var(--s1); box-shadow:0 16px 50px rgba(0,0,0,0.12); }
.cookie-banner.visible { display:block; animation:bannerUp 0.4s cubic-bezier(0.32,0.72,0,1) both; }
@keyframes bannerUp { from{transform:translateX(-50%) translateY(120%);opacity:0} to{transform:translateX(-50%) translateY(0);opacity:1} }
.cookie-top { display:flex; align-items:flex-start; gap:11px; margin-bottom:14px; }
.cookie-emoji { font-size:20px; flex-shrink:0; margin-top:1px; }
.cookie-text h4 { font-size:0.86rem; font-weight:600; color:var(--text); margin-bottom:3px; }
.cookie-text p { font-size:0.77rem; color:var(--muted); line-height:1.5; }
.cookie-text a { color:var(--cyan); text-decoration:none; cursor:pointer; }
.cookie-actions { display:flex; gap:8px; flex-wrap:wrap; }
.btn-cookie-ok {
  flex:1; min-width:110px;
  background:linear-gradient(135deg,var(--rose),#b8449a); color:#fff;
  font-family:'DM Sans',sans-serif; font-size:0.82rem; font-weight:700;
  padding:9px 14px; border-radius:9px; border:none; cursor:pointer;
  box-shadow:0 4px 14px rgba(232,124,195,0.28); transition:transform 0.2s;
}
.btn-cookie-ok:hover { transform:translateY(-2px); }
.btn-cookie-no {
  flex:1; min-width:90px;
  background:var(--s3); color:var(--muted);
  font-family:'DM Sans',sans-serif; font-size:0.82rem; font-weight:600;
  padding:9px 14px; border-radius:9px; border:1px solid var(--border); cursor:pointer;
  transition:background 0.2s, color 0.2s;
}
.btn-cookie-no:hover { background:var(--s4); color:var(--text); }

/* ══════════════════════════
   LIVE DOT / ANIMATIONS
══════════════════════════ */
.live-dot { width:6px;height:6px;border-radius:50%;background:var(--rose);box-shadow:0 0 6px var(--rose);animation:blink 2s infinite;flex-shrink:0; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0.2} }
@keyframes fadeUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
.anim { animation:fadeUp 0.6s ease both; }

/* ══════════════════════════
   RESPONSIVE
══════════════════════════ */
@media (max-width:640px) {
  .nav-center { display:none; }
  .burger { display:flex; }
  .grid-2, .grid-3 { grid-template-columns:1fr; }
  .content-card { padding:22px 18px; }
}
@media (min-width:641px) and (max-width:820px) {
  .nav-center a { font-size:0.73rem; padding:5px 7px; }
  .grid-3 { grid-template-columns:1fr 1fr; }
}

/* ═══════════════════════════════════════
   WAFFY — no circle clip
═══════════════════════════════════════ */
.waffy-avatar {
  width: 38px; height: 38px;
  object-fit: contain;
  border-radius: 0 !important;
  background: transparent;
}
.waffy-bubble img {
  width: 38px; height: 38px;
  object-fit: contain;
  border-radius: 0 !important;
}

/* ═══════════════════════════════════════
   PRINT CSS
═══════════════════════════════════════ */
@media print {
  /* Hide UI chrome */
  #ww-nav, #ww-nav-placeholder,
  #waffy-chat, .ww-disclaimer,
  .cookie-banner, .modal-overlay,
  .back-to-top, .progress-bar,
  .ww-share-bar, .nl-bar,
  .read-mode-btn, .level-toggle,
  .toc-sidebar, .ww-progress-indicator,
  .btn-primary, .btn-ghost,
  .nav-cta, footer, #ww-footer-placeholder,
  .see-also { display: none !important; }

  /* Reset background/colors */
  body { background: #fff !important; color: #111 !important; }
  .page { max-width: 100% !important; padding: 0 !important; }

  /* Content cards */
  .content-card {
    background: transparent !important;
    border: 1px solid #ddd !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    page-break-inside: avoid;
    margin-bottom: 16pt !important;
    padding: 12pt !important;
  }

  /* Typography */
  h1, h2, h3 { color: #111 !important; font-size: 14pt !important; }
  p, li { color: #333 !important; font-size: 10pt !important; line-height: 1.5 !important; }
  .display { font-size: 18pt !important; }

  /* Tables */
  table { border-collapse: collapse !important; width: 100% !important; }
  th, td { border: 1px solid #bbb !important; padding: 6pt 8pt !important; color: #111 !important; font-size: 9pt !important; }
  th { background: #f5f5f5 !important; }

  /* Links — show URL */
  a[href]::after { content: " (" attr(href) ")"; font-size: 8pt; color: #666; }
  .source-pill::after, .src-link::after { display: none; }

  /* Tax badges */
  .tax-badge { border: 1px solid #999 !important; background: #f5f5f5 !important; color: #333 !important; }

  /* Source blocks */
  .source-block { border-top: 1px solid #ddd !important; padding-top: 8pt !important; }

  /* Page breaks */
  .toc-target { page-break-before: auto; }
  h3 { page-break-after: avoid; }

  /* Show WW branding */
  body::before {
    content: "WealthWaffle — wealthwaffle.be — Contenu éducatif uniquement, non agréé FSMA";
    display: block;
    font-size: 8pt;
    color: #999;
    border-bottom: 1px solid #ddd;
    padding-bottom: 6pt;
    margin-bottom: 16pt;
  }
}


/* ═══ WW COMPONENTS — Cards, Quiz, Calculator, Forms ═══ */

/* ═══════════════════════════════════════
   WEALTHWAFFLE v2 — Interactive Layer
   Adds on top of ww.css
═══════════════════════════════════════ */

/* ── Reading progress bar ── */
.progress-bar {
  position: fixed; top: 60px; left: 0; right: 0;
  height: 3px; z-index: 99;
  background: transparent;
  pointer-events: none;
}
.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--rose), var(--cyan));
  width: 0%;
  transition: width 0.1s linear;
  box-shadow: 0 0 8px rgba(232,124,195,0.5);
}

/* ── TOC — Table of contents sticky ── */
.toc-sidebar {
  position: fixed;
  top: 90px;
  right: max(16px, calc(50% - 490px));
  width: 180px;
  z-index: 50;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.toc-sidebar a {
  font-size: 0.72rem;
  color: var(--muted2);
  text-decoration: none;
  padding: 5px 10px;
  border-left: 2px solid var(--faint);
  transition: color 0.2s, border-color 0.2s, padding-left 0.2s;
  line-height: 1.3;
}
.toc-sidebar a:hover { color: var(--text); border-color: var(--muted); }
.toc-sidebar a.toc-active { color: var(--rose); border-color: var(--rose); padding-left: 14px; font-weight: 600; }
body.light .toc-sidebar a { color: var(--muted2); }
body.light .toc-sidebar a.toc-active { color: var(--rose); }
@media (max-width: 1100px) { .toc-sidebar { display: none; } }

/* ── Accordions ── */
.accordion {
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 16px;
  margin-bottom: 10px;
  overflow: hidden;
  transition: box-shadow 0.2s;
}
body.light .accordion { background: var(--s1); }
.accordion.open { box-shadow: 0 4px 24px rgba(0,0,0,0.15); }
.accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  cursor: pointer;
  user-select: none;
  gap: 12px;
}
.accordion-header:hover { background: rgba(255,255,255,0.025); }
body.light .accordion-header:hover { background: rgba(0,0,0,0.025); }
.accordion-title {
  display: flex; align-items: center; gap: 10px;
  font-weight: 600; font-size: 0.92rem; color: var(--text);
}
.accordion-icon {
  font-size: 1.2rem; flex-shrink: 0;
}
.accordion-badge {
  font-size: 0.70rem; font-weight: 700;
  padding: 3px 8px; border-radius: 20px;
  background: rgba(91,184,212,0.12); color: var(--cyan);
  flex-shrink: 0;
}
.accordion-chevron {
  width: 20px; height: 20px;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(45deg);
  transition: transform 0.25s, border-color 0.25s;
  flex-shrink: 0;
  margin-right: 2px;
}
.accordion.open .accordion-chevron {
  transform: rotate(-135deg);
  border-color: var(--rose);
}
.accordion-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s cubic-bezier(0.4,0,0.2,1);
}
.accordion.open .accordion-body { max-height: 2000px; }
.accordion-content {
  padding: 0 20px 20px;
  border-top: 1px solid var(--faint);
}
.accordion-content p { font-size:0.88rem; color:var(--text2); line-height:1.68; margin-bottom:8px; }
.accordion-content p:last-child { margin-bottom:0; }
.accordion-content strong { color:var(--text); font-weight:600; }
body.light .accordion-content p { color: var(--muted); }

/* ── Tax code badge ── */
.tax-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(208,206,238,0.10);
  border: 1px solid rgba(208,206,238,0.22);
  color: var(--slate);
  cursor: pointer;
  margin-left: 6px;
  vertical-align: middle;
  transition: background 0.2s;
  white-space: nowrap;
}
.tax-badge:hover { background: rgba(208,206,238,0.18); }

/* Tooltip */
.tax-tooltip {
  position: fixed;
  z-index: 500;
  background: var(--s3);
  border: 1px solid rgba(208,206,238,0.25);
  border-radius: 12px;
  padding: 12px 14px;
  max-width: 280px;
  font-size: 0.80rem;
  color: var(--text2);
  line-height: 1.5;
  box-shadow: 0 8px 32px rgba(0,0,0,0.35);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s;
}
.tax-tooltip.visible { opacity: 1; }
.tax-tooltip strong { color: var(--slate); display: block; margin-bottom: 3px; font-size: 0.82rem; }
body.light .tax-tooltip { background: var(--s2); }

/* ── Calculators ── */
.calculator {
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 24px 22px;
  margin: 24px 0;
  position: relative;
  overflow: hidden;
}
body.light .calculator { background: var(--s1); }
.calculator::before {
  content: '';
  position: absolute; top:0; left:0; right:0; height:2px;
  background: linear-gradient(90deg, var(--rose), var(--cyan));
}
.calculator-title {
  font-family: 'DM Serif Display', serif;
  font-style: italic;
  font-size: 1.1rem;
  color: var(--text);
  margin-bottom: 16px;
  display: flex; align-items: center; gap: 8px;
}
.calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
@media (max-width: 500px) { .calc-grid { grid-template-columns: 1fr; } }
.calc-field label {
  display: block;
  font-size: 0.72rem; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 6px;
}
.calc-field input, .calc-field select {
  width: 100%;
  background: var(--s3);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 13px;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.90rem;
  color: var(--text);
  outline: none;
  transition: border-color 0.2s;
  -webkit-appearance: none;
}
.calc-field input:focus, .calc-field select:focus {
  border-color: rgba(232,124,195,0.45);
}
body.light .calc-field input,
body.light .calc-field select { background: #fff; border-color: rgba(0,0,0,0.12); }

.calc-result {
  background: linear-gradient(135deg, rgba(232,124,195,0.08), rgba(91,184,212,0.05));
  border: 1px solid rgba(232,124,195,0.15);
  border-radius: 14px;
  padding: 16px 18px;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 10px;
}
.calc-result-label { font-size: 0.80rem; color: var(--muted); }
.calc-result-value {
  font-family: 'DM Serif Display', serif;
  font-style: italic;
  font-size: 1.6rem;
  background: linear-gradient(90deg, var(--rose), var(--cyan));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
}
.calc-btn {
  width: 100%;
  background: linear-gradient(135deg, var(--rose), #b8449a);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.86rem; font-weight: 700;
  padding: 11px; border-radius: 10px;
  border: none; cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  margin-top: 12px;
  box-shadow: 0 3px 14px rgba(232,124,195,0.25);
}
.calc-btn:hover { transform: translateY(-2px); box-shadow: 0 7px 22px rgba(232,124,195,0.38); }

/* ── Animated counters ── */
.stat-counter {
  display: inline-block;
  font-family: 'DM Serif Display', serif;
  font-style: italic;
}

/* ── Quiz ── */
.quiz-section {
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 28px 24px;
  margin-top: 40px;
}
body.light .quiz-section { background: var(--s1); }
.quiz-title {
  font-family: 'DM Serif Display', serif;
  font-style: italic;
  font-size: 1.15rem;
  color: var(--text);
  margin-bottom: 6px;
}
.quiz-subtitle { font-size: 0.82rem; color: var(--muted); margin-bottom: 20px; }
.quiz-question {
  display: none;
  animation: fadeUp 0.35s ease both;
}
.quiz-question.active { display: block; }
.quiz-q-text {
  font-size: 0.95rem; font-weight: 600; color: var(--text);
  margin-bottom: 14px; line-height: 1.5;
}
.quiz-options { display: flex; flex-direction: column; gap: 8px; }
.quiz-option {
  background: var(--s3);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 0.86rem;
  color: var(--text2);
  cursor: pointer;
  transition: background 0.18s, border-color 0.18s, transform 0.15s;
  text-align: left;
}
.quiz-option:hover { background: var(--s4); border-color: rgba(232,124,195,0.25); transform: translateX(3px); }
.quiz-option.correct { background: rgba(126,200,160,0.12); border-color: rgba(126,200,160,0.4); color: #7EC8A0; }
.quiz-option.wrong   { background: rgba(232,124,195,0.10); border-color: rgba(232,124,195,0.35); color: #E87CC3; }
.quiz-feedback {
  display: none;
  font-size: 0.84rem; color: var(--muted);
  margin-top: 10px; padding: 12px 14px;
  background: var(--s3); border-radius: 10px;
  line-height: 1.55;
}
.quiz-feedback.show { display: block; }
.quiz-next {
  margin-top: 14px;
  display: none;
}
.quiz-next.show { display: block; }
.quiz-progress {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 18px;
}
.quiz-dots { display: flex; gap: 5px; }
.quiz-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--faint); transition: background 0.2s;
}
.quiz-dot.done { background: var(--cyan); }
.quiz-dot.current { background: var(--rose); }
.quiz-counter { font-size: 0.72rem; color: var(--muted); margin-left: auto; }
.quiz-result {
  display: none;
  text-align: center; padding: 20px 0;
  animation: fadeUp 0.4s ease both;
}
.quiz-result.show { display: block; }
.quiz-score {
  font-family: 'DM Serif Display', serif;
  font-style: italic;
  font-size: 2.2rem;
  background: linear-gradient(90deg, var(--rose), var(--cyan));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 8px;
}
.quiz-score-msg { font-size: 0.88rem; color: var(--muted); margin-bottom: 16px; }

/* ── Questionnaire intro ── */
.questionnaire-wrap {
  position: relative;
  background: var(--s1);
  border: 1px solid var(--border);
  border-radius: 24px;
  padding: 32px 28px;
  max-width: 580px;
  margin: 0 auto 48px;
  overflow: hidden;
}
body.light .questionnaire-wrap { background: var(--s2); }
.questionnaire-wrap::before {
  content: '';
  position: absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, var(--rose), var(--cyan));
}
.q-step { display: none; animation: fadeUp 0.35s ease both; }
.q-step.active { display: block; }
.q-step-emoji { font-size: 2.2rem; margin-bottom: 12px; display: block; }
.q-step-title { font-family: 'DM Serif Display', serif; font-style: italic; font-size: 1.35rem; color: var(--text); margin-bottom: 6px; line-height: 1.3; }
.q-step-sub { font-size: 0.84rem; color: var(--muted); margin-bottom: 22px; line-height: 1.5; }
.q-choices { display: flex; flex-direction: column; gap: 9px; }
.q-choice {
  background: var(--s3);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px 18px;
  cursor: pointer;
  display: flex; align-items: center; gap: 12px;
  transition: background 0.18s, border-color 0.2s, transform 0.15s;
  text-align: left;
}
.q-choice:hover { background: var(--s4); border-color: rgba(232,124,195,0.3); transform: translateX(4px); }
.q-choice-icon { font-size: 1.3rem; flex-shrink: 0; }
.q-choice-text { flex: 1; }
.q-choice-label { font-size: 0.88rem; font-weight: 600; color: var(--text); display: block; margin-bottom: 2px; }
.q-choice-sub { font-size: 0.75rem; color: var(--muted); }
.q-choice-arrow { color: var(--muted); font-size: 11px; flex-shrink: 0; transition: transform 0.18s, color 0.18s; }
.q-choice:hover .q-choice-arrow { transform: translateX(3px); color: var(--rose); }
.q-progress-bar {
  height: 3px;
  background: var(--faint);
  border-radius: 2px;
  margin-bottom: 24px;
  overflow: hidden;
}
.q-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--rose), var(--cyan));
  border-radius: 2px;
  transition: width 0.35s ease;
}
.q-result {
  display: none;
  animation: fadeUp 0.4s ease both;
  text-align: center;
}
.q-result.show { display: block; }
.q-result-tag {
  display: inline-block;
  font-size: 0.70rem; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  padding: 4px 12px; border-radius: 20px;
  margin-bottom: 12px;
}
.q-result-title { font-family: 'DM Serif Display', serif; font-style: italic; font-size: 1.4rem; color: var(--text); margin-bottom: 8px; }
.q-result-desc { font-size: 0.84rem; color: var(--muted); max-width: 400px; margin: 0 auto 20px; line-height: 1.6; }
.q-restart { background: none; border: 1px solid var(--faint); color: var(--muted); font-family: 'DM Sans', sans-serif; font-size: 0.78rem; padding: 7px 14px; border-radius: 8px; cursor: pointer; margin-top: 10px; transition: border-color 0.2s, color 0.2s; }
.q-restart:hover { border-color: var(--muted); color: var(--text); }

/* ── Scroll reveal ── */
.reveal {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
/* Animation activée uniquement si JS a chargé et déclaré le support */
.js-reveal-ready .reveal {
  opacity: 0;
  transform: translateY(16px);
}
.js-reveal-ready .reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }

/* ── Comparison bar ── */
.compare-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 8px 0;
  font-size: 0.82rem;
}
.compare-bar-label { width: 140px; color: var(--muted); flex-shrink: 0; text-align: right; font-size: 0.78rem; }
.compare-bar-track {
  flex: 1;
  height: 8px;
  background: var(--faint);
  border-radius: 4px;
  overflow: hidden;
}
.compare-bar-fill {
  height: 100%;
  border-radius: 4px;
  width: 0%;
  transition: width 1s cubic-bezier(0.4,0,0.2,1);
}
.compare-bar-value { width: 60px; color: var(--text2); font-weight: 600; font-size: 0.78rem; }


/* ═══════════════════════════════════════
   LEVEL SYSTEM — débutant/confirmé/expert
═══════════════════════════════════════ */

/* Toggle in nav */
.level-toggle {
  display: flex;
  align-items: center;
  gap: 3px;
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 3px;
}
body.light .level-toggle { background: var(--s1); }

.level-pill {
  font-size: 0.71rem;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 9px;
  border: 1px solid transparent;
  background: none;
  color: var(--muted);
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
  font-family: 'DM Sans', sans-serif;
}
.level-pill:hover { color: var(--text); background: rgba(255,255,255,0.06); }
body.light .level-pill:hover { background: rgba(0,0,0,0.05); }
.level-pill-active { font-weight: 700; }

/* Level blocks */
.level-hidden { display: none !important; }
.level-visible { display: block; animation: fadeUp 0.3s ease both; }

/* Level content styling */
[data-level="debutant"] .level-badge { background: rgba(126,200,160,0.12); color: #7EC8A0; }
[data-level="avance"] .level-badge { background: rgba(91,184,212,0.12); color: #5BB8D4; }
[data-level="expert"]   .level-badge { background: rgba(201,184,255,0.12); color: #c9b8ff; }

.level-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 20px;
  margin-bottom: 10px;
}

/* Section that holds multiple level variants */
.level-section { position: relative; margin-bottom: 24px; }

/* Adjacent level hints */
.level-hint {
  margin-top: 10px;
}
.level-hint-inner {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.level-hint-btn {
  font-size: 0.72rem;
  color: var(--muted);
  background: none;
  border: 1px solid var(--faint);
  border-radius: 8px;
  padding: 5px 11px;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  transition: color 0.18s, border-color 0.18s;
}
.level-hint-btn:hover { color: var(--rose); border-color: rgba(232,124,195,0.35); }

/* Back-to-top button */
.back-to-top {
  position: fixed;
  bottom: 80px;
  left: 20px;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--s3);
  border: 1px solid var(--border);
  color: var(--muted);
  font-size: 16px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s, transform 0.2s, background 0.2s;
  z-index: 90;
  box-shadow: 0 4px 16px rgba(0,0,0,0.2);
}
.back-to-top.visible { opacity: 1; pointer-events: auto; }
.back-to-top:hover { background: var(--s4); transform: translateY(-3px); color: var(--rose); }

/* See also links */
.see-also {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--faint);
}
.see-also-label { font-size: 0.70rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); width: 100%; margin-bottom: 2px; }
.see-also-link {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 0.80rem; font-weight: 600;
  color: var(--text2); text-decoration: none;
  padding: 7px 13px; border-radius: 10px;
  background: var(--s2); border: 1px solid var(--border);
  transition: background 0.18s, border-color 0.18s, transform 0.15s;
}
.see-also-link:hover { background: var(--s3); border-color: rgba(232,124,195,0.25); transform: translateY(-2px); }
body.light .see-also-link { background: var(--s1); }
body.light .see-also-link:hover { background: var(--s2); }

/* Glossary tooltip */
.gloss-term {
  border-bottom: 1px dashed var(--cyan);
  cursor: help;
  color: var(--cyan);
}

/* Checklist with level */
.step-list { display: flex; flex-direction: column; gap: 12px; margin: 14px 0; }
.step-item {
  display: flex; align-items: flex-start; gap: 14px;
  background: var(--s3); border-radius: 14px; padding: 14px 16px;
}
.step-num {
  width: 28px; height: 28px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 0.82rem; flex-shrink: 0;
  background: rgba(232,124,195,0.15); color: var(--rose);
}
.step-text { flex: 1; font-size: 0.86rem; color: var(--text2); line-height: 1.55; }
.step-text strong { color: var(--text); }
body.light .step-text { color: var(--muted); }

/* Full-width table responsive */
.table-wrap { overflow-x: auto; margin: 14px 0; }
.table-wrap table { width: 100%; border-collapse: collapse; font-size: 0.82rem; min-width: 500px; }
.table-wrap th { text-align: left; padding: 10px 12px; color: var(--muted); font-weight: 600; border-bottom: 2px solid var(--faint); }
.table-wrap td { padding: 9px 12px; border-bottom: 1px solid var(--faint); color: var(--text2); }
.table-wrap tr:last-child td { border-bottom: none; }
body.light .table-wrap td { color: var(--muted); }

@media (max-width: 640px) {
  .level-pill { font-size: 0.65rem; padding: 4px 7px; }
  .back-to-top { bottom: 90px; left: 20px; }
}

/* ── Source modal button ── */
.src-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px; height: 22px;
  border-radius: 6px;
  background: rgba(91,184,212,0.10);
  border: 1px solid rgba(91,184,212,0.20);
  color: var(--cyan);
  font-size: 13px;
  cursor: pointer;
  vertical-align: middle;
  margin-left: 5px;
  transition: background 0.18s, transform 0.15s;
  text-decoration: none;
  flex-shrink: 0;
  line-height: 1;
}
.src-btn:hover { background: rgba(91,184,212,0.22); transform: scale(1.15); }

/* Sources panel (bottom sheet variant) */
.sources-panel {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 350;
  background: var(--s2);
  border-top: 1px solid rgba(91,184,212,0.18);
  border-radius: 22px 22px 0 0;
  padding: 8px 24px 40px;
  max-height: 60vh;
  overflow-y: auto;
  animation: sheetUp 0.28s cubic-bezier(0.32,0.72,0,1) both;
  box-shadow: 0 -8px 40px rgba(0,0,0,0.30);
}
body.light .sources-panel { background: var(--s1); box-shadow: 0 -8px 40px rgba(0,0,0,0.10); }
.sources-panel.open { display: block; }
.sources-handle { width:36px;height:4px;background:var(--faint);border-radius:2px;margin:14px auto 18px; }
.sources-title {
  font-size: 0.70rem; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--muted);
  margin-bottom: 14px;
}
.sources-list { display: flex; flex-direction: column; gap: 8px; }
.source-item {
  display: flex; align-items: flex-start; gap: 10px;
  background: var(--s3); border-radius: 12px; padding: 11px 14px;
  text-decoration: none;
  transition: background 0.18s;
}
body.light .source-item { background: var(--s2); }
.source-item:hover { background: var(--s4); }
.source-item-icon { font-size: 1rem; flex-shrink: 0; margin-top: 1px; }
.source-item-info { flex: 1; }
.source-item-label { font-size: 0.83rem; font-weight: 600; color: var(--text); display: block; margin-bottom: 2px; }
.source-item-url { font-size: 0.73rem; color: var(--cyan); word-break: break-all; }
.sources-overlay {
  display: none;
  position: fixed; inset: 0;
  background: rgba(4,3,14,0.55);
  backdrop-filter: blur(4px);
  z-index: 349;
}
.sources-overlay.open { display: block; }

/* ── Inline source emoji link ── */
.src-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.80rem;
  text-decoration: none;
  opacity: 0.55;
  margin-left: 3px;
  vertical-align: middle;
  transition: opacity 0.18s, transform 0.18s;
  cursor: pointer;
  border-radius: 4px;
  padding: 0 2px;
}
.src-link:hover { opacity: 1; transform: scale(1.2); }

/* Source block at bottom of card — still available but compact */
.source-block {
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid var(--faint);
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.source-block-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted2);
  margin-right: 4px;
}
.source-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.73rem;
  color: var(--cyan);
  background: rgba(91,184,212,0.08);
  border: 1px solid rgba(91,184,212,0.16);
  border-radius: 8px;
  padding: 3px 9px;
  text-decoration: none;
  transition: background 0.18s;
  white-space: nowrap;
}
.source-pill:hover { background: rgba(91,184,212,0.16); }

/* ═══════════════════════════════════════
   WW4 — UX Layer CSS
═══════════════════════════════════════ */

/* ── Disclaimer ── */
.ww-disclaimer {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 350;
  background: rgba(14,12,34,0.95);
  backdrop-filter: blur(8px);
  border-top: 1px solid rgba(208,206,238,0.12);
  padding: 8px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-size: 0.72rem;
  color: var(--muted);
  letter-spacing: 0.02em;
}
body.light .ww-disclaimer { background: rgba(240,238,255,0.95); border-top-color: rgba(0,0,0,0.08); }
.ww-disclaimer-close {
  background: none; border: none; color: var(--muted2);
  cursor: pointer; font-size: 11px; padding: 2px 5px;
  border-radius: 4px; flex-shrink: 0;
  transition: color 0.18s;
}
.ww-disclaimer-close:hover { color: var(--rose); }

/* ── Read mode ── */
.read-mode-btn {
  position: fixed;
  bottom: 56px; right: 20px;
  background: var(--s3);
  border: 1px solid var(--border);
  color: var(--muted);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.72rem; font-weight: 600;
  padding: 7px 12px; border-radius: 10px;
  cursor: pointer; z-index: 90;
  transition: background 0.2s, color 0.2s;
  display: none;
}
@media (max-width: 768px) { .read-mode-btn { display: block; } }
.read-mode-btn:hover { background: var(--s4); color: var(--text); }

body.read-mode nav,
body.read-mode .toc-sidebar,
body.read-mode .ww-share-bar,
body.read-mode .nl-bar,
body.read-mode .see-also,
body.read-mode footer { display: none !important; }
body.read-mode .page { max-width: 640px; }
body.read-mode .content-card { border-radius: 0; border-left: none; border-right: none; border-top: none; background: transparent; padding: 24px 0; }
body.read-mode .read-mode-btn { bottom: 16px; background: var(--rose); color: #fff; display: block; }

/* ── Progress indicator in nav ── */
.ww-progress-indicator {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-left: 8px;
}
.ww-progress-track {
  width: 60px; height: 4px;
  background: var(--faint);
  border-radius: 2px;
  overflow: hidden;
}
.ww-progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--rose), var(--cyan));
  border-radius: 2px;
  transition: width 0.5s ease;
}
.ww-progress-label {
  font-size: 0.68rem;
  color: var(--muted2);
  white-space: nowrap;
}
.toc-sidebar a.toc-read::before {
  content: '✓ ';
  color: var(--cyan);
  font-size: 0.65rem;
}
@media (max-width: 768px) { .ww-progress-indicator { display: none; } }

/* ── Share bar ── */
.ww-share-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 20px 0;
  margin-top: 16px;
  border-top: 1px solid var(--faint);
}
body.light .ww-share-bar { border-top-color: rgba(0,0,0,0.08); }
.ww-share-label {
  font-size: 0.70rem;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--muted);
  margin-right: 4px;
}
.ww-share-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text2);
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 9px;
  padding: 6px 12px;
  text-decoration: none;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  transition: background 0.18s, border-color 0.18s, transform 0.15s;
}
.ww-share-btn:hover { background: var(--s3); border-color: rgba(232,124,195,0.25); transform: translateY(-2px); }
body.light .ww-share-btn { background: var(--s1); }
body.light .ww-share-btn:hover { background: var(--s2); }

/* ── Search ── */
.ww-search-wrap {
  position: relative;
  max-width: 100%;
}
.ww-search-results {
  position: absolute;
  top: calc(100% + 6px);
  left: 0; right: 0;
  background: var(--s2);
  border: 1px solid rgba(232,124,195,0.2);
  border-radius: 14px;
  max-height: 380px;
  overflow-y: auto;
  z-index: 200;
  box-shadow: 0 16px 48px rgba(0,0,0,0.3);
  display: none;
}
body.light .ww-search-results { background: var(--s1); }
.ww-search-results.open { display: block; }
.ww-search-result-item {
  display: block;
  padding: 12px 16px;
  border-bottom: 1px solid var(--faint);
  text-decoration: none;
  color: var(--text);
  transition: background 0.15s;
}
.ww-search-result-item:last-child { border-bottom: none; }
.ww-search-result-item:hover { background: var(--s3); }
.ww-search-result-title { font-size: 0.88rem; font-weight: 600; margin-bottom: 3px; }
.ww-search-result-page { font-size: 0.72rem; color: var(--muted); }
.ww-search-result-excerpt { font-size: 0.78rem; color: var(--muted); line-height: 1.4; margin-top: 2px; }
.ww-search-highlight { color: var(--rose); font-weight: 600; background: rgba(232,124,195,0.12); border-radius: 3px; padding: 0 2px; }
.ww-search-empty { padding: 20px 16px; font-size: 0.85rem; color: var(--muted); text-align: center; }

/* ── Affiliation admin placeholder ── */
.affiliate-slot {
  background: repeating-linear-gradient(45deg, var(--faint), var(--faint) 5px, transparent 5px, transparent 15px);
  border: 2px dashed var(--faint);
  border-radius: 14px;
  padding: 20px;
  text-align: center;
  font-size: 0.82rem;
  color: var(--muted2);
}
.affiliate-slot[data-id] { position: relative; }
.affiliate-slot[data-id]::after {
  content: attr(data-id);
  position: absolute;
  top: 8px; right: 10px;
  font-size: 0.65rem;
  color: var(--muted2);
  font-family: monospace;
}

/* ── Waitlist form ── */
.waitlist-card {
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 32px 28px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
body.light .waitlist-card { background: var(--s1); }
.waitlist-card::before {
  content: '';
  position: absolute; top:0; left:0; right:0; height:2px;
  background: linear-gradient(90deg, var(--rose), var(--cyan));
}
.waitlist-badge {
  display: inline-block;
  font-size: 0.68rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 4px 12px; border-radius: 20px;
  margin-bottom: 14px;
}
.coming-soon-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(232,194,58,0.12);
  border: 1px solid rgba(232,194,58,0.25);
  color: var(--gold);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 16px;
}


/* ═══ WW NAV — Mega-menu, Burger, Waffy, Tables ═══ */

/* ═══════════════════════════════════════
   WEALTHWAFFLE v5 — Mega-nav · Waffy · Tables
═══════════════════════════════════════ */

/* ── Mega-menu nav ── */
#ww-nav {
  position: fixed; top: 0; left: 0; right: 0;
  height: 60px; z-index: 200;
  display: flex; align-items: center; gap: 0;
  padding: 0 24px;
  background: rgba(8,7,23,0.92);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
body.light #ww-nav {
  background: rgba(245,244,255,0.94);
  border-bottom-color: rgba(0,0,0,0.07);
}

.nav-brand {
  font-family: 'DM Serif Display', serif;
  font-style: italic;
  font-size: 1.22rem;
  color: var(--text);
  text-decoration: none;
  letter-spacing: -0.3px;
  flex-shrink: 0;
  margin-right: 16px;
}
.nav-brand em { font-style: normal; color: var(--rose); }

/* Mega menu container */
.nav-mega-wrap {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
}

/* Trigger buttons */
.mega-trigger {
  display: flex; align-items: center; gap: 5px;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.82rem; font-weight: 600;
  color: var(--muted);
  background: none; border: none; cursor: pointer;
  padding: 8px 12px; border-radius: 9px;
  transition: color 0.18s, background 0.18s;
  white-space: nowrap;
}
.mega-trigger:hover, .mega-trigger.active { color: var(--text); background: rgba(255,255,255,0.06); }
body.light .mega-trigger:hover, body.light .mega-trigger.active { background: rgba(0,0,0,0.05); }
.mega-arrow { font-size: 0.65rem; transition: transform 0.2s; }
.mega-trigger.active .mega-arrow { transform: rotate(180deg); }

.nav-link-plain {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.82rem; font-weight: 600;
  color: var(--muted); text-decoration: none;
  padding: 8px 12px; border-radius: 9px;
  transition: color 0.18s, background 0.18s;
  white-space: nowrap;
}
.nav-link-plain:hover { color: var(--text); background: rgba(255,255,255,0.06); }
body.light .nav-link-plain:hover { background: rgba(0,0,0,0.05); }

/* Mega panel dropdown */
.mega-group { position: relative; }
.mega-panel {
  display: none;
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  min-width: 560px;
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 20px;
  box-shadow: 0 24px 64px rgba(0,0,0,0.4);
  z-index: 300;
  gap: 20px;
  animation: fadeUp 0.2s ease both;
}
.mega-panel.open { display: flex; }
body.light .mega-panel { background: var(--s1); box-shadow: 0 16px 48px rgba(0,0,0,0.12); }

.mega-col { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.mega-col-title {
  font-size: 0.65rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--muted2); padding: 0 10px 6px;
}
.mega-col a {
  font-size: 0.82rem; color: var(--text2);
  text-decoration: none; padding: 7px 10px;
  border-radius: 9px;
  transition: background 0.15s, color 0.15s;
  display: block;
}
.mega-col a:hover { background: var(--s3); color: var(--text); }
.mega-col a.active { color: var(--rose); font-weight: 600; }
body.light .mega-col a.active { color: var(--rose); }

/* Nav right */
.nav-right {
  display: flex; align-items: center; gap: 8px;
  margin-left: auto; flex-shrink: 0;
}
.nav-search {
  width: 160px; padding: 6px 12px;
  font-size: 0.78rem; border-radius: 9px;
}
@media (max-width: 960px) { .nav-search { display: none; } }

.nav-cta {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 0.76rem; font-weight: 700;
  background: linear-gradient(135deg, var(--rose), #b8449a);
  color: #fff; text-decoration: none;
  padding: 7px 13px; border-radius: 9px;
  transition: transform 0.2s, box-shadow 0.2s;
  white-space: nowrap;
  box-shadow: 0 3px 12px rgba(232,124,195,0.25);
}
.nav-cta:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(232,124,195,0.38); }

.theme-btn {
  background: none; border: 1px solid var(--border);
  color: var(--muted); font-size: 0.95rem;
  padding: 6px 9px; border-radius: 9px;
  cursor: pointer; transition: background 0.18s;
}
.theme-btn:hover { background: var(--s2); }

/* Burger */
.burger {
  display: none; flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer;
  padding: 6px; border-radius: 8px;
}
.burger span {
  display: block; width: 22px; height: 2px;
  background: var(--muted); border-radius: 2px;
  transition: transform 0.25s, opacity 0.25s;
}
.burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2) { opacity: 0; }
.burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 768px) {
  .nav-mega-wrap { display: none; }
  .burger { display: flex; }
}

/* ── Mobile menu ── */
.mobile-menu {
  display: none;
  flex-direction: column;
  position: fixed;
  top: 60px; left: 0; right: 0; bottom: 0;
  background: var(--bg);
  z-index: 190;
  overflow-y: auto;
  padding: 16px 20px 40px;
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4,0,0.2,1);
}
body.light .mobile-menu { background: var(--light-bg, #f5f4ff); }
.mobile-menu.open { transform: translateX(0); display: flex; }

.mobile-toggles {
  display: flex; flex-direction: column; gap: 8px;
  background: var(--s2); border-radius: 14px; padding: 14px 16px;
  margin-bottom: 12px;
}
body.light .mobile-toggles { background: var(--s1); }
.mobile-toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.mobile-toggle-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); }
.theme-btn-mobile {
  background: var(--s3); border: 1px solid var(--border);
  color: var(--muted); font-family: 'DM Sans',sans-serif;
  font-size: 0.78rem; padding: 6px 12px; border-radius: 9px;
  cursor: pointer;
}

.mobile-profile-group { border-bottom: 1px solid var(--faint); }
.mobile-profile-btn {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  background: none; border: none; font-family: 'DM Sans',sans-serif;
  font-size: 0.88rem; font-weight: 600; color: var(--text);
  padding: 14px 0; cursor: pointer;
}
.mobile-profile-links {
  display: none; flex-direction: column; gap: 2px;
  padding: 0 0 12px 12px;
}
.mobile-profile-links.open { display: flex; }
.mobile-sub-title {
  font-size: 0.65rem; font-weight: 700;
  letter-spacing: 0.09em; text-transform: uppercase;
  color: var(--muted2); padding: 8px 8px 4px;
}
.mobile-profile-links a {
  font-size: 0.85rem; color: var(--text2);
  text-decoration: none; padding: 8px 10px;
  border-radius: 9px; display: block;
}
.mobile-profile-links a:hover { background: var(--s2); color: var(--text); }
.mobile-divider { height: 1px; background: var(--faint); margin: 12px 0; }
.mobile-menu > a {
  font-size: 0.88rem; font-weight: 600; color: var(--text2);
  text-decoration: none; padding: 12px 0;
  border-bottom: 1px solid var(--faint);
  display: block;
}
.mobile-menu > a:hover { color: var(--text); }

/* ── Tables — bordered ── */
table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
th, td { padding: 10px 12px; border: 1px solid var(--faint); text-align: left; vertical-align: top; }
th { font-weight: 600; color: var(--muted); background: rgba(255,255,255,0.02); font-size: 0.76rem; letter-spacing: 0.04em; }
body.light th { background: rgba(0,0,0,0.02); color: var(--muted); }
body.light td { color: var(--muted); }
tr:first-child th:first-child { border-top-left-radius: 10px; }
tr:first-child th:last-child { border-top-right-radius: 10px; }
tbody tr:hover td { background: rgba(255,255,255,0.015); }
body.light tbody tr:hover td { background: rgba(0,0,0,0.015); }

/* ── Footer grid ── */
.footer-nav {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  max-width: 800px;
  margin: 24px auto 28px;
  text-align: left;
}
@media (max-width: 640px) { .footer-nav { grid-template-columns: 1fr 1fr; gap: 16px; } }
.footer-col { display: flex; flex-direction: column; gap: 6px; }
.footer-col-title {
  font-size: 0.68rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--muted2); margin-bottom: 4px;
}
.footer-col a {
  font-size: 0.80rem; color: var(--muted);
  text-decoration: none; transition: color 0.18s;
}
.footer-col a:hover { color: var(--text); }
.footer-disclaimer {
  font-size: 0.70rem; color: var(--muted2);
  max-width: 560px; margin: 12px auto 0;
  line-height: 1.5; text-align: center;
}

/* ── Waffy Chat ── */
#waffy-chat {
  position: fixed; bottom: 24px; right: 20px; z-index: 400;
}
.waffy-bubble {
  width: 56px; height: 56px; border-radius: 50%;
  background: linear-gradient(135deg, var(--rose), #b8449a);
  border: none; cursor: pointer;
  box-shadow: 0 8px 28px rgba(232,124,195,0.4);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem;
  transition: transform 0.25s, box-shadow 0.25s;
  position: relative;
}
.waffy-bubble:hover { transform: translateY(-3px) scale(1.05); box-shadow: 0 14px 40px rgba(232,124,195,0.5); }
.waffy-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; object-position: 50% 50%; }
.waffy-badge {
  position: absolute; top: -3px; right: -3px;
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--rose); color: #fff;
  font-size: 0.62rem; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--bg);
}

.waffy-panel {
  display: none;
  flex-direction: column;
  position: absolute; bottom: 68px; right: 0;
  width: 340px; max-height: 480px;
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,0.4);
  animation: fadeUp 0.25s ease both;
}
body.light .waffy-panel { background: var(--s1); box-shadow: 0 16px 48px rgba(0,0,0,0.12); }
.waffy-panel.open { display: flex; }

.waffy-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 16px;
  background: linear-gradient(135deg, rgba(232,124,195,0.12), rgba(91,184,212,0.06));
  border-bottom: 1px solid var(--faint);
  flex-shrink: 0;
}
.waffy-name { font-size: 0.90rem; font-weight: 700; color: var(--text); display: block; }
.waffy-status { font-size: 0.70rem; color: #7EC8A0; }
.waffy-close { background: none; border: none; color: var(--muted); cursor: pointer; font-size: 14px; padding: 4px; }
.waffy-close:hover { color: var(--text); }

.waffy-messages {
  flex: 1; overflow-y: auto;
  padding: 14px 14px 8px;
  display: flex; flex-direction: column; gap: 10px;
  scroll-behavior: smooth;
}
.waffy-msg { display: flex; flex-direction: column; gap: 6px; max-width: 88%; }
.waffy-msg-bot { align-self: flex-start; }
.waffy-msg-user { align-self: flex-end; }
.waffy-msg-text {
  padding: 10px 13px; border-radius: 14px;
  font-size: 0.83rem; line-height: 1.55; color: var(--text2);
}
.waffy-msg-bot .waffy-msg-text { background: var(--s3); border-bottom-left-radius: 4px; }
.waffy-msg-user .waffy-msg-text { background: linear-gradient(135deg, var(--rose), #b8449a); color: #fff; border-bottom-right-radius: 4px; }
body.light .waffy-msg-bot .waffy-msg-text { background: var(--s2); }
.waffy-links { display: flex; flex-wrap: wrap; gap: 5px; padding-left: 2px; }
.waffy-link {
  font-size: 0.74rem; font-weight: 600; color: var(--cyan);
  text-decoration: none; background: rgba(91,184,212,0.10);
  border: 1px solid rgba(91,184,212,0.20);
  padding: 4px 10px; border-radius: 8px;
  transition: background 0.15s;
}
.waffy-link:hover { background: rgba(91,184,212,0.20); }

/* Typing dots */
.waffy-dots span {
  display: inline-block;
  animation: waffyDot 1.2s infinite;
  font-size: 1.2rem; color: var(--muted);
}
.waffy-dots span:nth-child(2) { animation-delay: 0.2s; }
.waffy-dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes waffyDot { 0%,60%,100%{opacity:0.2;transform:translateY(0)} 30%{opacity:1;transform:translateY(-4px)} }

.waffy-input-wrap {
  display: flex; gap: 6px; padding: 10px 12px;
  border-top: 1px solid var(--faint); flex-shrink: 0;
}
.waffy-input {
  flex: 1; background: var(--s3); border: 1px solid var(--border);
  border-radius: 10px; padding: 9px 12px;
  font-family: 'DM Sans',sans-serif; font-size: 0.84rem; color: var(--text);
  outline: none; min-width: 0;
}
.waffy-input:focus { border-color: rgba(232,124,195,0.45); }
.waffy-send {
  background: linear-gradient(135deg, var(--rose), #b8449a);
  color: #fff; border: none; border-radius: 10px;
  padding: 9px 14px; cursor: pointer; font-size: 0.88rem;
  transition: transform 0.15s;
}
.waffy-send:hover { transform: scale(1.06); }
.waffy-quick-replies {
  display: flex; flex-wrap: wrap; gap: 5px;
  padding: 6px 12px 12px; flex-shrink: 0;
}
.waffy-quick-replies button {
  font-size: 0.73rem; font-weight: 600;
  background: var(--s3); border: 1px solid var(--faint);
  color: var(--muted2); border-radius: 8px;
  padding: 5px 10px; cursor: pointer;
  font-family: 'DM Sans',sans-serif;
  transition: background 0.15s, color 0.15s;
}
.waffy-quick-replies button:hover { background: var(--s4); color: var(--text); }

@media (max-width: 480px) {
  .waffy-panel { width: calc(100vw - 32px); right: -8px; }
  #waffy-chat { right: 16px; bottom: 20px; }
}

/* ── Level system v2 (2 levels only) ── */
.level-toggle {
  display: flex; align-items: center; gap: 3px;
  background: var(--s2); border: 1px solid var(--border);
  border-radius: 12px; padding: 3px;
}
body.light .level-toggle { background: var(--s1); }
.level-pill {
  font-size: 0.72rem; font-weight: 600;
  padding: 5px 11px; border-radius: 9px;
  border: 1px solid transparent;
  background: none; color: var(--muted);
  cursor: pointer; transition: all 0.2s;
  white-space: nowrap; font-family: 'DM Sans',sans-serif;
}
.level-pill:hover { color: var(--text); background: rgba(255,255,255,0.06); }
.level-pill-active { font-weight: 700; }

/* Expert sections inside content cards */
.expert-expand {
  margin-top: 14px;
  border-top: 1px solid var(--faint);
  padding-top: 12px;
}
.expert-expand-btn {
  display: flex; align-items: center; gap: 8px;
  background: none; border: none; cursor: pointer;
  font-family: 'DM Sans',sans-serif; font-size: 0.80rem;
  font-weight: 600; color: var(--muted);
  padding: 4px 0; transition: color 0.18s;
}
.expert-expand-btn:hover { color: var(--cyan); }
.expert-expand-icon { font-size: 0.7rem; transition: transform 0.2s; }
.expert-expand-btn.open .expert-expand-icon { transform: rotate(90deg); }
.expert-body {
  display: none;
  margin-top: 10px;
  background: rgba(201,184,255,0.04);
  border: 1px solid rgba(201,184,255,0.12);
  border-radius: 12px;
  padding: 14px;
  animation: fadeUp 0.25s ease both;
}
.expert-body.show { display: block; }
.expert-body p { font-size: 0.84rem; color: var(--text2); line-height: 1.65; margin-bottom: 8px; }
.expert-body p:last-child { margin-bottom: 0; }
.expert-body ul { padding-left: 16px; display: flex; flex-direction: column; gap: 5px; }
.expert-body li { font-size: 0.83rem; color: var(--text2); line-height: 1.55; }

/* ── Back to top ── */
.back-to-top {
  position: fixed; bottom: 90px; left: 20px;
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--s3); border: 1px solid var(--border);
  color: var(--muted); font-size: 15px;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s, transform 0.2s;
  z-index: 90; box-shadow: 0 4px 16px rgba(0,0,0,0.2);
}
.back-to-top.visible { opacity: 1; pointer-events: auto; }
.back-to-top:hover { background: var(--s4); transform: translateY(-3px); color: var(--rose); }

/* ── Page layout fix with sticky nav ── */
.page { padding-top: 80px; max-width: 720px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
@media (max-width: 768px) { .page { padding-left: 16px; padding-right: 16px; } }

/* Hide mega nav on mobile */
@media (max-width: 768px) { .nav-mega-wrap { display: none !important; } }



/* ═══════════════════════════════════════════════════════════
   WW INFRA — Print button · Page meta · Shortcuts tooltip
═══════════════════════════════════════════════════════════ */

/* ── Print button ── */
.ww-print-btn {
  position: fixed;
  bottom: 96px; right: 20px;
  width: 34px; height: 34px;
  border-radius: 50%;
  background: var(--s2);
  border: 1px solid var(--border);
  color: var(--muted);
  font-size: 0.88rem;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  z-index: 89;
  opacity: 0.55;
  transition: opacity 0.2s, background 0.2s, transform 0.2s;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.ww-print-btn:hover {
  opacity: 1;
  background: var(--s3);
  transform: scale(1.08);
  color: var(--text);
}
/* Tooltip on hover */
.ww-print-btn::after {
  content: 'Imprimer (p)';
  position: absolute;
  right: 40px; top: 50%;
  transform: translateY(-50%);
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 4px 10px;
  font-size: 0.72rem;
  font-family: 'DM Sans', sans-serif;
  color: var(--text2);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
}
.ww-print-btn:hover::after { opacity: 1; }

/* Waffy bubble tooltip for shortcuts */
.waffy-bubble::after {
  content: 'w — ouvrir · / — recherche · Esc — fermer';
  position: absolute;
  right: 66px; bottom: 10px;
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 6px 11px;
  font-size: 0.70rem;
  font-family: 'DM Sans', sans-serif;
  color: var(--muted);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.25s 0.3s;
  z-index: 401;
}
.waffy-bubble:hover::after { opacity: 1; }

/* ── Page meta bar (last updated + report error) ── */
.ww-page-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 10px 0 6px;
  margin-top: 32px;
  border-top: 1px solid var(--faint);
  font-size: 0.70rem;
  color: var(--muted2);
}
.ww-last-updated { letter-spacing: 0.02em; }
.ww-report-error {
  color: var(--muted2);
  text-decoration: none;
  opacity: 0.6;
  transition: opacity 0.18s, color 0.18s;
}
.ww-report-error:hover { opacity: 1; color: var(--rose); }

/* ── Print styles ── */
@media print {
  .ww-print-btn, #waffy-chat, .ww-disclaimer,
  .cookie-banner, .back-to-top, .progress-bar,
  .ww-share-bar, .nl-bar, .see-also,
  #ww-nav-placeholder, #ww-footer-placeholder,
  .level-toggle, .burger, .nav-cta,
  .ww-page-meta .ww-report-error { display: none !important; }
  body { background: #fff !important; color: #111 !important; }
  .page { max-width: 100% !important; padding: 0 16px !important; }
  .content-card {
    background: transparent !important; border: 1px solid #ddd !important;
    border-radius: 0 !important; box-shadow: none !important;
    page-break-inside: avoid; margin-bottom: 14pt !important; padding: 10pt !important;
  }
  h1,h2,h3 { color: #111 !important; }
  th,td { border: 1px solid #bbb !important; padding: 5pt 7pt !important; font-size: 9pt !important; }
  th { background: #f0f0f0 !important; }
  body::before {
    content: "WealthWaffle — wealthwaffle.be — Contenu éducatif, non agréé FSMA";
    display: block; font-size: 7pt; color: #999;
    border-bottom: 1px solid #ddd; padding-bottom: 4pt; margin-bottom: 12pt;
  }
  .ww-page-meta .ww-last-updated { display: block !important; }
}


/* ═══════════════════════════════════════════════════════════
   WEALTHWAFFLE — Mode Débutant / Expert — Refonte visuelle
   Objectif : distinction claire, cohérente sur tout le site
═══════════════════════════════════════════════════════════ */

/* ── Indicateur de niveau persistant (haut de page) ── */
.ww-level-indicator {
  position: sticky;
  top: 60px;
  z-index: 150;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 6px 16px;
  background: var(--bg);
  border-bottom: 1px solid var(--faint);
  font-size: 0.72rem;
}
body.light .ww-level-indicator { background: var(--light-bg, #f5f4ff); }
.ww-level-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted2);
}
.level-toggle {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 3px;
}
.level-pill {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 8px;
  border: none;
  background: none;
  color: var(--muted);
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
  font-family: 'DM Sans', sans-serif;
  letter-spacing: 0.01em;
}
.level-pill:hover { color: var(--text); }
.level-pill-active {
  font-weight: 700;
}
/* Débutant pill active */
.level-pill[data-level="debutant"].level-pill-active {
  background: rgba(126,200,160,0.15);
  color: #7EC8A0;
  border: 1px solid rgba(126,200,160,0.30);
}
/* Expert pill active */
.level-pill[data-level="avance"].level-pill-active {
  background: rgba(201,184,255,0.15);
  color: #c9b8ff;
  border: 1px solid rgba(201,184,255,0.30);
}

/* ── Expert expand block — section masquée par défaut ── */
.expert-expand {
  margin-top: 16px;
  border-top: 2px dashed rgba(201,184,255,0.20);
  padding-top: 14px;
}

/* Label visible au-dessus du bouton */
.expert-expand::before {
  content: '🎓 NIVEAU EXPERT';
  display: block;
  font-size: 0.60rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #c9b8ff;
  opacity: 0.7;
  margin-bottom: 6px;
}

.expert-expand-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(201,184,255,0.06);
  border: 1px solid rgba(201,184,255,0.18);
  color: #c9b8ff;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 10px;
  transition: all 0.2s;
  width: 100%;
  text-align: left;
}
.expert-expand-btn:hover {
  background: rgba(201,184,255,0.12);
  border-color: rgba(201,184,255,0.30);
  color: #ddd4ff;
}
.expert-expand-btn.open {
  background: rgba(201,184,255,0.10);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.expert-expand-icon {
  font-size: 0.70rem;
  transition: transform 0.2s;
  margin-left: auto;
  flex-shrink: 0;
}
.expert-expand-btn.open .expert-expand-icon {
  transform: rotate(90deg);
}

/* ── Expert body — contenu déplié ── */
.expert-body {
  display: none;
  background: rgba(201,184,255,0.04);
  border: 1px solid rgba(201,184,255,0.18);
  border-top: none;
  border-radius: 0 0 12px 12px;
  padding: 16px;
  animation: fadeUp 0.25s ease both;
}
.expert-body.show { display: block; }
.expert-body > * { font-size: 0.84rem; color: var(--text2); line-height: 1.65; }
.expert-body > *:last-child { margin-bottom: 0; }

/* ── En mode expert : tout est visible, fond teinté ── */
body[data-level="avance"] .expert-expand::before {
  opacity: 1;
  color: #c9b8ff;
}
body[data-level="avance"] .expert-body {
  display: block;
}
body[data-level="avance"] .expert-expand-btn {
  background: rgba(201,184,255,0.08);
  border-color: rgba(201,184,255,0.25);
}

/* ── Badge niveau dans la page (injecté via JS) ── */
.ww-mode-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 5px 12px;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.2s;
  user-select: none;
}
.ww-mode-badge.debutant {
  background: rgba(126,200,160,0.12);
  border: 1px solid rgba(126,200,160,0.25);
  color: #7EC8A0;
}
.ww-mode-badge.avance {
  background: rgba(201,184,255,0.12);
  border: 1px solid rgba(201,184,255,0.25);
  color: #c9b8ff;
}
.ww-mode-badge:hover { filter: brightness(1.15); }

/* ── Mobile burger level toggle ── */
.mobile-toggle-row .level-toggle {
  flex: 1;
  justify-content: flex-end;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .ww-level-indicator { display: none; }
}

/* ── Sitemap grid ── */
.sitemap-grid { display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px; }
.sitemap-link { display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:9px 12px;background:var(--s3);border-radius:10px;text-decoration:none;
  font-size:0.84rem;color:var(--text2);transition:background 0.15s,color 0.15s; }
.sitemap-link:hover { background:var(--s4);color:var(--rose); }
.sitemap-arrow { font-size:0.78rem;color:var(--muted2); }
@media(max-width:600px){ .sitemap-grid { grid-template-columns:1fr; } }

/* ── Système de niveaux dans le contenu ────────────────────
   Par défaut : afficher le niveau débutant.
   Quand body a data-level="X", afficher le niveau X uniquement.
   Sans JS (pas de data-level sur body) : tout visible (sûr).
──────────────────────────────────────────────────────────── */

/* ── Niveaux de lecture : nouvelle logique juin 2026 ────────
   Mode DÉBUTANT : affiche débutant + bouton "voir avancé" par section
   Mode AVANCÉ   : affiche débutant + avancé (les deux, dans l'ordre)
   Le toggle local (bouton dans chaque section) est géré par JS
────────────────────────────────────────────────────────── */

/* Par défaut : masquer tout, JS applique ensuite */
.level-section [data-level="debutant"],
.level-section [data-level="avance"],
.level-section [data-level="expert"] { display: none; }

/* Mode DÉBUTANT : débutant visible, avancé masqué */
body[data-level="debutant"] .level-section [data-level="debutant"] { display: block; }
body[data-level="debutant"] .level-section [data-level="avance"]   { display: none;  }
body[data-level="debutant"] .level-section [data-level="expert"]   { display: none;  }

/* Mode AVANCÉ : les DEUX visibles (débutant d'abord, avancé en dessous) */
body[data-level="avance"] .level-section [data-level="debutant"]   { display: block; }
body[data-level="avance"] .level-section [data-level="avance"]     { display: block; }
body[data-level="avance"] .level-section [data-level="expert"]     { display: none;  }

/* Bouton toggle local "Voir la version avancée" / "Masquer" */
.ww-toggle-avance {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 6px 14px;
  border-radius: 20px;
  border: 1px solid rgba(91,184,212,0.30);
  background: rgba(91,184,212,0.07);
  color: #5BB8D4;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.74rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.18s;
}
.ww-toggle-avance:hover { background: rgba(91,184,212,0.14); }

/* ── Toggles locaux débutant ↔ avancé ────────────────────────────── */

/* Mode débutant : bloc avancé caché, sauf si .ww-local-avance activé */
body[data-level="debutant"] .level-section.ww-local-avance [data-level="avance"] { display: block; }

/* Mode avancé : bloc avancé caché si .ww-local-simplified activé */
body[data-level="avance"] .level-section.ww-local-simplified [data-level="avance"]  { display: none;  }
body[data-level="avance"] .level-section.ww-local-simplified [data-level="debutant"]{ display: block; }

/* Bouton "Voir version avancée" — toujours visible (jamais display:none sur le bouton lui-même) */
.ww-toggle-avance {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 7px 14px;
  border-radius: 20px;
  border: 1px solid rgba(91,184,212,0.30);
  background: rgba(91,184,212,0.07);
  color: #5BB8D4;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.ww-toggle-avance:hover {
  background: rgba(91,184,212,0.15);
  border-color: rgba(91,184,212,0.50);
}
.ww-toggle-avance[aria-expanded="true"] {
  background: rgba(126,200,160,0.08);
  border-color: rgba(126,200,160,0.30);
  color: #7EC8A0;
}

/* Bouton "Simplifier cette section" (mode avancé → débutant local) */
.ww-toggle-deb {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  padding: 7px 14px;
  border-radius: 20px;
  border: 1px solid rgba(126,200,160,0.25);
  background: rgba(126,200,160,0.06);
  color: #7EC8A0;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.ww-toggle-deb:hover {
  background: rgba(126,200,160,0.14);
  border-color: rgba(126,200,160,0.45);
}
.ww-toggle-deb[aria-expanded="false"] {
  background: rgba(91,184,212,0.07);
  border-color: rgba(91,184,212,0.28);
  color: #5BB8D4;
}

.lvl-icon { font-size: 0.88rem; }

/* Séparateur visuel entre débutant et avancé en mode avancé */
body[data-level="avance"] .level-section [data-level="avance"] {
  border-top: 1px solid rgba(91,184,212,0.15);
  margin-top: 16px;
  padding-top: 14px;
}

/* ═══ CLASSES MANQUANTES — ajoutées lors de l'audit CSS ═══ */

/* ── calc-field — champ de formulaire pour les calculateurs ── */
.calc-field { display: flex; flex-direction: column; gap: 5px; }
.calc-field label {
  font-size: 0.74rem; font-weight: 600;
  color: var(--muted); letter-spacing: 0.04em; text-transform: uppercase;
}

/* ═══ AUDIT CSS — Classes manquantes ajoutées ══════════════ */

/* ── Glossaire ── */
.glossary-item { padding: 14px 0; border-bottom: 1px solid var(--faint); }
.glossary-item:last-child { border-bottom: none; }
.glossary-term {
  font-size: 0.92rem; font-weight: 700; color: var(--text);
  margin-bottom: 5px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.glossary-tag {
  font-size: 0.62rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 20px;
  background: rgba(91,184,212,0.10); color: var(--cyan); flex-shrink: 0;
}
.glossary-def { font-size: 0.84rem; color: var(--muted); line-height: 1.7; }

/* ── Sources ── */
.source-section { margin-bottom: 36px; }
.source-section-title {
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 14px;
  display: flex; align-items: center; gap: 12px;
}
.source-section-title span { flex: 1; height: 1px; background: linear-gradient(90deg, var(--faint), transparent); }
.source-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.source-entry {
  background: var(--s2); border: 1px solid var(--border); border-radius: 12px;
  padding: 14px 16px; text-decoration: none;
  display: flex; flex-direction: column; gap: 4px;
  transition: background 0.15s, border-color 0.15s;
}
.source-entry:hover { background: var(--s3); border-color: rgba(91,184,212,0.25); }
.source-tag {
  font-size: 0.60rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 20px;
  background: rgba(91,184,212,0.10); color: var(--cyan);
  align-self: flex-start; margin-bottom: 2px;
}
.source-entry-label { font-size: 0.88rem; font-weight: 700; color: var(--text); }
.source-entry-desc { font-size: 0.76rem; color: var(--muted); line-height: 1.45; }
.source-entry-url { font-size: 0.70rem; color: var(--cyan); opacity: 0.8; margin-top: 4px; font-family: monospace; }
@media(max-width:600px){ .source-grid { grid-template-columns: 1fr; } }

/* ── Stade GPS (index.html) ── */
.stade { border-radius: 24px; padding: 36px; margin: 8px 0; position: relative; overflow: hidden; }
.stade-num {
  font-family: 'DM Serif Display', serif; font-style: italic;
  font-size: 5rem; font-weight: 400; line-height: 1;
  opacity: 0.08; position: absolute; top: 16px; right: 24px;
  pointer-events: none; user-select: none;
}
.stade-badge {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 5px 12px; border-radius: 20px; margin-bottom: 14px;
}
.stade-tagline {
  font-family: 'DM Serif Display', serif; font-style: italic;
  font-size: clamp(1.3rem, 4vw, 1.9rem); line-height: 1.25; margin-bottom: 10px;
}
.stade-desc { font-size: 0.88rem; color: var(--muted); line-height: 1.75; max-width: 520px; margin-bottom: 22px; }
.stade-links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.stade-link {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px; padding: 13px 15px; text-decoration: none;
  display: flex; align-items: center; gap: 10px;
  transition: background 0.18s, border-color 0.18s, transform 0.18s;
}
.stade-link:hover { background: rgba(255,255,255,0.07); transform: translateX(3px); }
.stade-link-icon { font-size: 1.15rem; flex-shrink: 0; }
.stade-link-text { flex: 1; }
.stade-link-title { font-size: 0.86rem; font-weight: 700; color: var(--text); margin-bottom: 2px; }
.stade-link-desc { font-size: 0.72rem; color: var(--muted); line-height: 1.4; }
.stade-link-arrow { font-size: 0.78rem; color: var(--muted2); flex-shrink: 0; }
.stade-signal {
  display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px;
  border-radius: 10px; font-size: 0.80rem; color: var(--muted);
  line-height: 1.6; margin-bottom: 20px;
}
.stade-signal-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 5px; }
@media(max-width:500px){ .stade-links { grid-template-columns: 1fr; } }
@media(max-width:600px){ .stade { padding: 24px 18px; } }

/* ── calc-field (calculateurs) ── */
.calc-field { display: flex; flex-direction: column; gap: 5px; }
.calc-field label {
  font-size: 0.74rem; font-weight: 600; color: var(--muted);
  letter-spacing: 0.04em; text-transform: uppercase;
}

/* ── check / checklist alternative ── */
.check { color: var(--green, #7EC8A0); font-weight: 700; }

/* ── FAQ classique ── */
.faq-item { background: var(--s2); border: 1px solid var(--border); border-radius: 14px; margin-bottom: 8px; overflow: hidden; transition: border-color 0.2s; }
.faq-item.open { border-color: rgba(232,124,195,0.30); }
.faq-q { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 16px 18px; cursor: pointer; font-weight: 600; font-size: 0.92rem; color: var(--text); line-height: 1.45; }
.faq-q:hover { color: var(--rose); }
.faq-arrow { font-size: 0.8rem; flex-shrink: 0; margin-top: 2px; color: var(--muted); transition: transform 0.25s; }
.faq-item.open .faq-arrow { transform: rotate(180deg); color: var(--rose); }
.faq-a { display: none; padding: 0 18px 16px; font-size: 0.86rem; color: var(--muted); line-height: 1.7; border-top: 1px solid var(--faint); }
.faq-item.open .faq-a { display: block; }

/* ── Doctrine page ── */
.doctrine-card {
  background: var(--s2); border: 1px solid var(--border);
  border-radius: 20px; padding: 28px; position: relative; overflow: hidden;
  transition: border-color 0.2s, transform 0.2s;
}
.doctrine-card:hover { transform: translateY(-3px); }
.doctrine-card-num {
  font-family: 'DM Serif Display', serif; font-style: italic;
  font-size: 4rem; font-weight: 400; line-height: 1; opacity: 0.06;
  position: absolute; top: 12px; right: 18px; pointer-events: none;
}
.doctrine-card-eyebrow {
  font-size: 0.66rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  margin-bottom: 10px;
}
.doctrine-card-tagline {
  font-family: 'DM Serif Display', serif; font-style: italic;
  font-size: 1.3rem; line-height: 1.3; margin-bottom: 8px;
}
.doctrine-card-features { list-style: none; padding: 0; margin: 12px 0; }
.doctrine-card-features li {
  font-size: 0.82rem; color: var(--muted); line-height: 1.6;
  padding: 4px 0; display: flex; align-items: flex-start; gap: 7px;
}
.doctrine-card-features li::before { content: '→'; flex-shrink: 0; font-weight: 700; }
.doctrine-card-price { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--faint); }
.doctrine-card-amount { font-family: 'DM Serif Display', serif; font-style: italic; font-size: 1.8rem; font-weight: 400; }
.doctrine-card-period { font-size: 0.78rem; color: var(--muted); }
.doctrine-card-annual { font-size: 0.76rem; color: var(--muted2); margin-top: 4px; }
.doctrine-cta {
  display: inline-flex; align-items: center; gap: 6px; margin-top: 16px;
  padding: 10px 20px; border-radius: 10px; font-weight: 700;
  font-size: 0.86rem; text-decoration: none; transition: opacity 0.18s;
}
.doctrine-cta:hover { opacity: 0.85; }
.price-monthly { font-size: 0.76rem; color: var(--muted); }
.price-annual { font-size: 0.74rem; color: var(--muted2); }
.how-step { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 16px; }
.how-step-num {
  width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.80rem; font-weight: 700; color: #fff;
}

/* ── Videos page ── */
.platform-btn {
  background: var(--s2); border: 1px solid var(--border); border-radius: 14px;
  padding: 16px; text-align: center; text-decoration: none;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  transition: background 0.18s, transform 0.18s;
}
.platform-btn:hover { background: var(--s3); transform: translateY(-2px); }
.platform-btn-icon { font-size: 1.8rem; }
.platform-btn-name { font-size: 0.86rem; font-weight: 700; color: var(--text); }
.platform-btn-sub { font-size: 0.72rem; color: var(--muted); }
.yt-skeleton {
  background: var(--s2); border: 1px solid var(--border); border-radius: 14px;
  overflow: hidden; animation: pulse 1.5s ease-in-out infinite;
}
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }

/* ── Doctrine FAQ style alternatif ── */
.dfaq-item { border-bottom: 1px solid var(--faint); }
.dfaq-item:last-child { border-bottom: none; }
.dfaq-q {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 14px 0; cursor: pointer; font-weight: 600; font-size: 0.90rem; color: var(--text);
}
.dfaq-q:hover { color: var(--rose); }
.dfaq-arrow { font-size: 0.78rem; color: var(--muted); transition: transform 0.2s; }
.dfaq-item.open .dfaq-arrow { transform: rotate(180deg); }
.dfaq-a { display: none; padding-bottom: 14px; font-size: 0.84rem; color: var(--muted); line-height: 1.7; }
.dfaq-item.open .dfaq-a { display: block; }


/* ═══════════════════════════════════════════════════════════
 * COMPOSANTS CONVERSION — ww-all.css
 * Styles pour les badges de niveau Débutant/Avancé
 * ═══════════════════════════════════════════════════════════ */

/* Badge mode lecture */
.ww-mode-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.70rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.18s;
  margin-left: 8px;
  vertical-align: middle;
  user-select: none;
}
.ww-mode-badge.debutant {
  background: rgba(126,200,160,0.12);
  border: 1px solid rgba(126,200,160,0.30);
  color: #7EC8A0;
}
.ww-mode-badge.avance {
  background: rgba(201,184,255,0.12);
  border: 1px solid rgba(201,184,255,0.30);
  color: #c9b8ff;
}
.ww-mode-badge:hover { opacity: 0.80; transform: translateY(-1px); }

/* Level badge dans les sections */
.level-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 10px;
}
[data-level="debutant"] .level-badge { background:rgba(126,200,160,0.10); color:#7EC8A0; }
[data-level="avance"]   .level-badge { background:rgba(201,184,255,0.10); color:#c9b8ff; }

/* Masquage par mode */
body[data-level="debutant"] [data-level="avance"] { display: none !important; }
body[data-level="avance"]   [data-level="debutant"] { opacity: 0.6; }

/* Proposition de lire la partie avancée après un chapitre débutant */
.avance-cta {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: rgba(201,184,255,0.06);
  border: 1px solid rgba(201,184,255,0.18);
  border-radius: 12px;
  margin-top: 16px;
  font-size: 0.80rem;
  color: var(--muted);
  cursor: pointer;
  transition: border-color 0.18s;
}
.avance-cta:hover { border-color: rgba(201,184,255,0.35); }
.avance-cta-icon { font-size: 1.1rem; flex-shrink: 0; }
.avance-cta-text strong { color: #c9b8ff; }

/* Temps de lecture */
.reading-time {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.reading-time-badge {
  font-size: 0.74rem;
  color: var(--muted);
  background: var(--s2);
  padding: 4px 12px;
  border-radius: 20px;
  border: 1px solid var(--border);
}

/* ── Blur gates — cohérence visuelle ── */
.blur-gate {
  position: relative;
  margin: 24px 0;
}
.blur-gate-content {
  filter: blur(4px);
  user-select: none;
  pointer-events: none;
  max-height: 280px;
  overflow: hidden;
  transition: filter 0.3s;
}

/* ── Voir aussi — see-also ── */
.see-also {
  margin: 40px 0 20px;
  padding-top: 20px;
  border-top: 1px solid var(--faint);
}
.see-also-label {
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--muted2);
  margin-bottom: 10px;
}
.see-also-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 14px;
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 20px;
  font-size: 0.78rem;
  color: var(--muted);
  text-decoration: none;
  margin: 0 6px 6px 0;
  transition: border-color 0.18s, color 0.18s;
}
.see-also-pill:hover {
  border-color: rgba(232,124,195,0.35);
  color: var(--text);
}

/* ── Calculateur Fiscal Crypto ─────────────────────────────── */
.crypto-drop-zone {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:18px 12px; border:1.5px dashed var(--border); border-radius:14px;
  background:var(--s2); cursor:pointer; transition:all 0.18s; text-align:center;
  min-height:110px; gap:4px;
}
.crypto-drop-zone:hover, .crypto-drop-zone.drag-active {
  border-color:rgba(232,124,195,0.45); background:rgba(232,124,195,0.05);
}
.crypto-drop-icon { font-size:1.6rem; }
.crypto-drop-name { font-size:0.80rem; font-weight:700; color:var(--text); }
.crypto-drop-hint { font-size:0.66rem; color:var(--muted); }
.crypto-drop-status { font-size:0.70rem; color:var(--muted2); margin-top:4px; }

/* ══════════════════════════════════════════════════════════════
   POINT 67 — .cta-box-premium / .ww-cta-box
   Encadrés CTA selon le niveau requis (Socle / Pilote / Radar)
   Générés dynamiquement via data-ww-cta (point 68 ww-bundle.js)
══════════════════════════════════════════════════════════════ */
.ww-cta-box {
  background: var(--cta-color, rgba(232,124,195,0.08));
  border: 1px solid var(--cta-border, rgba(232,124,195,0.25));
  border-radius: 16px;
  padding: 20px;
  margin: 24px 0;
}
.ww-cta-box-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.ww-cta-box-emoji { font-size: 1.3rem; flex-shrink: 0; }
.ww-cta-box-titre {
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--text);
}
.ww-cta-box-texte {
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: 14px;
}
.ww-cta-box-btn {
  display: inline-flex;
  align-items: center;
  padding: 10px 18px;
  border-radius: 10px;
  background: linear-gradient(135deg, #E87CC3, #5BB8D4);
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.80rem;
  font-weight: 700;
  text-decoration: none;
  transition: opacity 0.18s, transform 0.18s;
}
.ww-cta-box-btn:hover { opacity: 0.88; transform: translateY(-1px); }

/* Variantes alias pour compatibilité */
.cta-box-premium { }
.cta-box-pilote  { --cta-color: rgba(232,124,195,0.10); --cta-border: rgba(232,124,195,0.28); }
.cta-box-radar   { --cta-color: rgba(91,184,212,0.10);  --cta-border: rgba(91,184,212,0.28);  }
.cta-box-socle   { --cta-color: rgba(126,200,160,0.10); --cta-border: rgba(126,200,160,0.28); }

/* ══════════════════════════════════════════════════════════════
   POINT 14 — Boutons thème Clair / Sombre dans la nav
   IDs : btn-theme-light / btn-theme-dark (desktop)
         mob-btn-theme-light / mob-btn-theme-dark (mobile)
══════════════════════════════════════════════════════════════ */
.ww-theme-btn {
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--s3);
  color: var(--muted);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.74rem;
  cursor: pointer;
  transition: all 0.18s;
}
.ww-theme-btn:hover {
  background: var(--s2);
  color: var(--text);
  border-color: rgba(255,255,255,0.20);
}
.ww-theme-btn.ww-theme-active {
  background: rgba(232,124,195,0.12);
  border-color: rgba(232,124,195,0.35);
  color: var(--rose);
  font-weight: 700;
}

/* ══════════════════════════════════════════════════════════════
   invest/etf.html — stats grid + DCA steps
══════════════════════════════════════════════════════════════ */
.etf-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 14px 0;
}
@media (max-width: 480px) { .etf-stats-grid { grid-template-columns: 1fr; } }
.etf-stat-card {
  background: var(--s3);
  border-radius: 10px;
  padding: 12px;
  text-align: center;
}
.etf-stat-label {
  font-size: 0.62rem;
  color: var(--muted);
  font-weight: 700;
  margin-bottom: 4px;
}
.etf-stat-value {
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.1;
}
.etf-stat-sub {
  font-size: 0.62rem;
  color: var(--muted);
  margin-top: 2px;
}
.etf-dca-step {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.5;
}
.etf-dca-num {
  min-width: 24px;
  height: 24px;
  background: rgba(46,204,113,0.15);
  border: 1px solid rgba(46,204,113,0.30);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.70rem;
  font-weight: 700;
  color: #2ECC71;
  flex-shrink: 0;
}

/* waffy-tip avec image ← utilisée sur etf.html et autres pages Groupe D */
.waffy-tip-img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════════
   invest/allocation.html — cartes profils
══════════════════════════════════════════════════════════════ */
.alloc-profils-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 16px;
}
@media (max-width: 560px) { .alloc-profils-grid { grid-template-columns: 1fr; } }

.alloc-profil-card {
  border-radius: 14px;
  border: 1px solid var(--border);
  padding: 14px;
}
.alloc-defensif  { background: rgba(126,200,160,0.07); border-color: rgba(126,200,160,0.25); }
.alloc-equilibre { background: rgba(91,184,212,0.07);  border-color: rgba(91,184,212,0.25);  }
.alloc-croissance{ background: rgba(232,124,195,0.07); border-color: rgba(232,124,195,0.25); }

.alloc-profil-badge {
  font-size: 0.84rem;
  font-weight: 700;
  margin-bottom: 6px;
}
.alloc-defensif  .alloc-profil-badge { color: #7EC8A0; }
.alloc-equilibre .alloc-profil-badge { color: #5BB8D4; }
.alloc-croissance .alloc-profil-badge { color: var(--rose); }

.alloc-profil-horizon {
  font-size: 0.70rem;
  color: var(--muted);
  margin-bottom: 6px;
}
.alloc-profil-repartition {
  font-size: 0.76rem;
  color: var(--text);
  font-weight: 600;
  margin-bottom: 4px;
}
.alloc-profil-perf, .alloc-profil-perte {
  font-size: 0.68rem;
  color: var(--muted2);
}

/* ══════════════════════════════════════════════════════════════
   CLASSES GÉNÉRIQUES — utilisées sur toutes les pages (point 15)
   Remplacent tout CSS inline — jamais de style="" dans le HTML
══════════════════════════════════════════════════════════════ */

/* ── Eyebrow thématique ── */
.eyebrow-invest  { background: rgba(91,184,212,0.10);  color: #5BB8D4; }
.eyebrow-fiscal  { background: rgba(108,52,131,0.12);  color: #9B59B6; }
.eyebrow-budget  { background: rgba(126,200,160,0.10); color: #7EC8A0; }
.eyebrow-immo    { background: rgba(231,111,81,0.10);  color: #E76F51; }
.eyebrow-crypto  { background: rgba(246,190,99,0.10);  color: #F6BE63; }
.eyebrow-radar   { background: rgba(91,184,212,0.10);  color: #5BB8D4; }
.eyebrow-parcours{ background: rgba(91,184,212,0.08);  color: #5BB8D4; }

/* ── Source pills actif (page courante) ── */
.source-pill-active-invest { background: rgba(91,184,212,0.12); border-color: rgba(91,184,212,0.30); color: #5BB8D4; }
.source-pill-active-fiscal { background: rgba(108,52,131,0.12); border-color: rgba(108,52,131,0.30); color: #9B59B6; }
.source-pill-active-budget { background: rgba(126,200,160,0.12);border-color: rgba(126,200,160,0.30);color: #7EC8A0; }
.source-pill-active-immo   { background: rgba(231,111,81,0.12); border-color: rgba(231,111,81,0.30); color: #E76F51; }
.source-pill-active-crypto { background: rgba(246,190,99,0.12); border-color: rgba(246,190,99,0.30); color: #F6BE63; }

/* ── Lien coloré en ligne ── */
.link-invest { color: #5BB8D4; }
.link-fiscal { color: #9B59B6; }
.link-budget { color: #7EC8A0; }
.link-immo   { color: #E76F51; }
.link-rose   { color: var(--rose); }
.link-green  { color: #2ECC71; }

/* ── Texte coloré emphase ── */
.txt-rose   { color: var(--rose); }
.txt-cyan   { color: #5BB8D4; }
.txt-green  { color: #2ECC71; }
.txt-muted  { color: var(--muted); }
.txt-muted2 { color: var(--muted2); }
.txt-warn   { color: var(--rose); font-weight: 700; }
.txt-bold   { font-weight: 700; }

/* ── Lecture / meta ── */
.reading-meta {
  font-size: 0.74rem;
  color: var(--muted);
}
.pill-nav {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

/* ── Simulateur — conteneur grille inputs ── */
.sim-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}
@media (max-width: 400px) { .sim-grid { grid-template-columns: 1fr; } }

/* ── Label simulateur ── */
.sim-label {
  font-size: 0.70rem;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: block;
  margin-bottom: 4px;
}
/* ── Input simulateur ── */
.sim-input {
  width: 100%;
  background: var(--s3);
  border: 1px solid var(--border);
  border-radius: 9px;
  padding: 9px 12px;
  color: var(--text);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.88rem;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.18s;
}
.sim-input:focus { border-color: rgba(232,124,195,0.40); }

/* ── Résultat simulateur ── */
.sim-result {
  background: linear-gradient(135deg, rgba(46,204,113,0.08), rgba(91,184,212,0.06));
  border: 1px solid rgba(46,204,113,0.25);
  border-radius: 14px;
  padding: 16px 18px;
}
.sim-result-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  text-align: center;
}
@media (max-width: 400px) { .sim-result-grid { grid-template-columns: 1fr 1fr; } }
.sim-result-label {
  font-size: 0.62rem;
  color: var(--muted);
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.sim-result-value {
  font-size: 1.2rem;
  font-weight: 800;
}
.sim-result-sub {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  font-size: 0.74rem;
  color: var(--muted);
  border-top: 1px solid rgba(255,255,255,0.06);
  margin-top: 12px;
  padding-top: 12px;
}
.sim-result-note {
  margin-top: 10px;
  font-size: 0.68rem;
  color: var(--muted2);
}

/* ── Graphique canvas conteneur ── */
.chart-container {
  position: relative;
  background: var(--s3);
  border-radius: 12px;
  overflow: hidden;
  margin-top: 16px;
}
.chart-container canvas {
  width: 100%;
  display: block;
}
.chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
  font-size: 0.70rem;
  color: var(--muted);
}
.chart-legend-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  margin-right: 4px;
  vertical-align: middle;
}
.chart-legend-line {
  display: inline-block;
  width: 10px;
  height: 3px;
  border-radius: 2px;
  margin-right: 4px;
  vertical-align: middle;
}
.chart-label {
  font-size: 0.74rem;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 10px;
}
.chart-results {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
  font-size: 0.74rem;
  color: var(--muted);
  text-align: center;
}
.chart-result-value {
  font-size: 1.1rem;
  font-weight: 800;
  display: block;
}
.chart-legend-overlay {
  position: absolute;
  top: 10px;
  right: 12px;
  font-size: 0.65rem;
  color: var(--muted);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* ── Pas unique — DCA steps (reutilisées invest/) ── */
.steps-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 12px 0;
}
.step-badge {
  min-width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.70rem;
  font-weight: 700;
  flex-shrink: 0;
}
.step-badge-green  { background: rgba(46,204,113,0.15); border: 1px solid rgba(46,204,113,0.30); color: #2ECC71; }
.step-badge-cyan   { background: rgba(91,184,212,0.15); border: 1px solid rgba(91,184,212,0.30); color: #5BB8D4; }
.step-badge-rose   { background: rgba(232,124,195,0.15);border: 1px solid rgba(232,124,195,0.30);color: var(--rose); }
.step-badge-purple { background: rgba(108,52,131,0.15); border: 1px solid rgba(108,52,131,0.30); color: #9B59B6; }
.step-row {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.5;
}

/* ── Waffy tip ── */
.waffy-tip {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: rgba(255,255,255,0.025);
  border-radius: 12px;
  padding: 12px 14px;
  margin-top: 14px;
}
.waffy-tip-content {
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.6;
}
.waffy-tip-content strong {
  color: var(--text);
  display: block;
  margin-bottom: 3px;
}

/* ── Carte profil 3 colonnes (allocation, immo, fiscal…) ── */
.profil-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 16px;
}
@media (max-width: 560px) { .profil-grid { grid-template-columns: 1fr; } }
.profil-card {
  border-radius: 14px;
  border: 1px solid var(--border);
  background: var(--s2);
  padding: 14px;
}
.profil-card-title {
  font-size: 0.84rem;
  font-weight: 700;
  margin-bottom: 6px;
}
.profil-card-sub {
  font-size: 0.72rem;
  color: var(--muted);
  line-height: 1.5;
}

/* ── Comparatif 2 colonnes (IS vs IPP, salarié vs indép…) ── */
.compare-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 14px 0;
}
@media (max-width: 480px) { .compare-2col { grid-template-columns: 1fr; } }
.compare-col {
  background: var(--s2);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px;
}
.compare-col-title {
  font-size: 0.80rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 10px;
}
.compare-col-item {
  font-size: 0.76rem;
  color: var(--muted);
  padding: 5px 0;
  border-bottom: 1px solid var(--faint);
  display: flex;
  justify-content: space-between;
  gap: 8px;
}
.compare-col-item:last-child { border-bottom: none; }
.compare-col-item strong { color: var(--text); }

/* ── Highlight chiffre clé ── */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 14px 0;
}
@media (max-width: 480px) { .kpi-grid { grid-template-columns: 1fr 1fr; } }
.kpi-card {
  background: var(--s3);
  border-radius: 10px;
  padding: 12px;
  text-align: center;
}
.kpi-label {
  font-size: 0.62rem;
  color: var(--muted);
  font-weight: 700;
  margin-bottom: 4px;
}
.kpi-value {
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.1;
}
.kpi-sub {
  font-size: 0.62rem;
  color: var(--muted);
  margin-top: 2px;
}

/* ── Breadcrumb ── */
.page-subtitle {
  font-size: 0.80rem;
  color: var(--muted);
  margin-bottom: 16px;
  line-height: 1.6;
}

/* ── Légende graphique — couleurs fixes (point 15) ── */
.dot-green  { background: #2ECC71; }
.dot-cyan   { background: #5BB8D4; }
.dot-rose   { background: #E87CC3; }
.dot-gold   { background: #F6BE63; }
.dot-purple { background: #9B59B6; }
.dot-orange { background: #E76F51; }
.dot-muted  { background: var(--muted); }

/* B3 — padding nav auto (remplace style="padding-top:80px" en dur) */
.page-padded { padding-top: 80px; }

/* ══════════════════════════════════════════════════════════════
   CLASSES DOCTRINE — page programme (point 15)
══════════════════════════════════════════════════════════════ */
.pg-page { padding-top: 60px; max-width: 100%; padding-left: 0; padding-right: 0; }
.pg-section-inner { max-width: 600px; margin: 0 auto; padding: 0 20px 20px; }
.pg-section-inner-wide { max-width: 640px; margin: 0 auto; padding: 0 20px 40px; }
.pg-story-green { color: var(--green); }

/* Chip proof */
.pg-chip-wrap { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; padding: 40px 20px; max-width: 700px; margin: 0 auto; }

/* Coût inaction */
.pg-inaction-card { background: rgba(232,124,195,0.07); border: 1px solid rgba(232,124,195,0.20); border-radius: 14px; padding: 16px 18px; }
.pg-inaction-label { font-size: 0.68rem; font-weight: 700; color: var(--rose); letter-spacing: 0.08em; margin-bottom: 6px; }
.pg-inaction-title { font-size: 0.92rem; color: var(--text); font-weight: 600; margin-bottom: 4px; }
.pg-inaction-grid { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 10px; }
.pg-inaction-col { text-align: center; flex: 1; min-width: 80px; }
.pg-inaction-value { font-size: 1.2rem; font-weight: 800; }
.pg-inaction-sub { font-size: 0.66rem; color: var(--muted); }

/* Chemin le plus court */
.pg-path { display: flex; flex-direction: column; gap: 0; max-width: 480px; }
.pg-path-step { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; }
.pg-path-connector { width: 1px; height: 16px; background: var(--faint); margin-left: 14px; }
.pg-path-num { min-width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.72rem; font-weight: 700; flex-shrink: 0; }
.pg-path-num-green  { background: rgba(126,200,160,0.15); border: 1px solid rgba(126,200,160,0.30); color: #7EC8A0; }
.pg-path-num-rose   { background: rgba(232,124,195,0.12); border: 1px solid rgba(232,124,195,0.25); color: var(--rose); }
.pg-path-num-cyan   { background: rgba(91,184,212,0.12);  border: 1px solid rgba(91,184,212,0.25);  color: #5BB8D4; }
.pg-path-num-grad   { background: linear-gradient(135deg,rgba(232,124,195,0.20),rgba(91,184,212,0.20)); border: 1px solid rgba(232,124,195,0.30); color: var(--rose); }
.pg-path-text { font-size: 0.84rem; color: var(--muted); line-height: 1.6; padding-top: 4px; }
.pg-path-text strong { color: var(--text); }

/* Pourquoi payer — encadré citation */
.pg-quote-block { background: rgba(255,255,255,0.03); border-left: 3px solid var(--rose); border-radius: 0 12px 12px 0; padding: 16px 18px; margin-bottom: 24px; }
.pg-quote-text { font-size: 0.84rem; color: var(--muted); line-height: 1.75; margin: 0; }

/* Comparatif tableau doctrine */
.pg-cmp-wrap { overflow-x: auto; }
.pg-cmp-table { width: 100%; border-collapse: collapse; font-family: 'DM Sans', sans-serif; font-size: 0.78rem; }
.pg-cmp-th-left { text-align: left; padding: 10px 12px; border-bottom: 2px solid var(--border); color: var(--muted); font-weight: 700; font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.08em; }
.pg-cmp-th-socle { text-align: center; padding: 10px 8px; border-bottom: 2px solid var(--border); color: #7EC8A0; font-weight: 700; font-size: 0.74rem; }
.pg-cmp-th-pilote { text-align: center; padding: 10px 8px; border-bottom: 2px solid rgba(232,124,195,0.50); color: var(--rose); font-weight: 700; font-size: 0.74rem; background: rgba(232,124,195,0.04); border-radius: 8px 8px 0 0; }
.pg-cmp-th-radar { text-align: center; padding: 10px 8px; border-bottom: 2px solid rgba(91,184,212,0.40); color: #5BB8D4; font-weight: 700; font-size: 0.74rem; }
.pg-cmp-th-sub { font-size: 0.68rem; color: var(--muted); font-weight: 400; display: block; }
.pg-cmp-td { padding: 10px 12px; color: var(--muted); border-bottom: 1px solid var(--faint); }
.pg-cmp-td-last { padding: 10px 12px; color: var(--muted); }
.pg-cmp-check { text-align: center; padding: 10px 8px; border-bottom: 1px solid var(--faint); color: #7EC8A0; }
.pg-cmp-none  { text-align: center; padding: 10px 8px; border-bottom: 1px solid var(--faint); color: var(--border); }
.pg-cmp-extra { text-align: center; padding: 10px 8px; border-bottom: 1px solid var(--faint); color: var(--border); }
.pg-cmp-check-last { text-align: center; padding: 10px 8px; color: #7EC8A0; }
.pg-cmp-none-last  { text-align: center; padding: 10px 8px; color: var(--border); }
.pg-cmp-pilote-col { background: rgba(232,124,195,0.03); }

/* Plans doctrine */
.pg-plan-eyebrow { font-size: 0.60rem; font-weight: 700; letter-spacing: 0.10em; margin-bottom: 4px; }
.pg-plan-eyebrow-green  { color: #7EC8A0; }
.pg-plan-eyebrow-rose   { color: var(--rose); }
.pg-plan-eyebrow-cyan   { color: #5BB8D4; }
.pg-plan-annual-text    { font-size: 0.70rem; color: var(--green); margin-top: 2px; display: block; }
.pg-plan-note-text      { text-align: center; font-size: 0.66rem; color: var(--muted); margin-top: 7px; }

/* Waffy bloc entre plans */
.pg-waffy-hint { display: flex; align-items: center; gap: 14px; background: rgba(255,255,255,0.025); border-radius: 14px; padding: 14px 16px; margin: 4px 0 12px; }
.pg-waffy-hint-img { width: 64px; height: 64px; object-fit: contain; flex-shrink: 0; }
.pg-waffy-hint-text { font-size: 0.76rem; color: var(--muted); line-height: 1.6; margin: 0; }

/* Add-on crypto */
.pg-addon-wrap { border: 1px dashed rgba(246,190,99,0.40); border-radius: 16px; padding: 18px 20px; margin-top: 12px; }
.pg-addon-inner { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 10px; }
.pg-addon-eyebrow { font-size: 0.60rem; font-weight: 700; letter-spacing: 0.10em; color: #F6BE63; margin-bottom: 4px; }
.pg-addon-title { font-family: 'DM Serif Display', serif; font-style: italic; font-size: 1.1rem; color: var(--text); margin-bottom: 6px; }
.pg-addon-desc { font-size: 0.78rem; color: var(--muted); line-height: 1.6; max-width: 400px; margin: 0 0 12px; }
.pg-addon-features { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.pg-addon-feature { font-size: 0.74rem; color: var(--muted); display: flex; gap: 8px; }
.pg-addon-check { color: #F6BE63; }
.pg-addon-price-wrap { text-align: right; flex-shrink: 0; }
.pg-addon-price { font-size: 1.4rem; font-weight: 800; color: #F6BE63; }
.pg-addon-price-sub { font-size: 0.70rem; color: var(--muted); }
.pg-addon-cta { display: inline-block; margin-top: 10px; padding: 9px 16px; border-radius: 10px; border: 1px solid rgba(246,190,99,0.35); background: rgba(246,190,99,0.08); color: #F6BE63; font-family: 'DM Sans', sans-serif; font-size: 0.76rem; font-weight: 700; text-decoration: none; }

/* Final CTA doctrine */
.pg-final-cta-btn { max-width: 340px; margin: 0 auto; display: flex; }

/* ══════════════════════════════════════════════════════════════
   CLASSES INDEX.HTML — page accueil (point 15)
══════════════════════════════════════════════════════════════ */
.ww-search-wrap { position: relative; max-width: 540px; margin: 0 auto 40px; }
.ww-quiz-results-hidden { display: none; }
.ww-section-center { text-align: center; }
.ww-hero-waffy-img { width: 100px; margin: 0 auto 16px; display: block; }
.ww-section-sub-narrow { max-width: 440px; margin: 0 auto 28px; }
.ww-cta-note { margin-top: 14px; font-size: 0.74rem; color: var(--muted); }
.ww-theme-card-dynamic { --theme-color: rgba(91,184,212,0.40); }

/* ══ BUDGET — piliers pension + épargne pension ══ */
.txt-gold   { color: #E8C23A; }
.txt-budget { color: #7EC8A0; }
.source-pill-active-budget { background: rgba(126,200,160,0.12); border-color: rgba(126,200,160,0.30); color: #7EC8A0; }

.piliers-list { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.pilier-card  { border-radius: 0 10px 10px 0; padding: 12px 14px; }
.pilier-card-1 { background: rgba(232,194,58,0.07);  border-left: 3px solid #E8C23A; }
.pilier-card-2 { background: rgba(91,184,212,0.07);  border-left: 3px solid #5BB8D4; }
.pilier-card-3 { background: rgba(126,200,160,0.07); border-left: 3px solid #7EC8A0; }
.pilier-card-4 { background: rgba(232,124,195,0.07); border-left: 3px solid var(--rose); }
.pilier-title  { font-size: 0.82rem; font-weight: 700; display: block; margin-bottom: 2px; }
.pilier-title-1 { color: #E8C23A; }
.pilier-title-2 { color: #5BB8D4; }
.pilier-title-3 { color: #7EC8A0; }
.pilier-title-4 { color: var(--rose); }
.pilier-sub    { font-size: 0.80rem; color: var(--muted); }

.ep-options-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.ep-option-card  { border-radius: 12px; padding: 14px; text-align: center; }
.ep-option-a     { background: rgba(126,200,160,0.07); border: 1px solid rgba(126,200,160,0.20); }
.ep-option-b     { background: rgba(232,194,58,0.07);  border: 1px solid rgba(232,194,58,0.20);  }
.ep-option-label { font-size: 0.64rem; font-weight: 700; text-transform: uppercase; margin-bottom: 6px; }
.ep-option-label-a { color: #7EC8A0; }
.ep-option-label-b { color: #E8C23A; }
.ep-option-value   { font-size: 1.1rem; font-weight: 700; color: var(--text); }
.ep-option-sub     { font-size: 0.70rem; color: var(--muted); margin-top: 4px; }
.pension-risk-note { margin-top: 8px; font-size: 0.82rem; color: var(--muted); }

/* ══ FISCAL / DÉCLARATION ══ */
/* Steps MyMinfin (style différent des steps immo — fond s3 + numéro cyan) */
.myminfin-steps { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.myminfin-step { background: var(--s3); border-radius: 10px; padding: 12px; display: flex; gap: 10px; align-items: flex-start; }
.myminfin-step-num { min-width: 26px; height: 26px; background: linear-gradient(135deg,#5BB8D4,#3a98b4); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff; font-size: 0.76rem; flex-shrink: 0; }
.myminfin-step-text { font-size: 0.82rem; color: var(--text2); line-height: 1.6; }
.myminfin-step-text strong { color: var(--text); }

/* Tableau délais — couleurs statuts */
.td-warn   { color: #E8C23A; font-weight: 700; }
.td-ok     { color: #7EC8A0; font-weight: 700; }
.td-cyan   { color: #5BB8D4; font-weight: 700; }

/* Listes texte muted (erreurs, après) */
.list-muted { font-size: 0.84rem; color: var(--muted); line-height: 2; padding-left: 20px; }
.list-muted-sm { font-size: 0.80rem; color: var(--muted); line-height: 2; padding-left: 20px; }

/* Waffy tip sans image (tip textuel uniquement) */
.waffy-tip-text-only { display: flex; align-items: flex-start; gap: 12px; background: rgba(255,255,255,0.025); border-radius: 12px; padding: 12px 14px; margin-top: 14px; }
.waffy-tip-text-only .waffy-tip-icon { font-size: 1.4rem; flex-shrink: 0; }

/* Graphique déductions — barre avantage fiscal */
.deductions-chart-wrap { margin-top: 16px; }

/* ══ INVEST / SECTORIELS ══ */
.core-sat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0; }
.core-card { border-radius: 12px; padding: 14px; text-align: center; }
.core-card-core { background: rgba(126,200,160,0.08); border: 1px solid rgba(126,200,160,0.20); }
.core-card-sat  { background: rgba(91,184,212,0.07);  border: 1px solid rgba(91,184,212,0.18);  }
.core-card-label { font-size: 0.62rem; font-weight: 700; color: var(--muted); margin-bottom: 6px; }
.core-card-value { font-size: 1.1rem; font-weight: 800; }
.core-card-sub   { font-size: 0.72rem; color: var(--muted); margin-top: 4px; }
.td-rose { color: var(--rose); }

/* ══ BUDGET / ASSURANCES ══ */
.source-pill-active-assur { background: rgba(196,114,74,0.12); border-color: rgba(196,114,74,0.30); color: #C4724A; }

/* Grille principes assurance */
.assur-principes-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.assur-oui  { background: rgba(126,200,160,0.08); border: 1px solid rgba(126,200,160,0.20); border-radius: 12px; padding: 12px; }
.assur-non  { background: rgba(232,124,195,0.07); border: 1px solid rgba(232,124,195,0.18); border-radius: 12px; padding: 12px; }
.assur-card-label { font-size: 0.62rem; font-weight: 700; margin-bottom: 4px; }
.assur-oui  .assur-card-label { color: #7EC8A0; }
.assur-non  .assur-card-label { color: var(--rose); }
.assur-card-text { font-size: 0.78rem; color: var(--muted); }

/* Tableau budget — couleurs montants */
.td-green-bold { color: #7EC8A0; font-weight: 700; }
.td-gold-bold  { color: #E8C23A; font-weight: 700; }
.td-rose-bold  { color: var(--rose); font-weight: 700; }

/* Note budget */
.budget-note { font-size: 0.76rem; color: var(--muted); margin-top: 10px; }

/* ══ BUDGET / BANQUES ══ */
/* Liste frais bancaires */
.frais-list { display: flex; flex-direction: column; gap: 6px; margin: 14px 0; }
.frais-item { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background: var(--s3); border-radius: 10px; font-size: 0.82rem; }
.frais-item-accent { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background: rgba(232,124,195,0.07); border: 1px solid rgba(232,124,195,0.15); border-radius: 10px; font-size: 0.82rem; }
.frais-item-label { color: var(--text2); }
.frais-item-value { color: var(--muted); font-size: 0.76rem; }
.frais-item-value-rose { color: var(--rose); font-size: 0.76rem; }

/* Tableau banques — spans secondaires dans les cellules */
.td-sub { font-size: 0.70rem; color: var(--muted); display: block; }
.td-free { color: #7EC8A0; font-weight: 600; }

/* Cartes stratégie bancaire */
.strategie-list { display: flex; flex-direction: column; gap: 10px; margin: 12px 0; }
.strategie-card { background: var(--s3); border-radius: 12px; padding: 14px; }
.strategie-card-title { font-size: 0.84rem; font-weight: 700; margin-bottom: 6px; }
.strategie-card-text { font-size: 0.80rem; color: var(--muted); line-height: 1.7; }
.strategie-card-salarié  { }
.strategie-title-salarié  { color: #7EC8A0; }
.strategie-title-voyageur { color: #5BB8D4; }
.strategie-title-indep    { color: #c9b8ff; }
.strategie-title-dirigeant { color: #C4724A; }

/* Liens comparateurs (cartes cliquables) */
.comparateur-list { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.link-card { display: flex; align-items: center; gap: 12px; background: var(--s3); border-radius: 10px; padding: 12px 14px; text-decoration: none; transition: opacity 0.18s; }
.link-card:hover { opacity: 0.80; }
.link-card-emoji { font-size: 1.1rem; flex-shrink: 0; }
.link-card-title { font-size: 0.84rem; font-weight: 700; color: var(--text); }
.link-card-sub { font-size: 0.72rem; color: var(--muted); margin-top: 2px; }

/* Note tableau */
.table-note { font-size: 0.72rem; color: var(--muted2); margin-top: 8px; }

/* ══ FISCAL / CRYPTO — classes manquantes ══ */
.regime-grid { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.regime-card { border-radius: 12px; padding: 14px; }
.regime-card-normal { background: rgba(126,200,160,0.08); border: 1px solid rgba(126,200,160,0.20); }
.regime-card-spec   { background: rgba(232,124,195,0.07); border: 1px solid rgba(232,124,195,0.18); }
.regime-card-pro    { background: rgba(196,114,74,0.07);  border: 1px solid rgba(196,114,74,0.18);  }
.regime-label { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.10em; margin-bottom: 4px; }
.regime-label-normal { color: #7EC8A0; }
.regime-label-spec   { color: var(--rose); }
.regime-label-pro    { color: #C4724A; }
.regime-taux  { font-size: 1.2rem; font-weight: 800; line-height: 1.1; }
.regime-desc  { font-size: 0.80rem; color: var(--muted); margin-top: 4px; }

.exemple-box { background: var(--s3); border-radius: 12px; padding: 14px; margin: 12px 0; font-size: 0.82rem; color: var(--muted); line-height: 1.8; }
.exemple-box-green { background: rgba(126,200,160,0.08); border: 1px solid rgba(126,200,160,0.20); border-radius: 12px; padding: 14px; margin: 12px 0; font-size: 0.82rem; color: var(--muted); line-height: 1.8; }

.myminfin-step-gold .myminfin-step-num { background: linear-gradient(135deg,#E8C23A,#c9a420); color: #1E1D38; }

.cta-addon-crypto { background: rgba(232,194,58,0.04); border: 1px solid rgba(232,194,58,0.25); border-radius: 16px; padding: 20px; }
.cta-addon-crypto-title { font-size: 1.0rem; font-weight: 700; margin-bottom: 6px; }
.cta-addon-crypto-desc { font-size: 0.84rem; color: var(--muted); line-height: 1.7; margin-bottom: 8px; }
.cta-addon-crypto-btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 24px; border-radius: 12px; background: linear-gradient(135deg,#E8C23A,#c9a420); color: #1E1D38; font-weight: 700; font-size: 0.88rem; text-decoration: none; }
.cta-addon-crypto-note { font-size: 0.70rem; color: var(--muted); margin-top: 8px; }

.txt-crypto { color: #E8C23A; }
.txt-immo   { color: #C4724A; }
/* ══ INVEST / CRYPTO-PLATEFORMES ══ */
/* Checklist wallet sécurité */
.wallet-checklist { display: flex; flex-direction: column; gap: 8px; }
.wallet-checklist-item { background: var(--s3); border-radius: 10px; padding: 12px; display: flex; gap: 10px; align-items: flex-start; font-size: 0.82rem; color: var(--text2); }
.wallet-check-box { width: 20px; height: 20px; background: rgba(126,200,160,0.20); border: 1px solid rgba(126,200,160,0.30); border-radius: 4px; flex-shrink: 0; margin-top: 2px; }

/* Tableau exchanges — statuts MiCA */
.td-mica-ok   { color: #7EC8A0; font-weight: 700; }
.td-mica-warn { color: #E8C23A; }
.td-mica-no   { color: var(--rose); }

/* ══ OUTILS / FISCAL-CRYPTO ══ */
/* Gate d'accès add-on */
.crypto-gate { text-align: center; padding: 32px; }
.crypto-gate-icon { font-size: 2rem; margin-bottom: 12px; }
.crypto-gate-title { font-family: 'DM Serif Display', serif; font-style: italic; margin-bottom: 10px; }
.crypto-gate-desc { font-size: 0.84rem; color: var(--muted); line-height: 1.7; max-width: 400px; margin: 0 auto 20px; }
.crypto-gate-note { font-size: 0.68rem; color: var(--muted2); margin-top: 8px; }

/* Grille zones de dépôt CSV */
.crypto-drop-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 16px; }
@media (max-width: 480px) { .crypto-drop-grid { grid-template-columns: 1fr; } }

/* Résumé import */
.crypto-import-summary { display: none; background: rgba(126,200,160,0.08); border: 1px solid rgba(126,200,160,0.20); border-radius: 12px; padding: 12px; font-size: 0.82rem; color: var(--muted); }

/* Step-up hint */
.crypto-stepup-hint { font-size: 0.78rem; color: var(--muted); }
.crypto-stepup-note { font-size: 0.68rem; color: var(--muted); margin-left: 8px; }
.crypto-stepup-btn { font-size: 0.76rem; padding: 7px 14px; border-radius: 9px; border: 1px solid rgba(91,184,212,0.30); background: rgba(91,184,212,0.07); color: #5BB8D4; cursor: pointer; font-family: 'DM Sans', sans-serif; font-weight: 600; }

/* Franchise note */
.crypto-franchise-note { font-size: 0.70rem; color: var(--muted); margin-top: 8px; }

/* Validation block */
.crypto-check-block { background: rgba(232,194,58,0.07); border: 1px solid rgba(232,194,58,0.20); border-radius: 12px; padding: 14px; margin-bottom: 16px; }
.crypto-check-label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; font-size: 0.80rem; color: var(--muted); line-height: 1.6; }
.crypto-privacy-block { background: rgba(91,184,212,0.06); border: 1px solid rgba(91,184,212,0.18); border-radius: 10px; padding: 12px; margin-bottom: 16px; font-size: 0.76rem; color: var(--muted); line-height: 1.65; }

/* Bouton calcul principal */
.crypto-calc-btn { width: 100%; padding: 14px; border-radius: 12px; border: none; background: linear-gradient(135deg,#E8C23A,#c9a420); color: #1E1D38; font-family: 'DM Sans', sans-serif; font-weight: 700; font-size: 0.92rem; cursor: pointer; }

/* Résultats */
.crypto-result-header { color: #7EC8A0; }
.crypto-result-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; }
.crypto-result-card { background: var(--s3); border-radius: 12px; padding: 14px; text-align: center; }
.crypto-result-card-green { background: rgba(126,200,160,0.10); border: 1px solid rgba(126,200,160,0.25); border-radius: 12px; padding: 14px; text-align: center; }
.crypto-result-label { font-size: 0.60rem; font-weight: 700; letter-spacing: 0.10em; color: var(--muted); margin-bottom: 4px; }
.crypto-result-value { font-size: 1.4rem; font-weight: 800; }
.crypto-warnings { display: none; background: rgba(232,124,195,0.07); border: 1px solid rgba(232,124,195,0.20); border-radius: 10px; padding: 12px; font-size: 0.76rem; color: var(--muted); line-height: 1.7; margin-bottom: 14px; }
.crypto-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.crypto-dl-btn { flex: 1; padding: 12px; border-radius: 11px; border: none; background: linear-gradient(135deg,#7EC8A0,#5ab37a); color: #fff; font-family: 'DM Sans', sans-serif; font-weight: 700; font-size: 0.86rem; cursor: pointer; }
.crypto-save-btn { padding: 12px 16px; border-radius: 11px; border: 1px solid var(--border); background: var(--s3); color: var(--text2); font-family: 'DM Sans', sans-serif; font-weight: 600; font-size: 0.84rem; cursor: pointer; }
.crypto-result-note { font-size: 0.66rem; color: var(--muted2); margin-top: 8px; text-align: center; }

/* Section revenus zone grise */
.crypto-income-card { background: rgba(232,194,58,0.05); border-color: rgba(232,194,58,0.20); }
.crypto-income-title { color: #E8C23A; }
.crypto-income-desc { font-size: 0.82rem; color: var(--muted); margin-bottom: 12px; }
.crypto-income-line { font-size: 0.78rem; color: var(--muted); padding: 6px 0; border-bottom: 1px solid var(--faint); }

/* Disclaimer légal */
.crypto-disclaimer { background: var(--s2); border-top: 1px solid var(--faint); margin-top: 32px; padding: 20px; border-radius: 12px; font-size: 0.68rem; color: var(--muted2); line-height: 1.8; }

/* Calc step card with gold accent */
.content-card-gold { background: rgba(232,194,58,0.05); border-color: rgba(232,194,58,0.25); }

.stepup-hint-mb { margin-bottom: 12px; }
.crypto-gate-hidden { display: none; }
/* ══ BUDGET / INDEX ══ */
/* Waterfall financier — étapes ordonnées */
.waterfall-list { display: flex; flex-direction: column; gap: 6px; margin: 14px 0; }
.waterfall-step { display: flex; gap: 12px; align-items: center; padding: 10px 14px; border-radius: 0 10px 10px 0; font-size: 0.84rem; }
.waterfall-step-1 { background: rgba(126,200,160,0.07); border-left: 3px solid #7EC8A0; }
.waterfall-step-2 { background: rgba(91,184,212,0.07);  border-left: 3px solid #5BB8D4; }
.waterfall-step-3 { background: rgba(201,184,255,0.07); border-left: 3px solid #c9b8ff; }
.waterfall-step-4 { background: rgba(232,124,195,0.07); border-left: 3px solid var(--rose); }
.waterfall-num { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 700; flex-shrink: 0; color: #fff; }
.waterfall-num-1 { background: #7EC8A0; }
.waterfall-num-2 { background: #5BB8D4; }
.waterfall-num-3 { background: #c9b8ff; color: #1E1D38; }
.waterfall-num-4 { background: var(--rose); }
.waterfall-text { font-size: 0.84rem; color: var(--text2); }
.waterfall-text strong { color: var(--text); }

/* Tableau brut/net */
.brut-net-box { background: var(--s3); border-radius: 12px; padding: 16px; margin: 12px 0; }
.brut-net-label { font-size: 0.70rem; color: var(--muted); font-weight: 700; text-transform: uppercase; margin-bottom: 10px; }
.brut-net-rows { display: flex; flex-direction: column; gap: 5px; font-size: 0.82rem; }
.brut-net-row { display: flex; justify-content: space-between; padding: 5px 0; border-bottom: 1px solid var(--faint); color: var(--text2); }
.brut-net-row:last-child { border-bottom: none; font-weight: 700; color: var(--text); }
.brut-net-val { font-weight: 700; color: var(--text); }
.brut-net-val-minus { color: var(--rose); }
.brut-net-val-final { font-weight: 700; color: #7EC8A0; font-size: 1rem; }

/* Tableau dettes */
.td-dette-urgent { color: var(--rose); font-weight: 700; }
.td-dette-warn   { color: #E8C23A; font-weight: 700; }
.td-dette-ok     { color: #7EC8A0; font-weight: 700; }

/* Ol numérotée budget automatisé */
.budget-ol { font-size: 0.84rem; color: var(--text2); line-height: 2; padding-left: 18px; margin: 10px 0; }

.btn-secondary { display: inline-flex; align-items: center; gap: 6px; padding: 9px 18px; border-radius: 10px; background: var(--s3); border: 1px solid var(--border); color: var(--text2); font-family: 'DM Sans', sans-serif; font-size: 0.82rem; font-weight: 600; text-decoration: none; transition: opacity 0.18s; }
.btn-secondary:hover { opacity: 0.80; }

/* ══ BUDGET / RETRAITE ══ */
.eyebrow-retraite { background: rgba(201,184,255,0.10); color: #c9b8ff; }
.source-pill-active-retraite { background: rgba(201,184,255,0.12); border-color: rgba(201,184,255,0.30); color: #c9b8ff; }
.txt-retraite { color: #c9b8ff; }

/* KPI colorés (variantes couleur pour .kpi-card) */
.kpi-card-green { background: rgba(126,200,160,0.07); border: 1px solid rgba(126,200,160,0.20); }
.kpi-card-gold  { background: rgba(232,194,58,0.07);  border: 1px solid rgba(232,194,58,0.20);  }
.kpi-card-rose  { background: rgba(232,124,195,0.07); border: 1px solid rgba(232,124,195,0.18); }
.kpi-card-cyan  { background: rgba(91,184,212,0.07);  border: 1px solid rgba(91,184,212,0.18);  }

/* Scénarios politiques (réutilisable partout) */
.scenario-list { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.scenario-card { padding: 12px 14px; border-radius: 0 10px 10px 0; font-size: 0.80rem; color: var(--muted); line-height: 1.7; }
.scenario-gold  { background: rgba(232,194,58,0.07);  border-left: 3px solid #E8C23A; }
.scenario-rose  { background: rgba(232,124,195,0.07); border-left: 3px solid var(--rose); }
.scenario-cyan  { background: rgba(91,184,212,0.07);  border-left: 3px solid #5BB8D4; }
.scenario-green { background: rgba(126,200,160,0.07); border-left: 3px solid #7EC8A0; }
.scenario-title { display: block; font-weight: 700; margin-bottom: 4px; }
.scenario-title-gold  { color: #E8C23A; }
.scenario-title-rose  { color: var(--rose); }
.scenario-title-cyan  { color: #5BB8D4; }
.scenario-title-green { color: #7EC8A0; }

/* KPI timing (texte coloré + valeur) */
.kpi-timing-value { font-size: 1.1rem; font-weight: 700; margin-top: 4px; }
.kpi-timing-sub   { font-size: 0.78rem; color: var(--muted); }

/* ══ INVEST / EQUITY — classes manquantes ══ */
.btn-sm { font-size: 0.82rem; padding: 9px 16px; }

.equity-atouts  { background: rgba(126,200,160,0.08); border: 1px solid rgba(126,200,160,0.20); border-radius: 14px; padding: 14px; }
.equity-risques { background: rgba(232,124,195,0.08); border: 1px solid rgba(232,124,195,0.20); border-radius: 14px; padding: 14px; }
.equity-col-title { font-weight: 700; margin-bottom: 8px; }
.equity-atouts .equity-col-title { color: #7EC8A0; }
.equity-risques .equity-col-title { color: var(--rose); }

.ts-card { background: var(--s3); border-radius: 16px; padding: 18px; text-align: center; }
.ts-card-micro   { border: 1px solid rgba(201,184,255,0.20); }
.ts-card-pme     { border: 1px solid rgba(232,124,195,0.20); }
.ts-card-scaleup { border: 1px solid rgba(91,184,212,0.20); }
.ts-label { font-size: 0.65rem; font-weight: 700; letter-spacing: 0.10em; text-transform: uppercase; margin-bottom: 6px; }
.ts-label-micro   { color: #c9b8ff; }
.ts-label-pme     { color: var(--rose); }
.ts-label-scaleup { color: #5BB8D4; }
.ts-taux { font-family: 'DM Serif Display', serif; font-style: italic; font-size: 2.2rem; }
.ts-taux-micro   { color: #c9b8ff; }
.ts-taux-pme     { color: var(--rose); }
.ts-taux-scaleup { color: #5BB8D4; }
.ts-sub  { font-size: 0.78rem; color: var(--muted); margin-top: 4px; }
.ts-sub2 { font-size: 0.72rem; color: var(--muted2); }

.eltif-box { background: var(--s3); border: 1px solid rgba(201,184,255,0.15); border-radius: 14px; padding: 18px; margin: 14px 0; font-size: 0.86rem; color: var(--text2); line-height: 1.7; }

.txt-purple { color: #c9b8ff; }
.dot-purple-light { background: #c9b8ff; }

/* ══ INVEST / CRYPTO ══ */
/* Eyebrow BTC orange */
.eyebrow-btc { background: rgba(247,147,26,0.10); color: #F7931A; }
.source-pill-active-btc { background: rgba(247,147,26,0.12); border-color: rgba(247,147,26,0.30); color: #F7931A; }
.txt-btc { color: #F7931A; }

/* Blocs details crypto — style accordéon */
.crypto-detail { background: var(--s3); border-radius: 12px; overflow: hidden; }
.crypto-detail summary { padding: 14px 16px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; list-style: none; }
.crypto-detail summary::-webkit-details-marker { display: none; }
.crypto-detail-header { display: flex; align-items: center; gap: 10px; }
.crypto-detail-icon { font-size: 1.1rem; flex-shrink: 0; }
.crypto-detail-title { font-size: 0.88rem; font-weight: 700; color: var(--text); }
.crypto-detail-sub { font-size: 0.70rem; color: var(--muted); }
.crypto-detail-right { display: flex; align-items: center; gap: 8px; }
.crypto-detail-body { padding: 0 16px 16px; font-size: 0.80rem; color: var(--muted); line-height: 1.75; }
.crypto-detail-body p + p { margin-top: 8px; }
.crypto-detail[open] .crypto-chevron { transform: rotate(180deg); }
.crypto-chevron { transition: transform 0.2s; display: inline-block; color: var(--muted); }

/* Badge catégorie crypto */
.cat-badge { font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 3px 9px; border-radius: 20px; flex-shrink: 0; }
.cat-badge-btc    { background: rgba(247,147,26,0.12); color: #F7931A;  border: 1px solid rgba(247,147,26,0.25); }
.cat-badge-eth    { background: rgba(98,126,234,0.12);  color: #627EEA; border: 1px solid rgba(98,126,234,0.25); }
.cat-badge-sol    { background: rgba(153,69,255,0.12);  color: #9945FF; border: 1px solid rgba(153,69,255,0.25); }
.cat-badge-sui    { background: rgba(75,195,255,0.12);  color: #4BC3FF; border: 1px solid rgba(75,195,255,0.25); }
.cat-badge-link   { background: rgba(55,91,210,0.12);   color: #375BD2; border: 1px solid rgba(55,91,210,0.25); }
.cat-badge-hype   { background: rgba(0,214,192,0.12);   color: #00D6C0; border: 1px solid rgba(0,214,192,0.25); }
.cat-badge-tao    { background: rgba(232,124,195,0.12); color: #E87CC3; border: 1px solid rgba(232,124,195,0.25); }
.cat-badge-gpu    { background: rgba(255,100,50,0.12);  color: #FF6432; border: 1px solid rgba(255,100,50,0.25); }
.cat-badge-xrp    { background: rgba(52,106,169,0.12);  color: #346AA9; border: 1px solid rgba(52,106,169,0.25); }
.cat-badge-bnb    { background: rgba(243,186,47,0.12);  color: #F3BA2F; border: 1px solid rgba(243,186,47,0.25); }
.cat-badge-trx    { background: rgba(255,60,60,0.12);   color: #FF3C3C; border: 1px solid rgba(255,60,60,0.25); }

/* KPI profils crypto */
.kpi-card-btc { background: rgba(247,147,26,0.08); border: 1px solid rgba(247,147,26,0.20); }

/* Hot/Cold wallet grid */
.hot-cold-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.hot-card  { background: var(--s3); border-radius: 10px; padding: 12px; }
.cold-card { background: rgba(126,200,160,0.07); border: 1px solid rgba(126,200,160,0.20); border-radius: 10px; padding: 12px; }
.hot-card-title  { font-weight: 700; font-size: 0.84rem; color: var(--text); margin-bottom: 4px; }
.cold-card-title { font-weight: 700; font-size: 0.84rem; color: #7EC8A0; margin-bottom: 4px; }
.hot-cold-text { font-size: 0.76rem; color: var(--muted); line-height: 1.65; }

/* ══ INVEST / CRYPTO — classes manquantes ══ */
.cat-badge-render { background: rgba(255,100,50,0.12); color: #FF6432; border: 1px solid rgba(255,100,50,0.25); }
.kpi-card-orange  { background: rgba(247,147,26,0.08); border: 1px solid rgba(247,147,26,0.20); }
.source-pill-active-btc { background: rgba(247,147,26,0.12); border-color: rgba(247,147,26,0.30); color: #F7931A; }
.eyebrow-crypto-btc { background: rgba(247,147,26,0.10); color: #F7931A; }
.txt-btc { color: #F7931A; }

/* ══ INVEST / CRYPTO — classes complémentaires ══ */
.crypto-detail-list  { display: flex; flex-direction: column; gap: 10px; margin: 12px 0; }
.crypto-detail-name  { font-size: 0.88rem; font-weight: 700; color: var(--text); }
.dot-eth { background: #627EEA; }

/* ══ INVEST / OR ══ */
.eyebrow-or { background: rgba(232,194,58,0.10); color: #E8C23A; }
.source-pill-active-or { background: rgba(232,194,58,0.12); border-color: rgba(232,194,58,0.30); color: #E8C23A; }

/* Steps numérotés variante or */
.step-num-gold { min-width: 26px; height: 26px; border-radius: 50%; background: rgba(232,194,58,0.15); border: 1px solid rgba(232,194,58,0.30); color: #E8C23A; font-weight: 700; font-size: 0.72rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.step-item-warn { display: flex; gap: 12px; align-items: flex-start; font-size: 0.82rem; color: var(--text2); line-height: 1.6; background: rgba(232,124,195,0.07); border-radius: 9px; padding: 9px 12px; }
.step-label { font-size: 0.84rem; font-weight: 700; color: var(--text); margin-bottom: 10px; }

/* ══ INVEST / ALTERNATIVES ══ */
/* Carte hub compact (renvoi vers autre page) */
.hub-card { background: var(--s3); border-radius: 14px; padding: 14px 16px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.hub-card-icon { font-size: 1.2rem; flex-shrink: 0; }
.hub-card-body { flex: 1; min-width: 0; }
.hub-card-title { font-size: 0.86rem; font-weight: 700; color: var(--text); margin-bottom: 3px; }
.hub-card-desc  { font-size: 0.78rem; color: var(--muted); line-height: 1.5; }

/* Carte coopérative régionale */
.coop-card { border-radius: 14px; padding: 14px 16px; margin-bottom: 10px; }
.coop-card-rose  { background: rgba(232,124,195,0.06); border: 1px solid rgba(232,124,195,0.20); }
.coop-card-cyan  { background: rgba(91,184,212,0.06);  border: 1px solid rgba(91,184,212,0.20);  }
.coop-card-gold  { background: rgba(232,194,58,0.06);  border: 1px solid rgba(232,194,58,0.20);  }
.coop-card-title { font-size: 0.84rem; font-weight: 700; margin-bottom: 8px; }
.coop-card-title-rose  { color: var(--rose); }
.coop-card-title-cyan  { color: #5BB8D4; }
.coop-card-title-gold  { color: #E8C23A; }
.coop-card-text { font-size: 0.78rem; color: var(--muted); line-height: 1.65; margin-bottom: 8px; }
.coop-card-sub  { font-size: 0.76rem; color: var(--muted); line-height: 1.65; }

/* Fédérale common box */
.coop-federal-box { background: var(--s3); border-radius: 10px; padding: 12px 14px; font-size: 0.78rem; color: var(--muted); line-height: 1.7; }

/* Carte tokenisation */
.token-list { display: flex; flex-direction: column; gap: 10px; margin: 14px 0; }
.token-card { background: var(--s3); border-radius: 12px; padding: 14px; }
.token-card-title { font-size: 0.86rem; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.token-card-text  { font-size: 0.78rem; color: var(--muted); line-height: 1.65; }

/* h4 interne sections */
.section-h4 { font-size: 0.92rem; font-weight: 700; color: var(--text); margin: 16px 0 10px; }

/* Lignes déductions fiscales */
.deduction-list { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; }
.deduction-row { display: flex; justify-content: space-between; align-items: center; padding: 9px 12px; background: var(--s3); border-radius: 9px; font-size: 0.82rem; }
.deduction-label { color: var(--text2); }
.deduction-value { font-weight: 700; color: #7EC8A0; white-space: nowrap; }

.step-num-cyan { min-width:26px;height:26px;border-radius:50%;background:rgba(91,184,212,0.15);border:1px solid rgba(91,184,212,0.30);color:#5BB8D4;font-weight:700;font-size:0.72rem;display:flex;align-items:center;justify-content:center;flex-shrink:0; }

.kpi-card-rose-soft { background: var(--s3); border: 1px solid rgba(232,124,195,0.15); }
.kpi-card-gold-soft { background: var(--s3); border: 1px solid rgba(232,194,58,0.15); }
.kpi-card-green-soft { background: rgba(126,200,160,0.08); border: 1px solid rgba(126,200,160,0.20); }

.flux-grid { display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:14px 0; }
.flux-card { background:var(--s3);border-radius:12px;padding:14px;text-align:center; }
.flux-card-ok { background:rgba(126,200,160,0.08);border:1px solid rgba(126,200,160,0.20); }
.flux-label { font-size:0.70rem;color:var(--muted);margin-bottom:6px;text-transform:uppercase;font-weight:700; }
.flux-label-ok { color:#7EC8A0; }
.flux-arrow { font-size:1.4rem;color:var(--muted);text-align:center; }

/* ══ FISCAL / RÉMUNÉRATION ══ */
.remun-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.remun-result-card { border-radius: 12px; padding: 14px; }
.remun-result-card-gold  { background: rgba(232,194,58,0.07);  border: 1px solid rgba(232,194,58,0.15); }
.remun-result-card-green { background: rgba(126,200,160,0.07); border: 1px solid rgba(126,200,160,0.15); }
.remun-result-label { font-size: 0.70rem; font-weight: 700; text-transform: uppercase; margin-bottom: 8px; }
.remun-result-label-gold  { color: #E8C23A; }
.remun-result-label-green { color: #7EC8A0; }
.remun-result-text { font-size: 0.78rem; color: var(--muted); line-height: 1.8; }
.remun-note { font-size: 0.70rem; color: var(--muted2); margin-top: 8px; }
.eyebrow-green { background: rgba(126,200,160,0.10); color: #7EC8A0; }
.source-pill-active-green { background: rgba(126,200,160,0.12); border-color: rgba(126,200,160,0.30); color: #7EC8A0; }
.txt-text2 { color: var(--text2); }

/* ══ NL-BAR features ══ */
.nl-features { display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:16px; }
.nl-feature { font-size:0.73rem;color:var(--muted);display:flex;align-items:center;gap:5px; }
.nl-feature-check { color:var(--cyan); }

/* ══ BLUR GATE — paywall visuel ══ */
.blur-gate { position: relative; margin: 24px 0; }
.blur-gate-overlay { position:absolute;inset:0;display:flex;align-items:center;justify-content:center; }
.blur-gate-box { background:var(--s2);border:1px solid rgba(91,184,212,0.25);border-radius:16px;padding:24px 28px;text-align:center;max-width:380px;box-shadow:0 8px 40px rgba(0,0,0,0.5); }
.blur-gate-icon { font-size:1.4rem;margin-bottom:8px; }
.blur-gate-title { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.1rem;color:var(--text);margin-bottom:6px; }
.blur-gate-sub { font-size:0.78rem;color:var(--muted);line-height:1.65;margin-bottom:16px; }
.blur-gate-note { font-size:0.68rem;color:var(--muted2);margin-top:8px; }
.btn-unlock { display:inline-flex;align-items:center;gap:6px;padding:11px 22px;border-radius:11px;font-weight:700;font-size:0.86rem;text-decoration:none; }
.btn-unlock-pilote { background:linear-gradient(135deg,#5BB8D4,#3a98b4);color:#fff; }
.btn-unlock-socle  { background:linear-gradient(135deg,#c9b8ff,#9B59B6);color:#fff; }

/* Usufruit grid */
.usufruit-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0; }
.usufruit-col-title { font-size:0.72rem;font-weight:700;color:var(--muted);margin-bottom:6px; }

/* ══ HUB CARD — variantes couleur ══ */
.hub-card-green { background: rgba(126,200,160,0.06); border: 1px solid rgba(126,200,160,0.25); border-radius: 16px; padding: 22px; text-decoration: none; display: block; transition: background 0.18s; }
.hub-card-green:hover { background: rgba(126,200,160,0.12); }
.hub-card-gold  { background: rgba(232,194,58,0.06);  border: 1px solid rgba(232,194,58,0.25);  border-radius: 16px; padding: 22px; text-decoration: none; display: block; transition: background 0.18s; }
.hub-card-gold:hover { background: rgba(232,194,58,0.12); }
.hub-card-eyebrow { font-size:0.62rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;margin-bottom:8px; }
.hub-card-eyebrow-green { color: #7EC8A0; }
.hub-card-eyebrow-gold  { color: #E8C23A; }
.hub-card-heading { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.2rem;color:var(--text);margin-bottom:6px; }
.hub-card-desc { font-size:0.82rem;color:var(--muted);line-height:1.65;margin:0; }
.hub-card-cta { font-size:0.80rem;font-weight:600;margin-top:10px; }
.hub-card-cta-green { color: #7EC8A0; }
.hub-card-cta-gold  { color: #E8C23A; }
.hub-card-stack { display:grid;grid-template-columns:1fr;gap:14px;max-width:600px; }

/* ══ CTA RADAR ══ */
.cta-radar { background: rgba(91,184,212,0.04); border: 1px solid rgba(91,184,212,0.20); border-radius: 16px; padding: 20px; }
.cta-radar-title { font-size: 1.0rem; font-weight: 700; margin-bottom: 8px; }
.cta-radar-desc { font-size: 0.84rem; color: var(--muted); line-height: 1.7; margin-bottom: 8px; }
.cta-radar-btn { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; padding: 12px 22px; border-radius: 12px; background: linear-gradient(135deg,#5BB8D4,#3a98b4); color: #fff; font-weight: 700; font-size: 0.86rem; text-decoration: none; }
.cta-radar-note { font-size: 0.68rem; color: var(--muted2); margin-top: 8px; }

/* Grille calcul Tax Shelter */
.ts-calcul-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.ts-calcul-card { border-radius: 12px; padding: 14px; text-align: center; }
.ts-calcul-card-neutral { background: var(--s3); }
.ts-calcul-card-green   { background: rgba(126,200,160,0.08); border: 1px solid rgba(126,200,160,0.20); }
.ts-calcul-card-rose    { background: rgba(232,124,195,0.07); border: 1px solid rgba(232,124,195,0.18); }
.ts-calcul-card-gold    { background: var(--s3); }
.ts-calcul-label { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.10em; color: var(--muted); margin-bottom: 6px; }
.ts-calcul-value { font-size: 1.6rem; font-weight: 800; }
.ts-calcul-sub   { font-size: 0.68rem; color: var(--muted); }

/* Info-box lien audiovisuel */
.info-box-cyan { background: rgba(91,184,212,0.07); border: 1px solid rgba(91,184,212,0.20); border-radius: 12px; padding: 12px 16px; font-size: 0.84rem; color: var(--muted); margin-bottom: 24px; }

.source-pill-active-gold { background: rgba(232,194,58,0.12); border-color: rgba(232,194,58,0.30); color: #E8C23A; }

/* CTA Pilote variante rose */
.cta-pilote { background: rgba(232,124,195,0.04); border: 1px solid rgba(232,124,195,0.18); border-radius: 16px; padding: 20px; margin: 24px 0; }
.cta-pilote-eyebrow { font-size:0.62rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--rose);margin-bottom:8px; }
.cta-pilote-desc { font-size:0.84rem;color:var(--muted);line-height:1.7;margin-bottom:14px; }
.cta-pilote-btn { display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:12px;background:linear-gradient(135deg,#E87CC3,#c45fa0);color:#fff;font-weight:700;font-size:0.84rem;text-decoration:none; }

.dot-immo { background: #C4724A; }

/* ══ Steps colorés rénovation ══ */
.step-num-rose   { min-width:28px;height:28px;border-radius:50%;background:rgba(232,124,195,0.20);color:var(--rose);font-weight:700;font-size:0.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.step-num-immo   { min-width:28px;height:28px;border-radius:50%;background:rgba(196,114,74,0.20);color:#C4724A;font-weight:700;font-size:0.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.step-num-purple { min-width:28px;height:28px;border-radius:50%;background:rgba(201,184,255,0.20);color:#c9b8ff;font-weight:700;font-size:0.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0; }

/* Boîte formule monospace */
.formula-box { background:var(--s3);border-radius:12px;padding:14px;font-family:monospace;font-size:0.82rem;color:var(--text2);margin:10px 0;line-height:2; }

/* Cartes financement rénovation */
.financement-card { background:var(--s3);border-radius:10px;padding:12px;font-size:0.82rem; }
.financement-card-title { font-weight:700;margin-bottom:4px; }
.financement-card-text  { color:var(--muted);line-height:1.7; }

.expert-expand-sub { font-size:0.72rem;color:var(--muted);font-weight:400; }

/* ══ PARCOURS DU BELGE ══ */
/* Navigation étapes colorées */
.parcours-nav { display:flex;gap:6px;flex-wrap:wrap;margin-bottom:36px; }
.parcours-nav-pill { padding:6px 14px;border-radius:20px;font-size:0.78rem;font-weight:600;text-decoration:none;transition:opacity 0.18s; }
.parcours-nav-pill:hover { opacity:0.8; }
.parcours-nav-green  { background:rgba(126,200,160,0.10);border:1px solid rgba(126,200,160,0.25);color:#7EC8A0; }
.parcours-nav-cyan   { background:rgba(91,184,212,0.10); border:1px solid rgba(91,184,212,0.25); color:#5BB8D4; }
.parcours-nav-immo   { background:rgba(196,114,74,0.10); border:1px solid rgba(196,114,74,0.25); color:#C4724A; }
.parcours-nav-rose   { background:rgba(232,124,195,0.10);border:1px solid rgba(232,124,195,0.25);color:#E87CC3; }
.parcours-nav-purple { background:rgba(201,184,255,0.10);border:1px solid rgba(201,184,255,0.25);color:#c9b8ff; }
.parcours-nav-gold   { background:rgba(232,194,58,0.10); border:1px solid rgba(232,194,58,0.25); color:#E8C23A; }

/* Carte étape parcours */
.parcours-step { border-radius:18px;padding:22px;margin-bottom:14px;display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap; }
.parcours-step-green  { border-left:3px solid #7EC8A0; }
.parcours-step-cyan   { border-left:3px solid #5BB8D4; }
.parcours-step-immo   { border-left:3px solid #C4724A; }
.parcours-step-rose   { border-left:3px solid #E87CC3; }
.parcours-step-purple { border-left:3px solid #c9b8ff; }
.parcours-step-gold   { border-left:3px solid #E8C23A; }

/* Badge icône rond */
.parcours-icon { width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex-shrink:0; }
.parcours-icon-green  { background:rgba(126,200,160,0.10);border:2px solid rgba(126,200,160,0.25); }
.parcours-icon-cyan   { background:rgba(91,184,212,0.10); border:2px solid rgba(91,184,212,0.25);  }
.parcours-icon-immo   { background:rgba(196,114,74,0.10); border:2px solid rgba(196,114,74,0.25);  }
.parcours-icon-rose   { background:rgba(232,124,195,0.10);border:2px solid rgba(232,124,195,0.25); }
.parcours-icon-purple { background:rgba(201,184,255,0.10);border:2px solid rgba(201,184,255,0.25); }
.parcours-icon-gold   { background:rgba(232,194,58,0.10); border:2px solid rgba(232,194,58,0.25);  }

.parcours-body { flex:1;min-width:200px; }
.parcours-eyebrow { font-size:0.68rem;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;margin-bottom:4px; }
.parcours-eyebrow-green  { color:#7EC8A0; }
.parcours-eyebrow-cyan   { color:#5BB8D4; }
.parcours-eyebrow-immo   { color:#C4724A; }
.parcours-eyebrow-rose   { color:#E87CC3; }
.parcours-eyebrow-purple { color:#c9b8ff; }
.parcours-eyebrow-gold   { color:#E8C23A; }
.parcours-h2 { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.3rem;color:var(--text);margin-bottom:12px; }
.parcours-lead { font-size:0.84rem;color:var(--muted);line-height:1.7;margin-bottom:14px; }

/* KPI grid parcours (variante small) */
.parcours-kpi-grid { display:grid;gap:8px;margin-bottom:16px; }
.parcours-kpi-3 { grid-template-columns:repeat(3,1fr); }
.parcours-kpi-4 { grid-template-columns:repeat(4,1fr); }
@media(max-width:480px) { .parcours-kpi-3,.parcours-kpi-4 { grid-template-columns:1fr 1fr; } }
.parcours-kpi { background:var(--s3);border-radius:10px;padding:12px;text-align:center; }
.parcours-kpi-val { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.4rem; }
.parcours-kpi-val-sm { font-size:1.2rem; }
.parcours-kpi-sub { font-size:0.68rem;color:var(--muted); }

/* Erreurs/Actions 2 colonnes */
.parcours-2col { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px; }
@media(max-width:480px) { .parcours-2col { grid-template-columns:1fr; } }
.parcours-col { border-radius:10px;padding:12px; }
.parcours-col-title { font-size:0.70rem;font-weight:700;text-transform:uppercase;margin-bottom:6px; }
.parcours-col-rose   { background:rgba(232,124,195,0.06);border:1px solid rgba(232,124,195,0.15); }
.parcours-col-green  { background:rgba(126,200,160,0.06);border:1px solid rgba(126,200,160,0.15); }
.parcours-col-immo   { background:rgba(196,114,74,0.06); border:1px solid rgba(196,114,74,0.15);  }

/* Steps ordonnés (étape 25-30 ans) */
.parcours-steps { display:flex;flex-direction:column;gap:8px;margin-bottom:16px; }
.parcours-step-item { background:var(--s3);border-radius:10px;padding:12px;display:flex;gap:12px;align-items:flex-start; }
.parcours-step-num { width:24px;height:24px;border-radius:50%;color:#fff;font-size:0.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.parcours-step-num-cyan   { background:#5BB8D4; }
.parcours-step-num-immo   { background:#C4724A; }
.parcours-step-num-rose   { background:#E87CC3; }
.parcours-step-num-purple { background:#c9b8ff;color:#1E1D38; }
.parcours-step-num-gold   { background:#E8C23A;color:#1E1D38; }
.parcours-step-title { font-weight:700;color:var(--text);font-size:0.86rem;margin-bottom:2px; }
.parcours-step-text  { font-size:0.78rem;color:var(--muted); }

/* Barre de portefeuille */
.portfolio-bar { border-radius:10px;overflow:hidden;height:24px;display:flex;margin-bottom:8px; }
.portfolio-bar-etf    { background:#5BB8D4;display:flex;align-items:center;justify-content:center;font-size:0.68rem;font-weight:700;color:#fff; }
.portfolio-bar-immo   { background:#C4724A;display:flex;align-items:center;justify-content:center;font-size:0.68rem;font-weight:700;color:#fff; }
.portfolio-bar-oblig  { background:#7EC8A0;display:flex;align-items:center;justify-content:center;font-size:0.62rem;font-weight:700;color:#fff; }
.portfolio-bar-or     { background:#E8C23A;display:flex;align-items:center;justify-content:center;font-size:0.55rem;font-weight:700;color:#fff; }
.portfolio-bar-alt    { background:#E87CC3;display:flex;align-items:center;justify-content:center;font-size:0.55rem;font-weight:700;color:#fff; }

/* Grille piliers pension */
.piliers-grid { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.pilier-card { background:var(--s3);border-radius:10px;padding:12px; }
.pilier-card-title { font-size:0.72rem;font-weight:700;margin-bottom:4px; }
.pilier-card-text  { font-size:0.78rem;color:var(--muted);line-height:1.6; }

/* Glissement portefeuille (étape 50-60) */
.glissement-list { font-size:0.78rem;color:var(--muted);line-height:1.7; }

/* Portfolio bar widths */
.w-5p { width:5%; }
.w-10p { width:10%; }
.w-15p { width:15%; }
.w-20p { width:20%; }
.w-25p { width:25%; }
.w-30p { width:30%; }
.w-40p { width:40%; }
.w-50p { width:50%; }
.w-60p { width:60%; }
.w-65p { width:65%; }
.w-70p { width:70%; }
.w-75p { width:75%; }
.w-80p { width:80%; }

.compare-bars { margin:14px 0; }
.compare-bars-title { font-size:0.75rem;font-weight:700;color:var(--muted);margin-bottom:10px;text-transform:uppercase;letter-spacing:0.08em; }

.calc-result-row { display:flex;justify-content:space-between;width:100%;flex-wrap:wrap;gap:8px; }

.quiz-next-btn { font-size:0.82rem;padding:9px 16px; }

/* ══ PSYCHOLOGIE ══ */
.emotion-list { display:flex;flex-direction:column;gap:6px;margin:16px 0; }
.emotion-item { display:flex;gap:12px;align-items:center;padding:10px 14px;border-radius:0 10px 10px 0; }
.emotion-item-green  { background:rgba(126,200,160,0.07);border-left:3px solid #7EC8A0; }
.emotion-item-gold   { background:rgba(232,194,58,0.07);  border-left:3px solid #E8C23A; }
.emotion-item-rose   { background:rgba(232,124,195,0.07); border-left:3px solid var(--rose); }
.emotion-item-muted  { background:var(--s3);              border-left:3px solid var(--muted); }
.emotion-icon { font-size:1.1rem;flex-shrink:0; }
.emotion-text { font-size:0.78rem;color:var(--muted); }

.step-num-gradient { width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#E87CC3,#5BB8D4);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:0.84rem;flex-shrink:0; }

.ennemi-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0; }
@media(max-width:480px) { .ennemi-grid { grid-template-columns:1fr; } }
.ennemi-card { background:rgba(232,124,195,0.07);border:1px solid rgba(232,124,195,0.20);border-radius:12px;padding:14px; }
.ennemi-icon { font-size:1.4rem;margin-bottom:6px; }
.ennemi-title { font-size:0.86rem;font-weight:700;color:var(--text);margin-bottom:4px; }
.ennemi-text { font-size:0.76rem;color:var(--muted);line-height:1.6; }

.quote-author { font-size:0.76rem;color:var(--muted); }

/* ══ GLOSSAIRE ══ */
.glossary-search-wrap { background:var(--s2);border:1px solid var(--border);border-radius:14px;padding:12px 16px;margin-bottom:32px;display:flex;gap:10px;align-items:center; }
.glossary-search-icon { font-size:1.2rem; }
.glossary-search-input { border:none;background:transparent;padding:4px 0;font-size:0.90rem;color:var(--text);width:100%;outline:none; }

.glossary-card { background:var(--s2);border:1px solid var(--faint);border-radius:14px;padding:14px 16px;margin-bottom:8px;display:flex;align-items:flex-start;gap:12px; }
.glossary-card-icon { font-size:1.3rem;flex-shrink:0;margin-top:2px; }
.glossary-card-body { flex:1;min-width:0; }
.glossary-card-header { display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:4px; }
.glossary-card-term { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.1rem;color:var(--text); }
.glossary-card-full { font-size:0.78rem;color:var(--muted); }
.glossary-card-tag { font-size:0.60rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;padding:2px 8px;border-radius:12px;border:1px solid;flex-shrink:0; }
.glossary-card-tag-invest  { color:#5BB8D4;border-color:rgba(91,184,212,0.30);background:rgba(91,184,212,0.07); }
.glossary-card-tag-fiscal  { color:#c9b8ff;border-color:rgba(201,184,255,0.30);background:rgba(201,184,255,0.07); }
.glossary-card-tag-budget  { color:#7EC8A0;border-color:rgba(126,200,160,0.30);background:rgba(126,200,160,0.07); }
.glossary-card-tag-immo    { color:#C4724A;border-color:rgba(196,114,74,0.30);background:rgba(196,114,74,0.07); }
.glossary-card-tag-societe { color:#E87CC3;border-color:rgba(232,124,195,0.30);background:rgba(232,124,195,0.07); }
.glossary-card-tag-crypto  { color:#F7931A;border-color:rgba(247,147,26,0.30);background:rgba(247,147,26,0.07); }
.glossary-card-tag-retraite{ color:#E8C23A;border-color:rgba(232,194,58,0.30);background:rgba(232,194,58,0.07); }
.glossary-card-tag-alt     { color:var(--muted);border-color:var(--faint);background:var(--s3); }
.glossary-card-def { font-size:0.84rem;color:var(--text2);line-height:1.65;margin:0; }

/* ══ CONTENU ══ */
.concept-week-badge { display:inline-block;font-size:0.68rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);background:var(--s2);border:1px solid var(--border);border-radius:20px;padding:5px 14px;margin-bottom:12px; }
.concept-categorie { font-size:0.75rem;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;margin-bottom:10px; }
.concept-titre { font-family:'DM Serif Display',serif;font-style:italic;font-size:clamp(1.6rem,5vw,2.2rem);color:var(--text);line-height:1.2;margin-bottom:24px;max-width:560px;margin-left:auto;margin-right:auto; }
.concept-history-item { display:flex;flex-direction:column;gap:4px;background:var(--s2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;text-decoration:none;transition:background 0.18s; }
.concept-history-item:hover { background:var(--s3); }
.concept-history-meta { display:flex;gap:8px;align-items:center; }
.concept-history-week { font-size:0.68rem;color:var(--muted2);font-weight:700;letter-spacing:0.06em; }
.concept-history-cat { font-size:0.65rem;padding:2px 8px;border-radius:20px;font-weight:700; }
.concept-history-titre { font-size:0.84rem;font-weight:600;color:var(--text2);line-height:1.4; }
.concept-history-grid { display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:48px; }
.concept-current-card { text-align:center;border:1px solid rgba(232,124,195,0.25);background:linear-gradient(135deg,rgba(232,124,195,0.05),rgba(91,184,212,0.04));position:relative;overflow:hidden;margin-bottom:12px; }
.concept-current-bar { position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--rose),var(--cyan)); }
.concept-progress { margin-bottom:40px; }
.concept-progress-top { display:flex;justify-content:space-between;font-size:0.70rem;color:var(--muted);margin-bottom:5px; }
.concept-progress-track { background:var(--s3);border-radius:20px;height:6px;overflow:hidden; }
.concept-progress-fill { height:100%;background:linear-gradient(90deg,var(--rose),var(--cyan));border-radius:20px;width:0%;transition:width 0.6s; }
.concept-history-label { font-size:0.68rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;display:flex;align-items:center;gap:12px; }
.concept-history-rule { flex:1;height:1px;background:linear-gradient(90deg,var(--faint),transparent); }

/* Downloads page */
.dl-auth-msg { background:rgba(126,200,160,0.08);border:1px solid rgba(126,200,160,0.20);border-radius:12px;padding:12px 16px;margin-bottom:20px;font-size:0.82rem;color:#7EC8A0; }
.dl-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:40px; }
@media(max-width:480px) { .dl-grid { grid-template-columns:1fr; } }
.dl-card { background:var(--s2);border:1px solid var(--border);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px; }
.dl-card-top { display:flex;justify-content:space-between;align-items:flex-start;gap:8px; }
.dl-card-icon { font-size:1.4rem; }
.dl-card-tag { font-size:0.60rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;padding:2px 8px;border-radius:20px; }
.dl-card-title { font-size:0.86rem;font-weight:700;color:var(--text);margin-bottom:4px;line-height:1.3; }
.dl-card-desc { font-size:0.74rem;color:var(--muted);line-height:1.6; }
.dl-card-type { font-size:0.66rem;color:var(--muted2); }

/* Newsletter page */
.nl-hero { min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 0; }
.nl-hero-avatar { width:100px;height:100px;object-fit:cover;object-position:50% 55%;border-radius:50%;margin:0 auto 24px;display:block;filter:drop-shadow(0 8px 24px rgba(232,124,195,.22)); }
.nl-hero-card { background:var(--s2);border:1px solid rgba(232,124,195,0.20);border-radius:20px;padding:32px 28px;max-width:480px;width:100%;position:relative;overflow:hidden;margin-bottom:32px; }
.nl-hero-bar { position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--rose),var(--cyan)); }
.nl-hero-trust { display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:16px; }
.nl-hero-trust-item { font-size:0.73rem;color:var(--muted);display:flex;align-items:center;gap:5px; }
.nl-hero-trust-check { color:var(--cyan); }
.nl-erreurs-grid { display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:560px;text-align:left; }
@media(max-width:480px) { .nl-erreurs-grid { grid-template-columns:1fr; } }
.nl-erreur-item { background:var(--s2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:flex;gap:10px;align-items:flex-start; }
.nl-erreur-icon { font-size:1.2rem;flex-shrink:0; }
.nl-erreur-text { font-size:0.82rem;color:var(--text2);line-height:1.5; }

/* Videos page */
.yt-count-label { font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;display:flex;align-items:center;gap:12px; }
.yt-count-rule { flex:1;height:1px;background:linear-gradient(90deg,var(--faint),transparent); }

.yt-status-msg { font-size:.80rem;color:var(--muted);margin-bottom:12px; }

.nl-hero-title { max-width:580px;margin:10px auto 14px; }
.nl-hero-lead { margin:0 auto 36px;max-width:480px; }
.nl-hero-btn { width:100%;justify-content:center;margin-top:8px; }

/* Videos page */
.platform-row { display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px; }
.platform-btn { background:var(--s2);border:1px solid var(--border);border-radius:14px;padding:12px 16px;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:90px;transition:background 0.18s; }
.platform-btn:hover { background:var(--s3); }
.platform-btn-icon { font-size:1.4rem; }
.platform-btn-name { font-size:0.82rem;font-weight:700;color:var(--text); }
.platform-btn-sub { font-size:0.64rem;color:var(--muted); }

.yt-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:40px; }
.yt-card { background:var(--s2);border:1px solid var(--border);border-radius:14px;overflow:hidden;text-decoration:none;transition:background 0.18s; }
.yt-card:hover { background:var(--s3); }
.yt-thumb-wrap { position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--s3); }
.yt-thumb-wrap img { width:100%;height:100%;object-fit:cover; }
.yt-play-btn { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.25);color:#fff;font-size:1.4rem;opacity:0;transition:opacity 0.18s; }
.yt-card:hover .yt-play-btn { opacity:1; }
.yt-info { padding:10px 12px; }
.yt-title { font-size:0.82rem;font-weight:600;color:var(--text);line-height:1.4;margin-bottom:4px; }
.yt-date { font-size:0.68rem;color:var(--muted); }
.yt-skeleton { background:var(--s3);border-radius:14px;aspect-ratio:16/9; animation:shimmer 1.4s infinite; }

/* Video cards générées par JS */
.video-card { background:var(--s2);border:1px solid var(--border);border-radius:14px;overflow:hidden;text-decoration:none;display:flex;flex-direction:column; }
.video-cat { font-size:0.62rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;padding:8px 12px 0;color:var(--muted); }
.video-info { padding:10px 12px; }
.video-title { font-size:0.84rem;font-weight:600;color:var(--text);line-height:1.4;margin-bottom:4px; }
.video-desc { font-size:0.76rem;color:var(--muted);line-height:1.5; }

/* ══════════════════════════════════════════════════════
   INDEX.HTML — ww-hero / ww-section / ww-explore / ww-quiz
   ══════════════════════════════════════════════════════ */

/* ── Hero ── */
.ww-hero { position:relative;min-height:min(92vh,760px);display:flex;align-items:center;justify-content:center;text-align:center;padding:100px 20px 60px; }
.ww-hero-inner { max-width:660px;width:100%;position:relative;z-index:2; }
.ww-hero-waffy { width:88px;height:88px;object-fit:cover;border-radius:50%;margin:0 auto 20px;display:block;filter:drop-shadow(0 8px 24px rgba(232,124,195,.28)); }
.ww-hero-waffy-img { width:72px;height:72px;object-fit:cover;border-radius:50%;margin:0 auto 20px;display:block; }
.ww-hero-eyebrow { font-size:0.74rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:18px; }
.ww-hero-title { font-family:'DM Serif Display',serif;font-style:italic;font-size:clamp(2.4rem,7vw,4rem);line-height:1.12;color:var(--text);margin-bottom:16px; }
.ww-hero-gradient { background:linear-gradient(135deg,var(--rose),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.ww-hero-sub { font-size:1.05rem;color:var(--muted);line-height:1.7;margin-bottom:32px;max-width:480px;margin-left:auto;margin-right:auto; }
.ww-hero-ctas { display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-bottom:28px; }
.ww-hero-proof { display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:0.74rem;color:var(--muted); }
.ww-proof-dot { color:var(--muted2); }
.ww-hero-scroll { position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:1.1rem;color:var(--muted2);animation:bounce 2s infinite; }
@keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(6px)} }

/* ── CTAs ── */
.ww-cta-primary { display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:14px;background:linear-gradient(135deg,var(--rose),#c45fa0);color:#fff;font-weight:700;font-size:0.92rem;text-decoration:none;transition:opacity 0.18s;white-space:nowrap; }
.ww-cta-primary:hover { opacity:0.88; }
.ww-cta-secondary { display:inline-flex;align-items:center;gap:8px;padding:12px 26px;border-radius:14px;background:var(--s2);border:1px solid var(--border);color:var(--text);font-weight:600;font-size:0.90rem;text-decoration:none;transition:background 0.18s;white-space:nowrap; }
.ww-cta-secondary:hover { background:var(--s3); }
.ww-cta-note { font-size:0.72rem;color:var(--muted);margin-top:12px; }

/* ── Sections ── */
.ww-section { padding:72px 20px; }
.ww-section-alt { background:var(--s2); }
.ww-section-cta { background:linear-gradient(135deg,rgba(232,124,195,0.05),rgba(91,184,212,0.04));border-top:1px solid var(--faint); }
.ww-section-inner { max-width:760px;margin:0 auto; }
.ww-section-center { text-align:center; }
.ww-section-eyebrow { font-size:0.68rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:12px; }
.ww-section-title { font-family:'DM Serif Display',serif;font-style:italic;font-size:clamp(1.6rem,4vw,2.4rem);color:var(--text);margin-bottom:12px;line-height:1.2; }
.ww-section-sub { font-size:0.92rem;color:var(--muted);line-height:1.7;margin-bottom:32px; }
.ww-section-sub-narrow { max-width:460px;margin-left:auto;margin-right:auto; }

/* ── Themes grid ── */
.ww-themes-label { font-size:0.70rem;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;color:var(--muted);margin:28px 0 12px; }
.ww-themes-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:8px; }
.ww-theme-card { background:var(--s2);border:1px solid var(--border);border-radius:14px;padding:14px;text-decoration:none;display:flex;flex-direction:column;gap:5px;transition:background 0.18s; }
.ww-theme-card:hover { background:var(--s3); }
.ww-theme-emoji { font-size:1.4rem; }
.ww-theme-name { font-size:0.88rem;font-weight:700;color:var(--text); }
.ww-theme-count { font-size:0.64rem;color:var(--muted); }
.ww-theme-pages { display:flex;flex-wrap:wrap;gap:4px;margin-top:4px; }
.ww-theme-pill { font-size:0.60rem;background:var(--s3);border-radius:20px;padding:2px 7px;color:var(--muted); }

/* ── Explore grid ── */
.ww-explore-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px; }
.ww-explore-card { background:var(--s2);border:1px solid var(--border);border-radius:14px;padding:14px;display:flex;gap:12px;align-items:flex-start;text-decoration:none;transition:background 0.18s; }
.ww-explore-card:hover { background:var(--s3); }
.ww-explore-emoji { font-size:1.5rem;flex-shrink:0;margin-top:2px; }
.ww-explore-name { font-size:0.88rem;font-weight:700;color:var(--text);margin-bottom:2px; }
.ww-explore-desc { font-size:0.72rem;color:var(--muted);line-height:1.6; }
.ww-explore-count { font-size:0.64rem;color:var(--muted2);margin-top:4px; }

/* ── Guide quiz ── */
.ww-quiz-inline { background:var(--s2);border:1px solid var(--border);border-radius:18px;padding:24px;margin-bottom:8px; }
.ww-quiz-step { margin-bottom:22px; }
.ww-quiz-label { font-size:0.80rem;font-weight:700;color:var(--muted);margin-bottom:10px; }
.ww-quiz-btns { display:flex;gap:8px;flex-wrap:wrap; }
.ww-quiz-btns-grid { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.ww-quiz-btn { padding:10px 16px;border-radius:11px;border:1px solid var(--border);background:var(--s3);color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.84rem;font-weight:600;cursor:pointer;transition:background 0.18s,border-color 0.18s;text-align:left; }
.ww-quiz-btn:hover { background:var(--s2);border-color:var(--rose); }
.ww-quiz-btn.selected { background:rgba(232,124,195,0.10);border-color:rgba(232,124,195,0.40);color:var(--rose); }
.ww-quiz-btn-full { grid-column:1/-1; }
.ww-quiz-results { margin-top:16px;padding-top:16px;border-top:1px solid var(--faint); }
.ww-quiz-results-hidden { display:none; }
.ww-quiz-results-label { font-size:0.72rem;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;color:var(--muted);margin-bottom:12px; }
.ww-quiz-recs-grid { display:flex;flex-direction:column;gap:8px;margin-bottom:16px; }
.ww-quiz-rec { display:flex;gap:12px;align-items:flex-start;background:var(--s3);border-radius:12px;padding:12px 14px;text-decoration:none;transition:background 0.18s; }
.ww-quiz-rec:hover { background:var(--s2); }
.ww-quiz-rec-emoji { font-size:1.3rem;flex-shrink:0; }
.ww-quiz-rec-title { font-size:0.88rem;font-weight:700;color:var(--text);margin-bottom:2px; }
.ww-quiz-rec-desc { font-size:0.74rem;color:var(--muted);line-height:1.6; }
.ww-quiz-waffy { font-size:0.76rem;color:var(--muted);margin-bottom:12px;padding:10px;background:var(--s3);border-radius:10px; }
.ww-quiz-reset { background:none;border:1px solid var(--border);border-radius:10px;padding:8px 16px;font-size:0.78rem;color:var(--muted);cursor:pointer;font-family:'DM Sans',sans-serif; }
.ww-quiz-reset:hover { background:var(--s3); }


/* ══════════════════════════════════════════════════════
   DOCTRINE.HTML — pg-* classes
   ══════════════════════════════════════════════════════ */

.pg { scroll-behavior:smooth; }
.pg-page { max-width:900px;margin:0 auto;padding:0 16px; }

/* Hero */
.pg-hero { min-height:min(95vh,800px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 20px 60px;position:relative; }
.pg-badge { display:inline-block;font-size:0.68rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);background:var(--s2);border:1px solid var(--border);border-radius:20px;padding:5px 14px;margin-bottom:22px; }
.pg-h1 { font-family:'DM Serif Display',serif;font-style:italic;font-size:clamp(2.4rem,7vw,4.2rem);line-height:1.1;color:var(--text);margin-bottom:20px;max-width:620px; }
.pg-hero-text { font-size:1.05rem;color:var(--muted);line-height:1.75;margin-bottom:36px;max-width:500px;margin-left:auto;margin-right:auto; }
.pg-hero-cta { display:flex;gap:10px;flex-wrap:wrap;justify-content:center; }
.pg-hero-cta-secondary { display:inline-flex;align-items:center;gap:6px;padding:12px 24px;border-radius:13px;background:var(--s2);border:1px solid var(--border);color:var(--text);font-weight:600;font-size:0.88rem;text-decoration:none;transition:background 0.18s; }
.pg-hero-cta-secondary:hover { background:var(--s3); }

/* Story */
.pg-story { max-width:560px;margin:0 auto;padding:60px 20px; }
.pg-section-label { font-size:0.60rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted2);margin-bottom:28px; }
.pg-story-line { font-family:'DM Serif Display',serif;font-style:italic;font-size:clamp(1.5rem,4vw,2.1rem);line-height:1.35;color:var(--text);margin-bottom:20px; }
.pg-story-line.muted { color:var(--muted); }
.pg-story-green { color:#7EC8A0; }

/* Giant word */
.pg-giant { text-align:center;padding:48px 20px;overflow:hidden; }
.pg-giant-word { font-family:'DM Serif Display',serif;font-size:clamp(5rem,18vw,11rem);font-style:italic;color:rgba(255,255,255,0.03);letter-spacing:-0.04em;line-height:1;user-select:none; }

/* Chips */
.pg-chip-wrap { max-width:600px;margin:0 auto 60px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;padding:0 20px; }
.pg-chip { font-size:0.74rem;font-weight:600;background:var(--s2);border:1px solid var(--border);border-radius:20px;padding:6px 14px;color:var(--muted); }
.pg-sep { height:1px;background:var(--faint);max-width:600px;margin:0 auto 60px; }

/* Inaction card */
.pg-inaction-card { background:var(--s2);border:1px solid var(--border);border-radius:18px;padding:24px;margin:24px 0;text-align:center; }
.pg-inaction-label { font-size:0.60rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted2);margin-bottom:8px; }
.pg-inaction-title { font-size:1rem;font-weight:700;color:var(--text);margin-bottom:20px; }
.pg-inaction-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:12px; }
.pg-inaction-col { background:var(--s3);border-radius:12px;padding:14px; }
.pg-inaction-value { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.6rem;margin-bottom:4px; }
.pg-inaction-sub { font-size:0.70rem;color:var(--muted);line-height:1.5; }

/* Path */
.pg-path { max-width:520px;margin:0 auto; }
.pg-path-step { display:flex;gap:14px;align-items:flex-start; }
.pg-path-num { width:36px;height:36px;border-radius:50%;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:0.88rem; }
.pg-path-num-green  { background:var(--budget); }
.pg-path-num-rose   { background:var(--rose); }
.pg-path-num-cyan   { background:var(--cyan); }
.pg-path-num-grad   { background:linear-gradient(135deg,var(--rose),var(--cyan)); }
.pg-path-text { font-size:0.90rem;color:var(--text2);line-height:1.7;padding-top:6px; }
.pg-path-connector { width:1px;height:28px;background:var(--faint);margin:4px 0 4px 17px; }

/* Plans */
.pg-plans { padding:80px 20px 40px; }
.pg-plans-title { font-family:'DM Serif Display',serif;font-style:italic;font-size:clamp(1.8rem,4vw,2.6rem);color:var(--text);text-align:center;margin-bottom:10px; }
.pg-plans-sub { font-size:0.88rem;color:var(--muted);text-align:center;margin-bottom:44px; }
.pg-plan { background:var(--s2);border:1px solid var(--border);border-radius:20px;padding:28px;position:relative;display:flex;flex-direction:column;gap:4px; }
.pg-plan.featured { border-color:rgba(232,124,195,0.35);box-shadow:0 0 40px rgba(232,124,195,0.10); }
.pg-plan.locked { opacity:0.65; }
.pg-plan-badge { position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,var(--rose),var(--cyan));color:#fff;font-size:0.62rem;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;padding:4px 14px;border-radius:20px;white-space:nowrap; }
.pg-plan-header { margin-bottom:16px; }
.pg-plan-eyebrow { font-size:0.62rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;margin-bottom:6px; }
.pg-plan-eyebrow-green { color:#7EC8A0; }
.pg-plan-eyebrow-cyan  { color:var(--cyan); }
.pg-plan-eyebrow-rose  { color:var(--rose); }
.pg-plan-name { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.6rem;color:var(--text); }
.pg-plan-desc { font-size:0.82rem;color:var(--muted);line-height:1.65;margin-top:4px; }
.pg-plan-price-wrap { margin:16px 0; }
.pg-plan-price { font-family:'DM Serif Display',serif;font-style:italic;font-size:2.4rem;color:var(--text); }
.pg-plan-period { font-size:0.76rem;color:var(--muted); }
.pg-plan-annual-text { font-size:0.72rem;color:var(--muted2);margin-top:2px; }
.pg-plan-features { margin:16px 0;display:flex;flex-direction:column;gap:8px; }
.pg-plan-note-text { font-size:0.70rem;color:var(--muted2);margin-top:8px; }
.pg-plan-cta-primary { display:block;text-align:center;padding:13px 20px;border-radius:13px;background:linear-gradient(135deg,var(--rose),#c45fa0);color:#fff;font-weight:700;font-size:0.88rem;text-decoration:none;margin-top:auto; }
.pg-plan-cta-secondary { display:block;text-align:center;padding:12px 20px;border-radius:13px;background:var(--s3);border:1px solid var(--border);color:var(--text);font-weight:600;font-size:0.86rem;text-decoration:none;margin-top:auto; }

/* Toggle annuel/mensuel */
.pg-toggle { display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:28px; }
.pg-toggle-btn { background:var(--s2);border:1px solid var(--border);border-radius:20px;padding:5px 14px;font-size:0.78rem;color:var(--muted);cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.18s; }
.pg-toggle-btn.active { background:var(--rose);color:#fff;border-color:var(--rose); }

/* Values */
.pg-value-grid { display:flex;flex-direction:column;gap:24px;max-width:600px;margin:0 auto 60px; }
.pg-value-row { display:flex;gap:16px;align-items:flex-start; }
.pg-value-icon { width:44px;height:44px;border-radius:12px;background:var(--s2);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0; }
.pg-value-title { font-size:0.90rem;font-weight:700;color:var(--text);margin-bottom:3px; }
.pg-value-text { font-size:0.80rem;color:var(--muted);line-height:1.65; }

/* Mirrors (FAQ alternée) */
.pg-mirrors { max-width:600px;margin:0 auto 60px;display:flex;flex-direction:column;gap:14px; }
.pg-mirror { background:var(--s2);border:1px solid var(--border);border-radius:16px;padding:18px 20px;cursor:pointer; }
.pg-mirror-q { display:flex;justify-content:space-between;align-items:center;gap:12px; }
.pg-mirror-num { font-size:0.68rem;font-weight:700;color:var(--muted2);flex-shrink:0; }
.pg-mirror-a { font-size:0.82rem;color:var(--muted);line-height:1.7;margin-top:10px;display:none; }
.pg-mirror.open .pg-mirror-a { display:block; }

/* FAQ */
.pg-faq { max-width:600px;margin:0 auto 60px;display:flex;flex-direction:column;gap:10px; }
.pg-faq-title { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.4rem;color:var(--text);margin-bottom:16px; }
.pg-faq-a { background:var(--s2);border:1px solid var(--border);border-radius:14px;padding:16px 18px; }

/* Comparison table */
.pg-cmp-wrap { overflow-x:auto;margin:0 auto 48px;max-width:720px; }
.pg-cmp-table { width:100%;border-collapse:separate;border-spacing:0 4px;font-size:0.80rem; }
.pg-cmp-th-left { text-align:left;padding:8px 10px;color:var(--muted);font-weight:600;font-size:0.70rem;text-transform:uppercase;letter-spacing:0.08em; }
.pg-cmp-th-socle,.pg-cmp-th-pilote,.pg-cmp-th-radar { text-align:center;padding:8px 10px;font-weight:700;font-size:0.80rem; }
.pg-cmp-th-sub { font-size:0.64rem;font-weight:400;color:var(--muted);display:block; }
.pg-cmp-th-pilote { color:var(--rose); }
.pg-cmp-th-radar { color:var(--cyan); }
.pg-cmp-td,.pg-cmp-td-last { padding:9px 10px;border-top:1px solid var(--faint); }
.pg-cmp-td-last { border-bottom:1px solid var(--faint); }
.pg-cmp-check { color:var(--budget);font-weight:700;text-align:center; }
.pg-cmp-check-last { color:var(--budget);font-weight:700;text-align:center; }
.pg-cmp-none,.pg-cmp-none-last { color:var(--muted2);text-align:center; }
.pg-cmp-extra { font-size:0.68rem;color:var(--muted2); }
.pg-cmp-pilote-col { background:rgba(232,124,195,0.04); }

/* Addon */
.pg-addon-wrap { max-width:680px;margin:0 auto 60px; }
.pg-addon-inner { background:rgba(91,184,212,0.05);border:1px solid rgba(91,184,212,0.20);border-radius:18px;padding:24px;display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap; }
.pg-addon-eyebrow { font-size:0.62rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:6px; }
.pg-addon-title { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.3rem;color:var(--text);margin-bottom:6px; }
.pg-addon-desc { font-size:0.82rem;color:var(--muted);line-height:1.65;margin-bottom:14px; }
.pg-addon-price-wrap { display:flex;align-items:baseline;gap:6px;margin-bottom:14px; }
.pg-addon-price { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.8rem;color:var(--text); }
.pg-addon-price-sub { font-size:0.72rem;color:var(--muted); }
.pg-addon-features { display:flex;flex-direction:column;gap:6px;margin-bottom:16px; }
.pg-addon-feature { font-size:0.78rem;color:var(--text2);display:flex;gap:6px; }
.pg-addon-check { color:var(--cyan);flex-shrink:0; }
.pg-addon-cta { display:inline-flex;align-items:center;gap:6px;padding:11px 22px;border-radius:12px;background:linear-gradient(135deg,var(--cyan),#3a98b4);color:#fff;font-weight:700;font-size:0.84rem;text-decoration:none; }

/* Waffy hint */
.pg-waffy-hint { background:rgba(232,124,195,0.05);border:1px solid rgba(232,124,195,0.15);border-radius:14px;padding:16px 18px;display:flex;gap:12px;align-items:center;max-width:560px;margin:0 auto 40px; }
.pg-waffy-hint-img { width:48px;height:48px;border-radius:50%;object-fit:cover;flex-shrink:0; }
.pg-waffy-hint-text { font-size:0.82rem;color:var(--muted);line-height:1.65; }

/* Quote */
.pg-quote-block { max-width:560px;margin:0 auto 60px;text-align:center;padding:32px; }
.pg-quote-text { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.4rem;color:var(--text);line-height:1.5; }

/* Final CTA */
.pg-final { background:linear-gradient(135deg,rgba(232,124,195,0.04),rgba(91,184,212,0.04));border-top:1px solid var(--faint);padding:80px 20px;text-align:center; }
.pg-final-title { font-family:'DM Serif Display',serif;font-style:italic;font-size:clamp(1.8rem,5vw,3rem);color:var(--text);margin-bottom:12px; }
.pg-final-sub { font-size:0.92rem;color:var(--muted);max-width:460px;margin:0 auto 32px;line-height:1.7; }
.pg-final-note { font-size:0.70rem;color:var(--muted2);margin-top:12px; }
.pg-final-cta-btn { display:inline-flex;align-items:center;gap:8px;padding:14px 32px;border-radius:14px;background:linear-gradient(135deg,var(--rose),#c45fa0);color:#fff;font-weight:700;font-size:0.96rem;text-decoration:none; }

/* Disclaimer */
.pg-disclaimer { max-width:560px;margin:32px auto;font-size:0.70rem;color:var(--muted2);line-height:1.7;text-align:center;padding:0 20px; }

/* Section inner wide */
.pg-section-inner { max-width:660px;margin:0 auto;padding:60px 20px; }
.pg-section-inner-wide { max-width:760px;margin:0 auto;padding:60px 20px; }

/* Steps list */
.steps-list { display:flex;flex-direction:column;gap:14px;margin:24px 0; }
.step-row { display:flex;gap:14px;align-items:flex-start;background:var(--s2);border-radius:12px;padding:14px; }

/* Reveal animations */
.reveal-up { opacity:0;transform:translateY(20px);transition:opacity 0.5s,transform 0.5s; }
.reveal-up.visible { opacity:1;transform:translateY(0); }
.reveal-left { opacity:0;transform:translateX(-20px);transition:opacity 0.5s,transform 0.5s; }
.reveal-left.visible { opacity:1;transform:translateX(0); }
.delay-1 { transition-delay:0.12s; }
.delay-2 { transition-delay:0.24s; }

/* ══ A-PROPOS CLASSES ══ */
.valeurs-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0; }
@media(max-width:480px) { .valeurs-grid { grid-template-columns:1fr; } }
.valeur-card { background:var(--s3);border-radius:14px;padding:16px; }
.valeur-icon { font-size:1.4rem;margin-bottom:8px; }
.valeur-title { font-weight:700;color:var(--text);margin-bottom:4px; }
.valeur-text { font-size:0.82rem;color:var(--muted);line-height:1.55; }

.affil-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0; }
@media(max-width:480px) { .affil-grid { grid-template-columns:1fr; } }
.affil-card-green { background:rgba(126,200,160,0.08);border:1px solid rgba(126,200,160,0.20);border-radius:14px;padding:16px; }
.affil-card-rose { background:rgba(232,124,195,0.08);border:1px solid rgba(232,124,195,0.18);border-radius:14px;padding:16px; }
.affil-card-title-green { font-weight:700;color:#7EC8A0;margin-bottom:8px; }
.affil-card-title-rose { font-weight:700;color:var(--rose);margin-bottom:8px; }
.affil-list { list-style:none;display:flex;flex-direction:column;gap:6px; }
.affil-list-item { font-size:0.82rem;color:var(--text2);display:flex;gap:8px; }
.affil-list-check-green { color:#7EC8A0; }
.affil-list-arrow-rose { color:var(--rose); }
.contact-link { display:inline-flex;align-items:center;gap:8px;background:var(--s3);border:1px solid var(--border);border-radius:12px;padding:12px 16px;text-decoration:none;color:var(--cyan);font-weight:600;margin-top:8px; }
.faq-bottom-label { font-size:0.68rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;display:flex;align-items:center;gap:12px; }
.faq-bottom-rule { flex:1;height:1px;background:linear-gradient(90deg,var(--faint),transparent); }
.faq-bottom-cta { background:linear-gradient(135deg,rgba(232,124,195,0.06),rgba(91,184,212,0.04));border:1px solid rgba(232,124,195,0.15);border-radius:16px;padding:20px;text-align:center; }
.faq-bottom-icon { font-size:1.6rem;margin-bottom:10px; }
.faq-bottom-title { font-weight:700;font-size:0.95rem;color:var(--text);margin-bottom:6px; }
.faq-bottom-desc { font-size:0.83rem;color:var(--muted);margin-bottom:16px; }
.faq-search-wrap { background:var(--s2);border:1px solid var(--border);border-radius:14px;padding:12px 14px;margin-bottom:24px;display:flex;gap:8px;align-items:center; }

.disclaimer-box { background:rgba(232,124,195,0.07);border:1px solid rgba(232,124,195,0.20);border-radius:14px;padding:16px 18px;margin-bottom:24px; }
.disclaimer-eyebrow { font-size:0.70rem;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;color:var(--rose);margin-bottom:6px; }
.disclaimer-text { font-size:0.84rem;color:var(--text2);line-height:1.65;margin:0; }
.mt-14 { margin-top:14px; }
.faq-bottom-wrap { margin:48px 0 16px; }

/* ══ LEGAL ══ */
.legal-meta { font-size:0.78rem;color:var(--muted);margin-bottom:28px;padding:10px 14px;background:var(--s2);border:1px solid var(--border);border-radius:10px; }
.legal-contact { background:var(--s2);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-top:32px; }
.legal-contact h3 { font-size:0.90rem;font-weight:700;color:var(--text);margin-bottom:8px; }
.legal-contact p { font-size:0.84rem;color:var(--text2);line-height:1.65; }
.legal-wrap { max-width:760px; }
.legal-note { font-size:0.80rem;color:var(--muted);margin-top:8px; }

/* ══ COMPTE — pages auth fullscreen ══ */
.auth-page { min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px; }
.auth-box { width:100%;max-width:380px; }
.auth-box-wide { width:100%;max-width:420px; }
.auth-header { text-align:center;margin-bottom:28px; }
.auth-logo { font-size:1.4rem;text-decoration:none;color:var(--text); }
.auth-title { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.5rem;color:var(--text);margin-top:12px; }
.auth-title-sm { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.4rem;color:var(--text);margin-top:12px; }
.auth-subtitle { font-size:0.80rem;color:var(--muted);margin-top:4px; }
.auth-card { background:var(--s2);border:1px solid var(--border);border-radius:20px;padding:28px 24px; }
.auth-card-center { background:var(--s2);border:1px solid var(--border);border-radius:20px;padding:32px 24px;text-align:center; }
.auth-footer { text-align:center;margin-top:18px;font-size:0.78rem;color:var(--muted); }
.auth-footer-sm { text-align:center;margin-top:16px; }
.auth-link { color:var(--rose);font-weight:600; }
.auth-link-muted { font-size:0.76rem;color:var(--muted);text-decoration:none; }
.auth-link-muted-sm { font-size:0.78rem;color:var(--muted);text-decoration:none; }

/* Champ de formulaire auth */
.auth-field { margin-bottom:14px; }
.auth-field-lg { margin-bottom:20px; }
.auth-label { font-size:0.72rem;font-weight:600;color:var(--muted);display:block;margin-bottom:5px; }
.auth-label-lg { font-size:0.72rem;font-weight:600;color:var(--muted);display:block;margin-bottom:6px; }
.auth-input { width:100%;background:var(--s3);border:1px solid var(--border);border-radius:10px;padding:11px 14px;font-family:'DM Sans',sans-serif;font-size:0.88rem;color:var(--text);outline:none;box-sizing:border-box;transition:border-color 0.18s; }
.auth-input:focus { border-color:rgba(232,124,195,0.45); }
.auth-input-green:focus { border-color:rgba(126,200,160,0.45); }
.auth-input-cols { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px; }

/* Boutons auth */
.auth-btn { width:100%;padding:13px;border-radius:12px;border:none;color:#fff;font-family:'DM Sans',sans-serif;font-weight:700;font-size:0.92rem;cursor:pointer;transition:opacity 0.18s; }
.auth-btn-rose { background:linear-gradient(135deg,#E87CC3,#5BB8D4); }
.auth-btn-green { background:linear-gradient(135deg,#7EC8A0,#4aa87a); }
.auth-btn-disabled { opacity:0.5; }

/* Messages erreur/succès */
.auth-error { display:none;background:rgba(232,124,195,0.08);border:1px solid rgba(232,124,195,0.25);border-radius:10px;padding:10px 14px;font-size:0.80rem;color:var(--rose);margin-bottom:14px; }
.auth-success { display:none;background:rgba(126,200,160,0.08);border:1px solid rgba(126,200,160,0.25);border-radius:10px;padding:12px 14px;font-size:0.82rem;color:#7EC8A0;margin-bottom:14px;text-align:center; }

/* Étape badge */
.auth-step-label { font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.10em;color:var(--muted);margin-bottom:16px; }

/* Quiz niveau/topic */
.auth-quiz-title { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.1rem;color:var(--text);margin-bottom:16px; }
.auth-quiz-title-sm { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.1rem;color:var(--text);margin-bottom:12px; }
.auth-level-btns { display:flex;flex-direction:column;gap:8px;margin-bottom:24px; }
.auth-level-btn { padding:14px;border-radius:12px;border:1px solid var(--border);background:var(--s3);color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.86rem;cursor:pointer;text-align:left;transition:all 0.18s; }
.auth-topic-grid { display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:20px; }
.auth-topic-btn { padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--s3);color:var(--muted);font-family:'DM Sans',sans-serif;font-size:0.80rem;cursor:pointer;transition:all 0.18s; }

/* Confirmation step-3 */
.auth-confirm-icon { font-size:2.5rem;margin-bottom:14px; }
.auth-confirm-title { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.3rem;color:var(--text);margin-bottom:8px; }
.auth-confirm-text { font-size:0.82rem;color:var(--muted);line-height:1.7;margin-bottom:20px; }

/* Spinner callback */
.auth-spinner-wrap { min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px; }
.auth-spinner { font-size:2rem;animation:spin 1s linear infinite; }
.auth-spinner-msg { font-size:0.84rem;color:var(--muted); }
@keyframes spin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }

/* Parrainage */
.ref-card { background:var(--s2);border:1px solid var(--border);border-radius:16px;padding:18px 16px;margin-bottom:12px; }
.ref-card h4 { font-size:0.76rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);margin-bottom:12px; }
.share-btn { display:flex;align-items:center;gap:8px;padding:11px 16px;border-radius:11px;border:1px solid var(--border);background:var(--s3);color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.82rem;font-weight:600;cursor:pointer;transition:all 0.18s;text-decoration:none;width:100%;box-sizing:border-box; }
.share-btn:hover { border-color:rgba(232,124,195,0.35);background:rgba(232,124,195,0.06); }
.filleul-row { display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--faint);font-size:0.80rem; }
.filleul-row:last-child { border-bottom:none; }
.status-badge { font-size:0.62rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;padding:3px 8px;border-radius:20px; }
.status-essai   { background:rgba(232,194,58,0.12);color:#E8C23A;border:1px solid rgba(232,194,58,0.25); }
.status-actif   { background:rgba(126,200,160,0.12);color:#7EC8A0;border:1px solid rgba(126,200,160,0.25); }
.status-expire  { background:rgba(255,255,255,0.05);color:var(--muted);border:1px solid var(--border); }
.reward-row { display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:var(--s3);border-radius:9px;margin-bottom:6px;font-size:0.80rem; }
.reward-flex { display:flex;align-items:center;gap:10px; }
.reward-icon { font-size:1.1rem; }
.reward-title { font-weight:600;color:var(--text); }
.reward-desc { font-size:0.72rem;color:var(--muted);margin-top:1px; }
.reward-value { text-align:right; }
.reward-value-amount { font-size:1rem;font-weight:700;color:#7EC8A0; }
.reward-value-label { font-size:0.66rem;color:var(--muted); }
.ref-link-wrap { display:flex;gap:8px;margin-bottom:12px; }
.ref-link-input { flex:1;background:var(--s3);border:1px solid var(--border);border-radius:9px;padding:9px 12px;font-family:monospace;font-size:0.76rem;color:var(--muted);outline:none;min-width:0; }
.ref-stats-grid { display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:16px; }
.ref-stat { background:var(--s3);border-radius:10px;padding:10px;text-align:center; }
.ref-stat-val { font-size:1.4rem;font-weight:700; }
.ref-stat-label { font-size:0.66rem;color:var(--muted); }
.parr-lead { font-size:0.82rem;color:var(--muted);margin-bottom:20px;line-height:1.7; }

.ref-rewards-list { display:flex;flex-direction:column;gap:8px;margin-bottom:16px; }
.ref-code-block { background:rgba(126,200,160,0.06);border:1px solid rgba(126,200,160,0.18);border-radius:12px;padding:12px;text-align:center; }
.ref-code-hint { font-size:0.80rem;color:var(--muted); }
.ref-share-list { display:flex;flex-direction:column;gap:8px; }

/* Parrainage extras */
.ref-stat-label-top { font-size:0.60rem;color:var(--muted);font-weight:700;margin-bottom:4px; }
.ref-stat-val-green { font-size:1.2rem;font-weight:700;color:#7EC8A0; }
.ref-stat-val-rose { font-size:1.2rem;font-weight:700;color:var(--rose); }
.ref-stat-val-text { font-size:1.2rem;font-weight:700;color:var(--text); }
.ref-hint { font-size:0.78rem;color:var(--muted); }
.ref-social-list { display:flex;flex-direction:column;gap:6px; }
.auth-forgot-link { text-align:center;margin-top:14px; }

/* ══ OUTILS / SIMULATEURS ══ */
.outil-section-header { margin-bottom:10px;display:flex;align-items:center;gap:10px; }
.outil-section-badge { font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;padding:4px 12px;border-radius:20px;border:1px solid; }
.outil-section-badge-cyan { color:#5BB8D4;background:rgba(91,184,212,0.10);border-color:rgba(91,184,212,0.25); }
.outil-section-badge-green { color:#7EC8A0;background:rgba(126,200,160,0.10);border-color:rgba(126,200,160,0.25); }
.outil-section-hint { font-size:0.72rem;color:var(--muted); }
.outil-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:32px; }
.outil-grid-span2 { grid-column:span 2; }
.outil-card { margin:0; }
.outil-label { font-size:0.68rem;font-weight:700;text-transform:uppercase;color:var(--muted);margin-bottom:10px; }
.outil-link { margin-top:10px;font-size:0.72rem;color:var(--muted2); }
.outil-link a { color:var(--cyan); }
.outil-placeholder { height:120px;background:var(--s3);border-radius:10px; }
.outil-placeholder-lg { height:140px;background:var(--s3);border-radius:10px; }

/* Blur gate outils (socle/pilote) */
.blur-gate-outils { position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to bottom,transparent,var(--bg,#080717) 55%);padding:48px 20px 28px;display:flex;flex-direction:column;align-items:center;text-align:center; }
.blur-gate-outils-box { background:var(--s2);border-radius:18px;padding:22px 24px;max-width:400px;box-shadow:0 8px 40px rgba(0,0,0,0.5); }
.blur-gate-outils-box-green { border:1px solid rgba(126,200,160,0.28); }
.blur-gate-outils-box-cyan  { border:1px solid rgba(91,184,212,0.28); }
.blur-gate-outils-icon { font-size:1.3rem;margin-bottom:6px; }
.blur-gate-outils-title { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.05rem;color:var(--text);margin-bottom:6px; }
.blur-gate-outils-desc { font-size:0.78rem;color:var(--muted);line-height:1.65;margin-bottom:14px; }
.blur-gate-outils-note { font-size:0.68rem;color:var(--muted2);margin-top:8px; }

/* ══ DASHBOARD ══ */
.dash-section { margin-bottom:20px; }
.dash-card { background:var(--s2);border:1px solid var(--border);border-radius:16px;padding:16px;margin-bottom:10px; }
.dash-card h4 { font-size:0.76rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);margin-bottom:12px; }
.progress-chapter { display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--faint);font-size:0.82rem; }
.progress-chapter:last-child { border-bottom:none; }
.check-icon { width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.68rem;flex-shrink:0; }
.done { background:rgba(126,200,160,0.15);color:#7EC8A0; }
.todo { background:var(--s3);color:var(--muted); }
.pref-btn { padding:9px 14px;border-radius:10px;border:1px solid var(--border);background:var(--s3);color:var(--muted);font-family:'DM Sans',sans-serif;font-size:0.80rem;cursor:pointer;transition:all 0.18s;text-align:left; }
.pref-btn.active { border-color:rgba(232,124,195,0.40);background:rgba(232,124,195,0.08);color:var(--text); }
.pref-btn:hover:not(.active) { border-color:rgba(255,255,255,0.15);color:var(--text2); }
.profile-btn { padding:9px 14px;border-radius:10px;border:1px solid var(--border);background:var(--s3);color:var(--muted);font-family:'DM Sans',sans-serif;font-size:0.80rem;cursor:pointer;transition:all 0.18s; }
.profile-btn.active { border-color:rgba(91,184,212,0.40);background:rgba(91,184,212,0.08);color:#5BB8D4; }
details summary { list-style:none;cursor:pointer; }
details summary::-webkit-details-marker { display:none; }

/* Dashboard layout */
.dash-header { display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;flex-wrap:wrap;gap:10px; }
.dash-greeting { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.5rem;color:var(--text); }
.dash-plan-badge { font-size:0.74rem;color:var(--muted);margin-top:4px; }
.dash-signout { padding:7px 13px;border-radius:9px;border:1px solid var(--border);background:var(--s2);color:var(--muted);font-family:'DM Sans',sans-serif;font-size:0.76rem;cursor:pointer; }
.dash-pref-note { font-size:0.78rem;color:var(--muted);line-height:1.65;margin-bottom:14px; }
.dash-pref-label { font-size:0.74rem;font-weight:700;color:var(--text);margin-bottom:4px; }
.dash-pref-desc { font-size:0.76rem;color:var(--muted);margin-bottom:10px;line-height:1.6; }
.dash-pref-hint { margin-top:6px;font-size:0.70rem;color:var(--muted2); }
.dash-pref-row { margin-bottom:18px; }
.dash-pref-level { display:flex;gap:8px; }
.dash-topic-grid { display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px; }
.dash-profile-row { display:flex;gap:8px;flex-wrap:wrap; }
.dash-progress-header { display:flex;justify-content:space-between;font-size:0.72rem;color:var(--muted);margin-bottom:5px; }
.dash-progress-track { background:var(--s3);border-radius:20px;height:8px;overflow:hidden; }
.dash-progress-fill { height:100%;background:linear-gradient(90deg,#E87CC3,#5BB8D4);border-radius:20px;width:0%;transition:width 0.6s; }
.dash-progress-wrap { margin-bottom:12px; }
.dash-chapters-msg { font-size:0.80rem;color:var(--muted); }
.dash-details-summary { background:var(--s2);border:1px solid var(--border);border-radius:14px;padding:13px 16px;display:flex;justify-content:space-between;align-items:center; }
.dash-details-body { background:var(--s2);border:1px solid var(--border);border-top:none;border-radius:0 0 14px 14px;padding:14px 16px; }
.dash-link-grid { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.dash-link { display:flex;align-items:center;gap:8px;padding:10px;background:var(--s3);border-radius:10px;text-decoration:none;font-size:0.78rem;color:var(--text); }
.dash-link-lg { display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--s3);border-radius:10px;text-decoration:none;font-size:0.80rem;color:var(--text); }
.dash-details-toggle { font-size:0.72rem;color:var(--muted); }
.dash-details-title { font-size:0.84rem;font-weight:700;color:var(--text); }
.dash-parcours-meta { font-size:0.72rem;color:var(--muted);margin-bottom:8px; }
.dash-parcours-link { color:var(--text2);text-decoration:none;font-size:0.82rem; }

/* Plan cards */
.dash-plan-text { font-size:0.82rem;color:var(--muted);line-height:1.7;margin-bottom:14px; }
.dash-plan-note { font-size:0.68rem;color:var(--muted);margin-top:6px; }

/* ══ RADAR ══ */
.filters { display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--faint); }
.filter-btn { font-size:0.72rem;font-weight:600;padding:5px 12px;border-radius:20px;border:1px solid var(--border);background:var(--s2);color:var(--muted);cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.18s; }
.filter-btn.active { background:rgba(232,124,195,0.12);border-color:rgba(232,124,195,0.30);color:var(--rose); }
.project-card { background:var(--s2);border:1px solid var(--border);border-radius:16px;padding:18px 16px;margin-bottom:10px;transition:border-color 0.18s,transform 0.18s; }
.project-card:hover { border-color:rgba(232,124,195,0.20);transform:translateX(2px); }
.project-title { font-size:0.92rem;font-weight:700;color:var(--text);margin-bottom:2px; }
.project-meta { font-size:0.72rem;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px; }
.project-platform { background:var(--s3);border-radius:6px;padding:2px 7px;font-size:0.66rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em; }
.verdict-badge { font-size:0.62rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;padding:4px 10px;border-radius:20px;flex-shrink:0; }
.verdict-interessant { background:rgba(126,200,160,0.12);color:#7EC8A0;border:1px solid rgba(126,200,160,0.25); }
.verdict-surveiller  { background:rgba(232,194,58,0.12);color:#E8C23A;border:1px solid rgba(232,194,58,0.25); }
.verdict-insuffisant { background:rgba(255,255,255,0.05);color:var(--muted);border:1px solid var(--border); }
.verdict-trop_risque { background:rgba(232,124,195,0.08);color:var(--rose);border:1px solid rgba(232,124,195,0.20); }
.project-summary { font-size:0.80rem;color:var(--muted);line-height:1.65;margin-bottom:12px; }
.score-row { display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:12px; }
.score-label { font-size:0.60rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted2);margin-bottom:3px; }
.score-bar { height:5px;background:var(--s3);border-radius:3px;overflow:hidden; }
.score-fill { height:100%;border-radius:3px;transition:width 0.4s; }
.follow-btn { font-size:0.74rem;font-weight:600;padding:7px 14px;border-radius:9px;border:1px solid var(--border);background:var(--s3);color:var(--muted);cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.18s; }
.follow-btn.watched { background:rgba(232,124,195,0.10);border-color:rgba(232,124,195,0.30);color:var(--rose); }
.project-actions { display:flex;gap:8px;align-items:center;flex-wrap:wrap; }
.project-header { display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px; }
.radar-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px; }
.radar-watchlist-btn { padding:9px 16px;border-radius:10px;border:1px solid var(--border);background:var(--s2);color:var(--muted);font-size:0.78rem;font-weight:600;text-decoration:none; }
.radar-desc { font-size:0.80rem;color:var(--muted);margin-bottom:20px; }
.watchlist-card { background:var(--s2);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:10px; }
.watchlist-card-header { display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap; }
.watchlist-card-title { font-size:0.90rem;font-weight:700;color:var(--text); }
.watchlist-card-meta { font-size:0.72rem;color:var(--muted);margin-top:2px; }
.watchlist-card-desc { font-size:0.78rem;color:var(--muted);margin-top:8px;line-height:1.6; }
.watchlist-empty { text-align:center;padding:40px; }
.watchlist-empty-icon { font-size:2rem;margin-bottom:12px; }
.watchlist-loading { text-align:center;padding:40px;color:var(--muted); }

/* ══ FISCAL PLUS-VALUES ══ */
.pv-regime-card { background:var(--s2);border:1px solid var(--border);border-radius:16px;padding:18px;margin-bottom:10px; }
.pv-regime-title { font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:10px; }

/* ══ CONTENU INDEX ══ */
.contenu-grid { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:32px; }
@media(max-width:480px) { .contenu-grid { grid-template-columns:1fr; } }
.contenu-card { background:var(--s2);border:1px solid var(--border);border-radius:18px;padding:20px;text-decoration:none;display:block;transition:background 0.18s; }
.contenu-card:hover { background:var(--s3); }
.contenu-card-icon { font-size:1.8rem;margin-bottom:10px; }
.contenu-card-title { font-size:1.0rem;font-weight:700;color:var(--text);margin-bottom:6px; }
.contenu-card-desc { font-size:0.82rem;color:var(--muted);line-height:1.65; }
.contenu-card-tag { font-size:0.62rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;margin-top:10px;color:var(--muted2); }

.section-heading { font-family:'DM Serif Display',serif;font-style:italic;font-size:1.4rem;color:var(--text);margin-bottom:12px; }
