@charset "UTF-8";
/* ==========================================================================
   KAJABI NINJA — "VELOCITY" DESIGN SYSTEM
   Rides on native Kajabi (Encore) markup. No block markup is replaced.
   Scoping: every section carries a `kn_preset_class` set in Section settings.
   --------------------------------------------------------------------------
   Native anatomy this file targets:
     section.section > .sizer > .section__overlay + .container > .row
       > #block-{id}.block-type--{type}.col-{n} > .block > [block markup]
   ========================================================================== */
/* --------------------------------------------------------------------------
   1. TOKENS
   -------------------------------------------------------------------------- */
:root {
  /* Palette */
  --kn-ink: #161616;
  --kn-ink-soft: #333333;
  --kn-body: #6b7280;
  --kn-lime: #d9fc67;
  --kn-lime-deep: #d4f53c;
  --kn-lime-dim: #b8d835;
  --kn-surface: #ffffff;
  --kn-surface-alt: #f3f4f6;
  --kn-surface-warm: #f9f8f5;
  --kn-hairline: #e3e3e3;
  --kn-danger: #f34b4b;
  --kn-dark: #060505;
  --kn-dark-card: #181818;
  /* Type scale */
  --kn-font: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  --kn-display: 75px;
  --kn-h1: 56px;
  --kn-h2: 48px;
  --kn-h3: 38px;
  --kn-h4: 32px;
  --kn-h5: 24px;
  --kn-h6: 20px;
  --kn-p1: 18px;
  --kn-p2: 20px;
  --kn-p3: 24px;
  --kn-lh-tight: 110%;
  --kn-lh-snug: 120%;
  --kn-lh-loose: 140%;
  --kn-w-head: 500;
  --kn-w-body: 400;
  --kn-w-cta: 600;
  /* Space + shape */
  --kn-gap: 50px;
  --kn-gap-el: 25px;
  --kn-grid-gap: 16px;
  --kn-radius: 8px;
  --kn-radius-card: 16px;
  --kn-max: 1280px;
  --kn-max-narrow: 1080px;
  --kn-max-title: 931px;
  --kn-shadow: 0 1px 2px rgba(0,0,0,.05); }

/* --------------------------------------------------------------------------
   2. GLOBAL RESET ON NATIVE CHASSIS
   -------------------------------------------------------------------------- */
body#encore-theme {
  font-family: var(--kn-font);
  color: var(--kn-body);
  -webkit-font-smoothing: antialiased; }

[class*="kn-"] h1, [class*="kn-"] h2, [class*="kn-"] h3, [class*="kn-"] h4, [class*="kn-"] h5, [class*="kn-"] h6 {
  font-family: var(--kn-font);
  color: var(--kn-ink);
  font-weight: var(--kn-w-head);
  letter-spacing: -0.01em; }
[class*="kn-"] h1 {
  font-size: var(--kn-h1);
  line-height: var(--kn-lh-tight); }
[class*="kn-"] h2 {
  font-size: var(--kn-h2);
  line-height: var(--kn-lh-tight); }
[class*="kn-"] h3 {
  font-size: var(--kn-h3);
  line-height: var(--kn-lh-snug); }
[class*="kn-"] h4 {
  font-size: var(--kn-h4);
  line-height: var(--kn-lh-snug); }
[class*="kn-"] h5 {
  font-size: var(--kn-h5);
  line-height: var(--kn-lh-snug); }
[class*="kn-"] h6 {
  font-size: var(--kn-h6);
  line-height: var(--kn-lh-snug); }
[class*="kn-"] p {
  font-size: var(--kn-p1);
  line-height: var(--kn-lh-loose);
  font-weight: var(--kn-w-body);
  color: var(--kn-body); }
[class*="kn-"] strong {
  color: var(--kn-ink);
  font-weight: 600; }
[class*="kn-"] em {
  font-style: normal;
  color: var(--kn-ink);
  background: var(--kn-lime);
  padding: 0 .18em;
  border-radius: 3px; }
[class*="kn-"] .container {
  max-width: calc(var(--kn-max) + 48px); }
[class*="kn-"] .row {
  --bs-gutter-x: var(--kn-grid-gap); }

/* Section heading block — used by grid/list/journey/logos/testimonials/faq */
[class*="kn-"] .kn-sectionhead {
  margin-bottom: var(--kn-gap-el); }
  [class*="kn-"] .kn-sectionhead h2 {
    max-width: var(--kn-max-title);
    margin: 0 auto; }
  [class*="kn-"] .kn-sectionhead p {
    max-width: 680px;
    margin: 14px auto 0;
    font-size: var(--kn-p2); }

.kn-kinetic .kn-sectionhead h2,
.kn-waw .kn-sectionhead h2,
.kn-finalcta .kn-sectionhead h2 {
  color: #fff; }

/* Buttons — native .btn, restyled */
[class*="kn-"] .btn {
  font-family: var(--kn-font);
  font-size: var(--kn-p1);
  font-weight: var(--kn-w-cta);
  line-height: 1;
  padding: 18px 34px;
  border-radius: var(--kn-radius);
  border: 2px solid var(--kn-lime);
  background: var(--kn-lime);
  color: var(--kn-ink);
  transition: transform .18s ease, background-color .18s ease, color .18s ease;
  text-decoration: none;
  display: inline-block; }
  [class*="kn-"] .btn:hover {
    background: var(--kn-ink);
    color: var(--kn-lime);
    border-color: var(--kn-ink); }
  [class*="kn-"] .btn:active {
    transform: scale(0.96); }
  [class*="kn-"] .btn.btn--outline {
    background: transparent;
    color: var(--kn-ink);
    border-color: var(--kn-ink); }
    [class*="kn-"] .btn.btn--outline:hover {
      background: var(--kn-lime);
      color: var(--kn-ink);
      border-color: var(--kn-lime); }

/* --------------------------------------------------------------------------
   3. SECTION: HERO  (.kn-hero)
   -------------------------------------------------------------------------- */
.kn-hero {
  background: var(--kn-surface);
  /* Eyebrow pill */ }
  .kn-hero .sizer {
    padding-top: 150px !important;
    padding-bottom: var(--kn-gap) !important; }
  .kn-hero .row {
    row-gap: var(--kn-gap-el); }
  .kn-hero .kn-eyebrow p {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--kn-ink);
    background: var(--kn-lime);
    border-radius: 999px;
    padding: 8px 18px;
    margin: 0; }
  .kn-hero .kn-headline h1 {
    font-size: var(--kn-display);
    line-height: var(--kn-lh-tight);
    max-width: var(--kn-max-title);
    margin: 0 auto; }
  .kn-hero .kn-cta {
    margin-top: 8px; }
    .kn-hero .kn-cta .btn {
      min-width: 260px; }
  .kn-hero .kn-sub p {
    font-size: var(--kn-p3);
    line-height: var(--kn-lh-loose);
    max-width: 760px;
    margin: 0 auto; }
  .kn-hero .kn-proof p {
    font-size: 15px;
    color: var(--kn-body);
    margin: 0; }

/* --------------------------------------------------------------------------
   4. SECTION: LOGO MARQUEE  (.kn-logos)
   -------------------------------------------------------------------------- */
.kn-logos {
  background: var(--kn-surface); }
  .kn-logos .sizer {
    padding-top: 36px !important;
    padding-bottom: 36px !important; }

.kn-marquee {
  width: 100%;
  overflow: hidden;
  position: relative;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
  .kn-marquee__track {
    display: flex;
    align-items: center;
    width: max-content;
    animation: kn-scroll var(--kn-speed, 34s) linear infinite; }
  .kn-marquee:hover .kn-marquee__track {
    animation-play-state: paused; }
  .kn-marquee__item {
    flex: 0 0 auto;
    padding: 0 40px;
    display: flex;
    align-items: center; }
  .kn-marquee img {
    height: var(--kn-logo-h, 34px);
    width: auto;
    object-fit: contain;
    opacity: .55;
    filter: grayscale(1);
    transition: opacity .2s ease, filter .2s ease; }
  .kn-marquee.is-color img {
    filter: none;
    opacity: 1; }
  .kn-marquee__item:hover img {
    opacity: 1;
    filter: grayscale(0); }

@keyframes kn-scroll {
  from {
    transform: translate3d(0, 0, 0); }
  to {
    transform: translate3d(-50%, 0, 0); } }
@media (prefers-reduced-motion: reduce) {
  .kn-marquee__track {
    animation: none; } }
/* --------------------------------------------------------------------------
   5. SECTION: TRUTH BOMB  (.kn-truthbomb)
   -------------------------------------------------------------------------- */
.kn-truthbomb {
  background: var(--kn-surface); }
  .kn-truthbomb .container {
    max-width: calc(var(--kn-max-narrow) + 48px); }
  .kn-truthbomb .block {
    background: var(--kn-surface-alt);
    border-radius: var(--kn-radius-card);
    padding: 32px 40px 40px; }
  .kn-truthbomb p {
    font-size: var(--kn-p2);
    line-height: var(--kn-lh-loose); }
  .kn-truthbomb p:last-child {
    margin-bottom: 0; }

/* --------------------------------------------------------------------------
   6. SECTION: KINETIC TYPE  (.kn-kinetic)
   -------------------------------------------------------------------------- */
.kn-kinetic {
  background: var(--kn-ink); }
  .kn-kinetic .sizer {
    padding-top: 120px !important;
    padding-bottom: 120px !important; }
  .kn-kinetic h2, .kn-kinetic h3, .kn-kinetic p, .kn-kinetic strong {
    color: #fff; }
  .kn-kinetic .kn-kinetic__lines p {
    font-size: clamp(34px, 5.6vw, var(--kn-display));
    line-height: var(--kn-lh-tight);
    font-weight: var(--kn-w-head);
    color: rgba(255, 255, 255, 0.28);
    margin: 0 0 .12em;
    transition: color .4s ease; }
  .kn-kinetic .kn-kinetic__lines p strong,
  .kn-kinetic .kn-kinetic__lines p em {
    color: var(--kn-lime);
    background: none;
    font-weight: var(--kn-w-head);
    padding: 0; }
  .kn-kinetic .kn-kinetic__lines p.is-lit {
    color: #fff; }

/* --------------------------------------------------------------------------
   7. SECTION: AUDIENCE FIT  (.kn-audience)  — yes / no columns
   -------------------------------------------------------------------------- */
.kn-audience {
  background: var(--kn-surface-warm);
  /* YES column */
  /* NO column */ }
  .kn-audience .row {
    row-gap: var(--kn-gap-el);
    align-items: stretch !important; }
  .kn-audience .block-type--text > .block {
    background: var(--kn-surface);
    border: 1px solid var(--kn-hairline);
    border-radius: var(--kn-radius-card);
    padding: 40px;
    height: 100%; }
  .kn-audience ul {
    list-style: none;
    padding: 0;
    margin: 24px 0 0; }
  .kn-audience li {
    position: relative;
    padding-left: 38px;
    margin-bottom: 16px;
    font-size: var(--kn-p1);
    line-height: var(--kn-lh-loose);
    color: var(--kn-ink-soft); }
  .kn-audience li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 13px; }
  .kn-audience .kn-yes li::before {
    background-color: var(--kn-lime);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23161616'%3E%3Cpath d='M7.6 14.6 3.4 10.4l1.4-1.4 2.8 2.8 7-7 1.4 1.4z'/%3E%3C/svg%3E"); }
  .kn-audience .kn-no li::before {
    background-color: var(--kn-surface-alt);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23f34b4b'%3E%3Cpath d='M15 6.4 13.6 5 10 8.6 6.4 5 5 6.4 8.6 10 5 13.6 6.4 15 10 11.4 13.6 15 15 13.6 11.4 10z'/%3E%3C/svg%3E"); }
  .kn-audience .kn-no li {
    color: var(--kn-body); }

/* --------------------------------------------------------------------------
   8. SECTION: FOUR-COLUMN GRID  (.kn-fourgrid)
   -------------------------------------------------------------------------- */
.kn-fourgrid {
  background: var(--kn-surface); }
  .kn-fourgrid .row {
    row-gap: var(--kn-grid-gap);
    align-items: stretch !important; }
  .kn-fourgrid .card {
    height: 100%;
    background: var(--kn-surface-alt);
    border: 1px solid transparent;
    border-radius: var(--kn-radius-card);
    padding: 32px 28px;
    text-align: left;
    transition: border-color .2s ease, transform .2s ease; }
  .kn-fourgrid .card:hover {
    border-color: var(--kn-lime);
    transform: translateY(-3px); }
  .kn-fourgrid .card__image {
    display: none; }
  .kn-fourgrid .card__body {
    padding: 0; }
  .kn-fourgrid .card__text h3,
  .kn-fourgrid .card__text h4 {
    font-size: var(--kn-h3);
    color: var(--kn-ink);
    margin: 0 0 10px; }
  .kn-fourgrid .card__text p {
    font-size: 16px;
    margin: 0; }

/* --------------------------------------------------------------------------
   9. SECTION: TWO-COLUMN LIST  (.kn-twocol)
   -------------------------------------------------------------------------- */
.kn-twocol {
  background: var(--kn-surface); }
  .kn-twocol .container {
    max-width: calc(var(--kn-max) + 48px); }
  .kn-twocol .row {
    row-gap: var(--kn-gap-el);
    align-items: start !important; }
  .kn-twocol ul {
    list-style: none;
    padding: 0;
    margin: 0; }
  .kn-twocol li {
    position: relative;
    padding-left: 34px;
    margin-bottom: 20px;
    font-size: var(--kn-p1);
    line-height: var(--kn-lh-loose);
    color: var(--kn-ink-soft); }
  .kn-twocol li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 18px;
    height: 2px;
    background: var(--kn-lime-dim); }

/* --------------------------------------------------------------------------
   10. SECTION: DARK CTA BAND  (.kn-waw)
   -------------------------------------------------------------------------- */
.kn-waw {
  background: var(--kn-ink); }
  .kn-waw .sizer {
    padding-top: 100px !important;
    padding-bottom: 100px !important; }
  .kn-waw h2, .kn-waw h3 {
    color: #fff; }
  .kn-waw h2 {
    max-width: var(--kn-max-title);
    margin: 0 auto 20px; }
  .kn-waw p {
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--kn-p2);
    max-width: 720px;
    margin: 0 auto; }
  .kn-waw .btn {
    margin-top: 32px;
    background: var(--kn-lime);
    border-color: var(--kn-lime);
    color: var(--kn-ink); }
    .kn-waw .btn:hover {
      background: #fff;
      border-color: #fff;
      color: var(--kn-ink); }

/* --------------------------------------------------------------------------
   11. SECTION: APPLY JOURNEY  (.kn-journey) — auto-numbered steps
   -------------------------------------------------------------------------- */
.kn-journey {
  background: var(--kn-surface-alt);
  counter-reset: kn-step; }
  .kn-journey .container {
    max-width: 944px; }
  .kn-journey .row {
    row-gap: 24px; }
  .kn-journey .card {
    counter-increment: kn-step;
    position: relative;
    background: var(--kn-surface);
    border: 1px solid var(--kn-surface-alt);
    border-radius: var(--kn-radius-card);
    padding: 40px 40px 40px 108px;
    text-align: left;
    box-shadow: var(--kn-shadow); }
  .kn-journey .card::before {
    content: counter(kn-step);
    position: absolute;
    left: 40px;
    top: 40px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--kn-lime);
    color: var(--kn-ink);
    font-size: var(--kn-h6);
    font-weight: var(--kn-w-cta);
    line-height: 1; }
  .kn-journey .card__image {
    display: none; }
  .kn-journey .card__body {
    padding: 0; }
  .kn-journey .card__text h4 {
    font-size: var(--kn-h5);
    margin: 0 0 8px; }
  .kn-journey .card__text p {
    margin: 0; }

/* --------------------------------------------------------------------------
   12. SECTION: PULL QUOTE  (.kn-quote)
   -------------------------------------------------------------------------- */
.kn-quote {
  background: var(--kn-surface); }
  .kn-quote .container {
    max-width: calc(var(--kn-max-narrow) + 48px); }
  .kn-quote .kn-q p, .kn-quote blockquote {
    font-size: var(--kn-h4);
    line-height: var(--kn-lh-snug);
    color: var(--kn-ink);
    font-weight: var(--kn-w-head);
    border: 0;
    padding: 0;
    margin: 0 0 24px; }
  .kn-quote .kn-attrib p {
    font-size: 15px;
    color: var(--kn-body);
    margin: 0; }

/* --------------------------------------------------------------------------
   13. SECTION: LARGE LOGOS  (.kn-largelogos)
   -------------------------------------------------------------------------- */
.kn-largelogos {
  background: var(--kn-surface-warm); }
  .kn-largelogos .row {
    row-gap: 32px;
    align-items: center !important; }
  .kn-largelogos img {
    max-height: 44px;
    width: auto;
    margin: 0 auto;
    opacity: .6;
    filter: grayscale(1);
    transition: opacity .2s ease, filter .2s ease; }
  .kn-largelogos .block:hover img {
    opacity: 1;
    filter: grayscale(0); }

/* --------------------------------------------------------------------------
   14. SECTION: TESTIMONIAL GRID  (.kn-testimonials)
   -------------------------------------------------------------------------- */
.kn-testimonials {
  background: var(--kn-surface); }
  .kn-testimonials .row {
    row-gap: var(--kn-grid-gap);
    align-items: stretch !important; }
  .kn-testimonials .card {
    height: 100%;
    background: var(--kn-surface);
    border: 1px solid var(--kn-hairline);
    border-radius: var(--kn-radius-card);
    padding: 32px;
    text-align: left;
    display: flex;
    flex-direction: column; }
  .kn-testimonials .card__image {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 20px; }
  .kn-testimonials .card__body {
    padding: 0;
    display: flex;
    flex-direction: column;
    flex: 1; }
  .kn-testimonials .card__text p {
    font-size: 16px;
    line-height: var(--kn-lh-loose);
    margin: 0 0 20px; }
  .kn-testimonials .card__footer {
    margin-top: auto;
    font-size: 14px;
    font-weight: 600;
    color: var(--kn-ink) !important;
    letter-spacing: 0; }

/* --------------------------------------------------------------------------
   15. SECTION: FAQ  (.kn-faq)
   -------------------------------------------------------------------------- */
.kn-faq {
  background: var(--kn-surface); }
  .kn-faq .container {
    max-width: calc(var(--kn-max-narrow) + 48px); }
  .kn-faq .row {
    row-gap: 0; }
  .kn-faq .accordion {
    width: 100%;
    background: transparent !important;
    border-bottom: 1px solid var(--kn-hairline);
    padding: 6px 0; }
  .kn-faq .accordion-title {
    padding: 24px 0; }
    .kn-faq .accordion-title h5 {
      font-size: var(--kn-h6);
      font-weight: var(--kn-w-cta);
      color: var(--kn-ink);
      line-height: var(--kn-lh-snug); }
    .kn-faq .accordion-title:after {
      color: var(--kn-ink-soft) !important;
      transition: transform .2s ease; }
    .kn-faq .accordion-title:not(.collapsed):after {
      color: var(--kn-lime-dim) !important; }
  .kn-faq .accordion-body {
    padding: 0 0 24px !important; }
    .kn-faq .accordion-body p {
      font-size: 16px;
      line-height: var(--kn-lh-loose);
      margin: 0 0 12px; }
    .kn-faq .accordion-body p:last-child {
      margin-bottom: 0; }

/* --------------------------------------------------------------------------
   16. SECTION: FINAL CTA  (.kn-finalcta)
   -------------------------------------------------------------------------- */
.kn-finalcta {
  background: var(--kn-ink); }
  .kn-finalcta .sizer {
    padding-top: 110px !important;
    padding-bottom: 110px !important; }
  .kn-finalcta h2 {
    color: #fff;
    font-size: var(--kn-h1);
    max-width: var(--kn-max-title);
    margin: 0 auto 20px; }
  .kn-finalcta p {
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--kn-p2);
    max-width: 680px;
    margin: 0 auto; }
  .kn-finalcta .btn {
    margin-top: 32px; }
  .kn-finalcta .kn-fineprint p {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.45);
    margin-top: 20px; }

/* --------------------------------------------------------------------------
   17. RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width: 991px) {
  .kn-fourgrid .row > [class*="col-"] {
    flex: 0 0 50%;
    max-width: 50%; }

  .kn-journey .card {
    padding: 32px 28px 32px 88px; }

  .kn-journey .card::before {
    left: 24px;
    top: 32px; } }
@media (max-width: 767px) {
  :root {
    --kn-display: 40px;
    --kn-h1: 34px;
    --kn-h2: 30px;
    --kn-h3: 26px;
    --kn-h4: 22px;
    --kn-h5: 20px;
    --kn-h6: 18px;
    --kn-p1: 16px;
    --kn-p2: 17px;
    --kn-p3: 18px;
    --kn-gap: 32px; }

  .kn-hero .sizer {
    padding-top: 96px !important; }

  .kn-fourgrid .row > [class*="col-"],
  .kn-largelogos .row > [class*="col-"] {
    flex: 0 0 50%;
    max-width: 50%; }

  .kn-audience .block-type--text > .block,
  .kn-truthbomb .block {
    padding: 24px; }

  .kn-journey .card {
    padding: 72px 24px 28px; }

  .kn-journey .card::before {
    left: 24px;
    top: 24px;
    width: 38px;
    height: 38px; }

  .kn-marquee__item {
    padding: 0 24px; }

  .kn-marquee img {
    height: 26px; }

  [class*="kn-"] .btn {
    width: 100%;
    text-align: center;
    padding: 16px 24px; } }
