:root{--bleu:#1f3a5f;--bleu2:#2d5a8c;--fond:#f6f7f9;--texte:#1d232b;--gris:#5b6672;--bord:#dfe3e8;--vert:#1e7a4c;--orange:#b26a00;--rouge:#a33a3a;--sponso:#fff6e0}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--texte);background:#fff;line-height:1.6}
a{color:var(--bleu2)}.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
header.site{border-bottom:1px solid var(--bord);background:#fff;position:sticky;top:0;z-index:10}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;flex-wrap:wrap}
.logo{font-weight:700;font-size:1.2rem;color:var(--bleu);text-decoration:none}.logo span{color:var(--bleu2);font-weight:400}
nav a{margin-left:18px;text-decoration:none;color:var(--texte);font-size:.95rem}nav a:hover{color:var(--bleu2)}
.hero{background:linear-gradient(135deg,var(--bleu),var(--bleu2));color:#fff;padding:64px 0}
.hero h1{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.2;margin:0 0 14px}.hero p{max-width:640px;font-size:1.1rem;opacity:.95}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.badge{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);padding:4px 10px;border-radius:20px;font-size:.85rem}
form.nl{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px;max-width:520px}
form.nl input{flex:1;min-width:220px;padding:12px;border-radius:6px;border:1px solid var(--bord);font-size:1rem}
.btn{display:inline-block;background:#fff;color:var(--bleu);border:0;padding:12px 20px;border-radius:6px;font-weight:600;cursor:pointer;text-decoration:none}
.btn.primaire{background:var(--bleu);color:#fff}.small{font-size:.85rem;color:var(--gris)}.hero .small{color:#dbe6f3}
section{padding:48px 0}section.gris{background:var(--fond)}h2{color:var(--bleu);margin-top:0}
.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.carte{background:#fff;border:1px solid var(--bord);border-radius:10px;padding:20px;position:relative}
.carte h3{margin:0 0 6px}.carte .cat{font-size:.8rem;color:var(--gris);text-transform:uppercase;letter-spacing:.04em}
.carte.sponso{background:var(--sponso);border-color:#e9c46a}
.tag-sponso{display:inline-block;background:#e9c46a;color:#3d2c00;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:4px;margin-bottom:8px}
.pastilles{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.p{font-size:.75rem;padding:2px 8px;border-radius:12px;border:1px solid var(--bord);background:var(--fond)}
.ok{color:var(--vert);border-color:#a7d7bd;background:#eaf6ef}.moy{color:var(--orange);border-color:#ecd09c;background:#fdf4e3}.ko{color:var(--rouge);border-color:#e3b1b1;background:#fbecec}.nv{color:var(--gris)}
table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.95rem}th,td{border:1px solid var(--bord);padding:10px;text-align:left;vertical-align:top}th{background:var(--fond)}
.avert{border-left:4px solid #e9c46a;background:var(--sponso);padding:12px 16px;border-radius:4px;margin:16px 0}
.info{border-left:4px solid var(--bleu2);background:#eef3f9;padding:12px 16px;border-radius:4px;margin:16px 0}
.prix{font-size:1.6rem;font-weight:700;color:var(--bleu)}.avalider{display:inline-block;background:#fbecec;color:var(--rouge);font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:4px;margin-left:6px;vertical-align:middle}
footer{background:var(--bleu);color:#dbe6f3;padding:32px 0;font-size:.9rem}footer a{color:#fff}
.fil{font-size:.85rem;color:var(--gris);margin:16px 0}.score{font-size:2rem;font-weight:700;color:var(--vert)}
@media(max-width:640px){nav a{margin:0 12px 0 0}.hero{padding:40px 0}table{font-size:.85rem}th,td{padding:6px}}
/* --- Correctifs v2 --- */
.hero p{opacity:1;color:#fff}.hero .small{color:#f0f5fb}
footer{color:#eaf1f9}footer .small{color:#eaf1f9!important}
.btn[type=submit],form.nl .btn{font-size:1.1rem;padding:12px 26px}
.grille.g4{grid-template-columns:repeat(4,1fr)}
.grille.outils{grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr}
.grille.outils .carte{height:100%;display:flex;flex-direction:column}
.grille.outils .carte>a:last-child{margin-top:auto}
.p{font-size:.88rem;padding:4px 11px}
.small{font-size:.92rem}.fil{font-size:.92rem}.carte .cat{font-size:.85rem}
.p.nv,.small{color:#46515c}
table{table-layout:auto}
th:nth-child(3),td:nth-child(3){white-space:nowrap;min-width:130px}
td .p{white-space:nowrap}
.prix .avalider{display:block;width:fit-content;margin:6px 0 0}
.avalider{font-size:.8rem}
.carte .small,.pastilles .p{line-height:1.4}
@media(max-width:1000px){.grille.g4{grid-template-columns:repeat(2,1fr)}.grille.outils{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){
.grille,.grille.g4,.grille.outils{grid-template-columns:1fr}
header.site .wrap{flex-direction:column;align-items:flex-start;gap:6px}
nav{display:flex;flex-wrap:nowrap;gap:12px;width:100%;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:4px}
nav a{margin:0;font-size:.88rem;flex:0 0 auto}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 16px}
.tw table{display:table;min-width:560px;font-size:.85rem}
.tw th,.tw td{min-width:0;padding:8px}
.tw.ind table{min-width:0;width:100%}
.tw.ind th,.tw.ind td{display:block;width:100%;box-sizing:border-box}
.tw.ind th{border-bottom:0;padding-bottom:2px}
.tw.ind td{padding-top:2px}
.hero{padding:36px 0}form.nl input,form.nl .btn{width:100%}
}
