@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined');

:root{
  --ink:#123E7A; --ink-deep:#0A2A5E; --ink-line:rgba(255,255,255,.14);
  --blue:#2563EB; --blue-soft:#BFDBFE; --blue-pale:#E4ECFB;
  --paper:#FFFFFF; --paper-line:#DCE6F5; --card:#FFFFFF;
  --gold:#DC2626; --gold-deep:#991B1B;
  --brick:#991B1B; --brick-soft:#FBD5D5;
  --red-pale:#FDE8E8;
  --slate:#64748B; --ink900:#111827;
  --radius:3px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body.nfp-root{
  font-family:'Inter',ui-sans-serif,system-ui,sans-serif;
  background:var(--paper); color:var(--ink900);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
::selection{background:var(--gold);color:var(--ink-deep);}
.nfp-display{font-family:'Fraunces',serif;}
.nfp-mono{font-family:'JetBrains Mono',ui-monospace,monospace;letter-spacing:.02em;}
.nfp-icon{vertical-align:middle;}
.nfp-container{max-width:1080px;margin:0 auto;padding:0 20px;}

/* ---------------- Nav ---------------- */
.nfp-nav{background:var(--ink);color:#fff;}
.nfp-nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px;}
.nfp-brand{display:flex;align-items:center;gap:8px;font-size:18px;}
.nfp-brand-logo{height:34px;width:auto;display:block;}
.nfp-nav-links{display:flex;align-items:center;gap:28px;font-size:14px;}
.nfp-nav-links a{opacity:.75;}
.nfp-nav-links a:hover, .nfp-nav-links a.is-active{opacity:1;}
.nfp-nav-divider{width:1px;height:16px;background:var(--ink-line);}
.nfp-nav-console{font-size:11px;color:var(--blue-soft)!important;border:1px solid var(--ink-line);padding:5px 8px;border-radius:2px;}
.nfp-nav-toggle{display:none;background:none;border:none;cursor:pointer;}
@media (max-width:820px){
  .nfp-nav-links{position:absolute;top:64px;left:0;right:0;background:var(--ink);flex-direction:column;align-items:flex-start;gap:16px;padding:16px 20px 22px;display:none;}
  .nfp-nav-links.is-open{display:flex;}
  .nfp-nav-toggle{display:block;}
}

/* ---------------- Buttons / Forms ---------------- */
.nfp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:500;border-radius:2px;border:1px solid var(--ink);cursor:pointer;transition:transform .15s ease;}
.nfp-btn:hover{transform:translateY(-2px);}
.nfp-btn-primary{background:var(--ink);color:#fff;}
.nfp-btn-ghost{background:transparent;color:var(--ink);}
.nfp-btn-gold{background:var(--gold);color:var(--ink-deep);border-color:var(--gold);}
.nfp-btn-full{width:100%;}
.nfp-btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;}

.nfp-field{margin-bottom:16px;}
.nfp-field label,.nfp-field-label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;color:var(--ink900);}
.nfp-field-label-sm{font-size:12px;color:var(--slate);}
.nfp-input,.nfp-select{width:100%;padding:11px 12px;font-size:14px;border:1px solid var(--paper-line);border-radius:2px;background:#fff;font-family:inherit;}
.nfp-input:focus,.nfp-select:focus{outline:2px solid var(--blue);outline-offset:1px;}

.nfp-chip-group{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.nfp-chip-group.is-wide{grid-template-columns:1fr;}
.nfp-chip{display:block;width:100%;text-align:left;padding:11px 12px;font-size:14px;border:1px solid var(--paper-line);border-radius:2px;background:transparent;cursor:pointer;font-family:inherit;}
.nfp-chip.is-selected{background:var(--ink);border-color:var(--ink);color:#fff;}

/* ---------------- Badges / labels ---------------- */
.nfp-badge{font-family:'JetBrains Mono',monospace;font-size:11px;padding:4px 8px;border-radius:2px;text-transform:uppercase;letter-spacing:.03em;display:inline-block;}
.nfp-badge-slate{background:#EEF2F8;color:var(--slate);}
.nfp-badge-gold{background:var(--red-pale);color:var(--gold);}
.nfp-badge-brick{background:var(--brick);color:#fff;}
.nfp-badge-blue{background:var(--blue-pale);color:var(--blue);}
.nfp-badge-dark{background:var(--ink-deep);color:#fff;}

.nfp-eyebrow{font-family:'JetBrains Mono',monospace;text-transform:uppercase;font-size:11px;letter-spacing:.08em;color:var(--blue);display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.nfp-eyebrow.is-dark{color:var(--blue-soft);}
.nfp-eyebrow::before{content:"";width:16px;height:1px;background:currentColor;display:inline-block;}

/* ---------------- Corner marks ---------------- */
.nfp-corners{position:relative;}
.nfp-corners i{position:absolute;width:18px;height:18px;pointer-events:none;}
.nfp-corners i::before,.nfp-corners i::after{content:"";position:absolute;background:var(--blue);}
.nfp-corners i::before{left:8px;top:0;width:1px;height:18px;}
.nfp-corners i::after{top:8px;left:0;height:1px;width:18px;}
.nfp-corners-dark i::before,.nfp-corners-dark i::after{background:rgba(255,255,255,.35);}
.nfp-corners i:nth-child(1){top:10px;left:10px;}
.nfp-corners i:nth-child(2){top:10px;right:10px;}
.nfp-corners i:nth-child(3){bottom:10px;left:10px;}
.nfp-corners i:nth-child(4){bottom:10px;right:10px;}

/* ---------------- Hero ---------------- */
.nfp-hero{background:radial-gradient(1200px 500px at 50% -10%, rgba(61,90,128,.25), var(--ink));color:#fff;position:relative;}
.nfp-hero-inner{padding:64px 20px 84px;position:relative;}
.nfp-hero h1{font-size:44px;line-height:1.1;text-align:center;max-width:640px;margin:8px auto 0;}
.nfp-hero-sub{text-align:center;color:var(--blue-soft);max-width:520px;margin:16px auto 0;font-size:15px;}
.nfp-hero-eyebrow-wrap{text-align:center;}
.nfp-hero-eyebrow-wrap .nfp-eyebrow{justify-content:center;}
.nfp-search{max-width:640px;margin:36px auto 0;padding:12px;background:rgba(255,255,255,.06);border:1px solid var(--ink-line);border-radius:4px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
@media (max-width:700px){.nfp-search{grid-template-columns:1fr;} .nfp-hero h1{font-size:32px;}}
.nfp-search-field{display:flex;align-items:center;gap:8px;padding:12px;background:var(--ink-deep);border-radius:2px;}
.nfp-search-field select{background:transparent;border:none;color:#fff;font-family:'JetBrains Mono',monospace;font-size:13px;width:100%;outline:none;}
.nfp-search-field select option{color:#000;}
.nfp-search-cta{max-width:640px;margin:12px auto 0;}

/* ---------------- Sections / grids ---------------- */
.nfp-section{max-width:1080px;margin:0 auto;padding:56px 20px;}
.nfp-section-band{background:var(--card);border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line);}
.nfp-section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap;}
.nfp-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.nfp-grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
.nfp-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
@media (max-width:820px){.nfp-grid-3{grid-template-columns:repeat(2,1fr);} .nfp-grid-5{grid-template-columns:repeat(2,1fr);} .nfp-grid-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.nfp-grid-3{grid-template-columns:1fr;} .nfp-grid-4{grid-template-columns:1fr;}}

.nfp-loc-card{display:block;padding:16px;border:1px solid var(--paper-line);border-radius:3px;background:var(--paper);}
.nfp-loc-card .nfp-loc-count{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--blue);}
.nfp-loc-card .nfp-loc-name{font-family:'Fraunces',serif;font-size:19px;margin-top:4px;}
.nfp-loc-card .nfp-loc-cta{font-size:12px;margin-top:10px;display:flex;align-items:center;gap:4px;}

/* ---------------- Project tile ---------------- */
.nfp-tile{display:block;background:var(--card);border:1px solid var(--paper-line);border-radius:3px;overflow:hidden;}
.nfp-tile-plot{position:relative;height:144px;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg, var(--ink) 0, var(--ink) 1px, transparent 1px, transparent 14px), var(--ink-deep);}
.nfp-tile-initials{text-align:center;color:#fff;}
.nfp-tile-badge-tl{position:absolute;top:8px;left:8px;}
.nfp-tile-badge-tr{position:absolute;top:8px;right:8px;}
.nfp-tile-body{padding:16px;}
.nfp-tile-sub{font-size:12px;color:var(--slate);margin-top:2px;}
.nfp-tile-meta{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:12px;}
.nfp-tile-sep{color:var(--paper-line);}
.nfp-tile-link{margin-top:12px;font-size:12px;font-weight:600;color:var(--blue);display:flex;align-items:center;gap:2px;}

/* ---------------- Filters ---------------- */
.nfp-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;}
.nfp-filters select{font-family:'JetBrains Mono',monospace;font-size:13px;padding:9px 10px;border:1px solid var(--paper-line);border-radius:2px;background:var(--card);}
.nfp-filters .nfp-clear{font-size:12px;color:var(--slate);background:none;border:none;padding:9px 6px;cursor:pointer;font-family:'JetBrains Mono',monospace;}

/* ---------------- Project detail ---------------- */
.nfp-detail-hero{position:relative;height:280px;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg, var(--ink) 0, var(--ink) 1px, transparent 1px, transparent 16px), var(--ink-deep);border-radius:3px;color:#fff;margin-bottom:24px;}
@media (max-width:600px){.nfp-detail-hero{height:200px;}}
.nfp-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 32px;margin:32px 0;padding-top:28px;border-top:1px solid var(--paper-line);}
@media (max-width:600px){.nfp-overview-grid{grid-template-columns:1fr;}}
.nfp-overview-row{display:flex;gap:12px;padding:8px 0;}
.nfp-overview-row .nfp-ov-label{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--slate);}
.nfp-overview-row .nfp-ov-value{font-size:14px;}
.nfp-block{margin-top:32px;padding-top:28px;border-top:1px solid var(--paper-line);}
.nfp-why-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:14px;}
.nfp-why-list li{display:flex;gap:8px;align-items:flex-start;}
.nfp-amenity-row{display:flex;flex-wrap:wrap;gap:8px;}
.nfp-mobile-cta{position:fixed;left:0;right:0;bottom:0;display:none;background:var(--ink);z-index:20;}
.nfp-mobile-cta a,.nfp-mobile-cta button{flex:1;text-align:center;padding:14px 0;color:#fff;font-size:13px;border:none;background:none;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:6px;}
.nfp-mobile-cta a:not(:last-child),.nfp-mobile-cta button:not(:last-child){border-right:1px solid var(--ink-line);}
@media (max-width:600px){.nfp-mobile-cta{display:flex;} body{padding-bottom:52px;}}

/* ---------------- Score dial ---------------- */
.nfp-score-dial{display:inline-block;}

/* ---------------- Wizard ---------------- */
.nfp-wizard-wrap{max-width:520px;margin:0 auto;}
.nfp-wizard-card{background:var(--card);border-radius:4px;overflow:hidden;box-shadow:0 8px 30px rgba(20,33,61,.08);}
.nfp-wizard-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--paper-line);}
.nfp-wizard-body{padding:20px;}
.nfp-wizard-steps{display:flex;gap:4px;padding:0 20px;margin-top:14px;}
.nfp-wizard-steps i{flex:1;height:3px;background:var(--paper-line);border-radius:2px;}
.nfp-wizard-steps i.is-done{background:var(--ink);}
.nfp-otp-box{font-family:'JetBrains Mono',monospace;font-size:13px;padding:10px;background:var(--blue-pale);border:1px solid var(--blue-soft);margin-bottom:12px;}
.nfp-notice{display:flex;gap:10px;align-items:flex-start;padding:12px;background:var(--paper);border:1px solid var(--paper-line);font-size:12px;color:var(--slate);margin-bottom:14px;}
.nfp-result{padding:8px 0;}
.nfp-result-box{padding:12px;background:var(--paper);border:1px solid var(--paper-line);font-family:'JetBrains Mono',monospace;font-size:12px;margin-top:16px;text-align:left;line-height:1.9;}
.nfp-btn-row{display:flex;gap:8px;}

/* ---------------- Builders page ---------------- */
.nfp-tier-card{padding:20px;border-radius:3px;border:1px solid var(--paper-line);background:var(--card);}
.nfp-tier-card.is-highlight{background:var(--ink);color:#fff;border-color:var(--ink);}
.nfp-tier-price{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--blue);}
.is-highlight .nfp-tier-price{color:var(--gold);}
.nfp-tier-name{font-family:'Fraunces',serif;font-size:20px;margin:4px 0 12px;}
.nfp-tier-features{list-style:none;padding:0;margin:0;font-size:12px;display:flex;flex-direction:column;gap:8px;}
.nfp-tier-features li{display:flex;gap:6px;align-items:flex-start;}
.nfp-leadtype-row{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;}
@media (max-width:700px){.nfp-leadtype-row{grid-template-columns:repeat(2,1fr);}}
.nfp-leadtype-chip{padding:12px;text-align:center;font-size:12px;border:1px solid var(--paper-line);background:var(--paper);font-family:'JetBrains Mono',monospace;}

/* ---------------- Dashboards (admin/partner) ---------------- */
.nfp-login-wrap{max-width:360px;margin:80px auto;padding:28px;background:var(--card);border:1px solid var(--paper-line);border-radius:4px;}
.nfp-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:32px;}
@media (max-width:700px){.nfp-stat-grid{grid-template-columns:1fr 1fr;}}
.nfp-stat-card{padding:16px;background:var(--card);border:1px solid var(--paper-line);border-radius:3px;}
.nfp-stat-top{display:flex;align-items:center;justify-content:space-between;}
.nfp-stat-label{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--slate);}
.nfp-stat-value{font-family:'Fraunces',serif;font-size:32px;margin-top:4px;}
.nfp-dash-grid{display:grid;grid-template-columns:3fr 2fr;gap:24px;align-items:start;}
@media (max-width:900px){.nfp-dash-grid{grid-template-columns:1fr;}}
.nfp-list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.nfp-filter-pill{font-size:11px;font-family:'JetBrains Mono',monospace;padding:5px 8px;border:1px solid var(--paper-line);background:transparent;cursor:pointer;}
.nfp-filter-pill.is-active{background:var(--ink);color:#fff;}
.nfp-lead-list{border:1px solid var(--paper-line);max-height:560px;overflow-y:auto;}
.nfp-lead-row{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--paper-line);background:none;border-left:none;border-right:none;border-top:none;text-align:left;cursor:pointer;font-family:inherit;}
.nfp-lead-row.is-active{background:var(--paper);}
.nfp-lead-row .nfp-lr-name{font-size:14px;font-weight:500;}
.nfp-lead-row .nfp-lr-meta{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--slate);}
.nfp-detail-card{padding:18px;border:1px solid var(--paper-line);background:var(--card);}
.nfp-detail-row{display:flex;justify-content:space-between;padding:6px 0;font-size:13px;border-bottom:1px solid var(--paper-line);}
.nfp-detail-row .nfp-dr-label{color:var(--slate);}
.nfp-status-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;}
.nfp-empty{padding:24px;text-align:center;font-size:13px;color:var(--slate);}
.nfp-partner-banner{padding:16px;background:var(--ink);color:#fff;border-radius:3px;margin-bottom:24px;}
.nfp-funnel-card{padding:16px;text-align:center;background:var(--card);border:1px solid var(--paper-line);}
.nfp-lead-card{padding:14px 16px;border:1px solid var(--paper-line);background:var(--card);display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}

/* ---------------- Ad Manager (public slots) ---------------- */
.nfp-ad-slot{display:block;position:relative;margin:28px 0;border-radius:3px;overflow:hidden;line-height:0;}
.nfp-ad-slot img{width:100%;height:auto;display:block;}
.nfp-ad-label{position:absolute;bottom:6px;right:8px;background:rgba(13,23,48,.72);color:#fff;font-size:9px;padding:3px 6px;border-radius:2px;letter-spacing:.08em;}
.nfp-ad-empty{display:flex;align-items:center;gap:8px;justify-content:center;margin:28px 0;padding:16px;border:1px dashed var(--paper-line);border-radius:3px;font-size:12px;color:var(--blue);background:var(--card);}
.nfp-ad-zone-footer_strip{margin:0;border-radius:0;}
.nfp-ad-zone-project_sidebar{max-width:100%;}

/* ---------------- Ad Manager (admin) ---------------- */
.nfp-ad-row{display:flex;gap:14px;align-items:center;padding:14px;border-bottom:1px solid var(--paper-line);flex-wrap:wrap;}
.nfp-ad-thumb{width:96px;height:64px;object-fit:cover;border-radius:2px;background:var(--paper);flex-shrink:0;}
.nfp-ad-row-body{flex:1;min-width:200px;}
.nfp-ad-row-actions{display:flex;gap:6px;flex-wrap:wrap;}

/* ---------------- Footer ---------------- */
.nfp-footer{background:var(--ink-deep);color:var(--blue-soft);margin-top:60px;}
.nfp-footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:44px 20px;font-size:13px;}
@media (max-width:700px){.nfp-footer-grid{grid-template-columns:1fr;}}
.nfp-footer-brand{color:#fff;font-size:18px;margin-bottom:8px;}
.nfp-footer-brand-logo{height:30px;width:auto;display:block;margin-bottom:12px;}
.nfp-footer-desc{font-size:12px;line-height:1.6;}
.nfp-footer-heading{font-size:11px;letter-spacing:.08em;color:#fff;margin-bottom:8px;}
.nfp-footer-link{display:block;padding:2px 0;}
.nfp-footer-link:hover{color:#fff;}
.nfp-footer-bottom{text-align:center;font-size:11px;padding:14px;border-top:1px solid var(--ink-line);}

/* ---------------- Misc ---------------- */
.nfp-center{text-align:center;}
.nfp-muted{color:var(--slate);}
.nfp-mt-8{margin-top:8px;} .nfp-mt-16{margin-top:16px;} .nfp-mt-24{margin-top:24px;} .nfp-mt-32{margin-top:32px;}
.nfp-max-lg{max-width:640px;margin:0 auto;}
.nfp-max-md{max-width:520px;margin:0 auto;}
.nfp-alert-success{padding:16px;background:var(--blue-pale);color:var(--blue);font-size:14px;display:flex;align-items:center;gap:8px;border-radius:2px;}
