/* Component classes used by the React primitives. Tokens only. */
.nl-icon{display:inline-block;flex:none;background-color:currentColor;-webkit-mask:var(--nl-icon) center/contain no-repeat;mask:var(--nl-icon) center/contain no-repeat}

/* Buttons */
.nl-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-h);padding:14px 24px;border-radius:var(--radius-pill);border:1.5px solid transparent;font-family:var(--font-body);font-weight:600;font-size:var(--text-button-size);line-height:var(--text-button-lh);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}
.nl-btn:hover{text-decoration:none}
.nl-btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}
.nl-btn--sm{min-height:var(--touch-min);padding:10px 20px;font-size:15px;line-height:22px}
.nl-btn--block{width:100%}
.nl-btn--primary{background:var(--navy-900);color:var(--cream-50)}
.nl-btn--primary:hover{background:var(--navy-800);color:var(--cream-50)}
.nl-btn--accent{background:var(--amber-400);color:var(--navy-900)}
.nl-btn--accent:hover{background:var(--amber-500);color:var(--navy-900)}
.nl-btn--secondary{background:transparent;border-color:var(--navy-900);color:var(--navy-900)}
.nl-btn--secondary:hover{background:var(--glow-100);color:var(--navy-900)}
.nl-btn--secondary-inverse{background:transparent;border-color:var(--cream-50);color:var(--cream-50)}
.nl-btn--secondary-inverse:hover{background:var(--navy-800);color:var(--cream-50)}
.nl-btn[disabled],.nl-btn[aria-disabled="true"]{opacity:var(--disabled-opacity);pointer-events:none}

.nl-link{display:inline-flex;align-items:center;gap:6px;color:var(--navy-600);font-weight:600;text-decoration:none;text-underline-offset:3px}
.nl-link:hover{text-decoration:underline;color:var(--navy-600)}
.nl-link--accent,.nl-link--accent:hover{color:var(--amber-700)}
.nl-link--inverse,.nl-link--inverse:hover{color:var(--amber-400)}
.nl-link--inline{font-weight:inherit;display:inline}

/* Badges */
.nl-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-pill);font-size:var(--text-caption-size);line-height:var(--text-caption-lh);letter-spacing:var(--text-caption-ls);font-weight:600;white-space:nowrap}
.nl-badge--live{background:var(--success-50);color:var(--success-700)}
.nl-badge--pilot{background:var(--glow-100);color:var(--amber-700)}
.nl-badge--soon{background:var(--stone-100);color:var(--slate-600)}

/* Product card */
.nl-card{display:flex;flex-direction:column;gap:16px;background:var(--white);border:1px solid var(--line-200);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}
.nl-card--interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.nl-card__icon{width:48px;height:48px;border-radius:14px;background:var(--glow-100);color:var(--navy-900);display:flex;align-items:center;justify-content:center}
.nl-card__tagline{font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-lh);color:var(--slate-600);margin-top:-8px}
.nl-card__body{color:var(--navy-900);flex:1}

/* Forms */
.nl-field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-body)}
.nl-field__label{font-size:var(--text-small-size);line-height:var(--text-small-lh);font-weight:600;color:var(--navy-900)}
.nl-field__req{font-weight:400;color:var(--slate-500)}
.nl-input{width:100%;min-height:var(--control-h);padding:12px 14px;background:var(--white);border:1px solid var(--slate-400);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-body-size);line-height:22px;color:var(--navy-900);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}
.nl-input::placeholder{color:var(--slate-500)}
.nl-input:focus{outline:none;border:2px solid var(--navy-600);padding:11px 13px;box-shadow:0 0 0 3px var(--amber-400)}
.nl-input--error,.nl-input--error:focus{border:2px solid var(--error-600);padding:11px 13px}
textarea.nl-input{min-height:140px;resize:vertical}
select.nl-input{appearance:none;padding-right:44px;cursor:pointer}
.nl-select{position:relative}
.nl-select .nl-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--navy-900)}
.nl-field__hint{font-size:var(--text-small-size);line-height:var(--text-small-lh);color:var(--slate-500)}
.nl-field__error{display:flex;align-items:center;gap:6px;font-size:var(--text-small-size);line-height:var(--text-small-lh);color:var(--error-600);font-weight:500}
.nl-check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:var(--text-small-size);line-height:var(--text-small-lh);color:var(--navy-900)}
.nl-check input{appearance:none;flex:none;width:22px;height:22px;margin:0;border:1.5px solid var(--slate-400);border-radius:6px;background:var(--white);display:grid;place-content:center;cursor:pointer}
.nl-check input:checked{background:var(--navy-900);border-color:var(--navy-900)}
.nl-check input:checked::after{content:"";width:14px;height:14px;background:var(--cream-50);-webkit-mask:url(https://unpkg.com/lucide-static@0.400.0/icons/check.svg) center/contain no-repeat;mask:url(https://unpkg.com/lucide-static@0.400.0/icons/check.svg) center/contain no-repeat}
.nl-check input:focus-visible{outline:3px solid var(--amber-400);outline-offset:2px}
.nl-check--error input{border-color:var(--error-600);border-width:2px}

/* Header */
.nl-header{position:sticky;top:0;z-index:50;height:var(--header-h);background:rgba(247,246,240,0.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color var(--duration-base) var(--ease-out)}
.nl-header--scrolled{border-bottom-color:var(--line-200)}
.nl-header__inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.nl-header__logo{display:flex;align-items:center;cursor:pointer;background:none;border:0;padding:0}
.nl-nav{display:flex;align-items:center;gap:8px}
.nl-nav__item{position:relative}
.nl-nav__link{display:inline-flex;align-items:center;gap:4px;min-height:var(--touch-min);padding:0 14px;border:0;background:none;border-radius:var(--radius-pill);font:inherit;font-weight:500;font-size:16px;color:var(--navy-900);cursor:pointer;text-decoration:none}
.nl-nav__link:hover{background:var(--stone-100);text-decoration:none;color:var(--navy-900)}
.nl-nav__link[aria-current="page"]{color:var(--navy-900);box-shadow:inset 0 -2px 0 var(--amber-400);border-radius:0}
.nl-nav__cta{margin-left:12px}
.nl-dropdown{position:absolute;top:calc(100% + 8px);left:0;min-width:280px;background:var(--white);border:1px solid var(--line-200);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:8px;display:flex;flex-direction:column;animation:nl-rise var(--duration-base) var(--ease-out) both}
.nl-dropdown__item{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:var(--radius-sm);color:var(--navy-900);text-decoration:none;cursor:pointer;background:none;border:0;text-align:left;font:inherit}
.nl-dropdown__item:hover{background:var(--cream-50);text-decoration:none;color:var(--navy-900)}
.nl-dropdown__name{display:flex;align-items:center;gap:8px;font-weight:600}
.nl-dropdown__desc{font-size:var(--text-small-size);line-height:var(--text-small-lh);color:var(--slate-500)}
.nl-menu-btn{display:none;width:var(--touch-min);height:var(--touch-min);border:0;background:none;color:var(--navy-900);align-items:center;justify-content:center;border-radius:var(--radius-pill);cursor:pointer}
.nl-menu-btn:hover{background:var(--stone-100)}
.nl-mobile{position:fixed;inset:0;z-index:100;background:var(--navy-900);color:var(--cream-50);display:flex;flex-direction:column;padding:0 var(--container-pad) 32px;box-shadow:var(--shadow-lg);animation:nl-fade var(--duration-base) var(--ease-out) both}
.nl-mobile__top{height:64px;display:flex;align-items:center;justify-content:space-between}
.nl-mobile__close{width:var(--touch-min);height:var(--touch-min);border:0;background:none;color:var(--cream-50);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--radius-pill)}
.nl-mobile__close:hover{background:var(--navy-800)}
.nl-mobile__nav{display:flex;flex-direction:column;padding-top:32px;flex:1}
.nl-mobile__group{font-size:var(--text-eyebrow-size);letter-spacing:var(--text-eyebrow-ls);text-transform:uppercase;font-weight:600;color:var(--slate-300);padding:16px 0 4px}
.nl-mobile__link{display:flex;align-items:center;justify-content:space-between;min-height:56px;border:0;border-bottom:1px solid var(--navy-800);background:none;padding:0;font-family:var(--font-display);font-weight:600;font-size:24px;color:var(--cream-50);text-align:left;cursor:pointer;text-decoration:none}
.nl-mobile__link:hover{color:var(--amber-400);text-decoration:none}
@keyframes nl-fade{from{opacity:0}to{opacity:1}}
@media (max-width:1023px){.nl-nav{display:none}.nl-menu-btn{display:inline-flex}}

/* Footer */
.nl-footer{background:var(--navy-900);color:var(--cream-50);padding:64px 0 32px}
.nl-footer__grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:32px}
.nl-footer__tagline{margin-top:20px;color:var(--slate-300);max-width:28ch}
.nl-footer__head{font-size:var(--text-eyebrow-size);line-height:var(--text-eyebrow-lh);letter-spacing:var(--text-eyebrow-ls);text-transform:uppercase;font-weight:600;color:var(--slate-300);margin-bottom:16px}
.nl-footer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.nl-footer__link{color:var(--cream-50);text-decoration:none;cursor:pointer;background:none;border:0;padding:0;font:inherit;text-align:left}
.nl-footer__link:hover{color:var(--amber-400);text-decoration:underline}
.nl-footer__legal{margin-top:56px;padding-top:24px;border-top:1px solid var(--navy-800);font-size:var(--text-small-size);line-height:var(--text-small-lh);color:var(--slate-300)}
@media (max-width:1023px){.nl-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nl-footer__brand{grid-column:1/-1}}
@media (max-width:639px){.nl-footer__grid{grid-template-columns:minmax(0,1fr)}}

/* Glow */
.nl-glow{position:absolute;border-radius:50%;pointer-events:none;background:var(--glow-on-cream)}
.nl-glow--navy{background:var(--glow-on-navy)}
.nl-glow--breathe{animation:nl-breathe var(--duration-breathe) ease-in-out infinite}

/* Endorsement */
.nl-endorse{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-caption-size);line-height:var(--text-caption-lh);font-weight:500;letter-spacing:var(--text-caption-ls);color:var(--slate-600)}
.nl-endorse--inverse{color:var(--slate-300)}

/* Sections */
.nl-hero{position:relative;overflow:hidden;padding:var(--section-pad) 0}
.nl-hero__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:center}
.nl-hero__copy{display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.nl-hero__sub{font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-lh);color:var(--slate-600);max-width:52ch}
.nl-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.nl-hero__visual{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;max-width:440px;width:100%;justify-self:center}
@media (max-width:1023px){.nl-hero__grid{grid-template-columns:minmax(0,1fr)}.nl-hero__visual{max-width:300px}}

.nl-intro{display:flex;flex-direction:column;gap:16px;max-width:720px}
.nl-intro--center{align-items:center;text-align:center;margin:0 auto}
.nl-intro__body{font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-lh);color:var(--slate-600)}
.nl-intro--inverse h2,.nl-intro--inverse .nl-h2{color:var(--cream-50)}
.nl-intro--inverse .nl-intro__body{color:var(--slate-300)}
.nl-intro--inverse .nl-eyebrow{color:var(--amber-400)}

.nl-statement{position:relative;overflow:hidden;background:var(--navy-900);color:var(--cream-50);padding:var(--section-pad) 0;text-align:center}
.nl-statement__text{position:relative;font-family:var(--font-display);font-weight:700;font-size:var(--text-h1-size);line-height:var(--text-h1-lh);letter-spacing:var(--text-h1-ls);color:var(--cream-50);max-width:22ch;margin:0 auto;text-wrap:balance}

.nl-cta{padding:var(--section-pad) 0}
.nl-cta__panel{border-radius:var(--radius-xl);padding:64px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}
.nl-cta--glow .nl-cta__panel{background:var(--glow-100)}
.nl-cta--navy .nl-cta__panel{background:var(--navy-900);color:var(--cream-50)}
.nl-cta--navy h2{color:var(--cream-50)}
.nl-cta__body{font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-lh);color:var(--slate-600);max-width:48ch}
.nl-cta--navy .nl-cta__body{color:var(--slate-300)}
.nl-cta__actions{margin-top:16px;display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

.nl-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px;counter-reset:step;list-style:none;margin:0;padding:0}
.nl-step{display:flex;flex-direction:column;gap:12px}
.nl-step__num{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--navy-900);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:18px;color:var(--navy-900)}
.nl-step__rule{flex:1;height:1px;background:var(--line-200)}
.nl-step__head{display:flex;align-items:center;gap:16px}
.nl-step__text{color:var(--slate-600)}

.nl-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px 40px}
.nl-feature{display:flex;flex-direction:column;gap:10px}
.nl-feature__icon{color:var(--navy-600);margin-bottom:6px}
.nl-feature__text{color:var(--slate-600)}

.nl-accordion{border-top:1px solid var(--line-200)}
.nl-acc__item{border-bottom:1px solid var(--line-200)}
.nl-acc__btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px;padding:18px 0;border:0;background:none;text-align:left;cursor:pointer;font-family:var(--font-display);font-weight:600;font-size:var(--text-h4-size);line-height:var(--text-h4-lh);color:var(--navy-900)}
.nl-acc__btn:hover{color:var(--navy-600)}
.nl-acc__btn .nl-icon{color:var(--navy-600)}
.nl-acc__panel{padding:0 48px 24px 0;color:var(--slate-600);max-width:var(--measure);animation:nl-rise var(--duration-base) var(--ease-out) both}
