:root{
  --vert:#14432a; --vert-2:#1f5c3b; --rouge:#b3261e; --rouge-2:#8f1d17; --or:#c9a24a;
  --creme:#fbf6ee; --creme-2:#f3ead9; --encre:#1d1b18; --muted:#6c665c; --ligne:#e6dccb; --blanc:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--creme);color:var(--encre);font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,.serif{font-family:"Fraunces",Georgia,serif;font-weight:600;letter-spacing:-.01em;line-height:1.12;margin:0}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:700;border:0;border-radius:999px;padding:14px 26px;cursor:pointer;text-decoration:none;transition:transform .15s,background .15s}
.btn:active{transform:scale(.98)}
.btn-rouge{background:var(--rouge);color:#fff}.btn-rouge:hover{background:var(--rouge-2)}
.btn-vert{background:var(--vert);color:#fff}.btn-vert:hover{background:var(--vert-2)}
.btn-ghost{background:transparent;color:var(--encre);border:1.5px solid var(--ligne)}.btn-ghost:hover{background:var(--creme-2)}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* En-tête */
.top{position:sticky;top:0;z-index:40;background:rgba(251,246,238,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--ligne)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:flex;align-items:center;gap:10px;font-family:"Fraunces",serif;font-weight:600;font-size:20px;text-decoration:none}
.logo i{width:34px;height:34px;border-radius:10px;background:var(--rouge);display:grid;place-items:center;font-style:normal;font-size:18px}
.top nav{display:flex;gap:22px;align-items:center;font-weight:600;font-size:15px}
.top nav a{text-decoration:none;color:var(--muted)}.top nav a:hover{color:var(--encre)}
.top nav a.btn,.top nav a.btn:hover{color:#fff}
@media(max-width:640px){.top nav .hide-m{display:none}.logo{font-size:15px;gap:7px;white-space:nowrap}.logo i{width:30px;height:30px;font-size:16px}.top nav .btn{padding:8px 12px !important;font-size:13px}}

/* Champs */
label.f{display:block;font-weight:600;font-size:14px;margin-bottom:6px}
.inp{width:100%;font:inherit;padding:12px 14px;border:1.5px solid var(--ligne);border-radius:12px;background:#fff;color:var(--encre)}
.inp:focus{outline:none;border-color:var(--vert);box-shadow:0 0 0 3px rgba(20,67,42,.12)}
