/* =====================================================================
   SocialPost.ai — LinkedIn Post Scheduler module
   Every rule is scoped under .sp-lpsched and prefixed .sp-lps-.
   Brand colours arrive as CSS custom properties set on the root div
   from the module's colour fields.

   TYPOGRAPHY: families, sizes and weights for h1-h6 and p are inherited
   from the theme stylesheet. Two areas set their own type on purpose,
   because they are pixel recreations of existing UI rather than page
   copy: the in-app Calendar mock (.sp-lps-app) and the pricing cards
   (.sp-lps-plan), which are matched to socialpost.ai/pricing.
   ===================================================================== */

.sp-lpsched{
  --sp-lps-blue:#2f56d5;
  --sp-lps-grad:#7184e7;
  --sp-lps-ink:#101828;
  --sp-lps-green:#1fc15a;
  --sp-lps-rail:#5061db;
  --sp-lps-teal:#5cb8a4;

  --sp-lps-muted:#475467;
  --sp-lps-line:#e4e7ec;
  --sp-lps-soft:#e6ebfb;
  --sp-lps-tint:#f7f8fc;
  --sp-lps-radius:18px;
  --sp-lps-btn-radius:12px;
  --sp-lps-shadow-sm:0 1px 2px rgba(16,24,40,.05);
  --sp-lps-shadow-md:0 8px 24px rgba(16,24,40,.07);
  --sp-lps-shadow-lg:0 24px 60px rgba(47,86,213,.15);
  --sp-lps-max:1160px;
}
.sp-lpsched *,
.sp-lpsched *::before,
.sp-lpsched *::after{box-sizing:border-box}
.sp-lpsched img,
.sp-lpsched svg{max-width:100%}

/* ---------------------------------------------------------- structure */
.sp-lps-wrap{max-width:var(--sp-lps-max);margin:0 auto;padding:0 24px}
.sp-lps-sec{padding:88px 0;position:relative}
.sp-lps-sec--tint{background:var(--sp-lps-tint)}
.sp-lps-head{text-align:center;max-width:760px;margin:0 auto}
.sp-lps-centre{text-align:center;margin:40px 0 0}
.sp-lps-small{font-size:.875rem;margin-top:14px}

.sp-lps-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.75rem;font-weight:600;line-height:1.2;
  text-transform:uppercase;letter-spacing:.1em;
  color:var(--sp-lps-blue);background:var(--sp-lps-soft);
  padding:7px 14px;border-radius:999px;margin:0 0 18px;
}
.sp-lps-title{margin:0 0 .5em}
.sp-lps-title--display{font-size:clamp(1.8rem,3.1vw,2.75rem);line-height:1.14;letter-spacing:-.02em}
.sp-lps-answer{color:var(--sp-lps-muted);font-size:1.0625rem}
.sp-lps-answer > *:last-child{margin-bottom:0}
.sp-lps-head .sp-lps-answer{max-width:62ch;margin-left:auto;margin-right:auto}
.sp-lps-micro{font-size:.875rem;color:var(--sp-lps-muted);margin:0}

/* ------------------------------------------------------------ buttons */
.sp-lps-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-size:1rem;font-weight:600;line-height:1.2;text-decoration:none;
  padding:14px 26px;border-radius:var(--sp-lps-btn-radius);
  border:1px solid transparent;cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
}
.sp-lps-btn:hover{text-decoration:none;transform:translateY(-2px)}
.sp-lps-btn--full{width:100%;margin-top:auto}
.sp-lps-btn--primary{
  background:linear-gradient(135deg,var(--sp-lps-grad),var(--sp-lps-blue));
  color:#fff;box-shadow:0 6px 18px rgba(47,86,213,.28);
}
.sp-lps-btn--primary:hover{color:#fff;box-shadow:0 12px 28px rgba(47,86,213,.36)}
.sp-lps-btn--ghost{background:#fff;color:var(--sp-lps-ink);border-color:var(--sp-lps-line);box-shadow:var(--sp-lps-shadow-sm)}
.sp-lps-btn--ghost:hover{border-color:var(--sp-lps-blue);color:var(--sp-lps-blue)}
.sp-lps-btn--onblue{background:#fff;color:var(--sp-lps-blue);box-shadow:0 8px 22px rgba(0,0,0,.18)}
.sp-lps-btn--onblue:hover{color:var(--sp-lps-blue)}
.sp-lps-btn--outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.sp-lps-btn--outline:hover{background:rgba(255,255,255,.12);color:#fff;border-color:#fff}
.sp-lps-arw{width:16px;height:16px;flex:none}
.sp-lps-ctas{display:flex;flex-wrap:wrap;gap:14px;margin:26px 0 14px}
.sp-lps-ctas--centre{justify-content:center;margin-bottom:0}

/* --------------------------------------------------------------- hero */
.sp-lps-hero{
  position:relative;overflow:hidden;padding:64px 0 84px;
  background:
    radial-gradient(1100px 460px at 82% -10%,rgba(113,132,231,.20),transparent 62%),
    radial-gradient(760px 420px at 4% 8%,rgba(230,235,251,.85),transparent 60%),
    #fff;
}
.sp-lps-hero__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}
.sp-lps-hero__grid--solo{grid-template-columns:1fr;max-width:760px;margin:0 auto;text-align:center}
.sp-lps-hero__grid--solo .sp-lps-ctas{justify-content:center}
.sp-lps-hero__grid--solo .sp-lps-pills{justify-content:center}
.sp-lps-title--hero{max-width:16ch}
.sp-lps-hero__grid--solo .sp-lps-title--hero{max-width:none;margin-left:auto;margin-right:auto}
.sp-lps-hero .sp-lps-answer{max-width:56ch}
.sp-lps-blob{position:absolute;border-radius:50%;filter:blur(46px);pointer-events:none}
.sp-lps-blob--a{width:320px;height:320px;background:var(--sp-lps-grad);opacity:.5;top:-90px;right:8%}
.sp-lps-blob--b{width:240px;height:240px;background:var(--sp-lps-green);opacity:.16;bottom:-110px;left:42%}

.sp-lps-pills{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 0;padding:0;list-style:none}
.sp-lps-pill{
  display:inline-flex;align-items:center;gap:7px;margin:0;
  background:#fff;border:1px solid var(--sp-lps-line);border-radius:999px;
  padding:8px 14px;font-size:.8125rem;font-weight:500;line-height:1.3;
  color:var(--sp-lps-ink);box-shadow:var(--sp-lps-shadow-sm);
}
.sp-lps-pill__i{width:14px;height:14px;flex:none}
.sp-lps-pill__i--check{color:var(--sp-lps-green)}
.sp-lps-pill__i--star{color:#f5b544}

/* =====================================================================
   IN-APP CALENDAR MOCK — sets its own type on purpose (UI recreation)
   ===================================================================== */
.sp-lps-app{
  display:grid;grid-template-columns:66px 1fr;
  background:#fff;border:1px solid var(--sp-lps-line);border-radius:16px;
  box-shadow:var(--sp-lps-shadow-lg);overflow:hidden;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
.sp-lps-rail{
  background:linear-gradient(180deg,var(--sp-lps-rail),color-mix(in srgb,var(--sp-lps-rail) 82%,#000));
  padding:14px 0;display:flex;flex-direction:column;align-items:center;gap:4px;
}
@supports not (background:color-mix(in srgb,red 50%,blue)){
  .sp-lps-rail{background:var(--sp-lps-rail)}
}
.sp-lps-logo{
  width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.16);
  display:grid;place-items:center;margin-bottom:12px;color:var(--sp-lps-rail);
}
.sp-lps-logo svg{width:19px;height:19px}
.sp-lps-nav{width:46px;height:38px;border-radius:9px;display:grid;place-items:center;color:rgba(255,255,255,.72)}
.sp-lps-nav svg{width:17px;height:17px}
.sp-lps-nav--on{background:rgba(255,255,255,.19);color:#fff}

.sp-lps-panel{min-width:0;background:#fff}
.sp-lps-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--sp-lps-line)}
.sp-lps-tab{text-align:center;padding:11px 0;font-size:.75rem;font-weight:600;color:#98a2b3}
.sp-lps-tab--on{color:var(--sp-lps-blue);box-shadow:inset 0 -2px 0 var(--sp-lps-blue)}
.sp-lps-toolbar{display:flex;align-items:center;gap:8px;padding:12px 14px}
.sp-lps-arrow{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;color:var(--sp-lps-muted);font-size:.7rem;flex:none}
.sp-lps-seg{display:flex;background:#f2f4f7;border-radius:8px;padding:2px;flex:none}
.sp-lps-seg span{font-size:.625rem;font-weight:600;color:var(--sp-lps-muted);padding:4px 10px;border-radius:6px;white-space:nowrap}
.sp-lps-seg span.is-on{background:var(--sp-lps-teal);color:#fff}
.sp-lps-month{flex:1;text-align:center;font-size:.9375rem;font-weight:600;color:var(--sp-lps-ink)}
.sp-lps-generate{
  flex:none;background:var(--sp-lps-rail);color:#fff;border-radius:999px;
  font-size:.625rem;font-weight:600;padding:7px 12px;white-space:nowrap;
}
.sp-lps-dow{display:grid;grid-template-columns:repeat(7,1fr);background:#f0f1f5;border-top:1px solid var(--sp-lps-line);border-bottom:1px solid var(--sp-lps-line)}
.sp-lps-dow span{font-size:.5625rem;font-weight:600;color:var(--sp-lps-muted);text-align:center;padding:6px 0;border-right:1px solid #e6e8ee}
.sp-lps-dow span:last-child{border-right:0}
.sp-lps-week{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--sp-lps-line)}
.sp-lps-week:last-child{border-bottom:0}
.sp-lps-cell{border-right:1px solid #edeef2;padding:14px 3px 3px;min-height:92px;position:relative;min-width:0}
.sp-lps-cell:last-child{border-right:0}
.sp-lps-cell--dim{background:#fcfcfd}
.sp-lps-date{position:absolute;top:2px;right:5px;font-size:.5rem;font-weight:600;color:#98a2b3}
.sp-lps-ev{
  background:#eef8f1;border-left:3px solid #3fbf6f;border-radius:3px;
  padding:4px 4px 11px;margin-bottom:3px;position:relative;min-width:0;
  display:flex;gap:3px;align-items:flex-start;
}
.sp-lps-ic{width:10px;height:10px;border-radius:2px;flex:none;margin-top:1px;display:block}
.sp-lps-ic--li{background:#0a66c2}
.sp-lps-ic--fb{background:#1877f2}
.sp-lps-ic--ig{background:linear-gradient(135deg,#f9ce34,#ee2a7b 55%,#6228d7)}
.sp-lps-ic--x{background:#0f1419}
.sp-lps-ic--th{background:#000}
.sp-lps-ev b{
  font-size:.5rem;font-weight:500;line-height:1.25;color:var(--sp-lps-ink);min-width:0;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.sp-lps-ev u{position:absolute;bottom:1px;left:5px;font-size:.4375rem;color:#667085;text-decoration:none}
.sp-lps-ev--drag{background:#fff;border:1px dashed var(--sp-lps-grad);border-left:3px solid var(--sp-lps-grad)}
.sp-lps-ev--drag b{color:var(--sp-lps-blue)}

.sp-lps-fcbar{
  display:flex;align-items:center;gap:9px;margin:12px 0 0;padding:10px 13px;
  border-radius:12px;background:#f0fdf5;border:1px solid #c8f2d9;
  font-size:.75rem;font-weight:600;line-height:1.4;color:#0f7a3d;
}
.sp-lps-pulse{width:8px;height:8px;border-radius:50%;background:var(--sp-lps-green);flex:none}

/* ------------------------------------------------------------- grids */
.sp-lps-grid{display:grid;gap:22px;margin-top:44px}
.sp-lps-grid--3{grid-template-columns:repeat(3,1fr)}

.sp-lps-card{
  background:#fff;border:1px solid var(--sp-lps-line);border-radius:var(--sp-lps-radius);
  padding:28px;box-shadow:var(--sp-lps-shadow-sm);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.sp-lps-card:hover{transform:translateY(-5px);box-shadow:var(--sp-lps-shadow-md);border-color:#cfd8f5}
.sp-lps-ico{
  width:46px;height:46px;border-radius:13px;display:grid;place-items:center;margin-bottom:16px;
  background:linear-gradient(135deg,var(--sp-lps-soft),#f2f5ff);color:var(--sp-lps-blue);
}
.sp-lps-ico svg{width:24px;height:24px}
.sp-lps-card__q{margin:0 0 .4em}
.sp-lps-card__a{color:var(--sp-lps-muted);font-size:.9375rem}
.sp-lps-card__a > *:last-child{margin-bottom:0}
.sp-lps-src{display:block;margin-top:14px;font-size:.75rem;line-height:1.4;color:#98a2b3}

.sp-lps-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:22px}
.sp-lps-stat{background:#fff;border:1px solid var(--sp-lps-line);border-radius:var(--sp-lps-radius);padding:28px;box-shadow:var(--sp-lps-shadow-sm)}
.sp-lps-num{display:block;font-size:2.25rem;font-weight:700;line-height:1.1;letter-spacing:-.03em;color:var(--sp-lps-blue)}
.sp-lps-stat span{display:block;margin-top:6px;font-size:.9375rem;line-height:1.5;color:var(--sp-lps-muted)}

.sp-lps-feat{
  position:relative;background:#fff;border:1px solid var(--sp-lps-line);
  border-radius:var(--sp-lps-radius);padding:26px;box-shadow:var(--sp-lps-shadow-sm);
  overflow:hidden;transition:transform .22s ease,box-shadow .22s ease;
}
.sp-lps-feat:hover{transform:translateY(-5px);box-shadow:var(--sp-lps-shadow-md)}
.sp-lps-feat::after{
  content:'';position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,var(--sp-lps-grad),var(--sp-lps-blue));
  transform:scaleX(0);transform-origin:left;transition:transform .3s ease;
}
.sp-lps-feat:hover::after{transform:scaleX(1)}
.sp-lps-tag{
  display:inline-block;font-size:.6875rem;font-weight:600;line-height:1.2;
  letter-spacing:.06em;text-transform:uppercase;color:var(--sp-lps-blue);
  background:var(--sp-lps-soft);border-radius:6px;padding:3px 8px;margin-bottom:12px;
}
.sp-lps-feat__t{margin:0 0 .3em}
.sp-lps-feat__b{color:var(--sp-lps-muted);font-size:.9375rem}
.sp-lps-feat__b > *:last-child{margin-bottom:0}

/* ------------------------------------------------------- how it works */
.sp-lps-steps{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative;
  margin:48px 0 0;padding:0;list-style:none;
}
.sp-lps-steps--line::before{
  content:'';position:absolute;top:26px;left:8%;right:8%;height:2px;z-index:0;
  background:linear-gradient(90deg,var(--sp-lps-soft),var(--sp-lps-grad),var(--sp-lps-soft));
}
.sp-lps-step{position:relative;z-index:1;text-align:center;margin:0}
.sp-lps-numcircle{
  width:54px;height:54px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;
  font-size:1.25rem;font-weight:700;color:#fff;
  background:linear-gradient(135deg,var(--sp-lps-grad),var(--sp-lps-blue));
  box-shadow:0 8px 20px rgba(47,86,213,.3);
}
.sp-lps-step__t{margin:0 0 .35em}
.sp-lps-step__b{color:var(--sp-lps-muted);font-size:.9375rem}
.sp-lps-step__b > *:last-child{margin-bottom:0}

/* =====================================================================
   PRICING — sets its own type on purpose (matched to /pricing)
   ===================================================================== */
.sp-lps-toggle{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:26px 0 0}
.sp-lps-tlbl{font-size:.9375rem;font-weight:600;color:#98a2b3;transition:color .2s ease}
.sp-lps-tlbl.is-on{color:var(--sp-lps-ink)}
.sp-lps-switch{
  width:52px;height:28px;border-radius:999px;background:#d0d5dd;border:0;padding:3px;
  cursor:pointer;position:relative;flex:none;transition:background .25s ease;
}
.sp-lps-switch[aria-checked="true"]{background:var(--sp-lps-blue)}
.sp-lps-knob{
  display:block;width:22px;height:22px;border-radius:50%;background:#fff;
  box-shadow:0 1px 3px rgba(16,24,40,.2);transform:translateX(0);transition:transform .25s ease;
}
.sp-lps-switch[aria-checked="true"] .sp-lps-knob{transform:translateX(24px)}
.sp-lps-save{font-size:.6875rem;font-weight:600;color:#0f7a3d;background:#e7faf0;border-radius:999px;padding:4px 10px;letter-spacing:.03em}

.sp-lps-plans{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch;margin-top:34px;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
.sp-lps-plan{
  position:relative;background:#fff;border:1px solid var(--sp-lps-line);
  border-radius:var(--sp-lps-radius);padding:30px;display:flex;flex-direction:column;
  box-shadow:var(--sp-lps-shadow-sm);transition:transform .22s ease,box-shadow .22s ease;
}
.sp-lps-plan:hover{transform:translateY(-5px);box-shadow:var(--sp-lps-shadow-md)}
.sp-lps-plan--hero{border-color:var(--sp-lps-blue);box-shadow:var(--sp-lps-shadow-lg)}
.sp-lps-ribbon{
  position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,var(--sp-lps-grad),var(--sp-lps-blue));color:#fff;
  font-size:.6875rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  padding:5px 14px;border-radius:999px;white-space:nowrap;
}
.sp-lps-plan__n{margin:0 0 .2em}
.sp-lps-amt{font-size:2.5rem;font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--sp-lps-ink);margin:10px 0 4px}
.sp-lps-amt small{font-size:.9375rem;font-weight:500;color:var(--sp-lps-muted);letter-spacing:0;margin-left:4px}
.sp-lps-amt__note{font-size:.8125rem;font-weight:600;color:#0f7a3d;margin:0;min-height:1.35em}
.sp-lps-plan__d{color:var(--sp-lps-muted);font-size:.9375rem;margin-top:8px}
.sp-lps-plan__d > *:last-child{margin-bottom:0}
.sp-lps-plan__f{list-style:none;padding:0;margin:18px 0 24px;font-size:.9375rem}
.sp-lps-plan__f li{display:flex;gap:9px;align-items:flex-start;margin-bottom:9px;color:var(--sp-lps-muted);line-height:1.5}
.sp-lps-plan__f svg{width:15px;height:15px;flex:none;margin-top:4px;color:var(--sp-lps-green)}
.sp-lps-fine{font-size:.75rem;color:#98a2b3;text-align:center;margin:10px 0 0}
.sp-lps-guarantee{
  display:flex;align-items:center;justify-content:center;gap:9px;
  margin:28px auto 0;font-size:.9375rem;font-weight:500;color:var(--sp-lps-ink);
}
.sp-lps-guarantee svg{width:18px;height:18px;flex:none;color:var(--sp-lps-green)}

/* ---------------------------------------------------------------- FAQ */
.sp-lps-faq{max-width:840px;margin:40px auto 0}
.sp-lps-q{
  border:1px solid var(--sp-lps-line);border-radius:14px;background:#fff;
  margin-bottom:12px;box-shadow:var(--sp-lps-shadow-sm);overflow:hidden;
  transition:border-color .2s ease;
}
.sp-lps-q[open]{border-color:#cfd8f5}
.sp-lps-q > summary{
  cursor:pointer;list-style:none;padding:19px 54px 19px 22px;position:relative;
}
.sp-lps-q > summary::-webkit-details-marker{display:none}
.sp-lps-q > summary::after{
  content:'';position:absolute;right:22px;top:50%;width:10px;height:10px;
  border-right:2px solid var(--sp-lps-blue);border-bottom:2px solid var(--sp-lps-blue);
  transform:translateY(-70%) rotate(45deg);transition:transform .25s ease;
}
.sp-lps-q[open] > summary::after{transform:translateY(-30%) rotate(-135deg)}
.sp-lps-q__t{display:inline;margin:0;font-size:1.0625rem;line-height:1.4}
.sp-lps-q__a{padding:0 22px 20px;color:var(--sp-lps-muted);font-size:.9375rem}
.sp-lps-q__a > *:last-child{margin-bottom:0}

/* ------------------------------------------------------ related links */
.sp-lps-linkcard{background:#fff;border:1px solid var(--sp-lps-line);border-radius:var(--sp-lps-radius);padding:26px;box-shadow:var(--sp-lps-shadow-sm)}
.sp-lps-linkcard__t{margin:0 0 .6em}
.sp-lps-linkcard ul{list-style:none;padding:0;margin:0;font-size:.9375rem}
.sp-lps-linkcard li{margin-bottom:9px}
.sp-lps-linkcard a{font-weight:500;color:var(--sp-lps-blue)}

/* --------------------------------------------------------- final CTA */
.sp-lps-final{
  border-radius:24px;padding:64px 40px;text-align:center;color:#fff;
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--sp-lps-grad),var(--sp-lps-blue) 55%,#22409f);
}
.sp-lps-final::before{
  content:'';position:absolute;width:520px;height:520px;border-radius:50%;
  background:rgba(255,255,255,.09);top:-220px;right:-120px;
}
.sp-lps-final__t{color:#fff;position:relative;max-width:24ch;margin:0 auto .5em}
.sp-lps-final__s{color:#fff;opacity:.9;max-width:56ch;margin:0 auto;position:relative}
.sp-lps-final__s > *:last-child{margin-bottom:0}
.sp-lps-final .sp-lps-ctas{position:relative;margin-top:26px}
.sp-lps-sources{font-size:.8125rem;line-height:1.6;color:#98a2b3;text-align:center;margin:44px auto 0;max-width:72ch}

/* ------------------------------------------------------ scroll reveal
   Only active once module.js adds .sp-lps-anim to the root, so with JS
   off, an old browser, or prefers-reduced-motion, nothing is hidden. */
.sp-lpsched.sp-lps-anim .sp-lps-rv{
  opacity:0;transform:translateY(24px);
  transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1);
}
.sp-lpsched.sp-lps-anim .sp-lps-rv--s{transform:translateY(24px) scale(.985)}
.sp-lpsched.sp-lps-anim .sp-lps-rv.sp-lps-in{opacity:1;transform:none}
.sp-lpsched.sp-lps-anim .sp-lps-rv[data-d="1"]{transition-delay:.05s}
.sp-lpsched.sp-lps-anim .sp-lps-rv[data-d="2"]{transition-delay:.11s}
.sp-lpsched.sp-lps-anim .sp-lps-rv[data-d="3"]{transition-delay:.17s}
.sp-lpsched.sp-lps-anim .sp-lps-rv[data-d="4"]{transition-delay:.23s}
.sp-lpsched.sp-lps-anim .sp-lps-rv[data-d="5"]{transition-delay:.29s}
.sp-lpsched.sp-lps-anim .sp-lps-rv[data-d="6"]{transition-delay:.35s}

/* ambient motion, only with .sp-lps-anim */
.sp-lpsched.sp-lps-anim .sp-lps-blob--a{animation:spLpsDrift 16s ease-in-out infinite}
.sp-lpsched.sp-lps-anim .sp-lps-blob--b{animation:spLpsDrift 21s ease-in-out infinite reverse}
.sp-lpsched.sp-lps-anim .sp-lps-final::before{animation:spLpsDrift 18s ease-in-out infinite}
.sp-lpsched.sp-lps-anim .sp-lps-generate{animation:spLpsGlow 3.6s ease-in-out infinite}
.sp-lpsched.sp-lps-anim .sp-lps-pulse{animation:spLpsPulse 2s ease-in-out infinite}
.sp-lpsched.sp-lps-anim .sp-lps-app .sp-lps-ev{opacity:0;transform:translateY(6px)}
.sp-lpsched.sp-lps-anim .sp-lps-in .sp-lps-ev,
.sp-lpsched.sp-lps-anim .sp-lps-rv--s.sp-lps-in .sp-lps-ev{animation:spLpsPop .5s ease forwards}
.sp-lpsched.sp-lps-anim .sp-lps-in .sp-lps-ev--drag{animation:spLpsPop .5s ease forwards,spLpsNudge 3.6s ease-in-out 1.8s infinite}

@keyframes spLpsDrift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-26px,30px,0) scale(1.07)}}
@keyframes spLpsGlow{0%,100%{box-shadow:0 0 0 0 rgba(80,97,219,.4)}50%{box-shadow:0 0 0 8px rgba(80,97,219,0)}}
@keyframes spLpsPulse{0%,100%{box-shadow:0 0 0 0 rgba(31,193,90,.5)}50%{box-shadow:0 0 0 7px rgba(31,193,90,0)}}
@keyframes spLpsPop{to{opacity:1;transform:translateY(0)}}
@keyframes spLpsNudge{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-1.4deg)}}

/* --------------------------------------------------------- responsive */
@media (max-width:1080px){
  .sp-lps-hero__grid{grid-template-columns:1fr;gap:40px}
  .sp-lps-title--hero{max-width:none}
}
@media (max-width:980px){
  .sp-lps-grid--3,.sp-lps-steps,.sp-lps-plans{grid-template-columns:1fr 1fr}
  .sp-lps-steps--line::before{display:none}
  .sp-lps-stats{grid-template-columns:1fr}
}
@media (max-width:760px){
  /* calendar mock drops to a four-day strip so cards stay legible */
  .sp-lps-app{grid-template-columns:56px 1fr}
  .sp-lps-dow,.sp-lps-week{grid-template-columns:repeat(4,1fr)}
  .sp-lps-dow span:nth-child(n+5),.sp-lps-cell:nth-child(n+5){display:none}
}
@media (max-width:640px){
  .sp-lps-sec{padding:60px 0}
  .sp-lps-hero{padding:48px 0 64px}
  .sp-lps-grid--3,.sp-lps-steps,.sp-lps-plans{grid-template-columns:1fr}
  .sp-lps-final{padding:48px 22px}
  .sp-lps-ctas .sp-lps-btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .sp-lpsched *{animation:none!important;transition:none!important}
  .sp-lpsched.sp-lps-anim .sp-lps-rv{opacity:1;transform:none}
  .sp-lpsched.sp-lps-anim .sp-lps-app .sp-lps-ev{opacity:1;transform:none}
}
