


/* ==========================================================================
   Media Queries - higher res styles
   ========================================================================== */

/* -----------------------
   Smartphones and tablets
   ----------------------- */

@media only screen and (max-width: 1115px) {

    /* Form elements */

    p.error {
        padding: 10px;
    }

    /* Layout */

    body {
        padding: 133px 12px 12px;
    }

    #btnSearch {
        display: none;
    }

    .header-underlay {
        display: block;
        height: 0;
    }

    .scrolled .header-underlay {
        -webkit-box-shadow: 0 0 10px rgba(0,0,0,.4);
        -moz-box-shadow: 0 0 10px rgba(0,0,0,.4);
        box-shadow: 0 0 10px rgba(0,0,0,.4);
    }

    .header-underlay {
        height: 163px;
    }

    section.main,
    footer.main {
        margin-top: 50px;
        width: 100%;
    }

    /* Header */

    header.main {
        display: block;
        left: 12px;
        margin-left: 0;
        padding-bottom: 0;
        padding-top: 0;
        position: fixed;
        right: 12px;
        -webkit-transform: none;
        -moz-transform: none;
        -ms-transform: none;
        -o-transform: none;
        transform: none;
        top: 12px;
        width: auto;
        z-index: 21;
        margin-top: 50px;
    }

        header.main h1 {
            -webkit-box-flex: 2;
            -webkit-flex-grow: 2;
            -ms-flex-positive: 2;
            flex-grow: 2;
            height: 60px !important;
            line-height: 60px !important;
            margin-right: 160px;
            max-height: 60px !important;
            max-width: none;
            position: static;
            /*width: 100px !important;*/
        }

            header.main h1 a {
                display: block;
                max-height: 100%;
            }

                header.main h1 a img {
                    max-height: 60px;
                    width: auto;
                }

    form.search {
        left: auto;
        margin: 0;
        position: fixed;
        right: 60px;
        top: 64px;
        text-align: right;
        transform: none;
        width: 42px;
        z-index: 40;
    }

        form.search > *:not(h2) {
            display: none;
        }

        form.search.hover > *:not(h2) {
            display: block;
            position: absolute !important;
            right: 0;
            top: 10px !important;
        }

    .scrolled header.main nav:not(.horizontal) ul > li.cart-container {
        height: 46px;
        position: fixed;
        right: 12px;
        top: 12px;
        z-index: 15;
    }

        .scrolled header.main nav:not(.horizontal) ul > li.cart-container.hover .cart {
            border: none;
        }

    header.main nav:not(.horizontal) ul > li.cart-container > a:after {
        display: none;
    }

    .scrolled header.main nav:not(.horizontal) ul > li.cart-container > a {
        border: none;
        color: #fff;
        font-family: FontAwesome;
        font-size: 20px;
        height: 46px;
        line-height: 46px;
        position: absolute;
        right: 0;
        text-align: center;
        top: 0;
        width: 46px;
    }

        .scrolled header.main nav:not(.horizontal) ul > li.cart-container > a > span {
            display: none;
        }

        .scrolled header.main nav:not(.horizontal) ul > li.cart-container > a:before {
            display: none;
        }

    .scrolled header.main nav:not(.horizontal) ul > li.cart-container em.icon {
        background: #157398;
        border: none;
        -webkit-border-radius: 0;
        -moz-border-radius: 0;
        border-radius: 0;
        display: block;
        height: 46px;
        left: 0;
        position: absolute;
        text-indent: 0;
        top: 0;
        width: 46px;
    }

    .scrolled header.main nav:not(.horizontal) ul > li.cart-container.added em.icon {
        background: #eb5544;
        border: none;
    }

    .scrolled header.main nav:not(.horizontal) ul > li.cart-container em.icon:before,
    .scrolled header.main nav:not(.horizontal) ul > li.cart-container em.icon:after {
        color: #fff;
        height: 46px;
        line-height: 46px;
        width: 46px;
    }

    .scrolled header.main nav:not(.horizontal) ul > li.cart-container.added em.icon:before {
        left: -53px;
    }

    .scrolled header.main nav:not(.horizontal) ul > li.cart-container em.icon:after {
        left: 49px;
    }

    .scrolled header.main nav:not(.horizontal) ul > li.cart-container.added em.icon:after {
        left: -2px;
    }

    .scrolled header.main nav:not(.horizontal) ul > li.cart-container > a > strong {
        background: red;
        color: #fff;
        display: block;
        font-family: 'Open Sans', sans-serif;
        font-size: 12px;
        position: absolute;
        right: -.9em;
        top: -.7em;
        line-height: 1em;
        padding: 3px 5px;
        border-radius: 100%;
        z-index: 30;
    }

    /* Link back */

    #linkback {
        background: #fff;
        border: 1px solid #abc4ce;
        -webkit-border-radius: 100%;
        -moz-border-radius: 100%;
        border-radius: 100%;
        clip: auto;
        display: block !important;
        height: 42px !important;
        line-height: 1em;
        position: fixed !important;
        right: 110px;
        text-indent: -1000em;
        top: 24px !important;
        -webkit-transition: none;
        -moz-transition: none;
        -ms-transition: none;
        -o-transition: none;
        transition: none;
        width: 42px !important;
        z-index: 40;
    }

        #linkback:before {
            display: none;
        }

        #linkback:after {
            color: #157398;
            content: '\f112';
            font-family: FontAwesome;
            font-size: 19px;
            height: 42px;
            left: 0;
            line-height: 46px;
            position: absolute;
            text-align: center;
            text-indent: 0;
            top: 0;
            width: 42px;
        }

    /* Breadcrumbs */

    nav.breadcrumbs {
        left: 12px;
        position: fixed;
        right: 12px;
        top: 82px;
        width: auto;
        z-index: 8;
        margin-top: 50px;
    }

        nav.breadcrumbs ul {
            width: auto;
        }

    /* Main menu */

    nav.main {
        border: none;
        font-size: 137%;
        position: fixed;
        right: 12px;
        top: 64px;
        width: 50%;
        z-index: 40;
    }

        nav.main.hover {
            bottom: 20px;
        }

        nav.main > div {
            margin-top: 10px;
            max-height: 100%;
            overflow-y: auto;
        }

        nav.main nav.horizontal {
            display: none;
            padding-left: 0;
            width: auto;
        }

            nav.main nav.horizontal ul li {
                display: block;
            }

                nav.main li a,
                nav.main li span,
                nav.main nav.horizontal ul li a {
                    border-right: none;
                    display: block;
                    padding: 10px 0;
                }

        nav.main.hover li a {
            color: #fff;
        }

        nav.main nav.horizontal ul li a {
            padding-left: 0;
            padding-right: 0;
        }

        nav.main li span,
        nav.main nav.horizontal ul li span {
            color: #fff;
            font-weight: bold !important;
        }

        nav.main nav.horizontal ul li span {
            display: inline;
            padding: 0;
        }

        nav.main li.cart-container > a > * {
            border-bottom: none;
            color: #fff;
            display: inline;
        }

    #leftNavMenuMobile a {
        color: #157398 !important;
        text-decoration: none;
    }

    nav.main h2,
    form.search h2 {
        background: #fff;
        border: 1px solid #abc4ce;
        -webkit-border-radius: 100%;
        -moz-border-radius: 100%;
        border-radius: 100%;
        cursor: pointer;
        display: block;
        height: 42px;
        line-height: 1em;
        margin: 0;
        position: absolute;
        right: 0;
        text-align: left;
        text-indent: -1000em;
        top: -42px;
        width: 42px;
    }

        nav.main h2:after,
        form.search h2:after {
            color: #157398;
            content: '\f0c9';
            font-family: FontAwesome;
            font-size: 19px;
            height: 42px;
            left: 0;
            line-height: 42px;
            position: absolute;
            text-align: center;
            text-indent: 0;
            top: 0;
            width: 42px;
        }

    nav.main img {
        display: none;
    }


    form.search h2:after {
        content: '\f002';
    }

    nav.main ul {
        display: none;
    }

    nav.main p {
        display: none;
    }

    nav.main.hover ul,
    nav.main.hover nav {
        display: block;
    }

    /* Main content */

    section.content {
        float: none;
        -webkit-transition: none;
        -moz-transition: none;
        -ms-transition: none;
        -o-transition: none;
        transition: none;
        width: 100%;
    }

    .scrolled section.main {
        display: flex;
    }

    html.js .data-entry,
    html.js .data-entry .wrapper,
    html.js .data-entry form {
        width: 100%;
    }

    section.content .similar-courses article .thumbnail img:not(.avatar) {
        max-width: none;
        width: 100%;
    }

    /* Payment page */

    .payment .data-entry .wrapper {
        padding-right: 20px;
        position: relative;
    }

    section.main form .credit-card-details > * {
        white-space: normal;
    }

    .payment .data-entry .shield {
        background: none;
        margin: 0;
        padding: 0;
        position: absolute;
        right: 18px;
        top: 22px;
        width: auto;
    }

        .payment .data-entry .shield h4,
        .payment .data-entry .shield h4:before {
            -webkit-background-size: contain;
            background-size: contain;
            height: 25px;
            width: 22px;
        }

        .payment .data-entry .shield h4 {
            border: none;
            padding: 0;
            text-indent: -10000em;
        }

        .payment .data-entry .shield p {
            display: none;
        }

    /* Shopping Cart page */

    .shopping-cart section.main {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    .shopping-cart .summary,
    .shopping-cart .data-entry {
        border: none;
        -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
        flex-basis: auto;
        margin: 0;
        padding: 0;
        width: 100%;
    }

        .shopping-cart .summary div.submit .button {
            width: 100%;
        }

            .shopping-cart .summary div.submit .button.blue.noicon { /* Continue Shopping button */
                display: block;
                margin-left: 15px;
            }

    /* My Account */

    .my-account section.content {
        padding: 10px 10px 0;
    }

        .my-account section.content article {
            margin: 0 0 10px;
        }

    /* My Account Edit */

    .my-account.edit .content form {
        margin: 0;
    }

        .my-account.edit .content form .submit {
            padding-left: 0;
        }

    .my-account .edit-credit-card fieldset {
        padding-left: 60px;
        padding-right: 60px;
    }

    /* Faculty */

    section.content .faculty article,
    section.content .faculty article figure {
        min-width: 268px;
    }

    section.content .faculty article {
        width: 48%;
    }

        section.content .faculty article:nth-child(2n+1) {
            text-align: right;
        }

            section.content .faculty article:nth-child(2n+1) > * {
                display: inline-block;
                text-align: left;
                width: 268px;
            }

        section.content .faculty article:not(:nth-child(3n+3)) {
            margin-right: 0;
        }

        section.content .faculty article:not(:nth-child(2n+2)) {
            margin-right: 4%;
        }

        section.content .faculty article:nth-last-child(3) {
            margin-bottom: 25px;
        }

    section.content .faculty-description {
        margin-left: 0;
    }


    /* Footer */

    footer.main {
        display: block;
        text-align: center;
    }
}

/* -----------
   Smartphones
   ----------- */

@media only screen and (max-width: 767px) {

    .hide-on-smartphones {
        display: none;
    }

    /* Common form elements */

    .input-select label {
        -webkit-box-flex: 2;
        -ms-flex: 2 0 60%;
        flex: 2 0 60%;
    }

    .content form .row:not(.align-center) {
        flex-direction: column;
        margin-bottom: 10px;
    }

    p.notice {
        padding-left: 70px;
        padding-right: 30px;
    }

        p.notice:before {
            left: 25px;
        }

    .button {
        overflow: hidden;
        -ms-text-overflow: ellipsis;
        text-overflow: ellipsis;
    }

    /* Modal */

    .modal,
    .modal-content.bigger {
        padding: 15px;
        width: 100%;
    }

    .modal-content.warning:before {
        right: -20px;
        top: -30px;
    }

    .modal-content.warning:after {
        right: -9px;
        top: -21px;
    }

    .modal-content.warning p:first-of-type {
        padding-right: 0;
    }

    .modal-content div.submit {
        -webkit-box-orient: vertical !important;
        -webkit-box-direction: normal !important;
        -webkit-flex-direction: column !important;
        -ms-flex-direction: column !important;
        flex-direction: column !important;
    }

        .modal-content div.submit .button {
            -ms-flex-preferred-size: auto;
            flex-basis: auto;
        }

        .modal-content div.submit a.button {
            margin-left: 0;
            margin-right: 0;
            -webkit-box-ordinal-group: 3;
            -webkit-order: 2;
            -ms-flex-order: 2;
            order: 2;
        }

        .modal-content div.submit .button:last-child:not(:first-child) {
            margin-top: 15px;
        }

        .modal-content div.submit button.button[type=submit] {
            margin-bottom: 15px;
            -webkit-box-ordinal-group: 2;
            -webkit-order: 1;
            -ms-flex-order: 1;
            order: 1;
        }

    .modal-content table {
        min-width: 100%;
        width: auto;
    }

    /* Header */

    header.main > *:not(.overlay),
    header.main h1 a {
        display: block;
        width: auto;
    }

    header.main nav:not(.horizontal) > ul > li:not(.my-account-container):not(.headerLinks):not(.cart-container) {
        display: none;
    }

    header.main nav:not(.horizontal) ul > li.cart-container {
        display: block;
    }

        header.main nav:not(.horizontal) ul > li.cart-container > a {
            overflow: hidden;
            -ms-text-overflow: ellipsis;
            text-overflow: ellipsis;
        }

    .scrolled header.main nav:not(.horizontal) ul > li.cart-container > a {
        overflow: visible;
    }

    header.main nav:not(.horizontal) ul > li .cart {
        min-width: auto;
        padding-bottom: 0;
    }

    header.main nav:not(.horizontal) ul > li .cart-links {
        display: block;
    }

        header.main nav:not(.horizontal) ul > li .cart-links .button {
            margin-bottom: 16px;
        }

    header.main nav:not(.horizontal) ul > li.my-account-container {
        position: static;
    }

    header.main nav:not(.horizontal) ul > li > a {
        overflow: hidden;
        padding: 0 15px;
        -ms-text-overflow: ellipsis;
        text-overflow: ellipsis;
    }

    header.main nav:not(.horizontal) ul > li.my-account-container ul {
        left: -1px;
        margin: 0;
        right: -1px;
        width: auto;
    }

        header.main nav:not(.horizontal) ul > li.my-account-container ul:before,
        header.main nav:not(.horizontal) ul > li.my-account-container ul:after {
            right: 50%;
        }

        header.main nav:not(.horizontal) ul > li.my-account-container ul:before {
            right: calc(50% - 1px);
        }

    /* Filters */

    body.filters-shown {
        overflow: hidden;
    }

    form.filters {
        border: none;
        display: block;
        padding-bottom: 0;
    }

    .filters-shown form.filters {
        z-index: 50;
    }

    .course-details.class form.filters {
        margin-right: 0;
    }

    form.filters legend,
    form.filters nav.options {
        display: none;
    }

    form.filters fieldset {
        background: rgba(255,255,255,.95);
        display: none;
        height: 100%;
        left: 0;
        overflow: auto;
        padding: 10px;
        position: fixed;
        top: 0;
        width: 100%;
        z-index: 50;
    }

    body.filters-shown form.filters fieldset {
        display: block;
    }

        body.filters-shown form.filters fieldset.search {
            display: none;
        }

    form.filters dl {
        display: block;
        margin: 0;
    }

        form.filters dl dt,
        form.filters dl dd {
            background: #f1f3f1 !important;
            border: none;
            border-left: 1px solid #dce0e0;
            border-right: 1px solid #dce0e0;
            font-size: 16px;
            font-size: 1rem;
        }

        form.filters dl dt {
            border-color: #dce0e0 !important;
            display: block;
            font-weight: bold;
            padding-top: 12px;
        }

            form.filters dl dt:before,
            form.filters dl dt:after {
                display: none !important;
            }

        form.filters dl:first-of-type dt {
            border-top: 1px solid #dce0e0;
        }

        form.filters dl dd,
        form.filters dl.shown dd {
            border-top: none;
            border-bottom: none;
            display: block;
            margin: 0;
            max-height: none;
            overflow: visible;
            padding: 0;
            position: static;
        }

        form.filters dl dd {
            max-height: 280px;
            overflow-y: auto;
        }

            form.filters dl dd.amount {
                display: none;
            }

        form.filters dl:last-of-type dd {
            border-bottom: 1px solid #dce0e0;
        }

        form.filters dl dd ul {
            border-bottom: 1px solid #dfdfdf;
            margin: 0 10px 0;
            padding-left: 2px;
        }

        form.filters dl:last-of-type dd ul {
            border-bottom: none;
        }

        form.filters dl dd ul label {
            font-size: 16px;
            font-size: 1rem;
        }

        form.filters dl dd.inline ul li {
            display: inline-block;
            margin-right: 5px;
        }

        form.filters dl dd.inline ul label {
            background: #f8f8f8;
            border: 1px solid #dce0e0;
            padding: 8px;
        }

    form.filters nav.mobile-options {
        background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
        background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%);
        background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%);
        bottom: 0;
        display: block;
        left: 0;
        padding: 0 0 30px;
        position: fixed;
        right: 0;
        text-align: center;
    }

        form.filters nav.mobile-options ul,
        form.filters nav.mobile-options li {
            list-style: none;
            margin: 0;
            padding: 0;
        }

        form.filters nav.mobile-options li {
            display: inline-block;
        }

    form.filters .submit {
        display: block;
        margin-top: 10px;
    }

        form.filters .submit .button {
            margin: 0 0 10px;
        }

    /* Main menu */

    nav.main {
        left: 12px;
        right: 12px;
        width: auto;
    }

        nav.main.in-content {
            display: block;
            margin-bottom: 30px;
            position: static;
        }

            nav.main.in-content ul {
                display: block;
            }

        nav.main.hover ul {
            display: block;
            height: 57%;
            overflow: auto;
        }

    /* Content */

    section.content {
        width: 100%;
    }

        section.content article {
            display: -webkit-box;
            display: -webkit-flex;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
            -webkit-flex-direction: column;
            -ms-flex-direction: column;
            flex-direction: column;
            margin: 0;
        }

        section.content > article {
            display: block;
        }

        section.content article .thumbnail,
        section.content article .thumbnail.right,
        section.content .group-description .thumbnail {
            float: none;
            margin: 0 0 16px;
        }

    .course-list section.content article .thumbnail {
        display: none;
    }

    .course-list section.content article.shown .thumbnail,
    section.content .group-description .thumbnail {
        display: block;
    }

        section.content article .thumbnail img,
        section.content .group-description .thumbnail img {
            display: block;
            height: auto;
            max-width: none;
            width: 100%;
        }

    section.content .group-description h2 {
        font-size: 16px;
        font-size: 1rem;
        font-weight: 600;
        margin-top: 10px;
    }

    .course-list section.content article h2 {
        border-top: 1px solid #f0f0f0;
        font-size: 16px;
        font-size: 1rem;
        margin: 0;
    }

    .course-list section.content article:last-of-type h2 {
        border-bottom: 1px solid #f0f0f0;
    }

    .course-list section.content > h2.border {
        border: none;
        padding-bottom: 0;
    }

    .course-list section.content article h2 a {
        display: block;
        padding: 15px 0 15px 24px;
        position: relative;
    }

        .course-list section.content article h2 a:before {
            color: #414141;
            content: '\f054';
            font-family: FontAwesome;
            font-size: 12px;
            left: 0;
            position: absolute;
            top: 1.75em;
        }

    /* show course details table header on desktop */
    .course-list section.content article.shown h3 {
        color: #3a3a3a;
        display: block;
        font-size: 16px;
        font-size: 1rem;
        font-weight: bold;
        margin: 30px 0 0;
    }

    .course-list section.content article .description {
        display: none;
    }

    .course-list section.content article.shown .description {
        display: block;
    }

    section.content article table.course-details {
        border-bottom: none;
    }

    .course-list section.content article table.course-details {
        display: none;
    }

    section.content article.shown table.course-details,
    .course-details section.content article table.course-details {
        display: block;
    }

    section.content article table.course-details thead {
        display: none;
    }

    section.content article table.course-details tbody,
    section.content .inline-sidebar dd.schedule-tables {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        max-width: 100%;
        overflow: auto;
        width: 100%;
    }

        section.content article table.course-details tbody tr,
        section.content .inline-sidebar dd.schedule-tables .table-wrapper {
            background: #fbfbfb;
            border: 1px solid #e9eaea;
            border-bottom-width: 2px;
            display: block;
            margin: 0 15px 0 0;
            min-width: 95%;
        }

        section.content .inline-sidebar dd.schedule-tables .table-wrapper {
            padding: 20px;
        }

            section.content .inline-sidebar dd.schedule-tables .table-wrapper h3 {
                margin-top: 0;
            }

        section.content article table.course-details tbody tr:last-child {
            margin-right: 0;
        }

        section.content article table.course-details tbody td {
            border-top: 1px solid #dce0e0;
            display: block;
            margin-left: 10px;
            margin-right: 10px;
            padding-left: 35%;
            position: relative;
        }

            section.content article table.course-details tbody td:first-of-type {
                border-top: none;
                margin-top: 10px;
            }

    section.content article table.course-details td:last-of-type {
        max-width: none;
    }

    section.content article table.course-details tbody td:before,
    section.content article table.course-details tbody td h6.temp-header {
        color: #434343;
        font-size: 11px;
        font-size: 0.6875rem;
        left: 0;
        line-height: normal;
        margin: 0;
        padding-top: 1px;
        position: absolute;
        text-align: right;
        text-transform: uppercase;
        width: 33%;
    }

    section.content article table.course-details tbody td:last-child {
        padding: 15px 0 10px;
        text-align: center;
    }

        section.content article table.course-details tbody td:last-child > .button {
            padding-top: 10px;
            padding-bottom: 10px;
            width: 100%;
        }

            section.content article table.course-details tbody td:last-child > .button.light-blue {
                display: block;
            }

            section.content article table.course-details tbody td:last-child > .button:before {
                content: '\f00c';
                font-family: FontAwesome;
                font-size: 13px;
                height: 16px;
                line-height: 15px;
                margin-right: 5px;
            }

            section.content article table.course-details tbody td:last-child > .button:after {
                display: none;
            }

    section.content .similar-courses article {
        margin-right: 0;
        margin-bottom: 20px;
        width: 100%;
    }

    /* Payment page */

    .payment section.main {
        display: block;
    }

    .payment .summary {
        margin-left: 0;
        margin-top: 20px;
    }

        .payment .summary .wrapper {
            border-left: none;
            padding-left: 0;
        }

        .payment .summary h2 {
            padding-left: 0;
        }

    .payment .data-entry {
        -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
        flex-basis: auto;
    }

        .payment .data-entry tr.total {
            background: #aa5147;
            color: #fff;
            display: -webkit-box;
            display: -webkit-flex;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
            -webkit-flex-direction: row;
            -ms-flex-direction: row;
            flex-direction: row;
            font-size: 26px;
            font-size: 1.625rem;
            -webkit-box-pack: justify;
            -webkit-justify-content: space-between;
            -ms-flex-pack: justify;
            justify-content: space-between;
            margin-top: 20px;
            padding: 10px 15px;
        }

            .payment .data-entry tr.total th {
                font-weight: normal;
            }

            .payment .data-entry tr.total td {
                font-weight: bold;
            }

        .payment .data-entry form > button {
            margin-top: 1px;
        }

    /* Shopping Cart page */

    .shopping-cart .summary {
        margin-bottom: 30px;
    }

        .shopping-cart .summary header {
            flex-direction: column;
            margin-bottom: 25px;
        }

            .shopping-cart .summary header .button {
                width: 100%;
            }

        .shopping-cart .summary tr {
            -webkit-box-align: stretch;
            -webkit-align-items: stretch;
            -ms-flex-align: stretch;
            align-items: stretch;
            display: -webkit-box;
            display: -webkit-flex;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
            -webkit-flex-direction: row;
            -ms-flex-direction: row;
            flex-direction: row;
            -webkit-box-pack: justify;
            -webkit-justify-content: space-between;
            -ms-flex-pack: justify;
            justify-content: space-between;
            position: relative;
        }

        .shopping-cart .summary tfoot tr.total,
        .shopping-cart .summary tfoot tr.due-now {
            -webkit-box-pack: center;
            -webkit-justify-content: center;
            -ms-flex-pack: center;
            justify-content: center;
        }

        .shopping-cart .summary tr th,
        .shopping-cart .summary tr td {
            border-bottom-width: 18px;
        }

        .shopping-cart .summary tr th {
            -webkit-box-flex: 2;
            -webkit-flex-grow: 2;
            -ms-flex-positive: 2;
            flex-grow: 2;
            overflow: auto;
            padding-top: 15px;
            padding-bottom: 15px;
        }

    .shopping-cart.logged-in:not(.receipt) .summary tfoot tr th {
        background: #f3f3f3;
    }

    .shopping-cart:not(.receipt) .summary tfoot tr.total th,
    .shopping-cart .summary tfoot tr.due-now th,
    .shopping-cart:not(.receipt) .summary tfoot tr.total td,
    .shopping-cart .summary tfoot tr.due-now td {
        font-size: 1.125rem;
        font-size: 18px;
    }

    tr.donation th .row {
        flex-direction: column;
    }

        tr.donation th .row > * {
            margin: 0 0 15px !important;
            width: 100% !important;
        }

            tr.donation th .row > *:last-child {
                margin-bottom: 0 !important;
            }

    .shopping-cart .summary tr td {
        -webkit-flex-basis: 30%;
        -ms-flex-preferred-size: 30%;
        flex-basis: 30%;
        min-width: 30%;
        width: auto;
        white-space: normal;
    }

    .shopping-cart .summary table.suggested td:first-of-type {
        text-align: right;
    }

    .shopping-cart .summary tfoot tr:not(.donation) td:first-child {
        display: none;
    }

    .shopping-cart .summary table table.inner {
        table-layout: fixed;
        -ms-word-wrap: break-word;
        word-wrap: break-word;
    }

    .shopping-cart .summary table .button {
        overflow: hidden;
        padding-left: 5px;
        padding-right: 5px;
        -ms-text-overflow: ellipsis;
        text-overflow: ellipsis;
    }

    .shopping-cart .summary th a.delete {
        background: #afafaf;
        -webkit-border-radius: 100%;
        -moz-border-radius: 100%;
        border-radius: 100%;
        color: #fff;
        height: 27px;
        position: absolute;
        right: -10px;
        text-indent: -10000em;
        top: -18px;
        width: 27px;
    }

        .shopping-cart .summary th a.delete:before {
            height: 27px;
            left: -0px;
            line-height: 27px;
            position: absolute;
            text-align: center;
            text-indent: 0;
            top: 0;
            width: 27px;
        }

    .shopping-cart .summary td.registrants,
    .shopping-cart .summary th > td {
        background-color: transparent !important;
        border: none !important;
        padding: 0 !important;
        position: relative;
    }

    .shopping-cart .summary td.registrants {
        display: block;
        width: 100%;
    }

    .shopping-cart .summary th > td {
        flex-basis: auto;
        min-width: auto;
        width: auto;
    }

    .shopping-cart .summary tr.donation td:first-of-type,
    .shopping-cart .summary table.suggested td:first-of-type {
        background: #f9f9f9;
    }

    .shopping-cart .summary td.registrants div.quantity {
        left: -16px;
        position: relative;
        top: 15px;
        width: calc(100% + 32px);
    }

        .shopping-cart .summary td.registrants div.quantity > * {
            vertical-align: middle;
        }

    .shopping-cart .summary td.registrants label {
        width: auto;
    }

    .shopping-cart .summary td.registrants p.add {
        margin: 0;
        padding: 0;
        text-align: left;
        top: 17px;
    }

        .shopping-cart .summary td.registrants p.add a {
            display: block;
        }

            .shopping-cart .summary td.registrants p.add a:before {
                font-size: 15px;
                height: 15px;
                left: 0;
                line-height: 15px;
                text-align: center;
                text-indent: 0;
                top: 0;
                width: 15px;
            }

    .shopping-cart .summary tfoot th > td,
    .shopping-cart .summary table.suggested th > td {
        display: block;
        margin: 15px 0;
        text-align: left !important;
    }

        .shopping-cart .summary table.suggested th > td select {
            width: auto;
        }

    .shopping-cart .summary td.registrants h5 {
        margin-top: 15px;
    }

    .shopping-cart .summary table.suggested h5 {
        display: inline-block;
    }

    .shopping-cart .summary td.registrants ul {
        margin-top: 5px;
    }

    .shopping-cart .summary td.registrants li {
        display: inline-block;
        margin-right: 10px;
    }

    .shopping-cart .summary div.submit {
        display: block;
        margin-bottom: 0;
        margin-top: 0;
    }

        .shopping-cart .summary div.submit .button.blue.noicon { /* Continue Shopping button */
            margin-left: 0;
            margin-top: 15px;
            margin-bottom: 15px;
        }

    /* Receipt - Thank You page */

    .receipt-message {
        align-items: stretch;
        flex-direction: column;
    }

        .receipt-message a.button {
            margin-top: 20px;
            text-align: center;
        }

    /* Invoice page */

    .shopping-cart.invoice .summary div.submit.second {
        margin-bottom: 0;
    }

    /* Class Details page */

    .class.course-details.scrolled section.main {
        padding-right: 0;
    }

    .class section.content {
        width: auto;
    }

    section.register {
        margin: 0 0 20px;
        -webkit-box-ordinal-group: 1;
        -webkit-order: 0;
        -ms-flex-order: 0;
        order: 0;
        width: auto;
    }

    .scrolled section.register {
        margin-right: 0;
        position: static;
    }

    .course-details.class section.register {
        display: block;
        margin-top: 0;
        width: 100%;
        z-index: auto;
    }

        .course-details.class section.register .button {
            display: block;
            margin-bottom: 5px;
            width: 100%;
        }

    /* Registration page */

    .registration .data-entry .wrapper {
        padding-left: 30px;
        padding-right: 30px;
    }

    .registration label a.delete {
        right: -23px;
    }

    .registration div.submit {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
    }

        .registration div.submit .button {
            width: 100%;
        }

            .registration div.submit .button:first-child {
                margin-bottom: 10px;
            }

            .registration div.submit .button.red {
                -webkit-box-ordinal-group: 2;
                -ms-flex-order: 1;
                order: 1;
            }

            .registration div.submit .button.light-blue {
                -webkit-box-ordinal-group: 3;
                -ms-flex-order: 2;
                order: 2;
            }

    /* Course Index page */

    .course-index section.content article {
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        flex-direction: row;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }

        .course-index section.content article .index {
            -webkit-box-ordinal-group: 2;
            -ms-flex-order: 1;
            order: 1;
        }

        .course-index section.content article nav {
            border: none;
            border-left: 1px solid #deecf0;
            border-right: 1px solid #deecf0;
            margin-left: 10px;
            -webkit-box-ordinal-group: 3;
            -ms-flex-order: 2;
            order: 2;
        }

            .course-index section.content article nav ul {
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                -ms-flex-direction: column;
                flex-direction: column;
                padding: 10px 5px;
            }

                .course-index section.content article nav ul li {
                    margin-bottom: 3px;
                }

        .course-index section.content article dl {
            margin-top: 0;
        }

    /* Contact Page */

    .contact section.content {
        flex-direction: column;
    }

        .contact section.content #gmap {
            flex-basis: 100%;
            margin: 0 0 20px;
            width: 100% !important;
        }

    /* My Account */

    .my-account article h2,
    .my-account article ul.etabs,
    .my-account article h2.small {
        margin-left: -10px;
        margin-right: -10px;
    }

        .my-account article h2.no-bg {
            margin-top: 0;
            padding-top: 25px;
        }

        .my-account article h2.small {
            margin-top: 10px;
        }

    .my-account article p.notice {
        font-size: 13px;
        font-size: 0.8125rem;
        font-weight: normal;
        margin-left: -10px !important;
        margin-right: -10px !important;
    }

    .my-account section.content {
        padding: 5px 5px 0;
    }

        .my-account section.content article,
        .my-account section.content .half article {
            margin: 0 0 5px;
            padding-left: 10px;
            padding-right: 10px;
        }

    .my-account article .button {
        text-align: center;
        width: 100%;
    }

    .my-account article .avatar {
        left: 0;
        margin: 0 auto 15px;
        position: relative;
        top: 0;
        width: 95%;
    }

        .my-account article .avatar figure {
            width: 100%;
        }

    .my-account .row {
        display: block;
    }

        .my-account .row:last-child {
            margin-bottom: 5px;
        }

        .my-account .row .half {
            margin-right: 0;
        }

    .my-account section.content article table {
        width: 100%;
    }

    .my-account section.content article .edit-account {
        margin-top: 15px;
        position: static;
    }

    .my-account table.credit-card tr > *:first-child {
        display: none;
    }

    .my-account table.credit-card td.expires {
        font-size: 12px;
        font-size: 0.75rem;
    }

    .my-account table td.controls {
        width: auto !important;
    }

    .my-account table.credit-card td.controls a.edit,
    .my-account table.credit-card td.controls a.delete {
        font-size: 0;
    }

        .my-account table.credit-card td.controls a.edit:before,
        .my-account table.credit-card td.controls a.delete:before {
            font-size: 12px;
        }

    /* My Account Edit */

    .my-account.edit .content form .row label {
        flex: auto;
        margin-bottom: 2px;
        padding-top: 0;
    }

    .my-account.edit section.content form .submit,
    .my-account form.edit-credit-card .submit,
    .my-account article .controls.more-buttons {
        flex-direction: column;
    }

        .my-account.edit .content form .submit > *,
        .my-account form.edit-credit-card .submit > *,
        .my-account article .controls.more-buttons > * {
            -ms-flex-preferred-size: auto;
            flex-basis: auto;
            margin-left: 0;
            margin-right: 0;
        }

            .my-account.edit .content form .submit > *:first-child,
            .my-account form.edit-credit-card .submit > *:first-child,
            .registration div.submit > *:last-child,
            .my-account article .controls.more-buttons > *:first-child {
                margin: 0 0 10px;
            }

    /* My Account Billing */

    .my-account .edit-credit-card {
        margin-left: 0;
        margin-right: 0;
    }

        .my-account .edit-credit-card fieldset {
            padding-left: 10px;
            padding-right: 10px;
        }

            .my-account .edit-credit-card fieldset legend {
                margin-left: -5px;
                padding-left: 5px;
                padding-right: 5px;
            }

    /* My Account Documents */

    .my-account article ul.etabs li,
    .my-account article ul.etabs li.active {
        font-size: 14px;
        font-size: 0.875rem;
        letter-spacing: -1px;
        padding-left: 10px;
        padding-right: 10px;
    }

    .fileupload {
        flex-direction: column;
    }

        .fileupload > * {
            margin-bottom: 3px;
        }

        .fileupload span {
            margin-right: 0;
        }

    /* My Account Activities */

    .my-account table.activities td.controls a {
        font-size: 0;
    }

    section.content table.data.activities tbody th[scope=row] {
        width: 30%;
    }

    section.content table.data.activities.change tbody th[scope=row] {
        width: auto;
    }

    section.content table.data.activities thead th {
        width: 65%;
    }

    .my-account form.change {
        margin-top: 10px;
    }

        .my-account form.change .submit > *:first-child {
            margin-right: 0;
        }

        .my-account form.change .submit > *:not(:first-child) {
            margin: 5px 0 0;
        }

    .my-account table .button {
        width: auto;
    }

    /* My Account Request a Change */

    .my-account form.request-a-change div.submit {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
    }

        .my-account form.request-a-change div.submit > * {
            margin-left: 0;
            margin-right: 0;
        }

            .my-account form.request-a-change div.submit > *:first-child {
                margin-top: 5px;
                -webkit-box-ordinal-group: 3;
                -ms-flex-order: 2;
                order: 2;
            }

    /* Products */

    .products.front .content article {
        display: block;
    }

        .products.front .content article:not(:last-of-type) {
            border-bottom: 1px solid #f0f0f0;
            margin-bottom: 20px;
            padding-bottom: 20px;
        }

        .products.front .content article figure,
        .products.details .content article figure {
            margin: 0;
        }

            .products.front .content article figure img {
                width: 100%;
            }

        .products.front .content article > div h3 {
            margin-top: 20px;
        }

    .products.front .content footer {
        margin-top: 35px;
    }

    .products.category .content section.product-row {
        border: none;
        display: block;
        padding-bottom: 0;
    }

        .products.category .content section.product-row article {
            border: none;
            border-bottom: 1px solid #f1f3f1;
            margin-bottom: 20px;
            padding-bottom: 20px;
        }

            .products.category .content section.product-row article:not(:last-child) {
                margin-right: 0;
            }

            .products.category .content section.product-row article figure {
                border-left: 1px solid #f1f3f1;
                border-right: 1px solid #f1f3f1;
            }

    .products.details .content article .product-summary {
        -webkit-box-align: stretch;
        -ms-flex-align: stretch;
        -ms-grid-row-align: stretch;
        align-items: stretch;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
    }

        .products.details .content article .product-summary figure {
            width: 100%;
        }

            .products.details .content article .product-summary figure.no-image {
                -webkit-background-size: cover;
                background-size: cover;
            }

    .products .content article figure .warning {
        -webkit-transform: translate(40%,100%) rotate(45deg);
        -moz-transform: translate(40%,100%) rotate(45deg);
        -ms-transform: translate(40%,100%) rotate(45deg);
        -o-transform: translate(40%,100%) rotate(45deg);
        transform: translate(40%,100%) rotate(45deg);
    }

    .products .content section.product-row article figure .warning {
        -webkit-transform: translate(40%,210%) rotate(45deg);
        -moz-transform: translate(40%,210%) rotate(45deg);
        -ms-transform: translate(40%,210%) rotate(45deg);
        -o-transform: translate(40%,210%) rotate(45deg);
        transform: translate(40%,210%) rotate(45deg);
    }

    .products.details .content article .product-summary .description h2 {
        margin-top: 20px;
    }

    .products.details .content article .product-summary .description .controls {
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }

        .products.details .content article .product-summary .description .controls > * {
            -ms-flex-preferred-size: 50%;
            flex-basis: 50%;
        }

    .products.details .content article .product-details {
        margin-top: 30px;
    }

    /* Private Lessons */

    .private-lessons section.content .row.align-top {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
    }

        .private-lessons section.content .row.align-top .forty-percent,
        .private-lessons section.content .row.align-top .sixty-percent {
            flex-basis: auto;
            width: 100%;
        }

    section.content .inline-sidebar {
        margin-left: 0;
    }

    /* Fundraising */

    .fundraising article > .row {
        flex-direction: column;
    }

    .fundraising article .row .forty-percent,
    .fundraising article .row .sixty-percent {
        width: 100%;
    }

    .fundraising article .row .forty-percent {
        margin: 20px 0 30px;
    }

    .fundraising p > a.button.remove {
        width: 100%;
    }

    /* Faculty */

    section.content .faculty article,
    section.content .faculty article figure,
    section.content .faculty article figure.no-image {
        min-width: 0;
        width: 100%;
    }

        section.content .faculty article figure.no-image {
            -webkit-background-size: cover;
            background-size: cover;
        }

    section.content .faculty article {
        margin-right: 0 !important;
        margin-bottom: 25px !important;
        display: block;
        width: 100%;
    }

        section.content .faculty article figure img {
            width: 100%;
        }

        section.content .faculty article:nth-child(2n+1) {
            text-align: left;
        }

            section.content .faculty article:nth-child(2n+1) > * {
                display: block;
                width: auto;
            }

    .faculty-details section.content h3 {
        margin-top: 40px;
    }

    .faculty-details section.content p:last-child {
        margin-bottom: 0;
    }

    .faculty-details section.content figure,
    .faculty-details section.content .row {
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        margin-bottom: 0;
    }

        .faculty-details section.content figure figcaption {
            margin-left: 0;
            margin-top: 10px;
            width: 100%;
        }

    .faculty-details section.content .row {
        display: block;
        margin-top: 0;
    }

        .faculty-details section.content .row > * {
            -ms-flex-preferred-size: auto;
            flex-basis: auto;
            margin-left: 0;
            margin-right: 0;
        }

        .faculty-details section.content .row .button {
            display: block;
            width: 100%;
        }

    /* Membership */

    form.payment-plan {
        display: block;
    }

        form.payment-plan fieldset:not(:last-of-type) {
            margin-right: 0;
        }

    /* Footer */

    footer.main {
        padding-left: 10%;
        padding-right: 10%;
    }
}

/* --------------
   iPad / tablets
   -------------- */

@media only screen and (min-width: 768px) and (max-width: 1115px) {

    section.content .similar-courses article {
        margin-right: 4%;
        width: 48%;
    }

        section.content .similar-courses article:nth-of-type(2n) {
            margin-right: 0;
        }

    /* Payment page */

    .payment .summary {
        margin-left: 7px;
    }

        .payment .summary .wrapper {
            padding-left: 7px;
        }

    /* Login page */

    .login input[type=email],
    .login input[type=password] {
        float: left;
        width: 49%;
    }

        .login input[type=password]:nth-child(2),
        .login input[type=email] + input[type=password] {
            float: right;
        }

    .login p.info {
        clear: both;
    }

    /* Forgot Password page */

    .login.forgot-password input[type=email] {
        float: none;
        width: 100%;
    }

    /* Shopping Cart - Receipt page */

    .receipt-message .button {
        min-width: 30%;
        text-align: center;
    }

    /* Class Details page */

    .class.course-details.scrolled section.main {
        -webkit-box-pack: start;
        -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
        justify-content: flex-start;
        padding-right: 0;
    }
}