@import url('https://fonts.googleapis.com/css2?family=Funnel+Sans:ital,wght@0,300..800;1,300..800&display=swap');

:root {
    --bg-dark: #2F3738;
    --bg: #344143;
    --bg-light: #289faf;

    --text-1: rgb(255, 255, 255);
    --text-2: #92dae3;
    --text-3: #dcdcdc;
    --text-4: #e4e4e4;
    --disabled: #adadad;
}

* {
    margin: 0;
    color: var(--text-1);

    font-family: "Funnel Sans", sans-serif;
}

a {
    color: var(--text-2);
}

body {
    background-color: var(--bg-dark);
}

.hyperlink {
    color: var(--text-2);
    font-weight: 600;
}

.wave {
    width: 100vw;
    height: auto;
    display: inline-block;
    position: relative;
    z-index: 999;
}

.section {
    width: 100vw;
    margin-top: 4vh;
    display: flex;
    align-items: center;
    flex-direction: column;
}

.section p {
    width: 80vw;
    text-align: center;
    max-width: 30em;
    color: var(--text-3);
    margin-top: 1vh;
}

.small-icon {
    min-height: 1.75em;
    height: 3.75vh;
    background-color: var(--bg);
    padding: .75vh;
    border-radius: .5vh;
}

.text-container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.hero {
    margin-bottom: -4vh;
}

.hero .wave {
    margin-top: -15vh;
    height: 10vh;
    width: 100vw;
    max-width: 80em;
    object-fit: cover;
    object-position: top;
}

.hero .bg-img {
    height: 30vh;
    width: 100vw;
    object-fit: cover;
    filter: brightness(0.6);
}

.hero .text-container {
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: start;
    margin-top: 3vh;
    margin-left: 2vw;
}

.hero .content {
    position: absolute;
    width: 80vw;
    margin-left: 5vw;
    margin-top: 3vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero .logo {
    margin-top: 4vh;
    margin-left: 4vh;
    height: 15vh;
    z-index: 2;
}

.hero h1 {
    font-size: clamp(1.1rem, 8vw, 3rem);
    font-weight: 600;
    color: var(--text-1);
}

.hero h2 {
    margin-top: -.75vh;
    font-size: clamp(.8rem, 5.5vw, 1.5rem);
    font-weight: 500;
    color: var(--text-2);
}

.links {
    margin-top: 2vh;
}

.links .small-icon {
    height: 2.5vh;
}

.links div {
    display: flex;
    align-items: center;
}

.links div:not(:last-child) {
    margin-bottom: 1vh;
}

.links a {
    font-size: clamp(.7rem, 4.5vw, 1.25rem);
    margin-left: min(2vw, .55em);
    font-weight: 400;
}

button {
    border: none;
    outline: none;
    background-color: var(--bg-light);
    padding: 1em 2em 1em 2em;
    border-radius: 15px .4vh 15px .4vh;
    box-shadow: inset 0px 0px 12px 2px var(--bg);
}

button a {
    text-decoration: none;
    color: var(--text-1);
}

.menu button {
    margin-top: 2vh;
}

.opening .table {
    margin-top: 2vh;
    width: 70vw;
    max-width: 20em;
}

.opening .table div {
    display: flex;
    align-items: center;
}

.opening .table h3 {
    width: 50%;
    color: var(--text-4);
    font-weight: 500;
}

.opening .table h4 {
    color: var(--text-3);
    font-weight: 400;
}

.gallery {
    margin-top: 5vh;
    margin-bottom: -2.5vh;
}

.gallery .bg-img {
    height: 20vh;
    width: 100vw;
    object-fit: cover;
    filter: brightness(0.8);
}

.gallery .wave {
    margin-top: -15vh;
    height: 10vh;
    width: 100vw;
    max-width: 80em;
    object-fit: cover;
    object-position: top;
}

.gallery .flipped {
    rotate: 180deg;
    position: absolute;
    margin-top: 0;
}

.footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 5vh;
    margin-bottom: 2vh;
}

.footer p {
    font-size: clamp(.8rem, 4vw, 1.2rem);
    font-weight: 200;
    color: var(--text-3);
}

.footer .links {
    margin-top: -.25vh;
    display: flex;
}

.footer .links a {
    font-size: clamp(.8rem, 4.5vw, 1.2rem);
    font-weight: 400;
    cursor: pointer;
    color: var(--text-2);
    text-decoration: none;
}

.cards {
    margin-top: 2vh;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.cards .card {
    display: flex;
    flex-direction: column;
    align-items: center;

    margin: 1vh;

    height: 24vh;
    min-height: 15em;
    width: 40vw;
    max-width: 10em;

    background-color: var(--bg);
    border-radius: 2vh;
    border: solid 2px var(--bg-light);
    box-shadow: inset 0px 0px 12px 1px var(--bg-light);
}

.cards .card img {
    margin-top: 1vh;
    height: 2vh;
}

.cards .card h3 {
    margin-top: .5vh;
    font-weight: 600;
}

.cards .card h4 {
    font-weight: 400;
    width: 85%;
    text-align: center;
    margin-top: .5vh;
}

.navigation {
    position: fixed;
    width: 100vw;
    height: 100vh;
    background-color: var(--bg);
    z-index: 1000;
    
    display: none;
    flex-direction: column;
    align-items: center;
}

.navigation.shown {
    display: flex;
}

.navigation .logo {
    margin-top: 10vh;
    margin-bottom: 5vh;
    height: 20vh;
}

.navigation .links {
    width: 75vw;
    max-width: 20em;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.navigation .links .link {
    width: 75vw;
    max-width: 20em;

    display: flex;
    align-items: center;

    background-color: var(--bg-dark);
    border: solid 2px var(--bg-light);

    border-radius: 2vh;
    padding: .5em 1em .5em 1em;
    margin-bottom: 1.25vh;
}

.navigation .links .small-icon {
    margin-right: 1.5vh;
    background: none;
}

.navigation .links a {
    text-decoration: none;
}

.navigation .links h3 {
    font-weight: 800;
    font-size: clamp(.8rem, 6vw, 1.5rem);
}

#navigation-toggle {
    position: sticky;
    float: right;
    top: 20px;
    right: 20px;
    z-index: 1003;
    shape-outside: linear-gradient(transparent, transparent);
}