/* ===== CONSOFINANCE — Variant C v2 ===== */
/* Design tokens from DESIGN.md */
:root{
  --ink:#1A1A2E;
  --ink-muted:#5A5A72;
  --ink-subtle:#8A8A9E;
  --canvas:#F8F7F4;
  --surface-1:#FFFFFF;
  --surface-2:#F0EEE8;
  --hairline:#E2E0DA;
  --hairline-soft:#F0EEE8;
  --primary:#1B3A5C;
  --primary-light:#2A5A8F;
  --primary-dark:#0F2440;
  --primary-soft:#E8EDF3;
  --accent:#C9952E;
  --accent-soft:#F5E6C8;
  --accent-dark:#A67A20;
  --success:#2D8F6C;
  --success-soft:#E8F5F0;
  --danger:#C44545;
  --danger-soft:#FDECEC;
  --on-primary:#FFFFFF;
  --on-dark:#FFFFFF;
  --on-dark-soft:rgba(255,255,255,0.72);
  --on-accent:#1A1A2E;
  --font-heading:'Fraunces',Georgia,'Times New Roman',serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-ui:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --max-w:1280px;
  --r-sm:4px;
  --r-md:8px;
  --r-lg:12px;
  --r-xl:16px;
  --shadow-card:0 1px 3px rgba(26,26,46,0.06),0 1px 2px rgba(26,26,46,0.04);
  --shadow-hover:0 8px 24px rgba(26,26,46,0.08),0 2px 6px rgba(26,26,46,0.04);
  --shadow-header:0 1px 3px rgba(26,26,46,0.06);
}

/* ===== RESET ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--font-body);font-size:16px;line-height:1.65;color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-decoration:none;transition:color .15s}
a:hover{color:var(--primary-light)}
img{display:block;max-width:100%;height:auto}
ul{list-style:none}
button{cursor:pointer;border:none;background:none;font:inherit}
input{font:inherit}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;color:var(--ink)}

/* ===== HEADER ===== */
.site-header{background:var(--surface-1);border-bottom:1px solid var(--hairline);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-header)}
.header-inner{max-width:var(--max-w);margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;height:64px;gap:2rem}
.logo{font-family:var(--font-heading);font-size:1.4rem;font-weight:700;color:var(--primary);letter-spacing:-0.02em;display:flex;align-items:center;gap:8px;text-decoration:none}
.logo:hover{color:var(--primary)}
.logo .shield{display:inline-flex;width:28px;height:28px;background:var(--primary);color:#fff;border-radius:6px;align-items:center;justify-content:center;font-size:13px}
.logo span{color:var(--accent)}
.nav{display:flex;gap:2px;flex:1}
.nav a{padding:.35rem .85rem;font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--ink-muted);border-radius:6px;transition:all .15s;letter-spacing:.04em;text-transform:uppercase}
.nav a:hover,.nav a.active{color:var(--primary);background:var(--primary-soft)}
.header-r{display:flex;align-items:center;gap:1rem}
.header-r .search{padding:.35rem .75rem;border:1px solid var(--hairline);border-radius:6px;font-size:13px;width:160px;background:var(--canvas);transition:border-color .15s,width .2s}
.header-r .search:focus{outline:none;border-color:var(--primary);width:200px}

/* ===== HERO GRID ===== */
.hero-grid{max-width:var(--max-w);margin:0 auto;padding:1.5rem 1.5rem 0;display:grid;grid-template-columns:1.6fr 1fr;gap:1rem}
.hero-main{position:relative;border-radius:14px;overflow:hidden;background:var(--primary-dark);min-height:360px;display:flex;flex-direction:column;justify-content:flex-end;cursor:default}
.hero-main-img{width:100%;height:100%;position:absolute;inset:0;background:linear-gradient(135deg,var(--primary-dark) 0%,#162d4f 100%);display:flex;align-items:center;justify-content:center;font-size:4rem}
.hero-main-overlay{position:relative;z-index:2;padding:2rem 1.5rem;background:linear-gradient(transparent,rgba(0,0,0,0.7))}
.hero-main-badge{display:inline-block;padding:3px 10px;border-radius:var(--r-sm);background:var(--danger);color:#fff;font-family:var(--font-ui);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.6rem}
.hero-main-title{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;color:#fff;letter-spacing:-0.02em;line-height:1.2;margin-bottom:.3rem}
.hero-main-desc{font-size:13px;color:rgba(255,255,255,0.7);line-height:1.5;margin-bottom:.5rem}
.hero-main-meta{font-size:11px;color:rgba(255,255,255,0.5);display:flex;gap:.75rem}
.hero-side{display:flex;flex-direction:column;gap:1rem}
.hero-side-card{position:relative;border-radius:14px;overflow:hidden;flex:1;min-height:172px;display:flex;flex-direction:column;justify-content:flex-end;cursor:default}
.hero-side-card:nth-child(1){background:linear-gradient(135deg,#1a3a5c,#0f2440)}
.hero-side-card:nth-child(2){background:linear-gradient(135deg,#2d5a3c,#1a3a2a)}
.hero-side-overlay{position:relative;z-index:2;padding:1.25rem}
.hero-side-badge{display:inline-block;padding:2px 8px;border-radius:var(--r-sm);font-family:var(--font-ui);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.35rem}
.hero-side-badge.green{background:var(--success);color:#fff}
.hero-side-badge.blue{background:var(--primary-light);color:#fff}
.hero-side-title{font-family:var(--font-heading);font-size:1rem;font-weight:600;color:#fff;letter-spacing:-0.01em;line-height:1.25;margin-bottom:.2rem}
.hero-side-meta{font-size:11px;color:rgba(255,255,255,0.5)}

/* ===== SECTION ===== */
.section{max-width:var(--max-w);margin:0 auto;padding:2rem 1.5rem}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}
.section-header h2{font-family:var(--font-heading);font-size:1.35rem;font-weight:700;color:var(--primary);letter-spacing:-0.02em;text-transform:uppercase}
.section-header a{font-family:var(--font-ui);font-size:12px;font-weight:600;color:var(--ink-subtle);text-transform:uppercase;letter-spacing:.06em}
.section-header a:hover{color:var(--primary)}

/* ===== À LA UNE ===== */
.une-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.une-card{background:var(--surface-1);border-radius:var(--r-lg);overflow:hidden;transition:all .25s;cursor:default;border:1px solid var(--hairline-soft)}
.une-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);border-color:var(--accent-soft)}
.une-card-img{width:100%;height:110px;display:flex;align-items:center;justify-content:center;font-size:2rem}
.une-card-img.green{background:var(--success-soft)}
.une-card-img.blue{background:var(--primary-soft)}
.une-card-img.red{background:var(--danger-soft)}
.une-card-img.gold{background:var(--accent-soft)}
.une-card-body{padding:.85rem 1rem 1rem}
.une-card-badge{display:inline-block;padding:2px 7px;border-radius:var(--r-sm);font-family:var(--font-ui);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.35rem}
.une-card-badge.green{background:var(--success);color:#fff}
.une-card-badge.blue{background:var(--primary-light);color:#fff}
.une-card-badge.red{background:var(--danger);color:#fff}
.une-card-badge.gold{background:var(--accent-soft);color:var(--accent-dark)}
.une-card-title{font-family:var(--font-heading);font-size:.9rem;font-weight:600;color:var(--ink);line-height:1.25;margin-bottom:.25rem}
.une-card-meta{font-size:11px;color:var(--ink-subtle)}

/* ===== SUJETS D'ACTU ===== */
.sujets-tabs{display:flex;gap:.35rem;margin-bottom:1.25rem;flex-wrap:wrap}
.sujets-tab{padding:.35rem .85rem;border-radius:6px;font-family:var(--font-ui);font-size:12px;font-weight:600;color:var(--ink-muted);background:transparent;cursor:pointer;border:none;transition:all .15s}
.sujets-tab:hover{color:var(--primary);background:var(--primary-soft)}
.sujets-tab.active{color:var(--primary);background:var(--primary-soft)}
.sujets-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.sujet-card{background:var(--surface-1);border-radius:var(--r-lg);overflow:hidden;transition:all .25s;cursor:default;border:1px solid var(--hairline-soft)}
.sujet-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);border-color:var(--accent-soft)}
.sujet-card[data-cat="aides"]{display:none}
.sujet-card[data-cat="conso"]{display:none}
.sujet-card[data-cat="credits"]{display:none}
.sujet-card[data-cat="assurances"]{display:none}
.sujet-card.show{display:block}
.sujet-card-img{width:100%;height:110px;display:flex;align-items:center;justify-content:center;font-size:1.8rem;background:var(--surface-2)}
.sujet-card-body{padding:.75rem 1rem 1rem}
.sujet-card-cat{font-family:var(--font-ui);font-size:10px;font-weight:600;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}
.sujet-card-title{font-family:var(--font-heading);font-size:.85rem;font-weight:600;color:var(--ink);line-height:1.2;margin-bottom:.3rem}
.sujet-card-author{font-size:11px;color:var(--ink-subtle)}

/* ===== ACTUALITÉS RÉCENTES + SIDEBAR ===== */
.main-dual{max-width:var(--max-w);margin:0 auto;padding:0 1.5rem 2rem;display:grid;grid-template-columns:1fr 320px;gap:2rem}
.recent-list{display:flex;flex-direction:column;gap:1rem}
.recent-item{display:flex;gap:1rem;align-items:flex-start;background:var(--surface-1);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--hairline-soft);padding:.75rem;transition:all .2s;cursor:default}
.recent-item:hover{box-shadow:0 4px 12px rgba(0,0,0,0.04);border-color:var(--accent-soft)}
.recent-item-img{width:100px;height:70px;border-radius:var(--r-md);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:var(--surface-2)}
.recent-item-body{flex:1;min-width:0}
.recent-item-cat{font-family:var(--font-ui);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.recent-item-cat.green{color:var(--success)}
.recent-item-cat.red{color:var(--danger)}
.recent-item-cat.blue{color:var(--primary-light)}
.recent-item-cat.gold{color:var(--accent)}
.recent-item-title{font-family:var(--font-heading);font-size:.9rem;font-weight:600;color:var(--ink);line-height:1.25;margin:.15rem 0 .2rem}
.recent-item-meta{font-size:11px;color:var(--ink-subtle)}

/* ===== SIDEBAR ===== */
.sidebar{display:flex;flex-direction:column;gap:1rem}
.widget{background:var(--surface-1);border-radius:var(--r-lg);border:1px solid var(--hairline-soft);padding:1.25rem}
.widget-title{font-family:var(--font-heading);font-size:1rem;font-weight:700;color:var(--primary);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--hairline-soft);letter-spacing:-0.01em}
.pop-item{display:flex;gap:.65rem;padding:.55rem 0;border-bottom:1px solid var(--hairline-soft)}
.pop-item:last-child{border-bottom:none}
.pop-num{font-family:var(--font-ui);font-size:13px;font-weight:700;color:var(--ink-subtle);width:20px;flex-shrink:0}
.pop-text{font-size:13px;line-height:1.3;color:var(--ink)}
.widget-item{display:flex;gap:.65rem;padding:.5rem 0;border-bottom:1px solid var(--hairline-soft);align-items:center}
.widget-item:last-child{border-bottom:none}
.widget-item-icon{font-size:1.1rem;flex-shrink:0}
.widget-item-text{font-size:13px;color:var(--ink);line-height:1.3}

/* ===== NEWSLETTER ===== */
.newsletter{background:var(--primary-dark);padding:3rem 1.5rem;text-align:center;color:#fff}
.nw-inner{max-width:500px;margin:0 auto}
.nw-inner h2{font-family:var(--font-heading);font-size:1.4rem;font-weight:700;margin-bottom:.35rem}
.nw-inner p{color:rgba(255,255,255,0.7);font-size:14px;margin-bottom:1.25rem}
.nw-form{display:flex;gap:.5rem;max-width:400px;margin:0 auto}
.nw-form input{flex:1;padding:.65rem 1rem;border-radius:var(--r-md);border:none;font-size:14px}
.nw-form button{padding:.65rem 1.25rem;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);font-family:var(--font-ui);font-size:14px;font-weight:700;border:none;cursor:pointer;transition:all .15s}
.nw-form button:hover{background:var(--accent-dark)}

/* ===== FOOTER ===== */
.footer{background:var(--primary-dark);border-top:1px solid rgba(255,255,255,0.06);padding:2.5rem 1.5rem 1.5rem}
.footer-inner{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;color:#fff}
.footer h3{font-family:var(--font-heading);font-size:1rem;font-weight:700;margin-bottom:.75rem}
.footer p{font-size:13px;color:rgba(255,255,255,0.5);line-height:1.6}
.footer ul{list-style:none}
.footer li{margin-bottom:.35rem}
.footer a{font-size:13px;color:rgba(255,255,255,0.5);transition:color .15s}
.footer a:hover{color:var(--accent)}
.footer-btm{grid-column:1/-1;border-top:1px solid rgba(255,255,255,0.06);padding-top:1rem;margin-top:1.5rem;font-size:12px;color:rgba(255,255,255,0.3);text-align:center}

/* ===== PAGE HERO (category pages) ===== */
.page-hero{background:var(--primary-dark);padding:2.5rem 1.5rem;text-align:center;color:#fff}
.page-hero-inner{max-width:640px;margin:0 auto}
.page-hero-icon{font-size:2.5rem;margin-bottom:.75rem;display:block;line-height:1}
.page-hero h1{font-family:var(--font-heading);font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700;color:#fff;letter-spacing:-0.03em;line-height:1.1;margin-bottom:.6rem}
.page-hero p{font-size:15px;color:rgba(255,255,255,0.7);line-height:1.6;max-width:480px;margin:0 auto}

/* ===== ARTICLE LIST (category pages) ===== */
.article-list{max-width:var(--max-w);margin:0 auto;padding:2rem 1.5rem}
.article-list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.article-card{background:var(--surface-1);border-radius:var(--r-lg);overflow:hidden;transition:all .25s;cursor:default;border:1px solid var(--hairline-soft)}
.article-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);border-color:var(--accent-soft)}
.article-card-img{width:100%;height:140px;display:flex;align-items:center;justify-content:center;font-size:2.5rem;background:var(--surface-2)}
.article-card-body{padding:1rem}
.article-card-badge{display:inline-block;padding:2px 7px;border-radius:var(--r-sm);font-family:var(--font-ui);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.5rem}
.article-card-badge.green{background:var(--success);color:#fff}
.article-card-badge.red{background:var(--danger);color:#fff}
.article-card-badge.blue{background:var(--primary-light);color:#fff}
.article-card-badge.gold{background:var(--accent-soft);color:var(--accent-dark)}
.article-card-title{font-family:var(--font-heading);font-size:1rem;font-weight:700;color:var(--ink);line-height:1.25;margin-bottom:.4rem}
.article-card-excerpt{font-size:14px;color:var(--ink-muted);line-height:1.5;margin-bottom:.5rem}
.article-card-meta{font-size:12px;color:var(--ink-subtle)}

/* ===== OUTILS CARDS ===== */
.outils-grid{max-width:var(--max-w);margin:0 auto;padding:2rem 1.5rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
 .outil-card{background:var(--surface-1);border-radius:var(--r-lg);overflow:hidden;transition:all .25s;cursor:default;border:1px solid var(--hairline-soft);padding:1.5rem}
.outil-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);border-color:var(--accent-soft)}
.outil-card-icon{font-size:2rem;margin-bottom:.75rem;display:block;line-height:1}
.outil-card-title{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;color:var(--ink);letter-spacing:-0.015em;line-height:1.25;margin-bottom:.4rem}
.outil-card-desc{font-size:13px;color:var(--ink-muted);line-height:1.5;margin-bottom:1rem}
.outil-card-link{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--primary)}

/* ===== COMPARATIFS TABLE ===== */
.comparatif-section{max-width:var(--max-w);margin:0 auto;padding:2rem 1.5rem}
.comparatif-table{width:100%;border-collapse:collapse;background:var(--surface-1);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--hairline-soft)}
.comparatif-table thead{background:var(--primary-dark);color:#fff}
.comparatif-table th{font-family:var(--font-ui);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.85rem 1rem;text-align:left;color:#fff}
.comparatif-table td{padding:.75rem 1rem;border-bottom:1px solid var(--hairline-soft);font-size:14px;color:var(--ink)}
.comparatif-table tr:last-child td{border-bottom:none}
.comparatif-table tr:hover td{background:var(--primary-soft)}
.comparatif-badge{display:inline-block;padding:2px 8px;border-radius:var(--r-sm);font-family:var(--font-ui);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.comparatif-badge.green{background:var(--success-soft);color:var(--success)}
.comparatif-badge.red{background:var(--danger-soft);color:var(--danger)}
.comparatif-badge.gold{background:var(--accent-soft);color:var(--accent-dark)}
.comparatif-badge.blue{background:var(--primary-soft);color:var(--primary)}

/* ===== CONTACT FORM ===== */
.contact-section{max-width:640px;margin:0 auto;padding:2rem 1.5rem}
.form-group{margin-bottom:1.25rem}
.form-group label{display:block;font-family:var(--font-ui);font-size:12px;font-weight:600;color:var(--ink-muted);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.04em}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:.65rem 1rem;border:1px solid var(--hairline);border-radius:var(--r-md);font-size:14px;background:var(--surface-1);color:var(--ink);transition:border-color .15s}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(27,58,92,0.08)}
.form-group textarea{min-height:140px;resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.65rem 1.5rem;border-radius:var(--r-md);font-family:var(--font-ui);font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all .15s}
.btn-primary{background:var(--primary);color:var(--on-primary)}
.btn-primary:hover{background:var(--primary-light);transform:translateY(-1px);box-shadow:0 4px 12px rgba(27,58,92,0.15)}
.btn-accent{background:var(--accent);color:var(--on-accent)}
.btn-accent:hover{background:var(--accent-dark)}

/* ===== À PROPOS ===== */
.apropos-section{max-width:760px;margin:0 auto;padding:2rem 1.5rem}
.apropos-section h2{font-family:var(--font-heading);font-size:1.35rem;font-weight:700;color:var(--primary);letter-spacing:-0.02em;margin-bottom:1rem}
.apropos-section p{font-size:16px;color:var(--ink-muted);line-height:1.7;margin-bottom:1.25rem}
.apropos-section ul{list-style:none;padding:0;margin-bottom:1.5rem}
.apropos-section ul li{padding:.5rem 0;padding-left:1.5rem;position:relative;color:var(--ink-muted);line-height:1.6}
.apropos-section ul li::before{content:'';position:absolute;left:0;top:.85rem;width:6px;height:6px;border-radius:50%;background:var(--accent)}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .une-grid,.sujets-grid,.article-list-grid,.outils-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .une-grid,.sujets-grid,.article-list-grid,.outils-grid{grid-template-columns:1fr}
  .main-dual{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr 1fr}
  .header-inner{flex-wrap:wrap;height:auto;padding:.75rem 1rem}
  .nav{order:3;width:100%;overflow-x:auto}
  .hero-grid{grid-template-columns:1fr}
  .hero-main{min-height:280px}
  .recent-item-img{width:70px;height:55px}
  .comparatif-table{font-size:13px}
}