*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } :root { –black: #111112; –white: #ffffff; –off-white: #f7f7f5; –light-gray: #efefed; –accent: #e8ff47; –accent-dark: #c8df00; –blue: #2a6ef5; –text-dark: #111112; –text-mid: #444450; –text-muted: #7a7a8a; –border: rgba(0,0,0,0.08); –font-display: ‘Bebas Neue’, sans-serif; –font-body: ‘DM Sans’, sans-serif; } html { scroll-behavior: smooth; } body { background: var(–white); color: var(–text-dark); font-family: var(–font-body); font-size: 16px; line-height: 1.6; overflow-x: hidden; } /* ── SECTION BASE ── */ section { padding: 6rem 5%; width: 100%; max-width: 100%; box-sizing: border-box; } .section-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(–blue); margin-bottom: 1rem; display: flex; align-items: center; gap: 0.6rem; } .section-label::after { content: ”; flex: 1; max-width: 40px; height: 1px; background: var(–blue); } .section-title { font-family: var(–font-display); font-size: clamp(2.4rem, 5vw, 4.5rem); letter-spacing: 0.03em; text-transform: uppercase; line-height: 0.95; margin-bottom: 1rem; color: var(–text-dark); } .section-sub { color: var(–text-muted); font-size: 1rem; max-width: 560px; font-weight: 300; line-height: 1.7; } /* ── HERO ── */ .hero { display: flex; flex-direction: column; justify-content: center; padding: 5rem 5% 5rem; min-height: auto; position: relative; overflow: hidden; background: var(–white); border-bottom: 1px solid var(–border); } .hero-bg-text { position: absolute; top: 50%; left: -2%; transform: translateY(-50%); font-family: var(–font-display); font-size: clamp(8rem, 22vw, 22rem); color: rgba(0,0,0,0.03); white-space: nowrap; pointer-events: none; letter-spacing: 0.04em; user-select: none; } .hero-tag { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(–blue); margin-bottom: 1.5rem; } .hero-tag::before { content: ”; width: 24px; height: 2px; background: var(–blue); } .hero h1 { font-family: var(–font-display); font-size: clamp(3.5rem, 9vw, 8.5rem); line-height: 0.92; letter-spacing: 0.02em; text-transform: uppercase; margin-bottom: 1.5rem; max-width: 900px; color: var(–text-dark); } .hero h1 span { color: var(–blue); display: block; } .hero h1 em { font-style: normal; color: var(–black); display: block; } .hero-sub { font-size: 1.1rem; color: var(–text-muted); max-width: 520px; margin-bottom: 2.5rem; font-weight: 300; line-height: 1.7; } .hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; } .btn-primary { background: var(–black); color: var(–accent); padding: 0.85rem 2rem; border-radius: 2px; font-weight: 700; font-size: 0.9rem; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; transition: background 0.2s, transform 0.15s; display: inline-block; } .btn-primary:hover { background: #222; transform: translateY(-2px); } .btn-ghost { border: 1px solid rgba(0,0,0,0.2); color: var(–text-dark); padding: 0.85rem 2rem; border-radius: 2px; font-weight: 500; font-size: 0.9rem; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; transition: border-color 0.2s, color 0.2s; } .btn-ghost:hover { border-color: var(–blue); color: var(–blue); } .certs-row { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-top: 3rem; padding-top: 2.5rem; border-top: 1px solid var(–border); } .cert-badge { display: flex; align-items: center; gap: 0.6rem; background: var(–off-white); border: 1px solid var(–border); border-radius: 2px; padding: 0.5rem 1rem; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(–blue); } .cert-badge span { color: var(–text-muted); font-weight: 400; } /* ── FOCUS AREAS ── */ .focus-section { background: var(–off-white); } .focus-header { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 2rem; margin-bottom: 3.5rem; } .focus-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(–border); border: 1px solid var(–border); } .focus-card { background: var(–white); padding: 2rem 1.8rem; transition: background 0.25s, box-shadow 0.25s; position: relative; overflow: hidden; } .focus-card:hover { background: #fafaf8; box-shadow: inset 0 -3px 0 var(–blue); } .focus-card:hover .focus-number { color: var(–blue); } .focus-number { font-family: var(–font-display); font-size: 3.5rem; color: rgba(0,0,0,0.06); line-height: 1; margin-bottom: 0.5rem; transition: color 0.25s; } .focus-icon { font-size: 1.6rem; margin-bottom: 1rem; } .focus-name { font-family: var(–font-display); font-size: 1.4rem; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 0.6rem; color: var(–text-dark); } .focus-desc { font-size: 0.88rem; color: var(–text-muted); line-height: 1.65; } /* ── SERVICES ── */ .services-section { background: var(–white); } .services-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; } .services-list { margin-top: 2.5rem; } .service-item { display: flex; align-items: flex-start; gap: 1.2rem; padding: 1.2rem 0; border-bottom: 1px solid var(–border); } .service-item:first-child { border-top: 1px solid var(–border); } .service-check { width: 22px; height: 22px; flex-shrink: 0; background: var(–black); color: var(–accent); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 700; margin-top: 0.1rem; } .service-name { font-weight: 600; font-size: 1rem; margin-bottom: 0.25rem; color: var(–text-dark); } .service-desc { font-size: 0.85rem; color: var(–text-muted); line-height: 1.55; } /* ── PRICING ── */ .pricing-card { background: var(–black); border-radius: 4px; padding: 2.5rem 2rem; position: sticky; top: 6rem; color: var(–white); } .pricing-eyebrow { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(–accent); margin-bottom: 1rem; } .pricing-amount { font-family: var(–font-display); font-size: 5rem; line-height: 1; color: var(–white); margin-bottom: 0.2rem; } .pricing-period { font-size: 0.9rem; color: rgba(255,255,255,0.4); margin-bottom: 2rem; } .pricing-includes { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 1rem; } .pricing-feature { display: flex; align-items: center; gap: 0.75rem; padding: 0.55rem 0; font-size: 0.9rem; color: var(–white); border-bottom: 1px solid rgba(255,255,255,0.06); } .pricing-feature:last-of-type { border-bottom: none; margin-bottom: 1.5rem; } .pricing-dot { width: 6px; height: 6px; border-radius: 50%; background: var(–accent); flex-shrink: 0; } .referral-box { background: rgba(232,255,71,0.08); border: 1px dashed rgba(232,255,71,0.3); border-radius: 3px; padding: 1rem 1.2rem; font-size: 0.85rem; margin-top: 1.5rem; line-height: 1.55; color: rgba(255,255,255,0.75); } .referral-box strong { color: var(–accent); } /* ── SOCIAL PROOF ── */ .proof-section { background: var(–off-white); } .results-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1px; background: var(–border); border: 1px solid var(–border); margin: 3rem 0; } .result-stat { background: var(–white); padding: 2rem 1.5rem; text-align: center; } .stat-word { font-family: var(–font-display); font-size: clamp(1.4rem, 2.5vw, 2rem); letter-spacing: 0.04em; text-transform: uppercase; line-height: 1.1; color: var(–text-dark); } .stat-word.accent { color: var(–blue); } .testimonials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; margin-top: 3rem; } .testimonial-card { background: var(–white); border: 1px solid var(–border); border-radius: 4px; padding: 1.8rem; position: relative; } .testimonial-card::before { content: ‘”‘; font-family: var(–font-display); font-size: 5rem; color: var(–blue); opacity: 0.15; position: absolute; top: 0.5rem; left: 1.2rem; line-height: 1; } .testimonial-text { font-size: 0.95rem; color: var(–text-mid); line-height: 1.65; margin-bottom: 1.2rem; padding-top: 1.5rem; } .testimonial-name { font-weight: 700; font-size: 0.9rem; color: var(–text-dark); } .testimonial-result { font-size: 0.78rem; color: var(–blue); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; margin-top: 0.2rem; } .transformation-strip { background: var(–white); border: 1px solid var(–border); border-radius: 4px; padding: 2rem; margin-top: 3rem; display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; } .transform-tag { background: rgba(42,110,245,0.07); border: 1px solid rgba(42,110,245,0.2); color: var(–blue); padding: 0.4rem 1rem; border-radius: 2px; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; } .transform-label { font-size: 0.82rem; color: var(–text-muted); flex: 1; min-width: 200px; } /* ── COMMUNICATION ── */ .comm-section { background: var(–white); } .comm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1.5rem; margin-top: 3rem; } .comm-card { border: 1px solid var(–border); border-radius: 4px; padding: 1.8rem 1.5rem; background: var(–off-white); transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s; } .comm-card:hover { border-color: var(–blue); transform: translateY(-4px); box-shadow: 0 8px 24px rgba(42,110,245,0.08); } .comm-icon { font-size: 1.8rem; margin-bottom: 1rem; display: block; } .comm-name { font-family: var(–font-display); font-size: 1.3rem; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 0.5rem; color: var(–text-dark); } .comm-desc { font-size: 0.83rem; color: var(–text-muted); line-height: 1.55; } /* ── CTA ── */ .cta-section { background: var(–black); text-align: center; padding: 6rem 5%; position: relative; overflow: hidden; } .cta-bg { position: absolute; inset: 0; font-family: var(–font-display); font-size: 18vw; color: rgba(255,255,255,0.03); display: flex; align-items: center; justify-content: center; pointer-events: none; user-select: none; line-height: 1; } .cta-section .section-label { color: var(–accent); justify-content: center; } .cta-section .section-label::after { background: var(–accent); } .cta-section h2 { font-family: var(–font-display); font-size: clamp(2.5rem, 6vw, 5.5rem); text-transform: uppercase; color: var(–white); line-height: 0.93; margin-bottom: 1.2rem; position: relative; } .cta-section p { color: rgba(255,255,255,0.5); font-size: 1.05rem; max-width: 480px; margin: 0 auto 2.5rem; font-weight: 300; position: relative; } .btn-dark { background: var(–accent); color: var(–black); padding: 1rem 2.5rem; border-radius: 2px; font-weight: 700; font-size: 0.9rem; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; display: inline-block; transition: background 0.2s, transform 0.15s; position: relative; } .btn-dark:hover { background: var(–accent-dark); transform: translateY(-2px); } /* ── FOOTER ── */ footer { background: var(–off-white); border-top: 1px solid var(–border); padding: 2.5rem 5%; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; font-size: 0.82rem; color: var(–text-muted); } footer a { color: var(–blue); text-decoration: none; } /* ── FULL WIDTH OVERRIDES ── */ .site-content, .entry-content, .wp-block-group, #content, #primary, .site-main, main { max-width: 100% !important; width: 100% !important; padding: 0 !important; margin: 0 !important; } /* ── SCROLL REVEAL ── */ .reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.6s ease, transform 0.6s ease; } .reveal.visible { opacity: 1; transform: translateY(0); } /* ── MOBILE NAV ── */ .mobile-menu-btn { display: none; background: none; border: none; cursor: pointer; color: var(–text-dark); font-size: 1.4rem; padding: 0.3rem; } .mobile-nav { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(–white); z-index: 99; flex-direction: column; align-items: center; justify-content: center; gap: 2.5rem; } .mobile-nav.open { display: flex; } .mobile-nav a { font-family: var(–font-display); font-size: 2.5rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(–text-dark); text-decoration: none; transition: color 0.2s; } .mobile-nav a:hover { color: var(–blue); } .mobile-nav-close { position: absolute; top: 1.5rem; right: 5%; background: none; border: none; cursor: pointer; color: var(–text-dark); font-size: 1.6rem; } /* ── RESPONSIVE ── */ @media (max-width: 768px) { .mobile-menu-btn { display: block; } .services-layout { grid-template-columns: 1fr; } .pricing-card { position: static; } .focus-grid { grid-template-columns: 1fr; } } /* ───────────────────────────────────────── fitness-trainer.js Scroll reveal, mobile nav, active nav link ───────────────────────────────────────── */ document.addEventListener(‘DOMContentLoaded’, function () { // ── SCROLL REVEAL ────────────────────────────────────────────── // Adds .reveal to eligible elements, then watches them with // IntersectionObserver and adds .visible when they enter view. const revealSelectors = [ ‘.focus-card’, ‘.service-item’, ‘.testimonial-card’, ‘.comm-card’, ‘.result-stat’, ‘.cert-badge’, ‘.transform-tag’, ‘.section-title’, ‘.section-label’, ‘.section-sub’, ‘.pricing-card’, ‘.hero-tag’, ‘.hero h1’, ‘.hero-sub’, ‘.hero-actions’, ‘.certs-row’, ]; const revealElements = document.querySelectorAll(revealSelectors.join(‘, ‘)); revealElements.forEach(function (el) { el.classList.add(‘reveal’); }); const observer = new IntersectionObserver( function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { entry.target.classList.add(‘visible’); observer.unobserve(entry.target); } }); }, { threshold: 0.12, rootMargin: ‘0px 0px -40px 0px’ } ); revealElements.forEach(function (el) { observer.observe(el); }); // Stagger children inside grids for a cascade effect const staggerParents = document.querySelectorAll( ‘.focus-grid, .comm-grid, .testimonials-grid, .results-grid, .certs-row’ ); staggerParents.forEach(function (parent) { const children = parent.querySelectorAll(‘.reveal’); children.forEach(function (child, i) { child.style.transitionDelay = (i * 80) + ‘ms’; }); }); // ── MOBILE NAV ───────────────────────────────────────────────── // Injects a hamburger button into the nav and a full-screen // overlay menu for mobile viewports. var nav = document.querySelector(‘nav’); // Create hamburger button var menuBtn = document.createElement(‘button’); menuBtn.className = ‘mobile-menu-btn’; menuBtn.setAttribute(‘aria-label’, ‘Open menu’); menuBtn.innerHTML = ‘☰’; // ☰ nav.appendChild(menuBtn); // Create mobile overlay var mobileNav = document.createElement(‘div’); mobileNav.className = ‘mobile-nav’; mobileNav.innerHTML = ` Home Focus Services Results Pricing Start Today `; document.body.appendChild(mobileNav); var closeBtn = mobileNav.querySelector(‘.mobile-nav-close’); menuBtn.addEventListener(‘click’, function () { mobileNav.classList.add(‘open’); document.body.style.overflow = ‘hidden’; }); closeBtn.addEventListener(‘click’, function () { mobileNav.classList.remove(‘open’); document.body.style.overflow = ”; }); // Close menu when a link is clicked mobileNav.querySelectorAll(‘a’).forEach(function (link) { link.addEventListener(‘click’, function () { mobileNav.classList.remove(‘open’); document.body.style.overflow = ”; }); }); // ── ACTIVE NAV LINK ──────────────────────────────────────────── // Highlights the nav link matching the section currently in view. var sections = document.querySelectorAll(‘section[id], nav + section[id]’); var navLinks = document.querySelectorAll(‘.nav-links a’); var sectionObserver = new IntersectionObserver( function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { var id = entry.target.getAttribute(‘id’); navLinks.forEach(function (link) { link.style.color = ”; link.style.opacity = ‘0.75’; if (link.getAttribute(‘href’) === ‘#’ + id) { link.style.color = ‘var(–accent)’; link.style.opacity = ‘1’; } }); } }); }, { threshold: 0.35 } ); sections.forEach(function (section) { sectionObserver.observe(section); }); // ── NAV SCROLL SHADOW ────────────────────────────────────────── // Adds a slightly more opaque background to the nav once the // user scrolls past the fold. window.addEventListener(‘scroll’, function () { if (window.scrollY > 80) { nav.style.background = ‘rgba(10,10,10,0.98)’; } else { nav.style.background = ‘rgba(10,10,10,0.92)’; } }, { passive: true }); // ── SMOOTH CTA PULSE ────────────────────────────────────────── // Briefly pulses the CTA button to draw attention after 4s. setTimeout(function () { var ctaBtn = document.querySelector(‘.nav-cta’); if (!ctaBtn) return; ctaBtn.style.transition = ‘background 0.2s, transform 0.15s, box-shadow 0.3s’; ctaBtn.style.boxShadow = ‘0 0 0 6px rgba(232,255,71,0.2)’; setTimeout(function () { ctaBtn.style.boxShadow = ‘0 0 0 0px rgba(232,255,71,0)’; }, 800); }, 4000); }); Online Fitness Trainer | Custom Coaching & Workout Plans
LIFT
NASM · ACE · ISSA Certified

Train Smarter.
Get Results.

Online personal training built around progressive overload, fat loss, muscle gain, and real accountability — all from anywhere in the world.

NASM Certified Personal Trainer
ACE Fitness Certified
ISSA Certified Specialist
The Core
Focus Areas

Every program is built around these pillars — designed to make real, lasting change.

01
🏋️
Workout Routines

Structured programs tailored to your goals, equipment, and fitness level. No guesswork.

02
📈
Progressive Overload

Scientific load progression built into every cycle so you never plateau.

03
🔥
Fat Loss & Muscle Gain

Body recomposition strategies that actually work — sustainable and effective.

04
🛡️
Recovery & Injury Prevention

Smart programming that keeps you training hard without breaking down.

05
🥗
Nutrition Basics

Macro targets and meal guidance that support your training — simple and practical.

06
🎯
Form Coaching

Video form checks and cues to maximize efficiency and stay injury-free.

What You
Get Daily
Custom Workout Plans

Fully personalized programs designed around your goals, schedule, and available equipment.

Weekly Check-Ins

Structured weekly reviews to assess progress and adjust your program in real time.

Meal Guidance & Nutrition Targets

Practical macro targets and food guidance — no complicated diets, just results.

Weekly Accountability

Regular touchpoints to keep you on track and motivated throughout the week.

Messaging Support

Direct coach access — ask questions, get answers, stay supported between sessions.

Form Checks via Video

Send video clips and receive detailed coaching feedback on your technique.

Habit & Progress Tracking

Structured tracking so you can see exactly how far you’ve come — week by week.

Monthly Investment
$250
per month
Everything included:
Custom workout program
Weekly check-ins & adjustments
Nutrition targets & meal guidance
Daily messaging support
Video form reviews
Habit & progress tracking
Start Now →
💰 Refer 2 friends — earn $25.
When you refer two people who sign up, you get $25 back — as a thank-you for spreading the word.
Clients Who
Showed Up

These aren’t before-and-after photos. These are life changes. Here’s what clients say happens when they commit.

Lost
Weight
Built
Muscle
Improved
Confidence
More
Disciplined
Better Posture
& Health

I’ve tried a dozen programs over the years. This is the first time I’ve actually stuck to it for longer than 6 weeks. The weekly check-ins and messaging support made all the difference.

Jordan M.
-22 lbs in 3 months

The form check videos changed everything for my lifts. I was compensating wrong for years and didn’t even know it. My back pain is basically gone now.

Marcus T.
Pain-free + 40 lb deadlift PR

I never thought nutrition coaching would be this simple. No crazy diets — just clear targets I could actually hit. I finally feel like I understand how to eat for my goals.

Priya K.
Body recomp — stronger & leaner
Coaches Who
Actually Show Up
Responsive

Fast replies. You won’t be waiting days for an answer when you have a question.

🔥
Motivating

Accountability without judgment. Encouragement when you need it most.

📋
Organized

Everything is structured — your program, your check-ins, your goals. No chaos.

📅
Consistent

Weekly rhythm that keeps you progressing without burning out.

🧠
Simplifying Fitness

No confusion, no information overload. Just clear direction and action.

GO

Your Best
Shape Starts
Now

Join clients who stopped guessing and started seeing real results. $250/month. Full support. Real coaching.

Apply for Coaching →
© 2025 FitCoach Online Training. All rights reserved.
NASM · ACE · ISSA Certified  |  yourcoach@email.com
http://script.js