:root{
  --primary:#3c62d8; --primary-600:#2f50b4;
  --muted:#6b7280; --bg:#ffffff; --border:#e5e7eb;
  --success:#4da167; --ring: color-mix(in srgb, var(--primary) 18%, transparent);
}

/* Reset & anti-styles builder */
.auditseov2, .auditseov2 *{ box-sizing:border-box; }
.auditseov2 input,.auditseov2 button,.auditseov2 select,.auditseov2 label{ font:inherit; }
.auditseov2 label,.auditseov2 .choice{ float:none!important; width:auto!important; clear:none!important; text-align:left!important; }
.auditseov2 .choice span{ float:none!important; width:auto!important; text-align:left!important; margin:0!important; }

/* Container & type */
.auditseov2{
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:14px;
  padding:24px;
  box-shadow:0 12px 24px -12px rgba(0,0,0,.15);
}
.auditseov2 h3{ margin:0 0 .75rem; font-size:1.25rem; }
.auditseov2 .lead{ margin:.35rem 0 1rem; color:#111827; }
.auditseov2 .help{ color:var(--muted); font-size:.92rem; margin:.15rem 0 .65rem; }

/* Progress bar */
.auditseov2 .progress{
  height:6px; border-radius:999px; background:#eef2ff;
  margin:2px 0 16px; overflow:hidden;
}
.auditseov2 .progress .bar{
  display:block; height:100%; width:0%;
  background:var(--primary); border-radius:999px; transition:width .25s ease;
}

/* Grids (étape 5) */
.auditseov2 .grid-1{ display:grid; grid-template-columns:1fr; row-gap:20px; }
.auditseov2 .grid-2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:20px; row-gap:20px; }
.auditseov2 label.block{ display:flex!important; flex-direction:column; gap:.6rem; }

/* Inputs */
.auditseov2 input[type], .auditseov2 select{
  width:100%; padding:.9rem 1rem;
  border:1.2px solid #cbd5e1; border-radius:10px; background:#fff;
  transition:border-color .15s, box-shadow .15s; line-height:1.25;
  text-transform:none!important;
}
.auditseov2 input::placeholder{ text-transform:none!important; }
.auditseov2 input:focus{ outline:none; border-color:var(--primary); box-shadow:0 0 0 3px var(--ring); }

/* Erreurs */
.auditseov2 .field-error{ color:#ef4444; font-size:.9rem; margin-top:.35rem; }
.auditseov2 input.is-invalid{ border-color:#ef4444 !important; box-shadow:0 0 0 3px rgba(239,68,68,.15) !important; }
.auditseov2 .error{ color:#b91c1c; font-size:.92rem; margin-top:.35rem; }

/* Boutons & nav */
.auditseov2 .nav{ display:flex; gap:.6rem; margin-top:18px; }
.auditseov2 .btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 1.2rem; border-radius:12px; border:1px solid #d1d5db;
  background:#fff; cursor:pointer; font-weight:700; line-height:1; font-size:1rem;
}
.auditseov2 .btn[aria-busy="true"]{ opacity:.75; pointer-events:none; }

/* CTA principal */
.auditseov2 .btn.primary{
  background:var(--primary); color:#fff; border-color:var(--primary) !important;
  position:relative; padding-right:2.75rem; /* réserve l'espace coche */
}
.auditseov2 .btn.primary:hover{ background:var(--primary-600); border-color:var(--primary-600) !important; }

/* Coche (affichée quand .ok) */
.auditseov2 .btn.primary::after{
  content:""; position:absolute; right:12px; top:50%;
  width:18px; height:10px; transform:translateY(-60%) rotate(45deg);
  border-right:3px solid #fff; border-bottom:3px solid #fff; opacity:0; transition:opacity .15s ease;
}
.auditseov2 .btn.primary.ok::after{ opacity:1; }

/* CTA secondaire (Précédent) – visuel atténué */
.auditseov2 .btn.ghost{
  background:#f3f4f6 !important; color:#334155 !important; border-color:#e5e7eb !important;
  box-shadow:none !important; opacity:.9;
}
.auditseov2 .btn.ghost:hover{ background:#e5e7eb !important; color:#1f2937 !important; opacity:1; }
.auditseov2 .btn.ghost:focus-visible{ box-shadow:0 0 0 3px var(--ring) !important; }

/* Visibilité des étapes */
.auditseov2 .step[hidden], .auditseov2 .step.is-hidden{ display:none!important; }

/* Stepper */
.auditseov2-steps{ display:flex; align-items:center; gap:0; padding:0; margin:6px 0 18px; list-style:none; }
.auditseov2-steps li{ position:relative; display:flex; align-items:center; gap:10px; margin-right:16px; }
.auditseov2-steps li .circle{
  width:28px; height:28px; display:flex; align-items:center; justify-content:center;
  border-radius:999px; background:#eef2ff; color:#4253ac; font-weight:700; border:1px solid #dbe3ff;
}
.auditseov2-steps li .label{ display:none; font-weight:600; color:#111827; }
.auditseov2-steps li.is-active .label{ display:block; }
.auditseov2-steps li::after{ content:""; display:block; width:48px; height:2px; background:#c7d2fe; border-radius:2px; margin-left:12px; }
.auditseov2-steps li:last-child{ margin-right:0; }
.auditseov2-steps li:last-child::after{ display:none; }
.auditseov2-steps li.is-active .circle{ background:var(--primary); border-color:var(--primary); color:#fff; }
.auditseov2-steps li.is-done .circle{
  background:var(--success); border-color:var(--success); color:transparent; position:relative;
}
.auditseov2-steps li.is-done .circle::after{
  content:"✓"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:900;
}
.auditseov2-steps li.is-done::after{ background:var(--success); }

/* Choix (checkbox & radios uniformisés) */
.auditseov2 .choice{
  display:flex!important; align-items:center; gap:.62rem;
  margin:.70rem 0 .70rem; justify-content:flex-start!important;
}
.auditseov2 .choice input{
  -webkit-appearance:none; appearance:none; margin:0;
  width:20px; height:20px; border:2px solid #cbd5e1; background:#fff;
  position:relative; border-radius:6px; outline:none; flex:0 0 auto;
  transition:border-color .12s, box-shadow .12s, background-color .12s;
}
.auditseov2 .choice input[type="radio"]{ border-radius:6px; }
.auditseov2 .choice input:hover{ border-color:#9ca3af; }
.auditseov2 .choice input:focus-visible{ box-shadow:0 0 0 3px var(--ring); border-color:var(--primary); }
.auditseov2 .choice input:checked{ background:var(--primary); border-color:var(--primary); }
.auditseov2 .choice input:checked::after{
  content:""; position:absolute; width:6px; height:10px;
  border:2px solid #fff; border-top:0; border-left:0;
  top:50%; left:50%; transform:translate(-50%,-55%) rotate(45deg);
}

/* Cartes cliquables (étapes 2,3,4) */
.choice.card{
  border:1px solid #e5e7eb; border-radius:10px; padding:12px 14px;
  transition:box-shadow .15s,border-color .15s, background-color .15s;
  background:#fff;
}
.choice.card:hover{ border-color:#cbd5e1; box-shadow:0 4px 16px -12px rgba(0,0,0,.2); }
.choice.card input{ margin-left:2px; }
.choice.card input:checked ~ span{ font-weight:600; }
.choice.card input:checked ~ span small{ color:#374151; }

/* 2 colonnes (étapes 3 & 4) */
.auditseov2 .choices.two-col{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 24px;
}
@media (max-width:680px){
  .auditseov2 .choices.two-col{ grid-template-columns:1fr; }
}

/* Étape 6 : carte de confirmation */
.confirm-card{
  max-width:860px; margin:0 auto; background:#fff;
  border:1px solid var(--border); border-radius:16px;
  box-shadow:0 18px 40px -20px rgba(0,0,0,.2);
  padding:24px; text-align:center;
}
.confirm-card .tick{
  width:56px; height:56px; margin:6px auto 10px; border-radius:999px;
  background:#e8fff1; border:2px solid #22c55e; position:relative;
}
.confirm-card .tick::after{
  content:""; position:absolute; width:12px; height:20px;
  border:3px solid #16a34a; border-top:0; border-left:0;
  top:14px; left:19px; transform:rotate(45deg);
}
.confirm-card .sub{ color:#4b5563; margin:.2rem 0 1rem; }
.confirm-grid{
  display:grid; grid-template-columns:280px 1fr; gap:18px;
  align-items:start; margin:6px 0 8px; text-align:left;
}
.confirm-kpi{ border:1px solid #d1fae5; background:#ecfdf5; border-radius:12px; padding:14px 16px; }
.kpi-label{ font-size:.9rem; color:#065f46; }
.kpi-value{ font-weight:800; font-size:1.6rem; color:#065f46; margin:.2rem 0 .5rem; }
.confirm-recap{ border:1px solid #e5e7eb; border-radius:12px; padding:14px 16px; background:#fff; }
.recap-title{ font-weight:700; margin-bottom:.4rem; }
.choices-list div{ margin:.2rem 0; }
.choices-list ul{ margin:.25rem 0 0 1rem; }
.cta-row{ display:flex; gap:.6rem; flex-wrap:wrap; }
.cta-row.center{ justify-content:center; }
@media (max-width:860px){ .confirm-grid{ grid-template-columns:1fr; } }

/* Réassurance */
.reassure{ margin-top:18px; }
.reassure .sep{ border:0; height:1px; background:#e5e7eb; margin:10px 0 14px; }
.reassure h4{ margin:0 0 .6rem; font-size:1.05rem; color:#111827; }
.r-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }

/* Cartes de réassurance corrigées */
.r-card{
  display:flex; flex-wrap:wrap; align-items:flex-start;
  gap:6px 10px; border:1px solid #e5e7eb; border-radius:12px; background:#fff;
  padding:14px; max-width:100%; line-height:1.35; word-break:break-word;
}
.r-card .ico{ flex:0 0 22px; font-size:20px; line-height:1; margin-top:2px; }
.r-card strong{ flex:0 0 100%; display:block; margin-top:-2px; }
.r-card br{ display:none; }

@media (max-width:900px){ .r-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .r-grid{ grid-template-columns:1fr; } }

/* Accessibilité */
.auditseov2 .sr-only{
  position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important;
  overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important;
}

/* Honeypot (invisible mais actif) */
.auditseov2 .hpwrap{
  position:absolute !important; left:-10000px !important; top:auto !important;
  width:1px !important; height:1px !important; overflow:hidden !important;
}

/* Animations */
.step.shake{ animation: shake .35s; }
@keyframes shake{
  10%,90%{transform:translateX(-1px);}
  20%,80%{transform:translateX(2px);}
  30%,50%,70%{transform:translateX(-4px);}
  40%,60%{transform:translateX(4px);}
}

/* Mobile polish & stepper overflow fix */
@media (max-width: 480px){
  .auditseov2{ padding:16px; border-radius:12px; }
  .auditseov2-steps{
    gap:8px; margin:6px 0 12px; padding-bottom:6px;
    overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;
  }
  .auditseov2-steps::-webkit-scrollbar{ display:none; }
  .auditseov2-steps li{ margin-right:8px; }
  .auditseov2-steps li::after{ width:32px; margin-left:8px; }
  .auditseov2-steps li .circle{ width:26px; height:26px; font-size:.9rem; }
  .auditseov2-steps li .label{ font-size:.95rem; }
  .auditseov2 h3{ font-size:clamp(1.05rem, 4vw, 1.2rem); }
  .auditseov2 .lead{ font-size:clamp(.95rem, 3.4vw, 1.05rem); }
  .auditseov2 input[type], .auditseov2 select{ font-size:16px; } /* anti-zoom iOS */
  .auditseov2 .btn{ padding:.8rem 1rem; }
  .auditseov2 .btn.primary{ padding-right:2.4rem; }
}

/* Réassurance : forcer noir même si thème override */
.auditseov2 .reassure h4,
.auditseov2 .reassure h4 *,
.auditseov2 .reassure h4 a { color:#111827 !important; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .step.shake, .auditseov2 *{ animation:none!important; transition:none!important; }
}
