* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body{
    min-height: 100%;
}

.page__container{
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    padding: 0;
}

body {
    background: #F4F3F1;
    color: #575756;
    font-family: 'open sans', arial, sans-serif;
    display: flex;
    flex-direction: column;
    overflow-y: scroll;
}

/* ===== HEADER ===== */
.header__wrapper {
    background: #575756;
    color: #fff;
}

.header {
    margin: 0 auto;
    padding: .25rem 1.25rem; /* For small screens. */
    max-width: 1224px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 1rem;
    position: relative;
}

header * {
    flex: 1;
    text-align: center;
}
.centre{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    flex: 0;
}
a.site__title {
    font-size: 2rem;
    color: #fff;
}
    a.site__title:link,
    a.site__title:active {
        text-decoration: none;
    }
a.site__title:hover {
    text-decoration: underline;
}

.user__wrapper {
    display: inline-flex;
    gap: .5rem;
    font-weight: 500;
    align-items: center;
}

main {
    flex: 1;
    padding: 0 1.5rem;
}


/* ===== USER MENU ===== */
.userMenu__wrapper {
    position: fixed;
    right: -100%;
    top: 0;
    width: 60%;
    background: #fff;
    height: 100vh;
    padding: 1.5rem;
    transition: right .5s ease-in-out;
    box-shadow: -5px 0 5px -5px rgba(0, 0, 0, 0.25); /* Shadow on the left side only. */
}
.nav-big{
    display: none;
}
.userMenu__wrapper .nav-big ul {
    list-style-type: none;
    flex-direction: column;
    gap: 1rem;
}
.close-btn{
    cursor: pointer;
    width: 2rem;
    display: block;
    margin-left: auto;
    margin-bottom: 1.0rem;
    right: 1.1rem;
    top: 1.0rem;
}
.menu-btn{
    width: 2rem;
    cursor: pointer;
}
.open{
    right: 0%;
}

.nav-small {
    color: #575756;
    list-style-type: none;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.userName{
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.logout-btn {
    background: green;
    padding: 1rem 2rem;
    width: 100%;
    border-radius: .25rem;
}


button {
    background: #575756;
    color: #fff;
    display: flex;
    align-items: center;
    gap: .5rem;
    cursor: pointer;
    border: none;
    font-size: 1rem;
}
    button:focus{
        outline: none;
    }
        button:hover .dropdown {
            display: block;
        }
.nav-big .dropdown {
    background: white;
    border-radius: 0.25rem;
    position: absolute;
    left: 0;
    padding: 0.25rem;
    width: 100%;
    box-sizing: border-box;
    transform: translateY(-1em);
    transition: transform 0.5s;
    visibility: hidden;
    display: none;
}
    .nav-big .dropdown ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }
        .nav-big .dropdown ul li a {
            display: flex;
            padding: 0.25rem;
            text-decoration: none;
            color: black;
        }
            .nav-big .dropdown ul li a span.txt {
                margin-left: 0.25rem;
            }
            .nav-big .dropdown ul li a:hover {
                background: #e9e9e9;
            }

        .nav-small li button,
        .nav-big .dropdown ul li button {
            width: 100%;
            padding: .5rem 1rem .5rem 2.5rem;
            color: #000;
            background: #dedede url('/images/material-symbols_logout_black.svg') no-repeat .5rem center;
        }
            .nav-small li button:hover,
            .nav-big .dropdown ul li button:hover {
                color: #fff;
                background: #525251 url('/images/material-symbols_logout_white.svg') no-repeat .5rem center;
            }

.container {
    position: relative;
    padding-left: 0;
    padding-right: 0;
}

    .container:hover .dropdown {
        display: block;
        visibility: visible;
        transform: translateY(0);
    }

img.logout {
    color: #fff;
    fill: white;
}




/* ===== BTNS ===== */
.btn__secondary {
    display: flex;
    min-width: 7.1875rem;
    padding: .5rem 1rem;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    border-radius: 0.25rem;
    border: 1px solid #F39200;
    background: #F39200;
    color: #000;
    font-weight: 600;
    font-size: 0.875rem;
    text-decoration: none;
}
    .btn__secondary:hover {
        border: 1px solid #FFC107;
        background: #FFC107;
        text-decoration: none;
        color: #000;
        font-weight: 600;
    }

    .btn__secondary:active {
        border: 1px solid #575756;
        background: #575756;
        text-decoration: none;
        color: #fff;
        font-weight: 600;
    }

.actions__wrapper{
    display: flex;
    gap: 1.5rem;
    justify-content: end;
    align-items: center;
}

/* ===== FAQ HOME PAGE ===== */
.faq__filters {
    padding: 1.5rem 0 .5rem;
    display: flex;
    flex-direction: column;
    justify-content: start;
    gap: .5rem; /* Mob first! Start off at .5 as will be stacked */
}
.filter label {
    display: block;
    font-size: .875rem;
    font-weight: 600;
    color: #2C2C2C;
    margin-bottom: 0; /* Mob first! Don't need extra whitespace. */
}
.faq__filters .filter input,
.faq__filters .filter select{
    min-width: 100%;
    font-size: 1rem;
    padding: .5rem;
    border-radius: .5rem;
    border: 1px solid #E1E1E1;
    color: #696969;
    font-weight: 400;
}
.faq__filters .filter select {
    appearance: none;
    background: white url('/images/dropdown-arrow.svg') no-repeat right .75rem center;
    background-position-x: calc(100% - .5rem);
}
/* Change the appearance of the clear button in WebKit browsers */
input[type="search"]::-webkit-search-cancel-button {
    -webkit-appearance: none; /* Remove the default appearance */
    height: 1rem;
    width: 1rem;
    background: url('/images/search-reset.svg') no-repeat center;
    cursor: pointer;
}

    .faq__filters .filter input:focus, .faq__filters .filter input:focus-visible .faq__filters .filter select:focus, .faq__filters .filter select:focus-visible, .faq__filters .filter select:focus, .faq__filters .filter select:focus-visible {
        border: 1px solid #575756;
    }
    .faq__filters .filter input.search__input {
        background-image: url('/images/search-icon.svg');
        background-repeat: no-repeat;
        background-position-x: .75rem;
        background-position-y: .75rem;
        padding-left: 2.25rem
    }

.currentFilters {
    margin-top: 1rem;
    border: 1px solid #dedede;
    padding: .75rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: .5rem;
    border-radius: .5rem;
    list-style-type: none;
    background: #fff;
    font-size: .875rem;
}
.filteringFor{
    white-space: nowrap;
}
.filterName{
    font-weight: 600;
}
.clearSearchBtn:link {
    background: #ccc;
    background: #DEDEDE;
    padding: .25rem .5rem;
    border-radius: .25rem;
    color: #575756;
    text-decoration: none;
    font-size: .875rem;
    text-align: center;
    justify-self:flex-start;
}
.clearSearchBtn:visited {
    color: #575756;
    text-decoration: none;
}
.clearSearchBtn:hover {
    background: #575756;
    color: #fff;
    text-decoration: none;
}
.clearSearchBtn:active {
    background: #575756;
    color: #fff;
    text-decoration: none;
}
.noFaqs{
    font-weight: 500;
    font-size: 1.25rem;
    padding: 1rem;
    margin-top: -1.5rem;
}
/* ===== FAQ ARTICLE PAGE ===== */
.faqPage__anchors {
    margin-left: 1.25rem;
}
.blockGrids ol, .blockGrids ul{
    margin-left: 1.25rem;
}
.lastUpdated__wrapper {
    color: #525251;
    padding-top: 3rem;
}
span.lastUpdated__date {
    color: #525251;
}
.faqPage__footer {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    justify-content: space-between;
    margin-top: 3rem;
    border-top: 1px solid #d6d6d6;
    padding-top: 1.5rem;
}


/* ===== FAQ CARDS ===== */
.faqCards__wrapper {
    padding: 1.5rem 0;
    display: grid;
    gap: 1.5rem;
}

.faqCard {
    min-height: 15.375rem;
    flex-shrink: 0;
    padding: 1.5rem;
    border-radius: 0.5rem;
    border: 1px solid #D4D4D3; /* Outline-Rnd-2 */
    background: #FFF;
    box-shadow: 0px 4px 12px -5px rgba(0, 0, 0, 0.25); /* Card Shadow Rnd 2 */
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.memberType__wrapper {
    display: flex;
    gap: .5rem;
    justify-content: space-between;
    align-items: center;
    margin-bottom: -.75rem;
}

.memberType__name {
    font-size: 0.875rem;
    letter-spacing: 0.0875rem;
    text-transform: uppercase;
}

.faq__content {
    flex-grow: 1;
}

.faq__title {
    padding-bottom: 0;
    margin-bottom: .5rem;
    font-size: 1.25rem;
    line-height: 1.3;
    font-weight: 700;
    max-height: 3.25rem;
    overflow: hidden;
}

.faq__summary {
    font-size: 1rem;
    font-weight: 600;
}

.faq__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.faq__updated {
    font-size: 0.875rem;
}

.noFaqs__wrapper {
    display: flex;
    justify-content: center;
    padding: 0 0 1.5rem;
    margin-top: -1.5rem;
}

.faqCard.noFaqs{
    max-width: 36.75rem;
}
.selectedFilters{
    list-style-type: none;
    padding-left: 0;
}
.filterLabel{
    min-width: 5.625rem;
    display: inline-block;
}
.filterValue{
    padding-left: 1rem;
    font-weight: 600;
}

/* ===== FAQ PAGE ===== */
.page__wrapper {
    padding: 1.5rem;
    background: #fff;
    box-shadow: 0px 4px 12px -5px rgba(0, 0, 0, 0.25); /* Card Shadow Rnd 2 */
    border: 1px solid #D4D4D3; /* Outline-Rnd-2 */
    margin: 0 -1.5rem;
    min-width: 100%;
}

.faqPage__title {
    margin: 0;
    padding: 1.5rem 0 .75rem;
    font-size: 1.5rem;
    font-weight: 500;
    color: #575756;
}
.faqPage__subTitle {
    padding: 0 0 1.5rem;
    margin: 0;
    font-size: 1.25rem;
    font-weight: 400;
    color: #575756;
}
/* NB Headings affects all pages */
h2 {
    margin: 0;
    padding: 0 0 1rem;
    color: #10A276;
    font-size: 1.25rem;
    font-weight: 600;
}
h3, h4{
    margin: 0;
    padding: 0 0 .75rem;
    font-size: 1.25rem;
    font-weight: 600;
}
h4{
    font-weight: 500;
}
.faqPage__videoWrapper {
    margin: 1.5rem 0;
    box-shadow: 0px 4px 12px -5px rgba(0, 0, 0, 0.25); /* Card Shadow Rnd 2 */
}
.faqPage__video {
    height: auto;
    max-width: 100%;
}

/* ===== PAGINATION ===== */
.pagination__wrapper{
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: flex-end;
    gap: 1.5rem;
    padding: .5rem 0 1.5rem;
}
    .pagination__wrapper * {
        margin-bottom: 0;
    }

.pageSize__wrapper{
    display: flex;
    gap: .5rem;
    justify-content: right;
    align-items: center;
}
.pageSize__wrapper select {
    font-size: 1rem;
    padding: .5rem;
    border-radius: .5rem;
    border: 1px solid #E1E1E1;
    color: #696969;
    font-weight: 400;
}
.paginator__wrapper {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    justify-content: flex-end;
    align-items: center;
}
a.paginator,
span.paginator {
    display: inline-block;
    border-radius: .25rem;
    border: 1px solid #525251;
    color: #525251;
    font-weight: 400;
    background: #fff;
    padding: .5rem 1rem;
    text-wrap: nowrap;
}
a.paginator:hover{
    background: #575756;
    color: #fff;
    text-decoration: none;
}
.paginator__disabled {
    border: 1px solid #D9D9D9;
    padding: .5rem 1rem;
    border-radius: .25rem;
    background: #F4F3F1;
    text-wrap: nowrap;
}

/* ===== SITE FOOTER ===== */
footer {
    color: #fff;
    background: #08835E;
}
.footerContent__wrapper{
    padding: 0 1.5rem;
}
/* Footer Help Section */
.footerContent__help{
    padding: 2rem 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    font-size: 1rem;
}
.helpText__wrapper {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
    .helpText__wrapper h3 {
        font-size: 1.25rem;
        font-weight: 600;
        letter-spacing: .025rem;
        text-transform: uppercase;
        margin-bottom: 0;
        padding-bottom: 0.5rem;
    }
    .helpText__wrapper p {
        line-height: 1.2;
        margin-bottom: 0;
    }

.contactLinks__wrapper {
    display: flex;
    flex-direction: column;
}
.contactLink {
    padding-left: 2rem;
    background-repeat: no-repeat;
    background-position: left .375rem;
    background-size: 1.5rem;
    line-height: 2; /* Double line height to accommodate 24px bg images */
}
    .contactLink.email {
        background-image: url('/images/mdi_at.svg');
    }
    .contactLink.phone {
        background-image: url('/images/mdi_phone.svg');
    }

/* Footer Copyright Section */
.footerCopyright__wrapper {
    background: #575756;
    font-size: .875rem; /* Smaller font as least important text on page. */
}
.footerCopyright__content {
    margin: 0 auto;
    width: 100%;
    max-width: 1224px;
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    background: #575756;
}
    footer a:visited {
        color: #fff;
    }
    footer a:link {
        color: #fff;
        text-decoration: underline;
    }

.footerAddress{
    display: flex;
    flex-direction: column;
    column-gap: .5rem;
}


/* ===== FAQ PAGE - 2 COL LAYOUT (50:50) ===== */
.twoCol__layout {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 1.5rem;
    padding: 1.25rem 0;
}

/* ===== FAQ PAGE - 2 COL LAYOUT (33:66) ===== */
.twoCol3366__layout {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 1.5rem;
    padding-top: 2rem;
    padding-bottom: 2rem;
}

    
/* Keep images and videos generally responsive */
    .oneCol__layout img,
    .oneCol__layout video,
    .twoCol__layout img,
    .twoCol__layout video,
    .twoCol3366__layout img,
    .twoCol3366__layout video {
        max-width: 100%;
    }

.blockGrids h2 {
    margin-top: 0;
}



/* ===== RESPONSIVE LAYOUT MEDIA QUERIES ===== */
@media screen and (min-width: 420px) {
    .currentFilters{
        flex-direction: row;
        align-items: center;
    }
}
    /* In between Mobile & Tablet */
    @media screen and (min-width: 500px) {
        .pagination__wrapper {
        flex-direction: row;
        justify-content: flex-end;
        align-items: center;
    }
    .paginator__wrapper{
        flex-direction: row;
    }
}

/* Tablet */
@media screen and (min-width: 768px) {
    /* ===== MASTER ===== */
    .nav-small, .menu-btn, .close-btn {
        display: none;
    }
    
    .nav-big {
        display: block;
    }

    .userMenu__wrapper {
        position: unset;
        height: auto;
        width: auto;
        background: none;
        box-shadow: unset;
        padding-left: 0;
        padding-right: 0;
    }
        .userMenu__wrapper .nav-big ul {
            flex-direction: row;
            align-items: flex-start;
        }

    .footerContent__help {
        flex-direction: row;
        justify-content: flex-start;
        gap: 2.5rem;
    }
    .footerCopyright__content {
        flex-direction: row;
        justify-content: space-between;
    }

    /* ===== FAQ PAGE ===== */
    .faqCards__wrapper {
        grid-template-columns: repeat(auto-fill, minmax(21.5rem, 1fr));
    }
    .faq__filters{
        flex-direction: row;
        gap: 1.5rem;
        padding-bottom: 0;
    }
        .faq__filters .filter {
            flex: 1 1 200px;
        }

    .paginator__wrapper{
        flex-direction: row;
    }

    .faqPage__footer {
        -ms-flex-direction: inherit;
        -webkit-flex-direction: inherit;
        flex-direction: inherit;
    }
}

/* Laptop/Desktop */
@media screen and (min-width: 1024px) {
    /* ===== MASTER ===== */
    main,
    .footerContent__wrapper {
        margin: 0 auto;
        width: 100%;
        max-width: 1224px;
    }
    .footerContent__help {
        flex-direction: row;
        gap: 4rem;
        justify-content: left;
        background-image: url('/images/3R Logo Watermark.svg');
        background-repeat: no-repeat;
        background-position: right center;
    }
    
    /* ===== FAQ PAGE ===== */
    .twoCol__layout {
        grid-template-columns: 1fr 1fr;
    }
    .twoCol3366__layout {
        grid-template-columns: 1fr 2fr;
    }
}

/* Average Laptop and up. */
@media screen and (min-width: 1025px){
    .footerAddress{
        flex-direction: row;
    }
}

@media screen and (min-width: 1272px){
    /* ===== FAQ PAGE ===== */
    .page__wrapper {
        border-radius: 0.5rem;
        box-shadow: 0px 4px 12px -5px rgba(0, 0, 0, 0.25); /* Card Shadow Rnd 2 */
        margin-top: 1.5rem;
        margin-bottom: 1.5rem;
        min-width: 100%;
    }
}