@font-face {
    font-family: 'erato';
    src: url('../font/eratolig-webfont.eot');
    src: url('../font/eratolig-webfont.eot?#iefix') format('embedded-opentype'),
         url('../font/eratolig-webfont.woff2') format('woff2'),
         url('../font/eratolig-webfont.woff') format('woff'),
         url('../font/eratolig-webfont.ttf') format('truetype'),
         url('../font/eratolig-webfont.svg#eratolight') format('svg');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'open_sans';
    src: url('../font/OpenSans-Light-webfont.eot');
    src: url('../font/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
         url('../font/OpenSans-Light-webfont.woff') format('woff'),
         url('../font/OpenSans-Light-webfont.ttf') format('truetype'),
         url('../font/OpenSans-Light-webfont.svg#open_sanslight') format('svg');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'open_sans';
    src: url('../font/OpenSans-ExtraBold-webfont.eot');
    src: url('../font/OpenSans-ExtraBold-webfont.eot?#iefix') format('embedded-opentype'),
         url('../font/OpenSans-ExtraBold-webfont.woff') format('woff'),
         url('../font/OpenSans-ExtraBold-webfont.ttf') format('truetype'),
         url('../font/OpenSans-ExtraBold-webfont.svg#open_sansextrabold') format('svg');
    font-weight: bold;
    font-style: normal;

}

body {
    font-family: open_sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"
}


a,
a:hover {
    color: #3c6d12; text-decoration: none;
}

ul {
    margin: 0; padding: 0;
}
    li {
        display: block;
        list-style-type: none;
    }


.o-iconText {
    display: flex;
    flex-flow: row nowrap; align-items: flex-end;
}
    .o-iconText--icon {
        display: block;
        height: 100%;
    }
    .o-iconText--text {
        display: none;
    }

@media (min-width: 48rem) {
    .o-iconText--icon {
        display: none;
    }
    .o-iconText--text {
        display: block;
        color: #3c6d12; font-size: 0.875rem;
    }
}

.o-section {
    position: relative; overflow: hidden;
}
.o-section.o-section-green {
    background-color: #3c6d12;
}
    .o-section--body {
        display: flex; overflow: hidden; position: relative;
        flex-flow: column nowrap; justify-content: center; align-items: center;
        z-index: 10;
        min-height: 100vh;
        padding: 1rem 0;
    }
    .o-section-bounded > .o-section--body {
        max-width: 64rem;
        margin: 0 auto; padding: 1rem;
    }
    .o-section-green > .o-section--body,
    .o-section-green .o-section--title {
        color: #ffffff;
    }
        .o-section--title {
            margin: 0 0 1rem;
            color: #3c6d12; font-family: erato; font-size: 1.125rem;
        }
        .o-section--text {
            margin: 0 0 1rem;
            line-height: 1.5rem; text-align: center;
            font-size: 0.875rem;
        }
        .o-section--text:last-child {
            margin: 0;
        }
    .o-section--background {
        position: absolute;
        z-index: 0;
        opacity: 0.05;
        background-repeat: no-repeat; background-size: contain;
    }

@media (min-width: 48rem) {
    .o-section--body {
        padding: 2rem 0;
    }
    .o-section-bounded > .o-section--body {
        padding: 2rem;
    }
        .o-section--title {
            margin: 0 0 2rem;
            font-size: 1.5rem;
        }
        .o-section--text {
            line-height: 2.5rem;
            font-size: 1.25rem;
        }
}


.o-dots {
    flex: 0 0 auto;
    display: flex;
    flex-flow: row nowrap; justify-content: center; align-items: center;
    height: 4rem;
    margin: 0 auto; padding: 1.5rem 0;
}
    .o-dots--dot {
        width: 1rem; height: 1rem;
        margin: 0 1rem;
        border: 0.1875rem solid #ffffff;
        background-color: #3c6e12; opacity: 0.25;
        cursor: pointer;
    }
    .o-dots--dot.is-active {
        opacity: 1;
        cursor: default;
    }

@media (min-width: 48rem) {
.o-dots {
    height: 7rem;
    padding: 3rem 0;
}
    .o-dots--dot {
        margin: 0 1.5rem;
        border-width: 0;
    }
}


.c-header--container {
    position: absolute;
    top: 0; left: 0; z-index: 1000;
    width: 100%; height: 6rem;
    background-color: #ffffff;
}
    .c-header {
        width: 100%; max-width: 60rem; height: 6rem;
        margin: 0 auto; padding: 0 0 1rem;
    }

@media (min-width: 48rem) {
.c-header--container {
    height: 7rem;
}
    .c-header {
        height: 7rem;
    }
}


.c-headerLogo {
    display: block; position: absolute; overflow: hidden;
    top: 1rem; left: 50%;
    transform: translateX(-50%);
    height: 4rem;
}
    .c-headerLogo--image {
        display: block;
        height: 100%;
    }
    .c-headerLogo--text {
        display: none;
    }

@media (min-width: 48rem) {
.c-headerLogo {
    height: 5rem;
}
}


.c-headerNav {
    display: flex;
    flex-flow: row nowrap;
    height: 100%;
}
    .c-headerNav--group {
        display: flex;
        flex-flow: row nowrap; justify-content: space-around; align-items: flex-end;
        width: 50%; height: 100%;
    }
    .c-headerNav--group.c-headerNav-left {
        padding-right: 5rem;
    }
    .c-headerNav--group.c-headerNav-right {
        padding-left: 5rem;
    }
        .c-headerNav--link {
            display: block;
            flex: 0 0 auto;
            width: 1.5rem; height: 1.5rem;
        }

@media (min-width: 48rem) {
    .c-headerNav--group {
        justify-content: space-between;
    }
    .c-headerNav--group.c-headerNav-left {
        justify-content: flex-start;
        padding-right: 6rem;
    }
    .c-headerNav--group.c-headerNav-right {
        justify-content: flex-end;
        padding-left: 6rem;
    }
        .c-headerNav--link {
            width: auto; height: auto;
            padding: 0 0.5rem;
            font-size: 0.875rem;
        }
}


.c-events {
}
    .c-events--body {
        display: flex;
        justify-content: flex-start; align-items: stretch;
        padding: 6rem 0 0 0;
    }
        .c-events--list {
            flex: 1 1 auto;
            display: flex;
            flex-flow: row nowrap;
        }
            .c-events--item {
                flex: 0 0 auto;
                display: none;
                position: relative;
                width: 100vw; min-height: 100%;
                background-position: center center; background-size: cover;
            }
            .c-events--item.is-active {
                display: block;
            }
                .c-events--band {
                    position: absolute;
                    left: 0; bottom: 1.5rem;
                    width: 100%;
                    background-color: rgba(0, 0, 0, 0.4);
                    color: #ffffff;
                }
                    .c-events--info {
                        max-width: 60rem;
                        margin: 0 auto;
                    }
                        .c-events--description {
                            padding: 1rem;
                        }
                            .c-events--title {
                                font-size: 1.25rem; font-weight: normal;
                            }
                            .c-events--text {
                                margin: 0;
                            }
                        .c-events--button {
                            display: none;
                        }
                        .c-events--button.c-events-bottom {
                            display: block;
                        }
        .c-events--calendar {
            display: block;
            height: 4rem;
            background-color: #3c6d12;
            line-height: 4rem; text-align: center;
            font-size: 1.25rem;
            color: #ffffff;
        }
        .c-events--calendar:hover {
            color: #ffffff;
        }
@media (min-width: 48rem) {
    .c-events--body {
        padding: 7rem 0 0 0;
    }
                    .c-events--info {
                        display: flex;
                        flex-flow: row nowrap;
                    }
                        .c-events--description {
                            flex: 1 1 auto;
                            padding: 2rem;
                        }
                            .c-events--title {
                                font-size: 2rem;
                            }
                            .c-events--text {
                                font-size: 1.75rem;
                            }
                        .c-events--button {
                            display: flex;
                            flex-flow: column nowrap; justify-content: center; align-items: stretch;
                            flex: 1 1 auto;
                            padding: 2rem 2rem 2rem 0;
                        }
                        .c-events--button.c-events-bottom {
                            display: none;
                        }
        .c-events--calendar {
            height: 4.5rem;
            line-height: 4.5rem;
            font-size: 2rem;
        }

}

.c-about {
}
    .c-about--title {
    }
    .c-about--text {
    }
    .c-about--text:last-child {
        margin: 0;
    }
    .c-about > .o-section--background {
        bottom: -0.25rem; left: 0;
        width: 100%; height: 100%;
        background-position: left bottom;
    }


.c-map {
}
    .c-map--body {
    }
        .c-map--text {
        }
        .c-map--container {
            flex: 1 0 auto;
            position: relative;
            width: 100%; height: 50%;
            padding: 0;
        }
            .c-map--map {
                position: absolute;
                top: 0; left: 0;
                width: 100%; height: 100%;
            }
    .c-map > .o-section--background {
        top: 1rem; right: -1rem;
        width: 75%; height: 150%;
        background-position: right top;
    }

@media (min-width: 48rem) {
        .c-map--text {
            margin: 0 0 2rem;
        }
        .c-map--container {
        }
}


.c-instructors {
}
    .c-instructors--body {
        justify-content: flex-start;
        padding: 1rem 0 0;
    }
        .c-instructors--container {
            flex: 0 0 auto; align-self: stretch;
            position: relative; overflow: hidden;
        }
            .c-instructors--portraits {
                display: flex; flex-flow: row nowrap;
            }
                .c-instructors--portraits:before {
                    content: '';
                    flex: 0 0 auto;
                    width: 20%;
                }
                .c-instructors--portrait {
                    flex: 0 0 auto;
                    width: 60%; max-height: 13.75rem;
                    padding: 0 0.5rem;
                }
                    .c-instructors--image {
                        display: block;
                        max-width: 100%; max-height: 13.75rem;
                        margin: 0 auto; padding: 0.125rem;
                        border: 0.125rem solid #3c6e12;
                    }
            .c-instructors--description {
                max-width: 60rem;
                margin: 0 auto; padding: 0 1rem 1rem;
            }
                .c-instructors--name {
                    margin: 0 0 1.5rem;
                    text-align: center;
                    color: #3c6e12; font-family: erato, serif; font-size: 1rem; font-weight: bold;
                }
                .c-instructors--text {
                    line-height: 1.5rem; text-align: center;
                    font-size: 0.875rem;
                }
                .c-instructors--text:last-child {
                    margin: 0;
                }
    .c-instructors > .o-section--background {
        bottom: -0.25rem; left: 0;
        width: 100%; height: 90%;
        background-position: left bottom;
    }

@media (min-width: 48rem) {
            .c-instructors--description {
                padding: 0 2rem 2rem;
            }
                .c-instructors--name {
                    margin: 0 0 3rem;
                    font-size: 1.5rem;
                }
                .c-instructors--text {
                    margin: 0 0 2rem;
                    line-height: 2.5rem;
                    font-size: 1.25rem;
                }
}

.c-lessons {}
    .c-lessons--body {}
        .c-lessons--text {
            margin: 0 0 1rem;
        }
    .c-lessons > .o-section--background {
        right: 0; bottom: -10%;
        width: 140%; height: 100%;
        background-position: right bottom;
    }

@media (min-width: 48rem) {
        .c-lessons--text {
            margin: 0 0 2rem;
        }
}

.c-footer--container {
    border-top: 0.125rem solid #3c6d12;
}
    .c-footer {
        max-width: 60rem;
        margin: 0 auto; padding: 1rem;
    }
        .c-footer--text {
            margin: 0;
            line-height: 1.125rem; text-align: center;
            color: #3c6d12; font-size: 0.75rem;
        }

@media (min-width: 48rem) {
    .c-footer {
        padding: 2rem;
    }
        .c-footer--text {
            line-height: 2rem;
            font-size: 1rem;
        }
}