Affordable Housing Solutions Realestate
Preview
Edit
Download
Run
Download Options
HTML File
Download as .html file
CSS File
Download as .css file
JavaScript File
Download as .js file
Combined HTML
All code in one HTML file
Project ZIP
All files in a ZIP archive
Cancel
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>NestVista | Premium Affordable Housing Solutions</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> </head> <body> <!-- Header --> <header> <div class="header-container container"> <a href="#home" class="logo"> <div class="logo-icon"> <i class="fas fa-home"></i> </div> <div class="logo-text"> <h1>NestVista</h1> <span>Affordable Housing Solutions</span> </div> </a> <button class="mobile-menu-btn" id="mobileMenuBtn"> <i class="fas fa-bars"></i> </button> <nav id="mainNav"> <ul id="navMenu"> <li><a href="#home">Home</a></li> <li><a href="#calculator">EMI Calculator</a></li> <li><a href="#benefits">Benefits</a></li> <li><a href="#timeline">Timeline</a></li> <li><a href="#testimonials">Testimonials</a></li> <li><a href="#contact" class="cta-button">Get Quote</a></li> </ul> </nav> </div> </header> <!-- Hero Section --> <section class="hero" id="home"> <div class="hero-container container"> <div class="hero-content fade-in-up"> <h1>Dream Homes, <span>Budget-Friendly</span> Prices</h1> <p>Discover premium yet affordable housing designed for modern families. Quality living spaces with transparent pricing and flexible payment options that fit your budget.</p> <div class="hero-buttons"> <a href="#contact" class="cta-button"> <i class="fas fa-calendar-check"></i> Book a Site Visit </a> <a href="#calculator" class="cta-button secondary-button"> <i class="fas fa-calculator"></i> Calculate EMI </a> </div> <div class="hero-stats"> <div class="stat-item"> <div class="stat-value">500+</div> <div class="stat-label">Happy Families</div> </div> <div class="stat-item"> <div class="stat-value">18.5L*</div> <div class="stat-label">Starting Price</div> </div> <div class="stat-item"> <div class="stat-value">98%</div> <div class="stat-label">Customer Satisfaction</div> </div> </div> </div> <div class="hero-visual fade-in-up"> <div class="hero-image"> <img src="https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" alt="Modern affordable housing complex"> </div> <div class="floating-badge"> <div class="badge-content"> <h4>Limited Time Offer</h4> <div class="badge-price">₹18.5 Lakhs*</div> <p>1, 2 & 3 BHK Flats</p> </div> </div> </div> </div> </section> <!-- EMI Calculator --> <section class="calculator-section section-padding" id="calculator"> <div class="container"> <div class="section-title fade-in-up"> <h2>Smart EMI Calculator</h2> <p>Plan your home purchase with our easy-to-use EMI calculator. Adjust the sliders to find a payment plan that works for your budget.</p> </div> <div class="calculator-container"> <div class="calculator-card fade-in-up"> <div class="calculator-header"> <h3>Calculate Your Monthly Payment</h3> <p>Get an instant estimate of your EMI</p> </div> <div class="form-group"> <div class="form-label"> <span>Loan Amount</span> <span class="form-value">₹ <span id="loanAmountValue">20,00,000</span></span> </div> <div class="range-container"> <input type="range" id="loanAmount" min="500000" max="5000000" step="50000" value="2000000" class="range-slider"> </div> <div class="input-with-icon"> <i class="fas fa-rupee-sign input-icon"></i> <input type="number" id="loanAmountInput" value="2000000" min="500000" max="5000000"> </div> </div> <div class="form-group"> <div class="form-label"> <span>Interest Rate</span> <span class="form-value"><span id="interestRateValue">8.5</span>%</span> </div> <div class="range-container"> <input type="range" id="interestRate" min="5" max="12" step="0.1" value="8.5" class="range-slider"> </div> <div class="input-with-icon"> <i class="fas fa-percent input-icon"></i> <input type="number" id="interestRateInput" value="8.5" min="5" max="12" step="0.1"> </div> </div> <div class="form-group"> <div class="form-label"> <span>Loan Tenure</span> <span class="form-value"><span id="loanTenureValue">20</span> Years</span> </div> <div class="range-container"> <input type="range" id="loanTenure" min="5" max="30" step="1" value="20" class="range-slider"> </div> <div class="input-with-icon"> <i class="fas fa-calendar-alt input-icon"></i> <input type="number" id="loanTenureInput" value="20" min="5" max="30"> </div> </div> <div class="emi-result"> <div class="emi-label">Estimated Monthly EMI</div> <div class="emi-amount">₹<span id="emiResult">17,364</span></div> <div class="emi-total">Total Payable: ₹<span id="totalPayable">41,67,360</span></div> </div> </div> <div class="calculator-features fade-in-up"> <h3 style="margin-bottom: 2rem;">Why Choose Our Home Loan Plan?</h3> <div class="features-grid"> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-shield-alt"></i> </div> <h4>RERA Approved</h4> <p>All projects are government approved with complete transparency and legal compliance.</p> </div> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-hand-holding-usd"></i> </div> <h4>Subsidized Rates</h4> <p>Special home loan interest rates through our partnered banks and financial institutions.</p> </div> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-calendar-alt"></i> </div> <h4>Flexible Plans</h4> <p>Choose from construction-linked or time-linked payment plans that suit your finances.</p> </div> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-award"></i> </div> <h4>Quality Assured</h4> <p>Built with premium materials and strict quality checks at every construction stage.</p> </div> </div> </div> </div> </div> </section> <!-- Benefits Section --> <section class="benefits-section section-padding" id="benefits"> <div class="container"> <div class="section-title fade-in-up"> <h2>Family-Focused Benefits</h2> <p>Our affordable housing projects are designed with your family's comfort, safety, and future in mind.</p> </div> <div class="benefits-grid"> <div class="benefit-card fade-in-up"> <div class="benefit-icon"> <i class="fas fa-school"></i> </div> <h3>Education Proximity</h3> <p>Located near reputable schools and educational institutions for your children's bright future.</p> </div> <div class="benefit-card fade-in-up" style="animation-delay: 0.1s;"> <div class="benefit-icon"> <i class="fas fa-shield-alt"></i> </div> <h3>24/7 Security</h3> <p>Gated community with CCTV surveillance, security personnel, and access control systems.</p> </div> <div class="benefit-card fade-in-up" style="animation-delay: 0.2s;"> <div class="benefit-icon"> <i class="fas fa-leaf"></i> </div> <h3>Green Living</h3> <p>Ample green spaces, landscaped gardens, and eco-friendly features for a healthy lifestyle.</p> </div> <div class="benefit-card fade-in-up" style="animation-delay: 0.3s;"> <div class="benefit-icon"> <i class="fas fa-swimming-pool"></i> </div> <h3>Modern Amenities</h3> <p>Community hall, children's play area, gym, swimming pool, and rainwater harvesting.</p> </div> </div> </div> </section> <!-- Timeline Section --> <section class="timeline-section section-padding" id="timeline"> <div class="container"> <div class="section-title fade-in-up"> <h2>Transparent Project Timeline</h2> <p>Follow our construction journey with regular updates and milestone completions.</p> </div> <div class="timeline"> <div class="timeline-item fade-in-up"> <div class="timeline-dot"></div> <div class="timeline-content"> <div class="timeline-date">January 2024</div> <h4>Land Acquisition & Planning</h4> <p>Site finalized with all necessary approvals. Architectural planning completed with focus on sustainable design and optimal space utilization.</p> </div> </div> <div class="timeline-item fade-in-up" style="animation-delay: 0.1s;"> <div class="timeline-dot"></div> <div class="timeline-content"> <div class="timeline-date">April 2024</div> <h4>Foundation Work Commenced</h4> <p>Construction begins with foundation laying and structural framework. Quality checks at every stage ensure long-term durability.</p> </div> </div> <div class="timeline-item fade-in-up" style="animation-delay: 0.2s;"> <div class="timeline-dot"></div> <div class="timeline-content"> <div class="timeline-date">August 2024</div> <h4>Superstructure Development</h4> <p>Floor-by-floor construction with electrical and plumbing rough-ins. Regular site visits available for prospective homeowners.</p> </div> </div> <div class="timeline-item fade-in-up" style="animation-delay: 0.3s;"> <div class="timeline-dot"></div> <div class="timeline-content"> <div class="timeline-date">December 2024</div> <h4>Interior Finishing</h4> <p>Internal plastering, flooring, painting, and fixture installations. High-quality materials used for lasting finish.</p> </div> </div> <div class="timeline-item fade-in-up" style="animation-delay: 0.4s;"> <div class="timeline-dot"></div> <div class="timeline-content"> <div class="timeline-date">March 2025</div> <h4>Amenities Development</h4> <p>Landscaping, park development, and installation of community amenities. Final touches to common areas.</p> </div> </div> <div class="timeline-item fade-in-up" style="animation-delay: 0.5s;"> <div class="timeline-dot"></div> <div class="timeline-content"> <div class="timeline-date">June 2025</div> <h4>Project Handover</h4> <p>Final approvals and possession handover to homeowners. Welcome package and orientation provided.</p> </div> </div> </div> </div> </section> <!-- Lead Form --> <section class="lead-form-section section-padding" id="contact"> <div class="container"> <div class="form-container fade-in-up"> <div class="form-header"> <h2>Start Your Home Journey Today</h2> <p>Fill in your details and our housing consultant will contact you with personalized options.</p> </div> <form id="leadForm"> <div class="form-row"> <div class="form-group"> <label for="name" class="form-label">Full Name</label> <input type="text" id="name" class="form-input" placeholder="Enter your full name" required> </div> <div class="form-group"> <label for="phone" class="form-label">Phone Number</label> <input type="tel" id="phone" class="form-input" placeholder="Enter your 10-digit mobile number" required> </div> </div> <div class="form-row"> <div class="form-group"> <label for="email" class="form-label">Email Address</label> <input type="email" id="email" class="form-input" placeholder="Enter your email address" required> </div> <div class="form-group"> <label for="budget" class="form-label">Budget Range</label> <select id="budget" class="form-select" required> <option value="" disabled selected>Select your budget range</option> <option value="15-20">₹15-20 Lakhs</option> <option value="20-25">₹20-25 Lakhs</option> <option value="25-30">₹25-30 Lakhs</option> <option value="30+">₹30+ Lakhs</option> </select> </div> </div> <div class="form-row"> <div class="form-group"> <label for="family" class="form-label">Family Size</label> <select id="family" class="form-select" required> <option value="" disabled selected>Select family size</option> <option value="1-2">1-2 Members</option> <option value="3-4">3-4 Members</option> <option value="5+">5+ Members</option> </select> </div> <div class="form-group"> <label for="flatType" class="form-label">Preferred Flat Type</label> <select id="flatType" class="form-select" required> <option value="" disabled selected>Select flat type</option> <option value="1bhk">1 BHK</option> <option value="2bhk">2 BHK</option> <option value="3bhk">3 BHK</option> </select> </div> </div> <div class="form-group"> <label for="message" class="form-label">Additional Requirements (Optional)</label> <textarea id="message" class="form-textarea" placeholder="Any specific requirements, questions, or preferred location..."></textarea> </div> <button type="submit" class="cta-button form-submit"> <i class="fas fa-paper-plane"></i> Request a Callback </button> <div class="form-footer"> <p>By submitting, you agree to our <a href="#">Privacy Policy</a> and consent to be contacted by our representatives. We respect your privacy and will not share your information.</p> </div> </form> </div> </div> </section> <!-- Footer --> <footer> <div class="container"> <div class="footer-content"> <div class="footer-column"> <h3>NestVista</h3> <p>Making premium yet affordable housing accessible to families since 2012. Our mission is to help you find a home that fits your budget without compromising on comfort, safety, or quality.</p> <div class="social-links"> <a href="#" class="social-link"><i class="fab fa-facebook-f"></i></a> <a href="#" class="social-link"><i class="fab fa-twitter"></i></a> <a href="#" class="social-link"><i class="fab fa-instagram"></i></a> <a href="#" class="social-link"><i class="fab fa-linkedin-in"></i></a> </div> </div> <div class="footer-column"> <h3>Quick Links</h3> <ul class="footer-links"> <li><a href="#home"><i class="fas fa-chevron-right"></i> Home</a></li> <li><a href="#calculator"><i class="fas fa-chevron-right"></i> EMI Calculator</a></li> <li><a href="#benefits"><i class="fas fa-chevron-right"></i> Benefits</a></li> <li><a href="#timeline"><i class="fas fa-chevron-right"></i> Project Timeline</a></li> <li><a href="#testimonials"><i class="fas fa-chevron-right"></i> Testimonials</a></li> </ul> </div> <div class="footer-column"> <h3>Projects</h3> <ul class="footer-links"> <li><a href="#"><i class="fas fa-chevron-right"></i> NestVista Greens</a></li> <li><a href="#"><i class="fas fa-chevron-right"></i> NestVista Harmony</a></li> <li><a href="#"><i class="fas fa-chevron-right"></i> NestVista Serenity</a></li> <li><a href="#"><i class="fas fa-chevron-right"></i> Upcoming Projects</a></li> <li><a href="#"><i class="fas fa-chevron-right"></i> Site Visit Booking</a></li> </ul> </div> <div class="footer-column"> <h3>Contact Us</h3> <ul class="footer-links"> <li><a href="#"><i class="fas fa-map-marker-alt"></i> 123 Housing Complex, Sector 45, Delhi NCR</a></li> <li><a href="tel:18001234567"><i class="fas fa-phone-alt"></i> 1800-123-4567</a></li> <li><a href="mailto:info@nestvista.com"><i class="fas fa-envelope"></i> info@nestvista.com</a></li> <li><a href="#"><i class="fas fa-clock"></i> Mon-Sat: 9AM-7PM</a></li> </ul> </div> </div> <div class="footer-bottom"> <div class="copyright"> <p>© 2023 NestVista Affordable Housing. All rights reserved. | RERA Registered: PR/1234/4567/8901</p> </div> <div class="footer-legal"> <a href="#">Privacy Policy</a> <a href="#">Terms of Service</a> <a href="#">Disclaimer</a> </div> </div> </div> </footer> </body> </html>
CSS
* { margin: 0; padding: 0; box-sizing: border-box; } :root { --primary-blue: #1e3a8a; --secondary-blue: #2563eb; --accent-blue: #3b82f6; --light-blue: #eff6ff; --soft-blue: #dbeafe; --dark-blue: #1e3a8a; --white: #ffffff; --light-gray: #f8fafc; --medium-gray: #f1f5f9; --dark-gray: #64748b; --text-color: #334155; --text-dark: #1e293b; --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); --border-radius-sm: 6px; --border-radius-md: 12px; --border-radius-lg: 20px; --border-radius-xl: 30px; --transition-fast: 0.2s ease; --transition-normal: 0.3s ease; --transition-slow: 0.5s ease; } body { font-family: 'Inter', sans-serif; line-height: 1.7; color: var(--text-color); background-color: var(--white); overflow-x: hidden; scroll-behavior: smooth; } h1, h2, h3, h4, h5 { font-family: 'Montserrat', sans-serif; font-weight: 700; color: var(--text-dark); line-height: 1.3; } p { margin-bottom: 1rem; } .container { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 2rem; } .section-padding { padding: 6rem 0; } .section-title { text-align: center; margin-bottom: 4rem; position: relative; } .section-title h2 { font-size: 2.5rem; margin-bottom: 1rem; color: var(--primary-blue); } .section-title p { font-size: 1.125rem; color: var(--dark-gray); max-width: 600px; margin: 0 auto; } .section-title::after { content: ''; position: absolute; width: 80px; height: 4px; background: linear-gradient(to right, var(--secondary-blue), var(--accent-blue)); bottom: -1rem; left: 50%; transform: translateX(-50%); border-radius: 2px; } .cta-button { display: inline-flex; align-items: center; justify-content: center; gap: 0.75rem; background: linear-gradient(135deg, var(--secondary-blue), var(--accent-blue)); color: var(--white); padding: 1rem 2.5rem; border-radius: var(--border-radius-md); text-decoration: none; font-weight: 600; font-size: 1.125rem; transition: all var(--transition-normal); border: none; cursor: pointer; box-shadow: var(--shadow-md); position: relative; overflow: hidden; z-index: 1; } .cta-button::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, var(--accent-blue), var(--secondary-blue)); z-index: -1; transition: opacity var(--transition-normal); opacity: 0; } .cta-button:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); } .cta-button:hover::before { opacity: 1; } .cta-button:active { transform: translateY(-1px); } .secondary-button { background: transparent; border: 2px solid var(--secondary-blue); color: var(--secondary-blue); } .secondary-button:hover { background: var(--secondary-blue); color: var(--white); } /* Header */ header { position: fixed; top: 0; left: 0; width: 100%; background-color: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); box-shadow: var(--shadow-sm); z-index: 1000; transition: all var(--transition-normal); } .header-container { display: flex; justify-content: space-between; align-items: center; padding: 1.25rem 2rem; } .logo { display: flex; align-items: center; gap: 0.875rem; text-decoration: none; } .logo-icon { width: 40px; height: 40px; background: linear-gradient(135deg, var(--secondary-blue), var(--accent-blue)); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--white); font-size: 1.25rem; } .logo-text { display: flex; flex-direction: column; } .logo-text h1 { font-size: 1.5rem; color: var(--primary-blue); margin: 0; line-height: 1.2; } .logo-text span { font-size: 0.75rem; color: var(--dark-gray); font-weight: 500; } nav ul { display: flex; list-style: none; gap: 2.5rem; } nav a { text-decoration: none; color: var(--text-dark); font-weight: 600; font-size: 1rem; position: relative; padding: 0.5rem 0; transition: color var(--transition-fast); } nav a:hover { color: var(--secondary-blue); } nav a::after { content: ''; position: absolute; width: 0; height: 2px; background-color: var(--secondary-blue); bottom: 0; left: 0; transition: width var(--transition-normal); } nav a:hover::after { width: 100%; } .mobile-menu-btn { display: none; background: none; border: none; font-size: 1.5rem; color: var(--primary-blue); cursor: pointer; width: 44px; height: 44px; border-radius: var(--border-radius-sm); align-items: center; justify-content: center; transition: all var(--transition-fast); } .mobile-menu-btn:hover { background-color: var(--light-blue); } /* Hero Section */ .hero { padding-top: 10rem; padding-bottom: 6rem; background: linear-gradient(135deg, var(--light-blue) 0%, rgba(255,255,255,1) 100%); position: relative; overflow: hidden; } .hero::before { content: ''; position: absolute; width: 100%; height: 100%; top: 0; left: 0; background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%233b82f6' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); opacity: 0.5; } .hero-container { display: flex; align-items: center; gap: 4rem; position: relative; z-index: 1; } .hero-content { flex: 1; } .hero h1 { font-size: 3.5rem; margin-bottom: 1.5rem; color: var(--primary-blue); line-height: 1.2; } .hero h1 span { color: var(--secondary-blue); position: relative; } .hero h1 span::after { content: ''; position: absolute; width: 100%; height: 8px; background-color: rgba(59, 130, 246, 0.2); bottom: 5px; left: 0; z-index: -1; } .hero p { font-size: 1.25rem; margin-bottom: 2.5rem; color: var(--dark-gray); max-width: 600px; } .hero-buttons { display: flex; gap: 1.5rem; margin-bottom: 3rem; } .hero-stats { display: flex; gap: 3rem; } .stat-item { display: flex; flex-direction: column; } .stat-value { font-size: 2.5rem; font-weight: 700; color: var(--secondary-blue); line-height: 1; } .stat-label { font-size: 0.875rem; color: var(--dark-gray); font-weight: 500; } .hero-visual { flex: 1; position: relative; } .hero-image { border-radius: var(--border-radius-xl); overflow: hidden; box-shadow: var(--shadow-xl); transform: perspective(1000px) rotateY(-10deg); transition: transform var(--transition-normal); } .hero-image:hover { transform: perspective(1000px) rotateY(0deg); } .hero-image img { width: 100%; height: auto; display: block; transition: transform var(--transition-slow); } .hero-image:hover img { transform: scale(1.05); } .floating-badge { position: absolute; bottom: -1rem; right: -1rem; background: linear-gradient(135deg, var(--secondary-blue), var(--accent-blue)); color: var(--white); padding: 1.5rem; border-radius: var(--border-radius-lg); box-shadow: var(--shadow-lg); width: 200px; animation: float 3s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } .badge-content h4 { color: var(--white); margin-bottom: 0.5rem; font-size: 1.125rem; } .badge-price { font-size: 1.75rem; font-weight: 700; } /* Calculator Section */ .calculator-section { background-color: var(--white); } .calculator-container { display: flex; gap: 4rem; align-items: flex-start; } .calculator-card { flex: 1; background-color: var(--white); border-radius: var(--border-radius-lg); padding: 3rem; box-shadow: var(--shadow-lg); border: 1px solid var(--medium-gray); } .calculator-header { margin-bottom: 2.5rem; } .calculator-header h3 { font-size: 1.75rem; margin-bottom: 0.5rem; } .form-group { margin-bottom: 2rem; } .form-label { display: flex; justify-content: space-between; margin-bottom: 0.75rem; font-weight: 600; } .form-value { color: var(--secondary-blue); font-weight: 700; } .range-container { position: relative; } .range-slider { width: 100%; height: 10px; -webkit-appearance: none; appearance: none; background: linear-gradient(to right, var(--light-blue), var(--secondary-blue)); border-radius: 5px; outline: none; } .range-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 24px; height: 24px; background: var(--white); border: 3px solid var(--secondary-blue); border-radius: 50%; cursor: pointer; box-shadow: var(--shadow-md); transition: all var(--transition-fast); } .range-slider::-webkit-slider-thumb:hover { transform: scale(1.1); } .input-with-icon { position: relative; } .input-with-icon input { width: 100%; padding: 1rem 1rem 1rem 3rem; border: 2px solid var(--medium-gray); border-radius: var(--border-radius-md); font-size: 1.125rem; font-weight: 600; transition: all var(--transition-fast); } .input-with-icon input:focus { outline: none; border-color: var(--secondary-blue); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); } .input-icon { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--dark-gray); } .emi-result { background: linear-gradient(135deg, var(--light-blue), var(--soft-blue)); border-radius: var(--border-radius-lg); padding: 2.5rem; text-align: center; margin-top: 2rem; border: 2px solid var(--accent-blue); } .emi-label { font-size: 1.125rem; color: var(--dark-gray); margin-bottom: 0.5rem; } .emi-amount { font-size: 3rem; font-weight: 800; color: var(--secondary-blue); line-height: 1; margin-bottom: 0.5rem; } .emi-total { color: var(--dark-gray); font-weight: 600; } .calculator-features { flex: 1; } .features-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } .feature-card { background-color: var(--white); border-radius: var(--border-radius-md); padding: 2rem; box-shadow: var(--shadow-md); border: 1px solid var(--medium-gray); transition: all var(--transition-normal); } .feature-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: var(--accent-blue); } .feature-icon { width: 60px; height: 60px; background: linear-gradient(135deg, var(--light-blue), var(--soft-blue)); border-radius: var(--border-radius-md); display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; color: var(--secondary-blue); font-size: 1.5rem; } .feature-card h4 { font-size: 1.25rem; margin-bottom: 0.75rem; } /* Benefits Section */ .benefits-section { background-color: var(--light-blue); position: relative; overflow: hidden; } .benefits-section::before { content: ''; position: absolute; width: 300px; height: 300px; background: radial-gradient(circle, rgba(59, 130, 246, 0.1) 0%, rgba(59, 130, 246, 0) 70%); top: -150px; right: -150px; } .benefits-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2.5rem; } .benefit-card { background-color: var(--white); border-radius: var(--border-radius-lg); padding: 2.5rem 2rem; box-shadow: var(--shadow-md); transition: all var(--transition-normal); text-align: center; position: relative; overflow: hidden; z-index: 1; } .benefit-card::before { content: ''; position: absolute; width: 100%; height: 5px; background: linear-gradient(to right, var(--secondary-blue), var(--accent-blue)); top: 0; left: 0; z-index: 2; } .benefit-card:hover { transform: translateY(-10px); box-shadow: var(--shadow-xl); } .benefit-icon { width: 80px; height: 80px; background: linear-gradient(135deg, var(--light-blue), var(--soft-blue)); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 1.5rem; color: var(--secondary-blue); font-size: 2rem; } .benefit-card h3 { font-size: 1.5rem; margin-bottom: 1rem; } /* Timeline Section */ .timeline-section { background-color: var(--white); } .timeline { position: relative; max-width: 1000px; margin: 0 auto; } .timeline::before { content: ''; position: absolute; width: 4px; background: linear-gradient(to bottom, var(--light-blue), var(--secondary-blue), var(--light-blue)); top: 0; bottom: 0; left: 50%; transform: translateX(-50%); border-radius: 2px; } .timeline-item { padding: 0 3rem; position: relative; width: 50%; margin-bottom: 4rem; box-sizing: border-box; } .timeline-item:nth-child(odd) { left: 0; padding-right: 5rem; } .timeline-item:nth-child(even) { left: 50%; padding-left: 5rem; } .timeline-dot { position: absolute; width: 24px; height: 24px; background: linear-gradient(135deg, var(--secondary-blue), var(--accent-blue)); border-radius: 50%; top: 0; right: -12px; z-index: 10; box-shadow: 0 0 0 6px var(--white), 0 0 0 8px var(--secondary-blue); } .timeline-item:nth-child(even) .timeline-dot { left: -12px; right: auto; } .timeline-content { background-color: var(--white); border-radius: var(--border-radius-lg); padding: 2.5rem; box-shadow: var(--shadow-lg); border: 1px solid var(--medium-gray); position: relative; transition: all var(--transition-normal); } .timeline-content:hover { transform: translateY(-5px); box-shadow: var(--shadow-xl); } .timeline-date { display: inline-block; background: linear-gradient(135deg, var(--light-blue), var(--soft-blue)); color: var(--secondary-blue); padding: 0.5rem 1.25rem; border-radius: var(--border-radius-md); font-weight: 700; margin-bottom: 1.5rem; } .timeline-content h4 { font-size: 1.5rem; margin-bottom: 1rem; } /* Lead Form */ .lead-form-section { background-color: var(--white); } .form-container { max-width: 800px; margin: 0 auto; background: linear-gradient(135deg, var(--white) 0%, var(--light-blue) 100%); border-radius: var(--border-radius-lg); padding: 4rem; box-shadow: var(--shadow-xl); border: 1px solid var(--medium-gray); } .form-header { text-align: center; margin-bottom: 3rem; } .form-header h2 { font-size: 2.5rem; margin-bottom: 1rem; color: var(--primary-blue); } .form-row { display: flex; gap: 2rem; margin-bottom: 2rem; } .form-group { flex: 1; margin-bottom: 0; } .form-label { display: block; margin-bottom: 0.75rem; font-weight: 600; color: var(--text-dark); } .form-input { width: 100%; padding: 1rem 1.5rem; border: 2px solid var(--medium-gray); border-radius: var(--border-radius-md); font-size: 1rem; transition: all var(--transition-fast); } .form-input:focus { outline: none; border-color: var(--secondary-blue); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); } .form-select { width: 100%; padding: 1rem 1.5rem; border: 2px solid var(--medium-gray); border-radius: var(--border-radius-md); font-size: 1rem; background-color: var(--white); transition: all var(--transition-fast); appearance: none; background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right 1rem center; background-size: 1rem; } .form-select:focus { outline: none; border-color: var(--secondary-blue); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); } .form-textarea { width: 100%; padding: 1rem 1.5rem; border: 2px solid var(--medium-gray); border-radius: var(--border-radius-md); font-size: 1rem; min-height: 120px; resize: vertical; transition: all var(--transition-fast); } .form-textarea:focus { outline: none; border-color: var(--secondary-blue); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); } .form-submit { width: 100%; margin-top: 1.5rem; padding: 1.25rem; font-size: 1.125rem; } .form-footer { text-align: center; margin-top: 2rem; font-size: 0.875rem; color: var(--dark-gray); } .form-footer a { color: var(--secondary-blue); text-decoration: none; font-weight: 600; } /* Footer */ footer { background-color: var(--primary-blue); color: var(--white); padding-top: 5rem; } .footer-content { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3rem; margin-bottom: 3rem; } .footer-column h3 { color: var(--white); font-size: 1.5rem; margin-bottom: 1.5rem; position: relative; padding-bottom: 0.75rem; } .footer-column h3::after { content: ''; position: absolute; width: 40px; height: 3px; background-color: var(--accent-blue); bottom: 0; left: 0; border-radius: 2px; } .footer-column p { color: rgba(255, 255, 255, 0.8); margin-bottom: 1.5rem; } .footer-links { list-style: none; } .footer-links li { margin-bottom: 0.75rem; } .footer-links a { color: rgba(255, 255, 255, 0.8); text-decoration: none; transition: all var(--transition-fast); display: flex; align-items: center; gap: 0.5rem; } .footer-links a:hover { color: var(--white); padding-left: 0.5rem; } .social-links { display: flex; gap: 1rem; margin-top: 1.5rem; } .social-link { width: 40px; height: 40px; background-color: rgba(255, 255, 255, 0.1); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--white); text-decoration: none; transition: all var(--transition-fast); } .social-link:hover { background-color: var(--accent-blue); transform: translateY(-3px); } .footer-bottom { padding: 2rem 0; border-top: 1px solid rgba(255, 255, 255, 0.1); display: flex; justify-content: space-between; align-items: center; } .copyright { color: rgba(255, 255, 255, 0.7); } .footer-legal { display: flex; gap: 2rem; } .footer-legal a { color: rgba(255, 255, 255, 0.7); text-decoration: none; transition: color var(--transition-fast); } .footer-legal a:hover { color: var(--white); } /* Animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .fade-in-up { animation: fadeInUp 0.8s ease forwards; } /* Responsive Design */ @media (max-width: 1200px) { .hero-container { gap: 3rem; } .features-grid { grid-template-columns: 1fr; } } @media (max-width: 992px) { .hero-container { flex-direction: column; } .hero-content, .hero-visual { width: 100%; } .calculator-container { flex-direction: column; } .timeline::before { left: 30px; } .timeline-item { width: 100%; padding-left: 80px; padding-right: 2rem; } .timeline-item:nth-child(odd), .timeline-item:nth-child(even) { left: 0; padding-right: 2rem; padding-left: 80px; } .timeline-item:nth-child(even) .timeline-dot { left: 18px; } .footer-content { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { .header-container { padding: 1rem; } nav ul { display: none; } .mobile-menu-btn { display: flex; } .hero h1 { font-size: 2.5rem; } .hero-buttons { flex-direction: column; width: 100%; } .hero-buttons .cta-button { width: 100%; text-align: center; } .form-row { flex-direction: column; gap: 0; } .section-padding { padding: 4rem 0; } .section-title h2 { font-size: 2rem; } .floating-badge { position: relative; bottom: 0; right: 0; margin-top: 2rem; width: 100%; } } @media (max-width: 576px) { .container { padding: 0 1.5rem; } .hero { padding-top: 8rem; padding-bottom: 4rem; } .calculator-card, .form-container { padding: 2rem; } .benefits-grid { grid-template-columns: 1fr; } .footer-content { grid-template-columns: 1fr; } .footer-bottom { flex-direction: column; gap: 1.5rem; text-align: center; } }
JavaScript
// Mobile menu toggle const mobileMenuBtn = document.getElementById('mobileMenuBtn'); const navMenu = document.getElementById('navMenu'); mobileMenuBtn.addEventListener('click', () => { const isExpanded = mobileMenuBtn.getAttribute('aria-expanded') === 'true'; mobileMenuBtn.setAttribute('aria-expanded', !isExpanded); navMenu.style.display = navMenu.style.display === 'flex' ? 'none' : 'flex'; if (navMenu.style.display === 'flex') { navMenu.style.flexDirection = 'column'; navMenu.style.position = 'absolute'; navMenu.style.top = '100%'; navMenu.style.left = '0'; navMenu.style.right = '0'; navMenu.style.backgroundColor = 'var(--white)'; navMenu.style.padding = '2rem'; navMenu.style.boxShadow = 'var(--shadow-lg)'; navMenu.style.gap = '1.5rem'; navMenu.style.borderTop = '1px solid var(--medium-gray)'; } }); // Close mobile menu when clicking outside document.addEventListener('click', (event) => { if (!event.target.closest('#mainNav') && !event.target.closest('#mobileMenuBtn')) { navMenu.style.display = 'none'; mobileMenuBtn.setAttribute('aria-expanded', 'false'); } }); // EMI Calculator functionality const loanAmountSlider = document.getElementById('loanAmount'); const loanAmountInput = document.getElementById('loanAmountInput'); const loanAmountValue = document.getElementById('loanAmountValue'); const interestRateSlider = document.getElementById('interestRate'); const interestRateInput = document.getElementById('interestRateInput'); const interestRateValue = document.getElementById('interestRateValue'); const loanTenureSlider = document.getElementById('loanTenure'); const loanTenureInput = document.getElementById('loanTenureInput'); const loanTenureValue = document.getElementById('loanTenureValue'); const emiResult = document.getElementById('emiResult'); const totalPayable = document.getElementById('totalPayable'); // Format currency function formatCurrency(amount) { return new Intl.NumberFormat('en-IN').format(amount); } // Sync slider and input values function syncLoanAmount() { const value = parseInt(loanAmountSlider.value); loanAmountInput.value = value; loanAmountValue.textContent = formatCurrency(value); calculateEMI(); } function syncInterestRate() { const value = parseFloat(interestRateSlider.value); interestRateInput.value = value; interestRateValue.textContent = value.toFixed(1); calculateEMI(); } function syncLoanTenure() { const value = parseInt(loanTenureSlider.value); loanTenureInput.value = value; loanTenureValue.textContent = value; calculateEMI(); } loanAmountSlider.addEventListener('input', syncLoanAmount); loanAmountInput.addEventListener('input', () => { let value = parseInt(loanAmountInput.value); if (value < 500000) value = 500000; if (value > 5000000) value = 5000000; loanAmountSlider.value = value; syncLoanAmount(); }); interestRateSlider.addEventListener('input', syncInterestRate); interestRateInput.addEventListener('input', () => { let value = parseFloat(interestRateInput.value); if (value < 5) value = 5; if (value > 12) value = 12; interestRateSlider.value = value; syncInterestRate(); }); loanTenureSlider.addEventListener('input', syncLoanTenure); loanTenureInput.addEventListener('input', () => { let value = parseInt(loanTenureInput.value); if (value < 5) value = 5; if (value > 30) value = 30; loanTenureSlider.value = value; syncLoanTenure(); }); // EMI calculation function function calculateEMI() { const principal = parseFloat(loanAmountInput.value); const interest = parseFloat(interestRateInput.value) / 12 / 100; const tenure = parseFloat(loanTenureInput.value) * 12; // EMI formula: [P x R x (1+R)^N]/[(1+R)^N-1] const emi = principal * interest * Math.pow(1 + interest, tenure) / (Math.pow(1 + interest, tenure) - 1); const total = emi * tenure; // Update results emiResult.textContent = formatCurrency(Math.round(emi)); totalPayable.textContent = formatCurrency(Math.round(total)); } // Initialize EMI calculation syncLoanAmount(); syncInterestRate(); syncLoanTenure(); // Lead form submission const leadForm = document.getElementById('leadForm'); leadForm.addEventListener('submit', function(e) { e.preventDefault(); // Get form values const name = document.getElementById('name').value; const phone = document.getElementById('phone').value; const email = document.getElementById('email').value; // Simple validation if (name && phone && email) { // Show success message const submitBtn = leadForm.querySelector('.form-submit'); const originalText = submitBtn.innerHTML; submitBtn.innerHTML = '<i class="fas fa-check"></i> Request Sent Successfully!'; submitBtn.style.backgroundColor = '#10b981'; // In a real implementation, this would send data to a server setTimeout(() => { submitBtn.innerHTML = originalText; submitBtn.style.backgroundColor = ''; leadForm.reset(); // Show confirmation modal in a real implementation alert(`Thank you ${name}! Our housing consultant will contact you at ${phone} within 24 hours.`); }, 2000); // Scroll to top for better UX window.scrollTo({ top: 0, behavior: 'smooth' }); } else { alert('Please fill in all required fields.'); } }); // Smooth scrolling for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function(e) { e.preventDefault(); const targetId = this.getAttribute('href'); if (targetId === '#') return; const targetElement = document.querySelector(targetId); if (targetElement) { // Close mobile menu if open if (window.innerWidth <= 768) { navMenu.style.display = 'none'; mobileMenuBtn.setAttribute('aria-expanded', 'false'); } window.scrollTo({ top: targetElement.offsetTop - 100, behavior: 'smooth' }); } }); }); // Header scroll effect window.addEventListener('scroll', () => { const header = document.querySelector('header'); if (window.scrollY > 100) { header.style.boxShadow = 'var(--shadow-md)'; header.style.padding = '0.5rem 0'; } else { header.style.boxShadow = 'var(--shadow-sm)'; header.style.padding = '0'; } }); // Intersection Observer for animations const observerOptions = { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }; const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('fade-in-up'); } }); }, observerOptions); // Observe elements with fade-in-up class document.querySelectorAll('.fade-in-up').forEach(el => { observer.observe(el); });
Output Preview
Desktop
Mobile
Fullscreen