/*
Theme Name: Calcul Juste Child
Theme URI: https://calculjuste.fr/
Description: Thème enfant de Twenty Twenty-Five pour Calcul Juste. Reprise fidèle du design livré (« La Précision Française ») : clair uniquement, aucun mode sombre.
Author: Calcul Juste
Template: twentytwentyfive
Version: 1.0.7
Text Domain: calcul-juste-child
License: Proprietary
*/

/* ==========================================================================
   CSS du site livré, repris verbatim (les deux blocs <style> d'origine,
   concaténés dans l'ordre). Aucune règle retouchée.
   ========================================================================== */

:root{color-scheme:light only;--paper:#F2F5F9;--card:#FFFFFF;--ink:#101E33;--muted:#5A6B73;--blue:#2451E6;--blue2:#3D68F0;--dark:#0B2447;--dark2:#071A33;--amber:#2451E6;--amber2:#C22733;--green:#177A4C;--red:#E63946;--line:#D9E1EC;--line2:#E8EEF3;--soft:#EEF3FA;--radius:16px;--shadow:0 10px 30px rgba(18,38,58,.08);--shadow2:0 18px 44px rgba(18,38,58,.14)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,system-ui,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,.num{font-family:"Outfit",Manrope,sans-serif}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hbar{display:flex;align-items:center;gap:18px;min-height:64px}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);font-family:"Outfit";font-weight:800;letter-spacing:.04em;font-size:19px}
.logo:hover{text-decoration:none}
.mark{width:36px;height:36px;border-radius:10px;background:var(--dark);color:#fff;display:grid;place-items:center;flex:none}
.mark svg{width:20px;height:20px}
nav.main{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
nav.main a{color:var(--ink);font-weight:600;font-size:14.5px;padding:9px 12px;border-radius:10px}
nav.main a:hover{background:var(--soft);text-decoration:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--amber);color:#FFFFFF;font-weight:700;border:0;border-radius:12px;padding:13px 20px;min-height:48px;cursor:pointer;font-size:15.5px;font-family:Manrope}
.btn:hover{background:#3D68F0;text-decoration:none}
.btn.blue{background:var(--blue);color:#fff}.btn.blue:hover{background:var(--blue2)}
.btn.guides-cta{background:#2451E6;color:#fff}.btn.guides-cta:hover{background:#3D68F0}
.btn.ghost{background:#fff;border:1.5px solid var(--line);color:var(--ink)}
.btn.small{min-height:44px;padding:9px 15px;font-size:14.5px}
.hero{background:linear-gradient(160deg,var(--dark) 0%,#12315E 70%,#17457A 100%);color:#fff;padding:52px 0 64px;position:relative;overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:26px 26px;pointer-events:none}
.hero .wrap{position:relative}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:start}
.eyebrow{display:inline-flex;align-items:center;gap:8px;background:rgba(220,232,255,.14);color:#DCE8FF;border:1px solid rgba(220,232,255,.45);font-weight:700;font-size:13px;padding:6px 12px;border-radius:999px;letter-spacing:.02em}
.hero h1{font-size:clamp(32px,4.6vw,52px);line-height:1.08;margin:18px 0 14px;font-weight:800;letter-spacing:-.01em}
.hero h1 em{font-style:normal;color:var(--amber)}
.hero p.lead{font-size:18px;color:#D7E4F2;max-width:34em;margin:0 0 22px}
.searchbox{background:#fff;border-radius:14px;display:flex;align-items:center;gap:10px;padding:6px 6px 6px 16px;box-shadow:var(--shadow2);max-width:560px}
.searchbox input{flex:1;border:0;outline:0;font-size:16.5px;font-family:Manrope;color:var(--ink);min-height:44px;min-width:0}
.searchres{position:relative;max-width:560px}
.searchlist{position:absolute;left:0;right:0;top:8px;background:#fff;color:var(--ink);border-radius:14px;box-shadow:var(--shadow2);overflow:hidden;z-index:20;border:1px solid var(--line2)}
.searchlist a{display:flex;justify-content:space-between;gap:10px;padding:12px 16px;color:var(--ink);border-bottom:1px solid var(--line2);font-weight:600;font-size:15px}
.searchlist a:hover{background:var(--soft);text-decoration:none}
.searchlist a span{color:var(--muted);font-weight:500;font-size:13px}
.hero-mini{background:#fff;color:var(--ink);border-radius:20px;padding:24px;box-shadow:var(--shadow2)}
.hero-mini h2{font-size:20px;margin:0 0 4px}
.hero-mini p{margin:0 0 16px;color:var(--muted);font-size:14.5px}
label.flabel{display:block;font-weight:600;font-size:14px;margin:0 0 6px}
.hint{font-size:13px;color:var(--muted);margin-top:5px}
input[type=number],input[type=text],input[type=date],select,textarea{width:100%;border:1.5px solid #CBD6DE;border-radius:11px;padding:11px 13px;font-size:16px;font-family:Manrope;color:var(--ink);background:#fff;min-height:48px}
input[type=number],input[type=text],input[type=date],select{height:48px}
/* Grille de champs partagée : emplacement d'étiquette fixe, contrôles appariés alignés */
.fgrid>div{display:flex;flex-direction:column}
.fgrid>div>label.flabel{min-height:47px;display:flex;align-items:flex-end;margin:0;padding-bottom:6px;line-height:1.45}
.fgrid>div>.hint{min-height:39px}
.fgrid>div>input,.fgrid>div>select{flex:none}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue2);outline-offset:1px;border-color:var(--blue)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fgrid .full{grid-column:1/-1}
.checks{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.chipcheck{display:inline-flex;align-items:center;gap:8px;background:var(--soft);border:1.5px solid var(--line2);border-radius:999px;padding:8px 14px;font-weight:600;font-size:14px;cursor:pointer;min-height:44px}
.chipcheck input{width:18px;height:18px;accent-color:var(--blue)}
.resultbox{background:var(--dark);color:#fff;border-radius:16px;padding:20px;margin-top:18px}
.resultbox .big{font-family:"Outfit";font-size:34px;font-weight:800;line-height:1.1}
.resultbox .lbl{color:#B9CCDF;font-size:13.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.rrow{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed rgba(255,255,255,.18);font-size:15px}
.rrow:last-child{border-bottom:0}
.rrow b{font-variant-numeric:tabular-nums;white-space:nowrap}
.trust{background:#fff;border-bottom:1px solid var(--line)}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.trust div{padding:20px 16px;text-align:center;border-left:1px solid var(--line)}
.trust div:first-child{border-left:0}
.trust b{display:block;font-family:"Outfit";font-size:24px;color:var(--dark)}
.trust span{font-size:13.5px;color:var(--muted);font-weight:600}
.trust .trust-ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#fff;margin:0 auto 10px}
.trust .trust-ic svg{width:20px;height:20px}
section.block{padding:52px 0 8px}
h2.sect{font-size:clamp(24px,3vw,32px);margin:0 0 8px;letter-spacing:-.01em}
p.sectsub{color:var(--muted);margin:0 0 26px;max-width:46em}
.catgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.catcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;gap:8px;box-shadow:0 2px 8px rgba(18,38,58,.04);color:var(--ink)}
.catcard:hover{text-decoration:none;box-shadow:var(--shadow);transform:translateY(-2px);transition:.15s}
.caticon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;color:#fff}
.caticon svg{width:27px;height:27px}
.catcard h3{margin:4px 0 0;font-size:19px}
.catcard p{margin:0;color:var(--muted);font-size:14.5px;flex:1}
.catcard .count{font-weight:700;color:var(--blue);font-size:14px}
.toolgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.toolcard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;color:var(--ink);display:block}
.toolcard:hover{text-decoration:none;border-color:var(--blue2);box-shadow:var(--shadow)}
.toolcard h3{margin:0 0 5px;font-size:16.5px}
.toolcard .tool-dir{display:block;font-size:13px;line-height:1.45;color:var(--muted);font-weight:600;margin:0 0 6px}
.toolcard p{margin:0;color:var(--muted);font-size:14px}
.toolcard .tag{display:inline-block;margin-top:10px;font-size:12px;font-weight:700;color:var(--blue);background:var(--soft);padding:3px 9px;border-radius:999px}
.top20grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:stretch}
.top20card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;color:var(--ink);display:flex;flex-direction:column;gap:8px;box-shadow:0 2px 8px rgba(18,38,58,.04);height:100%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.top20card:hover{text-decoration:none;border-color:var(--blue2);box-shadow:var(--shadow);transform:translateY(-2px)}
.top20icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:#fff;flex:none}
.top20icon svg{width:23px;height:23px}
.top20card h3{margin:2px 0 0;font-size:16.5px;line-height:1.35}
.top20-desc{display:block;font-size:13.5px;line-height:1.5;color:var(--muted);font-weight:500}
@media(max-width:960px){.top20grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.top20grid{grid-template-columns:repeat(2,1fr);gap:10px}.top20card{padding:14px}.top20card h3{font-size:15px;line-height:1.35}.top20-desc{font-size:13px;line-height:1.45}.top20icon{width:38px;height:38px;border-radius:10px}.top20icon svg{width:20px;height:20px}}
.popgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;align-items:stretch}
.popcol{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;height:100%;display:flex;flex-direction:column}
.popcol h3{margin:0 0 12px;font-size:17px;display:flex;align-items:center;gap:10px}
.popcol ul{list-style:none;margin:0;padding:0}
.popcol li a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line2);color:var(--ink);font-weight:600;font-size:15px}
.popcol li:last-child a{border-bottom:0}
.popcol li a:hover{color:var(--blue);text-decoration:none}
.popcol li a span.pop-arrow{color:var(--amber2);font-weight:800;flex:none}
.popcol li a .pop-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.popcol li a .pop-name{font-weight:600;line-height:1.35;color:var(--ink)}
.popcol li a .pop-desc{display:block;font-size:13px;line-height:1.45;color:var(--muted);font-weight:500}
.method{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.method div{background:var(--dark);color:#fff;border-radius:var(--radius);padding:24px}
.method b{font-family:"Outfit";font-size:19px;display:block;margin-bottom:8px}
.method p{color:#C9D9E8;margin:0;font-size:15px}
.method .n{color:var(--amber);font-family:"Outfit";font-weight:800;font-size:26px}
details.faq{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:10px}
details.faq summary{cursor:pointer;font-weight:700;padding:16px 18px;min-height:48px;font-size:16px;list-style:none}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary:after{content:"+";float:right;color:var(--blue);font-size:22px;line-height:1}
details.faq[open ] summary:after{content:"–"}
details.faq .fa{padding:0 18px 16px;color:#3D4F59;font-size:15.5px}
details.faq .fa p{margin:0 0 8px}
footer{background:var(--dark2);color:#C9D9E8;margin-top:64px;padding:48px 0 30px}
footer .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:28px}
footer h4{color:#fff;font-family:"Outfit";margin:0 0 12px;font-size:15px}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin:7px 0;font-size:14.5px}
footer a{color:#C9D9E8}
footer a:hover{color:#fff}
.flogo{color:#fff;font-family:"Outfit";font-weight:800;letter-spacing:.04em;font-size:20px;display:flex;gap:10px;align-items:center}
footer .fine{border-top:1px solid rgba(255,255,255,.14);margin-top:32px;padding-top:18px;font-size:13.5px;color:#8FA6B8}
.crumbs{font-size:14px;color:var(--muted);padding:20px 0 0}
.crumbs a{color:var(--muted);font-weight:600}
.toolhead{padding:8px 0 0}
.toolhead h1{font-size:clamp(27px,3.6vw,40px);margin:10px 0 10px;line-height:1.15}
.toolhead .lead{color:#3D4F59;font-size:17.5px;max-width:52em;margin:0}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.badge{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:13px;font-weight:700;color:var(--dark)}
.badge.green{background:#E7F4EC;border-color:#BFE3CF;color:var(--green)}
.calcwrap{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start;margin-top:26px}
.calccard{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow)}
.calccard h2{margin:0 0 16px;font-size:20px}
.rescard{background:var(--dark);color:#fff;border-radius:20px;padding:24px;position:sticky;top:84px}
.rescard h2{margin:0 0 6px;font-size:18px;color:#fff}
.rescard .big{font-family:"Outfit";font-size:36px;font-weight:800;line-height:1.12;margin:6px 0}
.rescard .sub{color:#B9CCDF;font-size:14px}
table.bt{width:100%;border-collapse:collapse;font-size:14.5px;margin-top:14px}
table.bt th,table.bt td{padding:8px 6px;border-bottom:1px solid rgba(255,255,255,.15);text-align:left}
table.bt td:last-child,table.bt th:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.light{width:100%;border-collapse:collapse;font-size:15px;background:#fff}
table.light th,table.light td{padding:10px 12px;border:1px solid var(--line);text-align:left}
table.light td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.prose{max-width:820px}
.prose h2{font-size:26px;margin:38px 0 12px}
.prose h3{font-size:19px;margin:26px 0 8px}
.prose p{margin:0 0 14px;color:#2A3B44}
.prose ul{margin:0 0 14px;padding-left:22px;color:#2A3B44}
.prose li{margin:5px 0}
.example{background:#EDF2FF;border:1.5px solid #B9CCFF;border-radius:14px;padding:18px 20px;margin:18px 0}
.example b.t{color:#2451E6}
.formula{background:var(--soft);border-radius:12px;padding:14px 18px;font-family:"Outfit";font-weight:700;color:var(--dark);margin:14px 0;overflow-x:auto}
.srcnote{font-size:13.5px;color:var(--muted);background:#fff;border:1px dashed #C4CFD8;border-radius:10px;padding:10px 14px;margin-top:14px}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 20px}
.toolbar input[type=text]{max-width:420px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.fchip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:9px 15px;font-weight:700;font-size:14px;cursor:pointer;min-height:44px;font-family:Manrope;color:var(--ink)}
.fchip.on{background:var(--blue);border-color:var(--blue);color:#fff}
.alpha{font-weight:800;font-family:"Outfit";font-size:20px;color:var(--blue);margin:24px 0 8px}
.notice{background:#FDECEC;border:1px solid #F3B8B5;color:#7C2220;border-radius:12px;padding:12px 16px;font-size:14.5px;margin-top:14px}
.oknote{background:#E7F4EC;border:1px solid #BFE3CF;color:#0E4D2E;border-radius:12px;padding:12px 16px;font-size:14.5px;margin-top:14px}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0}
.kv div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}
.kv b{font-family:"Outfit";font-size:24px;display:block;color:var(--dark)}
.kv span{color:var(--muted);font-size:13.5px;font-weight:600}
@media(max-width:960px){.hero-grid{grid-template-columns:1fr}.catgrid,.toolgrid{grid-template-columns:repeat(2,1fr)}.popgrid,.method{grid-template-columns:1fr}.calcwrap{grid-template-columns:1fr}.rescard{position:static}footer .cols{grid-template-columns:1fr 1fr}.trust .wrap{grid-template-columns:repeat(2,1fr)}.trust div{border-top:1px solid var(--line)}}
@media(max-width:600px){.catgrid,.toolgrid{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr}.kv{grid-template-columns:1fr}nav.main{display:none}.hbar{min-height:58px}.hero{padding:36px 0 44px}.resultbox .big,.rescard .big{font-size:29px}footer .cols{grid-template-columns:1fr}.wrap{padding:0 16px}}
@media print{header,footer,.no-print{display:none!important}body{background:#fff}}


/* Bordures neutres : l'en-tête garde sa fine bordure neutre, le pied de page démarre directement sur son fond bleu doux, aucun motif tricolore */
header{border-bottom:1px solid var(--line)}
footer{position:relative}
.hero{padding:40px 0 48px}
.hero-grid{align-items:stretch}
.hero-left{display:flex;flex-direction:column}
.hero-pop{margin-top:auto;padding-top:24px}
.hero-pop-label{font-size:13.5px;font-weight:700;color:#9FB8D8;margin:0 0 10px}
.hero-pop-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hero-pop-tile{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.24);border-radius:12px;padding:9px 11px;color:#fff;font-weight:600;font-size:14px;line-height:1.3;min-height:54px;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.hero-pop-tile:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.45);text-decoration:none;transform:translateY(-1px)}
.hero-pop-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:#fff;flex:none}
.hero-pop-icon svg{width:18px;height:18px}
.hero-pop-name{flex:1}
.hero-pop-arrow{color:#8FB0FF;font-weight:800;flex:none}
@media(max-width:600px){.hero-pop-grid{gap:8px}.hero-pop-tile{font-size:13.5px;padding:8px 9px;gap:8px;min-height:50px}.hero-pop-icon{width:29px;height:29px;border-radius:8px}.hero-pop-icon svg{width:16px;height:16px}}
.hero h1 em{color:#8FB0FF}
.method .n{color:#8FB0FF}
/* Notre méthode : fonds bleu doux sur les trois cartes d'engagement */
.method div{color:var(--ink);border:1px solid #C9D8F2}
.method div:nth-child(1){background:#DCE8FF;border-color:#BFD2F8}
.method div:nth-child(2){background:#E7EEFC;border-color:#C9D8F2}
.method div:nth-child(3){background:#EFF4FE;border-color:#D6E2F5}
.method b{color:var(--dark)}
.method p{color:#34495E}
.method .n{color:var(--blue)}
.catcard,.toolcard{transition:transform .16s ease,box-shadow .16s ease}
.toolcard:hover{transform:translateY(-2px)}
/* Outils populaires + titres de section page d'accueil : habillage typographique premium partagé (texte seul) */
h2.sect.pop-title,h2.sect.sect-title{font-size:clamp(32px,4.2vw,44px);line-height:1.04;letter-spacing:-.025em;font-weight:800;color:var(--dark);margin:0;text-wrap:balance}
h2.sect.pop-title::before,h2.sect.sect-title::before{content:none;display:none}
p.sectsub.pop-lead,p.sectsub.sect-lead{font-size:clamp(17px,1.55vw,18.5px);line-height:1.68;letter-spacing:-.005em;font-weight:500;color:#43566B;max-width:39em;margin:14px 0 30px;text-wrap:pretty}
p.sectsub.pop-lead .pop-em{color:var(--dark);font-weight:700}
h2.sect.sect-title + div{margin-top:22px}
@media(max-width:600px){h2.sect.pop-title,h2.sect.sect-title{font-size:32px}p.sectsub.pop-lead,p.sectsub.sect-lead{font-size:17px;line-height:1.65;margin:12px 0 24px}h2.sect.sect-title + div{margin-top:18px}}
/* Visualisations de données */
.vizcard{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px 24px;margin-top:20px;box-shadow:var(--shadow)}
.vizcard h2{margin:0 0 6px;font-size:19px}
.vizcard p{color:var(--muted);font-size:14px;margin:0 0 12px}
.vizbar{display:flex;height:20px;border-radius:10px;overflow:hidden;background:#E8EEF6}
.vizbar div{height:100%;transition:width .45s ease}
.vizlegend{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px;font-size:14px;font-weight:600}
.vizlegend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:7px;vertical-align:-1px}
.tbar{display:grid;grid-template-columns:170px 1fr 110px;gap:12px;align-items:center;margin:9px 0;font-size:14px}
.tbar .track{height:16px;background:#E8EEF6;border-radius:8px;overflow:hidden}
.tbar .fill{height:100%;background:#2451E6;border-radius:8px;transition:width .45s ease}
.tbar b{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:600px){.tbar{grid-template-columns:110px 1fr 84px;font-size:13px}}
/* Photos des pages outils et catégories */
.intro-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:24px;align-items:start}
.intro-grid .intro-text{display:flex;flex-direction:column}
.intro-grid .intro-text .badges{margin-top:14px}
.page-photo{margin:0;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);background:#DCE8FF;height:252px}
.page-photo img{width:100%;height:100%;display:block;object-fit:cover}
.cat-photo{margin:22px 0 0;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);background:#DCE8FF}
.cat-photo img{width:100%;height:280px;display:block;object-fit:cover}
/* En-tête catégorie : texte à gauche, photo dans un cadre aligné à droite (même patron en deux colonnes que les pages outils) — la boîte est en 16:9 comme les photos sources, aucun recadrage panoramique */
.cat-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,46%);gap:28px;align-items:center;margin-top:14px}
.cat-hero-text{min-width:0}
.cat-hero-text h1{margin-top:12px}
.cat-hero-photo{margin:0;width:100%;max-width:560px;justify-self:end;aspect-ratio:16/9;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);background:#DCE8FF}
.cat-hero-photo img{width:100%;height:100%;display:block;object-fit:cover}
@media(max-width:820px){.cat-hero{grid-template-columns:1fr;gap:18px;align-items:start}.cat-hero-photo{justify-self:stretch;max-width:none;max-height:240px}}
@media(max-width:700px){.intro-grid{grid-template-columns:1fr;gap:16px}.page-photo{min-height:0;height:auto}.page-photo img{height:170px}.cat-photo img{height:168px}}
/* Cartes guides avec photo à la une (accueil, index des guides, autres guides) */
.toolgrid>.guidecard{padding:0;overflow:hidden;display:flex;flex-direction:column}
.guidecard .card-photo{margin:0;flex:none;aspect-ratio:16/9;overflow:hidden;background:#DCE8FF}
.guidecard .card-photo img{width:100%;height:100%;display:block;object-fit:cover}
.guidecard .card-body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.guidecard .card-body h3{margin:0 0 5px;font-size:16.5px}
.guidecard .card-body p{margin:0;color:var(--muted);font-size:14px;flex:1}
.guidecard .card-body .tag{align-self:flex-start}
/* Pied de page : fond bleu doux (famille des cartes Notre méthode) */
footer{background:#DCE8FF;color:#34495E}
footer h4{color:var(--dark)}
footer a{color:#34495E}
footer a:hover{color:var(--blue)}
footer .flogo{color:var(--dark)}
footer .fine{border-top:1px solid #B9CCFF;color:#43566B;background:#C9D8F2;border-radius:10px;padding:14px 16px}
/* Pages outils uniquement (présence du calculateur) : rythme vertical compact et régulier — en-tête resserré, calculateur et sections enchaînés sans bande vide, respiration conservée */
.wrap:has(>.calcwrap) .crumbs{padding-top:14px}
.wrap:has(>.calcwrap) .toolhead h1{margin:6px 0 8px}
.wrap:has(>.calcwrap) .calcwrap{margin-top:20px}
.wrap:has(>.calcwrap) .vizcard{margin-top:16px}
.wrap:has(>.calcwrap) .prose h2{margin-top:26px}
@media(max-width:960px){.page-photo{height:224px}}
@media(max-width:700px){.page-photo{height:auto}}


/* ==========================================================================
   Intégration WordPress (ajouts du thème enfant, absents du site livré)
   - Décalage de l'en-tête fixe sous la barre d'administration WordPress
     pour les utilisateurs connectés (les visiteurs ne sont pas affectés).
   ========================================================================== */
body.admin-bar header{top:32px}
@media (max-width:782px){body.admin-bar header{top:46px}}

/* ==========================================================================
   v1.0.2 — Menu mobile (bouton hamburger)
   Le design livré masque nav.main sous 600 px sans fournir de bouton :
   ce bloc, ajouté en toute fin de fichier (aucune règle existante n'est
   retouchée), ajoute le bouton et le panneau déroulant associé.
   - Bureau (> 600 px) : le bouton est display:none, rendu inchangé.
   - Mobile fermé : la règle livrée nav.main{display:none} (bloc ≤600 px
     plus haut) s'applique toujours ; rien ci-dessous ne la contredit.
   - Mobile ouvert (classe .nav-open sur <header>, basculée par
     js/cj-nav.js) : header.nav-open nav.main (spécificité 0,2,2) prime
     sur nav.main (0,1,1) du bloc livré, le panneau s'affiche.
   L'en-tête livré est position:sticky : c'est l'ancêtre positionné du
   panneau en position:absolute.
   ========================================================================== */
.menubtn{display:none}
@media(max-width:600px){
.menubtn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:44px;height:44px;margin-left:auto;padding:0;border:1px solid var(--line);background:#fff;border-radius:12px;cursor:pointer;flex:0 0 auto}
.menubtn span{display:block;width:20px;height:2px;border-radius:2px;background:var(--ink);transition:transform .18s ease,opacity .18s ease}
header.nav-open .menubtn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
header.nav-open .menubtn span:nth-child(2){opacity:0}
header.nav-open .menubtn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
header.nav-open nav.main{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;flex-wrap:nowrap;margin-left:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(16,30,51,.12);padding:10px 16px 14px;gap:2px;z-index:60}
header.nav-open nav.main a{padding:12px 10px;font-size:15.5px}
}

/* ==========================================================================
   v1.0.5 — Bandeau consentement cookies
   Balise imprimée par functions.php (§6) dans le pied de page de toutes
   les pages, révélée par js/cj-consent.js uniquement aux visiteurs qui
   n'ont pas encore choisi (attribut hidden de départ : sans JavaScript,
   le bandeau ne s'affiche jamais et le refus par défaut du Consent
   Mode de Site Kit s'applique). Carte fixe en bas à gauche sur bureau ;
   sur mobile, feuille pleine largeur collée au bas de l'écran, avec la
   zone sûre (safe-area) respectée. Les deux boutons ont exactement la
   même taille et le même effort (flex:1 1 0) : « Tout refuser » n'est
   ni grisé, ni plus petit, ni en retrait — pratique CNIL.
   Aucune règle existante n'est retouchée : bloc ajouté en fin de fichier.
   ========================================================================== */
.cj-consent{position:fixed;left:20px;bottom:20px;z-index:200;max-width:520px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 40px rgba(16,30,51,.16);padding:18px 20px;color:var(--ink)}
.cj-consent[hidden]{display:none}
.cj-consent-text{margin:0;font-size:14px;line-height:1.55}
.cj-consent-btns{display:flex;gap:10px;margin-top:12px}
.cj-consent-btns button{min-height:44px;padding:10px 16px;border-radius:12px;font-weight:700;font-family:Manrope,system-ui,sans-serif;font-size:14.5px;cursor:pointer;flex:1 1 0}
.cj-consent-accept{background:var(--blue);color:#fff;border:1px solid var(--blue)}
.cj-consent-refuse{background:#fff;color:var(--ink);border:1px solid var(--line)}
@media(max-width:600px){
.cj-consent{left:0;right:0;bottom:0;max-width:none;border-radius:16px 16px 0 0;padding-bottom:calc(16px + env(safe-area-inset-bottom))}
}

/* ==========================================================================
   Icônes des badges outils (v1.0.7) : étiquette prix (100 % gratuit, vert),
   utilisateur barré d'un x (Sans inscription), sigma (Formule affichée).
   Icônes décoratives en ::before, couleur assortie au texte de chaque badge.
   ========================================================================== */
.badges .badge{display:inline-flex;align-items:center;gap:6px}
.badges .badge::before{content:"";width:14px;height:14px;flex:none;background-repeat:no-repeat;background-position:center;background-size:contain}
.badges .badge:nth-child(1)::before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23177A4C%27%20stroke-width%3D%272.2%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M20.59%2013.41l-7.17%207.17a2%202%200%200%201-2.83%200L2%2012V2h10l8.59%208.59a2%202%200%200%201%200%202.82z%27%2F%3E%3Cpath%20d%3D%27M7%207h.01%27%2F%3E%3C%2Fsvg%3E")}
.badges .badge:nth-child(2)::before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%230B2447%27%20stroke-width%3D%272.2%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%27%2F%3E%3Cpath%20d%3D%27M9%203a4%204%200%201%200%200%208%204%204%200%200%200%200-8z%27%2F%3E%3Cpath%20d%3D%27m17%208%205%205%27%2F%3E%3Cpath%20d%3D%27m22%208-5%205%27%2F%3E%3C%2Fsvg%3E")}
.badges .badge:nth-child(3)::before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%230B2447%27%20stroke-width%3D%272.2%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M18%207V4H6l6%208-6%208h12v-3%27%2F%3E%3C%2Fsvg%3E")}
