/* =========================================================
   BIENVENUE — invitation à créer un compte (1ère visite)
   ========================================================= */
body.welcome-open{ overflow:hidden; }

.bv-overlay{
  position:fixed; inset:0; z-index:200;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  background:rgba(15,22,56,.55);
  backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px);
  opacity:0; pointer-events:none; transition:opacity .45s ease;
}
.bv-overlay.open{ opacity:1; pointer-events:auto; }
/* Page d'inscription : plus transparente, on devine le site derrière */
.bv-overlay.signup{
  background:rgba(15,22,56,.28);
  backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
  align-items:flex-start; overflow-y:auto;
}

.bv-card{
  position:relative; width:100%; max-width:430px;
  border-radius:26px; padding:38px 32px 28px;
  background:#fff; color:var(--navy);
  box-shadow:0 40px 90px -20px rgba(15,22,56,.55);
  transform:translateY(24px) scale(.97);
  transition:transform .5s cubic-bezier(.22,1,.36,1);
  overflow:hidden;
}
.bv-overlay.open .bv-card{ transform:none; }
.bv-card::before{
  content:""; position:absolute; top:-90px; right:-90px; width:240px; height:240px; border-radius:50%;
  background:radial-gradient(circle, var(--orange-tint), transparent 70%); pointer-events:none;
}
.bv-card > *{ position:relative; }

/* ---- étape 1 : accroche ---- */
.bv-chip{
  display:inline-flex; align-items:center; gap:10px; margin-bottom:18px;
  padding:8px 18px 8px 14px; border-radius:100px;
  background:linear-gradient(135deg,var(--orange),var(--orange-deep)); color:#fff;
  box-shadow:0 8px 20px rgba(255,90,31,.35);
}
.bv-chip b{ font-family:'Bebas Neue',sans-serif; font-size:26px; line-height:1; letter-spacing:.03em; font-weight:400; }
.bv-chip span{ font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; line-height:1.3; }
.bv-title{
  font-family:'Bebas Neue',sans-serif; font-size:44px; line-height:.98; letter-spacing:.5px;
  text-transform:uppercase; margin-bottom:10px;
}
.bv-title em{ font-style:normal; color:var(--orange); }
.bv-sub{ font-size:14.5px; line-height:1.6; color:var(--navy-soft); margin-bottom:20px; }
.bv-perks{ list-style:none; margin:0 0 24px; padding:0; display:grid; gap:11px; }
.bv-perks li{ display:flex; align-items:flex-start; gap:12px; font-size:13.5px; line-height:1.45; }
.bv-perks .ic{
  flex:0 0 28px; height:28px; border-radius:50%; background:var(--orange-tint); color:var(--orange);
  display:flex; align-items:center; justify-content:center;
}
.bv-perks strong{ font-weight:600; }

.bv-btn{
  width:100%; display:flex; align-items:center; justify-content:center; gap:9px;
  font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:14.5px;
  padding:16px; border-radius:100px; border:none; cursor:pointer;
  transition:background .25s, transform .2s, box-shadow .25s;
}
.bv-btn.primary{ background:var(--orange); color:#fff; box-shadow:0 12px 28px rgba(255,90,31,.38); }
.bv-btn.primary:hover{ background:var(--orange-deep); transform:translateY(-2px); }
.bv-btn:disabled{ opacity:.6; cursor:not-allowed; transform:none; }
.bv-links{ display:flex; flex-direction:column; align-items:center; gap:10px; margin-top:16px; }
.bv-link{
  background:none; border:none; cursor:pointer; font-family:'Space Grotesk',sans-serif;
  font-size:13px; color:var(--navy-soft); transition:color .2s;
}
.bv-link:hover{ color:var(--orange); }
.bv-link.guest{ text-decoration:underline; text-underline-offset:3px; }
.bv-link b{ color:var(--navy); font-weight:600; }

/* ---- étape 2 : inscription ---- */
.bv-overlay.signup .bv-card{
  max-width:480px; margin:auto; padding:34px 28px 26px;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(18px) saturate(1.4); -webkit-backdrop-filter:blur(18px) saturate(1.4);
  border:1px solid rgba(255,255,255,.7);
}
.bv-back{
  position:absolute; top:18px; left:18px; z-index:2;
  display:flex; align-items:center; gap:6px; background:none; border:none; cursor:pointer;
  font-family:'Space Grotesk',sans-serif; font-size:12.5px; color:var(--navy-soft);
}
.bv-back:hover{ color:var(--orange); }
.bv-x{
  position:absolute; top:16px; right:16px; z-index:2; width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  border:1px solid var(--line); background:rgba(255,255,255,.7); color:var(--navy);
  transition:border-color .25s, background .25s;
}
.bv-x:hover{ border-color:var(--orange); background:var(--orange-tint); }
.bv-form-title{ font-family:'Bebas Neue',sans-serif; font-size:34px; letter-spacing:.5px; text-transform:uppercase; margin:22px 0 4px; }
.bv-form-sub{ font-size:13.5px; color:var(--navy-soft); margin-bottom:18px; line-height:1.5; }
.bv-h{
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:2px; text-transform:uppercase;
  color:var(--orange); margin:20px 0 4px; display:flex; align-items:center; gap:10px;
}
.bv-h::after{ content:""; flex:1; height:1px; background:var(--line); }
.bv-hint{ font-size:12.5px; color:var(--navy-soft); margin-bottom:12px; line-height:1.5; }

.bv-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.bv-field{ margin-bottom:12px; min-width:0; }
.bv-field label{
  display:block; font-size:11.5px; font-weight:600; letter-spacing:.4px; margin-bottom:6px; color:var(--navy);
}
.bv-field label i{ color:var(--orange); font-style:normal; }
.bv-field input, .bv-field select{
  width:100%; padding:13px 14px; border-radius:12px; border:1px solid var(--line);
  font-family:'Space Grotesk',sans-serif; font-size:16px; color:var(--navy);
  background:rgba(255,255,255,.75); transition:border-color .25s, background .25s;
  appearance:none; -webkit-appearance:none;
}
.bv-field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%230f1638' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; padding-right:36px;
}
.bv-field input:focus, .bv-field select:focus{ outline:none; border-color:var(--orange); background:#fff; }
.bv-field input.err{ border-color:#d93025; }
.bv-msg{ display:none; margin:6px 0 10px; padding:11px 14px; border-radius:12px; font-size:13px; line-height:1.45; }
.bv-msg.show{ display:block; }
.bv-msg.error{ background:#fdecea; color:#b3261e; }
.bv-msg.success{ background:#e7f6ec; color:#17693a; }
.bv-legal{ font-size:11.5px; color:var(--navy-soft); text-align:center; margin-top:12px; line-height:1.5; }
.bv-legal a{ color:var(--navy); text-decoration:underline; }

@media (max-width:480px){
  .bv-card{ padding:32px 22px 24px; }
  .bv-title{ font-size:38px; }
  .bv-overlay.signup{ padding:12px; }
  .bv-overlay.signup .bv-card{ padding:30px 20px 22px; }
}