/* VigiClient — site public.
   Direction : « le bulletin officiel qu'on lit enfin » — gazette éditoriale moderne.
   Invariants du brief (§2.4) : papier blanc, encre quasi-noire, rouge = urgence uniquement,
   vert = tout va bien, boutons noirs, léger et rapide. */

/* ---------- Polices (auto-hébergées, variables, subset latin) ---------- */
@font-face{font-family:'Fraunces';src:url('/fonts/fraunces.woff2') format('woff2');
  font-weight:600 700;font-display:swap;font-style:normal}
@font-face{font-family:'Instrument Sans';src:url('/fonts/instrumentsans.woff2') format('woff2');
  font-weight:400 600;font-display:swap;font-style:normal}
@font-face{font-family:'Spline Sans Mono';src:url('/fonts/splinesansmono.woff2') format('woff2');
  font-weight:500;font-display:swap;font-style:normal}

/* ---------- Jetons ---------- */
:root{
  --papier:#FFFFFF; --encre:#181512; --encre-2:#33302A; --gris:#6E675E;
  --filet:#E8E3DA; --filet-fort:#181512;
  --rouge:#B42318; --rouge-fond:#FBF1EE; --rouge-bord:#EDD2CB;
  --vert:#1E7A46; --vert-fond:#EFF6F0; --vert-bord:#D3E7DA;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Instrument Sans',-apple-system,'Segoe UI',Arial,sans-serif;
  --mono:'Spline Sans Mono','Courier New',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-size:16.5px;line-height:1.65;color:var(--encre);
     background:var(--papier);-webkit-font-smoothing:antialiased;font-optical-sizing:auto}
/* grain de papier, très discret */
body::after{content:'';position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:2147483647;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23g)' opacity='.55'/%3E%3C/svg%3E")}
::selection{background:var(--rouge);color:#fff}

a{color:inherit;text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:#C9C2B6;text-decoration-thickness:1px;transition:text-decoration-color .15s}
a:hover{text-decoration-color:var(--rouge)}
:focus-visible{outline:2px solid var(--rouge);outline-offset:2px;border-radius:2px}

.note{font-size:13px;color:var(--gris)}
.centre{text-align:center}

/* étiquette de gazette : petites capitales mono espacées */
.kicker,.etiquette-gazette{font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;color:var(--rouge)}

/* ---------- En-tête (manchette) ---------- */
.entete{border-top:3px solid var(--encre);border-bottom:1px solid var(--filet);
  position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(7px);z-index:10}
.entete-int{max-width:1060px;margin:0 auto;display:flex;align-items:center;gap:26px;padding:15px 22px}
.logo{font-family:var(--serif);font-size:22px;font-weight:700;letter-spacing:-.015em;text-decoration:none}
.logo .point{color:var(--rouge)}
.menu{display:flex;gap:20px;margin-left:8px}
.menu a{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;text-decoration:none;color:var(--encre-2);padding:4px 0;
  border-bottom:1px solid transparent;transition:border-color .15s,color .15s}
.menu a:hover{border-bottom-color:var(--rouge);color:var(--encre)}
.discret-lien{color:var(--gris)!important}
.entete .bouton.compact{margin-left:auto;padding:10px 15px;font-size:13px}

/* ---------- Mise en page ---------- */
.page-pub{max-width:780px;margin:0 auto;padding:44px 22px 20px}
.page-pub h1{font-family:var(--serif);font-size:clamp(30px,5.4vw,42px);line-height:1.08;
  letter-spacing:-.015em;font-weight:700;margin-bottom:14px}
.page-pub h2,.section h2{font-family:var(--serif);font-size:25px;font-weight:600;letter-spacing:-.01em;
  margin:44px 0 14px;padding-top:20px;border-top:1px solid var(--filet);position:relative}
.sous{color:var(--gris);font-size:17px;margin-bottom:16px}
.sous b{color:var(--encre)}
.fil{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gris);margin-bottom:18px}
.fil a{text-decoration:none;color:var(--gris)}
.fil a:hover{color:var(--rouge)}
p{margin-bottom:13px}
ul,ol{margin:0 0 15px 22px}
li{margin-bottom:7px}
strong,b{font-weight:600}

.bouton{display:inline-block;background:var(--encre);color:#fff;border-radius:5px;padding:14px 22px;
  text-decoration:none;font-weight:600;font-size:15.5px;border:0;cursor:pointer;font-family:var(--sans);
  transition:transform .15s,box-shadow .15s,background .15s}
.bouton:hover{background:var(--encre-2);transform:translateY(-1px);box-shadow:0 6px 18px rgba(24,21,18,.18)}
.bouton.grand{font-size:17px;padding:16px 28px}

/* ---------- Landing : une (hero) ---------- */
.hero{border-bottom:1px solid var(--filet)}
.hero-int{max-width:780px;margin:0 auto;padding:66px 22px 52px}
.hero .kicker{display:block;margin-bottom:18px}
.hero h1{font-family:var(--serif);font-size:clamp(36px,6.6vw,58px);line-height:1.04;
  letter-spacing:-.02em;font-weight:700}
.hero .sous{margin-top:20px;font-size:18px;max-width:64ch}
.hero-cta{margin-top:26px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
@media (prefers-reduced-motion:no-preference){
  .hero .kicker,.hero h1,.hero .sous,.hero-cta{animation:lever .55s cubic-bezier(.2,.7,.3,1) both}
  .hero h1{animation-delay:.06s}.hero .sous{animation-delay:.12s}.hero-cta{animation-delay:.18s}
}
@keyframes lever{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

.section{max-width:780px;margin:0 auto;padding:8px 22px}
/* numérotation de gazette sur les sections de la une */
.section h2::before{counter-increment:rubrique;content:counter(rubrique,decimal-leading-zero);
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;color:var(--rouge);
  position:absolute;top:-7px;left:0;background:var(--papier);padding-right:10px}
main{counter-reset:rubrique}
.section.final,.final{text-align:center;padding:48px 22px 64px}
.final h2::before{content:none}

/* encadré réglementaire : le tampon */
.regle{background:var(--rouge-fond);border:1px solid var(--rouge-bord);border-radius:6px;
  padding:22px 24px;margin:16px 0;position:relative}
.regle::before{content:'';position:absolute;inset:5px;border:1px dashed var(--rouge-bord);
  border-radius:3px;pointer-events:none}
.regle .titre{font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--rouge);display:flex;gap:9px;margin-bottom:8px}
.regle p{margin:0;color:#5E4038;font-size:15px}

.etapes{list-style:none;margin:14px 0 8px;display:grid;gap:15px}
.etapes li{display:flex;gap:14px;align-items:baseline;font-size:16px}
.etapes .num{flex:none;font-family:var(--mono);font-size:13px;font-weight:500;color:var(--rouge);
  letter-spacing:.06em}
.etapes .num::after{content:'.'}

/* fac-similé de l'email d'alerte : une lettre */
.demo-email{border:1px solid var(--filet);border-top:3px solid var(--encre);border-radius:4px;
  padding:24px 26px;box-shadow:0 14px 34px rgba(24,21,18,.07);font-size:14.5px;background:var(--papier)}
.demo-objet{font-weight:600;border-bottom:1px solid var(--filet);padding-bottom:12px;margin-bottom:14px;
  font-size:15px}
.demo-objet::before{content:'OBJET — ';font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;
  color:var(--gris)}
.demo-compte{border:1px solid var(--rouge-bord);background:var(--rouge-fond);color:#5E4038;
  border-radius:5px;padding:12px 15px;margin:12px 0}
.demo-compte b{color:var(--rouge);font-family:var(--mono);font-weight:500}
.demo-bouton{display:inline-block;background:var(--encre);color:#fff;border-radius:5px;
  padding:10px 17px;font-weight:600;font-size:13.5px}
.calcul{font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:-.01em}
.calcul b{color:var(--rouge)}

/* ---------- Plans ---------- */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:18px;margin:22px 0 10px}
.plan{border:1px solid var(--filet);border-radius:6px;padding:24px 22px;position:relative;
  display:flex;flex-direction:column;background:var(--papier);transition:transform .18s,box-shadow .18s}
.plan:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(24,21,18,.08)}
.plan.vedette{border:1.5px solid var(--encre);box-shadow:0 18px 40px rgba(24,21,18,.1)}
.badge-plan{position:absolute;top:-12px;left:16px;background:var(--papier);color:var(--rouge);
  border:1px solid var(--rouge);font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;border-radius:3px;padding:4px 10px;transform:rotate(-1.6deg)}
.plan h3{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gris);margin-bottom:8px}
.prix{font-family:var(--serif);font-size:42px;font-weight:700;letter-spacing:-.02em;line-height:1}
.prix span{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--gris);margin-left:5px;letter-spacing:0}
.plan ul{list-style:none;margin:16px 0 18px;display:grid;gap:8px;font-size:14px}
.plan li{padding-left:18px;position:relative}
.plan li::before{content:'✓';position:absolute;left:0;color:var(--vert);font-weight:700}
.plan .bouton{margin-top:auto;text-align:center}

/* ---------- Tableaux (registres) ---------- */
.defile{overflow-x:auto;margin:12px 0}
.tableau-comp{border-collapse:collapse;width:100%;font-size:13.5px;min-width:660px}
.tableau-comp th,.tableau-comp td{border:1px solid var(--filet);padding:10px 12px;text-align:left;vertical-align:top}
.tableau-comp tr:first-child th{font-family:var(--mono);font-size:10.5px;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;background:#FAF8F4;color:var(--encre-2)}
.tableau-comp td:nth-child(2){background:var(--vert-fond)}
.tableau-baro{border-collapse:collapse;width:100%;font-size:14.5px;margin:10px 0 16px}
.tableau-baro th{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gris);padding:9px 10px;border-bottom:1px solid var(--filet-fort);text-align:left}
.tableau-baro td{padding:9px 10px;border-bottom:1px solid var(--filet)}
.tableau-baro td:nth-child(2),.tableau-baro td:nth-child(3){font-family:var(--mono);font-weight:500;
  font-variant-numeric:tabular-nums}
.tableau-baro tr:hover td{background:#FAF8F4}
.tableau-baro tr.partiel td{color:var(--gris)}

/* ---------- FAQ ---------- */
details{border:1px solid var(--filet);border-radius:6px;padding:15px 19px;margin:10px 0;background:var(--papier)}
details summary{font-weight:600;cursor:pointer;font-size:15px;list-style:none;position:relative;padding-right:26px}
details summary::-webkit-details-marker{display:none}
details summary::after{content:'+';position:absolute;right:2px;top:-2px;font-family:var(--mono);
  font-size:17px;color:var(--rouge);transition:transform .18s}
details[open] summary::after{transform:rotate(45deg)}
details p{margin:11px 0 0;font-size:14.5px;color:var(--encre-2)}

/* ---------- Guides + glossaire ---------- */
.liste-guides,.liste-glossaire{display:grid;gap:13px;margin:20px 0}
.liste-glossaire{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.carte-guide,.carte-terme{border:1px solid var(--filet);border-left:3px solid var(--encre);
  border-radius:4px;padding:18px 20px;text-decoration:none;display:block;background:var(--papier);
  transition:border-left-color .15s,transform .15s,box-shadow .15s}
.carte-guide:hover,.carte-terme:hover{border-left-color:var(--rouge);transform:translateX(2px);
  box-shadow:0 8px 22px rgba(24,21,18,.06)}
.carte-guide b,.carte-terme b{display:block;margin-bottom:6px;font-family:var(--serif);
  font-weight:600;font-size:17px;letter-spacing:-.01em}
.carte-guide span,.carte-terme span{font-size:13.5px;color:var(--gris)}
a.terme{text-decoration:underline dotted;text-decoration-color:var(--rouge);text-underline-offset:3px}
.carte-cta{border:1px solid var(--filet);border-top:3px solid var(--encre);border-radius:6px;
  margin:42px 0 12px;padding:32px 24px}
.carte-cta h2{margin-top:0;border-top:0;padding-top:0}
.carte-cta h2::before{content:none}

/* article (guides) */
.carte{border:1px solid var(--filet);border-radius:6px;padding:18px 20px;margin:16px 0}

/* ---------- Baromètre ---------- */
.tuiles-baro{display:flex;gap:16px;flex-wrap:wrap;margin:20px 0}
.tuile-baro{border:1px solid var(--filet);border-top:3px solid var(--encre);border-radius:5px;
  padding:18px 22px;min-width:210px}
.tuile-baro .chiffre{font-family:var(--mono);font-size:34px;font-weight:500;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.tuile-baro div:last-child{font-size:13px;color:var(--gris)}
.grille-deps{display:grid;grid-template-columns:repeat(auto-fill,minmax(226px,1fr));gap:9px;margin:14px 0}
.dep{border:1px solid var(--filet);border-radius:4px;padding:10px 13px;text-decoration:none;
  font-size:13.5px;display:flex;gap:7px;align-items:baseline;transition:border-color .12s,background .12s}
.dep:hover{border-color:var(--encre);background:#FAF8F4}
.dep-n{margin-left:auto;font-family:var(--mono);font-weight:500;font-variant-numeric:tabular-nums}

/* ---------- Pied (ours) ---------- */
.pied{border-top:3px solid var(--encre);margin-top:48px;position:relative}
.pied::before{content:'';position:absolute;top:2px;left:0;right:0;border-top:1px solid var(--encre)}
.pied-int{max-width:1060px;margin:0 auto;padding:34px 22px 10px;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:26px;font-size:14px}
.pied b{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--encre);display:block;margin-bottom:8px}
.pied a{color:var(--gris);text-decoration:none;display:inline-block;padding:1.5px 0}
.pied a:hover{color:var(--encre);text-decoration:underline;text-decoration-color:var(--rouge)}
.pied-bas{max-width:1060px;margin:0 auto;padding:16px 22px 34px}

@media (max-width:640px){
  .menu{gap:13px}
  .menu a:nth-child(2){display:none}
  .hero-int{padding:46px 22px 40px}
  .page-pub{padding-top:34px}
}
