MailPro Today

MailPro — Intelligent Direct Mail

:root{
–bg:#09090B;
–bg1:#0F0F12;
–bg2:#141418;
–bg3:#1A1A1F;
–bg4:#222228;
–border:#ffffff0f;
–border2:#ffffff18;
–border3:#ffffff28;
–text:#FAFAFA;
–text2:#A1A1AA;
–text3:#71717A;
–neon:#00E5A0;
–neon2:#00C98A;
–neon-glow:rgba(0,229,160,.15);
–amber:#F59E0B;
–purple:#8B5CF6;
–white:#FFFFFF;
–sans:’Inter’,system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(–sans);background:var(–bg);color:var(–text);overflow-x:hidden;-webkit-font-smoothing:antialiased}
::selection{background:var(–neon);color:#000}

/* NAV */
nav{
position:fixed;top:0;left:0;right:0;z-index:200;
display:flex;align-items:center;justify-content:space-between;
padding:1.1rem 2.5rem;
border-bottom:1px solid transparent;
transition:all .3s;
}
nav.scrolled{
background:rgba(9,9,11,.85);
backdrop-filter:blur(20px);
border-bottom-color:var(–border);
}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.nav-mark{
width:32px;height:32px;background:var(–neon);border-radius:8px;
display:flex;align-items:center;justify-content:center;
}
.nav-mark svg{width:16px;height:16px}
.nav-name{font-size:17px;font-weight:700;color:var(–text);letter-spacing:-.02em}
.nav-links{display:flex;gap:2rem;list-style:none}
.nav-links a{font-size:14px;font-weight:400;color:var(–text2);text-decoration:none;transition:color .15s}
.nav-links a:hover{color:var(–text)}
.nav-actions{display:flex;align-items:center;gap:10px}
.btn-ghost{
padding:8px 18px;border-radius:8px;
border:1px solid var(–border2);background:transparent;
color:var(–text2);font-family:var(–sans);font-size:14px;
cursor:pointer;text-decoration:none;transition:all .15s;
}
.btn-ghost:hover{border-color:var(–border3);color:var(–text);background:var(–bg3)}
.btn-neon{
padding:9px 20px;border-radius:8px;
background:var(–neon);color:#000;
font-family:var(–sans);font-size:14px;font-weight:600;
border:none;cursor:pointer;text-decoration:none;
transition:all .15s;display:inline-flex;align-items:center;gap:6px;
}
.btn-neon:hover{background:#00f0aa;transform:translateY(-1px)}

/* HERO */
.hero{
min-height:100vh;
display:flex;flex-direction:column;
align-items:center;justify-content:center;
padding:9rem 2rem 6rem;
text-align:center;
position:relative;overflow:hidden;
}
/* grid background */
.hero::before{
content:”;position:absolute;inset:0;
background-image:linear-gradient(var(–border) 1px,transparent 1px),linear-gradient(90deg,var(–border) 1px,transparent 1px);
background-size:60px 60px;
mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 100%);
}
/* neon glow */
.hero-glow{
position:absolute;top:20%;left:50%;transform:translateX(-50%);
width:700px;height:400px;
background:radial-gradient(ellipse,rgba(0,229,160,.12) 0%,transparent 70%);
pointer-events:none;
}
.hero-badge{
display:inline-flex;align-items:center;gap:7px;
background:rgba(0,229,160,.08);
border:1px solid rgba(0,229,160,.2);
border-radius:100px;padding:5px 14px;
font-size:12px;font-weight:500;color:var(–neon);
letter-spacing:.02em;margin-bottom:2rem;
animation:fadeUp .6s .1s both;
}
.badge-dot{width:6px;height:6px;border-radius:50%;background:var(–neon);box-shadow:0 0 8px var(–neon);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
h1.hero-h{
font-size:clamp(48px,7vw,90px);
font-weight:700;
line-height:.98;
letter-spacing:-.04em;
color:var(–text);
margin-bottom:1.75rem;
animation:fadeUp .7s .2s both;
}
h1.hero-h .neon{color:var(–neon)}
h1.hero-h .dim{color:var(–text3)}
.hero-sub{
font-size:18px;font-weight:400;color:var(–text2);
line-height:1.65;max-width:560px;margin:0 auto 2.5rem;
animation:fadeUp .7s .35s both;
}
.hero-actions{
display:flex;align-items:center;justify-content:center;
gap:12px;flex-wrap:wrap;
animation:fadeUp .7s .5s both;
}
.btn-neon-lg{
padding:14px 32px;border-radius:10px;
background:var(–neon);color:#000;
font-family:var(–sans);font-size:15px;font-weight:600;
letter-spacing:-.01em;border:none;cursor:pointer;text-decoration:none;
transition:all .15s;display:inline-flex;align-items:center;gap:8px;
}
.btn-neon-lg:hover{background:#00f0aa;transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,229,160,.3)}
.btn-outline-lg{
padding:13px 28px;border-radius:10px;
border:1px solid var(–border2);background:transparent;
color:var(–text2);font-family:var(–sans);font-size:15px;font-weight:500;
cursor:pointer;text-decoration:none;transition:all .15s;
}
.btn-outline-lg:hover{border-color:var(–border3);color:var(–text);background:var(–bg3)}
.hero-trust{
display:flex;align-items:center;justify-content:center;
gap:1.5rem;margin-top:3rem;flex-wrap:wrap;
animation:fadeUp .7s .65s both;
}
.trust-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(–text3)}
.trust-sep{width:1px;height:14px;background:var(–border2)}
.trust-item svg{width:14px;height:14px;stroke:var(–text3);stroke-width:1.5;fill:none}

/* floating cards */
.hero-cards{
display:flex;gap:14px;justify-content:center;
margin-top:4rem;flex-wrap:wrap;
animation:fadeUp .7s .75s both;
}
.hcard{
background:var(–bg2);border:1px solid var(–border2);
border-radius:12px;padding:16px 20px;
text-align:left;min-width:160px;
transition:border-color .2s,transform .2s;
}
.hcard:hover{border-color:var(–border3);transform:translateY(-2px)}
.hcard-label{font-size:11px;font-weight:500;color:var(–text3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}
.hcard-val{font-size:26px;font-weight:700;color:var(–text);letter-spacing:-.03em;line-height:1}
.hcard-delta{font-size:12px;color:var(–neon);margin-top:4px;font-weight:500}
.hcard-delta.amber{color:var(–amber)}
.hcard-delta.purple{color:var(–purple)}

/* TICKER */
.ticker-wrap{
border-top:1px solid var(–border);border-bottom:1px solid var(–border);
background:var(–bg1);overflow:hidden;padding:14px 0;
}
.ticker{display:flex;gap:0;width:max-content;animation:tick 24s linear infinite}
.tick-item{
padding:0 2rem;font-size:12px;font-weight:500;
color:var(–text3);letter-spacing:.06em;text-transform:uppercase;
white-space:nowrap;display:flex;align-items:center;gap:8px;
}
.tick-sep{width:4px;height:4px;border-radius:50%;background:var(–border3)}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* METRICS STRIP */
.metrics-strip{
display:grid;grid-template-columns:repeat(4,1fr);
border-bottom:1px solid var(–border);
}
.metric{
padding:2.5rem 2rem;border-right:1px solid var(–border);
position:relative;overflow:hidden;
transition:background .2s;
}
.metric:last-child{border-right:none}
.metric:hover{background:var(–bg1)}
.metric-num{
font-size:clamp(36px,3.5vw,52px);font-weight:700;
letter-spacing:-.04em;color:var(–text);
line-height:1;margin-bottom:6px;
}
.metric-num .neon{color:var(–neon)}
.metric-label{font-size:13px;color:var(–text2);font-weight:400;line-height:1.5}
.metric-tag{
display:inline-block;font-size:10px;font-weight:600;
letter-spacing:.08em;text-transform:uppercase;
padding:2px 8px;border-radius:4px;margin-bottom:.75rem;
}
.tag-neon{background:rgba(0,229,160,.1);color:var(–neon);border:1px solid rgba(0,229,160,.2)}
.tag-amber{background:rgba(245,158,11,.1);color:var(–amber);border:1px solid rgba(245,158,11,.2)}
.tag-purple{background:rgba(139,92,246,.1);color:var(–purple);border:1px solid rgba(139,92,246,.2)}
.tag-white{background:rgba(255,255,255,.06);color:var(–text2);border:1px solid var(–border2)}

/* SECTION SHARED */
.section{padding:7rem 2rem}
.section-inner{max-width:1160px;margin:0 auto}
.section-eyebrow{
font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
color:var(–neon);margin-bottom:1rem;
display:flex;align-items:center;gap:8px;
}
.section-eyebrow::before{content:”;width:16px;height:2px;background:var(–neon)}
h2.stitle{
font-size:clamp(36px,4.5vw,56px);font-weight:700;
letter-spacing:-.04em;color:var(–text);line-height:1.05;
margin-bottom:1.25rem;
}
h2.stitle .neon{color:var(–neon)}
h2.stitle .dim{color:var(–text3)}
.sdesc{font-size:17px;font-weight:400;color:var(–text2);line-height:1.7;max-width:520px}

/* HOW */
.how-bg{background:var(–bg1);border-top:1px solid var(–border);border-bottom:1px solid var(–border)}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:3.5rem;border:1px solid var(–border)}
.step{
padding:2rem 1.5rem;border-right:1px solid var(–border);
position:relative;overflow:hidden;transition:background .15s;
}
.step:last-child{border-right:none}
.step:hover{background:var(–bg2)}
.step-n{
font-size:11px;font-weight:700;letter-spacing:.1em;
color:var(–neon);text-transform:uppercase;margin-bottom:1.25rem;
display:flex;align-items:center;gap:6px;
}
.step-n::after{content:”;flex:1;height:1px;background:rgba(0,229,160,.2)}
.step-title{font-size:16px;font-weight:600;color:var(–text);letter-spacing:-.01em;margin-bottom:.6rem}
.step-desc{font-size:13px;color:var(–text2);line-height:1.65;font-weight:400}

/* FEATURES */
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(–border);margin-top:3.5rem;border:1px solid var(–border)}
.feat{background:var(–bg1);padding:2.5rem;transition:background .15s;position:relative;overflow:hidden}
.feat:hover{background:var(–bg2)}
.feat.wide{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.feat-tag{
font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
margin-bottom:1rem;display:inline-flex;align-items:center;gap:6px;
}
.feat-tag::before{content:”;width:12px;height:2px}
.feat-title{font-size:22px;font-weight:700;color:var(–text);letter-spacing:-.02em;margin-bottom:.75rem;line-height:1.2}
.feat-desc{font-size:14px;color:var(–text2);line-height:1.75;font-weight:400}
.feat-list{list-style:none;margin-top:1.25rem;display:flex;flex-direction:column;gap:8px}
.feat-list li{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(–text2)}
.feat-list li::before{content:”;width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px}

/* Pipe vis */
.pipe{display:flex;flex-direction:column;gap:5px;margin-top:1.75rem}
.pipe-row{
display:flex;align-items:center;gap:10px;
background:rgba(255,255,255,.03);border:1px solid var(–border);
border-radius:6px;padding:9px 12px;
}
.pipe-row.ok{background:rgba(0,229,160,.05);border-color:rgba(0,229,160,.15)}
.pipe-row.warn{background:rgba(245,158,11,.05);border-color:rgba(245,158,11,.15)}
.pdot{width:6px;height:6px;border-radius:50%;background:var(–text3);flex-shrink:0}
.pipe-row.ok .pdot{background:var(–neon);box-shadow:0 0 6px rgba(0,229,160,.5)}
.pipe-row.warn .pdot{background:var(–amber)}
.plabel{font-size:12px;color:var(–text2);flex:1}
.pbadge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px}
.pbadge.ok{background:rgba(0,229,160,.12);color:var(–neon)}
.pbadge.warn{background:rgba(245,158,11,.12);color:var(–amber)}

/* bars */
.rbars{display:flex;flex-direction:column;gap:8px;margin-top:1.5rem}
.rbar-row{display:flex;align-items:center;gap:10px}
.rbar-id{font-size:11px;color:var(–text3);width:48px;flex-shrink:0;font-weight:500}
.rbar-wrap{flex:1;height:5px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden}
.rbar-fill{height:5px;border-radius:3px}
.rbar-pct{font-size:12px;font-weight:600;min-width:34px;text-align:right}

/* ai typing */
.ai-vis{
background:rgba(255,255,255,.03);border:1px solid var(–border);
border-radius:8px;padding:16px;margin-top:1.5rem;
}
.ai-ctx{font-size:10px;color:var(–text3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;font-weight:600}
.ai-l{height:7px;background:rgba(255,255,255,.06);border-radius:4px;margin-bottom:8px}
.ai-l.hl{height:13px;background:rgba(0,229,160,.12);width:82%}
.ai-cursor{display:inline-block;width:2px;height:13px;background:var(–neon);vertical-align:middle;margin-left:2px;animation:blink 1s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.ai-actions{display:flex;gap:6px;margin-top:12px}
.ai-btn{
padding:4px 12px;border-radius:5px;font-size:11px;font-weight:500;
border:1px solid var(–border2);background:transparent;color:var(–text3);
cursor:pointer;font-family:var(–sans);transition:all .15s;
}
.ai-btn:hover{border-color:var(–neon);color:var(–neon)}
.ai-btn.active{background:rgba(0,229,160,.1);border-color:rgba(0,229,160,.3);color:var(–neon)}

/* stats grid in wide feat */
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:1.75rem}
.sg-card{background:rgba(255,255,255,.03);border:1px solid var(–border);border-radius:8px;padding:16px}
.sg-val{font-size:24px;font-weight:700;color:var(–neon);letter-spacing:-.03em;line-height:1}
.sg-label{font-size:11px;color:var(–text3);margin-top:4px;font-weight:400}

/* TESTIMONIALS */
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(–border);border:1px solid var(–border);margin-top:3.5rem}
.tcard{background:var(–bg1);padding:2.5rem;transition:background .15s}
.tcard:hover{background:var(–bg2)}
.tcard-stars{margin-bottom:1.25rem}
.star{color:var(–amber);font-size:15px}
.tcard-q{
font-size:15px;font-weight:400;color:var(–text2);
line-height:1.75;margin-bottom:1.75rem;font-style:italic;
}
.tcard-a{display:flex;align-items:center;gap:10px}
.tcard-av{
width:36px;height:36px;border-radius:8px;
display:flex;align-items:center;justify-content:center;
font-size:12px;font-weight:700;color:#000;flex-shrink:0;
}
.tcard-name{font-size:13px;font-weight:600;color:var(–text)}
.tcard-role{font-size:12px;color:var(–text3)}
.tcard-result{margin-left:auto;font-size:20px;font-weight:700;color:var(–neon);letter-spacing:-.02em}

/* INDUSTRIES */
.ind-bg{background:var(–bg1);border-top:1px solid var(–border);border-bottom:1px solid var(–border)}
.ind-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:2.5rem}
.ind-chip{
display:flex;align-items:center;gap:8px;
padding:10px 16px;
background:var(–bg2);border:1px solid var(–border);border-radius:8px;
font-size:14px;font-weight:500;color:var(–text2);
cursor:default;transition:all .15s;
}
.ind-chip:hover{border-color:var(–neon);color:var(–text);background:rgba(0,229,160,.05)}
.ind-chip svg{width:15px;height:15px;stroke:var(–text3);stroke-width:1.5;fill:none;flex-shrink:0}
.ind-chip:hover svg{stroke:var(–neon)}

/* PRICING */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(–border);border:1px solid var(–border);margin-top:3.5rem}
.pcard{background:var(–bg1);padding:2.5rem;position:relative}
.pcard.featured{background:linear-gradient(135deg,#0F1F18 0%,#0A1612 100%);border:1px solid rgba(0,229,160,.25)}
.ptier{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(–text3);margin-bottom:1.25rem}
.pcard.featured .ptier{color:rgba(0,229,160,.6)}
.pname{font-size:22px;font-weight:700;color:var(–text);letter-spacing:-.02em;margin-bottom:.4rem}
.pamount{font-size:52px;font-weight:700;color:var(–text);letter-spacing:-.05em;line-height:1;margin-bottom:4px}
.pcard.featured .pamount{color:var(–neon)}
.pperiod{font-size:13px;color:var(–text3);margin-bottom:2rem}
.pdiv{height:1px;background:var(–border);margin-bottom:1.5rem}
.pfeats{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:2rem}
.pfeats li{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(–text2)}
.pcheck{width:16px;height:16px;flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center}
.pcheck svg{width:11px;height:11px;stroke-width:2.5;fill:none}
.pop-badge{
position:absolute;top:-12px;left:50%;transform:translateX(-50%);
background:var(–neon);color:#000;
font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
padding:3px 12px;border-radius:100px;white-space:nowrap;
}
.btn-neon-full{
display:block;width:100%;padding:13px;border-radius:8px;
background:var(–neon);color:#000;
font-family:var(–sans);font-size:14px;font-weight:600;
text-align:center;text-decoration:none;border:none;cursor:pointer;
transition:all .15s;
}
.btn-neon-full:hover{background:#00f0aa}
.btn-dark-full{
display:block;width:100%;padding:12px;border-radius:8px;
background:transparent;color:var(–text2);
font-family:var(–sans);font-size:14px;font-weight:500;
text-align:center;text-decoration:none;
border:1px solid var(–border2);cursor:pointer;transition:all .15s;
}
.btn-dark-full:hover{border-color:var(–border3);color:var(–text);background:var(–bg3)}

/* CTA */
.cta-wrap{
margin:0 2rem 4rem;border-radius:20px;
background:var(–bg2);border:1px solid var(–border2);
padding:6rem 3rem;text-align:center;
position:relative;overflow:hidden;
}
.cta-glow{
position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
width:600px;height:300px;
background:radial-gradient(ellipse,rgba(0,229,160,.08) 0%,transparent 70%);
pointer-events:none;
}
.cta-eyebrow{
font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
color:var(–neon);margin-bottom:1.25rem;
display:flex;align-items:center;justify-content:center;gap:8px;
}
.cta-eyebrow::before,.cta-eyebrow::after{content:”;width:20px;height:1px;background:rgba(0,229,160,.4)}
h2.cta-title{
font-size:clamp(36px,5vw,62px);font-weight:700;
letter-spacing:-.04em;color:var(–text);line-height:1.05;
margin-bottom:1.25rem;
}
h2.cta-title .neon{color:var(–neon)}
.cta-desc{font-size:17px;color:var(–text2);max-width:480px;margin:0 auto 2.5rem;line-height:1.65}
.cta-form{
display:flex;max-width:420px;margin:0 auto;gap:8px;
position:relative;z-index:1;flex-wrap:wrap;justify-content:center;
}
.cta-input{
flex:1;min-width:200px;padding:13px 18px;border-radius:8px;
background:rgba(255,255,255,.06);border:1px solid var(–border2);
color:var(–text);font-family:var(–sans);font-size:14px;
outline:none;transition:border-color .15s;
}
.cta-input:focus{border-color:rgba(0,229,160,.4)}
.cta-input::placeholder{color:var(–text3)}
.cta-note{font-size:12px;color:var(–text3);margin-top:.75rem}

/* FOOTER */
footer{
max-width:1160px;margin:0 auto;
padding:4rem 2rem 2rem;
display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;
border-top:1px solid var(–border);
}
.footer-logo{display:flex;align-items:center;gap:10px;margin-bottom:1rem;text-decoration:none}
.footer-desc{font-size:13px;color:var(–text3);line-height:1.75;max-width:240px}
.fcol-head{font-size:13px;font-weight:600;color:var(–text);margin-bottom:1rem;letter-spacing:-.01em}
.flinks{list-style:none;display:flex;flex-direction:column;gap:9px}
.flinks a{font-size:13px;color:var(–text3);text-decoration:none;transition:color .15s}
.flinks a:hover{color:var(–text)}
.footer-bottom{
max-width:1160px;margin:0 auto;
padding:1.5rem 2rem 2.5rem;
display:flex;align-items:center;justify-content:space-between;
border-top:1px solid var(–border);
}
.fcopy{font-size:12px;color:var(–text3)}

/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.8);backdrop-filter:blur(8px);z-index:9000;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
.modal-box{background:var(–bg2);border:1px solid var(–border2);border-radius:16px;padding:3rem;max-width:400px;width:90%;text-align:center;position:relative;animation:fadeUp .35s ease}
.modal-close{position:absolute;top:1.25rem;right:1.25rem;background:var(–bg3);border:none;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:14px;color:var(–text2);display:flex;align-items:center;justify-content:center}
.modal-icon{font-size:36px;margin-bottom:1rem;display:block}
.modal-title{font-size:26px;font-weight:700;letter-spacing:-.03em;color:var(–text);margin-bottom:.75rem}
.modal-desc{font-size:14px;color:var(–text2);line-height:1.65;margin-bottom:2rem}

/* ANIM */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* RESPONSIVE */
@media(max-width:1024px){
.steps{grid-template-columns:repeat(3,1fr)}
.feat-grid{grid-template-columns:1fr}
.feat.wide{grid-column:auto;grid-template-columns:1fr}
.tgrid{grid-template-columns:1fr}
.pgrid{grid-template-columns:1fr;max-width:380px;margin-left:auto;margin-right:auto}
.metrics-strip{grid-template-columns:1fr 1fr}
.metric:nth-child(2){border-right:none}
.metric:nth-child(3){border-top:1px solid var(–border)}
footer{grid-template-columns:1fr 1fr;gap:2rem}
.section,.cta-wrap,.footer-bottom{padding-left:1.5rem;padding-right:1.5rem}
nav{padding:1rem 1.5rem}
}
@media(max-width:768px){
.nav-links{display:none}
.steps{grid-template-columns:1fr 1fr}
.hero-cards{display:none}
footer{grid-template-columns:1fr;padding:3rem 1.5rem 1.5rem}
.footer-bottom{flex-direction:column;gap:.5rem;text-align:center;padding:1.5rem}
}

Now with property data scoring

AI-powered
direct mail that
actually converts.

CRM-connected, AI-optimized campaigns with precision route targeting, verified addresses, and intelligence that compounds with every send.

SOC 2 Type II
No credit card required
USPS EDDM certified
GDPR compliant
2,400+ customers

Response rate
2.4%
↑ 2.2× industry avg

Revenue / piece
$1.45
3.2× vs traditional

Cost per lead
$27
avg across customers

Deliverability
98.2%
After validation

Salesforce

HubSpot

Klaviyo

Lob

PostGrid

USPS EDDM

ATTOM Data

CallRail

Claude AI

NCOA / CASS

Stripe

Salesforce

HubSpot

Klaviyo

Lob

PostGrid

USPS EDDM

ATTOM Data

CallRail

Claude AI

NCOA / CASS

Stripe

Response
2.4%
Average response rate — 2.2× the 1.1% industry benchmark

Revenue
$1.45
Revenue per piece mailed across all platform customers

Accuracy
98.2%
Deliverability score after our five-stage validation pipeline

Scale
12k+
Campaigns launched across home services, real estate, and retail

The MailPro method

From CRM to doorstep
in five steps.

Every step validates, refines, and improves the next. A learning loop, not a mail house.

01
Pull your segment
Connect Salesforce, HubSpot, or Klaviyo. Live segments — no CSV exports.

02
Validate & suppress
NCOA, CASS, deduplication, suppression. Nothing undeliverable reaches print.

03
Route + property score
EDDM routes layered with ATTOM data. Target homes most likely to convert.

04
Generate AI copy
Claude AI writes copy calibrated to your audience’s demographics and housing profile.

05
Track & optimize
Log calls by route. AI identifies which zones to expand and which to cut.

Platform capabilities

Every tool.
One platform.

CRM connection, address validation, route targeting, AI copy, fulfillment, and response tracking — end to end.

CRM intelligence
Your CRM connected
to your mailbox.

Live segment sync with Salesforce, HubSpot, and Klaviyo. No CSV exports. Opt-outs and frequency caps enforced on every send. Conversion data written back automatically.

  • Live segment sync — no manual exports
  • Frequency caps prevent over-mailing
  • Do-not-mail suppression on every send
  • Conversion data pushed back to CRM
Validation pipeline
NCOA — address changes
−3%
CASS standardization
100%
Deduplication
−4%
Suppression check
−7%
Deliverability score
98.2%

AI copywriter
Copy built for
the neighborhood.

Claude AI writes headlines, body, and CTAs calibrated to your audience’s income, homeownership rate, and housing stock. Not templated. Not generic.

Generating · Route C002 · $88k income · 71% homeowners


Response tracking
Every call.
Every route. Tracked.

Log inbound calls by carrier route, outcome, and revenue. AI identifies your top-converting zones and tells you exactly where to focus next send.

47
Calls tracked
38%
Conversion rate
$8.4k
Revenue attributed
$27
Cost per lead

Customer results

Real campaigns.
Real revenue.

“We used to mail 10,000 pieces and hope. Now we mail 4,000 to the right houses and get more calls than we ever did at twice the volume.”
MR
Marcus Rowe
Rowe HVAC, Austin TX
3.1%

“The property data scoring is the killer feature. Targeting homes with no HVAC permit in 8+ years vs blanketing a zip code — completely different results.”
DP
Diane Park
Comfort Air, Denver CO
+34%

“Three tools became one. Cost per booked job dropped $22 in the first campaign. The tracking alone paid for the subscription in month one.”
JL
James Liu
Liu Plumbing, Chicago IL
$19

Built for

Every business that
serves a neighborhood.

Home Services
Real Estate
Healthcare & Dental
Retail & Local
Financial Services
Restaurants
Nonprofit
Automotive

Pricing

Simple pricing.
Scale when you win.

No per-piece software fees. No setup costs. Your print vendor is billed at market rate — separately.

Launch
Launch
$149
/ month, billed annually
  • 3 campaigns per month

  • Up to 5,000 pieces per campaign

  • 1 CRM integration

  • NCOA + CASS validation

  • EDDM route targeting

  • AI copy generation

  • 30-day response tracking

Start free trial

Enterprise
Scale
Custom
volume pricing
  • Unlimited volume

  • Multi-location management

  • White-label option

  • Custom API integrations

  • Dedicated CSM + SLA

  • SSO / SAML auth

  • Custom data retention

Talk to sales

All plans include a 14-day free trial · No credit card required · Cancel anytime

Get started today

Your next campaign
should be smarter.

Join 2,400+ local businesses using MailPro to find the right households, mail with precision, and get better every single send.

14 days free · No credit card · Cancel anytime

window.addEventListener(‘scroll’,()=>document.getElementById(‘nav’).classList.toggle(‘scrolled’,window.scrollY>50));
const obs=new IntersectionObserver(e=>{e.forEach(x=>{if(x.isIntersecting)x.target.classList.add(‘visible’)})},{threshold:.1,rootMargin:’0px 0px -30px 0px’});
document.querySelectorAll(‘.reveal’).forEach(el=>obs.observe(el));

const routes=[{id:’C002′,r:2.9,c:’#00E5A0′},{id:’C001′,r:2.9,c:’#00E5A0′},{id:’C006′,r:1.9,c:’#8B5CF6′},{id:’C005′,r:1.8,c:’#8B5CF6′},{id:’C004′,r:1.2,c:’rgba(255,255,255,.25)’},{id:’C008′,r:.8,c:’rgba(255,255,255,.15)’}];
const rb=document.getElementById(‘rbars’);
if(rb)rb.innerHTML=routes.map(r=>`

${r.id}
${r.r}%

`).join(”);

document.querySelectorAll(‘a[href^=”#”]’).forEach(a=>{a.addEventListener(‘click’,e=>{const id=a.getAttribute(‘href’).slice(1);const el=document.getElementById(id);if(el){e.preventDefault();el.scrollIntoView({behavior:’smooth’,block:’start’})}})});

function handleCTA(e){e.preventDefault();document.getElementById(‘modal’).classList.add(‘open’)}
document.getElementById(‘modal’).addEventListener(‘click’,function(e){if(e.target===this)this.classList.remove(‘open’)});