*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
/* Empêche les contrôles natifs (select, checkbox, radio, range) d'afficher
   la couleur violette par défaut d'Android/Chrome — on force notre accent. */
:root{ accent-color: var(--accent); }
select, input[type="checkbox"], input[type="radio"], input[type="range"]{ accent-color: var(--accent); }
a{ color: var(--navy); }
a:visited{ color: var(--navy); }
select{
  font-family:inherit; font-size:14px; padding:10px 12px; border-radius:8px; border:1px solid var(--gray-300);
  background:#fff; color:var(--ink);
}
input, textarea{ font-family:inherit; }
input:focus, select:focus, textarea:focus, button:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
body{
  font-family: var(--font-body);
  background:var(--white);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
h1,h2,h3,h4{ font-family:var(--font-head); margin:0 0 .5em; line-height:1.15; color:var(--navy); }
p{ margin:0 0 1em; color:var(--gray-700); }
.container{ max-width:var(--max-w); margin:0 auto; padding:0 20px; }
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 28px; border-radius:var(--radius-pill); font-weight:700; font-size:15px;
  transition:transform .15s ease, box-shadow .15s ease; white-space:nowrap;
}
.btn:active{ transform:scale(.97); }
.btn-gold{ background:var(--gold); color:var(--navy); box-shadow:var(--shadow-sm); }
.btn-gold:hover{ box-shadow:var(--shadow-md); }
.btn-accent{ background:var(--accent); color:var(--white); box-shadow:var(--shadow-sm); }
.btn-accent:hover{ box-shadow:var(--shadow-md); }
.btn-outline{ background:transparent; color:var(--navy); border:1.5px solid var(--gray-300); }
.btn-outline:hover{ border-color:var(--navy); }
.btn-whatsapp{ background:#25D366; color:#fff; }
.badge{
  display:inline-flex; align-items:center; gap:6px; padding:6px 14px;
  border-radius:var(--radius-pill); font-size:12px; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase;
}
.badge-gold{ background:var(--accent-light); color:var(--accent-dark); }
.badge-accent{ background:var(--accent-light); color:var(--accent-dark); }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
::selection{ background:var(--accent-light); color:var(--accent-dark); }

/* Anti-sélection de texte sur tout le site, sauf dans les champs de formulaire */
body{ -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; }
input, textarea{ -webkit-user-select:text; user-select:text; }
img, video, audio{ -webkit-user-drag:none; user-drag:none; }

/* Scroll fluide */
html{ scroll-behavior:smooth; }

/* Spinner générique */
.spinner{
  width:18px; height:18px; border:2.5px solid rgba(255,255,255,.35);
  border-top-color:#fff; border-radius:50%; animation:spin .8s linear infinite;
  display:inline-block;
}
@keyframes spin{ to{ transform:rotate(360deg); } }
@keyframes fadeInUp{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:translateY(0);} }
@keyframes fadeIn{ from{ opacity:0;} to{ opacity:1;} }

/* Anti-sélection / anti-copie sur zones protégées */
.no-select{
  -webkit-user-select:none; user-select:none;
  -webkit-touch-callout:none;
}
