* { box-sizing: border-box; }

body {
  margin: 0;
  background: #f4f1f7;
  font-family: Arial, Helvetica, sans-serif;
  color: #303030;
}

main {
  width: 100%;
  padding: 24px 14px;
}

.carte {
  max-width: 780px;
  margin: 0 auto;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid #ded6e5;
  border-radius: 16px;
  box-shadow: 0 5px 22px rgba(0, 0, 0, .10);
}

.entete {
  padding: 25px 20px 22px;
  text-align: center;
  color: #ffffff;
  background: linear-gradient(135deg, #5b2b82, #8c3f91);
}

h1, h2 { margin: 0; }
h1 { font-size: 30px; }
h2 { margin-top: 18px; font-size: 23px; font-weight: normal; }
.slogan { margin: 7px 0 0; font-size: 16px; }

.introduction {
  margin: 0;
  padding: 24px 24px 16px;
  text-align: center;
  line-height: 1.55;
}

.conditions {
  margin: 0 24px;
  padding: 18px 20px;
  background: #faf8fc;
  border: 1px solid #ded6e5;
  border-left: 5px solid #7b368a;
  border-radius: 10px;
}

.conditions h3 { margin: 0 0 14px; color: #5b2b82; }
.conditions p { margin: 10px 0; line-height: 1.55; }

.acceptation {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin: 22px 24px;
  padding: 16px;
  background: #fff;
  border: 2px solid #7b368a;
  border-radius: 10px;
  cursor: pointer;
  font-weight: bold;
  line-height: 1.45;
}

.acceptation input {
  width: 23px;
  height: 23px;
  flex: 0 0 auto;
  margin-top: 1px;
  accent-color: #7b368a;
}

.choix {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 0 24px;
}

.bouton {
  display: flex;
  min-height: 72px;
  align-items: center;
  justify-content: center;
  padding: 18px;
  border-radius: 12px;
  text-decoration: none;
  text-align: center;
  font-size: 21px;
  font-weight: bold;
  color: #ffffff;
  background: linear-gradient(135deg, #5b2b82, #8c3f91);
  box-shadow: 0 3px 10px rgba(91, 43, 130, .22);
  transition: opacity .15s ease, transform .15s ease;
}

.bouton:not(.desactive):hover {
  transform: translateY(-2px);
}

.bouton.desactive {
  opacity: .35;
  cursor: not-allowed;
  box-shadow: none;
}

.aide {
  margin: 20px 24px 24px;
  text-align: center;
  font-size: 14px;
  color: #666;
}

@media (max-width: 600px) {
  main { padding: 10px; }
  .carte { border-radius: 11px; }
  .entete { padding: 22px 15px 20px; }
  h1 { font-size: 25px; }
  h2 { font-size: 21px; }
  .introduction { padding: 20px 15px 14px; }
  .conditions { margin: 0 15px; padding: 15px; }
  .acceptation { margin: 18px 15px; padding: 14px; }
  .choix { grid-template-columns: 1fr; margin: 0 15px; gap: 12px; }
  .bouton { min-height: 64px; font-size: 20px; }
  .aide { margin: 18px 15px 20px; }
}
