@font-face {
    font-family: "CartoGothicStdBook";
    src: url(/fonts/cartogothicstd-book-webfont.eot);
    src: url(/fonts/cartogothicstd-book-webfont.eot?#iefix) format("embedded-opentype"),
         url(/fonts/cartogothicstd-book-webfont.woff) format("woff"),
         url(/fonts/cartogothicstd-book-webfont.ttf) format("truetype"),
         url(/fonts/cartogothicstd-book-webfont.svg#CartoGothicStdBook) format("svg");
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: "CartoGothicStdBold";
    src: url(/fonts/cartogothicstd-bold-webfont.eot);
    src: url(/fonts/cartogothicstd-bold-webfont.eot?#iefix) format("embedded-opentype"),
         url(/fonts/cartogothicstd-bold-webfont.woff) format("woff"),
         url(/fonts/cartogothicstd-bold-webfont.ttf) format("truetype"),
         url(/fonts/cartogothicstd-bold-webfont.svg#CartoGothicStdBold) format("svg");
    font-weight: normal;
    font-style: normal;
}



body {
    padding: 0;
    margin: 0;
    background-color: rgb(114, 114, 114);
    -webkit-font-smoothing: antialiased;
}


* {
    color: rgb(62, 56, 52);
    font-family: Georgia, serif;
}

p {
    font-size: 0.9rem;
    line-height: 1.45em;
}


header {
    /*border-top: 1px solid #BE1121;*/
    border-bottom: 1px solid #B6B6B6;
    height: 144px;
    background-color: rgb(236, 239, 241);
}

div.header__content {
    max-width: 960px;
    margin: auto;
}

div.header__content__logo {
    vertical-align: top;
    display: inline-block;
    margin-top: 36px;
    /*margin-top: 32px;*/
    /*padding-top: 2px;*/
    /*padding-right: 18px;*/
    /*padding-bottom: 22px;*/
    /*margin-right: 19px;*/
    /*margin-left: 1px;*/
    /*border-right: 1px solid #727272;*/
}

div.header__content__logo img {
    width: auto;
    height: 70px;
}

h1.header__content__site_title {
    padding: 5px 0 0 0;
    margin: 31px 0 0 0;
    vertical-align: top;
    display: inline-block;
    font-size: 2rem;
    font-weight: normal;
    font-family: "CartoGothicStdBook", Helvetica, sans-serif;
    color: #727272;
    line-height: 1.125em;
    letter-spacing: 0.012rem;
}


nav#main_nav {
    background-color: #444844;
    height: 42px;
}

button#main_nav__toggle {
    display: none;
    background: none;
    border: none;
    position: absolute;
    top: 14px;
    right: 2px;
}

button#main_nav__toggle span svg {
    width: 23px;
    height: auto;
}

button#main_nav__toggle span svg path {
    color: #1F5187;
}

button#main_nav__toggle span#toggle_open { display: initial; }
button#main_nav__toggle span#toggle_close { display: none; }
button#main_nav__toggle.close span#toggle_open { display: none; }
button#main_nav__toggle.close span#toggle_close { display: initial; }


div.main_nav__content {
    margin: auto;
    max-width: 960px;
}
ul.main_nav__links {
    margin: 0;
    padding: 0;
    list-style: none;
}

li.main_nav__item {
    display: inline-block;
    vertical-align: top;
}

a.main_nav__link {
    display: block;
    height: 42px;
    padding: 0 12px;

    line-height: 40px;
    font-size: 0.9rem;
    font-family: "CartoGothicStdBook", Helvetica, sans-serif;
    color: rgb(254, 254, 254);
    text-decoration: none;
}

a.main_nav__link svg {
    /* Home icon */
    margin-top: 14px;
    height: 13px;
    width: auto;
}

a.main_nav__link svg path {
    color: rgb(254, 254, 254);
}

a.main_nav__link span.home-text {
    font-family: "CartoGothicStdBook", Helvetica, sans-serif;
    display: none;
}

li.main_nav__item:hover {
    background-color: #0C0C0C;
}


main {
    overflow: hidden;
    background-color: rgb(254, 254, 254);
}

div.breadcrumb {
    padding-bottom: 2em;
    font-size: 0.65em;
    font-family: "CartoGothicStdBook", Helvetica, sans-serif;
}

div.breadcrumb a {
    font-family: "CartoGothicStdBook", Helvetica, sans-serif;
    text-decoration: none;
    letter-spacing: 0.08em;
}

div.breadcrumb a:first-of-type {
    margin-right: 1px;
    color: #D50000;
}

div.breadcrumb a:last-of-type {
    margin-left: 2px;
    text-transform: uppercase;
    color: #6788A7;
}

div.main__content {
    margin: 13px auto 60px auto;
    padding: 5px 0 30px 0;
    max-width: 960px;
}

div.main__content h1,
div.main__content h2,
div.main__content h3,
div.main__content h4,
div.main__content h5,
div.main__content h6 {
    font-family: "CartoGothicStdBold", sans-serif;
    font-weight: normal;
    color: #727272;
}

div.main__content h1 {
    font-size: 2.5rem;
    font-weight: normal;
}

div.main__content h2 {
    font-size: 1.5rem;
}

div.main__content img {
    max-width: 100%;
    height: auto;
}

div.main__content h1 span#classes-count {
    font-family: "CartoGothicStdBook", sans-serif;
    color: #727272;
    font-style: italic;
}


div.main__content p:first-of-type {
    margin-top: 5px;
}


div.main__content hr {
    margin: 1.5rem 0;
    border: none;
    border-top: 1px solid #CCC;
}


div.box {
    box-sizing: border-box;
    margin: 2rem 0;
}

div.box h2:first-child {
    margin-top: 0;
}


div#classes-search {
    display: flex;
}

div#classes-search label {
    margin-right: 0.8em;
    line-height: 28px;
    font-family: "CartoGothicStdBook", sans-serif;
}

div#classes-search input {
    flex: 1;
    padding: 6px 7px 4px 7px;
    border: 1px solid #DDD;
    border-bottom-color: #CCC;
    background-color: #fafbff;
    font-family: "CartoGothicStdBook", sans-serif;
    font-size: 0.85rem;
}

div#classes-suggestions {
    height: 0;
    overflow: hidden;

    transition: all 0.3s ease-in-out;
}

div#classes-suggestions span {
    font-family: "CartoGothicStdBook", sans-serif;
}

div#classes-suggestions.show {
    height: auto;
}

div#classes-suggestions ul {
    list-style: none;
    margin: 0;
    padding: 0;
    font-family: "CartoGothicStdBook", sans-serif;
}

div#classes-suggestions ul li {
    margin-top: 5px;
    padding: 4px 6px;
    background-color: #FEFEFE;
    border: 1px solid #E0E0E0;
    border-bottom-color: #DCDCDC;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05);

    cursor: pointer;
    text-decoration: underline;
    font-family: "CartoGothicStdBook", sans-serif;
    color: #444;
}

div#classes-premade-filters {
    border-top: 1px solid rgba(0, 0, 0, 0.2);
    margin-top: 15px;
    font-size: 0;
    position: relative;
}

div#classes-premade-filters nav {
    margin: 10px 0;
    display: flex;
    font-size: 1rem;
}

div#classes-premade-filters nav:before {
    content: "Filter by:";
    margin-right: 0.8em;
    height: 30px;
    line-height: 30px;
    font-family: "CartoGothicStdBook", sans-serif;
}

div#classes-premade-filters div.filter-dropdown {
    padding: 0 10px;
    margin-right: 1rem;
    height: 30px;
    line-height: 29px;

    background-color: #f9faff;
    border: 1px solid #CCCCCD;

    /*font-size: 0.9rem;*/

    cursor: pointer;
    -moz-user-select: none;
    user-select: none;
}

div#classes-premade-filters div.filter-dropdown span.dropdown-label {
    font-family: "CartoGothicStdBook", sans-serif;
}

div#classes-premade-filters div.filter-dropdown div.dropdown-active-filters {
    box-sizing: border-box;
    display: none;
    vertical-align: top;

    margin-top: 4px;
    margin-left: 10px;
    height: 22px;
    width: 22px;

    border-radius: 100%;
    background-color: #eff0f5;
    border: 1px solid #c1c2c6;

    font-family: "CartoGothicStdBold", sans-serif;
    font-size: 0.9rem;
    line-height: 21px;
    text-align: center;
    color: #777;
}

div#classes-premade-filters div.filter-dropdown div.dropdown-active-filters.visible {
    display: inline-block;
}

div#classes-premade-filters div.filter-dropdown span.material-icons {
    font-size: 1rem;
    vertical-align: top;
    margin-left: 5px;
    line-height: 30px;
    transition: transform 0.1s ease-in-out;
}

div#classes-premade-filters div.filter-container.shown div.filter-dropdown span.material-icons {
    transform: rotate(180deg);
}

div#classes-premade-filters div.filter {
    position: absolute;
    z-index: 20;
    left: 0; right: 0;

    margin-top: 5px;
    padding: 0 15px 15px 15px;
    box-sizing: border-box;
    background-color: #f9faff;
    border: 1px solid #CCCCCD;
    display: none;

    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

div#classes-premade-filters div.filter-container.shown div.filter {
    display: block;
}

div#classes-premade-filters div.filter h3 {
    font-size: 1rem;
}

div#classes-premade-filters div.filter-inner {
    display: grid;
    grid-template-columns: auto auto auto;
    grid-row-gap: 6px;
}

div.filter-inner label {
    display: flex;
    align-items: flex-start;
    font-size: 0.85rem;
}

div.filter-inner label input[type="checkbox"] {
    vertical-align: top;
    margin-top: 1px;
    margin-right: 7px;
}

div.filter-inner label span {
    flex: 1;
    font-family: "CartoGothicStdBook", sans-serif;
}


div.slider {
    margin-bottom: 50px;
    overflow: hidden;
}

div.slider__slides {
    overflow: hidden;
    white-space: nowrap;
    font-size: 0;
}

div.slider__slide {
    position: relative;
    display: inline-block;
}

div.slide__info {
    position: absolute;
    top: 15px; left: 15px; bottom: 15px;
    overflow: hidden;

    padding: 15px;
    max-width: 100%;
    width: 300px;

    background-color: rgba(0, 0, 0, 0.7);
    opacity: 0;

    white-space: normal;
    color: white;

    transition: opacity 0.5s ease-in-out 1s;
}

div.slider__slide:hover div.slide__info {
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
}

div.slide__info h2 {
    margin-top: 0;
    color: white;
    font-weight: normal;
}

div.slide__info p {
    color: white;
}

div.slider__thumbs {
    margin-top: 10px;
    white-space: nowrap;
    overflow-x: auto;
}

div.slider__thumb {
    margin-right: 10px;
    display: inline-block;
}

div.slider__thumb img {
    max-width: 170px;
    height: auto;
    opacity: 0.7;
}


div.main__content h2#course-header {
    margin-top: 50px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #999;
}

div.main__content h2#course-header a.download-courses {
    box-sizing: border-box;
    float: right;

    margin-top: -3px;
    padding: 7px 8px 5px 8px;

    background-color: #00A69C;

    font-size: 0.95rem;
    font-weight: normal;
    font-family: "CartoGothicStdBook", sans-serif;
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;

    transition: all 0.25s ease-in-out;
}

div.main__content h2#course-header a.download-courses:hover,
div.main__content h2#course-header a.download-courses:active {
    background-color: #03897C;
    color: rgba(255, 255, 255, 0.85);
}


div.flex-row {
    width: 100%;
    display: flex;
    margin: 20px 0;
}

div.flex-row__col {
    flex: 1;
}

div.flex-row__col.submission-col {
    padding-right: 20px;
}

div.flex-row__col.contact-col {
    padding-left: 20px;
    border-left: 1px solid #DDD;
}

div.flex-row__col p {
    margin: 0 0 15px 0;
    font-size: 1rem;
    font-family: "CartoGothicStdBook", sans-serif;
    line-height: 1.4em;
}

div.flex-row__col a {
    display: inline-block;
    height: 30px;
    box-sizing: border-box;

    padding: 7px 8px 6px 8px;

    background-color: #00A69C;

    font-size: 0.95rem;
    font-weight: normal;
    font-family: "CartoGothicStdBook", sans-serif;
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;

    transition: all 0.25s ease-in-out;
}

div.flex-row__col a:hover,
div.flex-row__col a:active {
    background-color: #03897C;
    color: rgba(255, 255, 255, 0.85);
}


div.class {
    padding: 10px 0;
    border-bottom: 1px solid #CCC;
}

div.class:last-child {
    border-bottom: none;
}

div.class:first-of-type h3 {
    margin-top: 0;
}

div.class h3 {
    margin-bottom: 0;
    font-size: 1.3rem;
    position: relative;
}

div.class h3 span {
    font-family: "CartoGothicStdBold", sans-serif;
    font-weight: normal;
    color: #727272;
}

div.class h3 span.hidden {
    display: none;
}

div.class h3 span.class__code {
    margin-right: 1em;
}

div.class h3 span.class__title {
    font-family: "CartoGothicStdBook", sans-serif;
    font-weight: normal;
}

div.class h3 span.class__credits {
    margin-left: 1rem;
    font-style: italic;
    font-weight: normal;
    white-space: nowrap;
    color: #AAA;
}

div.class h3 div.class__status {
    position: absolute;
    z-index: 11;
    top: -2px; right: 0;
    height: 24px;
    padding-left: 5px;

    background-color: rgba(254, 254, 254, 0.7);
    border-radius: 12px;

    font-size: 0.9rem;
    font-family: "CartoGothicStdBold", sans-serif;
    font-weight: normal;
    line-height: 26px;
    color: #d84315;
}

div.class h3 div.class__status.hidden {
    display: none;
}

div.class h3 div.class__status .material-icons {
    vertical-align: top;
    color: #d84315;
}

div.class h3 div.class__calendar_buttons {
    float: right;
    margin-top: -4px;
}

div.class h3 div.class__calendar_buttons a {
    display: inline-block;
    margin-left: 0.5em;
    padding: 5px 8px 3px 8px;

    background-color: #00A69C;

    font-size: 0.88rem;
    font-weight: normal;
    font-family: "CartoGothicStdBook", sans-serif;
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;

    transition: all 0.25s ease-in-out;
}

div.class h3 div.class__calendar_buttons a:hover,
div.class h3 div.class__calendar_buttons a:active {
    background-color: #03897C;
    color: rgba(255, 255, 255, 0.85);
}

div.class div.class__instructors {
    margin-top: 7px;
    margin-bottom: 20px;
    font-family: "CartoGothicStdBook", sans-serif;
}

div.class div.class__instructors strong {
    font-family: "CartoGothicStdBold", sans-serif;
    font-weight: normal;
    color: #444;
}

div.class div.class__instructors a {
    font-family: "CartoGothicStdBook", sans-serif;
}

div.class div.class__outline {
    padding: 10px;
    margin-bottom: 20px;
    border: 1px solid #CCCCCD;
    background-color: #fafbff;
}

div.class div.class__outline h4 {
    font-family: "CartoGothicStdBook", sans-serif;
    font-weight: normal;
    margin-top: 0;
    margin-bottom: 10px;
    color: #00A69C;
}

div.class div.class__outline p {
    margin: 0;
    font-family: "CartoGothicStdBook", sans-serif;
}

p.class__info {
    margin: 3px 0;
    font-family: "CartoGothicStdBook", sans-serif;
}

p.class__info:last-of-type {
    margin-bottom: 12px;
}

p.class__info strong {
    font-family: "CartoGothicStdBold", sans-serif;
    font-weight: normal;
}


div.collapsible__item > *:nth-child(n+4) {
    display: none;
}

div.collapsible__item > a.event__read_more {
    margin-top: 10px;
    display: block;
}


footer.site_footer {
    border-top: 1px solid rgb(233, 234, 238);
    background-color: rgb(237, 238, 242);
    padding: 40px 0 50px 0;
}

div.site_footer__content {
    margin: auto;
    max-width: 960px;

    white-space: nowrap;
    font-size: 0;
}

div.site_footer__column {
    vertical-align: top;
    display: inline-block;
    width: 50%;

    white-space: normal;
    font-size: 0.9rem;
}

div.site_footer__logo {
    width: 80%;
}

div.site_footer__logo img {
    width: 100%;
    height: auto;
}


footer.mcgill_footer {
    background-color: rgb(114, 114, 114);
    padding: 20px 30px;
}

div.mcgill_footer__content {
    margin: auto;
    max-width: 960px;
}

div.mcgill_footer__copyright {
    color: rgb(254, 254, 254);
    font-size: 0.85rem;
}


iframe#mcgill-network {
    min-height: calc(100vh - 248px);
    width: 100%;
    border: none;
    position: fixed;
    top: 248px; left: 0; right: 0; bottom: 0;
    z-index: 10;
    border-top: 1px solid rgb(240, 240, 240);
}



@media screen and (max-width: 1050px) {
    div.header__content {
        margin: 0 40px;
    }

    div.main_nav__content {
        margin: 0 40px;
    }

    div.main__content {
        margin: 13px 40px 60px 40px;
    }

    div.class h3 div.class__status {
        position: static;
        padding-left: 0;
        margin-top: 6px;
        height: auto;
    }

    div.class h3 div.class__calendar_buttons {
        float: none;
        margin: 3px 0 10px 0;
    }

    div.class h3 div.class__calendar_buttons a:first-child {
        margin-left: 0;
    }
}

@media screen and (max-width: 700px) {
    header {
        height: auto;
        min-height: 54px;
    }

    button#main_nav__toggle {
        display: block;
    }

    nav#main_nav {
        height: auto;
        background-color: #E0E4DB;
    }

    nav#main_nav ul {
        display: none;
        position: relative;
        z-index: 15;
    }

    nav#main_nav.shown ul {
        display: block;
    }

    div.main_nav__content {
        margin: 0;
    }

    li.main_nav__item {
        display: block;
    }

    a.main_nav__link {
        padding: 12px 9px 10px 9px;
        height: auto;
        line-height: initial;
        background-color: #E0E4DB;
        color: #444844;
        font-size: 3vw;

        border-bottom: 1px solid #B8B8B8;
    }

    a.main_nav__link svg {
        display: none;
    }

    a.main_nav__link span.home-text {
        display: inline;
    }

    div.header__content {
        margin: 0 20px;
    }

    div.header__content__logo {
        position: absolute;
        top: 12px;
        left: 10px;
        margin: 0;
        padding: 0;
        border-right: none;
    }

    div.header__content__logo img {
        height: 29px;
        width: auto;
    }

    h1.header__content__site_title {
        display: block;
        text-align: center;
        margin-top: 40px;
        padding: 25px 0 20px 0;
        font-size: 4.4vw;
    }

    h1.header__content__site_title br {
        display: none;
    }

    div#classes-search {
        flex-direction: column;
    }

    div#classes-premade-filters nav {
        flex-direction: column;
    }

    div#classes-premade-filters nav div.filter-dropdown {
        margin: 5px 0;
    }

    div#classes-premade-filters div.filter-inner {
        grid-template-columns: auto auto;
    }

    div.flex-row {
        flex-direction: column;
    }

    div.flex-row div.submission-col {
        padding-right: 0;
        padding-bottom: 20px;
    }

    div.flex-row div.contact-col {
        padding-left: 0;
        border-left: none;
    }

    div.main__content {
        margin: 13px 25px 60px 25px;
    }

    div.main__content h2#course-header a.download-courses {
        display: none;
    }

    div.breadcrumb {
        display: none;
    }

    iframe#mcgill-network {
        min-height: calc(100vh - 144px);
        border: none;
        position: fixed;
        top: 144px; left: 0; right: 0; bottom: 0;
    }
}

@media screen and (max-width: 500px) {
    h1.header__content__site_title {
        padding: 23px 0 10px 0;
        font-size: 1.84rem;
    }

    h1.header__content__site_title br {
        display: initial;
    }

    button#main_nav__toggle span svg {
        width: 27px;
    }

    a.main_nav__link {
        font-size: 1rem;
    }

    div#classes-premade-filters div.filter-inner {
        grid-template-columns: auto;
    }
}
