:root {
  color-scheme: light;
  --ground: #FAF8F3;
  --surface: #FFFFFF;
  --ink: #17171A;
  --muted: #6A6A6E;
  --faint: #93938F;
  --rule: #E2DFD6;
  --rule-firm: #C9C5B8;
  --accent: #B22A20;
  --accent-bg: #FBEDEB;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--ground);
  color: var(--ink);
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 17px;
  line-height: 1.6;
  padding: 0 16px 6rem;
  -webkit-font-smoothing: antialiased;
}
.wrap { max-width: 36rem; margin: 0 auto; }
.mast { padding: 2.75rem 0 1.5rem; border-bottom: 2px solid var(--rule-firm); }
.eyebrow {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--faint); margin: 0 0 1rem;
}
h1 {
  font-family: "Archivo", system-ui, sans-serif; font-weight: 700;
  font-size: clamp(2rem, 8vw, 2.8rem); line-height: 1.05; letter-spacing: -.02em; margin: 0;
}
h2 { font-family: "Archivo", system-ui, sans-serif; font-weight: 600; font-size: 1.2rem; margin: 1.8rem 0 .6rem; }
.dates {
  display: flex; flex-wrap: wrap; gap: .3rem 1.6rem; margin-top: 1.2rem;
  font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12.5px; color: var(--muted);
}
.dates b { color: var(--ink); font-weight: 500; }
section { padding: 2rem 0; border-bottom: 1px solid var(--rule); }
section:last-of-type { border-bottom: none; }
.lead { font-size: 1.12rem; margin: 0 0 1rem; }
.prizes { margin: 0; padding-left: 1.1rem; }
.prizes li { margin-bottom: .5rem; }
a { color: var(--accent); text-underline-offset: 2px; }

form label {
  display: block; margin: 1.1rem 0 .35rem;
  font-family: "Archivo", system-ui, sans-serif; font-weight: 600; font-size: 14px;
}
input:not([type=checkbox]) {
  width: 100%; font: inherit; font-size: 17px; padding: .75rem .85rem;
  border: 1px solid var(--rule-firm); border-radius: 4px; background: var(--surface); color: var(--ink);
}
input:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.hint { margin: .35rem 0 0; font-size: 14px; color: var(--muted); }
label.check {
  display: flex; gap: .7rem; align-items: flex-start;
  font-family: "Source Serif 4", Georgia, serif; font-weight: 400; font-size: 15.5px; line-height: 1.5;
}
label.check input { width: 20px; height: 20px; margin: .15rem 0 0; flex: none; accent-color: var(--accent); }
label.check.optional { color: var(--muted); }
button {
  font-family: "Archivo", system-ui, sans-serif; font-weight: 700; font-size: 16px;
  background: var(--accent); color: #fff; border: 0; border-radius: 4px;
  padding: .95rem 1.4rem; margin-top: 1.6rem; cursor: pointer; width: 100%;
}
button:disabled { opacity: .6; cursor: default; }
button.plain { background: transparent; color: var(--ink); border: 1px solid var(--rule-firm); }
.error { background: var(--accent-bg); border-left: 3px solid var(--accent); padding: .8rem 1rem; margin: 1.2rem 0 0; font-size: 15px; }
.note { background: var(--surface); border-left: 3px solid var(--rule-firm); padding: .8rem 1rem; font-size: 15px; }
.done { background: var(--surface); border: 1px solid var(--rule); padding: 1.2rem 1.3rem; }
.done h2 { margin-top: 0; }
.small { font-size: 14px; color: var(--muted); }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.share { display: flex; gap: .5rem; align-items: stretch; }
.share input { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 13px; }
.share button { width: auto; margin: 0; flex: none; }
.consent {
  position: fixed; left: 12px; right: 12px; bottom: 12px; max-width: 36rem; margin: 0 auto;
  background: var(--surface); border: 1px solid var(--rule-firm); border-radius: 6px;
  padding: 1rem 1.1rem; box-shadow: 0 8px 30px #0002; font-size: 14.5px;
}
.consent p { margin: 0 0 .7rem; }
.consent div { display: flex; gap: .5rem; }
.consent button { margin: 0; padding: .6rem 1rem; font-size: 14px; width: auto; }
[hidden] { display: none !important; }

/* Pages légales (règlement, privacy, gagnants) */
.legal .wrap { max-width: 44rem; }
.legal h2 { display: flex; gap: .85rem; align-items: baseline; margin: 0 0 1rem; }
.legal h2 .num { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px; font-weight: 500; color: var(--accent); flex: none; }
.legal h3 { font-family: "Archivo", system-ui, sans-serif; font-weight: 600; font-size: .97rem; margin: 1.8rem 0 .6rem; }
.legal p { margin: 0 0 1rem; }
.legal ul { margin: 0 0 1rem; padding-left: 1.15rem; }
.legal li { margin-bottom: .45rem; }
.lede { color: var(--muted); }
.nopurchase {
  margin: 1.5rem 0 0; padding: 1.1rem 1.25rem; background: var(--accent-bg); border-left: 3px solid var(--accent);
  font-family: "Archivo", system-ui, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: .02em; line-height: 1.5;
}
.tablewrap { overflow-x: auto; margin: 0 0 1.2rem; }
table { border-collapse: collapse; width: 100%; min-width: 34rem; font-size: 15px; }
thead th {
  font-family: "Archivo", system-ui, sans-serif; font-size: 10.5px; font-weight: 600; letter-spacing: .1em;
  text-transform: uppercase; color: var(--faint); text-align: left; padding: 0 .85rem .6rem 0;
  border-bottom: 1px solid var(--rule-firm); white-space: nowrap;
}
tbody td { padding: .85rem .85rem .85rem 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
tbody tr:last-child td { border-bottom: none; }
td.mono { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 13px; white-space: nowrap; }
td.rank { color: var(--accent); }
.aside { background: var(--surface); border-left: 2px solid var(--rule-firm); padding: 1.1rem 1.25rem; margin: 1.3rem 0; font-size: 15.5px; }
.legal footer { padding: 2rem 0 0; color: var(--faint); font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 11.5px; line-height: 1.7; }
.lang { font-family: "Archivo", system-ui, sans-serif; font-size: 13px; margin-top: 1rem; }
@media (max-width: 480px) { body { font-size: 16px; } .legal h2 { flex-direction: column; gap: .3rem; } }

/* Questions du diagnostic et compteur */
fieldset.q { border: 0; padding: 0; margin: 1.4rem 0 0; }
fieldset.q legend { font-family: "Archivo", system-ui, sans-serif; font-weight: 600; font-size: 15px; margin-bottom: .4rem; padding: 0; }
fieldset.q label.check { margin: .45rem 0; }
.counter { font-family: "Archivo", system-ui, sans-serif; font-size: 15px; margin: 1rem 0 0; }
.counter b { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 22px; color: var(--accent); margin-right: .3rem; }
