@import url('https://fonts.googleapis.com/css2?family=Julius+Sans+One&family=Lato&family=Oswald:wght@200..700&display=swap');

/* BASIC LAYOUT */
body {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* HEADER STYLE */
header {
    width: 100%;
    background-color: #fff;
    /* make header always on top */
    position: fixed;
    z-index: 99;
    box-shadow: 0 3px 3px 3px;
    /* flexbox style */
    display: flex;
    align-items: center;
    justify-content: space-between;
    /* consistent font on menu and logo */
    font-family: "Julius Sans One", sans-serif;
}

/* logo style */
#logo-with-text {
    display: flex;
    align-items: center;
    padding: 0;
    margin: 0;
    text-decoration: none;
    color: #000;
}

#logo-with-text > img {
    width: 64px;
    height: 64px;
}

#logo-with-text > h2 {
    margin: 0;
}

/* menu button style */
#menu-icon {
    padding-top: 5px;
    font-size: 50px;
    margin: 0 25px;
}

/* rotate menu icon and show menu on click */
#menu-button:checked ~ #menu-element {
    display: block;
}

#menu-button:checked ~ #menu-icon > i {
    transform: rotate(90deg);
}

/* menu style */
#menu-element {
    position: fixed;
    background-color:#fff;
    top: 63px;
    right: 0;
    padding-right: 25px;
    padding-left: 15px;
    text-align: right;
    box-shadow: -5px 5px 5px #0f0f0f;
    border-radius: 0 0 5px 5px;
}

#menu-element > ul {
    list-style-type: none;
    padding-inline-start: 0;
}

/* menu links style */
#menu-element a {
    text-decoration: none;
    font-size: 20px;
}

/* remove default link styling from menu */
#menu-element a:visited {
    all: unset;
}

#menu-element a:link {
    color: #000;
}

/* space out links in menu */
#menu-element ul li {
    margin-bottom: 15px;
}

/* MAIN STYLE */
main {
    flex-grow: 1;
    /* make room for header */
    margin-top: 64px;
    font-family: 'Oswald';
}

/* hero image and text */
#hero {
    position: relative;
    height: 600px;
    background: url("../pics/patrick-hendry-w5SgojGZooI-unsplash.webp") no-repeat 45% center / cover;
}

#hero-text, .benefit-card {
    position: absolute;
    background-color: rgba(255,255,255, 0.3);
    padding: 15px;
    border-radius: 15%;
    box-shadow: #000 0 2px 5px;
    left: 10%;
    top: 8%;
    text-align: center;
}

#hero-text p {
    margin: 2px;
    font-size: 130%;
}

/* benefits section */
#benefits {
    margin: 0 5%;
    text-align: center;
    font-size: 120%;
}

#benefits-main-container {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.benefit-card {
    position: inherit;
    flex-grow: 1;
    max-width: 280px;
    background-color: rgba(0, 0, 0, 0.1);
    margin: 10px;
}

/* MAIN ON EXERCISES PAGE */

#main-exercises {
    background-color: #858585;
}

#main-exercises p {
    font-size: 130%;
    padding: 15px;
}

#main-exercises section {
    background-color: #383737;
    color: #fff;
    margin: 20px;
    padding: 15px;
    box-shadow: #000 0 4px 5px;
    text-align: center;
}

#main-exercises section h1 {
    font-size: 180%;
}

#main-exercises section hr {
    width: 90%;
}

/* remove default header text margins
to use element padding+margins instead */
#main-exercises h1,
#main-exercises h2,
#main-exercises h3 {
    margin: 0;
}

/* remove default list styling */
#main-exercises section ul,
#main-exercises section ul li {
    all: unset;
}

/* set list elements as flexbox cards */
#main-exercises section ul {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

#main-exercises section ul li {
    background-color: #cacaca;
    color: #000;
    box-shadow: #000 0 0 20px;
    margin: 15px;
    padding: 15px;
    border-radius: 10%;
}

#main-exercises section img {
    margin: 10px;
    width: 90%;
}

/* SIGNUP PAGE STYLE */

/* remove all fieldset styling to treat 
semantic element as flexbox div */
#form-radio {
    all: unset;
}

#main-signup{
    flex-grow: 1;
    background-image: url("../pics/scott-webb-gWerBZuKM9c-unsplash.webp");
    background-position: right;
    background-repeat: no-repeat;
    background-size: cover;
}

#signup-form{
    width: 230px;
    display: flex;
    flex-direction: column;
    background-color: rgba(255, 255, 255, 0.65);
    border-radius: 10%;
    padding: 20px;
    margin: 15% auto;
    box-shadow: #0f0f0f 0 2px 10px;
}

#signup-form input,
#signup-form button{
    border-radius: 15px;
}

#signup-form label,
#signup-form p {
    margin: 0 0 5px 0;
}

#signup-form input,
#form-radio {
    margin-bottom: 10px;
}

#signup-form button {
    height: 50px;
    width: 60%;
    align-self: center;
}

/* FOOTER STYLE */
footer {
    background-color: #fff;
    width: 100%;
    font-size: 2rem;
    display: flex;
}

.side-spacers {
    flex-grow: 1;
}

#social-media-container {
    flex-grow: 5;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
    padding: 1rem;
    max-width: 480px;
}

/* replace default link styling in footer */
#social-media-container > a {
    text-decoration: none;
}

#social-media-container > a:hover {
    text-shadow: #000 1px 1px 2px;
    font-weight: bold;
}

#social-media-container > a:visited {
    all: unset;
}

#social-media-container > a:link {
    color: #000;
}

/* class to hide elements */
.hidden-element {
    display: none;
}

/* class to select active page on menu */
.active-page {
    text-shadow: #000 2px 2px 5px;
    font-weight: bold;
}

/* Wider than 700 px displays */
@media screen and (min-width: 700px) {
   /* set non-foldable menu */
    #menu-element {
        all: unset;
        flex-grow: 1;
        display: flex;
    }

    #menu-icon {
        display: none;
    }

    #menu-element > ul {
        flex-grow: 1;
        display: flex;
        padding-right: 1%;
        justify-content: end;
        align-items: center;
    }

    #menu-element > ul > li {
        margin: 0 3%;
    }

    /* change position of hero text */
    #hero-text {
        top: 35%;
    }
    
    /* exercises page setup */
    #main-exercises section {
        width: 80%;
        margin: 20px auto;
    }

    #signup-form{
        margin: 10% 20%;
    }
}