diff --git a/README.md b/README.md index ce9bcce..64f929c 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,9 @@ This is a modern, responsive website prototype featuring: ## Files -- `index.html` - Main website file +- `index.html` - Main HTML structure +- `css/styles.css` - All styles and responsive design +- `js/main.js` - Tab switching, mobile menu, and smooth scroll - `radiance-wellness-analysis.md` - Comprehensive design analysis - `prototype-guide.md` - Technical implementation guide @@ -72,7 +74,7 @@ python -m http.server 8000 ## Performance - Minimal dependencies (only Google Fonts) -- Self-contained single-file design +- Separate CSS and JS files for better caching - Mobile-optimized ## Future Enhancements diff --git a/css/styles.css b/css/styles.css new file mode 100644 index 0000000..cafc977 --- /dev/null +++ b/css/styles.css @@ -0,0 +1,833 @@ +/* ===== CSS VARIABLES ===== */ +:root { + /* Brand Colors */ + --primary-dark: #3e2d24; + --secondary-taupe: #73634e; + --accent-beige: #dcb89e; + --accent-gold: #d4a574; + --accent-sage: #9ca986; + --success-green: #7a9b76; + + /* Backgrounds */ + --bg-cream: #faf8f5; + --bg-white: #ffffff; + --bg-light: #f8f5f1; + + /* Text */ + --text-dark: #2a1f19; + --text-mid: #5c4d42; + --text-light: #73634e; + + /* Typography */ + --font-heading: 'Alegreya', serif; + --font-body: 'Montserrat', sans-serif; + + /* Spacing */ + --spacing-xs: 0.5rem; + --spacing-sm: 1rem; + --spacing-md: 2rem; + --spacing-lg: 4rem; + --spacing-xl: 6rem; + + /* Borders */ + --border-radius: 8px; + --border-radius-lg: 16px; +} + +/* ===== RESET & BASE STYLES ===== */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: var(--font-body); + color: var(--text-dark); + background-color: var(--bg-cream); + line-height: 1.6; + font-size: 16px; +} + +h1, h2, h3, h4, h5, h6 { + font-family: var(--font-heading); + font-weight: 500; + line-height: 1.2; + margin-bottom: var(--spacing-sm); +} + +h1 { font-size: 3.2em; } +h2 { font-size: 2.4em; } +h3 { font-size: 1.8em; } + +p { + margin-bottom: var(--spacing-sm); + color: var(--text-mid); +} + +a { + color: var(--primary-dark); + text-decoration: none; + transition: color 0.3s ease; +} + +a:hover { + color: var(--accent-gold); +} + +a:focus-visible, +.btn:focus-visible, +.tab-btn:focus-visible, +button:focus-visible { + outline: 3px solid var(--accent-gold); + outline-offset: 2px; +} + +/* Skip to content link */ +.skip-link { + position: absolute; + top: -40px; + left: 0; + background: var(--primary-dark); + color: var(--bg-white); + padding: 8px 16px; + z-index: 9999; + transition: top 0.3s; + text-decoration: none; +} + +.skip-link:focus { + top: 0; +} + +img { + max-width: 100%; + height: auto; + display: block; +} + +/* ===== UTILITY CLASSES ===== */ +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 var(--spacing-md); +} + +.section { + padding: var(--spacing-xl) 0; +} + +.section-title { + text-align: center; + margin-bottom: var(--spacing-lg); + color: var(--primary-dark); +} + +.section-subtitle { + text-align: center; + color: var(--text-light); + font-size: 1.1em; + margin-top: -1rem; + margin-bottom: var(--spacing-lg); +} + +.btn { + display: inline-block; + padding: 1rem 2rem; + border-radius: var(--border-radius); + font-weight: 600; + font-family: var(--font-body); + text-transform: uppercase; + letter-spacing: 0.5px; + transition: all 0.3s ease; + cursor: pointer; + border: none; + font-size: 0.9em; +} + +.btn-primary { + background-color: var(--accent-gold); + color: var(--bg-white); + box-shadow: 0 4px 12px rgba(212, 165, 116, 0.3); +} + +.btn-primary:hover { + background-color: #c69663; + transform: translateY(-2px); + box-shadow: 0 6px 16px rgba(212, 165, 116, 0.4); +} + +.btn-secondary { + background-color: transparent; + color: var(--primary-dark); + border: 2px solid var(--primary-dark); +} + +.btn-secondary:hover { + background-color: var(--primary-dark); + color: var(--bg-white); +} + +/* ===== HEADER (STICKY NAVIGATION) ===== */ +.header { + position: sticky; + top: 0; + background-color: var(--bg-white); + box-shadow: 0 2px 12px rgba(0,0,0,0.08); + z-index: 1000; + padding: 1rem 0; +} + +.nav-container { + display: flex; + justify-content: space-between; + align-items: center; +} + +.logo { + font-family: var(--font-heading); + font-size: 1.8em; + font-weight: 700; + color: var(--primary-dark); +} + +.nav-menu { + display: flex; + gap: var(--spacing-md); + align-items: center; + list-style: none; +} + +.nav-link { + font-weight: 500; + font-size: 0.95em; + transition: color 0.3s ease; +} + +.nav-link:hover { + color: var(--accent-sage); +} + +.mobile-menu-toggle { + display: none; + flex-direction: column; + gap: 4px; + cursor: pointer; +} + +.mobile-menu-toggle span { + width: 25px; + height: 3px; + background-color: var(--primary-dark); + transition: all 0.3s ease; +} + +.header-cta { + display: flex; + gap: var(--spacing-sm); + align-items: center; +} + +.phone-number { + font-weight: 600; + color: var(--primary-dark); + margin-right: var(--spacing-sm); +} + +/* ===== HERO SECTION ===== */ +.hero { + position: relative; + height: 100vh; + min-height: 600px; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + color: var(--bg-white); + overflow: hidden; +} + +.hero-video-bg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + z-index: -2; + background: linear-gradient(135deg, #9ca986, #dcb89e); +} + +.hero-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: linear-gradient(135deg, rgba(62, 45, 36, 0.7), rgba(156, 169, 134, 0.5)); + z-index: -1; +} + +.hero-content { + max-width: 800px; + padding: var(--spacing-md); + animation: fadeInUp 1s ease-out; +} + +.hero h1 { + font-size: 3.5em; + margin-bottom: var(--spacing-md); + text-shadow: 2px 2px 8px rgba(0,0,0,0.3); +} + +.hero-subtitle { + font-size: 1.3em; + margin-bottom: var(--spacing-lg); + font-weight: 300; + text-shadow: 1px 1px 4px rgba(0,0,0,0.3); +} + +.hero-cta-group { + display: flex; + gap: var(--spacing-sm); + justify-content: center; + flex-wrap: wrap; +} + +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* ===== TRUST BAR ===== */ +.trust-bar { + background-color: var(--bg-white); + padding: var(--spacing-md) 0; + box-shadow: 0 4px 12px rgba(0,0,0,0.05); +} + +.trust-items { + display: flex; + justify-content: space-around; + align-items: center; + flex-wrap: wrap; + gap: var(--spacing-md); +} + +.trust-item { + display: flex; + align-items: center; + gap: var(--spacing-xs); + color: var(--text-mid); + font-weight: 500; +} + +.trust-icon { + font-size: 1.5em; + color: var(--accent-sage); +} + +/* ===== TESTIMONIALS SECTION ===== */ +.testimonials-section { + background-color: var(--bg-light); +} + +.testimonials-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: var(--spacing-md); + margin-bottom: var(--spacing-md); +} + +.testimonial-card { + background-color: var(--bg-white); + padding: var(--spacing-md); + border-radius: var(--border-radius-lg); + box-shadow: 0 2px 12px rgba(0,0,0,0.06); + transition: transform 0.3s ease, box-shadow 0.3s ease; +} + +.testimonial-card:hover { + transform: translateY(-4px); + box-shadow: 0 8px 24px rgba(0,0,0,0.12); +} + +.testimonial-stars { + color: #fbbf24; + font-size: 1.1em; + margin-bottom: var(--spacing-xs); + letter-spacing: 2px; +} + +.testimonial-text { + color: var(--text-mid); + line-height: 1.6; + margin-bottom: var(--spacing-sm); + font-style: italic; +} + +.testimonial-author { + display: flex; + align-items: center; + gap: var(--spacing-sm); + padding-top: var(--spacing-sm); + border-top: 1px solid var(--accent-beige); +} + +.author-photo { + width: 50px; + height: 50px; + border-radius: 50%; + background: linear-gradient(135deg, var(--accent-sage), var(--accent-gold)); + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + color: var(--bg-white); +} + +.author-info { + flex: 1; +} + +.author-name { + font-weight: 600; + color: var(--primary-dark); + margin-bottom: 2px; +} + +.author-location { + font-size: 0.85em; + color: var(--text-light); +} + +/* ===== HOLISTIC APPROACH SECTION ===== */ +.holistic-section { + background-color: var(--bg-white); +} + +.holistic-diagram { + max-width: 600px; + margin: 0 auto var(--spacing-lg); + position: relative; +} + +.circle-container { + position: relative; + width: 400px; + height: 400px; + margin: 0 auto; +} + +.center-circle { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 160px; + height: 160px; + border-radius: 50%; + background: linear-gradient(135deg, var(--accent-sage), var(--accent-gold)); + display: flex; + align-items: center; + justify-content: center; + color: var(--bg-white); + font-weight: 700; + font-size: 1.2em; + text-align: center; + box-shadow: 0 8px 24px rgba(0,0,0,0.15); + z-index: 2; +} + +.pillar { + position: absolute; + width: 140px; + padding: var(--spacing-sm); + background-color: var(--bg-cream); + border-radius: var(--border-radius); + text-align: center; + box-shadow: 0 4px 12px rgba(0,0,0,0.1); + transition: transform 0.3s ease, box-shadow 0.3s ease; +} + +.pillar:hover { + transform: scale(1.05); + box-shadow: 0 6px 16px rgba(0,0,0,0.15); +} + +.pillar-icon { + font-size: 2em; + margin-bottom: var(--spacing-xs); +} + +.pillar-title { + font-weight: 700; + color: var(--primary-dark); + margin-bottom: 4px; +} + +.pillar-text { + font-size: 0.85em; + color: var(--text-mid); +} + +.pillar-mind { + top: 0; + left: 50%; + transform: translateX(-50%); +} + +.pillar-body { + bottom: 0; + left: 0; +} + +.pillar-spirit { + bottom: 0; + right: 0; +} + +/* ===== SERVICES BY GOAL ===== */ +.services-section { + background-color: var(--bg-cream); +} + +.service-tabs { + display: flex; + justify-content: center; + gap: var(--spacing-sm); + margin-bottom: var(--spacing-lg); + flex-wrap: wrap; +} + +.tab-btn { + padding: 1rem 2rem; + background-color: var(--bg-white); + border: 2px solid var(--accent-beige); + border-radius: var(--border-radius); + cursor: pointer; + transition: all 0.3s ease; + font-weight: 600; + color: var(--text-mid); + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; +} + +.tab-btn.active { + background-color: var(--accent-sage); + border-color: var(--accent-sage); + color: var(--bg-white); +} + +.tab-btn:hover:not(.active) { + border-color: var(--accent-gold); +} + +.tab-icon { + font-size: 1.5em; +} + +.tab-label { + font-size: 0.9em; +} + +.tab-content { + display: none; +} + +.tab-content.active { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: var(--spacing-md); +} + +.service-card { + background-color: var(--bg-white); + border-radius: var(--border-radius-lg); + overflow: hidden; + box-shadow: 0 4px 16px rgba(0,0,0,0.08); + transition: transform 0.3s ease, box-shadow 0.3s ease; +} + +.service-card:hover { + transform: translateY(-4px); + box-shadow: 0 8px 24px rgba(0,0,0,0.12); +} + +.service-image { + width: 100%; + height: 200px; + background: linear-gradient(135deg, var(--accent-beige), var(--accent-sage)); + display: flex; + align-items: center; + justify-content: center; + font-size: 3em; +} + +.service-content { + padding: var(--spacing-md); +} + +.service-title { + font-size: 1.4em; + margin-bottom: var(--spacing-xs); + color: var(--primary-dark); +} + +.service-benefits { + list-style: none; + margin-bottom: var(--spacing-sm); +} + +.service-benefits li { + padding-left: 1.5rem; + position: relative; + margin-bottom: var(--spacing-xs); + color: var(--text-mid); +} + +.service-benefits li::before { + content: "✓"; + position: absolute; + left: 0; + color: var(--success-green); + font-weight: 700; +} + +.service-meta { + display: flex; + justify-content: space-between; + align-items: center; + padding-top: var(--spacing-sm); + border-top: 1px solid var(--accent-beige); +} + +.service-duration { + color: var(--text-light); + font-size: 0.9em; +} + +.service-price { + font-size: 1.3em; + font-weight: 700; + color: var(--accent-gold); +} + +/* ===== TEAM SECTION ===== */ +.team-section { + background-color: var(--bg-white); +} + +.team-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: var(--spacing-md); +} + +.team-member { + text-align: center; + padding: var(--spacing-md); + background-color: var(--bg-cream); + border-radius: var(--border-radius-lg); + transition: transform 0.3s ease; +} + +.team-member:hover { + transform: translateY(-4px); +} + +.member-photo { + width: 150px; + height: 150px; + border-radius: 50%; + margin: 0 auto var(--spacing-sm); + background: linear-gradient(135deg, var(--accent-gold), var(--accent-sage)); + display: flex; + align-items: center; + justify-content: center; + font-size: 3em; + color: var(--bg-white); +} + +.member-name { + font-size: 1.3em; + color: var(--primary-dark); + margin-bottom: 4px; +} + +.member-title { + color: var(--accent-gold); + font-weight: 600; + margin-bottom: var(--spacing-xs); +} + +.member-credentials { + font-size: 0.85em; + color: var(--text-light); + margin-bottom: var(--spacing-sm); +} + +.member-specialties { + font-size: 0.9em; + color: var(--text-mid); +} + +/* ===== FINAL CTA SECTION ===== */ +.final-cta { + background: linear-gradient(135deg, var(--accent-sage), var(--accent-gold)); + color: var(--bg-white); + text-align: center; + padding: var(--spacing-xl) 0; +} + +.final-cta h2 { + color: var(--bg-white); + font-size: 2.5em; + margin-bottom: var(--spacing-sm); +} + +.final-cta p { + color: var(--bg-white); + font-size: 1.2em; + margin-bottom: var(--spacing-lg); + opacity: 0.95; +} + +.btn-white { + background-color: var(--bg-white); + color: var(--primary-dark); + font-size: 1.1em; + padding: 1.2rem 3rem; +} + +.btn-white:hover { + background-color: var(--bg-cream); + transform: translateY(-2px); +} + +/* ===== FOOTER ===== */ +.footer { + background-color: var(--primary-dark); + color: var(--bg-cream); + padding: var(--spacing-lg) 0 var(--spacing-md); +} + +.footer-content { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: var(--spacing-lg); + margin-bottom: var(--spacing-md); +} + +.footer-section h3 { + color: var(--accent-gold); + margin-bottom: var(--spacing-sm); +} + +.footer-section p, +.footer-section a { + color: var(--bg-cream); + margin-bottom: var(--spacing-xs); +} + +.footer-section a:hover { + color: var(--accent-gold); +} + +.footer-bottom { + text-align: center; + padding-top: var(--spacing-md); + border-top: 1px solid rgba(255,255,255,0.1); + color: var(--accent-beige); +} + +/* ===== RESPONSIVE DESIGN ===== */ +@media (max-width: 768px) { + .nav-menu { + display: none; + flex-direction: column; + position: absolute; + top: 100%; + left: 0; + right: 0; + background: var(--bg-white); + padding: var(--spacing-md); + box-shadow: 0 4px 12px rgba(0,0,0,0.1); + z-index: 999; + } + + .nav-menu.active { + display: flex; + } + + .mobile-menu-toggle { + display: flex; + } + + .hero h1 { + font-size: 2.5em; + } + + .trust-items { + flex-direction: column; + text-align: center; + } + + .review-card { + min-width: 280px; + } + + .circle-container { + width: 300px; + height: 300px; + } + + .center-circle { + width: 120px; + height: 120px; + font-size: 1em; + } + + .pillar { + width: 100px; + font-size: 0.85em; + } + + .service-tabs { + flex-direction: column; + } + + .tab-btn { + width: 100%; + } +} + +/* ===== UTILITY ADDITIONS ===== */ + +/* Full-width block button (used for service card CTAs) */ +.btn-block { + margin-top: 1rem; + width: 100%; + display: block; + text-align: center; +} + +/* Holistic section description */ +.holistic-description { + text-align: center; + margin-top: 3rem; +} + +.holistic-description-text { + max-width: 700px; + margin: 0 auto; + font-size: 1.1em; +} diff --git a/index.html b/index.html index 02f9672..32926dd 100644 --- a/index.html +++ b/index.html @@ -15,818 +15,7 @@ - +
@@ -865,7 +54,7 @@+
At Radiance Wellness, we believe true health emerges when these three elements work in harmony. Our personalized treatments address your unique constitution using ancient Ayurvedic wisdom combined with modern therapeutic techniques. @@ -1083,7 +272,7 @@ 60-90 min From $95