/* ===================================================================
   Koovira — Society Management landing (standalone, modern design system)
   Clean, spacious, professional SaaS aesthetic. Violet primary, honest
   neutrals, soft gradients, refined components. Self-contained (does not
   rely on Metronic).
==================================================================== */
:root{
  --kv:#6d4bf0; --kv-d:#5a3ee0; --kv2:#8b5cf6; --pink:#e0469a;
  --ink:#0b1020; --ink2:#39415a; --muted:#6b7280; --line:#e9ebf1;
  --bg:#ffffff; --soft:#f7f8fc; --soft2:#f1f3f9;
  --shadow-sm:0 2px 8px rgba(16,24,40,.05);
  --shadow:0 12px 30px rgba(16,24,40,.08);
  --shadow-lg:0 34px 70px rgba(16,24,40,.16);
  --r:16px;
}
*{ box-sizing:border-box; }
html{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; scroll-behavior:smooth; }
body.kvl{ margin:0; background:var(--bg); color:var(--ink2);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; font-size:16px; line-height:1.6; }
.kvl a{ text-decoration:none; }
.kvl a:not(.kvl-btn){ color:inherit; }
.kvl h1,.kvl h2,.kvl h3,.kvl h4{ color:var(--ink); letter-spacing:-.02em; margin:0; font-weight:800; }
.kvl-wrap{ max-width:1160px; margin:0 auto; padding:0 22px; }
.kvl-sec{ padding:76px 0; }
.kvl-eyebrow{ display:inline-flex; align-items:center; gap:7px; font-weight:700; font-size:.78rem; letter-spacing:.03em;
  text-transform:uppercase; color:var(--kv); background:#f1edff; border:1px solid #e5ddff; padding:6px 13px; border-radius:999px; }
.kvl-sec-head{ text-align:center; max-width:660px; margin:0 auto 44px; }
.kvl-sec-head h2{ font-size:2.1rem; line-height:1.15; margin:14px 0 10px; }
.kvl-sec-head p{ color:var(--muted); font-size:1.05rem; margin:0; }
.kvl-g{ background:linear-gradient(90deg,var(--kv),var(--pink)); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* buttons */
.kvl-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:700; font-size:.98rem;
  padding:12px 22px; border-radius:12px; border:1px solid transparent; cursor:pointer; transition:.16s ease; white-space:nowrap; }
.kvl-btn-primary{ background:var(--kv); color:#fff; box-shadow:0 10px 22px rgba(109,75,240,.28); }
.kvl-btn-primary:hover{ background:var(--kv-d); transform:translateY(-1px); box-shadow:0 14px 28px rgba(109,75,240,.34); }
.kvl-btn-ghost{ background:#fff; color:var(--ink); border-color:var(--line); }
.kvl-btn-ghost:hover{ border-color:#cfd4e0; }
.kvl-btn-lg{ padding:14px 26px; font-size:1.05rem; }
.kvl-btn-white{ background:#fff; color:var(--kv); }
.kvl-btn-white:hover{ transform:translateY(-1px); }

/* header */
.kvl-head{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.85); backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid var(--line); }
.kvl-head .kvl-wrap{ display:flex; align-items:center; justify-content:space-between; height:66px; gap:16px; }
.kvl-logo img{ height:30px; width:auto; display:block; }
.kvl-logo img.kvl-logo-mark{ display:none; }
@media(max-width:860px){ .kvl-logo img.kvl-logo-full{ display:none; } .kvl-logo img.kvl-logo-mark{ display:block; } }
.kvl-nav{ display:flex; align-items:center; gap:26px; }
.kvl-nav a{ font-weight:600; color:var(--ink2); font-size:.95rem; }
.kvl-nav a:hover{ color:var(--kv); }
.kvl-head-cta{ display:flex; align-items:center; gap:10px; }
@media(max-width:860px){ .kvl-nav{ display:none; } }

/* hero */
.kvl-hero{ position:relative; overflow:hidden; padding:70px 0 40px;
  background:
    radial-gradient(720px 380px at 6% -6%, #efeaff 0%, rgba(239,234,255,0) 58%),
    radial-gradient(760px 380px at 102% -8%, #e6fbf1 0%, rgba(230,251,241,0) 60%),
    linear-gradient(180deg,#fbfbff 0%,#ffffff 70%); }
.kvl-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:52px; align-items:center; }
.kvl-hero h1{ font-size:3.05rem; line-height:1.07; margin:18px 0 16px; }
.kvl-hero .lead{ font-size:1.18rem; color:var(--ink2); max-width:47ch; margin:0 0 18px; }
.kvl-trustline{ display:flex; align-items:center; gap:8px; font-weight:600; color:#334155; margin-bottom:22px; }
.kvl-trustline i{ color:#16a34a; }
.kvl-chips{ display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
.kvl-chip{ display:inline-flex; align-items:center; gap:7px; background:#fff; border:1px solid var(--line);
  border-radius:999px; padding:7px 14px; font-size:.83rem; font-weight:600; color:#3a4256; box-shadow:var(--shadow-sm); }
.kvl-chip i{ color:#16a34a; }

/* lead card */
.kvl-lead-card{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:22px; box-shadow:var(--shadow); max-width:540px; }
.kvl-lead-card .t{ font-weight:800; color:var(--ink); }
.kvl-lead-card .s{ color:var(--muted); font-size:.9rem; margin-bottom:14px; }
.kvl-field{ width:100%; border:1px solid #dfe3ec; border-radius:11px; padding:12px 14px; font-size:.98rem; font-family:inherit; color:var(--ink); background:#fff; }
.kvl-field::placeholder{ color:#9aa2b1; }
.kvl-field:focus{ outline:none; border-color:var(--kv); box-shadow:0 0 0 3px rgba(109,75,240,.14); }
.kvl-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }

/* product mockup (browser frame) */
.kvl-mock{ background:#fff; border:1px solid #e6e8ef; border-radius:18px; overflow:hidden; box-shadow:var(--shadow-lg); }
.kvl-mock-bar{ display:flex; align-items:center; gap:7px; padding:12px 15px; background:#0f1320; }
.kvl-mock-bar .d{ width:11px; height:11px; border-radius:50%; }
.kvl-mock-bar .ttl{ margin-left:8px; color:#c7cede; font-size:.82rem; font-weight:600; }
.kvl-mock-body{ padding:18px; background:var(--soft); }
.kvl-mstats{ display:grid; grid-template-columns:repeat(3,1fr); gap:11px; margin-bottom:13px; }
.kvl-mstats .c{ background:#fff; border:1px solid #eef0f5; border-radius:13px; padding:12px 13px; }
.kvl-mstats .c .n{ font-size:1.35rem; font-weight:800; color:var(--ink); line-height:1; }
.kvl-mstats .c .l{ font-size:.7rem; color:var(--muted); margin-top:5px; }
.kvl-mrow{ display:flex; align-items:center; gap:11px; background:#fff; border:1px solid #eef0f5; border-radius:13px; padding:11px 13px; margin-bottom:9px; }
.kvl-mrow .av{ width:36px; height:36px; border-radius:11px; flex:0 0 auto; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#ede4ff,#dfeaff); color:var(--kv); font-size:1.05rem; }
.kvl-mrow .w{ flex:1 1 auto; min-width:0; }
.kvl-mrow .w b{ font-size:.88rem; color:var(--ink); font-weight:700; }
.kvl-mrow .w .s{ font-size:.73rem; color:var(--muted); }
.kvl-tag{ font-size:.68rem; font-weight:800; padding:4px 10px; border-radius:999px; white-space:nowrap; }
.kvl-tag.ok{ background:#e7f9ef; color:#12905a; } .kvl-tag.wait{ background:#fff3e0; color:#b26a00; }

/* trust bar */
.kvl-trustbar{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--soft); }
.kvl-trustbar .kvl-wrap{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:18px; padding:22px 22px; }
.kvl-trustbar .it{ display:flex; align-items:center; gap:10px; font-weight:700; color:var(--ink); font-size:.98rem; }
.kvl-trustbar .it i{ color:var(--kv); font-size:1.25rem; }
.kvl-trustbar .it span{ color:var(--muted); font-weight:500; font-size:.85rem; display:block; }

/* feature grid */
.kvl-feats{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.kvl-feat{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:24px; transition:.16s ease; }
.kvl-feat:hover{ box-shadow:var(--shadow); transform:translateY(-3px); border-color:#e0dcf5; }
.kvl-feat .ic{ width:48px; height:48px; border-radius:13px; display:flex; align-items:center; justify-content:center;
  font-size:1.4rem; margin-bottom:14px; background:#f1edff; color:var(--kv); }
.kvl-feat h3{ font-size:1.12rem; margin-bottom:7px; }
.kvl-feat p{ color:var(--muted); font-size:.94rem; margin:0; }

/* how it works */
.kvl-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.kvl-step{ text-align:center; padding:8px; }
.kvl-step .n{ width:52px; height:52px; margin:0 auto 14px; border-radius:16px; display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:1.25rem; color:#fff; background:linear-gradient(135deg,var(--kv),var(--kv2)); box-shadow:0 12px 24px rgba(109,75,240,.28); }
.kvl-step h3{ font-size:1.1rem; margin-bottom:6px; }
.kvl-step p{ color:var(--muted); font-size:.94rem; margin:0; }

/* testimonials */
.kvl-tests{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.kvl-test{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:24px; box-shadow:var(--shadow-sm); }
.kvl-test .stars{ color:#f5b301; font-size:.9rem; margin-bottom:10px; letter-spacing:2px; }
.kvl-test .q{ color:var(--ink2); font-size:.96rem; margin-bottom:16px; }
.kvl-test .who{ display:flex; align-items:center; gap:12px; }
.kvl-test .who .av{ width:42px; height:42px; border-radius:50%; background:linear-gradient(135deg,#6d4bf0,#e0469a); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:800; }
.kvl-test .who b{ color:var(--ink); font-size:.92rem; display:block; }
.kvl-test .who small{ color:var(--muted); }

/* final CTA */
.kvl-cta{ background:linear-gradient(120deg,#5a3ee0,#7c4dff 55%,#e0469a); color:#fff; }
.kvl-cta .kvl-wrap{ text-align:center; padding:70px 22px; }
.kvl-cta h2{ color:#fff; font-size:2.2rem; margin-bottom:12px; }
.kvl-cta p{ color:rgba(255,255,255,.9); font-size:1.08rem; margin:0 0 24px; }

/* footer */
.kvl-foot{ background:#0b1020; color:#9aa4bd; padding:44px 0 30px; }
.kvl-foot .kvl-wrap{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px; align-items:center; }
.kvl-foot img{ height:26px; filter:brightness(0) invert(1); opacity:.92; }
.kvl-foot a{ color:#c3cade; font-weight:500; }
.kvl-foot a:hover{ color:#fff; }
.kvl-foot .lnks{ display:flex; flex-wrap:wrap; gap:18px; font-size:.9rem; }
.kvl-foot .cp{ width:100%; border-top:1px solid rgba(255,255,255,.08); padding-top:18px; font-size:.85rem; }

/* auth pages (login / signup) — split brand panel + form */
.kvl-auth{ min-height:100vh; display:grid; grid-template-columns:1fr 1fr; }
.kvl-auth-brand{ background:linear-gradient(150deg,#5a3ee0 0%,#7c4dff 52%,#e0469a 100%); color:#fff;
  padding:56px 52px; display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }
.kvl-auth-brand::after{ content:""; position:absolute; inset:0;
  background:radial-gradient(400px 300px at 90% 8%, rgba(255,255,255,.18), transparent 60%); pointer-events:none; }
.kvl-auth-brand .logo img{ height:30px; filter:brightness(0) invert(1); }
.kvl-auth-brand h2{ color:#fff; font-size:2.1rem; margin:22px 0 12px; line-height:1.14; max-width:16ch; }
.kvl-auth-brand p{ color:rgba(255,255,255,.92); font-size:1.06rem; max-width:40ch; }
.kvl-auth-brand ul{ list-style:none; padding:0; margin:26px 0 0; position:relative; z-index:1; }
.kvl-auth-brand li{ display:flex; gap:11px; align-items:center; margin-bottom:14px; font-weight:500; }
.kvl-auth-brand li i{ width:30px; height:30px; border-radius:9px; background:rgba(255,255,255,.16); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.kvl-auth-form{ display:flex; align-items:center; justify-content:center; padding:40px 24px; background:#fff; }
.kvl-auth-card{ width:100%; max-width:410px; }
.kvl-auth-card .back{ color:var(--muted); font-weight:600; font-size:.88rem; display:inline-flex; align-items:center; gap:6px; margin-bottom:22px; }
.kvl-auth-card .back:hover{ color:var(--kv); }
.kvl-auth-card h1{ font-size:1.75rem; margin-bottom:6px; }
.kvl-auth-card .sub{ color:var(--muted); margin-bottom:24px; }
.kvl-label{ font-weight:600; color:#334155; font-size:.88rem; margin-bottom:6px; display:block; }
.kvl-mb{ margin-bottom:16px; }
.kvl-alert{ background:#fff0f1; color:#c02535; border-radius:11px; padding:11px 14px; font-size:.9rem; margin-bottom:16px; }
.kvl-alert.ok{ background:#e7f9ef; color:#12905a; }
.kvl-btn-block{ width:100%; }
@media(max-width:860px){ .kvl-auth{ grid-template-columns:1fr; } .kvl-auth-brand{ display:none; } }

@media(max-width:900px){
  .kvl-hero-grid,.kvl-feats,.kvl-steps,.kvl-tests{ grid-template-columns:1fr; }
  .kvl-hero h1{ font-size:2.3rem; } .kvl-sec{ padding:56px 0; } .kvl-cta h2{ font-size:1.7rem; }
  .kvl-mock{ margin-top:10px; }
}
@media(max-width:560px){ .kvl-form-grid{ grid-template-columns:1fr; } .kvl-mstats{ grid-template-columns:1fr 1fr; } }

/* ===================================================================
   Marketing sub-pages (features / pricing / about / contact / policies)
   These reuse the Bootstrap grid but must not look like Metronic. Style
   the shared .sm-card / .sm-muted shells + brand the Bootstrap buttons
   and form controls so they match the landing design system.
==================================================================== */
.kvl main.kvl-page{ min-height:52vh; }
.kvl .card.sm-card,.kvl .sm-card{ border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--shadow-sm); background:#fff; margin-bottom:24px; }
.kvl .sm-card .card-body{ padding:38px !important; }
.kvl .sm-muted{ color:var(--ink2); line-height:1.75; }
.kvl .sm-muted p{ margin:0 0 14px; }
.kvl .sm-muted h1,.kvl .sm-muted h2,.kvl .sm-muted h3,.kvl .sm-muted h4{ color:var(--ink); letter-spacing:-.01em; }
.kvl .sm-muted ul,.kvl .sm-muted ol{ padding-left:20px; }
.kvl .sm-muted li{ margin:6px 0; }
.kvl .sm-muted a{ color:var(--kv); font-weight:600; }
.kvl .fw-bold.fs-3{ color:var(--ink); letter-spacing:-.02em; }
/* brand the Bootstrap buttons used on these pages */
.kvl .btn{ border-radius:11px; font-weight:700; padding:11px 20px; }
.kvl .btn-primary{ background:var(--kv); border-color:var(--kv); box-shadow:0 8px 18px rgba(109,75,240,.24); }
.kvl .btn-primary:hover{ background:var(--kv-d); border-color:var(--kv-d); }
.kvl .btn-outline-primary{ color:var(--kv); border-color:#d7ccff; }
.kvl .btn-outline-primary:hover{ background:var(--kv); border-color:var(--kv); color:#fff; }
/* form controls on contact page */
.kvl .form-label{ font-weight:600; color:var(--ink); font-size:.9rem; margin-bottom:6px; }
.kvl .form-control{ border-radius:11px; border:1px solid var(--line); padding:11px 13px; background:var(--soft); }
.kvl .form-control:focus{ border-color:var(--kv); box-shadow:0 0 0 3px rgba(109,75,240,.14); background:#fff; }
.kvl .alert{ border-radius:12px; }
