/* =====================================================================
   aidepublique.fr — feuille de style
   Registre visuel : sobre, structuré, institutionnel.
   AUCUN élément d'identité de l'État : pas de Marianne, pas de bloc
   « République Française », pas de bandeau tricolore, pas de DSFR.
   La palette est volontairement ardoise/ambre, jamais bleu-blanc-rouge.
   ===================================================================== */

:root{
  --slate:#1c2b3a;
  --slate-soft:#3d5163;
  --slate-mute:#6b7c8c;
  --slate-line:#d8e0e7;
  --slate-pale:#eef3f7;
  --paper:#f7f9fb;
  --white:#ffffff;
  --accent:#0d6b6b;
  --accent-dark:#095050;
  --accent-pale:#e4f2f1;
  --amber:#8a6a00;
  --amber-pale:#fdf7e6;
  --amber-line:#ecd9a3;
  --red:#a33228;
  --red-pale:#fbeceb;
  --green-ok:#1d6b3f;
  --green-ok-pale:#e6f3ec;
  --radius:10px;
  --shadow:0 16px 36px -26px rgba(28,43,58,.45);
}

*{box-sizing:border-box;margin:0;padding:0;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}
html{scroll-behavior:smooth;}
body{
  font-family:'Source Sans 3','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--slate);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{line-height:1.25;font-weight:700;color:var(--slate);}
a{color:var(--accent-dark);}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
img{max-width:100%;height:auto;}
table{border-collapse:collapse;width:100%;}
.wrap{max-width:1160px;margin:0 auto;padding:0 22px;}
[hidden]{display:none !important;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}

/* ---------- Bandeau de transparence — OBLIGATOIRE ---------- */
.disclaimer-bar{
  background:var(--amber-pale);
  border-bottom:1px solid var(--amber-line);
  padding:9px 0;font-size:13px;color:var(--amber);
}
.disclaimer-bar .wrap{display:flex;align-items:center;gap:9px;justify-content:center;text-align:center;flex-wrap:wrap;}
.disclaimer-bar strong{font-weight:700;}

/* ---------- En-tête ---------- */
.topbar{background:var(--white);border-bottom:1px solid var(--slate-line);padding:15px 0;}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;}
.logo{display:flex;align-items:center;gap:11px;text-decoration:none;}
.logo-mark{
  width:38px;height:38px;border-radius:8px;background:var(--accent);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:17px;font-weight:700;letter-spacing:-.5px;flex-shrink:0;
}
.logo-text{display:flex;flex-direction:column;line-height:1.15;}
.logo-text strong{font-size:17px;letter-spacing:-.2px;}
.logo-text span{font-size:10.5px;letter-spacing:1.3px;color:var(--slate-mute);text-transform:uppercase;}
.nav{display:flex;align-items:center;gap:22px;}
.nav a{font-size:14px;color:var(--slate-soft);text-decoration:none;font-weight:600;}
.nav a:hover{color:var(--accent-dark);}
@media (max-width:820px){.nav{display:none;}}

/* ---------- Fil d'ariane ---------- */
.breadcrumb{background:var(--white);border-bottom:1px solid var(--slate-line);padding:10px 0;font-size:13px;color:var(--slate-mute);}
.breadcrumb a{color:var(--slate-soft);text-decoration:none;}
.breadcrumb a:hover{text-decoration:underline;}

/* ---------- Hero ---------- */
.hero{padding:42px 0 52px;background:var(--white);border-bottom:1px solid var(--slate-line);}
.hero-grid{display:grid;grid-template-columns:1fr 460px;gap:46px;align-items:start;}
@media (max-width:980px){.hero-grid{grid-template-columns:1fr;gap:32px;}}
.eyebrow{
  display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:1.1px;
  text-transform:uppercase;color:var(--accent-dark);background:var(--accent-pale);
  border-radius:4px;padding:5px 11px;margin-bottom:15px;
}
.hero h1{font-size:36px;margin-bottom:15px;letter-spacing:-.6px;}
@media (max-width:640px){.hero h1{font-size:27px;}}
.lede{font-size:17px;color:var(--slate-soft);margin-bottom:22px;max-width:560px;}
.hero-facts{display:flex;gap:26px;flex-wrap:wrap;margin-bottom:22px;}
.hero-fact strong{display:block;font-size:24px;color:var(--accent-dark);line-height:1.2;}
.hero-fact span{font-size:12.5px;color:var(--slate-mute);}
.notice{
  border:1px solid var(--slate-line);border-left:3px solid var(--accent);
  background:var(--paper);border-radius:6px;padding:14px 16px;font-size:13.5px;
  color:var(--slate-soft);max-width:560px;
}
.notice strong{color:var(--slate);}

/* ---------- Formulaire ---------- */
.form-card{
  background:var(--white);border:1px solid var(--slate-line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:25px;
}
.card-header{margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--slate-line);}
.card-header h2{font-size:19px;margin-bottom:4px;}
.card-sub{font-size:13px;color:var(--slate-mute);}
.progress{margin-bottom:20px;}
.progress-track{height:4px;background:var(--slate-line);border-radius:999px;overflow:hidden;}
.progress-fill{height:100%;background:var(--accent);transition:width .3s ease;width:25%;}
.progress-label{font-size:11.5px;color:var(--slate-mute);margin-top:7px;font-weight:600;letter-spacing:.3px;}

.step{display:none;}
.step.active{display:block;animation:stepIn .22s ease;}
@keyframes stepIn{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:none;}}
.step-question{font-size:15.5px;font-weight:700;margin-bottom:4px;}
.step-hint{font-size:13px;color:var(--slate-mute);margin-bottom:15px;}

.choice-list{display:flex;flex-direction:column;gap:9px;}
.choice{
  width:100%;display:flex;align-items:flex-start;gap:12px;text-align:left;
  border:1.5px solid var(--slate-line);border-radius:8px;padding:14px 15px;
  font-size:14.5px;font-weight:600;color:var(--slate);background:var(--white);
  transition:border-color .15s ease,background .15s ease;
}
.choice:hover{border-color:var(--accent);background:var(--accent-pale);}
.choice.active{border-color:var(--accent);background:var(--accent-pale);color:var(--accent-dark);}
.choice-icon{font-size:19px;flex-shrink:0;line-height:1.3;}
.choice-sub{display:block;font-size:12.5px;font-weight:400;color:var(--slate-mute);margin-top:2px;}
.choice.active .choice-sub{color:var(--accent-dark);}
.choice-row{display:flex;gap:9px;}
.choice-row .choice{justify-content:center;text-align:center;}

.field{margin-bottom:14px;}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;}
.text-input{
  width:100%;border:1.5px solid var(--slate-line);border-radius:7px;
  padding:11px 13px;font-size:15px;font-family:inherit;color:var(--slate);background:var(--white);
}
.text-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
.text-input.invalid{border-color:var(--red);}
.field-error{display:none;font-size:12.5px;color:var(--red);margin-top:5px;}
.field-error.show{display:block;}

.cta-btn{
  width:100%;background:var(--accent);color:#fff;border-radius:8px;
  padding:14px 18px;font-size:15px;font-weight:700;letter-spacing:.2px;
  transition:background .15s ease;
}
.cta-btn:hover{background:var(--accent-dark);}
.back-btn{
  color:var(--slate-mute);font-size:13px;font-weight:600;
  padding:9px 0;margin-top:10px;display:inline-block;
}
.back-btn:hover{color:var(--slate);text-decoration:underline;}
.secure{font-size:11.5px;color:var(--slate-mute);text-align:center;margin-top:12px;}

/* Blocs d'orientation (locataire, logement trop récent) */
.exit-block{
  margin:4px 0 14px;padding:14px 15px;border-radius:8px;
  border:1.5px solid var(--amber-line);background:var(--amber-pale);
}
.exit-block strong{display:block;margin-bottom:5px;color:var(--amber);font-size:14px;}
.exit-block p{font-size:13.5px;color:var(--amber);}
.exit-block a{color:var(--amber);font-weight:600;}

.success-panel{display:none;text-align:center;padding:10px 0;}
.success-panel.show{display:block;}
.success-icon{
  width:50px;height:50px;border-radius:50%;background:var(--green-ok-pale);
  color:var(--green-ok);font-size:26px;font-weight:700;
  display:flex;align-items:center;justify-content:center;margin:0 auto 14px;
}
.success-panel h2{font-size:19px;margin-bottom:6px;}
.success-recap{list-style:none;margin-top:16px;text-align:left;background:var(--paper);border:1px solid var(--slate-line);border-radius:8px;padding:14px 16px;}
.success-recap li{font-size:13.5px;color:var(--slate-soft);padding:3px 0;}
.success-recap li strong{color:var(--slate);}

/* ---------- Sections ---------- */
.section{padding:52px 0;}
.section-white{background:var(--white);border-top:1px solid var(--slate-line);border-bottom:1px solid var(--slate-line);}
.section-title{font-size:25px;margin-bottom:9px;letter-spacing:-.4px;}
.section-sub{font-size:15px;color:var(--slate-soft);max-width:680px;margin-bottom:30px;}
.section-head-center{text-align:center;}
.section-head-center .section-sub{margin-left:auto;margin-right:auto;}

/* ---------- Annuaire des aides ---------- */
.aide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
@media (max-width:860px){.aide-grid{grid-template-columns:1fr;}}
.aide-card{
  background:var(--white);border:1px solid var(--slate-line);border-radius:var(--radius);
  padding:20px 21px;display:flex;flex-direction:column;
}
.section-white .aide-card{background:var(--paper);}
.aide-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px;}
.aide-card h3{font-size:17px;}
.aide-card .aide-org{font-size:12px;color:var(--slate-mute);margin-top:2px;}
.aide-card p{font-size:14px;color:var(--slate-soft);margin-bottom:12px;}
.aide-meta{list-style:none;font-size:13px;border-top:1px solid var(--slate-line);padding-top:12px;margin-top:auto;}
.aide-meta li{display:flex;gap:8px;padding:3px 0;color:var(--slate-soft);}
.aide-meta li b{color:var(--slate);font-weight:600;min-width:104px;flex-shrink:0;}

.badge{
  display:inline-block;font-size:11px;font-weight:700;letter-spacing:.4px;
  padding:4px 9px;border-radius:4px;text-transform:uppercase;white-space:nowrap;flex-shrink:0;
}
.badge-ok{background:var(--green-ok-pale);color:var(--green-ok);}
.badge-warn{background:var(--amber-pale);color:var(--amber);}
.badge-off{background:var(--red-pale);color:var(--red);}

/* Tableau récapitulatif */
.table-wrap{overflow-x:auto;border:1px solid var(--slate-line);border-radius:var(--radius);background:var(--white);}
.data-table{min-width:720px;font-size:14px;}
.data-table th,.data-table td{padding:12px 15px;text-align:left;border-bottom:1px solid var(--slate-line);vertical-align:top;}
.data-table th{background:var(--slate-pale);font-size:12.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--slate-soft);font-weight:700;}
.data-table tr:last-child td{border-bottom:none;}
.data-table td small{display:block;color:var(--slate-mute);font-size:12.5px;margin-top:2px;}

/* Alerte actualité */
.alert{
  border-radius:var(--radius);padding:17px 19px;margin-bottom:26px;
  border:1px solid var(--amber-line);background:var(--amber-pale);
}
.alert.alert-red{border-color:#e7bab5;background:var(--red-pale);}
.alert h3{font-size:15.5px;margin-bottom:6px;color:var(--amber);}
.alert.alert-red h3{color:var(--red);}
.alert p{font-size:14px;color:var(--amber);margin-bottom:6px;}
.alert.alert-red p{color:var(--red);}
.alert p:last-child{margin-bottom:0;}
.alert-date{font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;opacity:.8;}

.faq-list{max-width:800px;}
.faq-item{border-bottom:1px solid var(--slate-line);padding:17px 0;}
.faq-item h3{font-size:15.5px;margin-bottom:6px;}
.faq-item p{font-size:14px;color:var(--slate-soft);}

/* ---------- Fiche aide ---------- */
.fiche{max-width:900px;margin:0 auto;padding:38px 22px 60px;}
.fiche h1{font-size:31px;margin-bottom:8px;letter-spacing:-.6px;}
.fiche-org{font-size:14px;color:var(--slate-mute);margin-bottom:20px;}
.fiche-status{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px;}
.fiche h2{font-size:20px;margin:32px 0 12px;padding-top:22px;border-top:1px solid var(--slate-line);}
.fiche h3{font-size:16px;margin:20px 0 8px;}
.fiche p,.fiche li{font-size:15px;color:var(--slate-soft);margin-bottom:10px;}
.fiche ul{padding-left:22px;margin-bottom:14px;}
.fiche .source-box{
  background:var(--accent-pale);border:1px solid #bfdedd;border-radius:8px;
  padding:15px 17px;margin:22px 0;
}
.fiche .source-box p{color:var(--accent-dark);margin:0;font-size:14px;}
.verif-line{font-size:12.5px;color:var(--slate-mute);font-style:italic;margin-top:26px;padding-top:14px;border-top:1px solid var(--slate-line);}

/* ---------- Pages légales ---------- */
.legal-page{max-width:820px;margin:0 auto;padding:44px 22px 62px;}
.legal-page h1{font-size:29px;margin-bottom:7px;}
.legal-updated{font-size:13px;color:var(--slate-mute);margin-bottom:32px;}
.legal-page h2{font-size:18.5px;margin:30px 0 11px;}
.legal-page p,.legal-page li{font-size:14.5px;color:var(--slate-soft);margin-bottom:10px;}
.legal-page ul{padding-left:22px;margin-bottom:13px;}
.legal-fill{
  background:var(--amber-pale);border:1px solid var(--amber-line);border-radius:4px;
  padding:2px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:12.5px;color:var(--amber);
}
.legal-callout{
  background:var(--accent-pale);border:1px solid #bfdedd;border-radius:8px;
  padding:15px 17px;margin:20px 0;
}
.legal-callout p{color:var(--accent-dark);margin:0;font-size:14px;}

/* ---------- Pied de page ---------- */
.site-footer{background:var(--white);border-top:1px solid var(--slate-line);padding:36px 0 24px;}
.footer-inner{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:26px;margin-bottom:26px;}
@media (max-width:860px){.footer-inner{grid-template-columns:1fr 1fr;}}
@media (max-width:540px){.footer-inner{grid-template-columns:1fr;}}
.footer-tag{font-size:13px;color:var(--slate-mute);margin-top:12px;max-width:320px;}
.footer-col h4{font-size:12px;text-transform:uppercase;letter-spacing:.8px;margin-bottom:11px;color:var(--slate-mute);}
.footer-col a{display:block;font-size:13.5px;color:var(--slate);text-decoration:none;padding:4px 0;}
.footer-col a:hover{color:var(--accent-dark);text-decoration:underline;}
.footer-legal{border-top:1px solid var(--slate-line);padding-top:18px;font-size:12px;color:var(--slate-mute);line-height:1.65;}
.footer-legal strong{color:var(--slate);}
