Mobile and on-site training that equips you with life-saving skills when every second counts.

Now & Later CPR | Life-Saving Training — LA, OC & San Diego

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
–red: #D72B2B;
–red-dark: #A81E1E;
–cream: #F9F4EE;
–charcoal: #1A1A1A;
–mid: #4A4A4A;
–light: #D4C9BB;
–white: #FFFFFF;
}

html { scroll-behavior: smooth; }

body {
font-family: ‘DM Sans’, sans-serif;
background: var(–cream);
color: var(–charcoal);
overflow-x: hidden;
}

/* ── NAV ── */
nav {
position: fixed; top: 0; left: 0; right: 0; z-index: 100;
display: flex; align-items: center; justify-content: space-between;
padding: 18px 6%;
background: rgba(249,244,238,0.92);
backdrop-filter: blur(12px);
border-bottom: 1px solid rgba(0,0,0,0.07);
}
.nav-logo {
display: flex; align-items: center; gap: 12px; text-decoration: none;
}
.nav-logo img { width: 44px; height: 44px; object-fit: contain; }
.nav-logo-text { line-height: 1.1; }
.nav-logo-text span:first-child {
display: block;
font-family: ‘Bebas Neue’, sans-serif;
font-size: 1.25rem;
letter-spacing: 0.04em;
color: var(–charcoal);
}
.nav-logo-text span:last-child {
display: block;
font-size: 0.7rem;
color: var(–mid);
letter-spacing: 0.08em;
text-transform: uppercase;
}
.nav-links { display: flex; align-items: center; gap: 32px; }
.nav-links a {
text-decoration: none;
font-size: 0.85rem;
font-weight: 500;
letter-spacing: 0.05em;
text-transform: uppercase;
color: var(–mid);
transition: color 0.2s;
}
.nav-links a:hover { color: var(–red); }
.nav-cta {
background: var(–red) !important;
color: var(–white) !important;
padding: 10px 22px;
border-radius: 4px;
transition: background 0.2s !important;
}
.nav-cta:hover { background: var(–red-dark) !important; color: var(–white) !important; }

/* ── HERO ── */
.hero {
min-height: 100vh;
display: grid;
grid-template-columns: 1fr 1fr;
padding-top: 80px;
}
.hero-left {
display: flex; flex-direction: column; justify-content: center;
padding: 80px 6% 80px 8%;
position: relative;
}
.hero-eyebrow {
display: inline-flex; align-items: center; gap: 8px;
font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em;
text-transform: uppercase; color: var(–red);
margin-bottom: 20px;
}
.hero-eyebrow::before {
content: ”; display: block; width: 28px; height: 2px; background: var(–red);
}
.hero-headline {
font-family: ‘Bebas Neue’, sans-serif;
font-size: clamp(3.5rem, 6vw, 5.5rem);
line-height: 0.95;
letter-spacing: 0.01em;
color: var(–charcoal);
margin-bottom: 24px;
}
.hero-headline em {
font-style: italic;
font-family: ‘DM Serif Display’, serif;
color: var(–red);
}
.hero-sub {
font-size: 1.05rem;
line-height: 1.7;
color: var(–mid);
max-width: 420px;
margin-bottom: 40px;
}
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.btn-primary {
display: inline-flex; align-items: center; gap: 8px;
background: var(–red); color: var(–white);
padding: 16px 32px; border-radius: 4px;
font-size: 0.9rem; font-weight: 600; letter-spacing: 0.04em;
text-transform: uppercase; text-decoration: none;
transition: background 0.2s, transform 0.15s;
}
.btn-primary:hover { background: var(–red-dark); transform: translateY(-2px); }
.btn-secondary {
display: inline-flex; align-items: center; gap: 8px;
border: 2px solid var(–charcoal); color: var(–charcoal);
padding: 14px 28px; border-radius: 4px;
font-size: 0.9rem; font-weight: 600; letter-spacing: 0.04em;
text-transform: uppercase; text-decoration: none;
transition: border-color 0.2s, color 0.2s, transform 0.15s;
}
.btn-secondary:hover { border-color: var(–red); color: var(–red); transform: translateY(-2px); }
.hero-badges {
display: flex; gap: 16px; flex-wrap: wrap; margin-top: 48px;
}
.badge {
display: flex; align-items: center; gap: 8px;
font-size: 0.75rem; font-weight: 500; color: var(–mid);
letter-spacing: 0.04em;
}
.badge-dot { width: 8px; height: 8px; border-radius: 50%; background: var(–red); }

.hero-right {
background: var(–charcoal);
display: flex; flex-direction: column; justify-content: center; align-items: center;
position: relative; overflow: hidden;
padding: 60px 40px;
}
.hero-right::before {
content: ”;
position: absolute; inset: 0;
background: radial-gradient(ellipse at 30% 60%, rgba(215,43,43,0.35) 0%, transparent 65%);
}
.hero-logo-big {
width: min(260px, 60%);
position: relative; z-index: 1;
filter: drop-shadow(0 0 40px rgba(215,43,43,0.4));
animation: pulse-glow 3s ease-in-out infinite;
}
@keyframes pulse-glow {
0%, 100% { filter: drop-shadow(0 0 30px rgba(215,43,43,0.3)); }
50% { filter: drop-shadow(0 0 60px rgba(215,43,43,0.6)); }
}
.hero-tagline {
position: relative; z-index: 1;
font-family: ‘DM Serif Display’, serif;
font-style: italic;
font-size: clamp(1rem, 2vw, 1.3rem);
color: rgba(255,255,255,0.7);
text-align: center;
margin-top: 28px;
max-width: 280px;
line-height: 1.5;
}
.hero-stat-bar {
position: absolute; bottom: 0; left: 0; right: 0;
display: flex; border-top: 1px solid rgba(255,255,255,0.1);
z-index: 2;
}
.hero-stat {
flex: 1; padding: 20px;
text-align: center;
border-right: 1px solid rgba(255,255,255,0.1);
}
.hero-stat:last-child { border-right: none; }
.hero-stat-num {
font-family: ‘Bebas Neue’, sans-serif;
font-size: 1.8rem; color: var(–red); display: block;
}
.hero-stat-label {
font-size: 0.65rem; color: rgba(255,255,255,0.5);
letter-spacing: 0.08em; text-transform: uppercase;
}

/* ── SECTION SHARED ── */
section { padding: 100px 8%; }
.section-label {
font-size: 0.72rem; font-weight: 700; letter-spacing: 0.18em;
text-transform: uppercase; color: var(–red);
display: flex; align-items: center; gap: 10px;
margin-bottom: 18px;
}
.section-label::after { content: ”; flex: 1; max-width: 40px; height: 2px; background: var(–red); }
.section-title {
font-family: ‘Bebas Neue’, sans-serif;
font-size: clamp(2.4rem, 4vw, 3.6rem);
line-height: 1; letter-spacing: 0.02em;
margin-bottom: 16px;
}
.section-sub {
font-size: 1rem; color: var(–mid); line-height: 1.7; max-width: 520px;
}

/* ── SERVICES ── */
#services { background: var(–white); }
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 2px;
margin-top: 60px;
border: 2px solid var(–charcoal);
}
.service-card {
padding: 40px 32px;
border-right: 2px solid var(–charcoal);
border-bottom: 2px solid var(–charcoal);
transition: background 0.25s;
position: relative; overflow: hidden;
}
.service-card:hover { background: var(–charcoal); }
.service-card:hover .service-title,
.service-card:hover .service-desc { color: var(–white); }
.service-card:hover .service-icon { color: var(–red); }
.service-icon { font-size: 2rem; margin-bottom: 18px; display: block; color: var(–red); }
.service-title {
font-family: ‘Bebas Neue’, sans-serif;
font-size: 1.5rem; letter-spacing: 0.03em;
margin-bottom: 10px; transition: color 0.25s;
}
.service-desc {
font-size: 0.875rem; line-height: 1.65;
color: var(–mid); transition: color 0.25s;
}
.service-tag {
display: inline-block; margin-top: 16px;
font-size: 0.65rem; font-weight: 700; letter-spacing: 0.1em;
text-transform: uppercase; background: var(–red);
color: var(–white); padding: 4px 10px; border-radius: 2px;
}

/* ── WHY US ── */
#why {
background: var(–charcoal);
color: var(–white);
}
#why .section-title { color: var(–white); }
#why .section-sub { color: rgba(255,255,255,0.6); }
.why-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 40px; margin-top: 64px;
}
.why-item { border-top: 3px solid var(–red); padding-top: 24px; }
.why-num {
font-family: ‘Bebas Neue’, sans-serif;
font-size: 3.5rem; color: rgba(215,43,43,0.2);
line-height: 1; margin-bottom: 8px;
}
.why-title {
font-family: ‘DM Serif Display’, serif;
font-size: 1.25rem; color: var(–white);
margin-bottom: 10px;
}
.why-desc { font-size: 0.875rem; line-height: 1.65; color: rgba(255,255,255,0.55); }

/* ── AREAS ── */
#areas { background: var(–cream); }
.areas-flex {
display: flex; gap: 80px; margin-top: 60px; flex-wrap: wrap;
}
.area-block { flex: 1; min-width: 200px; }
.area-name {
font-family: ‘Bebas Neue’, sans-serif;
font-size: 2rem; letter-spacing: 0.04em;
border-bottom: 3px solid var(–red);
padding-bottom: 10px; margin-bottom: 18px;
}
.area-list { list-style: none; }
.area-list li {
padding: 8px 0; font-size: 0.9rem; color: var(–mid);
border-bottom: 1px solid var(–light);
display: flex; align-items: center; gap: 10px;
}
.area-list li::before { content: ‘→’; color: var(–red); font-weight: bold; }

/* ── CONTACT ── */
#contact {
background: var(–red);
color: var(–white);
text-align: center;
}
#contact .section-label { color: rgba(255,255,255,0.7); justify-content: center; }
#contact .section-label::after { background: rgba(255,255,255,0.4); }
#contact .section-title { color: var(–white); }
.contact-sub {
font-size: 1.05rem; color: rgba(255,255,255,0.8);
margin: 0 auto 48px; max-width: 500px; line-height: 1.7;
}
.contact-cards {
display: flex; justify-content: center; gap: 24px; flex-wrap: wrap;
margin-bottom: 48px;
}
.contact-card {
background: rgba(255,255,255,0.12);
border: 1px solid rgba(255,255,255,0.25);
padding: 28px 36px; border-radius: 6px;
min-width: 200px;
}
.contact-card-icon { font-size: 1.6rem; display: block; margin-bottom: 10px; }
.contact-card-label {
font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em;
text-transform: uppercase; color: rgba(255,255,255,0.6);
margin-bottom: 6px;
}
.contact-card-val {
font-size: 1rem; font-weight: 600; color: var(–white);
text-decoration: none;
}
.contact-card-val:hover { text-decoration: underline; }
.btn-white {
display: inline-flex; align-items: center; gap: 8px;
background: var(–white); color: var(–red);
padding: 16px 40px; border-radius: 4px;
font-size: 0.9rem; font-weight: 700; letter-spacing: 0.05em;
text-transform: uppercase; text-decoration: none;
transition: background 0.2s, transform 0.15s;
}
.btn-white:hover { background: var(–cream); transform: translateY(-2px); }

/* ── FOOTER ── */
footer {
background: #0E0E0E; color: rgba(255,255,255,0.4);
padding: 36px 8%;
display: flex; justify-content: space-between; align-items: center;
flex-wrap: wrap; gap: 16px;
}
footer a { color: rgba(255,255,255,0.4); text-decoration: none; }
footer a:hover { color: var(–red); }
.footer-brand {
font-family: ‘Bebas Neue’, sans-serif;
font-size: 1.1rem; letter-spacing: 0.06em;
color: rgba(255,255,255,0.7);
}
.footer-links { display: flex; gap: 24px; font-size: 0.78rem; }

/* ── ANIMATIONS ── */
.fade-up {
opacity: 0; transform: translateY(24px);
transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-up.visible { opacity: 1; transform: translateY(0); }

/* ── RESPONSIVE ── */
@media (max-width: 800px) {
.hero { grid-template-columns: 1fr; min-height: auto; }
.hero-right { min-height: 380px; }
.nav-links { display: none; }
.hero-left { padding: 60px 6%; }
section { padding: 72px 6%; }
.areas-flex { gap: 40px; }
}

Certified CPR & First Aid Training

Save A Life
Today.
Be Ready
Tomorrow.

Professional CPR and First Aid certification for individuals, families, and organizations — on your schedule, at your location.

Same-Day Certification
Mobile & On-Site
Group Rates Available
Now & Later CPR

Empowering Lifesavers Today for a Safer Tomorrow

3
Counties Served
100%
Hands-On Training
AHA
Certified Program

Our Training Programs

Every class is hands-on, practical, and taught by certified instructors who bring real-world experience.

❤️

CPR / AED Certification

Learn adult, child, and infant CPR plus automated defibrillator use. Certification valid for 2 years.

Most Popular

🩹

First Aid Training

Covers wound care, burns, fractures, allergic reactions, and emergency response essentials.

👶

Pediatric CPR

Specialized training for parents, childcare providers, and school staff focused on infant and child emergencies.

🏢

Group & Corporate

We come to your workplace. Discounted group rates for teams of 5 or more. Flexible scheduling available.

Best Value

🚗

Mobile Training

No facility? No problem. We bring all equipment directly to your home, office, or community center.

Same-Day Certification

Need your cert fast? We offer same-day classes for individuals throughout LA, OC, and San Diego.

Urgent

Training Built Around Your Life

We designed Now & Later CPR around one idea: life-saving education should be accessible to everyone.

01
We Come To You

Mobile training means no driving across town. We set up at your location with all manikins and equipment.

02
Same-Day Available

Job starts tomorrow? We offer same-day CPR certification classes for last-minute needs — just reach out.

03
Certified Instructors

Our trainers are certified, experienced, and passionate about making sure every student leaves confident.

04
Serving All of SoCal

From Downtown LA to San Diego — we serve individuals and businesses across Southern California.

We Come to You, Across SoCal

Serving communities throughout Los Angeles, Orange County, and San Diego County.

Los Angeles
  • Downtown LA
  • Long Beach
  • Pasadena
  • Burbank & Glendale
  • West LA / Santa Monica
  • South Bay
Orange County
  • Anaheim
  • Irvine
  • Santa Ana
  • Huntington Beach
  • Costa Mesa
  • Orange
San Diego
  • Downtown San Diego
  • Chula Vista
  • Escondido
  • Oceanside
  • El Cajon
  • La Mesa

Ready to Book?

Reach out to schedule your class. We respond fast and can often accommodate same-day or next-day bookings.

📍

Service Area

LA · Orange County · San Diego

Availability

Same-Day Booking Available

✉️ Email to Book Your Class

// Scroll-triggered fade-in
const observer = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) { e.target.classList.add(‘visible’); }
});
}, { threshold: 0.12 });
document.querySelectorAll(‘.fade-up’).forEach(el => observer.observe(el));