:root{
  --ink:#14161C;
  --ink-soft:#5B6069;
  --ink-faint:#6B7280; /* assombri par rapport a un simple gris clair pour garantir un contraste AA (4.5:1) sur fond blanc, y compris en petit texte */
  --accent:#B5541F;
  --accent-dark:#8F4118;
  --accent-pale:#F4E6DA;
  --accent-bright:#E07A3F; /* usage decoratif uniquement (fonds, icones, degrades) — jamais en texte sur blanc, contraste insuffisant pour AA */
  --white:#FFFFFF;
  --bg-subtle:#F7F7F8;
  --line:#E3E5EA;
  --line-strong:#D3D6DC;
  --green:#1E7A4C;
  --green-bg:#E7F4EC;
  --amber:#9A6B12;
  --amber-bg:#FBF1DC;
  --red:#B33A2C;
  --red-bg:#FBEAE6;
  --red-deep:#7C2A1F;
  --red-deep-bg:#F5DEDA;
  --radius-sm:10px;
  --radius-md:14px;
  --radius-lg:20px;
  --shadow-card:0 1px 2px rgba(20,22,28,0.04), 0 1px 1px rgba(20,22,28,0.03);
  --shadow-elevated:0 12px 28px -12px rgba(20,22,28,0.16);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color:var(--ink);
  background:var(--white);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
img,svg{max-width:100%;}
.container{max-width:1120px; margin:0 auto; padding:0 24px;}
h1,h2,h3,h4{letter-spacing:-0.02em;}

/* ---------- ACCESSIBILITE ---------- */

/* Respecte la preference systeme "reduire les animations" */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *, *::before, *::after{
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* Lien d'evitement : invisible tant qu'il n'a pas le focus clavier */
.skip-link{
  position:absolute; left:12px; top:-60px; z-index:1000;
  background:var(--ink); color:var(--white); font-weight:700; font-size:14px;
  padding:12px 18px; border-radius:var(--radius-sm); text-decoration:none;
  transition:top .15s ease;
}
.skip-link:focus{top:12px;}

/* Contenu reserve aux lecteurs d'ecran */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* Animation d'apparition au defilement (ajoutee dynamiquement par layout.js) */
.reveal{opacity:0; transform:translateY(16px); transition:opacity .55s ease, transform .55s ease;}
.reveal.is-visible{opacity:1; transform:translateY(0);}

/* Indicateur de focus visible et coherent sur tous les elements interactifs.
   On ne supprime jamais l'outline par defaut sans le remplacer. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible{
  outline:2.5px solid var(--accent);
  outline-offset:2px;
  border-radius:4px;
}
.btn:focus-visible{outline-offset:3px;}

/* ---------- NAV ---------- */
nav.site-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:0 40px;
  height:72px;
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,0.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  flex-wrap:wrap;
}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
.brand-mark{width:28px; height:28px; flex:none;}
.brand-name{font-weight:800; font-size:17px; letter-spacing:-0.02em; color:var(--ink);}
.brand-name span{color:var(--accent);}

.nav-center{display:flex; align-items:center; gap:32px; flex-wrap:wrap;}
.nav-link{
  font-size:14px; font-weight:500; color:var(--ink-soft);
  text-decoration:none; cursor:pointer;
}
.nav-link:hover{color:var(--ink);}
.nav-link.active{color:var(--ink); font-weight:600;}
.nav-right{display:flex; align-items:center; gap:14px;}
.nav-toggle{display:none; background:none; border:none; font-size:22px; cursor:pointer; color:var(--ink); padding:10px; border-radius:var(--radius-sm); line-height:1;}
.nav-link-mobile-only{display:none;}

@media(max-width:900px){
  nav.site-nav{height:auto; padding:16px 20px;}
  .nav-center{
    display:none; width:100%; order:3; flex-direction:column; align-items:flex-start;
    gap:16px; padding-top:16px; border-top:1px solid var(--line); margin-top:14px;
  }
  .nav-center.open{display:flex;}
  .nav-link-mobile-only{display:inline;}
  .nav-toggle{display:block;}
  .nav-right{margin-left:auto;}
  /* Sur mobile, seul le bouton d'action principal reste visible a cote du
     hamburger : le lien Contact est deja accessible dans le menu deroulant
     (voir .nav-link-mobile-only ci-dessus), pas besoin de le dupliquer ici. */
  .nav-right .btn-ghost{display:none;}
}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:'Inter', sans-serif; font-weight:600; font-size:14px;
  padding:11px 20px; border-radius:var(--radius-sm); border:1px solid transparent; cursor:pointer;
  text-decoration:none; transition:background .15s ease, border-color .15s ease, color .15s ease, transform .18s ease, box-shadow .18s ease;
  line-height:1.2;
}
.btn-primary{background:var(--ink); color:var(--white);}
.btn-primary:hover{background:#000; transform:translateY(-1px); box-shadow:0 10px 20px -8px rgba(20,22,28,0.45);}
.btn-accent{background:var(--accent); color:var(--white);}
.btn-accent:hover{background:var(--accent-dark); transform:translateY(-2px); box-shadow:0 14px 28px -8px rgba(224,122,63,0.55);}
.btn-dark{background:var(--ink); color:var(--white);}
.btn-outline{background:transparent; color:var(--ink); border-color:var(--line-strong);}
.btn-outline:hover{border-color:var(--ink); transform:translateY(-1px);}
.btn-ghost{background:transparent; color:var(--ink-soft); border-color:transparent;}
.btn-ghost:hover{color:var(--ink);}
.btn-block{width:100%;}
.btn-lg{padding:13px 26px; font-size:15px;}
.btn:disabled{opacity:.5; cursor:not-allowed; transform:none !important; box-shadow:none !important;}
.btn:active{transform:translateY(0) !important;}

/* ---------- HERO (structure inspiree des landing pages type Avast : titre
   centre, CTA pilule flanque d'illustrations, bandeau de badges, bandeau de
   fonctionnalites en dessous) ---------- */
.hero-wrap{
  background:
    radial-gradient(560px 320px at 18% -8%, rgba(181,84,31,0.10), transparent 65%),
    radial-gradient(620px 360px at 88% 4%, rgba(20,22,28,0.055), transparent 60%),
    var(--white);
  position:relative;
  overflow:hidden;
}
/* Glows ambiants animes en arriere-plan du hero : purement decoratifs (aria-hidden
   via absence de contenu), n'affectent jamais la lisibilite du texte au-dessus. */
.hero-wrap::before, .hero-wrap::after{
  content:""; position:absolute; z-index:0; border-radius:50%; pointer-events:none;
  filter:blur(40px); opacity:.4; animation:heroDrift 16s ease-in-out infinite;
}
.hero-wrap::before{
  width:420px; height:420px; left:-140px; top:-160px;
  background:radial-gradient(circle at 35% 35%, rgba(224,122,63,0.22), transparent 68%);
}
.hero-wrap::after{
  width:360px; height:360px; right:-120px; top:-80px;
  background:radial-gradient(circle at 60% 40%, rgba(224,122,63,0.14), transparent 70%);
  animation-delay:-8s;
}
@keyframes heroDrift{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(24px,-18px) scale(1.08);}
}
.hero-center{max-width:920px; margin:0 auto; text-align:center; padding:68px 0 0; position:relative; z-index:1;}

/* ---- Hero deux colonnes (texte a gauche / visuel a droite) ---- */
.hero-grid{
  display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:56px;
  padding:72px 0 48px; position:relative; z-index:1;
}
@media(max-width:900px){ .hero-grid{grid-template-columns:1fr; padding:48px 0 32px; gap:40px; text-align:center;} }

.hero-copy{text-align:left;}
@media(max-width:900px){ .hero-copy{text-align:center;} }
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:7px; background:var(--accent-pale); color:var(--accent-dark);
  font-weight:700; font-size:13px; padding:7px 15px; border-radius:100px; margin-bottom:18px;
}
.hero-title{font-weight:900; font-size:clamp(38px,4.6vw,64px); line-height:1.02; margin:0 0 22px; color:var(--ink); letter-spacing:-0.035em;}
.hero-title em{
  font-style:normal; position:relative; background-image:linear-gradient(90deg, var(--accent-dark), var(--accent));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-title em::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:3px; border-radius:2px;
  background:linear-gradient(90deg, var(--accent-dark), var(--accent)); opacity:.35;
}
.hero-sub{font-size:16.5px; line-height:1.65; color:var(--ink-soft); margin:0 0 32px; max-width:480px;}
@media(max-width:900px){ .hero-sub{margin:0 auto 32px;} }

.hero-cta-row{display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-bottom:0;}
@media(max-width:900px){ .hero-cta-row{justify-content:center;} }
.hero-secondary-link{font-size:14.5px; font-weight:600; color:var(--ink-soft); border-bottom:1px solid var(--line-strong); padding-bottom:2px; transition:color .2s ease, border-color .2s ease;}
.hero-secondary-link:hover{color:var(--ink); border-color:var(--ink);}
.btn-hero{
  padding:18px 38px; font-size:16px; font-weight:700; border-radius:100px;
  box-shadow:0 16px 34px -10px rgba(20,22,28,0.4);
  transition:transform .18s ease, box-shadow .18s ease;
}
.btn-hero:hover{box-shadow:0 20px 40px -10px rgba(20,22,28,0.5); transform:translateY(-2px);}

/* ---- Panneau visuel : mockup produit + badges flottants ---- */
.hero-visual{position:relative;}
.hero-visual-panel{
  position:relative; background:var(--accent-pale); border-radius:28px; padding:44px;
  min-height:380px; display:flex; align-items:center; justify-content:center;
}
.hero-mock-card{
  width:100%; max-width:340px; background:var(--white); border-radius:16px; border:1px solid var(--line);
  box-shadow:0 34px 64px -22px rgba(20,22,28,0.36), 0 10px 26px -12px rgba(224,122,63,0.16); overflow:hidden;
}
.hero-mock-bar{display:flex; gap:6px; padding:12px 16px; border-bottom:1px solid var(--line);}
.hero-mock-bar span{width:8px; height:8px; border-radius:50%; background:var(--line-strong);}
.hero-mock-body{padding:22px 20px 26px;}
.hero-mock-line{height:9px; border-radius:5px; background:var(--bg-subtle); margin-bottom:10px;}
.hero-mock-line.short{width:62%; margin-bottom:20px;}
.hero-mock-btn{background:var(--ink); color:var(--white); font-weight:700; font-size:13px; text-align:center; padding:12px; border-radius:9px;}

.hero-float-card{
  position:absolute; display:flex; align-items:center; gap:12px; background:var(--white);
  border-radius:14px; box-shadow:0 16px 34px -14px rgba(20,22,28,0.3); padding:12px 16px; max-width:230px;
}
.hero-float-top{top:8%; left:-6%;}
.hero-float-bottom{bottom:8%; right:-6%;}
@media(max-width:900px){ .hero-float-top{left:2%;} .hero-float-bottom{right:2%;} }
@media(max-width:520px){ .hero-float-card{position:static; max-width:none; margin-top:14px; box-shadow:var(--shadow-card);} .hero-visual-panel{padding:28px 20px; flex-direction:column; gap:0;} }
.hero-float-dot{width:14px; height:14px; border-radius:50%; flex:none;}
.hero-float-dot.risk{background:var(--red);}
.hero-float-score{
  width:38px; height:38px; border-radius:10px; background:var(--red-bg); color:var(--red);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px; flex:none;
}
.hero-float-title{font-weight:700; font-size:13px; color:var(--ink);}
.hero-float-sub{font-size:11.5px; color:var(--ink-faint); margin-top:1px;}

/* ---- Bandeau de badges/preuves, en pilules sur fond teinte ---- */
.hero-stats-bar{
  display:flex; justify-content:center; gap:14px; flex-wrap:wrap; background:var(--accent-pale);
  border-radius:100px; padding:16px 28px; margin:0 0 56px;
}
@media(max-width:700px){ .hero-stats-bar{border-radius:20px;} }
.hero-stat-pill{
  display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700; color:var(--ink);
  background:var(--white); border-radius:100px; padding:10px 18px; box-shadow:var(--shadow-card);
  transition:transform .2s ease, box-shadow .2s ease;
}
.hero-stat-pill:hover{transform:translateY(-2px); box-shadow:var(--shadow-elevated);}

/* Bandeau de fonctionnalites (fond teinte, icones encadrees) */
.feature-strip{
  background:var(--accent-pale); border-radius:20px; padding:32px 40px; margin:0 0 76px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:26px;
}
@media(max-width:900px){ .feature-strip{grid-template-columns:1fr 1fr; padding:28px;} }
@media(max-width:540px){ .feature-strip{grid-template-columns:1fr;} }
.feature-strip-item{display:flex; align-items:center; gap:14px; text-align:left; transition:transform .25s ease;}
.feature-strip-item:hover{transform:translateY(-2px);}
.feature-icon{
  width:48px; height:48px; border-radius:13px; border:1.5px solid var(--accent-bright); color:var(--accent-dark);
  display:flex; align-items:center; justify-content:center; flex:none;
  background:linear-gradient(155deg, var(--white) 0%, var(--accent-pale) 130%);
  box-shadow:0 6px 14px -5px rgba(224,122,63,0.45);
  transition:box-shadow .25s ease, transform .25s ease;
}
.feature-strip-item:hover .feature-icon{box-shadow:0 10px 22px -6px rgba(224,122,63,0.55); transform:scale(1.06);}
.feature-label{font-size:14px; font-weight:700; color:var(--ink); line-height:1.35;}

/* Product preview card (exemple de rapport) */
.preview-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-elevated); padding:22px; position:relative; max-width:520px; margin:0 auto;
  transition:box-shadow .3s ease, transform .3s ease;
}
.preview-card:hover{box-shadow:0 20px 40px -14px rgba(20,22,28,0.24); transform:translateY(-3px);}
.preview-card .preview-tag{
  position:absolute; top:-11px; left:22px; background:var(--ink); color:var(--white);
  font-size:11px; font-weight:700; padding:5px 12px; border-radius:20px; letter-spacing:0.03em;
}
.preview-url{font-size:12px; color:var(--ink-faint); border:1px solid var(--line); border-radius:6px; padding:8px 12px; margin-bottom:16px; font-family:monospace;}

/* ---------- SECTIONS ---------- */
.section{padding:72px 0;}
.section-alt{background:linear-gradient(180deg, var(--bg-subtle) 0%, #F2F2F4 100%);}
.section-head{max-width:640px; margin:0 auto 44px; text-align:center;}
.section-title{font-weight:900; font-size:clamp(28px,3.8vw,40px); letter-spacing:-0.03em; text-align:center; margin:0 0 14px;}
.section-sub{text-align:center; color:var(--ink-soft); font-size:16px; line-height:1.6; max-width:600px; margin:0 auto;}

.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
@media(max-width:800px){ .grid-3,.grid-2{grid-template-columns:1fr;} }

.card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); padding:26px;
  box-shadow:var(--shadow-card); transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.card:hover{box-shadow:0 22px 44px -18px rgba(20,22,28,0.24); transform:translateY(-4px); border-color:var(--line-strong);}
.step-card{text-align:left;}
.step-icon{
  width:36px; height:36px; border-radius:var(--radius-sm); background:var(--bg-subtle); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; margin-bottom:16px; color:var(--ink);
}
.step-num{
  width:28px; height:28px; border-radius:50%; background:var(--ink); color:var(--white);
  font-weight:700; font-size:13px;
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
}
.step-title{font-weight:700; font-size:15.5px; margin-bottom:8px; color:var(--ink);}
.step-text{color:var(--ink-soft); font-size:14px; line-height:1.65;}

/* ---------- PRICING ---------- */
.price-card{
  border:1px solid var(--line); border-radius:var(--radius-lg); padding:30px; text-align:left; position:relative; background:var(--white);
  transition:box-shadow .3s ease, transform .3s ease, border-color .3s ease;
  display:flex; flex-direction:column; height:100%; overflow:hidden;
}
.price-card.featured::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--accent-bright), var(--accent-dark));
}
/* Les listes d'avantages s'etirent pour occuper l'espace disponible, afin que
   les boutons d'action s'alignent toujours en bas de carte meme quand une
   carte a moins de lignes qu'une autre (evite les grands vides en bas). */
.price-card .price-feats{flex:1;}
.price-card > .btn{margin-top:auto;}
.price-card:hover{box-shadow:var(--shadow-elevated); transform:translateY(-3px);}
.price-card.featured{border-color:var(--ink); box-shadow:var(--shadow-elevated);}
.price-card.featured:hover{transform:translateY(-3px); box-shadow:0 20px 40px -14px rgba(20,22,28,0.3);}
.price-card .ribbon{
  display:inline-block; background:var(--accent-pale); color:var(--accent-dark); font-size:11px; font-weight:700;
  padding:4px 10px; border-radius:20px; margin-bottom:14px; letter-spacing:0.02em; text-transform:uppercase;
}
.price-card h2, .price-card h3{font-size:17px; margin:0 0 4px; font-weight:700;}
.price-card .price-plan-desc{font-size:13px; color:var(--ink-faint); margin-bottom:18px;}
.price-amount{font-size:44px; font-weight:900; margin:6px 0 22px; letter-spacing:-0.03em;}
.price-amount small{font-size:14px; font-weight:500; color:var(--ink-soft);}
.price-feats{list-style:none; padding:0; margin:0 0 24px; text-align:left; display:flex; flex-direction:column; gap:11px;}
.price-feats li{font-size:14px; color:var(--ink-soft); display:flex; gap:10px; align-items:flex-start; line-height:1.5;}
.price-feats li b{color:var(--ink);}
.check{color:var(--ink); flex:none; font-weight:700;}

/* ---------- SCAN / RESULT ---------- */
.scan-form{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:36px;
  max-width:640px; margin:0 auto; position:relative; overflow:hidden;
  box-shadow:0 30px 60px -30px rgba(20,22,28,0.22), 0 2px 8px rgba(20,22,28,0.04);
}
.scan-form::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--accent-bright), var(--accent-dark));
}
.field{margin-bottom:18px;}
.field label{display:block; font-weight:600; font-size:13px; margin-bottom:6px; color:var(--ink);}
.field input, .field textarea{
  width:100%; border:1.5px solid var(--line-strong); border-radius:var(--radius-sm); padding:12px 14px;
  font-family:'Inter',sans-serif; font-size:14.5px; outline:none; background:var(--white); color:var(--ink);
  transition:border-color .18s ease, box-shadow .18s ease;
}
.field input:focus, .field textarea:focus{border-color:var(--accent); box-shadow:0 0 0 4px rgba(181,84,31,0.12);}
.field textarea{min-height:130px; resize:vertical;}
.field-row{display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px;}
@media(max-width:640px){ .field-row{grid-template-columns:1fr;} }
.form-note{font-size:12.5px; color:var(--ink-faint); margin-top:4px;}

.result-panel{max-width:720px; margin:36px auto 0; display:none;}
.result-panel.visible{display:block;}
.risk-gauge{
  display:flex; align-items:center; gap:22px; background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:26px 28px; margin-bottom:20px;
  box-shadow:0 24px 48px -26px rgba(20,22,28,0.28);
}
.risk-score{
  width:72px; height:72px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; flex:none;
  font-weight:900; font-size:26px; border:1px solid transparent; letter-spacing:-0.02em;
}
.risk-score.faible{background:var(--green-bg); color:var(--green);}
.risk-score.modere{background:var(--amber-bg); color:var(--amber);}
.risk-score.eleve{background:var(--red-bg); color:var(--red);}
.risk-score.critique{background:var(--red-deep-bg); color:var(--red-deep);}
.risk-label{font-weight:800; font-size:20px; letter-spacing:-0.01em;}
.risk-desc{color:var(--ink-soft); font-size:14px; margin-top:4px; line-height:1.5;}

.flag-list{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px;}
.flag-item{
  background:var(--red-bg); border:1px solid var(--line); border-left:3.5px solid var(--red); border-radius:var(--radius-sm); padding:13px 16px;
  font-size:13.5px; color:var(--ink-soft); display:flex; gap:10px; line-height:1.5;
}
.flag-item b{color:var(--ink);}
.flag-item.positif{border-left-color:var(--green); background:var(--green-bg);}

.not-detected-block{margin-top:18px;}
.not-detected-block summary{
  cursor:pointer; font-weight:600; font-size:13.5px; color:var(--ink-soft); padding:10px 4px;
  list-style:none; display:flex; align-items:center; gap:8px;
}
.not-detected-block summary::-webkit-details-marker{display:none;}
.not-detected-block summary::before{content:"+"; font-weight:800; color:var(--green); width:16px; text-align:center; flex:none;}
.not-detected-block[open] summary::before{content:"−";}
.not-detected-block summary:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:4px;}
.not-detected-block .flag-list{margin-top:10px;}

.unlock-box{
  background:linear-gradient(135deg, var(--ink) 0%, #23262F 100%); color:var(--white); border-radius:var(--radius-lg); padding:26px 28px; margin-top:22px;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  box-shadow:0 26px 50px -24px rgba(20,22,28,0.5);
}
.unlock-box h3{margin:0 0 6px; font-size:17.5px; font-weight:800; letter-spacing:-0.01em;}
.unlock-box p{margin:0; color:#A8ADB8; font-size:13.5px; max-width:340px; line-height:1.5;}

.detailed-report{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); padding:24px 26px; margin-top:22px;
  white-space:pre-wrap; font-size:14px; line-height:1.7; color:var(--ink);
}

.alert-box{
  border-radius:var(--radius-sm); padding:13px 16px; font-size:13.5px; margin-top:16px; display:none;
}
.alert-box.visible{display:block;}
.alert-error{background:var(--red-bg); color:var(--red-deep); border:1px solid #EFC9C2;}
.alert-info{background:#EAF1FB; color:#1D4E89; border:1px solid #C7DEFA;}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--line); padding:10px 0;}
.faq-item h3{margin:0;}
.faq-q{
  width:100%; background:none; border:none; font:inherit; text-align:left; cursor:pointer;
  font-weight:600; font-size:14.5px; display:flex; justify-content:space-between; align-items:center;
  color:var(--ink); padding:14px 0; gap:12px;
}
.faq-q::after{content:"+"; color:var(--ink-faint); font-size:18px; flex:none;}
.faq-item.open .faq-q::after{content:"–";}
.faq-a{color:var(--ink-soft); font-size:14px; line-height:1.65; margin:0 0 16px;}
.faq-a[hidden]{display:none;}

/* ---------- TRUST / NOTES ---------- */
.trust-note{
  background:var(--bg-subtle); border:1px solid var(--line); border-radius:var(--radius-md); padding:18px 22px;
  font-size:13.5px; color:var(--ink-soft); text-align:center; max-width:640px; margin:0 auto 30px; line-height:1.6;
}
.quote-card{background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); padding:24px;}
.quote-card p{font-size:14px; color:var(--ink-soft); line-height:1.6;}
.quote-card .who{font-weight:700; font-size:13px; color:var(--ink); margin-top:12px;}

/* ---------- FOOTER ---------- */
footer.site-footer{background:var(--ink); color:#A8ADB8; padding:56px 0 26px; margin-top:0;}
.footer-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:32px;}
@media(max-width:800px){ .footer-grid{grid-template-columns:1fr 1fr;} }
.footer-grid h5{color:var(--white); font-size:13px; font-weight:700; margin:0 0 16px; text-transform:uppercase; letter-spacing:0.04em;}
.footer-grid a{display:block; color:#A8ADB8; text-decoration:none; font-size:13.5px; margin-bottom:11px;}
.footer-grid a:hover{color:var(--white);}
.footer-bottom{border-top:1px solid #2A2D35; margin-top:36px; padding-top:20px; font-size:12px; color:#6D7280; text-align:center; line-height:1.6;}

/* ---------- BLOG ---------- */
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:1120px; margin:0 auto;}
@media(max-width:860px){ .blog-grid{grid-template-columns:1fr;} }
.blog-card{
  display:flex; flex-direction:column; gap:10px; background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-md); padding:24px; text-decoration:none; color:inherit; box-shadow:var(--shadow-card);
  transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.blog-card:hover{border-color:var(--line-strong); box-shadow:var(--shadow-elevated); transform:translateY(-3px);}
.blog-card:hover h2{color:var(--accent-dark);}
.blog-card h2{transition:color .2s ease;}
.blog-card .blog-tag{font-size:11.5px; font-weight:700; color:var(--accent-dark); text-transform:uppercase; letter-spacing:0.03em;}
.blog-card h2{font-size:17px; margin:0; font-weight:700; line-height:1.35;}
.blog-card p{font-size:14px; color:var(--ink-soft); line-height:1.6; margin:0;}
.blog-card .blog-date{font-size:12px; color:var(--ink-faint); margin-top:auto;}

.article-wrap{max-width:700px; margin:0 auto;}
.article-meta{font-size:13px; color:var(--ink-faint); margin-bottom:10px;}
.article-title{font-weight:800; font-size:clamp(26px,4vw,34px); line-height:1.2; margin:0 0 18px;}
.article-lead{font-size:16.5px; color:var(--ink-soft); line-height:1.65; margin-bottom:8px;}
.article-body{font-size:15.5px; line-height:1.8; color:var(--ink-soft);}
.article-body h2{color:var(--ink); font-size:20px; font-weight:700; margin:34px 0 12px;}
.article-body h3{color:var(--ink); font-size:17px; font-weight:700; margin:26px 0 10px;}
.article-body p{margin:0 0 16px;}
.article-body ul{margin:0 0 16px; padding-left:20px;}
.article-body li{margin-bottom:8px;}
.article-body a{color:var(--accent-dark); font-weight:600;}
.article-cta{
  background:var(--bg-subtle); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:22px 24px; margin:32px 0; text-align:center;
}
.article-cta p{margin:0 0 14px; font-size:14.5px; color:var(--ink-soft);}

/* ---------- LEGAL PAGES ---------- */
.legal-content{max-width:760px; margin:0 auto; font-size:14.5px; line-height:1.8; color:var(--ink-soft);}
.legal-content h2{color:var(--ink); font-size:19px; font-weight:700; margin-top:34px;}
.legal-content mark{background:var(--accent-pale); color:var(--accent-dark); padding:1px 5px; border-radius:4px;}

/* ---------- CONTACT ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:44px; max-width:900px; margin:0 auto;}
@media(max-width:760px){ .contact-grid{grid-template-columns:1fr;} }

@media(max-width:760px){
  nav.site-nav{padding:16px 20px;}
}

/* ---------- GAUGE V2 ---------- */
.risk-gauge-v2{
  display:flex; align-items:flex-start; gap:24px; flex-wrap:wrap;
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:24px 28px; margin-bottom:20px;
  box-shadow:0 24px 48px -26px rgba(20,22,28,0.22);
}
.gauge-svg-wrap{flex:none; width:140px; position:relative;}
.gauge-svg-wrap svg{width:100%; height:auto; display:block; overflow:visible;}

/* Texte score centré dans le SVG */
.gauge-score-num{
  font-family:'Inter',sans-serif; font-weight:900; font-size:32px;
  fill:var(--ink); letter-spacing:-0.03em;
}
.gauge-level-text{
  font-family:'Inter',sans-serif; font-weight:600; font-size:10.5px;
  letter-spacing:0.01em;
}
.gauge-level-faible  { fill:var(--green); }
.gauge-level-modere  { fill:var(--amber); }
.gauge-level-eleve   { fill:var(--red); }
.gauge-level-critique{ fill:var(--red-deep); }

/* Partie droite : description + breakdown */
.gauge-info{ flex:1; min-width:180px; }
.gauge-desc-text{ margin:4px 0 16px; font-size:14px; color:var(--ink-soft); line-height:1.55; }

/* Breakdown barres par catégorie */
.gauge-breakdown{ display:flex; flex-direction:column; gap:8px; }
.gauge-cat{ display:flex; align-items:center; gap:10px; }
.gauge-cat-label{
  font-size:12px; font-weight:600; color:var(--ink-soft);
  width:56px; flex:none; text-transform:uppercase; letter-spacing:0.04em;
}
.gauge-cat-bar{
  flex:1; height:5px; background:var(--line); border-radius:99px; overflow:hidden;
}
.gauge-cat-fill{
  height:100%; background:var(--red); border-radius:99px;
  width:0; /* animé en JS */
}
.gauge-cat-val{
  font-size:11.5px; font-weight:700; color:var(--red); width:28px; text-align:right; flex:none;
}

/* Flags cliquables avec explication */
.flag-item--expandable{ background:none; border:none; padding:0; display:block; }
.flag-detail{
  border:1px solid var(--line); border-left:3.5px solid var(--red);
  border-radius:var(--radius-sm); background:var(--red-bg); overflow:hidden;
}
.flag-detail summary{
  padding:13px 16px; font-size:13.5px; color:var(--ink-soft); line-height:1.5;
  cursor:pointer; list-style:none; display:flex; align-items:flex-start; gap:9px;
  user-select:none;
}
.flag-detail summary::-webkit-details-marker{ display:none; }
.flag-detail summary:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; border-radius:6px; }
.flag-detail-arrow{
  flex:none; font-size:9px; margin-top:3px; color:var(--red);
  transition:transform 0.2s ease;
}
.flag-detail[open] .flag-detail-arrow{ transform:rotate(90deg); }
.flag-detail-explain{
  margin:0; padding:10px 16px 14px;
  font-size:13px; color:var(--ink-soft); line-height:1.6;
  border-top:1px solid rgba(179,58,44,0.12);
  background:rgba(255,255,255,0.55);
}

@media(max-width:600px){
  .risk-gauge-v2{ flex-direction:column; align-items:center; text-align:center; gap:16px; }
  .gauge-info{ min-width:unset; width:100%; }
  .gauge-cat-label{ width:48px; }
  .gauge-breakdown{ text-align:left; }
}

/* ---------- Scan verrouillé (quota gratuit épuisé) ---------- */
.locked-card{
  display:flex; align-items:flex-start; gap:18px;
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:24px 28px; margin-bottom:4px;
  box-shadow:0 24px 48px -26px rgba(20,22,28,0.22);
}
.locked-icon{
  flex:none; width:52px; height:52px; border-radius:var(--radius-md);
  display:grid; place-items:center; background:var(--accent-pale); color:var(--accent-dark);
}
.locked-title{margin:2px 0 6px; font-weight:800; font-size:18px; letter-spacing:-0.01em; color:var(--ink);}
.locked-text{margin:0; font-size:14px; line-height:1.55; color:var(--ink-soft);}
@media(max-width:600px){ .locked-card{padding:20px; gap:14px;} }
.gauge-level-incomplet{ fill:var(--ink-soft); }
