:root{
  --bg:#faf9f7; --surface:#ffffff; --alt:#f1efec; --text:#2b2d2f; --muted:#6b6f73;
  --line:#e2dfda; --accent:#5f7a76; --accent-dark:#4b625e; --focus:#2f5d9e;
  --radius:12px; --max:960px;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#1c1d1f; --surface:#242628; --alt:#202123; --text:#e9e8e6; --muted:#a2a5a8;
        --line:#35373a; --accent:#8fb0aa; --accent-dark:#a7c5bf; --focus:#7aa7e0;}
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{margin:0;background:var(--bg);color:var(--text);
  font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-text-size-adjust:100%}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.narrow{max-width:720px}
a{color:var(--accent-dark)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}

.site-header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 92%,transparent);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;flex-wrap:wrap}
.brand{font-weight:600;font-size:1.1rem;text-decoration:none;color:var(--text);letter-spacing:.2px}
nav{display:flex;align-items:center;gap:18px}
nav a{text-decoration:none;color:var(--muted);font-size:.95rem}
nav a:hover{color:var(--text)}
nav a.lang{border:1px solid var(--line);border-radius:999px;padding:2px 12px;color:var(--text)}

.hero{padding:72px 0 56px;text-align:center}
.hero h1{font-size:clamp(2rem,6vw,3rem);line-height:1.15;margin:0 0 14px;font-weight:600}
.hero p{max-width:560px;margin:0 auto 26px;color:var(--muted);font-size:1.1rem}

.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:999px;
  padding:12px 28px;font:inherit;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s}
.btn:hover{background:var(--accent-dark)}
.btn[disabled]{opacity:.6;cursor:wait}
@media (prefers-color-scheme:dark){.btn{color:#14201e}}

.section{padding:56px 0}
.section.alt{background:var(--alt)}
h2{font-size:1.6rem;margin:0 0 6px;font-weight:600}
.muted{color:var(--muted)}

/* FAQ */
.faq{list-style:none;margin:24px 0 0;padding:0;border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{all:unset;box-sizing:border-box;width:100%;display:flex;justify-content:space-between;align-items:center;
  gap:16px;padding:16px 4px;cursor:pointer;font-weight:500}
.faq-q:hover{color:var(--accent-dark)}
.faq-q:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;border-radius:6px}
.chev{flex:none;width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
  transform:rotate(45deg);transition:transform .2s}
.faq-q[aria-expanded="true"] .chev{transform:rotate(-135deg)}
.faq-a{padding:0 4px 18px;color:var(--muted)}
.faq-a[hidden]{display:none}
.faq-a p{margin:0}

/* Formulaire */
form{margin-top:22px;display:grid;gap:6px}
label{font-weight:500;font-size:.95rem;margin-top:10px}
input[type=text],input[type=email],textarea{width:100%;padding:11px 13px;font:inherit;color:var(--text);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
textarea{resize:vertical;min-height:130px}
input:focus,textarea:focus{border-color:var(--accent)}
input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#b04a4a}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:.9rem;color:var(--muted);margin:14px 0}
.check input{margin-top:5px;flex:none}
form .btn{justify-self:start;margin-top:6px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.status{min-height:1.5em;margin:8px 0 0;font-size:.95rem}
.status.ok{color:#3b7a57}.status.err{color:#b04a4a}
@media (prefers-color-scheme:dark){.status.ok{color:#7fc79c}.status.err{color:#e08a8a}}

.site-footer{padding:36px 0 48px;border-top:1px solid var(--line);font-size:.9rem}
.notice{background:var(--alt);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;color:var(--muted)}

@media (max-width:520px){
  .hero{padding:48px 0 40px}.section{padding:40px 0}
  form .btn{justify-self:stretch;text-align:center}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
