* {
    margin: 0;
    padding: 0;
}

:root {
    --main-yellow: #ffcc00;
    --accent-green: #004c35;
    --text-white: #ffffff;
}

body {
    font-family: Arial, Helvetica, sans-serif;
}

/* ============================== Banner header ============================== */
#banner {
    background-image: url('../img/banner.png');
    background-color: var(--main-yellow);
    background-repeat: no-repeat;
    background-size: cover;

    height: 70dvh;
}

#logo {
    height: 35px;
    margin: 30px 20px;
}


/* Text on the banner */
#bannerContent {
    margin: 0 auto;
    width: 968px;
}

#bannerText {
    color: var(--text-white);
    text-align: center;

    width: 400px;
    margin-top: 100px;
    margin-left: 440px;
}

h1 {
    font-size: 40px;
}

#bannerParagraph {
    font-size: 20px;
    font-style: italic;
}


/* Headerblocks at the bottom of the banner */
#headerblocks {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-around;

    max-width: 1000px;
    margin: -70px auto 70px auto;
}

.headerblocks {
    display: flex;
    flex-direction: column;
    background-color: var(--accent-green);
    color: var(--text-white);

    width: 310px;
    height: 200px;
    margin: 15px;
    padding: 30px;
}

h3 {
    font-size: 25px;
    margin-bottom: 15px;
}


/* Headerblock 1 */
.locationOne {
    font-weight: 700;
    margin-top: 25px;
}

.locationTwo{
    font-weight: 700;
    margin-top: 15px;
}


/* Headerblock 2*/
i {
    margin-right: 5px;
}

.info {
    color: var(--text-white);
    text-decoration: none;
    margin-bottom: 15px;

    &:hover {
        text-decoration: underline;
    }
}


/* ============================== Main sections  ============================== */
.wrapper {
    margin: 0 auto;
    width: 1300px;
}

.normalSection {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    background-color: var(--main-yellow);
    color: var(--accent-green);

    margin-bottom: 100px;
}

.sectionText {
    padding: 50px;
}

.sectionImage {
    width: 650px;
}

.image {
    object-fit: cover;
    width: 100%;
    height: 100%;
}


/* Section texts */
h2 {
    font-size: 40px;
    margin-bottom: 20px;
}

.textStart {
    margin-bottom: 20px;
}

.textMiddle {
    margin-top: 5px;
}

.textEnd {
    margin-top: 20px;
}

.register {
    display: block;
    color: var(--accent-green);
    text-decoration: none;
    font-weight: bold;
    font-size: 20px;

    margin-top: 30px;
    padding: 5px;

    &:hover {
        background-color: var(--accent-green);
        color: var(--text-white);
        width: 130px;
    }
}

span {
    margin-right: 3px;
}


/* School classes */
.classSection {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;

    margin-bottom: 100px;
}

.class {
    display: flex;
    flex-direction: column;
    background-color: var(--main-yellow);
    color: var(--accent-green);

    width: 210px;
    height: 150px;
    margin-bottom: 10px;
    padding: 20px;

    &:hover {
        transition: transform .3s ease;
        transform: translateY(-5px);
    }
}

.classText {
    background-color: var(--accent-green);
    color: var(--text-white);
    text-align: center;
    padding: 8px;
}

h4 {
    font-size: 18px;
    text-decoration: underline;
    text-underline-offset: 6px;
    text-decoration-thickness: 1.5px;
    
    margin-bottom: 20px;
}


/* ============================== Footer  ============================== */
footer {
    background-color: var(--accent-green);
    color: var(--text-white);

    font-size: 20px;
    text-align: center;
    padding: 20px;
}


/* ============================== Responsive design  ============================== */
@media screen and (max-width: 1300px){
    .wrapper {
        overflow: hidden;
        width: 100vw;
    }

    .sectionImage {
        width: 100%;
    }
}

@media screen and (max-width: 900px) {
    #bannerContent {        
        overflow: hidden;
        display: none;
    }
}

@media screen and (max-width: 700px) {
    .sectionImage {
        width: 100%;
    }

    .classSection {
        grid-template-columns: 1fr;
        width: 250px;
        height: calc(3 * 108px + 40px);

        margin: 0 auto;
        margin-bottom: 100px;
        
        scroll-behavior: smooth;
        overflow-y: scroll;
    }
}