/* Basic Reset */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --bg-doc: #6f8db8;
    --cloud-bg: #ffffff;
    --cloud-inset-shadow: #ccc;
    --cloud-scale: 2; /* Adjust the size of clouds */
}

body {
    font-family: 'Roboto', sans-serif;
    background-color: var(--bg-doc);
    line-height: 1.6;
    color: #333;
    text-align: center; /* Default centering for most content */
}

header {
    background-color: #023566;
    color: #FFFFFF;
    position: relative;
    margin-bottom: 20px;
    z-index: 2; /* Ensure header appears above clouds */
}

#logo {
    position: relative;
    z-index: 5; /* Ensure logo is above clouds */
    width: 300px;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* Navigation Bar */
nav {
    background-color: #023566;
    border-bottom: 3px solid black;
    position: relative;
}

nav::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: black;
}

#nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
}

#nav-list li {
    margin: 0 10px;
}

#nav-list li a {
    color: white;
    text-decoration: none;
    padding: 10px 20px;
    border-radius: 10px 20px 0 0;
    transition: background-color 0.5s, color 0.3s;
}

#nav-list li a:hover, #nav-list li a.active {
    background-color: black;
    color: white;
    font-weight: bold;
}

/* Clouds */
.cloud {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--cloud-bg);
    border-radius: calc(1.5em * var(--cloud-scale));
    box-shadow: inset 0 0 0 calc(1px * var(--cloud-scale)) var(--cloud-inset-shadow),
                0 calc(2px * var(--cloud-scale)) calc(3px * var(--cloud-scale)) rgba(0, 0, 0, 0.25);
    height: calc(2em * var(--cloud-scale));
    width: calc(4em * var(--cloud-scale));
    position: absolute;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    font-size: 1em;
    color: black;
    white-space: nowrap;
    z-index: 4; /* Behind logo and navbar */
}

.cloud::before, .cloud::after {
    content: '';
    position: absolute;
    background-color: var(--cloud-bg);
    border-radius: 100%;
}

.cloud:before {
    width: calc(2em * var(--cloud-scale));
    height: calc(2em * var(--cloud-scale));
    top: calc(-1em * var(--cloud-scale));
    left: calc(.5em * var(--cloud-scale));
}

.cloud:after {
    width: calc(1.5em * var(--cloud-scale));
    height: calc(1.5em * var(--cloud-scale));
    top: calc(-.75em * var(--cloud-scale));
    right: calc(.5em * var(--cloud-scale));
}

.cloud > span {
    z-index: 2; /* Text stays above the cloud background */
}

/* Cloud Animations */
@keyframes cloud-move {
    0% {
        left: -250px; /* Start off-screen to the left */
        transform: translateY(0); /* Start at initial vertical position */
    }
    25% {
        transform: translateY(-50px); /* Move up */
    }
    50% {
        transform: translateY(0); /* Move back down */
    }
    75% {
        transform: translateY(-50px); /* Move up again */
    }
    100% {
        left: 100%; /* Move to the right past the screen */
        transform: translateY(0); /* End at initial vertical position */
    }
}

/* Individual Cloud Configurations */
#cloud1 {
    animation: cloud-move 30s linear infinite;
    top: 100px;
    left: -300px; /* Start off-screen */
}

#cloud2 {
    animation: cloud-move 45s linear infinite;
    top: 150px;
    left: -400px; /* Start off-screen */
}

#cloud3 {
    animation: cloud-move 60s linear infinite;
    top: 200px;
    left: -500px; /* Start off-screen */
}

/* Adjust Clouds for Smaller Screens */
@media (max-width: 480px) {
    :root {
        --cloud-scale: 1; /* Reduce cloud size on smaller screens */
    }

    .cloud {
        font-size: 0.8em; /* Adjust text size */
    }

    #cloud1, #cloud2, #cloud3 {
        top: auto; /* Adjust positions dynamically */
    }

    #cloud1 {
        top: 50px;
    }

    #cloud2 {
        top: 100px;
    }

    #cloud3 {
        top: 150px;
    }
}

/* Services Section */
.pricing-chart {
    display: flex;
    align-items: center;
    gap: 20px;
    max-width: 800px;
    margin: 0 auto;
}

.pricing-chart .service {
    background-color: #B7C9E2;
    color: #333;
    padding: 20px;
    border-radius: 100px;
    box-shadow: 0 5px 5px rgba(0, 0, 0, 0.15);
    width: 100%;
    max-width: 400px;
    text-align: center;
}

.pricing-chart .service h3 {
    color: #D00000;
    margin-bottom: 10px;
}

/* CTA Section */
.cta {
    text-align: center;
    background-color: #f4f4f4;
    padding: 20px;
    margin: 50px auto;
    max-width: 800px;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.cta h2 {
    color: #D00000;
    margin-bottom: 10px;
    font-size: 1.8em;
}

.cta p {
    color: #555;
    font-size: 1.2em;
    margin-bottom: 20px;
}

/* Service Area Section */
.service-area-map {
    text-align: center;
    margin: 30px auto;
    max-width: 600px;
}

.service-area-map img {
    max-width: 60%;
    height: auto;
    border: 3px solid #D00000;
    margin: 20px auto;
}

.service-area-map h3 {
    color: #D00000;
    margin-bottom: 10px;
}

/* Footer */
footer {
    background-color: #F2F2F2;
    text-align: center;
    padding: 20px;
}

/* Media Queries */
@media (max-width: 480px) {
    #logo {
        width: 120px;
        margin: 10px auto;
    }

    #nav-list {
        flex-direction: column;
        margin-top: 10px;
    }

    #nav-list li {
        width: 100%;
        margin: 5px 0;
    }

    #nav-list li a {
        padding: 10px 15px;
        font-size: 0.9em;
        border-radius: 5px;
    }

    nav::after {
        display: none;
    }

    .pricing-chart .service {
        flex: 0 1 calc(100% - 20px);
    }

    .service-area-map img {
        max-width: 80%;
    }
}
