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

:root {
    /* Colors */
    --main-1: #ebebeb;
    --main-2: #404040;
    --alt-1: #ccdae8;
    --alt-2: #440da3;
}

/* Size of certain elements */
#content {
    max-width: 1600px;
    margin: 0 auto;
}

#background {
    height: 725px;
}

.icon {
    width: 80px;
}

footer p {
    font-size: 1.2em;
}

main img {
    max-width: 750px;
}

/* Font stuff */
:is(h1, h2, h3, h4, h5, h6) {
    font-family: 'Times New Roman', serif;
}

p {
    font-family: 'Trebuchet MS', sans-serif;
}

.home-title {
    font-size: 2em;
}

.msg {
    line-height: 1.5em;
}

body {
    background-color: var(--main-1);
    color: var(--main-2);
    font-size: 20px;
}

/* Manage colors for everything */
:is(.home-title, h4, .msg h2, .msg p) {
    background-color: var(--main-2);
    color: var(--main-1);
}

:is(header, #background, footer, nav a:hover, footer a:hover, .join:hover, .book:hover) {
    background-color: var(--alt-1);
    color: var(--alt-2);
}

:is(nav a, footer > a, .book, .join) {
    background-color: var(--alt-2);
    color: var(--alt-1);
}

/* Borders and stuff */
:is(.book, .join) {
    border-radius: 5px;
    margin: 0 auto;
}

.join {
    display: block;
}

.card-img {
    border: 10px solid var(--main-2);
}

/* Decoration, Alignment */
:is(nav a, .book, .join, footer a) {
    text-align: center;
    text-decoration: none;
}

:is(footer>a, .book, .join) {
    padding: 20px 20px;
}

footer a:hover {
    text-decoration: underline;
}

:is(nav a, #hero-msg h1, #hero-msg h4, .book, main section) {
    text-align: center;
}

header {
    display: grid;
    grid-template-columns: 150px auto;
}

.logo {
    display: block;
    height: 100px;
}

.book {
    display: flex;
    align-items: center;
}

.msg :is(h2, p) {
    padding: 32px;
}

.home-title {
    margin-top: 32px;
    padding: 16px 0 8px 0;
}

.home-title + h4 {
    padding-bottom: 16px;
}

nav {
    display: flex;
    justify-content: space-around;
    height: 100px;
}

nav a {
    display: flex;
    align-items: center;
    padding: 0 32px;
}

#hero {
    display: grid;
    grid-template-columns: 1fr 3fr 1fr;
    margin-top: -100px;

}

#hero-box {
    grid-column: 1 / 4;
    grid-row: 1 / 3;
    z-index: -1;

}

#hero-msg {
    grid-column: 2;
    grid-row: 1;
    margin-top: 100px;

    display: grid;
    grid-template-rows: 2fr 1fr;
    gap: 50px;
}

.home-grid {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
}

:is(#hero-img, .card-img, .mountains) {
    width: 100%;
}

:is(.rivers-card, .camping-card, .rapids-card) {
    margin: 100px 0;
}

.rivers-card {
    grid-column: 2 / 4;
    grid-row: 2 / 3;
}

.camping-card {
    grid-column: 5 / 7;
    grid-row: 2 / 3;
}

.rapids-card {
    grid-column: 8 / 10;
    grid-row: 2 / 3;
}

#background {
    grid-column: 1 / 11;
    grid-row: 4 / 9;
}

.mountains {
    grid-column: 2 / 7;
    grid-row: 5 / 8;
}

.msg {
    grid-column: 6 / 10;
    grid-row: 6 / 7;
}

footer {
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin-top: 200px;
}

.icon {
    margin: 16px;
}


.card-img {
    border: 10px solid #d9c2a3;
    transition: transform .5s;
    box-shadow: 5px 5px 10px var(--main-2);
    margin-bottom: 25px;
}

.card-img:hover {
    opacity: .6;
    transform: scale(1.1);
}

:is(.msg *, .mountains) {
    border-radius: 16px;
    margin: 16px;
    box-shadow: 5px 5px 10px var(--main-2);
}

@media screen and (max-width: 900px) {

    :is(#hero, .home-grid) {
        display: block;
        height: auto;
    }

    :is(nav, footer) {
        flex-direction: column;
    }

    footer>a, nav>a {
        width: 100%;
        height: 25%;
    }

    :is(#hero, #hero-msg) {
        margin-top: 0;
    }

    #hero-msg h4 {
        display: none;
    }

    .home-title {
        font-size: 25px;
    }

    :is(.rivers-card, .camping-card, .rapids-card) {
        margin: 50px auto;
        width: 60%;
    }

    #background {
        display: none;
    }

    :is(.mountains, .msg) {
        width: 80%;
        display: block;
        margin: 0 auto;
    }

    footer {
        margin-top: 25px;
    }
}