*:focus {
    outline: 2px solid #2b70B4;
}


/* Utility Styles
================================================ */
.float-left {
    float: left;
}

.float-right {
    float: right;
}

.text-center {
    text-align: center;
}

.centerWithinElement {
    display: inline-block;
    margin: auto 3%;
}


/* Color Styles
================================================ */
:root {
    --text-color: #212833;
    --header-color: #01497C;
    --accent-color: #80D2E4;
    --mod-button-color: #1B4978;

    color: var(--text-color);
}


/* Body */
body {
    font-size: 1rem;
    font-family: 'Montserrat', sans-serif;
}


/* Headings */
h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--header-color);
    font-weight: bold;
    font-family: 'Montserrat', sans-serif;
    line-height: 2rem;
}

h1 {
    font-size: 2rem;
    letter-spacing: .03rem;
}

h2 {
    font-size: 1.8rem;
}

h3 {
    font-size: 1.5rem;
}

h4 {
    font-size: 1.1rem;
}


/* Paragraphs */
p {
    line-height: 1.5rem;
    margin-top: 0;
}


/* Links */
a {
    color: #01497C;
    font-weight: bold;
}

a:hover {
    text-decoration: underline;
}


.team-box h4,
.timeEstimate {
    font-weight: bold;
    letter-spacing: 2.4px;
    text-transform: uppercase;
}


.team-box p {
    font-size: 0.9rem;
}


label {
    display: none;
}


/* Button Styles
================================================ */
.button-container {
    height: 40px;
    margin-top: 2rem;
}


/* All buttons */
.button {
    border: 2px solid var(--mod-button-color);
    border-radius: 2rem;

    padding: .5rem 1.6rem;

    text-transform: uppercase;

    background: transparent;

    font-weight: 600;

    text-decoration: none;

    letter-spacing: .1rem;

    text-align: center;
}


a .button {
    color: var(--text-color);
    text-decoration: none;
}


.button:hover {
    color: #FFFFFF;

    background-color: var(--mod-button-color);

    text-decoration: none;
}


/* Disable buttons */
.button:disabled {
    border: 2px solid grey;

    color: #444444;

    background-color: #ddd;
}


.button:disabled:hover {
    background-color: #ddd;

    color: initial;
}


/* Image buttons */
.button:hover img {
    color: #fff;
}


/* Misc button types */
.btn-sm {
    padding: .4rem 1rem;

    font-size: 12px;
}


.buttonModBox {
    display: inline-block;

    width: 256px;

    border: 2px solid var(--mod-button-color);

    color: var(--text-color);
}


.buttonModBox:hover {
    color: #ffffff;

    background-color: var(--mod-button-color);
}


/* Home Page Styles
=================================================== */
.module-box {
    width: 100%;

    height: 330px;

    margin-bottom: 2rem;

    -webkit-box-shadow:
        2px 2px 6px 1px rgba(0,0,0,0.2);

    -moz-box-shadow:
        2px 2px 6px 1px rgba(0,0,0,0.2);

    box-shadow:
        2px 2px 6px 1px rgba(0,0,0,0.2);
}


.mb-img {
    object-fit: cover;
}


img.mb-img {
    height: 330px;

    width: 100%;
}


.bot-btn {
    min-width: 200px;
}


@media (max-width: 974px) {

    .bot-btn {
        min-width: unset;
    }


    img.mb-img {
        height: 300px;

        width: 100%;
    }


    .module-box {
        height: auto;
    }


    .mb-content {
        padding-left: 2rem;
    }


    .top-nav-back,
    .top-nav-frwd {
        width: 94%;

        float: none;

        position: static;

        display: inline-block;

        margin: .33rem 3%;
    }


    .buttonModBox {
        width: 200px;
    }

}


/* About the Team Styles
================================================ */

/* Image */
img.mb-team-img {
    width: 100%;

    height: 100%;

    object-fit: cover;

    display: block;

    border-bottom-left-radius: 2rem;

    border-top-left-radius: 2rem;
}


/* Card */
.team-box {
    width: 100%;

    min-height: 300px;

    margin-top: 2em;

    margin-bottom: 1rem;

    border-bottom-left-radius: 2rem;

    border-top-left-radius: 2rem;

    box-shadow:
        2px 4px 12px rgba(0,0,0,0.2);

    overflow: hidden;
}


/* Text spacing */
.team-box h3,
.team-box p {
    margin-bottom: 0.5rem;
}


/* Table */
table.nolines {
    table-layout: fixed;

    width: 100%;

    height: 100%;
}


table.nolines td {
    border-bottom: none;

    padding: 0;

    vertical-align: top;
}


/* Image column */
table.nolines td.aboutpic {
    width: 24%;
}


/* Text column */
table.nolines td.abouttext {
    padding: 20px;
}


/* Safari */
@media not all and (min-resolution:.001dpcm) {

    @media {

        table.nolines td.abouttext h3 {
            margin-top: 0;
        }


        table.nolines td.aboutpic {
            padding: 5px 0 0 5px;
        }

    }

}


/* In-Module Styles
================================================ */

.modContainer {
    width: 768px;

    margin: 0 auto;
}


.modTitle {
    text-align: center;

    width: 1088px;

    float: left;

    padding-left: 16px;
}


.modTitle h2 {
    color: var(--text-color);

    font-size: 1.6rem;
}


.modTitle h1,
.modTitle h2 {
    font-weight: normal;

    margin: 0;

    padding: 0;
}


.modContent {
    width: 1226px;

    float: left;

    padding-left: 16px;
}


.modContent h3 {
    color: var(--text-color);

    font-family: 'Montserrat', sans-serif;

    text-transform: uppercase;

    font-size: 1.25rem;

    font-weight: bold;

    letter-spacing: .05rem;

    margin: 1rem 0 0;

    padding: 0;
}


.boxContent {
    background-color: #efefef;

    padding: 15px 18px 15px;
}


.landingPageVidImg {
    width: 750px;
}


@media (max-width: 2660px) {

    .modContainer {
        padding: 0 10px 0;
        wid_th: auto;
    }


    .modTitle {
        max-width: 1280;

        width: auto;

        margin: 0 196px 0;

        float: none;
    }


    .modPrevBtnContainer {
        width: auto;
    }


    .modSidebar {
        width: 15%;
    }


    .modContent {
        width: 83%;

        float: right;
    }

}


/* Header Styles
================================================ */

/*
 * IMPORTANT
 *
 * Header-Background.png is now the header artwork
 * WITHOUT the ECCO logo.
 *
 * ecco_logo_white.png is the ONE separate logo.
 *
 * The logo is kept inside the header using flexbox,
 * max-height and object-fit.
 */

.site-header {
    position: relative;

    width: 100%;

    /*
     * Slightly taller than the old 95px header.
     * Gives the complete ECCO logo/subtitle room.
     */
    min-height: 100px;

    height: auto;

    /*
     * Keep logo vertically centered.
     */
    display: flex;

    align-items: center;

    box-sizing: border-box;


    /*
     * Your NO-LOGO background artwork.
     */
    background-image:
        url("/images/Header-Background.png");

    background-size: cover;

    background-position: center center;

    background-repeat: no-repeat;


    /*
     * Small controlled padding.
     */
    padding:
        8px
        clamp(16px, 3vw, 45px);


    margin-bottom: 20px;


    /*
     * Safety:
     * nothing can visually extend outside the header.
     */
    overflow: hidden;
}


/*
 * Logo link.
 *
 * No absolute positioning.
 * No fixed 420px x 95px clickable box.
 */
.header-logo-link {
    position: static;

    display: block;

    /*
     * Main size controller.
     *
     * Desktop max = 480px.
     * This is intentionally smaller than the previous
     * 565px because that was exceeding the header.
     */
    width:
        clamp(
            280px,
            30vw,
            480px
        );

    max-width: 65%;

    height: auto;

    margin: 0;

    padding: 0;

    text-decoration: none;

    flex: 0 1 auto;
}


/*
 * Actual logo.
 */
.logo-image {
    display: block;

    /*
     * Fill the link width but never exceed it.
     */
    width: 100%;

    max-width: 100%;

    /*
     * Critical:
     * preserve original logo ratio.
     */
    height: auto;

    /*
     * Critical:
     * logo cannot become taller than header space.
     */
    max-height: 74px;

    margin: 0;

    padding: 0;

    object-fit: contain;

    object-position: left center;
}


/*
 * Do not show large focus box on mouse click.
 */
.header-logo-link:focus {
    outline: none;
}


/*
 * Keep keyboard accessibility.
 */
.header-logo-link:focus-visible {
    outline: 2px solid #ffffff;

    outline-offset: 3px;
}


/* Tablet
================================================ */
@media (max-width: 900px) {

    .site-header {
        min-height: 92px;

        padding:
            8px
            18px;
    }


    .header-logo-link {
        width:
            clamp(
                260px,
                48vw,
                420px
            );

        max-width: 72%;
    }


    .logo-image {
        max-height: 68px;
    }

}


/* Mobile Header
================================================ */
@media (max-width: 674px) {

    .site-header {
        min-height: 78px;

        height: auto;

        padding:
            7px
            12px;

        margin-bottom: 0;

        background-position: center center;

        background-size: cover;
    }


    .header-logo-link {
        /*
         * Logo takes up at most about 80% of
         * the available mobile width.
         */
        width: min(340px, 80vw);

        max-width: 80vw;

        height: auto;
    }


    .logo-image {
        width: 100%;

        max-width: 100%;

        height: auto;

        max-height: 58px;
    }

}


/* Main Container
================================================ */
.container,
.modContainer {
    min-height:
        calc(
            100vh
            - 113px
            - 20px
            - 45px
            - 20px
        );
}


/* Footer Styles
================================================ */
footer {
    background-image:
        url("/images/Footer-Background.png");

    background-size: cover;

    margin-top: 20px;

    clear: both;

    width: 100%;

    height: 45px;

    position: absolute;

    bott_om: 0;
}


@media (max-height: 550px) {

    footer {
        clear: both;

        margin-top: -45px;

        position: relative;
    }


    #chatIcon {
        bottom: 0;
    }

}


/* Module controls
================================================ */

div#notsaveandexit {
    position: absolute;

    top: 116px;

    right: 60px;

    width: 160px;

    height: 60px;

    b__order: 1px solid #f00;
}


div#notfullscreen {
    position: absolute;

    top: 116px;

    right: 10px;

    width: 48px;

    height: 60px;

    background-color: #01497c;
}


div#domsnote {
    display: none;

    width: 180px;

    height: 40px;

    border: 1px solid black;

    color: black;

    font-size: 12px;

    text-align: center;

    border-radius: 4px;

    background-color: #ffffff8a;

    top: 50%;

    left: 50%;

    margin-left: 0;

    margin-top: -110px;

    padding: 20px 10px;

    position: absolute;

    box-shadow:
        0px 4px 12px #444;
}


@media (max-width: 1263px) {

    div#notfullscreen {
        background-color: #103752;
    }


    div#domsnote {
        display: block;
    }

}


/* Misc lists/forms
================================================ */

ul.nodot {
    margin-top: 0;

    padding-inline-start: 10px;
}


ul.nodot li {
    list-style-type: none;
}


ul.nodot li input[type='checkbox'] {
    margin: 3px 8px 3px 3px;
}


form#fx input[type='submit'] {
    font-size: 18px;

    padding: 4px 10px;
}


form#fx h4 {
    margin: 0;
}


/* Padding / Margin Styles
================================================ */

.pb-1 {
    padding-bottom: 1rem;
}

.pb-2 {
    padding-bottom: 2rem;
}

.pb-3 {
    padding-bottom: 3rem;
}


.pt-1 {
    padding-top: 1rem;
}

.pt-2 {
    padding-top: 2rem;
}

.pt-3 {
    padding-top: 3rem;
}


.pl-1 {
    padding-left: 1rem;
}

.pl-2 {
    padding-left: 2rem;
}

.pl-3 {
    padding-left: 3rem;
}


.pr-1 {
    padding-right: 1rem;
}

.pr-2 {
    padding-right: 2rem;
}

.pr-3 {
    padding-right: 3rem;
}


.mb-1 {
    margin-bottom: 1rem;
}

.mb-2 {
    margin-bottom: 2rem;
}

.mb-3 {
    margin-bottom: 3rem;
}


.mt-1 {
    margin-top: 1rem;
}

.mt-2 {
    margin-top: 2rem;
}

.mt-3 {
    margin-top: 3rem;
}


.ml-1 {
    margin-left: 1rem;
}

.ml-2 {
    margin-left: 2rem;
}

.ml-3 {
    margin-left: 3rem;
}


.mr-1 {
    margin-right: 1rem;
}

.mr-2 {
    margin-right: 2rem;
}

.mr-3 {
    margin-right: 3rem;
}


/*
DEPRECIATED
STYLE THINGS
*/


/* Module Page Styles */
#lls_page_error {
    display: none;
}


#lls_page_error.show {
    display: block;
}


ol#module_overview {
    padding-left: 0;

    list-style-type: none;
}


ol#module_overview li {
    margin-bottom: 0.5rem;
}


ol#module_overview ol {
    padding-left: 1rem;

    list-style-type: none;

    font-size: 14px;
}


ul#refsul li a {
    font-weight: normal;

    text-decoration: none;
}


ol#refsol h4 {
    margin-left: -2em;
}


ol#refsol h3 {
    margin-left: -2em;
}


/* Original Desktop Navigation */
div#normallinks {
    display: block;
}


/* Hamburger */
div#hamburger {
    display: none;

    background-color:
        var(--mod-button-color);

    color: white;

    height: 36px;

    font-size: 20px;
}


/* Mobile links */
div#minilinks {
    display: none;

    background-color:
        var(--mod-button-color);

    margin-top: -36px;
}


div#minilinks a {
    display: block;
}


div#minilinks .button2 {
    background-color:
        var(--mod-button-color);

    color: white;

    padding: 2px;

    border: none;
}


/* Hamburger icon */
.fa-bars {
    float: right;

    padding: 8px;

    color: white;

    font-size: 20px;
}


/* Go Home */
input#gohome {
    background-color:
        var(--mod-button-color);

    color: white;

    padding: 10px 16px;

    font-size: 20px;

    border-radius: 4px;

    border: none;
}


/* Mobile Navigation */
@media (max-width: 674px) {

    div#normallinks {
        display: none;
    }


    div#hamburger {
        display: block;
    }


    .site-header {
        margin-bottom: 0;
    }

}


/* Disabled anchors */
a[disabled] {
    pointer-events: none;

    color: #aaa;

    border-color: #888;
}