See why people trust us to get the job done
We empower our clients to make the best mortgage decisions for them and their families.
The best refinancing deal
Helped us refinance from our high interest rate and helped us keep our closing costs as low as possible! I looked at a couple other refinancing options but I couldn’t find better pricing.
Got a loan perfect for my needs
We closed just a bit ago and I feel like the weight of the world has been lifted. This is a great loan and perfect for my needs! Thank you again, Forever American Mortgage for all of the help and hard work!
First-time homebuyer's dream
As a first-time homebuyer, I couldn’t have asked for a better team to guide me through the process (…) Forever Mortgage provided exceptional service, making the buying experience seamless and smooth.
The best interest rate prices
They had the best interest rate prices (…) and were able to swiftly close the deal quickly. Great customer experience, walked us through each step and set the right expectations along the way.
A myriad of loan options
FAM was able to present us with mortgage options that we didn’t know were available, making our monthly mortgage manageable even with today’s high interest rates.
They went above and beyond for us
They made the process of securing a loan for our new home seamless and stress-free. Their professionalism, attention to detail, and willingness to go above and beyond truly set them apart.
Great service, great communication
Sean and team at Forever American Mortgage are amazing! Great service, great communication and saved us a bunch! Will definitely be recommending them to all my friends!
Best possible terms on the market
Not only do they finance my place the first time and get me the best possible terms on the market, then they turn around and get me with a refi 6 months later at even better terms!!
Never left in the dark
Communicated with me the entire time, never left me in the dark, and got answers to my questions extremely fast. I will definitely be working with them again in the future.
Very helpful and always available
As first time buyer my wife and I had so many questions and concerns regarding this process. I really appreciate all the help and guidance we received, this is priceless.
document.addEventListener('DOMContentLoaded', function () {
// Select all review content elements inside each review slide.
const reviewContents = document.querySelectorAll('.review-item .review-content');
const wordLimit = 20;
reviewContents.forEach(function(reviewContent, index) {
// Use textContent to get all the text, then trim and normalize whitespace.
let contentText = reviewContent.textContent || '';
contentText = contentText.trim().replace(/\s+/g, ' ');
// Log the processed text and word count for debugging.
console.log(`Element ${index} processed text: "${contentText}"`);
const words = contentText.split(' ');
console.log(`Element ${index} word count: ${words.length}`);
// Only proceed if the word count exceeds the wordLimit.
if (words.length > wordLimit) {
// Get the visible and extra parts.
const visibleContent = words.slice(0, wordLimit).join(' ');
const extraContent = words.slice(wordLimit).join(' ');
// Replace the inner HTML with the truncated content and a hidden span.
reviewContent.innerHTML = `<p>
${visibleContent}<span class="extra-content" style="display: none;"> ${extraContent}</span>
</p>`;
// Create the Read More button.
const readMoreBtn = document.createElement('button');
readMoreBtn.textContent = 'Read More';
readMoreBtn.classList.add('read-more-btn');
reviewContent.appendChild(readMoreBtn);
// Toggle extra content visibility on click.
readMoreBtn.addEventListener('click', function () {
const extraSpan = reviewContent.querySelector('.extra-content');
if (extraSpan.style.display === 'block') {
extraSpan.style.display = 'none';
readMoreBtn.textContent = 'Read More';
} else {
extraSpan.style.display = 'block';
readMoreBtn.textContent = 'Read Less';
}
});
}
});
});