:root{
    --ink:#121815;
    --ink-soft:#1B2420;
    --ink-line:#2C3733;
    --paper:#F4F1E8;
    --paper-dim:#C9C4B4;
    --paper-line:#DAD4C2;
    --ink-on-paper:#1B221D;
    --ink-dim-on-paper:#5B5A4E;
    --gold:#D8B155;
    --gold-deep:#8C6A1E;
    --sage:#7AA382;

    --font-display:'Space Grotesk', sans-serif;
    --font-body:'Inter', sans-serif;
    --font-mono:'Space Mono', monospace;

    --space-1:.5rem;
    --space-2:1rem;
    --space-3:1.5rem;
    --space-4:2.25rem;
    --space-5:3.5rem;
    --space-6:5rem;
    --space-7:7rem;

    --max:1160px;
    --radius:2px;
    --ease:cubic-bezier(.16,.84,.44,1);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--font-body);
    background:var(--paper);
    color:var(--ink-on-paper);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{display:block; max-width:100%;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  button{font:inherit; cursor:pointer; background:none; border:none; color:inherit;}
  input[type="text"], input[type="email"], input[type="tel"], select{
    font:inherit; color:inherit; background:var(--paper); border:1px solid var(--paper-line);
    border-radius:var(--radius); padding:.85rem 1rem; width:100%;
  }
  .container{max-width:var(--max); margin:0 auto; padding:0 var(--space-3);}
  section{position:relative;}
  h1,h2,h3{font-family:var(--font-display); font-weight:600; line-height:1.08; letter-spacing:-.01em;}
  .mono{font-family:var(--font-mono); font-variant-numeric:tabular-nums;}
  .eyebrow{
    font-family:var(--font-mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
    color:var(--gold-deep); margin-bottom:var(--space-2); display:flex; align-items:center; gap:.6em;
  }
  .eyebrow::before{content:""; width:1.4em; height:1px; background:var(--gold-deep); display:inline-block;}
  section.on-ink .eyebrow{color:var(--gold);}
  section.on-ink .eyebrow::before{background:var(--gold);}

  .skip-link{position:absolute; left:-999px; top:0; background:var(--gold); color:var(--ink); padding:.6rem 1rem; z-index:200;}
  .skip-link:focus{left:var(--space-2); top:var(--space-2);}

  a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible{
    outline:2px solid var(--gold); outline-offset:3px;
  }

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:.55rem;
    font-family:var(--font-body); font-weight:600; font-size:.92rem;
    padding:.9rem 1.5rem; border-radius:var(--radius); border:1px solid transparent;
    transition:transform .35s var(--ease), background .25s ease, border-color .25s ease, color .25s ease;
    white-space:nowrap;
  }
  .btn-gold{background:var(--gold); color:var(--ink);}
  .btn-gold:hover{transform:translateY(-2px); background:#E4C06C;}
  .btn-ghost{border-color:var(--ink-line); color:var(--paper);}
  section:not(.on-ink) .btn-ghost{border-color:var(--paper-line); color:var(--ink-on-paper);}
  .btn-ghost:hover{transform:translateY(-2px); border-color:var(--gold);}
  .btn svg{width:16px; height:16px;}

  /* ---------- Header ---------- */
  .site-header{
    position:fixed; inset:0 0 auto 0; z-index:100;
    padding:1.1rem 0; transition:background .3s ease, padding .3s ease, border-color .3s ease;
    border-bottom:1px solid transparent;
  }
  .site-header.is-scrolled{background:rgba(18,24,21,.92); backdrop-filter:blur(8px); border-color:var(--ink-line); padding:.8rem 0;}
  .site-header .container{display:flex; align-items:center; justify-content:space-between; gap:var(--space-3);}
  .logo{font-family:var(--font-display); font-weight:700; font-size:1.25rem; color:var(--paper); letter-spacing:-.02em;}
  .logo span{color:var(--gold);}
  .site-nav{display:flex; align-items:center; gap:var(--space-4);}
  .site-nav ul{display:flex; gap:var(--space-3); font-size:.92rem; color:var(--paper-dim);}
  .site-nav a:hover{color:var(--paper);}
  .nav-cta{display:flex; align-items:center; gap:var(--space-3);}
  .nav-toggle{display:none; flex-direction:column; gap:5px; width:28px;}
  .nav-toggle span{height:2px; background:var(--paper); border-radius:2px;}

  @media (max-width:860px){
    .site-nav ul{
      position:fixed; inset:64px var(--space-3) auto var(--space-3);
      background:var(--ink-soft); border:1px solid var(--ink-line);
      flex-direction:column; padding:var(--space-3); gap:var(--space-2);
      opacity:0; visibility:hidden; transform:translateY(-8px);
      transition:opacity .25s ease, transform .25s ease, visibility .25s;
    }
    .site-nav.is-open ul{opacity:1; visibility:visible; transform:translateY(0);}
    .nav-toggle{display:flex;}
    .nav-cta .btn-ghost{display:none;}
  }

  /* ---------- Hero ---------- */
  .hero{
    background:var(--ink); color:var(--paper);
    padding:calc(var(--space-7) + 2rem) 0 var(--space-6);
    overflow:hidden;
  }
  .hero-inner{max-width:760px;}
  .loan-tabs{display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:var(--space-4);}
  .loan-tab{
    font-size:.82rem; font-weight:600; padding:.5rem 1rem;
    border:1px solid var(--ink-line); border-radius:999px; color:var(--paper-dim);
    transition:all .25s ease;
  }
  .loan-tab.is-active{background:var(--gold); border-color:var(--gold); color:var(--ink);}
  .loan-tab:not(.is-active):hover{border-color:var(--gold); color:var(--paper);}

  .hero-sentence{font-size:clamp(2.1rem, 4.6vw + .8rem, 3.6rem); margin-bottom:var(--space-4); max-width:14ch;}
  .hero-value{
    font-family:var(--font-mono); font-weight:700; color:var(--gold);
    border-bottom:2px dashed var(--gold-deep); padding:0 .08em;
  }

  .hero-sliders{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); margin-bottom:var(--space-5); max-width:520px;}
  .slider-group label{
    display:block; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.1em;
    text-transform:uppercase; color:var(--paper-dim); margin-bottom:.6rem;
  }
  input[type="range"]{
    -webkit-appearance:none; appearance:none; width:100%; height:2px; background:var(--ink-line); outline:none;
  }
  input[type="range"]::-webkit-slider-thumb{
    -webkit-appearance:none; appearance:none; width:16px; height:16px; border-radius:50%;
    background:var(--gold); cursor:pointer; border:3px solid var(--ink); box-shadow:0 0 0 1px var(--gold);
  }
  input[type="range"]::-moz-range-thumb{
    width:16px; height:16px; border-radius:50%; background:var(--gold); cursor:pointer; border:3px solid var(--ink); box-shadow:0 0 0 1px var(--gold);
  }

  .hero-result{border-top:1px solid var(--ink-line); padding-top:var(--space-3); margin-bottom:var(--space-4);}
  .hero-result-label{display:block; font-size:.82rem; color:var(--paper-dim); margin-bottom:.35rem;}
  .hero-result-value{font-family:var(--font-mono); font-weight:700; font-size:clamp(2rem, 3.2vw + 1rem, 3rem); color:var(--paper);}
  .hero-result-value .per-month{font-size:.45em; color:var(--paper-dim); font-weight:400;}
  .hero-fineprint{font-size:.8rem; color:var(--paper-dim); margin-top:.6rem; max-width:52ch;}
  .hero-cta{display:flex; flex-wrap:wrap; gap:var(--space-2);}

  @media (max-width:640px){
    .hero-sliders{grid-template-columns:1fr;}
  }

  /* ---------- Section shell ---------- */
  .band{padding:var(--space-6) 0;}
  .on-ink{background:var(--ink); color:var(--paper);}
  .band-head{max-width:640px; margin-bottom:var(--space-5);}
  .band-head h2{font-size:clamp(1.7rem, 2.4vw + 1rem, 2.5rem); margin-bottom:var(--space-2);}
  .band-head p{color:var(--ink-dim-on-paper); font-size:1.02rem;}
  .on-ink .band-head p{color:var(--paper-dim);}

  /* ---------- Loan type cards ---------- */
  .loan-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--paper-line); border:1px solid var(--paper-line);}
  .loan-card{
    background:var(--paper); padding:var(--space-4) var(--space-3); text-align:left;
    display:flex; flex-direction:column; gap:var(--space-2); transition:background .25s ease;
  }
  .loan-card:hover{background:#EDE9DC;}
  .loan-card-icon{width:34px; height:34px; color:var(--gold-deep);}
  .loan-card h3{font-size:1.15rem; font-weight:600;}
  .loan-card p{font-size:.92rem; color:var(--ink-dim-on-paper); flex-grow:1;}
  .loan-card .rate{font-family:var(--font-mono); font-size:.82rem; color:var(--gold-deep); font-weight:700;}
  .loan-card .go{font-size:.85rem; font-weight:600; display:inline-flex; align-items:center; gap:.4em;}
  .loan-card .go svg{width:14px; height:14px; transition:transform .25s ease;}
  .loan-card:hover .go svg{transform:translateX(3px);}

  @media (max-width:900px){ .loan-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .loan-grid{grid-template-columns:1fr;} }

  /* ---------- Timeline (how it works) ---------- */
  .timeline{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-3);}
  .timeline-step{border-top:1px solid var(--ink-line); padding-top:var(--space-2);}
  .timeline-step .num{font-family:var(--font-mono); color:var(--gold); font-size:.85rem; display:block; margin-bottom:var(--space-2);}
  .timeline-step h3{font-size:1.05rem; margin-bottom:.5rem; font-weight:600;}
  .timeline-step p{font-size:.9rem; color:var(--paper-dim);}

  @media (max-width:900px){ .timeline{grid-template-columns:repeat(2,1fr); row-gap:var(--space-4);} }
  @media (max-width:560px){ .timeline{grid-template-columns:1fr;} }

  /* ---------- Why us ---------- */
  .why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-4);}
  .why-item svg{width:26px; height:26px; color:var(--gold-deep); margin-bottom:var(--space-2);}
  .why-item h3{font-size:1.02rem; margin-bottom:.4rem; font-weight:600;}
  .why-item p{font-size:.88rem; color:var(--ink-dim-on-paper);}
  @media (max-width:900px){ .why-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .why-grid{grid-template-columns:1fr;} }

  /* ---------- Eligibility ---------- */
  .elig-wrap{display:grid; grid-template-columns:1.1fr .9fr; gap:var(--space-5); align-items:start;}
  .elig-list li{display:flex; gap:.85rem; padding:1rem 0; border-top:1px solid var(--ink-line); font-size:1rem;}
  .elig-list li:last-child{border-bottom:1px solid var(--ink-line);}
  .elig-list svg{width:20px; height:20px; color:var(--sage); flex-shrink:0; margin-top:.1rem;}
  .elig-note{font-size:.86rem; color:var(--paper-dim); background:var(--ink-soft); border:1px solid var(--ink-line); padding:var(--space-3); border-radius:var(--radius);}
  @media (max-width:800px){ .elig-wrap{grid-template-columns:1fr;} }

  /* ---------- Testimonials ---------- */
  .testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3);}
  .testi-card{background:var(--paper); border:1px solid var(--paper-line); padding:var(--space-4); display:flex; flex-direction:column; gap:var(--space-3);}
  .testi-quote{font-size:1rem; line-height:1.55;}
  .testi-name{font-family:var(--font-mono); font-size:.78rem; color:var(--gold-deep); text-transform:uppercase; letter-spacing:.05em;}
  @media (max-width:900px){ .testi-grid{grid-template-columns:1fr; max-width:520px;} }

  /* ---------- FAQ ---------- */
  .faq-list{border-top:1px solid var(--ink-line);}
  .faq-item{border-bottom:1px solid var(--ink-line);}
  .faq-question{
    width:100%; display:flex; justify-content:space-between; align-items:center; gap:var(--space-3);
    padding:1.3rem 0; font-family:var(--font-display); font-size:1.05rem; font-weight:600; text-align:left; color:var(--paper);
  }
  .faq-question svg{width:18px; height:18px; flex-shrink:0; transition:transform .3s ease; color:var(--gold);}
  .faq-item.is-open .faq-question svg{transform:rotate(45deg);}
  .faq-answer{max-height:0; overflow:hidden; transition:max-height .35s var(--ease);}
  .faq-answer p{padding-bottom:1.3rem; color:var(--paper-dim); max-width:62ch; font-size:.95rem;}
  .faq-item.is-open .faq-answer{max-height:220px;}

  /* ---------- CTA banner ---------- */
  .cta-banner{background:var(--gold); color:var(--ink); padding:var(--space-5) 0; text-align:center;}
  .cta-banner h2{font-size:clamp(1.6rem,2.6vw + 1rem,2.4rem); margin-bottom:.6rem;}
  .cta-banner p{margin-bottom:var(--space-3); color:#4A3B10;}
  .cta-banner .btn-gold{background:var(--ink); color:var(--paper);}
  .cta-banner .btn-gold:hover{background:#232D28;}

  /* ---------- Lead form ---------- */
  .form-wrap{display:grid; grid-template-columns:.9fr 1.1fr; gap:var(--space-5);}
  .form-grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); background:var(--paper); border:1px solid var(--paper-line); padding:var(--space-4);}
  .form-grid .full{grid-column:1/-1;}
  .form-grid label{display:block; font-size:.8rem; font-weight:600; margin-bottom:.4rem;}
  .form-note{font-size:.78rem; color:var(--ink-dim-on-paper); margin-top:var(--space-2);}
  .form-success{display:none; background:var(--sage); color:#0E1F13; padding:var(--space-3); font-size:.92rem; margin-top:var(--space-2);}
  .form-success.is-visible{display:block;}
  @media (max-width:900px){ .form-wrap{grid-template-columns:1fr;} .form-grid{grid-template-columns:1fr;} }


  /* ---------- Added pages / app blocks ---------- */
  input[type="number"], input[type="date"], input[type="password"], textarea{
    font:inherit; color:inherit; background:var(--paper); border:1px solid var(--paper-line);
    border-radius:var(--radius); padding:.85rem 1rem; width:100%;
  }
  textarea{min-height:118px; resize:vertical;}
  .site-nav .language-select{
    width:auto; padding:0; border:0; background:transparent; color:var(--paper-dim);
    font-size:.92rem; cursor:pointer;
  }
  .site-nav .language-select:hover{color:var(--paper);}
  .site-nav .language-select option{color:var(--ink); background:var(--paper);}

  .mini-text{font-size:.9rem; color:var(--ink-dim-on-paper);}
  .on-ink .mini-text{color:var(--paper-dim);}
  .section-tight{padding-top:var(--space-5);}

  .form-panel{
    background:var(--paper);
    border:1px solid var(--paper-line);
    padding:var(--space-4);
  }
  .on-ink .form-panel{
    background:var(--ink-soft);
    border-color:var(--ink-line);
  }
  .form-panel + .form-panel{margin-top:var(--space-3);}
  .form-panel h3{
    font-size:1.12rem;
    margin-bottom:var(--space-3);
  }
  .field-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:var(--space-3);
  }
  .field-grid.two{grid-template-columns:repeat(2,1fr);}
  .field-grid .full{grid-column:1/-1;}
  .field label,
  .panel-field label{
    display:block;
    font-size:.78rem;
    font-weight:700;
    margin-bottom:.42rem;
    color:var(--ink-dim-on-paper);
  }
  .on-ink .field label,
  .on-ink .panel-field label{color:var(--paper-dim);}
  .field input,
  .field select,
  .field textarea,
  .panel-field input,
  .panel-field select,
  .panel-field textarea{
    width:100%;
    font:inherit;
    font-size:.92rem;
    border-radius:var(--radius);
  }
  .on-ink .field input,
  .on-ink .field select,
  .on-ink .field textarea,
  .on-ink .panel-field input,
  .on-ink .panel-field select,
  .on-ink .panel-field textarea{
    background:#101713;
    border-color:var(--ink-line);
    color:var(--paper);
  }
  .on-ink .field input::placeholder,
  .on-ink .field textarea::placeholder{color:#7F857B;}

  .file-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:var(--space-3);
  }
  .file-card{
    border:1px solid var(--ink-line);
    background:#101713;
    padding:var(--space-3);
    display:flex;
    flex-direction:column;
    gap:.7rem;
    min-height:118px;
  }
  .file-card strong{
    font-size:.88rem;
    color:var(--paper);
  }
  .file-card small{
    color:var(--paper-dim);
    font-size:.74rem;
  }
  .file-input{
    position:absolute;
    opacity:0;
    pointer-events:none;
  }
  .file-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    min-height:42px;
    background:var(--gold);
    color:var(--ink);
    border:1px solid var(--gold);
    padding:.7rem .9rem;
    font-size:.85rem;
    font-weight:700;
    cursor:pointer;
    text-align:center;
  }
  .file-btn:hover{background:#E4C06C;}
  .file-name{
    color:var(--paper-dim);
    font-family:var(--font-mono);
    font-size:.72rem;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .calc-shell{
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:var(--space-4);
    align-items:start;
  }
  .calc-card{
    background:var(--paper);
    border:1px solid var(--paper-line);
    padding:var(--space-4);
  }
  .calc-card h3{font-size:1.08rem; margin-bottom:var(--space-3);}
  .calc-form{
    display:grid;
    gap:var(--space-3);
  }
  .result-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--paper-line);
    border:1px solid var(--paper-line);
    margin-bottom:var(--space-3);
  }
  .result-card{
    background:var(--paper);
    padding:var(--space-3);
  }
  .result-card span{
    display:block;
    font-size:.72rem;
    font-family:var(--font-mono);
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--ink-dim-on-paper);
    margin-bottom:.45rem;
  }
  .result-card strong{
    display:block;
    font-family:var(--font-mono);
    font-size:1.18rem;
    color:var(--ink-on-paper);
  }
  .chart-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:var(--space-3);
    margin-bottom:var(--space-3);
  }
  .chart-card{
    border:1px solid var(--paper-line);
    background:#EFEBDD;
    padding:var(--space-3);
  }
  .chart-card h4{
    font-family:var(--font-mono);
    font-size:.72rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--gold-deep);
    margin-bottom:.7rem;
  }
  .chart-card canvas{
    width:100%;
    height:220px;
    display:block;
  }
  .table-wrap{
    max-height:420px;
    overflow:auto;
    border:1px solid var(--paper-line);
    background:var(--paper);
  }
  .amort-table{
    width:100%;
    border-collapse:collapse;
    font-size:.83rem;
  }
  .amort-table th{
    position:sticky;
    top:0;
    background:var(--ink-soft);
    color:var(--paper);
    font-family:var(--font-mono);
    font-size:.68rem;
    letter-spacing:.06em;
    text-transform:uppercase;
    text-align:left;
    padding:.75rem;
    white-space:nowrap;
  }
  .amort-table td{
    border-top:1px solid var(--paper-line);
    padding:.7rem .75rem;
    white-space:nowrap;
  }
  .calc-actions,
  .form-actions{
    display:flex;
    flex-wrap:wrap;
    gap:var(--space-2);
    margin-top:var(--space-3);
  }

  .contact-grid{
    display:grid;
    grid-template-columns:.95fr 1.05fr;
    gap:var(--space-4);
    align-items:start;
  }
  .contact-cards{
    display:grid;
    gap:var(--space-3);
  }
  .contact-card{
    background:var(--paper);
    border:1px solid var(--paper-line);
    padding:var(--space-3);
  }
  .contact-card span{
    display:block;
    font-family:var(--font-mono);
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--gold-deep);
    margin-bottom:.35rem;
  }
  .contact-card strong,
  .contact-card a{
    display:block;
    font-size:1rem;
    color:var(--ink-on-paper);
    font-weight:700;
  }

  .admin-shell{
    display:grid;
    grid-template-columns:.82fr 1.18fr;
    gap:var(--space-4);
    align-items:start;
  }
  .admin-card{
    background:var(--ink-soft);
    border:1px solid var(--ink-line);
    padding:var(--space-4);
  }
  .admin-card h3{font-size:1.08rem; margin-bottom:var(--space-3);}
  .admin-settings{display:none;}
  .admin-settings.is-visible{display:block;}
  .admin-message{
    margin-top:var(--space-2);
    font-size:.82rem;
    color:var(--paper-dim);
  }
  .admin-ok{
    display:none;
    background:var(--sage);
    color:#0E1F13;
    padding:var(--space-2);
    margin-top:var(--space-2);
    font-size:.88rem;
  }
  .admin-ok.is-visible{display:block;}

  .site-alert{
    display:none;
    background:var(--sage);
    color:#0E1F13;
    padding:var(--space-3);
    margin-top:var(--space-3);
    font-size:.92rem;
    font-weight:600;
  }
  .site-alert.is-visible{display:block;}

  @media (max-width:980px){
    .calc-shell,
    .contact-grid,
    .admin-shell{grid-template-columns:1fr;}
    .field-grid,
    .field-grid.two,
    .file-grid,
    .result-grid,
    .chart-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:620px){
    .field-grid,
    .field-grid.two,
    .file-grid,
    .result-grid,
    .chart-grid{grid-template-columns:1fr;}
    .calc-actions .btn,
    .form-actions .btn{width:100%; justify-content:center;}
  }

  @media print{
    .site-header,
    .hero,
    #prets,
    #demande,
    #contact,
    #admin,
    #parcours,
    .cta-banner,
    .site-footer,
    .calc-actions{display:none !important;}
    #calculateur{padding:1rem 0 !important;}
    .calc-shell{display:block;}
    .calc-card{border:0; padding:0;}
    .table-wrap{max-height:none; overflow:visible;}
  }

  /* ---------- Footer ---------- */
  .site-footer{background:var(--ink-soft); color:var(--paper-dim); padding:var(--space-6) 0 var(--space-3); font-size:.9rem;}
  .footer-top{display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:var(--space-4); padding-bottom:var(--space-5); border-bottom:1px solid var(--ink-line);}
  .footer-top h4{font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--paper); margin-bottom:var(--space-2);}
  .footer-top li{margin-bottom:.55rem;}
  .footer-top a:hover{color:var(--paper);}
  .footer-brand .logo{margin-bottom:.6rem;}
  .footer-brand p{max-width:32ch; font-size:.88rem;}
  .footer-bottom{padding-top:var(--space-3); font-size:.78rem; line-height:1.7; color:#75786F;}
  @media (max-width:800px){ .footer-top{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .footer-top{grid-template-columns:1fr;} }

  /* ---------- Reveal ---------- */
  .reveal{opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
  .reveal.is-visible{opacity:1; transform:translateY(0);}

  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    .reveal{opacity:1; transform:none; transition:none;}
    .btn, .loan-card, .faq-question svg{transition:none;}
  }

  /* ---------- Multi-page additions ---------- */
  .page-hero{
    background:var(--ink); color:var(--paper);
    padding:calc(var(--space-7) + 1.4rem) 0 var(--space-5);
    overflow:hidden;
  }
  .page-hero h1{
    font-size:clamp(2rem, 3.5vw + 1rem, 3.35rem);
    margin-bottom:var(--space-2);
    max-width:13ch;
  }
  .page-hero p{color:var(--paper-dim); max-width:56ch; font-size:1rem;}
  .site-nav a.is-active{color:var(--paper);}
  .site-nav a.is-active::after{
    content:""; display:block; height:1px; background:var(--gold); margin-top:.25rem;
  }
  .home-mini-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3); margin-top:var(--space-4);}
  .home-mini-card{border:1px solid var(--paper-line); background:var(--paper); padding:var(--space-3);}
  .home-mini-card h3{font-size:1.05rem; margin-bottom:.45rem;}
  .home-mini-card p{font-size:.9rem; color:var(--ink-dim-on-paper);}
  @media (max-width:860px){.home-mini-grid{grid-template-columns:1fr;}}
  @media print{
    .site-header,.site-footer,.page-hero,.hero,.calc-actions{display:none !important;}
    #calculateur{padding:1rem 0 !important;}
  }

  /* Styles pour les alertes du formulaire */
 .alert-success {
    background: #1A3A2A;
    color: #2ECC71;
    border: 2px solid #2ECC71;
    padding: 1.5rem;
    border-radius: 8px;
    font-size: 1rem;
    line-height: 1.6;
}

.alert-error {
    background: #3A1A1A;
    color: #E74C3C;
    border: 2px solid #E74C3C;
    padding: 1.5rem;
    border-radius: 8px;
    font-size: 1rem;
    line-height: 1.6;
}

.alert-success strong,
.alert-error strong {
    display: block;
    font-size: 1.1rem;
    margin-bottom: 0.5rem;
}

/* Messages de formulaire - Version améliorée */
#formResponse {
    padding: 1.25rem 1.5rem;
    border-radius: 6px;
    margin-top: 1.5rem;
    font-weight: 500;
    animation: slideDown 0.4s ease;
}

#formResponse ul {
    margin: 0.5rem 0 0 1.25rem;
    padding: 0;
}

#formResponse li {
    margin-bottom: 0.25rem;
}

.success-message {
    background: #0D2A1A;
    color: #2ECC71;
    border: 1px solid #2ECC71;
    border-left: 4px solid #2ECC71;
}

.success-message strong {
    color: #F4F1E8;
}

.error-message {
    background: #2A0D0D;
    color: #FF6B6B;
    border: 1px solid #FF6B6B;
    border-left: 4px solid #FF6B6B;
}

.error-message strong {
    color: #F4F1E8;
}

.error-message ul {
    list-style: disc;
    color: #FF6B6B;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-15px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Bouton en cours d'envoi */
#submitBtn:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}