:root { --texte: #111827; --discret: #4b5563; --fond: #ffffff; --trait: #e5e7eb; --accent: #1a56db; --encre: #111827; }
@media (prefers-color-scheme: dark) {
  :root { --texte: #f3f4f6; --discret: #9ca3af; --fond: #111827; --trait: #374151; --accent: #93c5fd; --encre: #f3f4f6; }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--fond); color: var(--texte); font: 17px/1.6 -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; }
main, .entete, .pied { max-width: 42rem; margin: 0 auto; padding: 0 1rem; }
.entete { padding-top: 1.25rem; }
.marque { margin: 0; font-weight: 700; letter-spacing: .02em; }
h1 { font-size: 1.9rem; line-height: 1.25; margin: 2rem 0 1rem; }
h2 { font-size: 1.3rem; margin: 2.5rem 0 .75rem; padding-top: 1.5rem; border-top: 1px solid var(--trait); }
.intro { font-size: 1.1rem; color: var(--discret); }
a { color: var(--accent); }
.bouton { display: inline-block; font: inherit; font-weight: 600; padding: .7rem 1.2rem; border: 0; border-radius: .4rem; background: var(--encre); color: var(--fond); text-decoration: none; cursor: pointer; }
.bouton:hover { opacity: .88; }
.bouton[disabled] { opacity: .5; cursor: wait; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.liste { padding-left: 1.2rem; }
.a-venir, .mention, .aide, .facultatif { color: var(--discret); }
.mention, .aide { font-size: .9rem; }
.a-venir { padding: 1rem; border: 1px dashed var(--trait); border-radius: .4rem; }
.fiche { padding: 0 0 1rem; margin: 0 0 1rem; border-bottom: 1px solid var(--trait); }
.fiche .nom { font-weight: 700; }
.fiche p { margin: .15rem 0; }
.prix { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.carte-prix { border: 1px solid var(--trait); border-radius: .5rem; padding: 1rem; }
.montant { font-size: 1.8rem; font-weight: 700; margin: 0 0 .5rem; }
.montant span { font-size: 1rem; font-weight: 400; color: var(--discret); }
.places { font-weight: 600; margin-bottom: 0; }
label { display: block; font-weight: 600; margin-bottom: .25rem; }
.cases label { display: inline-flex; align-items: center; gap: .4rem; margin: 0 1rem .4rem 0; font-weight: 400; }
input[type="email"], input[type="text"], input[type="number"] { width: 100%; font: inherit; padding: .6rem; border: 1px solid var(--discret); border-radius: .4rem; background: var(--fond); color: var(--texte); }
fieldset { border: 1px solid var(--trait); border-radius: .4rem; margin: 0 0 1rem; padding: .75rem 1rem; }
legend { font-weight: 600; padding: 0 .4rem; }
/* Champ piège : hors écran (pas display:none, que certains robots détectent). */
.piege { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.rgpd { font-size: .85rem; color: var(--discret); }
.message { min-height: 1.6em; font-weight: 600; }
.message.erreur { color: #b91c1c; }
@media (prefers-color-scheme: dark) { .message.erreur { color: #fca5a5; } }
.pied { margin-top: 3rem; padding-bottom: 2rem; border-top: 1px solid var(--trait); font-size: .9rem; color: var(--discret); }
@media (max-width: 30rem) { h1 { font-size: 1.55rem; } }
