/*
 * GLOBALS
 */
* {
    --header-height: 100px;
    --footer-height: 85px;
    --container-width: 1250px
}

/*
 * HEADER
 */
header {
    align-items: center;
    display: flex;
    height: var(--header-height);
    margin: auto;
    max-width: 1750px;
    padding: 10px 20px;
    position: relative;
}
header h1 {
    flex: 1;
    font-family: "Raleway", sans-serif;
    font-size: 1.75em;
    font-weight: 400;
    margin-bottom: 0;
    text-transform: uppercase;
}
header h1 {
    background: url("/static/cla/logo/cla_s.png");
    background-position: left;
    background-size: 55px;
    background-repeat: no-repeat;
    padding-left: 50px;
    width: 50px;
}
header h1 * {
    display: block;
    text-align: center;
    width: 175px;
}
header h1 b {
    font-size: 20px;
    font-weight: 600;
}
header h1 span {
    font-size: 23px;
    margin-top: -5px;
}
header nav {
    flex: auto;
    margin-right: 15px;
}
header nav > a.toggle {
    display: none;
}
header nav ul {
    list-style: none;
    text-align: right;
    margin-bottom: 0;
}
header nav ul li {
    display: inline-block;
}
header nav ul li:not(:last-child) {
    margin-right: 15px;
}
header nav ul li a {
    border-bottom: 2px solid transparent;
    color: #444444;
    font-size: 1.25em;
    padding: 3px 1px;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 300ms;

}
header nav ul li a:hover {
    color: #343434;
}
header nav ul li a.active {
    border-bottom: 2px solid var(--primary);
    color: #444444;
}
header nav ul li a:not(.active):hover {
    border-bottom: 2px solid #d7d7d7;
}
/* Log out */
header nav ul li.logout {
    display: none;
}
@media (max-width: 1000px) {
    * {
        --header-height: 75px;
    }
    header h1 {
        background: url("/static/cla/logo/cla_s.png");
        background-position: left;
        background-size: 55px;
        background-repeat: no-repeat;
        height: 100%;
        flex: 1;
        min-width: 50px;
        margin: 0;
    }
    header h1 * {
        display: none;
    }
    header nav ul li a {
        font-size: 1.1em;
    }
}
@media (max-width: 700px) {
    header {
        border-bottom: 1px solid #eeeeee;
    }
    header nav ul {
        display: none;
    }
    header nav > a.toggle {
        --size: 40px;
        display: block;
        width: var(--size);
        height: var(--size);
        line-height: var(--size);
        text-align: center;
        border-radius: 100%;
        color: #1c2540;
        border: 2px solid #1c2540;
        margin-left: auto;
        transition: all 300ms;
    }
    header nav > a.toggle:hover {
        color: white;
        background-color: #1c2540;
        transition: all 300ms;
    }
    header nav ul {
        background-color: white;
        margin: 0;
        padding: 10px 0;
        text-align: center;
    }
    header nav ul li:not(:last-child) {
        margin: 0;
    }
    header nav ul li a {
        border: none;
        display: block;
        font-size: 1.25rem;
        padding: 10px 0;
        width: 100%;
    }
    header nav ul li a:hover,
    header nav ul li a.active,
    header nav ul li a:not(.active):hover {
        border: none;
    }
    header nav ul li a:not(.active):hover {
        background-color: #eeeeee;
    }
    header nav ul li a.active {
        background-color: #1c2540;
    }
    header nav.openned ul {
        border-bottom: 2px solid #eeeeee;
        padding-bottom: 0;
        display: block;
        left: 0;
        position: absolute;
        top: var(--header-height);
        width: 100vw;
    }
    header nav.openned ul li {
        display: block;
        background-color: white;
    }
    /* Log out */
    header nav ul li {
        display: block;
    }
}

/*
 * CONTENT
 */
body > div.content {
    min-height: calc(100vh - (var(--header-height) + var(--footer-height))) ;
}

/*
 * BANNER
 */
body > div.content > .banner {
    background-color: black;
    height: 250px;
}
@media (max-height: 750px) {
    body > div.content > .banner {
        height: 150px;
    }
}
body > div.content > .banner > * {
    display: flex;
    align-items: center;
    justify-content: center;
}
body > div.content > .banner > .default {
    max-width: 1000px;
    font-weight: 800;
    margin: auto;
    height: 100%;
    background: radial-gradient(circle, transparent 74.79%, black), top / cover no-repeat url("/static/cla/rez_banner.jpg");
}
body > div.content > .banner > .default h1 {
    background-color: rgba(0,0,0,0.75);
    color: white;
    font-size: 3rem;
    padding: 0 15px;
    text-transform: uppercase;
}
@media (max-width: 750px) {
    body > div.content > .banner > .default h1 {
        font-size: 1.5rem;
    }
}

/*
 * FOOTER
 */
footer {
    height: var(--footer-height);
}
footer > div a,
footer > div span {
    color: #aaa;
    text-decoration: none;
    transition: color ease 300ms;
}
footer > div a:hover {
    color: #888;
}
footer > div.links {
    align-items: center;
    display: flex;
    height: 100%;
    justify-content: center;
    margin: auto;
    max-width: 2000px;
    padding: 10px 0 10px;
}
footer > div.links * {
    margin: 0;
    text-align: center;
}
footer > div.links *:not(:last-child) {
    margin-right: 10px;
}
footer > div.links *:not(:last-child)::after {
    color: #cccccc;
    content: "|";
    font-size: 1.25em;
    margin-left: 10px;
}
@media (max-width: 1000px) {
    footer > div.links {
        display: block;
        text-align: center;
        padding: 10px 0 10px;
    }
    footer > div.links *:first-child {
        display: block;
        margin-bottom: 0 !important;
    }
    footer > div.links *:not(:first-child) {
        font-size: 0.75rem;
    }

    footer > div.links *:not(:last-child) {
        margin-bottom: 10px;
        margin-right: 0;
    }
    footer > div.links *:first-child::after {
        content: "";
        margin-left: 0;
    }
}

/*
 * RIBBON
 */
div.ribbon {
    background-color: #273142;
    color: #eeeeee;
    padding: 3px 15px;
}
div.ribbon p {
    font-family: "Muli", sans-serif;
    font-size: 0.9em;
    margin: 2px auto;
    max-width: var(--container-width);
}
div.ribbon span {
    font-weight: 500;
}

div.ribbon a {
    bottom: 1px;
    color: white;
    font-size: 0.9em;
    position: relative;
}
@media (max-width: 600px) {
    div.ribbon {
        display: none;
    }
}

/*
 * MOBILE
 */
@media (min-width: 544px) {
    .visible-phone-only {
        display: none;
    }
}
@media (max-width: 544px) {
    .hide-phone {
        display: none;
    }
}