<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>
        Radiotropicalperu.com    </title>
    <style>
        :root {
            --primary-color: #6C63FF;
            --secondary-color: #B8B5FF;
            --accent-color: #FF9F9F;
            --background-color: #FAFAFF;
            --text-color: #2B2B2B;
            --glass-bg: rgba(255, 255, 255, 0.8);
            --glass-border: rgba(255, 255, 255, 0.3);
        }

        /* Reset & Base */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            cursor: none;
            /* Hide default cursor for custom one */
        }

        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background-color: var(--background-color);
            color: var(--text-color);
            line-height: 1.6;
            overflow-x: hidden;
        }

        /* Custom Cursor */
        .cursor {
            width: 20px;
            height: 20px;
            border: 2px solid var(--primary-color);
            border-radius: 50%;
            position: fixed;
            pointer-events: none;
            z-index: 9999;
            transform: translate(-50%, -50%);
            transition: width 0.3s, height 0.3s, background-color 0.3s;
            mix-blend-mode: difference;
        }

        .cursor.hovered {
            width: 50px;
            height: 50px;
            background-color: var(--accent-color);
            opacity: 0.5;
            border-color: transparent;
        }

        /* Typography */
        h1,
        h2,
        h3 {
            font-weight: 700;
            margin-bottom: 1rem;
            color: var(--primary-color);
        }

        h2 {
            font-size: 2.5rem;
            text-align: center;
            margin-bottom: 3rem;
            opacity: 0;
            transform: translateY(30px);
            transition: all 0.8s ease-out;
        }

        h2.visible {
            opacity: 1;
            transform: translateY(0);
        }

        p {
            margin-bottom: 1rem;
            font-size: 1.1rem;
        }

        /* Navigation */
        nav {
            position: fixed;
            top: 0;
            width: 100%;
            padding: 1.5rem 2rem;
            display: flex;
            justify-content: center;
            z-index: 1000;
            transition: all 0.4s ease;
        }

        nav.scrolled {
            background: var(--glass-bg);
            backdrop-filter: blur(10px);
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
            padding: 1rem 2rem;
        }

        nav ul {
            display: flex;
            list-style: none;
            gap: 2rem;
        }

        nav a {
            text-decoration: none;
            color: var(--text-color);
            font-weight: 600;
            text-transform: uppercase;
            font-size: 0.9rem;
            position: relative;
            transition: color 0.3s;
        }

        nav a::after {
            content: '';
            position: absolute;
            bottom: -5px;
            left: 0;
            width: 0;
            height: 2px;
            background-color: var(--primary-color);
            transition: width 0.3s ease;
        }

        nav a:hover,
        nav a.active {
            color: var(--primary-color);
        }

        nav a:hover::after,
        nav a.active::after {
            width: 100%;
        }

        /* Sections General */
        section {
            padding: 6rem 2rem;
            min-height: 80vh;
            /* Fallback */
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            max-width: 1200px;
            margin: 0 auto;
            position: relative;
        }

        /* Animations */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: all 0.8s ease-out;
        }

        .reveal.active {
            opacity: 1;
            transform: translateY(0);
        }

        .stagger-delay-1 {
            transition-delay: 0.1s;
        }

        .stagger-delay-2 {
            transition-delay: 0.2s;
        }

        .stagger-delay-3 {
            transition-delay: 0.3s;
        }

        /* ABOUT */
        #about {
            margin-top: 80px;
            text-align: left;
            flex-direction: row;
            gap: 4rem;
        }

        .about-content {
            flex: 1;
        }

        .about-image {
            flex: 1;
            position: relative;
            overflow: hidden;
            border-radius: 20px;
            box-shadow: 20px 20px 0 var(--secondary-color);
        }

        .about-image img {
            width: 100%;
            height: auto;
            transition: transform 0.5s ease;
            display: block;
        }

        .about-image:hover img {
            transform: scale(1.05);
        }

        /* SERVICES */
        .services-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 2rem;
            width: 100%;
        }

        .service-card {
            background: white;
            padding: 2.5rem;
            border-radius: 15px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
            transition: transform 0.3s, box-shadow 0.3s;
            text-align: center;
        }

        .service-card:hover {
            transform: translateY(-10px);
            box-shadow: 0 15px 40px rgba(108, 99, 255, 0.2);
        }

        .service-icon {
            font-size: 3rem;
            margin-bottom: 1.5rem;
            color: var(--primary-color);
        }

        /* REVIEWS */
        .reviews-container {
            display: flex;
            gap: 2rem;
            overflow-x: auto;
            padding: 2rem 0;
            width: 100%;
            scroll-snap-type: x mandatory;
            scrollbar-width: none;
        }

        .review-card {
            min-width: 300px;
            background: white;
            padding: 2rem;
            border-radius: 20px;
            box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
            scroll-snap-align: center;
            border-left: 5px solid var(--accent-color);
        }

        .review-stars {
            color: #FFD700;
            margin-bottom: 1rem;
        }

        .review-author {
            margin-top: 1rem;
            font-weight: bold;
            color: var(--primary-color);
        }

        /* STATISTICS */
        #statistics {
            background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
            color: white;
            width: 100vw;
            max-width: 100%;
            padding: 4rem 2rem;
        }

        #statistics h2 {
            color: white;
        }

        .stats-container {
            display: flex;
            justify-content: space-around;
            width: 100%;
            max-width: 1200px;
            flex-wrap: wrap;
            gap: 2rem;
            margin-bottom: 3rem;
        }

        .stat-item {
            text-align: center;
        }

        .stat-number {
            font-size: 3.5rem;
            font-weight: 800;
            display: block;
        }

        .chart-container {
            width: 100%;
            max-width: 800px;
            height: 300px;
            background: rgba(255, 255, 255, 0.1);
            border-radius: 15px;
            padding: 1rem;
        }

        canvas {
            width: 100%;
            height: 100%;
        }

        /* PRIVACY & DISCLAIMER */
        #privacy-policy,
        #disclaimer {
            text-align: left;
            align-items: flex-start;
        }

        .legal-content {
            background: white;
            padding: 3rem;
            border-radius: 15px;
            box-shadow: 0 5px 25px rgba(0, 0, 0, 0.05);
            width: 100%;
        }

        /* CONTACT */
        .contact-form {
            width: 100%;
            max-width: 600px;
            background: white;
            padding: 3rem;
            border-radius: 20px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
        }

        .form-group {
            margin-bottom: 1.5rem;
            position: relative;
        }

        .form-group label {
            display: block;
            margin-bottom: 0.5rem;
            color: var(--text-color);
            font-weight: 600;
        }

        .form-group input,
        .form-group textarea {
            width: 100%;
            padding: 1rem;
            border: 2px solid #eee;
            border-radius: 10px;
            font-family: inherit;
            transition: border-color 0.3s;
        }

        .form-group input:focus,
        .form-group textarea:focus {
            outline: none;
            border-color: var(--primary-color);
        }

        button {
            background: var(--primary-color);
            color: white;
            border: none;
            padding: 1rem 2rem;
            border-radius: 50px;
            font-size: 1rem;
            font-weight: bold;
            transition: transform 0.3s, box-shadow 0.3s;
            width: 100%;
        }

        button:hover {
            transform: translateY(-3px);
            box-shadow: 0 10px 20px rgba(108, 99, 255, 0.3);
        }

        /* UNSUBSCRIBE */
        #unsubscribe {
            background-color: #f0f0f5;
            width: 100vw;
            max-width: 100%;
        }

        .form#unsubscribe-form {
            background: white;
            padding: 2rem;
            border-radius: 15px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
            width: 100%;
            max-width: 500px;
        }

        .alert {
            padding: 1rem;
            border-radius: 8px;
            margin-bottom: 1rem;
            text-align: center;
        }

        .alert-dismissable {}

        /* kept for selector compatibility */
        .text-center {
            text-align: center;
        }

        /* Footer */
        footer {
            background: var(--text-color);
            color: white;
            padding: 2rem;
            text-align: center;
            margin-top: auto;
        }

        @media (max-width: 768px) {
            nav {
                padding: 1rem;
            }

            nav ul {
                gap: 1rem;
                font-size: 0.8rem;
                flex-wrap: wrap;
                justify-content: center;
            }

            #about {
                flex-direction: column;
            }

            h2 {
                font-size: 2rem;
            }
        }
    </style>
</head>

<body>
    <div class="cursor"></div>

    <nav id="navbar">
        <ul>
            <li><a href="#about">About</a></li>
            <li><a href="#services">Services</a></li>
            <li><a href="#reviews">Reviews</a></li>
            <li><a href="#statistics">Statistics</a></li>
            <li><a href="#privacy-policy">Privacy Policy</a></li>
            <li><a href="#disclaimer">Disclaimer</a></li>
            <li><a href="#contact">Contact</a></li>
            <li><a href="#unsubscribe">Unsubscribe</a></li>
        </ul>
    </nav>

    <section id="about">
        <div class="about-content reveal">
            <h1>Discover the World's Wonders</h1>
            <p>Welcome to <b>
                    Radiotropicalperu.com                </b>. We believe that travel is the only thing you buy that makes you richer. Our mission is to curate
                unforgettable journeys that connect you with the beauty, culture, and spirit of destinations around the
                globe.</p>
            <p>From the serene peaks to the vibrant city streets, every itinerary is crafted with precision and passion.
                Let us guide you to your next great adventure.</p>
            <button style="width: auto; margin-top: 1rem;">Start Your Journey</button>
        </div>
        <div class="about-image reveal stagger-delay-1">
            <img src="assets/lucid-origin_breathtaking_mountain_landscape_with_a_clear_lake_reflection_at_sunrise_high_res-0.jpg"
                alt="breathtaking mountain landscape with a clear lake reflection at sunrise, high resolution, travel photography, style of national geographic, nano banana">
        </div>
    </section>

    <section id="services">
        <h2 class="reveal">Our Premium Services</h2>
        <div class="services-grid">
            <div class="service-card reveal stagger-delay-1">
                <div class="service-icon">✈️</div>
                <h3>Custom Itineraries</h3>
                <p>Tailor-made travel plans designed to fit your unique preferences and style. We handle the logistics
                    so you can enjoy the journey.</p>
                <br>
                <!-- Image placeholder 2 -->
                <img src="assets/lucid-origin_scenic_road_trip_through_a_desert_canyon_golden_hour_light_adventure_travel_conc-0.jpg"
                    alt="scenic road trip through a desert canyon, golden hour light, adventure travel concept, detailed texture, nano banana"
                    style="width:100%; border-radius:10px; margin-top:10px;">
            </div>
            <div class="service-card reveal stagger-delay-2">
                <div class="service-icon">🏨</div>
                <h3>Luxury Accommodations</h3>
                <p>Exclusive access to the world's finest hotels, resorts, and private villas. Experience comfort like
                    never before.</p>
            </div>
            <div class="service-card reveal stagger-delay-3">
                <div class="service-icon">🧭</div>
                <h3>Guided Expeditions</h3>
                <p>Expert-led tours that take you off the beaten path. Discover hidden gems and local secrets with our
                    seasoned guides.</p>
            </div>
        </div>
    </section>

    <section id="reviews">
        <h2 class="reveal">What Travelers Say</h2>
        <div class="reviews-container reveal">
            <div class="review-card">
                <div class="review-stars">★★★★★</div>
                <p>"An absolute dream come true. The attention to detail was impeccable, and every destination exceeded
                    our expectations."</p>
                <div class="review-author">- Alex Johnson</div>
            </div>
            <div class="review-card">
                <div class="review-stars">★★★★★</div>
                <p>"
                    Radiotropicalperu.com planned our honeymoon perfectly. Seamless logistics and stunning
                    locations. Highly recommended!"
                </p>
                <div class="review-author">- Sarah & Mike</div>
            </div>
            <div class="review-card">
                <div class="review-stars">★★★★☆</div>
                <p>"Professional, reliable, and truly knowledgeable. They found us spots we would never have discovered
                    on our own."</p>
                <div class="review-author">- David Chen</div>
            </div>
        </div>
    </section>

    <section id="statistics">
        <h2 class="reveal">Our Impact</h2>
        <div class="stats-container reveal">
            <div class="stat-item">
                <span class="stat-number" data-target="150">0</span>
                <span>Destinations</span>
            </div>
            <div class="stat-item">
                <span class="stat-number" data-target="5000">0</span>
                <span>Happy Travelers</span>
            </div>
            <div class="stat-item">
                <span class="stat-number" data-target="12">0</span>
                <span>Years Experience</span>
            </div>
        </div>
        <div class="chart-container reveal">
            <canvas id="travelChart"></canvas>
        </div>
        <!-- Image placeholder 3 -->
        <div style="margin-top: 2rem; width: 100%; max-width: 600px; border-radius: 15px; overflow: hidden;"
            class="reveal">
            <img src="assets/lucid-origin_pristine_tropical_beach_with_white_sand_and_turquoise_water_aerial_view_relaxati-0.jpg"
                alt="pristine tropical beach with white sand and turquoise water, aerial view, relaxation and paradise theme, high quality, nano banana"
                style="width: 100%; display: block;">
        </div>
    </section>

    <section id="privacy-policy">
        <h2 class="reveal">Privacy Policy</h2>
        <div class="legal-content reveal">

            <p>This Privacy Policy explains our policy regarding the privacy of information supplied by users or
                collected by us from users of this web site or from other third parties. Because we want to build users'
                trust and confidence in our privacy practices, we want to disclose them to you.</p>

            <p><b>Changes in this Privacy Statement</b></p>
            <p>If we decide to change our privacy policy, we will post those changes to this privacy statement, the home
                page, and other places we deem appropriate so that you are aware of what information we collect, how we
                use it, and under what circumstances, if any, we disclose it.
                We reserve the right to modify this privacy statement at any time, so please review it frequently. If we
                make material changes to this policy, we will notify you here, by email, or by means of a notice on our
                home page.</p>

            <p><b>Registration Newsletter/ Frequency of Mailings</b></p>
            <p>By registering to our newsletter, you are agreeing to receive our newsletters on a daily basis. <b>
                    Radiotropicalperu.com                </b> has the right to change frequency of delivery of its newsletters without notice.</p>

            <p><b>Collection and Use of information</b></p>
            <p>We respect your right to privacy. <b>
                    Radiotropicalperu.com                </b> received your information from your submission to us or through one of our affiliates.
                Radiotropicalperu.com is the owner of the information that you provided in any registration
                process. Your email address and any other identifying information that you give us will not be revealed
                to any third party, including any of the direct marketers who may use us to pass offers to you.
            </p>

            <p>We use the information that you provided primarily to send you our newsletters. Moreover, the information
                subscribers give us is sometimes used to send prizes, verify legal age, and to send third-party mailings
                based on the interests that each individual subscriber has opted-in for. We may also collect and report
                to third parties (such as affiliates, content and service providers, and advertisers) aggregated
                information from our web site. For example, we may aggregate and report to third parties that X people
                purchased a particular product during a month, or that Y% of visitors to this web site are between the
                ages 25-34.</p>

            <p>From time to time, we may provide you the opportunity to participate in contests or surveys on our site.
                If you participate, we will request certain personally identifiable information from you. Participation
                in these surveys or contests is completely voluntary and you, therefore, have a choice whether or not to
                disclose this information. The requested information typically includes contact information (such as
                name and shipping address), and demographic information (such as zip code).</p>

            <p>As is true of most web sites, we also gather certain information automatically and store it in log files.
                This information includes internet protocol (IP) addresses, browser type, internet service provider
                (ISP), referring/exit pages, operating system, date/time stamp, and click stream data. We use this
                information, which does not identify individual users, to analyze trends, to administer the site, to
                track users' movements around the site and to gather demographic information about our user base as a
                whole. We do link this automatically-collected data to personally identifiable information like IP
                addresses and email addresses. However, this is solely for internal uses and used to verify appropriate
                registration methods.</p>

            <p>Finally, <b>
                    Radiotropicalperu.com                </b> may disclose subscriber information in response to subpoenas, court orders, and other legal
                processes.</p>

            <p><b>Children</b></p>
            <p>We are committed to the safety of children and do not intend to collect personally identifiable
                information from children under age 18. If you are under age 18, please ask your parent for permission
                before sending any information to our site or anyone else online. Have your parent contact us as
                indicated below in order to provide us with prior written consent. We will not intentionally use
                personal information from or send marketing communications to children under age 13 without prior
                parental consent.</p>

            <p><b>Cookies</b></p>
            <p>A cookie is a small text file that is stored on a user's computer for record-keeping purposes. We do not
                use cookies on this site. This privacy statement covers the use of cookies by this site only and does
                not cover the use of cookies by any advertisers.</p>

            <p><b>Aggregate Information (non-personally identifiable)</b></p>
            <p>We maintain the right to share aggregated demographic information about our subscriber base with our
                partners and advertisers. This information does not identify individual subscribers. We do not link
                aggregate user data with personally identifiable information.</p>

            <p><b>Third-Party Links</b></p>
            <p>For your convenience, our newsletter contains links to third-party web sites that are not owned or
                controlled by us. We are not responsible for the privacy practices of these other web sites. We
                encourage you to note when you follow links in our newsletters and to read the privacy statements of
                these other web sites. We encourage you to be aware when you leave our newsletter and to read the
                privacy statements of each and every web site that collects personally identifiable information. This
                Privacy Policy applies solely to information collected by
                Radiotropicalperu.com            </p>

            <p><b>Security</b></p>
            <p>We use certain efforts to secure our web site. We will periodically review our security policies and
                implement changes from time to time. However, we cannot and do not guarantee complete security, as it
                does not exist on the Internet. If you have any questions about security on our web site, you can send
                an email</p>

            <p><b>Business Transitions</b></p>
            <p>In the event <b>
                    Radiotropicalperu.com                </b> goes through a business transition, such as a merger, acquisition by another company, or sale of
                all or a portion of its assets, your personally identifiable information will likely be among the assets
                transferred. You will be notified via prominent notice on our web site prior to any such change in
                ownership or control of your personal information.</p>

            <p><b>Choice/Opt-out</b></p>
            <p>If you no longer wish to receive our newsletter and promotional communications, you may opt-out of
                receiving them by following the instructions included in each newsletter or communication or by emailing
                us</p>

            <p><b>Acceptance of Terms</b></p>
            <p>By subscribing to our newsletter, you agree to the Privacy Policy. If you do not agree to this policy,
                please do not subscribe to our newsletters. We reserve the right, at our discretion, to change, modify,
                add, or remove portions of this policy at any time. All Privacy Policy changes will take effect
                immediately upon their posting on the site. Please check this page periodically for changes.</p>

            <p><b>Contact Us</b></p>
            <p>If you have any questions or suggestions regarding our privacy policy, please contact us</p>
        </div>
    </section>

    <section id="disclaimer">
        <h2 class="reveal">Disclaimer</h2>
        <div class="legal-content reveal">

            <p><b>
                    Radiotropicalperu.com                </b> serves as an informational service only. The inclusion of a link on this web site does not imply
                Radiotropicalperu.com endorsement of the linked site nor does
                Radiotropicalperu.com accept any responsibility for the content, or the use, of such site.
            </p>

            <p> <b>
                    Radiotropicalperu.com                </b> is not responsible for the offers or goods supplied by vendors. <b>
                    Radiotropicalperu.com                </b> has no control over the legality of any coupons or other offers made by vendors, the ability of any
                of the vendors to complete the sales or transactions in accordance with the offers, or the quality of
                the goods offered by the vendors. In the event you have a dispute with a vendor in any way relating to
                this site or the use
                of information from this site, you agree to waive and release <b>
                    Radiotropicalperu.com                </b> from any and all claims, demands, actions, damages (actual and consequential), losses, costs and
                expenses of every kind and nature, known and unknown, disclosed and undisclosed relating to that
                dispute.</p>

            <p>It is your responsibility to verify independently that any merchant you are doing business with is
                legitimate and reputable. Before participating in any specific offers and/or promotions, please analyze
                the details and conditions of the offer including the fine print. Any access to or use of this site
                shall be deemed your agreement to and approval of all the above terms and conditions.</p>

            <p><b>
                    Radiotropicalperu.com                </b> and the <b>
                    Radiotropicalperu.com                </b> service, and all materials and information contained on it, and any services or products provided
                through it are provided "AS IS" without warranties of any kind, express or implied, INCLUDING WITHOUT
                LIMITATION THE IMPLIED WARRANTY OF MERCHANTABILITY, fitness for a particular purpose, expectation of
                privacy (unless discussed on our Privacy Policy) or non-infringement. any warranty for information.</p>

            <p><b>
                    Radiotropicalperu.com                </b> is not responsible for any damages, including without limitation, any special, indirect, incidental
                or consequential damages, that may arise from any use of, inability to use, or reliance on the site
                and/or the materials contained on the site whether the materials contained on the site are provided by
                the <b>
                    Radiotropicalperu.com                </b>, or a third party.</p>

            <p>The above disclaimer of liability applies to any damages or injury caused by any error, omission,
                deletion, defect, interruption, failure of performance, delay in operation or transmission, computer
                virus, communication line failure, theft or destruction or unauthorized access to, alteration of, or use
                of record, whether for breach of contract, negligence, tortious behavior, or under any other cause of
                action.</p>

            <p>Information on this web site may contain technical inaccuracies or typographical errors. <b>
                    Radiotropicalperu.com                </b> may make updates, improvements and/or changes in the products and/or information described at any
                time without notice. <b>
                    Radiotropicalperu.com                </b> does not guarantee the accuracy or completeness of the information contained in this site. This
                site contains links to sites which are not maintained by <b>
                    Radiotropicalperu.com                </b> .
                We are not responsible and have no control over the content of those sites nor do we guarantee the
                content of such sites. All products, services, and deals mentioned by this site are provided by third
                parties and are subject to change without notice and are subject to restrictions, limitations,
                availability, conditions, and qualifications.</p>
        </div>
    </section>

    <section id="contact">
        <h2 class="reveal">Get in Touch</h2>
        <form class="contact-form reveal" onsubmit="return validateForm(event)">
            <div class="form-group">
                <label for="name">Name</label>
                <input type="text" id="name" required>
            </div>
            <div class="form-group">
                <label for="email">Email</label>
                <input type="email" id="email" required>
            </div>
            <div class="form-group">
                <label for="message">Message</label>
                <textarea id="message" rows="5" required></textarea>
            </div>
            <button type="submit">Send Message</button>
        </form>
    </section>

    <section id="unsubscribe">
        <h2 class="reveal">Unsubscribe</h2>
        <p class="reveal" style="margin-bottom: 2rem; text-align: center;">We are sorry to see you go.</p>

        <form class="form reveal" id="unsubscribe-form" method="POST" action="">

            <div class="messages">
                            </div>

            <div class="form-group">
                <label for="unsub-email">Email Address</label>
                <input type="email" id="unsub-email" name="email" required
                    value="">
            </div>

            <button type="submit" style="background-color: #d63031;">Unsubscribe</button>

        </form>
    </section>

    <footer>
        &copy;
        2026        Radiotropicalperu.com All Rights Reserved.
    </footer>

    <script>
        // Custom Cursor
        const cursor = document.querySelector('.cursor');
        document.addEventListener('mousemove', (e) => {
            cursor.style.left = e.clientX + 'px';
            cursor.style.top = e.clientY + 'px';
        });

        document.querySelectorAll('a, button, input, textarea, .service-card').forEach(el => {
            el.addEventListener('mouseenter', () => cursor.classList.add('hovered'));
            el.addEventListener('mouseleave', () => cursor.classList.remove('hovered'));
        });

        // Navigation Scroll Active State & Sticky Effect
        const nav = document.getElementById('navbar');
        const sections = document.querySelectorAll('section');
        const navLinks = document.querySelectorAll('nav ul li a');

        window.addEventListener('scroll', () => {
            if (window.scrollY > 50) {
                nav.classList.add('scrolled');
            } else {
                nav.classList.remove('scrolled');
            }

            let current = '';
            sections.forEach(section => {
                const sectionTop = section.offsetTop;
                const sectionHeight = section.clientHeight;
                if (pageYOffset >= (sectionTop - sectionHeight / 3)) {
                    current = section.getAttribute('id');
                }
            });

            navLinks.forEach(a => {
                a.classList.remove('active');
                if (a.getAttribute('href').includes(current)) {
                    a.classList.add('active');
                }
            });
        });

        // Intersection Observer for Animations
        const observer = new IntersectionObserver((entries) => {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    entry.target.classList.add('active');
                    if (entry.target.querySelector('.stat-number')) {
                        startThinkingStats();
                    }
                    if (entry.target.querySelector('canvas')) {
                        drawChart();
                    }
                }
            });
        }, { threshold: 0.1 });

        document.querySelectorAll('.reveal, h2').forEach(el => observer.observe(el));

        // Statistics Counter
        let statsRun = false;
        function startThinkingStats() {
            if (statsRun) return;
            statsRun = true;
            document.querySelectorAll('.stat-number').forEach(counter => {
                const target = +counter.getAttribute('data-target');
                const increment = target / 100;

                const updateCount = () => {
                    const count = +counter.innerText;
                    if (count < target) {
                        counter.innerText = Math.ceil(count + increment);
                        setTimeout(updateCount, 20);
                    } else {
                        counter.innerText = target;
                    }
                };
                updateCount();
            });
        }

        // Canvas Chart
        function drawChart() {
            const canvas = document.getElementById('travelChart');
            if (!canvas) return;

            // Adjust canvas resolution for retina displays
            const dpr = window.devicePixelRatio || 1;
            const rect = canvas.getBoundingClientRect();
            canvas.width = rect.width * dpr;
            canvas.height = rect.height * dpr;

            const ctx = canvas.getContext('2d');
            ctx.scale(dpr, dpr);

            // Simple data
            const data = [10, 25, 40, 50, 75, 90, 120];
            const width = rect.width;
            const height = rect.height;
            const padding = 40;
            const step = (width - padding * 2) / (data.length - 1);

            ctx.clearRect(0, 0, width, height);
            ctx.beginPath();
            ctx.strokeStyle = '#ffffff';
            ctx.lineWidth = 3;
            ctx.lineCap = 'round';
            ctx.lineJoin = 'round';

            // Animation Loop
            let progress = 0;
            function animateLine() {
                if (progress > 1) progress = 1;

                ctx.clearRect(0, 0, width, height);
                ctx.beginPath();
                ctx.moveTo(padding, height - padding - (data[0] / 150) * (height - 2 * padding));

                for (let i = 1; i < data.length; i++) {
                    const x = padding + i * step;
                    const y = height - padding - (data[i] / 150) * (height - 2 * padding);

                    // Simple linear interpolation for animation effect
                    // In a real scenario we'd draw segments based on progress
                }

                // Draw full static line for simplicity in this specific constraint context, 
                // or animate the drawing path.
                // Let's draw the full path but revealing it with a clipping region or just update end point
                // Simpler: Draw path up to progress * width

                ctx.moveTo(padding, height - padding - (data[0] / 150) * (height - 2 * padding));

                for (let i = 1; i < data.length; i++) {
                    const x = padding + i * step;
                    const targetY = height - padding - (data[i] / 150) * (height - 2 * padding);

                    // If we want to animate strictly the line drawing:
                    ctx.lineTo(x, targetY);
                }
                ctx.stroke();

                // Add sheen or nodes
                ctx.fillStyle = '#FF9F9F';
                for (let i = 0; i < data.length; i++) {
                    const x = padding + i * step;
                    const y = height - padding - (data[i] / 150) * (height - 2 * padding);
                    ctx.beginPath();
                    ctx.arc(x, y, 6, 0, Math.PI * 2);
                    ctx.fill();
                }

                // Add text
                ctx.fillStyle = '#fff';
                ctx.font = '12px sans-serif';
                ctx.fillText('Monthly Growth', padding, padding);
            }
            requestAnimationFrame(animateLine);
        }

        // Contact Form Validation
        function validateForm(e) {
            e.preventDefault();
            const name = document.getElementById('name').value;
            const email = document.getElementById('email').value;

            if (name.length < 2) {
                alert('Please enter a valid name.');
                return false;
            }
            if (!email.includes('@')) {
                alert('Please enter a valid email.');
                return false;
            }

            alert('Thank you! Your message has been sent.');
            e.target.reset();
            return false;
        }

        // Mandatory Load Event Listener
        window.addEventListener('load', function () {
            const section = window.location.pathname.replace('/', '');
            if (section) {
                const el = document.getElementById(section);
                if (el) el.scrollIntoView({ behavior: 'smooth' });
            }
        });
    </script>
</body>

</html>