:root{
    --pine:#0A0A0A;          /* noir profond — surfaces sombres */
    --pine-dark:#000000;     /* noir pur — nav */
    --stone:#EFEFEF;         /* gris clair — blocs */
    --stone-light:#FAFAFA;   /* fond général */
    --slate:#6B6B6B;         /* texte secondaire */
    --copper:#C8102E;        /* rouge accent */
    --copper-dark:#9E0B22;   /* rouge accent, survol */
    --charcoal:#111111;      /* texte principal */
    --line:#E2E2E2;          /* lignes fines */
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--stone-light);
    color:var(--charcoal);
    font-family:'Inter',sans-serif;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:'Inter',sans-serif;
    font-weight:800;
    letter-spacing:-0.02em;
    margin:0;
  }
  .wrap{max-width:680px;margin:0 auto;padding:0 24px 80px;}

  header.hero{
    background:var(--pine);
    color:#fff;
    padding:48px 24px 56px;
    border-bottom:1px solid #000;
  }
  .agent-line{
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:#9A9A9A;
    margin-bottom:22px;
    font-weight:600;
  }
  .agent-line strong{color:#fff;font-weight:700;}
  header.hero h1{
    font-size:clamp(30px,7vw,42px);
    line-height:1.08;
    max-width:480px;
    font-weight:800;
  }
  header.hero p.sub{
    margin-top:18px;
    max-width:440px;
    color:#C4C4C4;
    font-size:16px;
    font-weight:400;
    line-height:1.6;
  }

  .card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:0;
    margin-top:0;
    padding:32px 26px;
    position:relative;
  }
  .step-label{
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--copper);
    margin-bottom:8px;
    font-weight:700;
  }
  .card h2{font-size:22px;margin-bottom:20px;font-weight:800;}

  .field{margin-bottom:18px;}
  .field label{
    display:block;
    font-size:12px;
    letter-spacing:.04em;
    text-transform:uppercase;
    font-weight:700;
    margin-bottom:8px;
    color:var(--charcoal);
  }
  .field input[type=text],
  .field input[type=number],
  .field input[type=email],
  .field input[type=tel],
  .field select{
    width:100%;
    padding:13px 14px;
    border:1px solid var(--line);
    border-radius:0;
    font-size:15px;
    font-family:inherit;
    background:#fff;
    color:var(--charcoal);
  }
  .field input:focus,.field select:focus{
    outline:2px solid var(--copper);
    outline-offset:0;
    border-color:var(--copper);
  }

  .toggle-group{display:flex;gap:0;border:1px solid var(--line);}
  .toggle-group button{
    flex:1;
    padding:13px 8px;
    border:none;
    border-right:1px solid var(--line);
    background:#fff;
    font-family:inherit;
    font-size:13px;
    letter-spacing:.06em;
    text-transform:uppercase;
    font-weight:700;
    color:var(--slate);
    cursor:pointer;
  }
  .toggle-group button:last-child{border-right:none;}
  .toggle-group button.active{
    background:var(--pine);
    color:#fff;
  }

  .checks{display:flex;flex-wrap:wrap;gap:8px;}
  .checks label{
    display:flex;align-items:center;gap:6px;
    border:1px solid var(--line);
    padding:9px 13px;
    border-radius:0;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
  }
  .checks input{accent-color:var(--pine);}

  .btn{
    width:100%;
    padding:16px;
    border:none;
    border-radius:0;
    background:var(--copper);
    color:#fff;
    font-family:inherit;
    font-size:13px;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:700;
    cursor:pointer;
    margin-top:8px;
    transition:background .15s ease;
  }
  .btn:hover{background:var(--copper-dark);}
  .btn.secondary{
    background:transparent;
    color:var(--charcoal);
    border:1px solid var(--charcoal);
    font-weight:700;
    margin-top:12px;
  }
  .btn.secondary:hover{background:var(--charcoal);color:#fff;}

  #result-block{display:none;}
  .result-figure{
    background:var(--pine);
    border-radius:0;
    padding:30px 24px;
    text-align:center;
    margin-bottom:24px;
  }
  .result-figure .range{
    font-family:'Inter',sans-serif;
    font-weight:800;
    letter-spacing:-0.02em;
    font-size:clamp(28px,7vw,36px);
    color:#fff;
  }
  .result-figure .caption{
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:#9A9A9A;
    margin-top:10px;
    font-weight:600;
  }
  .disclaimer{
    font-size:12px;
    line-height:1.6;
    color:var(--slate);
    border-top:1px solid var(--line);
    padding-top:16px;
    margin-top:26px;
  }

  #step2{display:none;}
  #thankyou{display:none;text-align:center;padding:10px 0;}
  #thankyou h2{color:var(--charcoal);margin-bottom:10px;}

  footer{
    text-align:center;
    padding:40px 24px 20px;
    font-size:12px;
    letter-spacing:.04em;
    color:var(--slate);
    border-top:1px solid var(--line);
    margin-top:20px;
  }
  footer strong{color:var(--charcoal);}

  nav.topnav{
    background:var(--pine-dark);
    padding:20px 24px;
  }
  nav.topnav .nav-wrap{
    max-width:680px;
    margin:0 auto;
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:14px;
  }
  nav.topnav .brand{
    color:#fff;
    font-family:'Inter',sans-serif;
    font-size:18px;
    font-weight:800;
    letter-spacing:-0.01em;
    text-decoration:none;
  }
  nav.topnav .links{
    display:flex;
    gap:22px;
    flex-wrap:wrap;
  }
  nav.topnav .links a{
    color:#8C8C8C;
    text-decoration:none;
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:700;
  }
  nav.topnav .links a.active,
  nav.topnav .links a:hover{
    color:#fff;
  }

  .page-hero{
    background:var(--pine);
    color:#fff;
    padding:56px 24px 64px;
    text-align:left;
    border-bottom:1px solid #000;
  }
  .page-hero .eyebrow{
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--copper);
    font-weight:700;
    margin-bottom:14px;
  }
  .page-hero h1{
    font-size:clamp(30px,7vw,42px);
    font-weight:800;
    max-width:520px;
  }
  .page-hero p{
    max-width:480px;
    margin:18px 0 0;
    color:#C4C4C4;
    font-size:16px;
    line-height:1.6;
  }
  .section{
    max-width:680px;
    margin:0 auto;
    padding:44px 24px;
  }
  .section h2{font-size:22px;margin-bottom:16px;font-weight:800;}
  .section p{color:var(--charcoal);}
  .cta-box{
    background:#fff;
    border:1px solid var(--line);
    border-radius:0;
    padding:30px 26px;
    text-align:left;
    margin-top:0;
  }
  .cta-box .btn{display:inline-block;width:auto;padding:14px 30px;text-decoration:none;}
  .listing-embed{
    border:1px solid var(--line);
    border-radius:0;
    overflow:hidden;
    margin-top:16px;
  }
  .listing-embed iframe{width:100%;height:640px;border:0;display:block;}

  .grid-2{
    display:grid;
    grid-template-columns:1fr;
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .grid-2 .cta-box{
    border:none;
    background:#fff;
  }
  @media (min-width:560px){
    .grid-2{grid-template-columns:1fr 1fr;}
  }

  .index-tag{
    font-size:11px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--copper);
    font-weight:700;
    margin-bottom:10px;
    display:block;
  }
