*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
  :root{
    /* Thème drapeau Luxembourg : rouge #ED2939 / blanc / bleu clair #00A1DE */
    --paper:#ffffff;
    --paper-2:#f7fafd;
    --ink:#0a1a2e;
    --ink-2:#1a2b44;
    --muted:#5a6b7e;
    --rule:#d4dde6;
    --rule-2:#e6edf4;
    --accent:#ED2939;        /* rouge Luxembourg */
    --accent-2:#c41e2c;
    --blue:#00A1DE;          /* bleu Luxembourg */
    --blue-2:#0086b8;
    --green:#2f6b3a;
  }
  html{font-size:16px;-webkit-text-size-adjust:100%;}
  body{
    background:var(--paper);color:var(--ink);
    font-family:"Fraunces",Georgia,"Times New Roman",serif;
    -webkit-font-smoothing:antialiased;
    padding:0;min-height:100vh;
    overflow-x:hidden;
  }

  /* === Container : mobile-first, max 680 desktop === */
  .paper{
    max-width:680px;margin:0 auto;background:var(--paper-2);
    min-height:100vh;
  }
  @media(min-width:720px){
    body{padding:24px 16px 60px;}
    .paper{
      border:1px solid var(--rule);
      box-shadow:0 30px 80px -30px rgba(20,17,12,.25);
      min-height:0;
    }
  }

  .pad{padding:24px 20px;}
  @media(min-width:520px){.pad{padding:32px 32px;}}
  @media(min-width:720px){.pad{padding:36px 44px;}}

  /* === Masthead === */
  .masthead{
    display:flex;align-items:center;justify-content:space-between;
    gap:14px;padding:16px 20px 12px;border-bottom:3px double var(--ink);
  }
  @media(min-width:720px){.masthead{padding:20px 44px 14px;}}
  .mh-side{
    font-family:"Inter",sans-serif;font-size:10px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--muted);line-height:1.4;
    flex-shrink:0;
  }
  .mh-side.right{text-align:right;}
  .mh-title{
    font-family:"Fraunces",serif;font-weight:700;font-size:24px;
    letter-spacing:-.02em;line-height:1;text-align:center;flex:1;
    font-variation-settings:"opsz" 144;
  }
  .mh-title em{font-style:italic;font-weight:500;}
  @media(min-width:520px){
    .mh-side{font-size:11px;}
    .mh-title{font-size:32px;}
  }
  @media(min-width:720px){.mh-title{font-size:38px;}}

  .mh-strap{
    display:flex;justify-content:space-between;align-items:center;
    padding:9px 20px;border-bottom:1px solid var(--rule);gap:10px;
    font-family:"Inter",sans-serif;font-size:10px;color:var(--muted);
    flex-wrap:wrap;
  }
  @media(min-width:720px){.mh-strap{padding:10px 44px;font-size:11px;}}
  .mh-strap .live{display:flex;align-items:center;gap:6px;}
  .mh-strap .dot{width:6px;height:6px;border-radius:50%;background:var(--green);display:inline-block;animation:pulse 2.5s ease-in-out infinite;}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}

  /* === Press citations === */
  .press{
    padding:16px 20px 18px;border-bottom:1px solid var(--rule);
  }
  @media(min-width:720px){.press{padding:18px 44px 22px;}}
  .press-lbl{
    font-family:"Inter",sans-serif;font-size:10px;font-weight:600;
    letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
    text-align:center;margin-bottom:14px;display:flex;align-items:center;justify-content:center;gap:12px;
  }
  .press-lbl::before,.press-lbl::after{content:"";flex:0 0 24px;height:1px;background:var(--rule);}
  .press-logos{
    display:flex;align-items:center;justify-content:center;
    gap:18px;flex-wrap:wrap;color:var(--ink-2);
  }
  @media(min-width:520px){.press-logos{gap:24px;}}
  .pl{
    height:22px;display:inline-flex;align-items:center;
    filter:grayscale(1) brightness(.35) contrast(1.4);opacity:.75;
    transition:filter .25s ease,opacity .25s ease,transform .25s ease;
  }
  .pl img{height:100%;width:auto;display:block;max-width:120px;object-fit:contain;}
  @media(min-width:520px){.pl{height:26px;}.pl img{max-width:150px;}}
  @media(min-width:720px){.pl{height:30px;}}
  @media(hover:hover){.pl:hover{filter:none;opacity:1;transform:translateY(-1px);}}
  .pl-fallback{
    font-family:"Fraunces",serif;font-weight:700;font-size:14px;
    letter-spacing:-.01em;color:var(--ink);
  }
  @media(min-width:520px){.pl-fallback{font-size:16px;}}

  /* === Editorial === */
  .kicker{
    display:inline-block;background:var(--ink);color:var(--paper-2);
    font-family:"Inter",sans-serif;font-size:10px;font-weight:700;
    letter-spacing:.22em;text-transform:uppercase;padding:5px 9px;
    margin-bottom:14px;
  }
  h1.headline{
    font-family:"Fraunces",serif;font-size:28px;line-height:1.18;
    font-weight:600;letter-spacing:-.02em;margin-bottom:18px;
    font-variation-settings:"opsz" 144;text-wrap:balance;
  }
  h1.headline em{font-style:italic;color:var(--accent);}
  @media(min-width:520px){h1.headline{font-size:34px;}}
  @media(min-width:720px){h1.headline{font-size:40px;}}

  .deck{
    font-family:"Fraunces",serif;font-size:16px;line-height:1.55;
    color:var(--ink-2);font-weight:400;margin-bottom:20px;
    font-style:italic;text-wrap:pretty;
  }
  @media(min-width:520px){.deck{font-size:18px;line-height:1.6;}}

  .byline{
    display:flex;align-items:center;gap:10px;padding:10px 0;
    border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
    font-family:"Inter",sans-serif;font-size:11px;color:var(--muted);
    margin-bottom:24px;flex-wrap:wrap;
  }
  .byline strong{color:var(--ink);font-weight:600;}
  .byline .sep{width:3px;height:3px;border-radius:50%;background:var(--muted);flex:0 0 3px;}

  /* === Stats === */
  .stats{
    display:grid;grid-template-columns:repeat(3,1fr);
    border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
    margin-bottom:24px;
  }

  /* === Mini bar-chart comparatif === */
  .rate-bars{
    background:#fff;border:1px solid var(--rule);
    padding:16px 14px 12px;margin:6px 0 22px;
  }
  @media(min-width:520px){.rate-bars{padding:18px 18px 14px;}}
  .rb-title{
    font-family:"Inter",sans-serif;font-size:10px;font-weight:700;
    letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
    margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--rule-2);
  }
  .rb-title span{color:var(--muted);font-weight:500;letter-spacing:.08em;}
  .rb-row{
    display:grid;grid-template-columns:90px 1fr 56px;
    align-items:center;gap:10px;padding:5px 0;
    font-family:"Inter",sans-serif;font-size:12px;
  }
  @media(min-width:520px){.rb-row{grid-template-columns:120px 1fr 70px;font-size:13px;}}
  .rb-label{color:var(--ink-2);font-weight:500;}
  .rb-row.featured .rb-label strong{color:var(--accent);font-weight:700;font-family:"Fraunces",serif;font-size:14px;}
  @media(min-width:520px){.rb-row.featured .rb-label strong{font-size:16px;}}
  .rb-bar{height:14px;background:var(--rule-2);position:relative;overflow:hidden;}
  .rb-row.featured .rb-bar{height:18px;}
  .rb-fill{
    position:absolute;inset:0 auto 0 0;width:0;
    transition:width 1.2s cubic-bezier(.2,.7,.2,1);
  }
  .rate-bars.animate .rb-fill{width:var(--w);}
  .rb-fill--low{background:var(--muted);}
  .rb-fill--mid{background:var(--blue);}
  .rb-fill--hi{background:linear-gradient(90deg,var(--accent) 0%,var(--accent-2) 100%);}
  .rb-val{
    font-family:"Fraunces",serif;font-weight:600;font-size:13px;
    color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums;
  }
  @media(min-width:520px){.rb-val{font-size:15px;}}
  .rb-val--hi{color:var(--accent);font-weight:700;font-size:16px;}
  @media(min-width:520px){.rb-val--hi{font-size:19px;}}
  .rb-foot{
    margin-top:10px;padding-top:10px;border-top:1px dashed var(--rule);
    font-family:"Inter",sans-serif;font-size:9.5px;color:var(--muted);
    line-height:1.5;letter-spacing:.01em;
  }
  @media(min-width:520px){.rb-foot{font-size:10.5px;}}

  /* === Scarcity badge inline === */
  .byline .scarcity{display:inline-flex;align-items:center;gap:5px;}
  .byline .scarcity strong{color:var(--accent);font-weight:700;}
  .byline .scarcity::before{
    content:"";width:6px;height:6px;border-radius:50%;
    background:var(--accent);display:inline-block;
    animation:pulse 2s ease-in-out infinite;
  }

  /* === Trust seals === */
  .seals{
    display:grid;grid-template-columns:1fr;gap:8px;
    margin-bottom:22px;
  }
  @media(min-width:520px){.seals{grid-template-columns:repeat(3,1fr);gap:10px;}}
  .seal{
    display:flex;align-items:center;gap:12px;
    background:#fff;border:1px solid var(--rule);padding:10px 12px;
  }
  .seal-mark{
    flex-shrink:0;width:46px;height:46px;display:grid;place-items:center;
    background:var(--ink);color:#fff;
    font-family:"Fraunces",serif;font-weight:700;font-size:15px;
    letter-spacing:-.02em;line-height:1;position:relative;
  }
  .seal-mark--sp{
    background:#fff;border:1px solid var(--rule);padding:0;
    width:54px;height:46px;
  }
  .seal-mark--sp svg{width:100%;height:auto;display:block;}
  .seal-mark-rating{
    position:absolute;bottom:-2px;right:-6px;
    background:var(--ink);color:#fff;
    font-family:"Fraunces",serif;font-weight:700;font-size:13px;
    padding:1px 5px;line-height:1.1;letter-spacing:-.02em;
    border:1px solid #fff;
  }
  .seal-mark--fgdl{
    background:#fff;border:1px solid var(--rule);padding:0;
    width:54px;height:46px;
  }
  .seal-mark--fgdl svg{width:100%;height:100%;display:block;}
  .seal-mark--orias{
    background:#fff;border:1px solid var(--rule);padding:0;
    width:54px;height:46px;
  }
  .seal-mark--orias svg{width:100%;height:100%;display:block;}
  .seal-mark--ring{
    background:#fff;border:2px solid var(--blue);color:var(--blue);
    font-family:"Inter",sans-serif;font-size:11px;font-weight:800;
    letter-spacing:.06em;
  }
  .seal-body{flex:1;min-width:0;}
  .seal-h{
    font-family:"Inter",sans-serif;font-size:11px;font-weight:700;
    color:var(--ink);letter-spacing:.02em;line-height:1.25;margin-bottom:2px;
  }
  .seal-d{
    font-family:"Inter",sans-serif;font-size:10px;color:var(--muted);
    line-height:1.35;letter-spacing:.01em;
  }
  .stat{padding:14px 8px;text-align:center;border-right:1px solid var(--rule);}
  .stat:last-child{border-right:0;}
  .stat-num{
    font-family:"Fraunces",serif;font-weight:700;font-size:22px;
    color:var(--accent);letter-spacing:-.02em;line-height:1;margin-bottom:4px;
  }
  .stat-num small{font-size:.55em;color:var(--muted);font-weight:400;}
  .stat-lbl{
    font-family:"Inter",sans-serif;font-size:9px;color:var(--muted);
    letter-spacing:.06em;text-transform:uppercase;line-height:1.3;
  }
  @media(min-width:520px){
    .stat{padding:16px 14px;}
    .stat-num{font-size:26px;}
    .stat-lbl{font-size:10px;letter-spacing:.1em;}
  }

  /* === Progress === */
  .progress-area{margin-bottom:22px;}
  .progress-meta{
    display:flex;justify-content:space-between;align-items:baseline;
    font-family:"Inter",sans-serif;font-size:11px;color:var(--muted);
    letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;
    gap:8px;
  }
  .progress-meta strong{color:var(--ink);font-weight:600;}
  .progress-track{height:3px;background:var(--rule-2);position:relative;overflow:hidden;}
  .progress-fill{
    position:absolute;inset:0 auto 0 0;width:16%;
    background:var(--accent);
    transition:width .55s cubic-bezier(.2,.7,.2,1);
  }

  /* === A11y : reduced motion === */
  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
    .mh-strap .dot{animation:none !important;opacity:1 !important;}
    .byline .scarcity::before{animation:none !important;}
    .step.active{opacity:1 !important;transform:none !important;animation:none !important;}
  }

  /* === Compatibility === */
  .compat{
    display:none;padding:14px 16px;background:#fff;
    border:1px solid var(--rule);border-left:3px solid var(--green);
    margin-bottom:22px;
  }
  .compat.show{display:block;animation:fadeIn .35s ease;}
  @keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
  .compat-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
  .compat-label{
    font-family:"Inter",sans-serif;font-size:12px;font-weight:600;
    color:var(--ink);letter-spacing:.02em;
  }
  .compat-label small{
    display:block;font-weight:400;color:var(--muted);margin-top:2px;
    letter-spacing:0;font-size:11px;
  }
  .compat-score{
    font-family:"Fraunces",serif;font-weight:700;font-size:26px;
    color:var(--green);letter-spacing:-.02em;line-height:1;
    flex-shrink:0;
  }
  .compat-bar{margin-top:10px;height:2px;background:var(--rule-2);position:relative;overflow:hidden;}
  .compat-bar div{
    position:absolute;inset:0 auto 0 0;width:0;
    background:var(--green);transition:width 1.1s cubic-bezier(.2,.7,.2,1);
  }

  /* === Calculateur dynamique post-Q2 === */
  .calc{
    display:none;background:linear-gradient(180deg,#fff 0%,var(--paper-2) 100%);
    border:1px solid var(--accent);padding:18px 16px;margin:0 0 22px;position:relative;
  }
  .calc.show{display:block;animation:fadeIn .5s ease;}
  .calc::before{
    content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:3px;
    background:linear-gradient(90deg,var(--accent),var(--blue));
  }
  .calc-h{
    font-family:"Inter",sans-serif;font-size:10px;font-weight:700;
    letter-spacing:.18em;text-transform:uppercase;color:var(--accent);
    margin-bottom:10px;
  }
  .calc-num{
    font-family:"Fraunces",serif;font-weight:700;font-size:36px;
    color:var(--ink);letter-spacing:-.02em;line-height:1;margin-bottom:4px;
    font-variant-numeric:tabular-nums;
  }
  @media(min-width:520px){.calc-num{font-size:46px;}}
  .calc-num em{font-style:italic;color:var(--accent);font-weight:600;}
  .calc-num small{font-size:.45em;color:var(--muted);font-weight:500;font-style:normal;}
  .calc-sub{
    font-family:"Fraunces",serif;font-style:italic;font-size:13px;color:var(--ink-2);
    line-height:1.5;margin-bottom:14px;
  }
  @media(min-width:520px){.calc-sub{font-size:15px;}}
  .calc-curve{margin-top:8px;}
  .calc-curve svg{width:100%;height:90px;display:block;}
  .calc-legend{
    display:flex;justify-content:space-between;
    font-family:"Inter",sans-serif;font-size:9.5px;letter-spacing:.06em;
    text-transform:uppercase;color:var(--muted);margin-top:4px;
  }
  .calc-legend strong{color:var(--accent);font-weight:700;}

  /* === Step === */
  .step{display:none;}
  .step.active{display:block;opacity:1;animation:stepIn .3s ease both;}
  @keyframes stepIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
  .q-num{
    font-family:"Inter",sans-serif;font-size:11px;font-weight:600;
    color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px;
  }
  .q-title{
    font-family:"Fraunces",serif;font-size:22px;line-height:1.2;
    font-weight:600;letter-spacing:-.015em;margin-bottom:6px;
    font-variation-settings:"opsz" 144;text-wrap:balance;
  }
  @media(min-width:520px){.q-title{font-size:26px;}}
  @media(min-width:720px){.q-title{font-size:28px;}}
  .q-help{
    font-family:"Inter",sans-serif;font-size:13px;color:var(--muted);
    margin-bottom:20px;line-height:1.5;
  }

  .choices{display:flex;flex-direction:column;gap:10px;margin-bottom:8px;}
  .choice{
    width:100%;text-align:left;background:#fff;border:1px solid var(--rule);
    padding:16px 48px 16px 16px;cursor:pointer;
    display:flex;align-items:flex-start;gap:14px;
    font-family:inherit;color:inherit;
    min-height:64px;
    transition:border-color .15s,background-color .15s,transform .15s;
  }
  @media(hover:hover){
    .choice:hover{border-color:var(--accent);background:#fffbf3;transform:translateX(2px);}
  }
  .choice:active{background:#fffbf3;border-color:var(--accent);}
  .choice .ch-marker{
    width:22px;height:22px;flex:0 0 22px;border:1px solid var(--rule);
    border-radius:50%;display:grid;place-items:center;
    background:#fff;transition:border-color .15s;
    margin-top:1px;
  }
  .choice .ch-marker::after{
    content:"";width:8px;height:8px;border-radius:50%;
    background:var(--accent);opacity:0;transform:scale(.4);
    transition:opacity .15s,transform .15s;
  }
  .choice.selected .ch-marker{border-color:var(--accent);}
  .choice.selected .ch-marker::after{opacity:1;transform:scale(1);}
  .choice .ch-text{flex:1;min-width:0;}
  .pullquote.pq-fixed{opacity:1;max-height:none;margin:18px 0 22px;padding:18px 20px;transform:none;border:1px solid var(--rule);background:var(--paper);}
  .pullquote.pq-fixed::before{opacity:.2;}
  .choice .ch-text{display:flex;flex-direction:column;gap:4px;}
  .choice .ch-title{
    font-family:"Inter",sans-serif;font-size:15px;font-weight:600;
    color:var(--ink);line-height:1.35;
  }
  .choice .ch-desc{
    font-family:"Inter",sans-serif;font-size:13px;color:var(--muted);
    line-height:1.5;
  }
  @media(min-width:520px){
    .choice{padding:18px 56px 18px 20px;gap:16px;min-height:68px;}
    .choice .ch-title{font-size:15.5px;}
    .choice .ch-desc{font-size:13.5px;}
  }
  @media(min-width:720px){
    .choice{padding:20px 60px 20px 22px;}
    .choice .ch-text{gap:5px;}
  }

  /* === Testimonial === */
  .pullquote{
    display:none;margin:22px 0;padding:18px 18px 18px 22px;background:#fff;
    border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
    position:relative;
  }
  .pullquote.show{display:block;}
  .pullquote::before{
    content:"\201C";position:absolute;top:-6px;left:14px;
    font-family:"Fraunces",serif;font-size:48px;color:var(--accent);
    line-height:1;font-weight:700;
  }
  .pq-text{
    font-family:"Fraunces",serif;font-style:italic;font-size:16px;
    line-height:1.5;color:var(--ink-2);margin:4px 0 12px;
  }
  @media(min-width:520px){.pq-text{font-size:17px;}}
  .pq-attr{
    font-family:"Inter",sans-serif;font-size:12px;color:var(--muted);
    line-height:1.5;
  }
  .pq-attr strong{color:var(--ink);font-weight:600;}
  .pq-verified{display:inline-block;margin-top:4px;color:var(--green);font-size:11px;font-weight:600;}

  /* === Recap === */
  .recap{
    background:#fff;border:1px solid var(--rule);
    padding:16px 18px;margin-bottom:22px;
  }
  .recap-title{
    font-family:"Inter",sans-serif;font-size:11px;font-weight:700;
    letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;
  }
  .recap-row{
    display:flex;justify-content:space-between;gap:12px;padding:8px 0;
    border-top:1px dashed var(--rule);font-family:"Inter",sans-serif;font-size:13px;
  }
  .recap-row:first-of-type{border-top:0;padding-top:0;}
  .recap-row .k{color:var(--muted);flex:1;min-width:0;}
  .recap-row .v{color:var(--ink);font-weight:600;text-align:right;flex-shrink:0;}

  
  /* Final step : coordonnées */
  .final-fields{display:flex;flex-direction:column;gap:14px;margin:18px 0 16px;}
  .field-row{display:flex;gap:12px;}
  .field-row > .field{flex:1;min-width:0;}
  .field{display:flex;flex-direction:column;gap:6px;}
  .field-lbl{font-family:"Inter",sans-serif;font-size:12px;font-weight:600;color:var(--ink-2);letter-spacing:.02em;}
  .field input{font-family:"Inter",sans-serif;font-size:16px;padding:14px;border:1px solid var(--rule);border-radius:6px;background:#fff;color:var(--ink);width:100%;box-sizing:border-box;min-height:48px;}
  .field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(237,41,57,.15);}
  .field-err{font-family:"Inter",sans-serif;font-size:12px;color:#c0392b;display:none;margin-top:4px;}
  .field-err.show{display:block;}
  .consent{display:flex;gap:10px;align-items:flex-start;font-family:"Inter",sans-serif;font-size:13px;line-height:1.5;color:var(--ink-2);margin:6px 0 18px;cursor:pointer;}
  .consent input{margin-top:3px;flex-shrink:0;width:18px;height:18px;accent-color:var(--accent);}
  .submit{width:100%;font-family:"Inter",sans-serif;font-size:16px;font-weight:600;padding:18px 20px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;min-height:56px;transition:background .15s ease;}
  .submit:hover:not(:disabled){background:#c8232f;}
  .submit:disabled{opacity:.7;cursor:wait;}
  .submit-rea{font-family:"Inter",sans-serif;font-size:11px;color:var(--ink-2);text-align:center;margin-top:10px;letter-spacing:.01em;}
  @media (max-width:520px){.field-row{flex-direction:column;}}

  /* === Final intro (avant coordonnées) === */
  .final-intro{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--rule);}
  .fi-kicker{font-family:"Inter",sans-serif;font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;}
  .fi-title{font-family:"Fraunces",serif;font-size:22px;line-height:1.2;font-weight:600;letter-spacing:-.015em;margin-bottom:6px;color:var(--ink);}
  @media(min-width:520px){.fi-title{font-size:24px;}}
  .fi-sub{font-family:"Inter",sans-serif;font-size:13px;line-height:1.55;color:var(--ink-2);}

  /* === Final hero (legacy, plus utilis\u00e9) === */
  .final-hero{display:none;
    background:var(--ink);color:var(--paper-2);padding:20px 22px;
    margin-bottom:20px;position:relative;
  }
  .final-hero::before{
    content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);
  }
  .fh-kicker{
    font-family:"Inter",sans-serif;font-size:10px;font-weight:700;
    letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;
  }
  .fh-title{
    font-family:"Fraunces",serif;font-size:22px;line-height:1.2;
    font-weight:600;letter-spacing:-.015em;margin-bottom:6px;
  }
  @media(min-width:520px){.fh-title{font-size:24px;}}
  .fh-sub{
    font-family:"Inter",sans-serif;font-size:13px;line-height:1.55;opacity:.8;
  }

  /* === Form === */
  .field{margin-bottom:12px;}
  .field-row{display:grid;grid-template-columns:1fr;gap:12px;}
  @media(min-width:520px){.field-row{grid-template-columns:1fr 1fr;}}
  .field label{
    display:block;font-family:"Inter",sans-serif;font-size:11px;
    font-weight:600;color:var(--muted);letter-spacing:.06em;
    text-transform:uppercase;margin-bottom:6px;
  }
  .field input{
    width:100%;padding:14px 14px;font-size:16px; /* 16px évite zoom iOS */
    font-family:"Inter",sans-serif;background:#fff;
    border:1px solid var(--rule);color:var(--ink);
    transition:border-color .15s,box-shadow .15s;
    min-height:48px;
  }
  .field input:focus{
    outline:0;border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(138,20,24,.08);
  }

  .submit{
    width:100%;background:var(--accent);color:#fff;border:0;
    padding:16px;font-size:14px;font-weight:700;
    font-family:"Inter",sans-serif;letter-spacing:.04em;text-transform:uppercase;
    cursor:pointer;transition:background-color .15s;
    min-height:54px;
  }
  .submit:active{background:var(--accent-2);}
  @media(hover:hover){.submit:hover{background:var(--accent-2);}}

  .reassure{
    display:grid;grid-template-columns:1fr;gap:6px;
    margin-top:14px;font-family:"Inter",sans-serif;font-size:11px;
    color:var(--muted);text-align:center;
  }
  @media(min-width:520px){.reassure{grid-template-columns:repeat(3,1fr);}}
  .reassure div{padding:8px 6px;border:1px solid var(--rule-2);background:var(--paper-2);}
  .reassure strong{display:block;color:var(--ink);font-weight:600;font-size:12px;margin-bottom:2px;}

  /* === Footer === */
  .footer{
    padding:22px 20px 26px;border-top:1px solid var(--rule);
    font-family:"Inter",sans-serif;font-size:11px;color:var(--muted);line-height:1.6;
  }
  @media(min-width:720px){.footer{padding:24px 44px 28px;}}
  .footer-cols{
    display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:14px;
  }
  @media(min-width:520px){.footer-cols{grid-template-columns:1fr 1fr;gap:18px;}}
  .footer strong{
    color:var(--ink-2);font-weight:600;display:block;margin-bottom:4px;
    font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  }
  .footer-legal{padding-top:12px;border-top:1px solid var(--rule);font-size:10px;line-height:1.6;}

  /* === Reco P1.3 : bandeau gratuité === */
  .free-bar{
    background:var(--ink);color:var(--paper-2);
    padding:9px 20px;display:flex;align-items:center;justify-content:center;
    gap:18px;flex-wrap:wrap;font-family:"Inter",sans-serif;font-size:10.5px;
    letter-spacing:.14em;text-transform:uppercase;font-weight:600;
    border-bottom:1px solid var(--rule);
  }
  @media(min-width:720px){.free-bar{padding:10px 44px;font-size:11px;}}
  .free-bar span{display:flex;align-items:center;gap:6px;}
  .free-bar .ck{color:var(--accent);font-weight:700;}

  /* === Reco P2.1 : carte conseillère === */
  .conseiller{
    display:flex;gap:12px;align-items:center;padding:12px 14px;
    background:#fff;border:1px solid var(--rule);margin-bottom:22px;
  }
  @media(min-width:520px){.conseiller{padding:14px 16px;gap:14px;}}
  .cs-avatar{
    width:42px;height:42px;flex:0 0 42px;border-radius:50%;
    background:var(--paper);border:1px solid var(--accent);
    display:grid;place-items:center;font-family:"Fraunces",serif;
    font-style:italic;font-weight:600;font-size:20px;color:var(--accent);
  }
  .cs-name{font-family:"Fraunces",serif;font-size:16px;font-weight:600;color:var(--ink);line-height:1.2;}
  .cs-role{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:700;margin:2px 0 4px;font-family:"Inter",sans-serif;}
  .cs-line{font-family:"Inter",sans-serif;font-size:12px;color:var(--muted);line-height:1.5;}

  /* === Reco P3.3 : micro-feedback ✓ === */
  .choice.selected{border-color:var(--accent);background:#fffbf3;}
  .choice .ch-check{
    position:absolute;right:16px;top:18px;width:18px;height:18px;
    background:var(--accent);color:#fff;border-radius:50%;
    display:none;place-items:center;font-size:11px;font-weight:700;
    animation:pop .35s cubic-bezier(.5,1.5,.5,1);
  }
  @keyframes pop{0%{transform:scale(0);}100%{transform:scale(1);}}
  .choice.selected .ch-check{display:grid;}
  .choice{position:relative;}

  /* === Reco P1.2 : promesse explicite === */
  .promise{
    background:var(--paper);border:1px solid var(--accent);
    padding:14px 16px;margin-bottom:18px;
  }
  .promise-h{
    font-family:"Inter",sans-serif;font-size:10px;font-weight:700;
    letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;
  }
  .promise ol{list-style:none;counter-reset:p;padding:0;margin:0;}
  .promise ol li{
    counter-increment:p;font-family:"Fraunces",serif;font-size:14px;
    color:var(--ink);line-height:1.5;padding:6px 0 6px 26px;position:relative;
    border-top:1px dashed var(--rule);
  }
  .promise ol li:first-child{border-top:0;}
  .promise ol li::before{
    content:counter(p);position:absolute;left:0;top:7px;
    width:18px;height:18px;background:var(--accent);color:#fff;
    border-radius:50%;display:grid;place-items:center;
    font-family:"Inter",sans-serif;font-size:10px;font-weight:700;
  }

  /* === Reco P1.1 : sub-step pills === */
  .substeps{
    display:flex;gap:6px;margin-bottom:18px;
    font-family:"Inter",sans-serif;font-size:10px;letter-spacing:.12em;
    text-transform:uppercase;font-weight:600;color:var(--muted);
  }
  .substeps .ss{flex:1;padding:8px;text-align:center;border:1px solid var(--rule);background:#fff;}
  .substeps .ss.active{background:var(--ink);color:#fff;border-color:var(--ink);}
  .substeps .ss.done{background:var(--accent);color:#fff;border-color:var(--accent);}

  /* === Reco P3.4 : sticky CTA mobile === */
  @media(max-width:520px){
    .step.final-active{padding-bottom:80px;}
    .sticky-cta{
      position:fixed;left:0;right:0;bottom:0;z-index:50;
      background:var(--paper-2);border-top:1px solid var(--rule);
      padding:10px 14px;box-shadow:0 -8px 24px -8px rgba(20,17,12,.15);
      display:none;
    }
    .sticky-cta.show{display:block;}
    .sticky-cta button{width:100%;}
    .step .choice:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  }
  @media(min-width:521px){.sticky-cta{display:none !important;}}

  
  .seal-mark--txt{
    width:60px;height:60px;flex:0 0 60px;
    background:var(--paper-2);border:1px solid var(--rule);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    color:var(--ink);
  }
  .seal-mark-letter{
    font-family:"Fraunces",serif;font-weight:700;font-size:20px;
    line-height:1;color:var(--accent);letter-spacing:-.02em;
  }
  .seal-mark-letter small{font-size:.55em;font-weight:600;color:var(--ink-2);}
  .seal-mark-sub{
    font-family:"Inter",sans-serif;font-size:8.5px;font-weight:700;
    letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
    margin-top:3px;
  }

  /* P0-2 : focus-visible global (desktop + mobile) — WCAG 2.4.7 */
  .choice:focus-visible,
  .submit:focus-visible,
  button:focus-visible,
  a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  input:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent);}

  /* P1-4 : padding-bottom global mobile pour ne pas masquer le dernier choix sous le sticky-cta */
  @media(max-width:520px){
    .paper{padding-bottom:90px;}
  }

  /* P1-3 : message d'erreur téléphone */
  .field-err{
    font-family:"Inter",sans-serif;font-size:12px;color:#c0392b;
    margin-top:6px;line-height:1.45;display:none;
  }
  .field-err.show{display:block;}

  /* === ETAPES FUSIONNÉES (multi sub-questions par écran) === */
  .sub-q{margin-top:14px;}
  .sub-q:first-of-type{margin-top:6px;}
  .sub-q + .sub-q{padding-top:18px;border-top:1px solid var(--rule);margin-top:18px;}
  .sub-q-label{
    font-family:"Inter",sans-serif;font-size:11px;letter-spacing:.16em;
    text-transform:uppercase;font-weight:600;color:var(--ink);
    margin-bottom:10px;
  }
  .sub-q-hint{font-weight:400;text-transform:none;letter-spacing:.01em;color:var(--muted);font-size:11px;margin-left:4px;}
  /* SMART-SKIP : sub-question collapsée avec encart de confirmation */
  .sub-q.skipped{padding-top:14px;margin-top:14px;}
  .sub-q-skip{
    display:flex;align-items:flex-start;gap:10px;
    padding:12px 14px;border:1px solid var(--green);border-left:3px solid var(--green);
    background:rgba(46,125,50,.06);border-radius:4px;
    font-family:"Inter",sans-serif;font-size:13px;color:var(--ink);line-height:1.45;
    animation:skipIn .35s ease both;
  }
  .sub-q-skip-ic{
    flex:0 0 22px;height:22px;border-radius:50%;background:var(--green);color:#fff;
    display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;
    margin-top:1px;
  }
  @keyframes skipIn{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}

  /* P2-2 : bouton retour arrière entre questions */
  .q-back{
    background:none;border:0;padding:8px 4px;margin:-8px 0 6px -4px;
    font-family:"Inter",sans-serif;font-size:12px;color:var(--muted);
    cursor:pointer;display:inline-flex;align-items:center;gap:6px;
    min-height:44px;letter-spacing:.02em;
  }
  .q-back:hover{color:var(--accent);}

  /* P2-3 : footer hit-targets ≥ 44px sur mobile */
  .footer a{
    color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule);
    text-underline-offset:3px;display:inline-block;padding:6px 4px;
  }
  @media(max-width:520px){.footer a{padding:12px 6px;min-height:44px;}}

  /* === Reco P3.2 : helper enrichi === */
  .q-help.warm{
    background:var(--paper);border-left:2px solid var(--accent);
    padding:10px 12px;font-style:italic;font-family:"Fraunces",serif;font-size:13.5px;
    color:var(--ink-2);line-height:1.5;
  }

  /* === Page de confirmation === */
  .thanks{display:none;padding:30px 0;text-align:center;}
  .thanks.show{display:block;animation:fadeIn .45s ease;}

  /* === Verdict d'éligibilité (révélé après soumission) === */
  .verdict{margin:0 auto 28px;max-width:440px;padding:24px 22px;background:#fff;border:1px solid var(--rule);border-top:3px solid var(--accent);position:relative;}
  .verdict-kicker{font-family:"Inter",sans-serif;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
  .verdict.revealed .verdict-kicker{color:var(--accent);}
  .verdict-score-wrap{position:relative;width:120px;height:120px;margin:0 auto 12px;display:grid;place-items:center;}
  .verdict-ring{position:absolute;inset:0;width:100%;height:100%;}
  .verdict-ring circle:last-child{transition:stroke-dashoffset 1.6s cubic-bezier(.2,.8,.2,1);}
  .verdict-score{font-family:"Fraunces",serif;font-weight:700;font-size:34px;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums;}
  .verdict-score small{font-size:.4em;color:var(--muted);font-weight:500;}
  .verdict-badge{display:inline-block;font-family:"Inter",sans-serif;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--green);padding:7px 14px;margin-top:6px;opacity:0;tr