/* Premium Services LLC — "Call me back" lead form + scroll popup.
   Self-contained; matches the navy + purple design system. */
:root{
  --ps-navy:#0B215A; --ps-navy-700:#0a1b48; --ps-accent:#7C3AED; --ps-accent-600:#6D28D9;
  --ps-bone:#FBFAFE; --ps-ink:#0f172a; --ps-slate:#64748b; --ps-line:#e8e7f1;
}

/* inline card ------------------------------------------------------- */
.ps-lead-wrap{ padding:3.5rem 1.25rem; background:var(--ps-bone); }
.ps-lead-card{
  max-width:540px; margin:0 auto; background:#fff; border:1px solid var(--ps-line);
  border-radius:20px; padding:2.25rem 1.75rem; box-shadow:0 18px 50px -24px rgba(11,33,90,.35);
  position:relative;
}
.ps-lead-eyebrow{
  display:inline-block; font:600 .68rem/1 "IBM Plex Sans",system-ui,sans-serif; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ps-accent); margin-bottom:.6rem;
}
.ps-lead-title{
  font-family:"Source Serif 4",Georgia,serif; color:var(--ps-navy); font-size:1.9rem; line-height:1.1;
  font-weight:600; margin:0 0 .5rem;
}
.ps-lead-sub{ color:var(--ps-slate); font:400 1rem/1.5 "IBM Plex Sans",system-ui,sans-serif; margin:0 0 1.4rem; }
.ps-lead-form{ display:flex; flex-direction:column; gap:.7rem; }
.ps-input{
  width:100%; box-sizing:border-box; font:400 1rem/1.2 "IBM Plex Sans",system-ui,sans-serif;
  color:var(--ps-ink); background:var(--ps-bone); border:1.5px solid var(--ps-line);
  border-radius:11px; padding:.85rem 1rem; transition:border-color .15s, box-shadow .15s;
}
.ps-input::placeholder{ color:#9aa3b2; }
.ps-input:focus{ outline:none; border-color:var(--ps-accent); box-shadow:0 0 0 4px rgba(124,58,237,.12); background:#fff; }
.ps-input.ps-bad{ border-color:#e11d48; box-shadow:0 0 0 4px rgba(225,29,72,.1); }
.ps-hp{ position:absolute!important; left:-9999px!important; width:1px; height:1px; opacity:0; }
.ps-lead-btn{
  margin-top:.25rem; width:100%; cursor:pointer; border:0; border-radius:11px;
  background:var(--ps-accent); color:#fff; font:600 1.02rem/1 "IBM Plex Sans",system-ui,sans-serif;
  padding:1rem; transition:background .15s, transform .08s; box-shadow:0 10px 24px -10px rgba(124,58,237,.6);
}
.ps-lead-btn:hover{ background:var(--ps-accent-600); }
.ps-lead-btn:active{ transform:translateY(1px); }
.ps-lead-btn[disabled]{ opacity:.6; cursor:wait; }
.ps-lead-note{ margin:.1rem 0 0; font:400 .78rem/1.4 "IBM Plex Sans",system-ui,sans-serif; color:#94a3b8; text-align:center; }
.ps-lead-note.ps-err{ color:#e11d48; }
.ps-lead-note a{ color:var(--ps-accent); font-weight:600; }
.ps-lead-or{ display:flex; align-items:center; gap:.9rem; margin:1.1rem 0; color:#b5bcc8; font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; }
.ps-lead-or::before,.ps-lead-or::after{ content:""; flex:1; height:1px; background:var(--ps-line); }
.ps-lead-book{
  display:block; text-align:center; text-decoration:none; cursor:pointer;
  border:1.5px solid var(--ps-navy); color:var(--ps-navy); border-radius:11px;
  font:600 1rem/1 "IBM Plex Sans",system-ui,sans-serif; padding:.95rem 1rem; transition:background .15s,color .15s;
}
.ps-lead-book:hover{ background:var(--ps-navy); color:#fff; }

/* success state ----------------------------------------------------- */
.ps-lead-done{ text-align:center; padding:1rem 0 .25rem; }
.ps-lead-check{
  width:62px; height:62px; margin:0 auto 1rem; border-radius:50%; background:rgba(124,58,237,.12);
  color:var(--ps-accent); font-size:2rem; display:flex; align-items:center; justify-content:center; font-weight:700;
}
.ps-lead-done-t{ font-family:"Source Serif 4",Georgia,serif; color:var(--ps-navy); font-size:1.5rem; font-weight:600; margin:0 0 .4rem; }
.ps-lead-done-s{ color:var(--ps-slate); font:400 1rem/1.5 "IBM Plex Sans",system-ui,sans-serif; margin:0; }

/* scroll popup ------------------------------------------------------ */
.ps-pop-ov{
  position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center;
  padding:1.25rem; background:rgba(11,33,90,.55); backdrop-filter:blur(6px);
  opacity:0; visibility:hidden; transition:opacity .25s, visibility .25s;
}
.ps-pop-ov.ps-open{ opacity:1; visibility:visible; }
.ps-pop{
  position:relative; width:100%; max-width:460px; transform:translateY(16px) scale(.98);
  transition:transform .28s cubic-bezier(.2,.8,.2,1);
}
.ps-pop-ov.ps-open .ps-pop{ transform:translateY(0) scale(1); }
.ps-pop .ps-lead-card{ box-shadow:0 30px 80px -20px rgba(11,33,90,.6); }
.ps-pop-close{
  position:absolute; top:-12px; right:-12px; width:38px; height:38px; border-radius:50%;
  background:#fff; border:1px solid var(--ps-line); color:var(--ps-slate); cursor:pointer;
  font-size:1.1rem; line-height:1; display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 16px -6px rgba(11,33,90,.4); z-index:2;
}
.ps-pop-close:hover{ color:var(--ps-navy); }
body.ps-pop-lock{ overflow:hidden; }

@media (max-width:480px){
  .ps-lead-card{ padding:1.9rem 1.35rem; }
  .ps-lead-title{ font-size:1.65rem; }
  .ps-pop-close{ top:6px; right:6px; }
}
