/* ==========================================================================
   PhonesCRM — Enterprise SaaS landing design system (namespace: lp-)
   Blue/indigo · Manrope · glass panels. Self-contained.
   Does NOT share classes with landing-auth.css.
   ========================================================================== */

:root {
    --lp-bg: #ffffff;
    --lp-bg-soft: #f6f8fc;
    --lp-bg-tint: #eef3fe;
    --lp-surface: #ffffff;
    --lp-ink: #0b1220;
    --lp-ink-2: #3c4a63;
    --lp-ink-3: #677693;
    --lp-line: #e5eaf3;
    --lp-line-soft: #eef1f8;

    --lp-primary: #2f5bea;
    --lp-primary-2: #5a83ff;
    --lp-primary-deep: #1d3fb0;
    --lp-accent: #0fb5a6;
    --lp-violet: #7c5cff;

    --lp-night: #0a1124;
    --lp-night-2: #111c3a;
    --lp-night-line: rgba(255, 255, 255, 0.10);

    --lp-grad-brand: linear-gradient(135deg, #2f5bea 0%, #5a83ff 100%);
    --lp-grad-brand-soft: linear-gradient(135deg, rgba(47, 91, 234, 0.12), rgba(90, 131, 255, 0.06));
    --lp-grad-accent: linear-gradient(135deg, #0fb5a6, #2fd6c2);
    --lp-grad-mesh: linear-gradient(120deg, #2f5bea 0%, #6a6cff 45%, #14b8a6 100%);

    --lp-shadow-xs: 0 1px 2px rgba(16, 24, 40, 0.05);
    --lp-shadow-sm: 0 6px 18px rgba(16, 24, 40, 0.06);
    --lp-shadow-md: 0 18px 40px rgba(16, 24, 40, 0.10);
    --lp-shadow-lg: 0 40px 80px -24px rgba(16, 24, 40, 0.28);
    --lp-shadow-brand: 0 16px 34px -10px rgba(47, 91, 234, 0.45);

    --lp-r-xl: 26px;
    --lp-r-lg: 20px;
    --lp-r-md: 14px;
    --lp-r-sm: 10px;

    --lp-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; padding: 0; }

body.lp-body {
    font-family: "Manrope", "Segoe UI", system-ui, -apple-system, sans-serif;
    color: var(--lp-ink);
    background: var(--lp-bg);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    line-height: 1.6;
    overflow-x: hidden;
}

a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
::selection { background: rgba(47, 91, 234, 0.18); }

/* ---------- layout primitives ---------- */
.lp-container { width: min(1200px, calc(100% - 3rem)); margin-inline: auto; }
.lp-section { padding: 6rem 0; position: relative; }
.lp-section-sm { padding: 4rem 0; }

.lp-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--lp-primary);
}
.lp-eyebrow::before { content: ""; width: 22px; height: 2px; border-radius: 2px; background: var(--lp-grad-brand); }
.lp-eyebrow.is-light { color: #9fc0ff; }
.lp-eyebrow.is-light::before { background: #9fc0ff; }
.lp-eyebrow.is-center { justify-content: center; }

.lp-h2 {
    margin: 1.1rem 0 1rem;
    font-size: clamp(1.9rem, 3.4vw, 3rem);
    line-height: 1.1;
    letter-spacing: -0.025em;
    font-weight: 800;
}
.lp-sub { margin: 0; color: var(--lp-ink-2); font-size: clamp(1rem, 1.4vw, 1.12rem); line-height: 1.7; }
.lp-section-head { max-width: 640px; }
.lp-section-head.is-center { max-width: 720px; margin-inline: auto; text-align: center; }

.lp-gradient-text {
    background: linear-gradient(120deg, #2f5bea 10%, #7c5cff 60%, #0fb5a6 110%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* ---------- buttons ---------- */
.lp-btn {
    --btn-bg: var(--lp-primary);
    position: relative;
    border: 1px solid transparent;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    padding: 0.82rem 1.35rem;
    font-size: 0.96rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    transition: transform 0.2s var(--lp-ease), box-shadow 0.2s var(--lp-ease),
        background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.lp-btn i, .lp-btn span { position: relative; z-index: 1; }
.lp-btn:hover { transform: translateY(-2px); }
.lp-btn:active { transform: translateY(0); }
.lp-btn:focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(47, 91, 234, 0.25); }
.lp-btn:disabled, .lp-btn[disabled] { opacity: 0.5; cursor: not-allowed; transform: none; }

.lp-btn-primary { color: #fff; background: var(--lp-grad-brand); box-shadow: var(--lp-shadow-brand); }
.lp-btn-primary::after {
    content: "";
    position: absolute; top: 0; left: -120%;
    width: 60%; height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,0.35), transparent);
    transform: skewX(-18deg);
    transition: left 0.6s var(--lp-ease);
    z-index: 0;
}
.lp-btn-primary:hover { color: #fff; box-shadow: 0 22px 42px -10px rgba(47, 91, 234, 0.55); }
.lp-btn-primary:hover::after { left: 130%; }

.lp-btn-ghost { color: var(--lp-ink); background: #fff; border-color: var(--lp-line); box-shadow: var(--lp-shadow-xs); }
.lp-btn-ghost:hover { border-color: #c5d2ee; color: var(--lp-primary-deep); }

.lp-btn-light { color: var(--lp-ink); background: #fff; }
.lp-btn-light:hover { color: var(--lp-primary-deep); }

.lp-btn-outline-light { color: #fff; background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.28); backdrop-filter: blur(6px); }
.lp-btn-outline-light:hover { color: #fff; background: rgba(255, 255, 255, 0.14); }

.lp-btn-lg { padding: 1rem 1.7rem; font-size: 1.02rem; border-radius: 14px; }
.lp-btn-block { width: 100%; }
.lp-btn-sm { padding: 0.6rem 1rem; font-size: 0.88rem; }

/* ---------- nav ---------- */
.lp-nav {
    position: sticky; top: 0; z-index: 1000;
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: saturate(180%) blur(14px);
    border-bottom: 1px solid transparent;
    transition: background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.lp-nav.is-scrolled { background: rgba(255, 255, 255, 0.92); border-bottom-color: var(--lp-line); box-shadow: var(--lp-shadow-sm); }
.lp-nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 74px; }

.lp-brand { display: inline-flex; align-items: center; gap: 0.7rem; font-size: 1.22rem; font-weight: 800; letter-spacing: -0.02em; color: var(--lp-ink); }
.lp-brand-badge { display: inline-block; width: 40px; height: 40px; border-radius: 12px; overflow: hidden; flex: 0 0 auto; background: url("/favicon.svg") center / cover no-repeat, var(--lp-grad-brand); box-shadow: var(--lp-shadow-brand); }
.lp-brand-badge i { display: none; }
.lp-brand strong { background: linear-gradient(120deg, #2f5bea, #7c5cff); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }

.lp-nav-links { display: flex; align-items: center; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.lp-nav-link { display: inline-block; padding: 0.5rem 0.85rem; border-radius: 10px; color: var(--lp-ink-2); font-weight: 600; font-size: 0.94rem; transition: color 0.2s ease, background 0.2s ease; }
.lp-nav-link:hover { color: var(--lp-primary-deep); background: var(--lp-bg-tint); }
.lp-nav-actions { display: flex; align-items: center; gap: 0.6rem; }
.lp-nav-signin { font-weight: 700; font-size: 0.94rem; color: var(--lp-ink); padding: 0.5rem 0.6rem; }
.lp-nav-signin:hover { color: var(--lp-primary); }

.lp-burger { display: none; width: 44px; height: 44px; border: 1px solid var(--lp-line); border-radius: 12px; background: #fff; color: var(--lp-ink); font-size: 1.3rem; cursor: pointer; align-items: center; justify-content: center; }
.lp-mobile-menu { display: none; flex-direction: column; gap: 0.25rem; padding: 0.75rem 0 1.1rem; border-top: 1px solid var(--lp-line); }
.lp-mobile-menu.is-open { display: flex; }
.lp-mobile-menu a { padding: 0.7rem 0.4rem; font-weight: 600; color: var(--lp-ink-2); border-radius: 8px; }
.lp-mobile-menu a:hover { color: var(--lp-primary); background: var(--lp-bg-soft); }
.lp-mobile-cta { margin-top: 0.6rem; display: grid; gap: 0.5rem; }

/* ---------- hero ---------- */
.lp-hero { position: relative; padding: clamp(3rem, 6vw, 5.5rem) 0 clamp(3.5rem, 6vw, 6rem); overflow: hidden; }
.lp-hero-bg {
    position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background:
        radial-gradient(60% 55% at 12% 0%, rgba(47, 91, 234, 0.18) 0%, transparent 60%),
        radial-gradient(50% 50% at 92% 8%, rgba(124, 92, 255, 0.16) 0%, transparent 60%),
        radial-gradient(45% 45% at 78% 92%, rgba(15, 181, 166, 0.14) 0%, transparent 60%);
    animation: lp-drift 18s ease-in-out infinite alternate;
}
@keyframes lp-drift {
    0% { transform: translate3d(0,0,0) scale(1); }
    50% { transform: translate3d(-1.5%, 1.5%, 0) scale(1.06); }
    100% { transform: translate3d(1.5%, -1%, 0) scale(1.03); }
}
.lp-hero-grid-lines {
    position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image:
        linear-gradient(to right, rgba(13, 28, 64, 0.045) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(13, 28, 64, 0.045) 1px, transparent 1px);
    background-size: 56px 56px;
    -webkit-mask-image: radial-gradient(circle at 50% 30%, #000 0%, transparent 78%);
    mask-image: radial-gradient(circle at 50% 30%, #000 0%, transparent 78%);
}
.lp-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.04fr 0.96fr; align-items: center; gap: clamp(2rem, 4vw, 4rem); }

.lp-hero-pill {
    display: inline-flex; align-items: center; gap: 0.6rem;
    padding: 0.4rem 0.4rem 0.4rem 0.45rem;
    border: 1px solid var(--lp-line);
    background: rgba(255, 255, 255, 0.8);
    border-radius: 999px;
    font-size: 0.82rem; font-weight: 600; color: var(--lp-ink-2);
    box-shadow: var(--lp-shadow-xs);
}
.lp-hero-pill .lp-pill-tag { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.2rem 0.55rem; border-radius: 999px; background: var(--lp-grad-brand); color: #fff; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.02em; }

.lp-hero h1 { margin: 1.35rem 0 1.25rem; font-size: clamp(2.4rem, 4.6vw, 4rem); line-height: 1.04; letter-spacing: -0.035em; font-weight: 800; }
.lp-hero-lead { margin: 0; max-width: 540px; font-size: clamp(1.04rem, 1.5vw, 1.2rem); line-height: 1.7; color: var(--lp-ink-2); }
.lp-hero-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 2rem; }
.lp-hero-trust { margin-top: 1.7rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem; color: var(--lp-ink-3); font-size: 0.86rem; font-weight: 600; }
.lp-hero-trust span { display: inline-flex; align-items: center; gap: 0.4rem; }
.lp-hero-trust i { color: var(--lp-accent); font-size: 1rem; }

/* hero product mockup */
.lp-hero-visual { position: relative; }
.lp-mock {
    position: relative; z-index: 2;
    background: var(--lp-surface);
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-r-xl);
    box-shadow: var(--lp-shadow-lg);
    overflow: hidden;
    transform: perspective(1600px) rotateY(-7deg) rotateX(3deg);
    transition: transform 0.5s var(--lp-ease);
}
.lp-hero-visual:hover .lp-mock { transform: perspective(1600px) rotateY(-3deg) rotateX(1.5deg) translateY(-4px); }
.lp-mock-bar { display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1rem; border-bottom: 1px solid var(--lp-line-soft); background: var(--lp-bg-soft); }
.lp-mock-dots { display: inline-flex; gap: 0.35rem; }
.lp-mock-dots i { width: 11px; height: 11px; border-radius: 50%; background: #d6dded; }
.lp-mock-dots i:nth-child(1) { background: #ff6058; }
.lp-mock-dots i:nth-child(2) { background: #ffbd2e; }
.lp-mock-dots i:nth-child(3) { background: #28c840; }
.lp-mock-url { margin-left: 0.5rem; flex: 1; height: 22px; border-radius: 6px; background: #fff; border: 1px solid var(--lp-line); display: inline-flex; align-items: center; gap: 0.4rem; padding: 0 0.6rem; font-size: 0.72rem; color: var(--lp-ink-3); }
.lp-mock-url i { color: var(--lp-accent); font-size: 0.78rem; }
.lp-mock-body { display: grid; grid-template-columns: 64px 1fr; min-height: 360px; }
.lp-mock-side { border-right: 1px solid var(--lp-line-soft); padding: 1rem 0; display: flex; flex-direction: column; align-items: center; gap: 0.85rem; background: linear-gradient(180deg, #fbfcff, #f5f8ff); }
.lp-mock-side i { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; color: var(--lp-ink-3); background: #eef2fb; font-size: 0.95rem; }
.lp-mock-side i.is-active { color: #fff; background: var(--lp-grad-brand); box-shadow: var(--lp-shadow-brand); }
.lp-mock-main { padding: 1.15rem 1.25rem 1.35rem; }
.lp-mock-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.lp-mock-title { font-weight: 800; font-size: 1rem; letter-spacing: -0.01em; }
.lp-mock-chip { font-size: 0.68rem; font-weight: 800; color: var(--lp-accent); background: rgba(15, 181, 166, 0.12); border-radius: 999px; padding: 0.25rem 0.6rem; }
.lp-mock-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6rem; margin-bottom: 1rem; }
.lp-mock-kpi { border: 1px solid var(--lp-line-soft); border-radius: 12px; padding: 0.6rem 0.65rem; background: #fff; }
.lp-mock-kpi small { display: block; font-size: 0.64rem; color: var(--lp-ink-3); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.lp-mock-kpi b { font-size: 1.05rem; letter-spacing: -0.02em; }
.lp-mock-kpi .lp-up { font-size: 0.66rem; font-weight: 800; color: var(--lp-accent); }
.lp-mock-chart { border: 1px solid var(--lp-line-soft); border-radius: 14px; padding: 0.9rem 1rem 0.7rem; background: #fff; }
.lp-mock-chart-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.7rem; font-size: 0.74rem; color: var(--lp-ink-3); font-weight: 700; }
.lp-mock-bars { display: flex; align-items: flex-end; gap: 0.5rem; height: 92px; }
.lp-mock-bars span { flex: 1; border-radius: 6px 6px 3px 3px; background: linear-gradient(180deg, #c6d6ff, #eef3ff); position: relative; animation: lp-grow 1.1s var(--lp-ease) both; transform-origin: bottom; }
.lp-mock-bars span.is-tall { background: var(--lp-grad-brand); box-shadow: 0 6px 14px -4px rgba(47, 91, 234, 0.5); }
@keyframes lp-grow { from { transform: scaleY(0.15); opacity: 0.4; } to { transform: scaleY(1); opacity: 1; } }

.lp-float { position: absolute; z-index: 3; background: #fff; border: 1px solid var(--lp-line); border-radius: 14px; box-shadow: var(--lp-shadow-md); padding: 0.7rem 0.85rem; display: flex; align-items: center; gap: 0.6rem; animation: lp-bob 5s ease-in-out infinite; }
.lp-float i { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; color: #fff; font-size: 1rem; }
.lp-float small { display: block; font-size: 0.66rem; color: var(--lp-ink-3); font-weight: 700; }
.lp-float b { font-size: 0.92rem; letter-spacing: -0.01em; }
.lp-float-1 { top: -5%; left: -6%; }
.lp-float-1 i { background: var(--lp-grad-accent); }
.lp-float-2 { bottom: 9%; right: -6%; animation-delay: 1.4s; }
.lp-float-2 i { background: linear-gradient(135deg, #7c5cff, #a78bfa); }
@keyframes lp-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* ---------- logo marquee (enhancement) ---------- */
.lp-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.lp-marquee-track { display: inline-flex; align-items: center; gap: 2.6rem; white-space: nowrap; animation: lp-scroll 28s linear infinite; will-change: transform; }
.lp-marquee:hover .lp-marquee-track { animation-play-state: paused; }
.lp-marquee-item { display: inline-flex; align-items: center; gap: 0.55rem; font-weight: 800; font-size: 1.02rem; color: #8493ad; letter-spacing: -0.01em; }
.lp-marquee-item i { font-size: 1.15rem; color: #aab6cd; }
@keyframes lp-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- trust strip ---------- */
.lp-trust-strip { border-top: 1px solid var(--lp-line); border-bottom: 1px solid var(--lp-line); background: var(--lp-bg-soft); padding: 2.2rem 0; }
.lp-trust-label { text-align: center; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lp-ink-3); margin-bottom: 1.4rem; }
.lp-trust-row { display: flex; flex-wrap: wrap; align-items: stretch; justify-content: center; gap: 0.8rem; }
.lp-trust-item { display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.7rem 1.1rem; border: 1px solid var(--lp-line); background: #fff; border-radius: 12px; font-weight: 700; font-size: 0.9rem; color: var(--lp-ink-2); box-shadow: var(--lp-shadow-xs); transition: transform 0.2s var(--lp-ease), box-shadow 0.2s ease; }
.lp-trust-item:hover { transform: translateY(-2px); box-shadow: var(--lp-shadow-sm); }
.lp-trust-item i { color: var(--lp-primary); font-size: 1.1rem; }

/* ---------- stats band ---------- */
.lp-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; padding: 2.4rem; border-radius: var(--lp-r-xl); background: var(--lp-grad-brand); color: #fff; box-shadow: var(--lp-shadow-brand); position: relative; overflow: hidden; }
.lp-stats::after { content: ""; position: absolute; inset: 0; background: radial-gradient(40% 80% at 90% 0%, rgba(255, 255, 255, 0.18), transparent 60%), radial-gradient(40% 90% at 0% 100%, rgba(124, 92, 255, 0.35), transparent 60%); pointer-events: none; }
.lp-stat { position: relative; z-index: 1; text-align: center; }
.lp-stat b { display: block; font-size: clamp(1.9rem, 3vw, 2.7rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
.lp-stat span { display: block; margin-top: 0.5rem; font-size: 0.88rem; color: rgba(255, 255, 255, 0.85); font-weight: 600; }

/* ---------- features ---------- */
.lp-feature-grid { margin-top: 3rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.lp-feature { position: relative; background: var(--lp-surface); border: 1px solid var(--lp-line); border-radius: var(--lp-r-lg); padding: 1.6rem 1.5rem; box-shadow: var(--lp-shadow-xs); transition: transform 0.25s var(--lp-ease), box-shadow 0.25s var(--lp-ease), border-color 0.25s ease; overflow: hidden; }
.lp-feature::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: var(--lp-grad-brand); opacity: 0; transition: opacity 0.25s ease; }
.lp-feature:hover { transform: translateY(-6px); box-shadow: var(--lp-shadow-md); border-color: #cfdcfb; }
.lp-feature:hover::before { opacity: 1; }
.lp-feature-icon { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; font-size: 1.4rem; color: var(--lp-primary); background: var(--lp-grad-brand-soft); border: 1px solid rgba(47, 91, 234, 0.16); margin-bottom: 1.1rem; }
.lp-feature h3 { margin: 0 0 0.5rem; font-size: 1.12rem; font-weight: 800; letter-spacing: -0.01em; }
.lp-feature p { margin: 0; color: var(--lp-ink-2); font-size: 0.94rem; line-height: 1.65; }

/* ---------- split / workflow ---------- */
.lp-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 4vw, 4rem); align-items: center; }
.lp-check-list { margin: 1.8rem 0 0; padding: 0; list-style: none; display: grid; gap: 1rem; }
.lp-check-list li { display: flex; gap: 0.85rem; align-items: flex-start; }
.lp-check-list .lp-check-ic { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; background: rgba(15, 181, 166, 0.14); color: var(--lp-accent); font-size: 0.85rem; margin-top: 0.1rem; }
.lp-check-list b { display: block; font-size: 1rem; margin-bottom: 0.15rem; }
.lp-check-list p { margin: 0; color: var(--lp-ink-2); font-size: 0.92rem; line-height: 1.6; }

.lp-panel-dark { position: relative; background: linear-gradient(160deg, var(--lp-night) 0%, var(--lp-night-2) 100%); border-radius: var(--lp-r-xl); padding: 1.8rem; color: #fff; box-shadow: var(--lp-shadow-lg); overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.06); }
.lp-panel-dark::before { content: ""; position: absolute; inset: 0; background: radial-gradient(40% 50% at 100% 0%, rgba(47, 91, 234, 0.4), transparent 60%), radial-gradient(40% 50% at 0% 100%, rgba(124, 92, 255, 0.28), transparent 60%); pointer-events: none; }
.lp-panel-dark-inner { position: relative; z-index: 1; }
.lp-flow-row { display: flex; align-items: center; gap: 0.9rem; padding: 0.95rem 1rem; border-radius: 14px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); margin-bottom: 0.7rem; }
.lp-flow-row:last-child { margin-bottom: 0; }
.lp-flow-ic { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; font-size: 1.15rem; color: #fff; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.14); }
.lp-flow-ic.is-brand { background: var(--lp-grad-brand); border-color: transparent; }
.lp-flow-ic.is-accent { background: var(--lp-grad-accent); border-color: transparent; }
.lp-flow-ic.is-violet { background: linear-gradient(135deg, #7c5cff, #a78bfa); border-color: transparent; }
.lp-flow-row b { display: block; font-size: 0.96rem; }
.lp-flow-row small { color: rgba(255, 255, 255, 0.62); font-size: 0.8rem; }
.lp-flow-row .lp-flow-meta { margin-left: auto; font-size: 0.78rem; font-weight: 800; color: #7fe9dd; white-space: nowrap; }

/* ---------- testimonials ---------- */
.lp-quote-grid { margin-top: 3rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.lp-quote { background: var(--lp-surface); border: 1px solid var(--lp-line); border-radius: var(--lp-r-lg); padding: 1.6rem 1.5rem; box-shadow: var(--lp-shadow-xs); display: flex; flex-direction: column; transition: transform 0.25s var(--lp-ease), box-shadow 0.25s ease; }
.lp-quote:hover { transform: translateY(-4px); box-shadow: var(--lp-shadow-md); }
.lp-quote-stars { color: #f6b73c; font-size: 0.85rem; display: inline-flex; gap: 0.15rem; margin-bottom: 0.9rem; }
.lp-quote p { margin: 0 0 1.3rem; color: var(--lp-ink); font-size: 1rem; line-height: 1.7; font-weight: 500; }
.lp-quote-by { margin-top: auto; display: flex; align-items: center; gap: 0.75rem; }
.lp-quote-avatar { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; color: #fff; font-size: 0.95rem; background: var(--lp-grad-brand); }
.lp-quote-by b { display: block; font-size: 0.92rem; }
.lp-quote-by span { font-size: 0.82rem; color: var(--lp-ink-3); }

/* ---------- pricing ---------- */
.lp-pricing-head { display: flex; flex-direction: column; align-items: center; gap: 1.4rem; text-align: center; }
.lp-billing-toggle { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.3rem; border: 1px solid var(--lp-line); border-radius: 999px; background: #fff; box-shadow: var(--lp-shadow-xs); }
.lp-cycle-btn { border: 0; background: transparent; border-radius: 999px; color: var(--lp-ink-3); font-weight: 700; font-size: 0.88rem; padding: 0.55rem 1.1rem; cursor: pointer; transition: color 0.2s ease, background 0.2s ease; display: inline-flex; align-items: center; gap: 0.4rem; }
.lp-cycle-btn.is-active { color: #fff; background: var(--lp-grad-brand); box-shadow: var(--lp-shadow-brand); }
.lp-cycle-save { font-size: 0.68rem; font-weight: 800; padding: 0.12rem 0.4rem; border-radius: 999px; background: rgba(15, 181, 166, 0.16); color: var(--lp-accent); }
.lp-cycle-btn.is-active .lp-cycle-save { background: rgba(255, 255, 255, 0.22); color: #fff; }

.lp-pricing-grid { margin-top: 3rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; align-items: start; }
.lp-plan { display: flex; flex-direction: column; gap: 1.05rem; background: var(--lp-surface); border: 1px solid var(--lp-line); border-radius: var(--lp-r-xl); padding: 1.8rem 1.6rem; box-shadow: var(--lp-shadow-sm); position: relative; transition: transform 0.25s var(--lp-ease), box-shadow 0.25s var(--lp-ease), border-color 0.25s ease; }
.lp-plan:hover { transform: translateY(-5px); box-shadow: var(--lp-shadow-md); }
.lp-plan.is-featured { border-color: transparent; background: linear-gradient(var(--lp-surface), var(--lp-surface)) padding-box, var(--lp-grad-brand) border-box; border: 1.5px solid transparent; box-shadow: var(--lp-shadow-md); }
.lp-plan-badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--lp-grad-brand); color: #fff; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.32rem 0.85rem; border-radius: 999px; box-shadow: var(--lp-shadow-brand); white-space: nowrap; }
.lp-plan-name { display: flex; align-items: center; gap: 0.55rem; font-size: 1.18rem; font-weight: 800; letter-spacing: -0.01em; }
.lp-plan-name i { color: var(--lp-primary); }
.lp-plan-price { font-size: 2.5rem; font-weight: 800; letter-spacing: -0.03em; color: var(--lp-ink); line-height: 1; }
.lp-plan-price small { font-size: 0.9rem; font-weight: 700; color: var(--lp-ink-3); }
.lp-plan-old { min-height: 1.2rem; font-size: 0.84rem; font-weight: 700; color: #b06a13; }
.lp-plan-old s { color: var(--lp-ink-3); }
.lp-plan-save-chip { display: inline-block; margin-top: 0.35rem; font-size: 0.72rem; font-weight: 800; padding: 0.12rem 0.5rem; border-radius: 999px; background: rgba(15, 181, 166, 0.16); color: var(--lp-accent); }
.lp-plan-save-chip:empty { display: none; }
.lp-slider-wrap { border-top: 1px dashed var(--lp-line); padding-top: 1.05rem; }
.lp-slider { width: 100%; accent-color: var(--lp-primary); cursor: pointer; }
.lp-slider-note { display: flex; justify-content: space-between; align-items: baseline; margin-top: 0.4rem; font-size: 0.82rem; color: var(--lp-ink-3); }
.lp-slider-note b { color: var(--lp-ink); font-size: 0.95rem; }
.lp-plan-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.6rem; }
.lp-plan-list li { display: flex; align-items: flex-start; gap: 0.55rem; color: var(--lp-ink-2); font-size: 0.9rem; }
.lp-plan-list li i { color: var(--lp-accent); margin-top: 0.15rem; font-size: 0.95rem; }
.lp-plan-actions { margin-top: auto; display: grid; gap: 0.55rem; }
.lp-plan-trial { text-align: center; font-size: 0.82rem; font-weight: 700; color: var(--lp-ink-3); background: none; border: 0; cursor: pointer; padding: 0.35rem; border-radius: 8px; }
.lp-plan-trial:hover { color: var(--lp-primary); background: var(--lp-bg-tint); }

/* ---------- CTA ---------- */
.lp-cta { position: relative; overflow: hidden; background: linear-gradient(160deg, var(--lp-night) 0%, #16244c 100%); border-radius: var(--lp-r-xl); padding: clamp(2.6rem, 5vw, 4.5rem); text-align: center; color: #fff; box-shadow: var(--lp-shadow-lg); }
.lp-cta::before { content: ""; position: absolute; inset: 0; background: radial-gradient(40% 60% at 15% 10%, rgba(47, 91, 234, 0.5), transparent 60%), radial-gradient(40% 60% at 85% 90%, rgba(124, 92, 255, 0.4), transparent 60%); pointer-events: none; }
.lp-cta-inner { position: relative; z-index: 1; max-width: 680px; margin-inline: auto; }
.lp-cta h2 { margin: 0.6rem 0 1rem; font-size: clamp(1.9rem, 3.6vw, 3rem); line-height: 1.08; letter-spacing: -0.025em; font-weight: 800; }
.lp-cta p { margin: 0 auto 2rem; max-width: 520px; color: rgba(255, 255, 255, 0.82); font-size: 1.06rem; line-height: 1.7; }
.lp-cta-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; justify-content: center; }

/* ---------- footer ---------- */
.lp-footer { background: var(--lp-night); color: rgba(255, 255, 255, 0.72); padding: 4rem 0 2rem; }
.lp-footer-top { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 2.4rem; padding-bottom: 2.6rem; border-bottom: 1px solid var(--lp-night-line); }
.lp-footer .lp-brand { color: #fff; }
.lp-footer-about { margin: 1.1rem 0 1.3rem; max-width: 320px; font-size: 0.92rem; line-height: 1.7; color: rgba(255, 255, 255, 0.62); }
.lp-footer-social { display: flex; gap: 0.55rem; }
.lp-footer-social a { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; color: #fff; background: rgba(255, 255, 255, 0.07); border: 1px solid var(--lp-night-line); transition: background 0.2s ease, transform 0.2s ease; }
.lp-footer-social a:hover { background: var(--lp-primary); transform: translateY(-2px); }
.lp-footer-col h5 { margin: 0 0 1rem; font-size: 0.82rem; letter-spacing: 0.1em; text-transform: uppercase; color: #fff; font-weight: 800; }
.lp-footer-col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.65rem; }
.lp-footer-col a { color: rgba(255, 255, 255, 0.66); font-size: 0.92rem; transition: color 0.2s ease; }
.lp-footer-col a:hover { color: #fff; }
.lp-footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding-top: 1.8rem; font-size: 0.85rem; color: rgba(255, 255, 255, 0.55); }
.lp-pay { display: inline-flex; align-items: center; gap: 0.5rem; }
.lp-pay span { font-size: 0.8rem; }
.lp-pay svg { height: 24px; width: auto; }

/* ---------- floating actions ---------- */
.lp-fab { position: fixed; right: 22px; width: 54px; height: 54px; border-radius: 50%; border: 0; display: grid; place-items: center; color: #fff; font-size: 1.35rem; z-index: 1200; cursor: pointer; box-shadow: 0 12px 28px rgba(16, 24, 40, 0.3); transition: transform 0.2s ease; }
.lp-fab:hover { transform: translateY(-3px) scale(1.04); color: #fff; }
.lp-fab-contact { bottom: 90px; background: var(--lp-grad-brand); }
.lp-fab-whatsapp { bottom: 24px; background: linear-gradient(135deg, #1faf5a, #25d366); }

.lp-overlay { position: fixed; inset: 0; background: rgba(8, 14, 30, 0.5); backdrop-filter: blur(2px); z-index: 1350; opacity: 0; visibility: hidden; transition: opacity 0.25s ease, visibility 0.25s ease; }
.lp-overlay.is-open { opacity: 1; visibility: visible; }

.lp-contact-panel { position: fixed; top: 0; right: -440px; width: min(400px, 92vw); height: 100%; background: #fff; border-left: 1px solid var(--lp-line); box-shadow: -18px 0 50px rgba(16, 24, 40, 0.18); z-index: 1400; transition: right 0.3s var(--lp-ease); padding: 1.8rem; display: flex; flex-direction: column; overflow-y: auto; }
.lp-contact-panel.is-open { right: 0; }
.lp-contact-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.3rem; }
.lp-contact-head h4 { margin: 0 0 0.3rem; font-size: 1.25rem; font-weight: 800; }
.lp-contact-head p { margin: 0; font-size: 0.88rem; color: var(--lp-ink-3); }
.lp-contact-close { border: 1px solid var(--lp-line); width: 38px; height: 38px; border-radius: 11px; background: var(--lp-bg-soft); color: var(--lp-ink-2); font-size: 1rem; cursor: pointer; flex: 0 0 auto; }
.lp-contact-close:hover { background: var(--lp-bg-tint); color: var(--lp-primary); }
.lp-contact-form { display: grid; gap: 0.8rem; }
.lp-contact-note { margin: 0.4rem 0 0; font-size: 0.8rem; color: var(--lp-ink-3); text-align: center; }

/* ---------- form controls ---------- */
.lp-field { margin-bottom: 1rem; }
.lp-field > label { display: block; font-size: 0.82rem; font-weight: 700; color: var(--lp-ink-2); margin-bottom: 0.35rem; }
.lp-input { width: 100%; border: 1px solid var(--lp-line); border-radius: 11px; min-height: 46px; padding: 0.65rem 0.85rem; font-size: 0.93rem; font-family: inherit; color: var(--lp-ink); background: #fff; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.lp-input:focus { outline: none; border-color: var(--lp-primary-2); box-shadow: 0 0 0 4px rgba(47, 91, 234, 0.14); }
.lp-input::placeholder { color: var(--lp-ink-3); }
textarea.lp-input { resize: vertical; min-height: 96px; }
select.lp-input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23677693' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.8rem center; padding-right: 2rem; }

/* ==========================================================================
   AUTH PAGES
   ========================================================================== */
.lp-auth-shell { min-height: 100vh; display: flex; flex-direction: column; background: radial-gradient(55% 50% at 10% 0%, rgba(47, 91, 234, 0.10) 0%, transparent 60%), radial-gradient(50% 45% at 95% 5%, rgba(124, 92, 255, 0.10) 0%, transparent 60%), var(--lp-bg); }
.lp-auth-topbar { position: sticky; top: 0; z-index: 100; background: rgba(255, 255, 255, 0.82); backdrop-filter: saturate(180%) blur(14px); border-bottom: 1px solid var(--lp-line); }
.lp-auth-topbar-inner { height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.lp-auth-main { flex: 1; display: flex; align-items: center; justify-content: center; padding: 2.5rem 0 3.5rem; }
.lp-auth-grid { display: grid; grid-template-columns: 0.92fr 1.08fr; gap: 1.4rem; width: min(1080px, calc(100% - 3rem)); margin-inline: auto; align-items: stretch; }

.lp-auth-aside { position: relative; overflow: hidden; border-radius: var(--lp-r-xl); padding: 2rem 1.9rem; color: #fff; background: linear-gradient(160deg, #0b46a9 0%, #0f5bd8 55%, #1ea6b2 120%); box-shadow: var(--lp-shadow-lg); display: flex; flex-direction: column; gap: 1.1rem; }
.lp-auth-aside::before { content: ""; position: absolute; inset: 0; background: radial-gradient(45% 40% at 100% 0%, rgba(255, 255, 255, 0.22), transparent 60%), radial-gradient(45% 45% at 0% 100%, rgba(124, 92, 255, 0.4), transparent 60%); pointer-events: none; }
.lp-auth-aside > * { position: relative; z-index: 1; }
.lp-auth-aside h2 { margin: 0; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.15; letter-spacing: -0.02em; font-weight: 800; }
.lp-auth-aside .lp-auth-aside-lead { margin: 0; color: rgba(255, 255, 255, 0.82); font-size: 0.96rem; line-height: 1.6; }
.lp-badge-soft { align-self: flex-start; display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.32rem 0.8rem; border-radius: 999px; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: #fff; background: rgba(255, 255, 255, 0.16); border: 1px solid rgba(255, 255, 255, 0.26); }

.lp-summary { border: 1px solid rgba(255, 255, 255, 0.18); border-radius: var(--lp-r-md); background: rgba(255, 255, 255, 0.08); padding: 0.4rem 0.95rem; }
.lp-summary-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.62rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.12); font-size: 0.9rem; }
.lp-summary-row:last-child { border-bottom: 0; }
.lp-summary-row span { color: rgba(255, 255, 255, 0.72); }
.lp-summary-row strong { font-weight: 700; text-align: right; }
.lp-summary-row.is-total strong { font-size: 1.1rem; color: #c8ffe9; }

.lp-promo-label { display: block; font-size: 0.8rem; font-weight: 700; color: rgba(255, 255, 255, 0.88); margin-bottom: 0.4rem; }
.lp-promo { display: flex; gap: 0.5rem; }
.lp-input-dark { flex: 1; width: 100%; border: 1px solid rgba(255, 255, 255, 0.24); border-radius: 11px; min-height: 44px; padding: 0.6rem 0.8rem; font-size: 0.9rem; font-family: inherit; color: #fff; background: rgba(255, 255, 255, 0.1); }
.lp-input-dark::placeholder { color: rgba(255, 255, 255, 0.6); }
.lp-input-dark:focus { outline: none; border-color: rgba(255, 255, 255, 0.6); }
.lp-input-dark:disabled { opacity: 0.55; }
.lp-btn-on-dark { color: #fff; background: rgba(255, 255, 255, 0.16); border: 1px solid rgba(255, 255, 255, 0.28); }
.lp-btn-on-dark:hover { color: #fff; background: rgba(255, 255, 255, 0.26); }
.lp-note-light { margin-top: 0.5rem; font-size: 0.78rem; color: rgba(255, 255, 255, 0.78); }
.lp-aside-points { margin: auto 0 0; padding: 0; list-style: none; display: grid; gap: 0.55rem; }
.lp-aside-points li { display: flex; gap: 0.55rem; align-items: flex-start; font-size: 0.88rem; color: rgba(255, 255, 255, 0.92); }
.lp-aside-points i { color: #c8ffe9; margin-top: 0.12rem; }

.lp-auth-card { background: rgba(255, 255, 255, 0.92); border: 1px solid var(--lp-line); border-radius: var(--lp-r-xl); box-shadow: var(--lp-shadow-md); padding: clamp(1.6rem, 2.5vw, 2.5rem); backdrop-filter: blur(8px); }
.lp-auth-h1 { margin: 0; font-size: 1.7rem; font-weight: 800; letter-spacing: -0.02em; }
.lp-auth-desc { margin: 0.4rem 0 1.4rem; color: var(--lp-ink-2); font-size: 0.95rem; }
.lp-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
.lp-input-group { position: relative; }
.lp-input-group .lp-input { padding-right: 2.8rem; }
.lp-pass-toggle { position: absolute; top: 50%; right: 0.45rem; transform: translateY(-50%); width: 34px; height: 34px; border: 0; border-radius: 9px; background: var(--lp-bg-tint); color: var(--lp-primary-deep); display: inline-grid; place-items: center; cursor: pointer; transition: background 0.2s ease; }
.lp-pass-toggle:hover { background: #dce8ff; }
.lp-phone { display: grid; grid-template-columns: 150px 1fr; gap: 0.6rem; }
.lp-phone-preview { margin-top: 0.45rem; font-size: 0.8rem; color: var(--lp-ink-3); font-weight: 600; }
.lp-phone-preview span { display: inline-block; margin-left: 0.3rem; padding: 0.15rem 0.55rem; border-radius: 999px; background: var(--lp-bg-tint); color: var(--lp-primary-deep); font-weight: 800; }
.lp-recaptcha-wrap { margin: 0.4rem 0 1.1rem; }
.lp-auth-foot-note { margin: 1.1rem 0 0; text-align: center; font-size: 0.9rem; color: var(--lp-ink-2); }
.lp-auth-foot-note a { font-weight: 800; color: var(--lp-primary); }
.lp-auth-foot-note a:hover { color: var(--lp-primary-deep); }

.lp-auth-footer { border-top: 1px solid var(--lp-line); background: var(--lp-bg-soft); padding: 1.2rem 0; }
.lp-auth-footer-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.8rem; font-size: 0.84rem; color: var(--lp-ink-3); }
.lp-auth-footer-inner a { color: var(--lp-ink-2); font-weight: 700; }
.lp-auth-footer-inner a:hover { color: var(--lp-primary); }
.lp-auth-footer-links { display: inline-flex; gap: 1rem; }

/* alerts + validation */
.lp-alert { border-radius: 12px; border: 1px solid transparent; font-size: 0.88rem; padding: 0.7rem 0.85rem; margin-bottom: 1rem; }
.lp-alert-danger { background: #fff4f5; border-color: #f5c2c7; color: #842029; }
.lp-alert-danger ul { margin: 0; padding-left: 1.1rem; }
.lp-alert-warning { background: #fff9eb; border-color: #ffe08a; color: #6b4e00; }
.lp-alert-success { background: #eefbf4; border-color: #b6e2cd; color: #0f5132; }
.lp-valid, .field-validation-error, .validation-summary-errors, .text-danger { color: #b4232a; font-size: 0.79rem; font-weight: 600; }
.lp-valid { display: block; margin-top: 0.3rem; }
.lp-input.input-validation-error { border-color: #e1989e; background: #fffafa; }

/* OTP + success */
.lp-otp-wrap { width: min(440px, calc(100% - 2.5rem)); margin-inline: auto; text-align: center; }
.lp-otp-icon { width: 66px; height: 66px; border-radius: 18px; display: grid; place-items: center; margin: 0 auto 1.3rem; font-size: 1.7rem; color: #fff; background: var(--lp-grad-brand); box-shadow: var(--lp-shadow-brand); }
.lp-otp-code { text-align: center; letter-spacing: 0.5em; font-size: 1.4rem; font-weight: 800; padding-right: 0.85rem; }
.lp-otp-timer { margin: 1rem 0 0; font-size: 0.9rem; font-weight: 800; color: var(--lp-primary-deep); }
.lp-otp-timer.is-expired { color: #b4232a; }
.lp-otp-demo { margin: 0.8rem 0 0; font-size: 0.82rem; color: var(--lp-ink-3); }

.lp-success-wrap { width: min(540px, calc(100% - 2.5rem)); margin-inline: auto; text-align: center; }
.lp-success-icon { width: 84px; height: 84px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 1.5rem; font-size: 2.4rem; color: #fff; background: var(--lp-grad-accent); box-shadow: 0 16px 34px -10px rgba(15, 181, 166, 0.5); animation: lp-pop 0.5s var(--lp-ease) both; }
@keyframes lp-pop { 0% { transform: scale(0.6); opacity: 0; } 60% { transform: scale(1.07); } 100% { transform: scale(1); opacity: 1; } }
.lp-success-wrap h1 { margin: 0 0 0.6rem; font-size: 1.9rem; font-weight: 800; letter-spacing: -0.02em; }
.lp-success-wrap p { margin: 0 auto 1.8rem; max-width: 420px; color: var(--lp-ink-2); font-size: 1rem; line-height: 1.65; }

/* ---------- themed bootstrap modal (login forgot-password) ---------- */
.lp-modal.modal-content { border: 1px solid var(--lp-line); border-radius: var(--lp-r-lg); background: #fff; box-shadow: var(--lp-shadow-lg); }
.lp-modal .modal-header { border-bottom-color: var(--lp-line); padding: 1.2rem 1.4rem; }
.lp-modal .modal-title { font-weight: 800; font-size: 1.2rem; color: var(--lp-ink); }
.lp-modal .modal-body { padding: 1.4rem; }
.lp-form-meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: -0.1rem 0 1.1rem; }
.lp-check { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.86rem; font-weight: 600; color: var(--lp-ink-2); cursor: pointer; }
.lp-check input { accent-color: var(--lp-primary); width: 16px; height: 16px; }
.lp-textlink { border: 0; background: transparent; cursor: pointer; padding: 0; font-size: 0.86rem; font-weight: 700; color: var(--lp-primary); }
.lp-textlink:hover { color: var(--lp-primary-deep); }
.lp-textlink:disabled { color: var(--lp-ink-3); cursor: not-allowed; }
.lp-mini-note { font-size: 0.82rem; color: var(--lp-ink-3); }

/* ==========================================================================
   LEGAL / POLICY document template (lp-doc-)
   ========================================================================== */
.lp-doc-hero { border-bottom: 1px solid var(--lp-line); padding: 3.5rem 0 2.8rem; background: radial-gradient(120% 90% at 100% 0%, rgba(47, 91, 234, 0.08), transparent 55%), var(--lp-bg-soft); }
.lp-doc-hero .lp-container { display: flex; flex-direction: column; gap: 0.7rem; }
.lp-doc-title { margin: 0.5rem 0 0; font-size: clamp(2.2rem, 5vw, 3.4rem); line-height: 1.05; letter-spacing: -0.025em; font-weight: 800; }
.lp-doc-meta { font-size: 0.86rem; color: var(--lp-ink-3); font-weight: 600; }
.lp-doc-main { padding: 3.5rem 0 4.5rem; }
.lp-doc-layout { max-width: 860px; margin-inline: auto; }
.lp-doc-body { font-size: 1.02rem; line-height: 1.75; color: var(--lp-ink-2); }
.lp-doc-body h2, .lp-doc-body h3 { color: var(--lp-ink); letter-spacing: -0.01em; margin: 2.2rem 0 0.8rem; font-weight: 800; }
.lp-doc-body h2 { font-size: 1.55rem; }
.lp-doc-body h3 { font-size: 1.25rem; }
.lp-doc-body p { margin: 0 0 1.1rem; }
.lp-doc-body a { color: var(--lp-primary); font-weight: 700; }
.lp-doc-body ul, .lp-doc-body ol { margin: 0 0 1.2rem; padding-left: 1.3rem; }
.lp-doc-body li { margin-bottom: 0.5rem; }
.lp-doc-body strong { color: var(--lp-ink); }

.lp-doc-accordion .accordion-item { border: 1px solid var(--lp-line); margin-bottom: 0.7rem; background: #fff; border-radius: var(--lp-r-md); overflow: hidden; box-shadow: var(--lp-shadow-xs); }
.lp-doc-accordion .accordion-button { font-size: 1.08rem; font-weight: 800; color: var(--lp-ink); background: #fff; padding: 1.1rem 1.3rem; border-radius: 0; box-shadow: none; }
.lp-doc-accordion .accordion-button:not(.collapsed) { color: var(--lp-primary-deep); background: var(--lp-bg-tint); box-shadow: inset 0 -1px 0 var(--lp-line); }
.lp-doc-accordion .accordion-button:focus { box-shadow: 0 0 0 4px rgba(47, 91, 234, 0.14); border-color: var(--lp-line); }
.lp-doc-accordion .accordion-button::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%232f5bea' stroke-width='2.5' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); }
.lp-doc-accordion .accordion-body { padding: 0.4rem 1.3rem 1.4rem; color: var(--lp-ink-2); line-height: 1.7; }
.lp-doc-accordion .accordion-body a { color: var(--lp-primary); font-weight: 700; }

/* ---------- reveal / motion ---------- */
.lp-reveal { opacity: 0; transform: translateY(22px); transition: opacity 0.6s var(--lp-ease), transform 0.6s var(--lp-ease); will-change: opacity, transform; }
.lp-reveal.is-visible { opacity: 1; transform: translateY(0); }
.lp-reveal-delay-1 { transition-delay: 0.08s; }
.lp-reveal-delay-2 { transition-delay: 0.16s; }
.lp-reveal-delay-3 { transition-delay: 0.24s; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .lp-reveal { opacity: 1; transform: none; transition: none; }
    .lp-float, .lp-mock-bars span, .lp-hero-bg, .lp-marquee-track, .lp-success-icon { animation: none; }
    .lp-mock { transform: none; }
}

/* ---------- responsive ---------- */
@media (max-width: 992px) {
    .lp-section { padding: 4.5rem 0; }
    .lp-nav-links { display: none; }
    .lp-nav-actions .lp-btn, .lp-nav-signin { display: none; }
    .lp-burger { display: inline-flex; }
    .lp-hero-inner { grid-template-columns: 1fr; }
    .lp-hero-visual { margin-top: 1rem; }
    .lp-mock { transform: none; }
    .lp-float-1 { left: 2%; }
    .lp-float-2 { right: 2%; }
    .lp-split { grid-template-columns: 1fr; }
    .lp-feature-grid, .lp-quote-grid, .lp-pricing-grid { grid-template-columns: repeat(2, 1fr); }
    .lp-stats { grid-template-columns: repeat(2, 1fr); gap: 1.6rem 1rem; }
    .lp-footer-top { grid-template-columns: 1fr 1fr; gap: 2rem; }
    .lp-auth-grid { grid-template-columns: 1fr; }
    .lp-auth-aside { order: 2; }
}
@media (max-width: 640px) {
    .lp-container { width: calc(100% - 2rem); }
    .lp-section { padding: 3.6rem 0; }
    .lp-feature-grid, .lp-quote-grid, .lp-pricing-grid { grid-template-columns: 1fr; }
    .lp-plan.is-featured { order: -1; }
    .lp-hero h1 { font-size: clamp(2.1rem, 9vw, 2.7rem); }
    .lp-hero-actions { flex-direction: column; align-items: stretch; }
    .lp-hero-actions .lp-btn { width: 100%; }
    .lp-stats { grid-template-columns: 1fr 1fr; padding: 1.8rem 1.4rem; }
    .lp-footer-top { grid-template-columns: 1fr; }
    .lp-footer-bottom { flex-direction: column; align-items: flex-start; }
    .lp-float { display: none; }
    .lp-grid-2, .lp-phone { grid-template-columns: 1fr; }
    .lp-cta-actions { flex-direction: column; }
}
