/* Pop-up programme de fidélité / parrainage */
.plf-overlay{
  position:fixed; inset:0; z-index:1000;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  background:rgba(8,7,11,.72);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  opacity:0; visibility:hidden;
  transition:opacity .35s ease, visibility 0s linear .35s;
}
.plf-overlay.plf-open{ opacity:1; visibility:visible; transition:opacity .35s ease; }

.plf-modal{
  position:relative; width:100%; max-width:480px; max-height:calc(100vh - 40px); overflow-y:auto;
  background:#121018; color:#f6f4fa;
  border:1px solid #2a2634; border-radius:22px;
  padding:40px 34px 30px;
  font-family:'Inter', system-ui, sans-serif;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.02) inset;
  transform:translateY(24px) scale(.97);
  transition:transform .45s cubic-bezier(.2,.9,.3,1.2);
}
.plf-open .plf-modal{ transform:none; }
.plf-modal::before{
  content:""; position:absolute; left:0; right:0; top:0; height:4px;
  background:linear-gradient(90deg,#8b5cf6,#ff3d8a 55%,#ff7a3d);
}
.plf-modal::after{
  content:""; position:absolute; width:260px; height:260px; right:-110px; top:-120px; pointer-events:none;
  background:radial-gradient(circle, rgba(255,61,138,.22), transparent 65%);
}

.plf-close{
  position:absolute; top:14px; right:14px; z-index:1;
  width:38px; height:38px; border-radius:50%;
  border:1px solid #2a2634; background:#1a1722; color:#cbc7d9;
  display:grid; place-items:center; cursor:pointer; font-size:1.25rem; line-height:1;
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.plf-close:hover{ background:#2a2634; color:#fff; transform:rotate(90deg); }
.plf-close:focus-visible, .plf-btn:focus-visible, .plf-link-btn:focus-visible{ outline:2px solid #ff3d8a; outline-offset:3px; }

.plf-badge{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Space Mono', monospace; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase;
  color:#ff7a3d; background:rgba(255,122,61,.1); border:1px solid rgba(255,122,61,.28);
  padding:6px 12px; border-radius:999px;
}
.plf-badge b{ font-weight:700; color:#fff; }

.plf-title{
  font-family:'Unbounded', sans-serif; font-weight:800; letter-spacing:-0.01em; line-height:1.15;
  font-size:clamp(1.35rem, 5vw, 1.7rem); margin:18px 0 12px; color:#f6f4fa;
}
.plf-title span{
  background:linear-gradient(90deg,#8b5cf6,#ff3d8a 55%,#ff7a3d);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.plf-desc{ color:#cbc7d9; font-size:.97rem; line-height:1.65; margin:0 0 22px; }

.plf-steps{ list-style:none; padding:0; margin:0 0 24px; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.plf-steps li{
  background:#1a1722; border:1px solid #2a2634; border-radius:12px; padding:12px 10px;
  font-size:.76rem; color:#cbc7d9; line-height:1.4; text-align:center;
}
.plf-steps li strong{ display:block; font-family:'Unbounded', sans-serif; font-size:1rem; color:#f6f4fa; margin-bottom:4px; }

.plf-form{ display:grid; gap:12px; }
.plf-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.plf-field label{
  display:block; font-size:.74rem; font-weight:600; color:#9a95ac; margin-bottom:6px;
  text-transform:uppercase; letter-spacing:.06em;
}
.plf-field input{
  width:100%; box-sizing:border-box;
  background:#08070b; color:#f6f4fa; border:1px solid #2a2634; border-radius:12px;
  padding:13px 14px; font:inherit; font-size:16px; /* 16px prevents iOS zoom */
  transition:border-color .2s ease, box-shadow .2s ease;
}
.plf-field input::placeholder{ color:#5d586d; }
.plf-field input:focus{ outline:none; border-color:#ff3d8a; box-shadow:0 0 0 3px rgba(255,61,138,.18); }
.plf-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

.plf-btn{
  margin-top:6px; width:100%;
  font-family:'Inter', sans-serif; font-weight:700; font-size:1rem; color:#08070b;
  background:linear-gradient(90deg,#8b5cf6,#ff3d8a 55%,#ff7a3d);
  border:none; border-radius:999px; padding:16px 26px; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; gap:10px; text-decoration:none;
  transition:transform .25s ease, box-shadow .25s ease, opacity .2s ease;
}
.plf-btn:hover{ transform:translateY(-2px); box-shadow:0 12px 30px -8px rgba(255,61,138,.55); }
.plf-btn[disabled]{ opacity:.6; cursor:wait; transform:none; box-shadow:none; }
.plf-btn-ghost{ background:transparent; color:#f6f4fa; border:1px solid #2a2634; }
.plf-btn-ghost:hover{ border-color:#ff3d8a; box-shadow:none; }

.plf-error{ color:#ff6b8f; font-size:.86rem; min-height:1.2em; margin:2px 0 0; }
.plf-legal{ font-size:.72rem; color:#9a95ac; line-height:1.5; margin:14px 0 0; text-align:center; }
.plf-later{
  display:block; margin:10px auto 0; background:none; border:none; color:#9a95ac;
  font:inherit; font-size:.82rem; cursor:pointer; text-decoration:underline; text-underline-offset:3px;
}
.plf-later:hover{ color:#f6f4fa; }

/* Success state */
.plf-success{ display:none; }
.plf-done .plf-intro{ display:none; }
.plf-done .plf-success{ display:block; }
.plf-code{
  margin:0 0 16px; padding:16px; border-radius:14px; text-align:center;
  background:#08070b; border:1px dashed rgba(255,61,138,.5);
}
.plf-code small{ display:block; font-family:'Space Mono', monospace; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:#9a95ac; }
.plf-code strong{ display:block; margin-top:6px; font-family:'Unbounded', sans-serif; font-size:1.5rem; letter-spacing:.06em; color:#fff; }
.plf-share{ display:flex; gap:8px; margin-bottom:12px; }
.plf-share input{
  flex:1; min-width:0; background:#1a1722; color:#cbc7d9; border:1px solid #2a2634; border-radius:12px;
  padding:12px; font-family:'Space Mono', monospace; font-size:.78rem;
}
.plf-link-btn{
  flex-shrink:0; border:1px solid #2a2634; background:#1a1722; color:#f6f4fa; border-radius:12px;
  padding:0 16px; font:inherit; font-size:.85rem; font-weight:600; cursor:pointer;
}
.plf-link-btn:hover{ border-color:#ff3d8a; }
.plf-actions{ display:grid; gap:10px; }

/* Mobile: bottom sheet */
@media (max-width:560px){
  .plf-overlay{ align-items:flex-end; padding:0; }
  .plf-modal{
    max-width:none; max-height:92vh; border-radius:22px 22px 0 0; border-bottom:none;
    padding:34px 22px calc(24px + env(safe-area-inset-bottom));
    transform:translateY(100%);
    transition:transform .45s cubic-bezier(.2,.8,.2,1);
  }
  .plf-row{ grid-template-columns:1fr; }
  .plf-steps li{ font-size:.7rem; padding:10px 6px; }
}

@media (prefers-reduced-motion:reduce){
  .plf-overlay, .plf-modal{ transition:none !important; }
}

body.plf-lock{ overflow:hidden; }
