:root { --primary: #0A1C3A; --secondary: #F8F1E9; --accent: #D4A017; --text: #2E2E2E; --shadow: rgba(0, 0, 0, 0.15); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Roboto', sans-serif; background: var(--secondary); color: var(--text); line-height: 1.75; } #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--primary); display: flex; justify-content: center; align-items: center; z-index: 9999; transition: opacity 0.5s; } #preloader.hidden { opacity: 0; pointer-events: none; } .preloader-spinner { border: 4px solid var(--accent); border-top: 4px solid transparent; border-radius: 50%; width: 40px; height: 40px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } header { background: var(--primary); padding: 1.5rem 0; position: sticky; top: 0; z-index: 1000; box-shadow: 0 4px 12px var(--shadow); transition: background 0.3s; overflow: visible; } header.scrolled { background: #0E2B5A; } .logo-container { max-width: 1300px; margin: 0 auto; padding: 0 2.5rem; display: flex; align-items: center; justify-content: space-between; } .logo-text { font-family: 'Lora', serif; font-weight: 700; font-size: clamp(1.8rem, 5vw, 2.25rem); color: var(--accent); letter-spacing: -0.03em; } .g-clef { font-size: clamp(1.8rem, 5vw, 2.5rem); color: var(--accent); margin-right: 0.75rem; } .logo-link { display: flex; align-items: center; text-decoration: none; } nav { flex-grow: 1; } nav ul { list-style: none; display: flex; gap: 2.5rem; justify-content: flex-end; } nav a { font-family: 'Lora', serif; color: var(--secondary); text-decoration: none; font-weight: 600; font-size: clamp(1rem, 3vw, 1.125rem); position: relative; transition: color 0.3s, transform 0.3s; } nav a:hover { color: var(--accent); transform: scale(1.05); } nav a::after { content: ''; position: absolute; width: 0; height: 2px; bottom: -5px; left: 0; background: var(--accent); transition: width 0.3s; } nav a:hover::after { width: 100%; } .dropdown { position: relative; } .dropbtn { cursor: pointer; } .dropdown-content { display: none; position: absolute; background: var(--primary); min-width: 200px; box-shadow: 0 8px 16px var(--shadow); border-radius: 8px; padding: 0.75rem 0; top: 100%; right: 0; z-index: 1000; } .dropdown-content a { color: var(--secondary); padding: 0.75rem 1.25rem; display: block; font-size: 1rem; } .dropdown-content a:hover { background: #0E2B5A; } .dropdown:hover .dropdown-content { display: block; } .hamburger { display: none; font-size: 1.5rem; color: var(--secondary); cursor: pointer; position: relative; } .hamburger::before { content: '☰'; font-size: 1.5rem; display: inline-block; } .hamburger.fa-times::before { content: '✕'; } @media (max-width: 768px) { .hamburger { display: block; position: absolute; top: 1.5rem; right: 2.5rem; } nav ul { display: none; flex-direction: column; position: absolute; top: 100%; left: 0; width: 100%; background: var(--primary); padding: 1.25rem; border-radius: 0 0 8px 8px; box-shadow: 0 8px 16px var(--shadow); z-index: 999; } nav ul.active { display: flex; } .dropdown-content { position: static; width: 100%; box-shadow: none; background: #0E2B5A; } .logo-container { flex-direction: row; align-items: center; justify-content: space-between; padding: 0 2.5rem; } nav a { font-size: 1rem; padding: 0.5rem 0; } } .section { max-width: 1300px; margin: clamp(5rem, 10vw, 7.5rem) auto; padding: 0 2.5rem; } .section h1, .section h2 { font-family: 'Lora', serif; font-weight: 700; font-size: clamp(2rem, 5vw, 3rem); color: var(--accent); text-align: center; margin-bottom: 3.75rem; letter-spacing: -0.03em; text-shadow: 1px 1px 3px var(--shadow); } .section h1::after, .section h2::after { content: ''; width: 60px; height: 5px; background: var(--accent); display: block; margin: 1rem auto; } .section h3 { font-family: 'Lora', serif; font-weight: 600; font-size: clamp(1.25rem, 3vw, 1.5rem); color: var(--accent); margin-bottom: 0.9375rem; } .section p { font-size: clamp(0.9375rem, 2.5vw, 1rem); color: var(--text); margin-bottom: 1.25rem; } .creations-content { max-width: 900px; margin: 0 auto; text-align: center; } .creations-content a { color: var(--accent); text-decoration: none; transition: color 0.3s; } .creations-content a:hover { color: var(--primary); } .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin: 2.5rem 0; } .card { background: #FFFFFF; border: 1px solid #E0E0E0; border-radius: 12px; padding: 1.875rem; box-shadow: 0 8px 16px var(--shadow); text-align: center; transition: all 0.3s; will-change: transform; } .card:hover { transform: translateY(-8px); box-shadow: 0 12px 24px var(--shadow); } .card i { color: var(--accent); font-size: 2em; margin-bottom: 0.9375rem; } .card h3 { font-family: 'Lora', serif; font-weight: 600; font-size: clamp(1.25rem, 3vw, 1.5rem); color: var(--accent); margin-bottom: 0.9375rem; } .card p { font-size: clamp(0.9375rem, 2.5vw, 1rem); color: var(--text); margin-bottom: 1.25rem; } .card button { background: var(--accent); color: var(--primary) !important; border: 2px solid var(--accent); padding: 0.875rem 1.75rem; font-family: 'Lora', serif; font-weight: 600; font-size: clamp(0.9375rem, 2.5vw, 1rem); border-radius: 8px; cursor: pointer; transition: all 0.3s; text-transform: uppercase; pointer-events: auto; opacity: 1; } .card button:hover { background: #B78E12; color: #FFFFFF !important; border-color: #B78E12; transform: translateY(-2px); box-shadow: 0 4px 12px var(--shadow); } .featured-card { background: #FFFFFF; padding: 2.5rem; min-height: 250px; } .audio-wrapper { margin: 1.875rem 0; text-align: center; } audio { width: 100%; max-width: 400px; } .cta { background: var(--accent); color: var(--primary) !important; border: 2px solid var(--accent); padding: 1rem 2rem; font-family: 'Lora', serif; font-weight: 700; font-size: clamp(1rem, 2.5vw, 1.125rem); border-radius: 8px; cursor: pointer; transition: all 0.3s; text-transform: uppercase; display: inline-block; text-decoration: none; pointer-events: auto; opacity: 1; } .cta:hover { background: #B78E12; color: #FFFFFF !important; border-color: #B78E12; transform: translateY(-3px); box-shadow: 0 4px 12px var(--shadow); } .fade-in { opacity: 0; animation: fadeIn 1s ease-in forwards; } @keyframes fadeIn { to { opacity: 1; transform: translateY(0); } } footer { background: var(--primary); color: var(--secondary); text-align: center; padding: 3.75rem 2.5rem; font-size: clamp(0.875rem, 2vw, 0.9375rem); } .footer-links { display: flex; justify-content: center; gap: 1.5rem; margin-bottom: 1.25rem; } .footer-links a { color: var(--accent); text-decoration: none; font-size: clamp(0.875rem, 2vw, 0.9375rem); padding: 0.5rem; transition: color 0.3s; } .footer-links a:hover { color: var(--secondary); }

Custom Family Reunion Songs: A Musical Tribute to Your Family's History

Ready to make your family reunion truly unforgettable? SongCreations crafts **custom family reunion songs** that are as unique as your family tree. Our family-run studio in Jacksonville, Florida, specializes in turning your most cherished memories into a personalized, timeless melody. Whether you're celebrating a long-overdue get-together or a **milestone family reunion**, our professional songwriters and musicians create a heartfelt, royalty-free song that you'll all treasure forever. Tell us your family's story on our order form and let’s create something beautiful!

Order Your Family Song Now

Why a Personalized Song is the Ultimate Reunion Gift

A family reunion isn't just an event; it's a celebration of your shared history and unbreakable bonds. A **personalized family reunion song** goes beyond a traditional memento, transforming your shared memories and inside jokes into an emotional and enduring piece of art. Our expert team at SongCreations weaves in details about your family's heritage, favorite traditions, and special moments to create a song that feels like it was written just for your clan. This unique and meaningful gift is perfect for playing as a reunion anthem or simply for a quiet moment of reflection on your family's journey.

Our Simple 6-Step Process for a Personalized Reunion Song

Creating your **custom family reunion song** with SongCreations is a seamless and heartfelt process. Our team at Studio 105 Recording is dedicated to making it as easy as possible for you to give this beautiful gift:

1. Share Your Family's Story

Tell us about your family’s history—your first gathering, funniest stories, or personal details—on our simple order form.

2. We Write Your Song

Our skilled songwriters craft poignant and beautiful lyrics, paired with a melody that perfectly reflects your unique family bond.

3. Professional Studio Production

Your song is professionally recorded at our studio with high-quality instruments and vocals, ensuring a polished, radio-ready sound.

4. Preview and Finalize

You’ll hear a preview in just 24-48 hours. We’ll work with your feedback to ensure every detail is perfect.

5. Fast Delivery

Receive your **royalty-free song** in high-quality MP3 or WAV format within 48 hours, ready to be a part of your celebration.

6. A Gift That Lasts Generations

This is a timeless keepsake that can be enjoyed for years to come, reminding everyone of their love and connection.

Happy Families, Timeless Memories

Read what our happy customers have to say about their **personalized music gifts**:

“The reunion song was the perfect way to bring all the generations together. It was so moving and personal!”

The Miller Family, San Diego

“The custom song for our reunion was a huge hit! It was a great way to celebrate our family's history.”

The Johnson Family, Atlanta

Ready to Celebrate Your Family's Story in Song?

There's no better way to honor your family's heritage than with a truly personal gift. SongCreations makes it easy to create a **custom family reunion song** that captures the essence of your connection. Our professional team, fast delivery, and heartfelt dedication ensure you'll have a timeless musical keepsake. Order today and make your next family reunion the most memorable one yet!

Start Creating Your Song!