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

/* Global styles */
body {
    font-family: Arial, sans-serif;
    line-height: 1.5;
}

header {
    background-color: #F7F7F7;
    padding: 20px;
    color: #fff;
}

nav {
    display: flex;
    justify-content: center;
    align-items: center;
}

.logo img {
    height: 50px;
}

.nav-links li {
    display: inline-block;
    margin-left: 20px;
}

.nav-links a {
    color: #000;
    text-decoration: none;
}

.main {
    padding: 20px;
}

@media only screen and (min-width: 768px) {
    .col {
        flex: 50%;
    }
}

/******** Start section ********/
.start {
    background-position: center;
    background-repeat: repeat;
    height: 330px;
    display: flex;
    align-items: center;
    position: relative;
}

/* presudo element for background image that is opaque */
.start::before {
    content: "";
    background-image: url('assets/bg-patterns.webp');
    position: absolute;
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
    opacity: 0.15;
}

.start-content {
    display: flex;
    width: 100%;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.start-content h1 {
    font-size: 32px;
    padding-bottom: 0.5em;
}

/* Desktop specific */
@media only screen and (min-width: 768px) {
    .start {
        height: 680px;
    }

    .start-content {
        text-align: center;
    }

    .start-content h1 {
        font-size: 72px;
        width: 40%;
    }
}

.start-content p {
    font-size: 20px;
}

/******** About us section ********/
.about-us {
    background-color: #06234F;
    color: white;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.about-us img {
    max-width: 100%;
    height: auto;
}

.about-us-content {
    padding: 1em;
}

.about-us h2 {
    margin: 1em 0em;
}

/* Desktop specific */
@media only screen and (min-width: 768px) {
    .about-us {
        height: 500px;
        flex-direction: row;
    }

    .about-us-content {
        padding: 7em;
        width: 40%;
    }

    .about-us h2 {
        font-size: 40px;
        width: 100%;
    }

    .about-us img {
        width: 70%;
    }
}

/******** Philosophy section ********/
.philosophy {
    background-position: center;
    background-repeat: repeat;
    height: 370px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 1em;
}

/* presudo element for background image that is opaque */
.philosophy::before {
    content: "";
    background-image: url('assets/bg-crisscross.webp');
    position: absolute;
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
    opacity: 0.15;
}

.philosophy h2 {
    font-size: 40px;
}

/* Desktop specific */
@media only screen and (min-width: 768px) {
    .philosophy {
        height: 700px;
        text-align: center;
    }

    .philosophy-content {
        background-color: #F7F7F7;
        padding: 5em;
        width: 40%;
    }
}

/******** Service section ********/
.service {
    text-align: center;
}

.service h2 {
    width: 100%;
    margin: 1em 0em;
}

.service-box {
    background-color: #FFC3BC;
    padding: 1em;
}

.service img {
    max-width: 100%;
    height: auto;
}

/* Desktop specific */
@media only screen and (min-width: 768px) {
    .service {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .service-box-wrapper {
        display: flex;
        flex-direction: row;
        justify-content: center;
        margin: 2em 5em;
        max-width: 70%;
    }

    .service h3 {
        font-size: 30px;
        padding: 1em;
    }

    .service p {
        padding: 1em;
    }

    .service-box {
        padding: 2em;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }
}

/******** Team section ********/
.team {
    margin: 2em 1em;
    display: flex;
    justify-content: center;
}

.team h2 {
    width: 100%;
    margin-bottom: 0.5em;
}

/* Desktop specific */
@media only screen and (min-width: 768px) {
    .team-content {
        background-color: #F7F7F7;
        padding: 4em;
        width: 40%;
        text-align: center;
    }

    .team h2 {
        font-size: 40px;
    }
}

/******** Costs section ********/
.costs {
    padding: 2em 1em;
    background-color: #06234F;
    color: white;
}

.costs h2 {
    width: 100%;
    margin: 1em 0em;
}

/* Desktop specific */
@media only screen and (min-width: 768px) {
    .costs {
        display: flex;
        justify-content: center;
    }

    .costs-content {
        width: 40%;
    }

    .costs h2 {
        font-size: 40px;
    }
}

/******** Parents section ********/
.parents-content {
    padding: 2em 1em;
}

.parents h2 {
    width: 100%;
    margin: 1em 0em;
}

.parents img {
    max-width: 100%;
    height: auto;
    max-height: 70%;
}

/* Desktop specific */
@media only screen and (min-width: 768px) {
    .parents {
        display: flex;
    }

    .parents img {
        margin: 5em 0em 5em 25em;
    }

    .parents-content {
        background-color: #F7F7F7;
        margin: 10em 25em 10em 0;
        padding: 2em;
        left: -4em;
        position: relative;
    }

    .parents h2 {
        font-size: 40px;
    }
}

/******** Contact section ********/
.contact {
    padding: 2em 1em;
    background-color: #FFC3BC;
    text-align: center;
    line-height: 2;
}

.parents h2 {
    width: 100%;
    margin: 1em 0em;
}

/* Desktop specific */
@media only screen and (min-width: 768px) {
    .parents h2 {
        font-size: 40px;
    }
}

/******** footer ********/
footer {
    font-size: 14px;
    text-align: center;
    padding: 2em 0 1em 0;
}