/* CadastreCI — design system (skill ui-ux-pro-max : Flat Design,
   navy professionnel + bleu CTA, Plus Jakarta Sans, orange = PRO/paiement) */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,600;0,700;0,800;1,400&display=swap');

:root{
  --primary:#0F172A; --on-primary:#FFFFFF; --secondary:#334155;
  --accent:#0369A1; --accent-fonce:#075985;
  --bg:#F8FAFC; --fg:#020617; --muted:#E8ECF1; --border:#E2E8F0;
  --destructive:#DC2626; --ok:#15803D; --pro:#F97316; --pro-fonce:#EA580C;
  --radius:10px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;background:var(--bg);
  color:var(--fg);font-size:16px;line-height:1.55}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}

/* ---------- structure ---------- */
.conteneur{max-width:1080px;margin:0 auto;padding:0 20px}
main{min-height:70vh}
section{padding:56px 0}
h1{font-size:2.4rem;font-weight:800;line-height:1.15}
h2{font-size:1.7rem;font-weight:800;margin-bottom:18px}
h3{font-size:1.15rem;font-weight:700;margin-bottom:8px}
p.sous{color:var(--secondary);font-size:1.08rem}

/* ---------- barre de navigation ---------- */
header{background:var(--primary);color:var(--on-primary);position:sticky;top:0;z-index:50}
.nav{display:flex;align-items:center;justify-content:space-between;height:62px}
.logo{display:flex;align-items:center;gap:9px;font-weight:800;font-size:1.25rem;
  color:#fff;text-decoration:none}
.logo:hover{text-decoration:none}
.logo .pastille{width:30px;height:30px;border-radius:7px;background:var(--accent);
  display:grid;place-items:center;flex:none}
.logo .pastille svg{width:18px;height:18px}
.nav-liens{display:flex;align-items:center;gap:20px}
.nav-liens a{color:#CBD5E1;font-weight:600;font-size:.95rem}
.nav-liens a:hover{color:#fff;text-decoration:none}

/* ---------- boutons ---------- */
.btn{display:inline-block;padding:12px 22px;border-radius:var(--radius);
  font-weight:700;font-size:1rem;border:none;cursor:pointer;
  transition:background .18s ease,color .18s ease;text-align:center}
.btn:hover{text-decoration:none}
.btn-cta{background:var(--accent);color:#fff}
.btn-cta:hover{background:var(--accent-fonce)}
.btn-clair{background:#fff;color:var(--primary);border:1.5px solid var(--border)}
.btn-clair:hover{background:var(--muted)}
.btn-pro{background:var(--pro);color:#fff}
.btn-pro:hover{background:var(--pro-fonce)}
.btn-danger{background:var(--destructive);color:#fff}
.btn-large{padding:15px 30px;font-size:1.1rem}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

/* ---------- héros ---------- */
.heros{background:var(--primary);color:#fff;padding:72px 0 64px}
.heros h1{max-width:640px}
.heros .accent{color:#38BDF8}
.heros p{color:#CBD5E1;font-size:1.15rem;max-width:560px;margin:18px 0 28px}
.heros .actions{display:flex;gap:14px;flex-wrap:wrap}
.chiffres{display:flex;gap:36px;margin-top:42px;flex-wrap:wrap}
.chiffres div strong{display:block;font-size:1.7rem;font-weight:800;color:#38BDF8}
.chiffres div span{color:#94A3B8;font-size:.92rem}

/* ---------- cartes / grilles ---------- */
.grille{display:grid;gap:22px}
.g3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.carte{background:#fff;border:1.5px solid var(--border);border-radius:var(--radius);
  padding:24px}
.carte .num{width:34px;height:34px;border-radius:8px;background:var(--accent);
  color:#fff;display:grid;place-items:center;font-weight:800;margin-bottom:12px}

/* ---------- avant / après ---------- */
.avap{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.avap figure{background:#fff;border:1.5px solid var(--border);
  border-radius:var(--radius);overflow:hidden}
.avap img{width:100%;height:320px;object-fit:cover}
.avap figcaption{padding:12px 16px;font-weight:700;display:flex;align-items:center;gap:8px}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.8rem;font-weight:700}
.badge-avant{background:#FEE2E2;color:#B91C1C}
.badge-apres{background:#DCFCE7;color:#15803D}
.badge-pro{background:#FFEDD5;color:#C2410C}
.badge-ok{background:#DCFCE7;color:#15803D}
.badge-attente{background:#FEF9C3;color:#A16207}
.badge-err{background:#FEE2E2;color:#B91C1C}

/* ---------- tarifs ---------- */
.tarifs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:22px;max-width:760px;margin:0 auto}
.tarif{background:#fff;border:2px solid var(--border);border-radius:14px;padding:30px}
.tarif.mise-avant{border-color:var(--pro)}
.tarif .prix{font-size:2.2rem;font-weight:800;margin:10px 0 2px}
.tarif .prix small{font-size:1rem;font-weight:600;color:var(--secondary)}
.tarif ul{list-style:none;margin:18px 0 24px}
.tarif li{padding:7px 0;border-bottom:1px solid var(--muted)}
.tarif li::before{content:"✓  ";color:var(--ok);font-weight:800}

/* ---------- formulaires ---------- */
form.boite{background:#fff;border:1.5px solid var(--border);
  border-radius:var(--radius);padding:28px;max-width:430px;margin:0 auto}
label{display:block;font-weight:700;margin:14px 0 6px;font-size:.95rem}
input[type=text],input[type=email],input[type=password],select,textarea{
  width:100%;padding:11px 13px;border:1.5px solid var(--border);
  border-radius:8px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
.champ-fichier{border:2px dashed var(--accent);border-radius:var(--radius);
  padding:34px;text-align:center;background:#F0F9FF;cursor:pointer}
.erreur-msg{background:#FEE2E2;color:#B91C1C;border-radius:8px;
  padding:11px 14px;margin-bottom:14px;font-weight:600}
.info-msg{background:#E0F2FE;color:#075985;border-radius:8px;
  padding:11px 14px;margin:14px 0;font-weight:600}

/* ---------- tableaux ---------- */
table{width:100%;border-collapse:collapse;background:#fff;
  border:1.5px solid var(--border);border-radius:var(--radius);overflow:hidden}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--muted);
  font-size:.93rem}
th{background:var(--muted);font-weight:700}

/* ---------- FAQ ---------- */
details{background:#fff;border:1.5px solid var(--border);border-radius:var(--radius);
  padding:16px 20px;margin-bottom:10px}
summary{font-weight:700;cursor:pointer}
details p{margin-top:10px;color:var(--secondary)}

/* ---------- progression ---------- */
.progression{max-width:520px;margin:60px auto;text-align:center}
.spinner{width:52px;height:52px;border:5px solid var(--muted);
  border-top-color:var(--accent);border-radius:50%;margin:0 auto 22px;
  animation:tourne 0.9s linear infinite}
@keyframes tourne{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.5s}}

/* ---------- note qualité ---------- */
.note-badge{display:inline-flex;align-items:baseline;gap:4px;padding:8px 16px;
  border-radius:10px;font-weight:800;font-size:1.4rem}
.note-bonne{background:#DCFCE7;color:#15803D}
.note-moyenne{background:#FEF9C3;color:#A16207}
.note-faible{background:#FEE2E2;color:#B91C1C}

/* ---------- pied de page ---------- */
footer{background:var(--primary);color:#94A3B8;padding:36px 0;margin-top:60px}
footer a{color:#CBD5E1}
.pied{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

@media (max-width:720px){
  h1{font-size:1.75rem}
  .avap{grid-template-columns:1fr}
  .nav-liens{gap:12px;font-size:.88rem}
  .chiffres{gap:22px}
  section{padding:38px 0}
}
