/* style.css — Apparence du simulateur.
   Pensé pour mobile et pour des yeux de 65 ans : gros textes, gros boutons, fort contraste, pas de rouge. */

:root {
  --fond: #f6f5f0;
  --carte: #ffffff;
  --texte: #1f2937;
  --texte-doux: #4b5563;
  --texte-leger: #6b7280;
  --accent: #1e40af;
  --accent-clair: #dbe4ff;
  --accent-fonce: #172f87;
  --bordure: #d9d9d4;
  --attention: #7c5c0b;
  --attention-fond: #fbf3dc;
  --ok-fond: #e6f2ea;
  --ok: #1f5c3a;
  --rayon: 14px;
}

* { box-sizing: border-box; }

html { font-size: 20px; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--texte);
  background: var(--fond);
}

a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 4px solid var(--accent); outline-offset: 3px;
}

.entete { padding: 18px 20px; text-align: center; }
.entete .marque { font-weight: 700; color: var(--accent-fonce); letter-spacing: 0.01em; }

main { max-width: 640px; margin: 0 auto; padding: 8px 20px 48px; }

h1 { font-size: 1.8rem; line-height: 1.2; margin: 0.4em 0 0.6em; }
h2 { font-size: 1.4rem; line-height: 1.25; margin: 0 0 0.6em; }
h3 { font-size: 1.15rem; margin: 0 0 0.4em; }
p { margin: 0 0 1em; }
.doux { color: var(--texte-doux); }
.petit { font-size: 0.85rem; color: var(--texte-leger); }

/* ---------- Écrans ---------- */
.ecran { display: none; }
.ecran.actif { display: block; animation: apparition 0.25s ease-out; }
@keyframes apparition { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.question { font-size: 1.5rem; line-height: 1.3; font-weight: 700; margin: 0.2em 0 0.7em; }
.aide { color: var(--texte-doux); margin-bottom: 1.2em; }

/* Barre de progression */
#progression { margin: 6px 0 22px; }
#prog-texte { font-size: 0.9rem; color: var(--texte-doux); margin: 0 0 8px; }
.barre { height: 12px; background: #e5e5df; border-radius: 999px; overflow: hidden; }
#prog-barre { height: 100%; width: 0; background: var(--accent); border-radius: 999px; transition: width 0.3s ease; }

/* Boutons */
.bouton, .choix {
  display: block; width: 100%;
  min-height: 64px; padding: 14px 20px;
  font: inherit; font-size: 1.1rem; font-weight: 600;
  border-radius: var(--rayon); cursor: pointer;
  text-align: left;
}
.bouton {
  background: var(--accent); color: #fff; border: 2px solid var(--accent);
  text-align: center; margin-top: 8px;
}
.bouton:hover { background: var(--accent-fonce); border-color: var(--accent-fonce); }
.bouton[disabled] { opacity: 0.6; cursor: wait; }
.bouton.secondaire { background: transparent; color: var(--accent); }
.bouton.secondaire:hover { background: var(--accent-clair); }

.choix {
  background: var(--carte); color: var(--texte); border: 2px solid var(--bordure);
  margin-bottom: 12px;
}
.choix:hover { border-color: var(--accent); }
.choix.selectionne, .choix[aria-pressed="true"] { border-color: var(--accent); background: var(--accent-clair); color: var(--accent-fonce); }
.choix.selectionne::after { content: " ✓"; }

.retour {
  display: inline-block; margin-top: 22px; background: none; border: none; padding: 10px 0;
  font: inherit; font-size: 1rem; color: var(--accent); text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}

/* Champs */
label { display: block; font-weight: 600; margin: 0 0 8px; }
input[type="text"], input[type="number"], input[type="email"], select, textarea {
  width: 100%; font: inherit; font-size: 1.25rem; padding: 14px 16px;
  border: 2px solid var(--bordure); border-radius: var(--rayon); background: var(--carte); color: var(--texte);
  min-height: 64px;
}
textarea { min-height: 140px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--accent); }
.champs-date { display: grid; grid-template-columns: 1fr 1.6fr 1.3fr; gap: 12px; }
.champs-date label { font-size: 0.9rem; font-weight: 600; color: var(--texte-doux); }
.champ-unite { display: flex; align-items: center; gap: 12px; }
.champ-unite input { flex: 1; }
.champ-unite span { font-weight: 600; }

.erreur { display: none; margin: 12px 0 0; padding: 12px 16px; border-radius: 10px;
          background: var(--attention-fond); color: var(--attention); font-weight: 600; }
.erreur.visible { display: block; }

/* ---------- Résultat ---------- */
.resultat-tete { text-align: center; padding: 8px 0 16px; }
.sur-titre { color: var(--texte-doux); margin-bottom: 4px; }
.resultat-titre { font-size: 1.3rem; font-weight: 600; margin: 0 0 8px; }
.date-principale { font-size: 2.4rem; line-height: 1.15; font-weight: 800; color: var(--accent-fonce); margin: 0 0 12px; letter-spacing: -0.01em; }
.date-sous { color: var(--texte-doux); font-size: 1.05rem; }

.carte {
  background: var(--carte); border: 1px solid var(--bordure); border-radius: var(--rayon);
  padding: 20px 22px; margin: 0 0 18px;
}
.carte h3 { color: var(--accent-fonce); }
.carte p:last-child { margin-bottom: 0; }
.carte ul { margin: 0 0 1em; padding-left: 1.2em; }
.carte li { margin-bottom: 0.4em; }

.etiquette {
  display: inline-block; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--texte-doux); background: #ecece6; padding: 3px 10px; border-radius: 999px; margin-right: 8px;
}
.date-secondaire { font-size: 1.35rem; font-weight: 700; color: var(--texte); margin: 4px 0 8px; }
.date-tertiaire { font-weight: 700; }

.encadre {
  background: var(--accent-clair); border-radius: var(--rayon); padding: 18px 22px; margin: 6px 0 22px;
  color: var(--accent-fonce); font-weight: 600;
}
.reserve { background: var(--attention-fond); color: var(--attention); border-radius: 10px; padding: 12px 16px; margin: 10px 0; }

/* Partie verrouillée : aperçu flouté (valeurs fictives) puis demande d'email */
.apercu-flou {
  filter: blur(7px); pointer-events: none; user-select: none;
  max-height: 420px; overflow: hidden; position: relative; margin-top: 8px;
  -webkit-mask-image: linear-gradient(#000 45%, transparent 100%); mask-image: linear-gradient(#000 45%, transparent 100%);
}
.apercu-flou .resultat-titre, .apercu-flou .date-principale, .apercu-flou .date-sous { text-align: center; }
#verrou .form-email { margin-top: -40px; position: relative; }

.bandeau-test { background: var(--attention-fond); color: var(--attention); border-radius: 10px; padding: 10px 16px; font-weight: 600; font-size: 0.9rem; }

/* Formulaire email */
.form-email { background: var(--carte); border: 2px solid var(--accent); border-radius: var(--rayon); padding: 22px; margin: 26px 0 18px; }
.form-email h3 { margin-bottom: 8px; }
.consentement { display: flex; gap: 12px; align-items: flex-start; font-weight: 400; font-size: 0.95rem; margin: 14px 0 6px; }
.consentement input { width: 28px; height: 28px; margin: 3px 0 0; flex: none; }
#envoi-message { margin-top: 12px; font-weight: 600; }
#envoi-message.ok { color: var(--ok); }
#envoi-message.attention { color: var(--attention); }

/* Pied de page */
footer { max-width: 640px; margin: 0 auto; padding: 24px 20px 48px; border-top: 1px solid var(--bordure); font-size: 0.85rem; color: var(--texte-leger); }
footer p { margin-bottom: 0.6em; }

/* Page de confidentialité */
.contenu h2 { margin-top: 1.6em; }

@media (min-width: 600px) {
  html { font-size: 21px; }
  .date-principale { font-size: 3rem; }
}
