
  .lp2-wrap{
    /* Couleurs globales du site (vivezlephilippe.com — Elementor, Global Colors) */
    --ink:#3D3936;        /* Principal / Texte */
    --ink-soft:#726B62;   /* dérivé de Principal, allégé pour le texte secondaire (contraste suffisant) */
    --paper:#EAEAEA;      /* Secondaire */
    --panel:#ffffff;
    --line:#D9D9D6;       /* Grey title */
    --brand:#C17E60;      /* Accentué */
    --brand-dark:#9C6449; /* Accentué, assombri pour le survol */
    --accent:#A59C94;     /* Beige title */
    --accent-soft:#F3EFEA;/* Beige title, très allégé */
    --olive:#555025;      /* green, réservé au signal positif (dossier admissible) */
    --error:#a3372f;
    --error-soft:#f6e6e4;
    --radius:3px;
    --sans: 'Avenir Next', 'Avenir', 'Century Gothic', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  }

  .lp2-wrap, .lp2-wrap *{box-sizing:border-box;}
  
  .lp2-wrap{
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }

  .lp2-wrap{
    max-width:640px;
    margin:0 auto;
    padding:32px 20px 80px;
  }

  .lp2-masthead{
    margin-bottom:28px;
  }
  .lp2-masthead .project{
    font-family:var(--sans); font-weight:700;
    font-size:15px;
    letter-spacing:.02em;
    color:var(--brand-dark);
    margin:0 0 2px;
  }
  .lp2-masthead .address{
    font-size:13px;
    color:var(--ink-soft);
    margin:0;
  }

  /* progress */
  .lp2-progress{
    display:flex;
    align-items:center;
    gap:8px;
    margin:22px 0 34px;
  }
  .lp2-progress .step-dot{
    flex:1;
    height:4px;
    background:var(--line);
    border-radius:2px;
    overflow:hidden;
  }
  .lp2-progress .step-dot.done,
  .lp2-progress .step-dot.current{ background:var(--brand); }
  .lp2-progress-label{
    font-size:13px;
    color:var(--ink-soft);
    white-space:nowrap;
  }

  .lp2-screen{ display:none; }
  .lp2-screen.active{ display:block; animation:lp2fade .25s ease; }
  @keyframes lp2fade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }

  .lp2-intro{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:20px 22px;
    font-size:15px;
    color:var(--ink-soft);
    margin-bottom:28px;
  }
  .lp2-intro strong{ color:var(--ink); }

  h2.lp2-title{
    font-family:var(--sans); font-weight:700;
    font-size:26px;
    font-weight:600;
    margin:0 0 6px;
    color:var(--brand-dark);
  }
  p.lp2-subtitle{
    color:var(--ink-soft);
    margin:0 0 26px;
    font-size:15px;
  }

  .lp2-field{ margin-bottom:24px; }
  .lp2-field label.lp2-label{
    display:block;
    font-weight:600;
    font-size:15px;
    margin-bottom:6px;
    color:var(--ink);
  }
  .lp2-help{
    font-size:13px;
    color:var(--ink-soft);
    margin:4px 0 10px;
  }
  .lp2-facultatif{
    font-weight:400;
    font-size:12px;
    color:var(--ink-soft);
  }
  .lp2-req{
    color:var(--error);
    margin-left:2px;
  }
  .lp2-legende{
    font-size:13px;
    color:var(--ink-soft);
    margin:-10px 0 22px;
  }

  .lp2-wrap input[type="text"], .lp2-wrap input[type="email"], .lp2-wrap input[type="tel"],
  .lp2-wrap input[type="number"], .lp2-wrap input[type="date"], .lp2-wrap textarea, .lp2-wrap select{
    width:100%;
    font-family:var(--sans);
    font-size:16px;
    padding:11px 13px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--panel);
    color:var(--ink);
  }
  .lp2-wrap select{ max-width:100%; cursor:pointer; }
  .lp2-wrap textarea{ min-height:80px; resize:vertical; }
  .lp2-wrap input:focus, .lp2-wrap textarea:focus, .lp2-wrap button:focus-visible{
    outline:2px solid var(--brand);
    outline-offset:1px;
  }

  .lp2-wrap input[type="date"]{ max-width:220px; }

  .lp2-money{ position:relative; max-width:260px; }
  .lp2-money input{ padding-right:34px; }
  .lp2-money::after{
    content:"$";
    position:absolute; right:13px; top:50%; transform:translateY(-50%);
    color:var(--ink-soft);
  }

  /* pill choice groups */
  .lp2-choices{ display:flex; flex-wrap:wrap; gap:8px; }
  .lp2-choices.stack{ flex-direction:column; }
  .lp2-choice{
    position:relative;
  }
  .lp2-choice input{ position:absolute; opacity:0; pointer-events:none; }
  .lp2-choice label{
    display:block;
    cursor:pointer;
    padding:10px 16px;
    border:1.5px solid var(--line);
    border-radius:999px;
    font-size:15px;
    color:var(--ink);
    background:var(--panel);
    transition:border-color .12s, background .12s, color .12s;
    user-select:none;
  }
  .lp2-choices.stack .lp2-choice label{ border-radius:var(--radius); }
  .lp2-choice input:checked + label{
    border-color:var(--brand);
    background:var(--brand);
    color:#fff;
  }
  .lp2-choice input:focus-visible + label{
    outline:2px solid var(--brand); outline-offset:2px;
  }

  .lp2-checkbox{
    display:flex; align-items:flex-start; gap:10px;
    padding:14px 0;
    border-top:1px solid var(--line);
  }
  .lp2-checkbox:first-of-type{ border-top:none; }
  .lp2-checkbox input{ margin-top:3px; width:17px; height:17px; flex:none; }
  .lp2-checkbox label{ font-size:14.5px; color:var(--ink); }

  .lp2-callout{
    background:var(--accent-soft);
    border-left:3px solid var(--accent);
    border-radius:0 var(--radius) var(--radius) 0;
    padding:16px 18px;
    font-size:15px;
    margin:6px 0 24px;
  }
  .lp2-callout strong{ color:var(--brand-dark); }
  .lp2-callout .big{
    font-family:var(--sans); font-weight:700;
    font-size:19px;
    color:var(--brand-dark);
  }

  .lp2-overage{
    display:none;
    margin-top:8px;
    font-size:13.5px;
    color:var(--error);
    background:var(--error-soft);
    border-radius:var(--radius);
    padding:9px 12px;
  }
  .lp2-overage.show{ display:block; }

  .lp2-error{
    display:none;
    font-size:13.5px;
    color:var(--error);
    margin-top:6px;
  }
  .lp2-error.show{ display:block; }

  .lp2-nav{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-top:36px;
    padding-top:20px;
    border-top:1px solid var(--line);
  }
  .lp2-wrap button{
    font-family:var(--sans);
    font-size:15.5px;
    font-weight:600;
    cursor:pointer;
    border-radius:999px;
    padding:13px 30px;
    border:1.5px solid transparent;
  }
  .lp2-btn-primary{
    background:var(--brand);
    color:#fff;
    border-color:var(--brand);
    margin-left:auto;
  }
  .lp2-btn-primary:disabled{
    background:var(--line); border-color:var(--line); color:#8a8a7c; cursor:not-allowed;
  }
  .lp2-btn-primary:hover:not(:disabled){ background:var(--brand-dark); border-color:var(--brand-dark); }
  .lp2-btn-ghost{
    background:transparent;
    color:var(--ink);
    border-color:var(--ink);
    padding:13px 26px;
  }
  .lp2-btn-ghost:hover{ background:var(--ink); color:#fff; }

  .lp2-endscreen{
    text-align:left;
    padding:12px 0;
  }
  .lp2-endscreen h2{ font-family:var(--sans); font-weight:700; font-size:24px; color:var(--brand-dark); margin-bottom:14px;}
  .lp2-endscreen h2.lp2-admissible{ color:var(--olive); }
  .lp2-endscreen p{ color:var(--ink-soft); font-size:15px; }

  #lp2-debug{
    display:none;
    margin-top:40px;
    border-top:2px dashed var(--line);
    padding-top:16px;
    font-size:12px;
  }
  #lp2-debug pre{
    background:#111814; color:#c9e6da; padding:14px; border-radius:var(--radius);
    max-height:280px; overflow:auto; white-space:pre-wrap; word-break:break-word;
  }
  #lp2-debug-tests{ margin-bottom:10px; }
  #lp2-debug-tests span.pass{ color:#2c4a43; font-weight:600; }
  #lp2-debug-tests span.fail{ color:#a3372f; font-weight:700; }

  @media (max-width:420px){
    h2.lp2-title{ font-size:22px; }
    .lp2-choice label{ padding:9px 13px; font-size:14px; }
  }

#lp2-save-state { margin:12px 0; font-size:14px; }
