*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; background: #fdf6f0; color: #1f1612; line-height: 1.55; }
a { color: #8a7a6e; }
.page { max-width: 640px; margin: 0 auto; padding: 40px 20px; }
.header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 28px; }
.logo { font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: 26px; font-weight: 700; letter-spacing: 0.5px; }
.logo .dot { color: #e76f51; }
.header a { font-size: 13px; text-decoration: none; }
.header a:hover { color: #1f1612; }
.hero { text-align: center; padding: 10px 0 30px; }
.hero h1 { font-family: Georgia, serif; font-style: italic; font-size: 34px; line-height: 1.2; margin: 0 0 12px; text-wrap: balance; }
.hero p { font-size: 16px; color: #4a3f37; max-width: 520px; margin: 0 auto; }
.form-card { background: #fff; border: 1px solid #ead9c9; border-radius: 14px; padding: 30px 28px; box-shadow: 0 1px 3px rgba(31, 22, 18, 0.05); }
.field { margin-bottom: 18px; }
.field label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.field input, .field select { width: 100%; padding: 12px 14px; border: 1px solid #d8c8b8; border-radius: 7px; font-family: inherit; font-size: 16px; color: #1f1612; background: #fdf6f0; }
.field input:focus, .field select:focus { outline: none; border-color: #e76f51; background: #fff; box-shadow: 0 0 0 3px rgba(231, 111, 81, 0.12); }
.field .hint { font-size: 12px; color: #8a7a6e; margin-top: 5px; }
.row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .row-2 { grid-template-columns: 1fr; gap: 0; } }
.optionnel { border-top: 1px dashed #ead9c9; margin-top: 6px; padding-top: 16px; }
.optionnel summary { cursor: pointer; font-size: 14px; color: #8a7a6e; margin-bottom: 12px; }
.pot-de-miel { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.erreur { background: #fff5f5; border: 1px solid #e4b4ad; border-left: 3px solid #c0392b; color: #7d2a20; border-radius: 7px; padding: 12px 14px; margin-bottom: 18px; font-size: 14px; }
.submit-row { margin-top: 22px; text-align: center; }
.btn-submit { display: inline-block; width: 100%; background: #e76f51; color: #fff; border: 0; padding: 15px 30px; border-radius: 8px; font-size: 17px; font-weight: 600; cursor: pointer; font-family: inherit; }
.btn-submit:hover { background: #d65a3c; }
.btn-secondaire { background: transparent; color: #8a7a6e; border: 0; padding: 8px; font: inherit; font-size: 14px; cursor: pointer; text-decoration: underline; }
.privacy-note { font-size: 12px; color: #8a7a6e; text-align: center; margin-top: 14px; line-height: 1.5; }
.code-input { font-size: 30px; letter-spacing: 0.35em; text-align: center; font-variant-numeric: tabular-nums; }
.etapes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 28px; }
.etapes .item { padding: 14px 12px; background: #fff; border: 1px solid #ead9c9; border-radius: 8px; font-size: 13px; color: #4a3f37; }
.etapes strong { display: block; font-size: 15px; color: #1f1612; margin-bottom: 4px; }
@media (max-width: 600px) { .etapes { grid-template-columns: 1fr; } }
.contact { text-align: center; font-size: 13px; color: #8a7a6e; margin-top: 26px; }
.footer { text-align: center; font-size: 12px; color: #8a7a6e; margin-top: 36px; padding-top: 20px; border-top: 1px solid #ead9c9; }
.footer a { text-decoration: underline; }
.referrer-banner { background: #f3ece2; border: 1px solid #d4b896; border-left: 3px solid #b8853d; border-radius: 8px; padding: 12px 18px; margin-bottom: 18px; color: #5a4530; font-size: 14px; }
