*,
*:before,
*:after {
    box-sizing: border-box;
}

:root {
    font-size: 16px;
    font-family: "Inter", sans-serif;
    --green: #00804b;
    --yellow: #ebce57;
    --black: #1a1a1a;
    --grey: #4d4d4d;
    --hover: #009953;
    --text-color: #4d4d4d;
    --page-width: 100vw;
    --side-margin: calc((100vw - var(--page-width)) / -2);
    overflow-x: clip;
    color: var(--text-color);
    --scrollbarWidth: 17px;
}

@media (min-width: 768px) {
     :root {
        --page-width: 750px;
    }
}

@media (min-width: 992px) {
     :root {
        --page-width: 970px;
    }
}

@media (min-width: 1201px) {
     :root {
        --page-width: 1170px;
    }
}

body {
    overflow-x: inherit;
    font-size: inherit !important;
    font-family: inherit !important;
}


/*
--------------------------------------------------------------------------
 Typography 
--------------------------------------------------------------------------
 */

p+p {
    margin-top: .25em;
}

p:empty {
    display: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;
    margin-bottom: .5em;
    padding: 0;
    font-weight: 700;
    color: var(--black);
}

h1 {
    font-size: 36px;
}

h2 {
    font-size: 26px;
}

h3 {
    font-size: 22px;
}

h4 {
    font-size: 18px;
}

h5 {
    font-size: 17px;
}

h6 {
    font-size: 16px;
}


/*  Links -------------------

 */

a {
    color: var(--black);
    text-decoration: none;
    transition: .125s color ease-in-out;
}

a:hover,
a:focus {
    text-decoration: underline;
    color: var(--green);
}

.button-link,
input[type="submit"]:not(#mms-main input),
.mobile-login button {
    /* :not exception needed to avoid messing with all sorts of different buttons in the MMS  */
    background: var(--green);
    padding: .75em 3.95ch;
    display: inline-block;
    color: var(--yellow);
    border-radius: 3px;
    position: relative;
    border: none;
    text-align: center;
    text-shadow: none;
    font-weight: 500;
    font-size: inherit;
    border: 2px solid var(--green);
    transition: .125s background ease-in-out, .125s color ease-in-out;
}

@media (min-width: 768px) {
    a.button-link,
    input[type="submit"]:not(#mms-main input),
    .mobile-login button {}
}

.button-link:not(:last-child) {
    margin-bottom: .5em;
}

.button-link:hover,
.button-link:focus {
    text-decoration: none;
    background: var(--hover);
    border: 2px solid var(--hover);
    color: var(--yellow);
}

a.button-link+*:not(.button-link) {
    padding-top: 1.5em;
}

*+.button-link {
    margin-top: 1em;
}

li:not(:last-child) .button-link {
    margin-bottom: .75rem;
}

.button-dark {
    background: var(--black);
    border: 1px solid var(--black);
    color: #fff;
    padding: .318em 1.65ch;
}

.button-dark:hover,
.button-dark:focus {
    background: var(--grey);
    border: 1px solid var(--grey);
    color: #fff;
}


/*
--------------------------------------------------------------------------
 Objects
--------------------------------------------------------------------------
 */

.wrapper {
    /* .wrapper acts as a more symantic stand-in for <container><row><col-md-12></col-md-12></row></container> in sections of this build that don't require stacking columns  */
    margin-right: auto;
    margin-left: auto;
    max-width: 100%;
    position: relative;
    height: inherit;
    padding-left: 15px;
    padding-right: 15px;
    width: calc(var(--page-width) - 30px);
    width: var(--page-width);
}

.full-width {
    /* Make an element span the width of the viewport */
    position: relative;
    left: var(--side-margin);
    right: var(--side-margin);
    width: calc(100vw + var(--scrollbarWidth));
}

.full-width>.column {
    padding-left: 0;
    padding-right: 0;
}

#gm-canvas .full-width,
#gm-canvas .background-row {
    left: unset;
    right: unset;
    width: unset;
}

.background-row:not(#mycanvas .background-row) {
    padding-block: 2.5rem;
    position: relative;
    left: var(--side-margin);
    right: var(--side-margin);
    display: flex;
    width: calc(100vw + var(--scrollbarWidth));
}

.background-row:not(#mycanvas .background-row)::before {
    background-color: var(--primary);
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--side-margin);
    right: var(--side-margin);
    display: block;
}

.background-row:not(#mycanvas .background-row)>.column {
    /* Since element is extended past where the scrollbar is, extra padding is added to make sure it's content is not hidden under the scrollbar */
    padding-right: calc(15px + var(--scrollbarWidth));
}

#subpage-main:has(.background-row:last-child) {
    /* If .background-row is the last row, don't include a gap between main and footer */
    margin-bottom: 0;
    padding-bottom: 0;
}

#subpage-main>.background-row:last-child {
    /* If .background-row is the last row, don't include a gap between main and footer */
    margin-bottom: 0;
}

@media (min-width: 992px) {
    .background-row:not(#mycanvas .background-row)>.col-md-9 {
        width: calc(75% - 15px);
    }
    .background-row:not(#mycanvas .background-row)>.col-md-8 {
        width: calc(66.7% - 15px);
    }
    .background-row:not(#mycanvas .background-row)>.col-md-7 {
        width: calc(58.3% - 15px);
    }
    .background-row:not(#mycanvas .background-row)>.col-md-6 {
        width: calc(50% - 15px);
    }
    .background-row:not(#mycanvas .background-row)>.col-md-5 {
        width: calc(41.7% - 15px);
    }
    .background-row:not(#mycanvas .background-row)>.col-md-4 {
        width: calc(33.3% - 20px);
    }
    .background-row:not(#mycanvas .background-row)>.col-md-3 {
        width: calc(25% - 20px);
    }
    .background-row:not(#mycanvas .background-row)>.col-md-2 {
        width: calc(20% - 20px);
    }
}

@media (max-width: 990px) {
    .full-width,
    .background-row {
        left: var(--side-margin);
        right: var(--side-margin);
        width: calc(100vw + var(--scrollbarWidth));
    }
    .background-row:not(#mycanvas .background-row) {
        padding-block: 2rem;
    }
}

@media (max-width: 767px) {
    .background-row:not(#mycanvas .background-row) {
        padding-block: 1rem;
    }
}

.offscreen {
    /* This class allows an element to be read by a screenreader without appearing in the viewport  */
    position: absolute;
    left: -666vw;
}

@media (min-width: 767px) {
    /*The following styles are meant to give more space to the label column in contact forms that are too narrow for the entire label to be read normally*/
    .col-md-5 form[action="contact_form_resp.php"] .col-sm-2,
    .col-md-4 form[action="contact_form_resp.php"] .col-sm-2,
    .col-md-3 form[action="contact_form_resp.php"] .col-sm-2,
    .col-md-2 form[action="contact_form_resp.php"] .col-sm-2,
    .col-md-1 form[action="contact_form_resp.php"] .col-sm-2 {
        width: 25%;
        padding-right: 1em;
    }
    .col-md-5 form[action="contact_form_resp.php"] .col-sm-10,
    .col-md-4 form[action="contact_form_resp.php"] .col-sm-10,
    .col-md-3 form[action="contact_form_resp.php"] .col-sm-10,
    .col-md-2 form[action="contact_form_resp.php"] .col-sm-10,
    .col-md-1 form[action="contact_form_resp.php"] .col-sm-10 {
        width: 75%;
        padding-left: 0;
    }
    .col-md-5 form[action="contact_form_resp.php"] .col-sm-offset-2,
    .col-md-4 form[action="contact_form_resp.php"] .col-sm-offset-2,
    .col-md-3 form[action="contact_form_resp.php"] .col-sm-offset-2,
    .col-md-2 form[action="contact_form_resp.php"] .col-sm-offset-2,
    .col-md-1 form[action="contact_form_resp.php"] .col-sm-offset-2 {
        margin-left: 25%;
    }
    /*^^Adjusts the form-group placement of the reCAPTCHA iframe and submit buttom to match the new widths from the styles above*/
}

blockquote {
    font-size: inherit;
    border-left-color: var(--black);
}

blockquote p {
    font-size: 1.05em;
}


/*Styles below are taken from Bootstrap's table style to ensure that tables on content pages are responsive and neat whether Bootstrap classes are added or not. :not added to prevent styling Google Custom Search tables*/

#subpage-main table {
    max-width: 100%;
    border-collapse: collapse;
    color: #212529;
    margin-bottom: 1em;
    font-size: 16px;
    border-bottom: 1px solid #dee2e6;
    margin-top: 2em;
}

#subpage-main thead {
    font-weight: bold;
}

#subpage-main td,
#subpage-main th {
    padding: .75rem;
    vertical-align: top;
    border-top: 1px solid #dee2e6;
    text-align: inherit;
}

#subpage-main thead th {
    vertical-align: bottom;
    border-top: none;
}

#subpage-main caption {
    color: currentColor;
    text-align: left;
    font-size: 1.375em;
    font-weight: bold;
    padding: 0;
}

#subpage-main tbody tr:hover {
    color: #212529;
    background-color: rgba(0, 0, 0, .075);
}

@media (max-width: 767px) {
    #subpage-main table {
        font-size: 14px;
    }
    #subpage-main td:first-child,
    #subpage-main th:first-child {
        padding-left: 5px;
    }
    #subpage-main td:last-child,
    #subpage-main th:last-child {
        padding-right: 5px;
    }
}

@media (max-width: 500px) {
    #subpage-main td,
    #subpage-main th {
        padding: 5px 2px;
    }
}

grammarly-btn {
    display: none;
    /*If someone copy/pastes text from Grammarly it will add this invisible button and cause the page to scroll horizontally. This style hides that.*/
}

.ui-widget {
    /* Part of some pages in the MMS, this style tells it not to overwrite the font with Verdana */
    font-family: revert;
}


/* Feed items */

.feed-item {
    padding: .25rem 20px;
    border-radius: 5px;
}

.feed-item h3 {
    font-size: 1.1rem;
}

.feed-item *:not(:last-child) {
    margin-bottom: .5rem;
}


/* Slideshow defaults */

.carousel {
    font-size: 20px;
}

.carousel-control.left,
.carousel-control.right {
    display: none;
}

.caption-text {
    font-size: 28px;
    font-weight: bold;
    display: block;
    margin-bottom: 10px;
}

.alt-text {
    font-size: 16px;
    color: initial;
    margin-bottom: 10px;
}


/*--end slideshow-defaults---------*/


/*----------Responsive Nivo*/

div[id^=slider-container-FD],
div[id^=slider_FD],
.nivoSlider img {
    max-width: 100% !important;
    height: auto !important;
}


/*----------Nivo Controls*/

.nivo-prevNav,
.nivo-nextNav {
    background-image: none !important;
    width: 25px !important;
    top: 25% !important;
    /*Fallback for browsers that don't support calc*/
    top: calc( 50% - 50px) !important;
    text-decoration: none;
    color: white;
    font-weight: bold;
    font-size: 75px;
    font-family: Arial, sans-serif;
    text-shadow: 0px 0px 10px rgba(51, 51, 51, 0.4);
}

.nivo-prevNav:hover,
.nivo-nextNav:hover {
    text-decoration: none;
    color: #ae0e0d;
    text-shadow: none;
}

.nivo-prevNav {
    left: 10px !important;
}

.nivo-nextNav {
    right: 10px !important;
}

.nivo-prevNav:after {
    content: "‹";
}

.nivo-nextNav:after {
    content: "›";
}


/*  Modals ---------------------------------
    ----------------------------------------
 */

.modal-open .modal {
    display: flex;
}

.modal-dialog {
    max-width: 260px;
    font-size: 16px;
    margin: auto;
}

.modal-header,
.modal-body {
    padding: .5rem 1rem;
}

.modal-header .close {
    opacity: 1;
    z-index: 1;
    position: relative;
}

.modal h2 {
    font-size: 20px;
    opacity: .9;
}

.modal a {
    display: block;
    margin-bottom: .5em;
}


/*  Login Forms 
*/

.modal input[name="Username"],
.modal input[name="Password"] {
    width: 100%;
    padding-left: .25em;
    padding-right: .25em;
    margin-bottom: 0.5em;
    height: 2em;
    border: 1px solid rgba(68, 68, 68, .5);
}


/* Social list */

.social-list {
    display: flex;
    align-items: center;
    position: relative;
    list-style: none;
    gap: 1.5em;
    padding: 0;
    margin: 0;
}

#mobile-menu .social-list::before {
    color: var(--purple);
}

.social-list svg {
    vertical-align: unset;
}

.social-list svg:not(:root) {
    overflow: unset;
}

.social-list svg#fb-icon {
    width: 11px;
    height: 20px;
}

.social-list svg#youtube-icon {
    width: 25px;
    height: 18px;
}

.social-list svg:hover,
.social-list svg:focus {
    background: var(--primary);
}

.social-list rect {
    display: none;
}


/*  Mobile Menu-----------------------------
    ----------------------------------------
 */

#mobileMenuWrapper {
    box-shadow: 7px 0 5px rgba(0, 0, 0, 0.1);
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: 200;
    overflow-y: auto;
    overflow-x: hidden;
    left: -120%;
    width: 300px;
    background-color: var(--green);
    border-right: 3px solid var(--hover);
    transition: left 300ms cubic-bezier(1.000, 0.010, 0.0, 1.000);
    color: #fff;
}

#mobileMenuWrapper.open {
    left: 0;
}

#mobile-menu {
    list-style: none;
    overflow-y: auto;
    overflow-x: visible;
    padding: 1em;
}

.triggerClose {
    text-align: right;
}

#mobile-menu button {
    border: none;
}

.triggerClose button {
    background: none;
    font-weight: 400;
}

#mobileMenuWrapper #mobile-menu a {
    display: inline-block;
    width: 100%;
    margin-bottom: 0;
    color: #fff;
    border-top: 1px solid #bbf0d6;
    padding-bottom: 0.5em;
    padding-top: 0.4em;
    font-weight: 400;
    text-decoration: none;
}

#mobileMenuWrapper #mobile-menu a.home-link {
    border-top: 0px;
}

#mobileMenuWrapper .mDropdown {
    display: none;
    list-style: none;
    padding: 0;
    background: none;
    border-top: 0;
    border-bottom: 0;
    padding-top: 0;
    margin-bottom: 0;
}

#mobileMenuWrapper .mDropdown.open {
    display: block;
}

.mDropdown>li>a {
    padding: 0;
}

.mDropdown-parent {
    color: var(--primary);
}

#mobileMenuWrapper .login-item {
    display: none;
}

#mobileMenuWrapper .search-item path {
    fill: var(--purple);
}

#mobileMenuWrapper .social-list {
    margin-top: 1rem;
}

#mobileMenuWrapper .social-list svg {
    border-radius: 50%;
    background: var(--yellow);
}

.mobile-social-wrap {
    margin-right: 10px;
    margin-top: 10px;
}

@media (max-width: 991px) {
    .mobile-social-wrap {
        display: inline-block !important;
    }
}

.mobile-social-wrap svg#fb-icon {
    width: 12px;
    height: 20px;
}

.mobile-social-wrap svg#youtube-icon {
    width: 25px;
    height: 18px;
}

.mobile-social-wrap svg .cls-1 {
    fill: #fff !important;
}

#mobileMenuWrapper #mobile-menu .mobile-social-wrap a {
    border-top: 0px;
}


/*--------------------------------------------------------
    Header
--------------------------------------------------------*/

body>header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem 30px;
    top: 0;
    background: white;
    padding-top: 1rem;
    padding-bottom: 0.75rem;
}

.search-item svg {
    height: 1em;
    width: 1em;
}

header>section .social-list {
    margin-bottom: -5px;
    margin-left: 2em;
    padding: .75em 0;
}

.login-item button {
    background-color: transparent;
    appearance: none;
    border: none;
    padding: unset;
    text-transform: unset;
    transition: .125s color ease-in-out;
}

header>section a,
.login-item button {
    color: white;
}

.login-item button:hover,
.login-item button:focus,
header>section a:hover,
header>section a:focus {
    color: var(--yellow);
}

header .logo-link svg {
    transition-duration: .125s;
}


/* header.scrolled .logo-link svg {
    width: 340px;
    transition: .25s width ease-in-out;
    transition-delay: .125s;
} */

.logo-link>svg {
    margin-left: -5px;
}

header ul {
    padding: 0;
    margin: 0;
    list-style-type: none;
}

.search-join {
    text-align: right;
    margin-bottom: 15px;
}

.search-join .button-dark {
    margin-top: 0px;
    margin-left: 0.5em;
    position: relative;
    top: 2px;
}


/*--------------------------------------------------------
                    Search Bar
--------------------------------------------------------*/

.searchbox {
    width: 250px;
    max-width: 45vw;
    display: inline-block;
    vertical-align: middle;
    color: #666666;
    position: relative;
    padding: 5px 1.5ch;
    border: 1px solid #cccccc;
    border-radius: 3px;
    height: 35px;
    max-height: 35px;
    overflow-y: hidden;
    transition: all .25s ease-in-out;
}

.searchbox ::-webkit-input-placeholder {
    color: #666666;
}

.searchbox :-moz-placeholder {
    /* Firefox 18- */
    color: #666666;
}

.searchbox ::-moz-placeholder {
    /* Firefox 19+ */
    color: #666666;
}

.searchbox :-ms-input-placeholder {
    color: #666666;
}

.search-input {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    border: none;
    width: 100%;
    padding: inherit;
    background: #fff;
    outline: none;
}

.searchbox input[type="submit"]:not(#mms-main input),
.mobile-search-wrap input[type="submit"]:not(#mms-main input) {
    color: transparent;
    background-color: var(--green);
    border: none;
    background-image: url(../images/search-new.svg.php?fc=ebce57);
    position: absolute;
    right: 0;
    top: -1px;
    bottom: 0;
    width: 36px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px;
    border-left: 2px solid var(--green);
    transition: .25s all ease-in-out;
    padding: 0;
    border-radius: 0;
}

.search-button:hover {
    background-color: var(--accent);
    border-left: 2px solid var(--accent);
}

.right-header-wrap nav {
    display: flex;
    align-items: self-start;
}

@media (max-width: 991px) {
    .search-join,
    .right-header-wrap nav {
        display: inline-block;
        vertical-align: middle;
    }
}

@media (max-width: 767px) {
    .search-button {
        top: 0px;
    }
    .search-join .searchbox {
        display: none;
    }
}

.mobile-menu-search .searchbox {
    width: 100%;
    max-width: 100%;
    border: transparent;
    margin-top: 1em;
    margin-bottom: 1.2em;
}

.mobile-menu-search .searchbox input[type="submit"]:not(#mms-main input) {
    background-color: var(--black);
    border: 2px solid var(--black);
}


/* Desktop menu  */

#nav_menu {
    padding: .5em 0;
    position: relative;
    z-index: 1;
}

@media (max-width: 991px) {
    header .right-header-wrap #nav_menu {
        display: none !important;
    }
}

#nav_menu>ul {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    justify-content: flex-start;
    gap: 0.5rem 2ch;
}

#nav_menu>ul::before,
#nav_menu>ul::after {
    content: none;
}

#nav_menu li {
    position: relative;
}

#nav_menu>ul>li>a {
    transition: background .125s ease-in-out;
    position: relative;
    padding: 5px 8px;
    font-size: 16px;
    font-weight: 600;
    text-transform: capitalize;
}

#nav_menu a {
    text-decoration: none;
    background: transparent;
    transition: .125s color ease-in-out;
    color: var(--black);
}

#nav_menu a:hover,
#nav_menu a:focus,
#nav_menu .nav .open>a,
#nav_menu .nav .open>a:focus,
#nav_menu .nav .open>a:hover {
    background: transparent;
}

#nav_menu .caret {
    margin-left: .5ch;
}

#nav_menu .dropdown-menu {
    /* Dropdown menu  */
    font-size: 16px;
    padding: .3em 0.5em 0.3em;
    border: none;
    border-radius: 0;
    top: calc(100% + 0.5rem - 10px);
    left: auto;
    border-top: 10px solid transparent;
    text-transform: none;
}

#nav_menu .dropdown-menu a {
    text-decoration: none;
    background: transparent;
    transition: .125s background ease-in-out, .125s color ease-in-out;
    padding: .4em 1ch;
    font-weight: 500;
}


/* #nav_menu .dropdown-menu a:hover,
#nav_menu .dropdown-menu a:focus {
    background: var(--purple);
    color: white;
} */

#nav_menu .dropdown-menu:not(.men-level-):not(.men-level-0) {
    top: 0;
}

#nav_menu .dropdown-menu .men-level-1, 
#nav_menu .dropdown-menu .men-level-2 {
    left: 100%;
    margin-top: 0px !important;
}
#nav_menu .dropdown-menu .men-level-1 {
    top: -3px !important;
}

.search-icon {
    width: 1rem;
    position: relative;
    top: -.125rem;
}

@media (max-width: 1200px) {
    #nav_menu>ul {
        display: flex;
        justify-content: flex-start;
    }
    #nav_menu>ul>li>a,
    #nav_menu .dropdown-menu a {
        padding: .5em 1ch;
    }
}

@media (max-width: 900px) {
    #nav_menu>ul {
        gap: 0.5rem 1ch;
    }
    #nav_menu .dropdown-menu {
        left: 0;
    }
}

@media (max-width: 767px) {
    body>header {
        flex-direction: row;
        justify-content: space-between;
        padding: 10px 15px;
    }
    /* header .logo-link svg,
    header.scrolled .logo-link svg {

        width: 300px;
        height: auto;
        max-width: 100%;
    } */
}


/* Mobile menu trigger  */

.mobileMenuTrigger:not(.triggerClose) {
    border: none;
    padding: 0px 5px;
    color: var(--primary);
    transition: color .125s ease-in-out;
    display: inline-flex;
    border-radius: 5px;
    background: transparent;
    margin-left: 6px;
}

.mobileMenuTrigger:not(.triggerClose):hover,
.mobileMenuTrigger:not(.triggerClose):focus {
    color: var(--hover);
    outline: none;
}

.mobileMenuTrigger label {
    position: absolute;
    left: -666vw;
}

.mobileMenuTrigger button {
    font-size: 200%;
}

.menu-trigger {
    width: 30px;
}

@media (min-width: 992px) {
    .mobileMenuTrigger:not(.triggerClose) {
        display: none;
    }
}

svg#menu-trigger {
    width: 30px;
    height: 20px;
}


/* Login modal */

.modal-open .modal {
    display: flex;
}

.modal-dialog {
    max-width: 100%;
    font-size: 16px;
    margin: auto;
    width: 300px;
}

.modal-content {
    margin-top: 20px;
    border-radius: 0;
}

.modal-header,
.modal-body {
    padding: .5rem 1rem;
}

.modal-header .close {
    opacity: 1;
    z-index: 1;
    position: relative;
}

.modal h2 {
    font-size: 24px;
    margin-top: 0;
}

.modal-header,
.modal-body {
    padding: 1em 2ch;
}

.modal input[name="Username"],
.modal input[name="Password"] {
    width: 100%;
    padding-left: .25em;
    padding-right: .25em;
    margin-bottom: 0.5em;
    height: 2em;
    border: 1px solid rgba(68, 68, 68, .5);
}

.modal a {
    display: block;
    margin-bottom: .5em;
}


/*
--------------------------------------------------------------------------
 Main
--------------------------------------------------------------------------
 */

main {
    min-height: calc(100vh - 133.84px - 109.03px - 54.84px);
    position: relative;
}

main#mms-main {
    min-height: calc(100vh - 128px - 109.03px - 54.84px);
}

#subpage-main,
#mms-main {
    padding-top: 1rem;
    padding-bottom: 1rem;
    font-size: 18px;
}

#subpage-main:has(.background-heading:first-child) {
    padding-top: 0;
}

@media (min-width: 991px) {
    main:not(#mms-main)>.row:not(#slideshow-row):not(.background-heading) {}
}

main:not(#mms-main) .column {
    position: relative;
}

@media all and (min--moz-device-pixel-ratio:0) and (min-resolution: 3e1dpcm) {
    /* As of 9-20-23 support for :has is expected any time in Firefox, the only browser that does not support it. For the meantime, this media query is used to target only Firefox in order to put extra padding for the .button-links that need to be absolutely positioned to the bottom of their .column without covering it's contents that are close to it's bottom */
    main:not(#mms-main) .column:not(#slideshow-row .column),
    .news-item>div {
        padding: 30px 30px 60px;
    }
}

@media (max-width: 990px) {
    main:not(#mms-main) {}
}

@media (max-width: 767px) {
    main:not(#mms-main) .column:not(#slideshow-row .column):has(.button-link),
    .news-item>div:has(.button-link) {
        padding-bottom: calc(10px + 1em);
    }
}

@media (min-width: 767px) {
    #subpage-main .row,
    #homepage-main .row {
        /*These two styles can be tweaked if needed, but they are a handy default for spacing rows (and then columns once the screen hits the col-xs breakpoint on subpages*/
        margin-bottom: 2.5em;
    }
    div[class^="col"]+.col-md-12 {
        margin-top: 2em;
    }
}

@media(max-width: 1200px) {
    #homepage-main article>section,
    #subpage-main {
        padding: 3.5em 0;
    }
}

@media(max-width: 990px) {
    #homepage-main article>section,
    #subpage-main {
        padding: 2.5em 0;
    }
    .col-md-6.col-sm-12+.col-sm-12 {
        margin-top: 30px;
    }
}

@media (max-width: 900px) {
    #subpage-main:not(.full-background),
    #mms-main {
        margin-bottom: 2em;
    }
    main div[id^="section-"] {
        padding: 3.5em 0;
    }
}

@media (max-width: 767px) {
    #homepage-main article>section,
    #subpage-main {
        padding: 1.5em 0;
    }
    #subpage-main [class*="col-md"]+[class*="col-md"] {
        margin-top: 1rem;
    }
    #subpage-main div[class^="col-md"],
    #homepage-main div[class^="col-md"] {
        margin-bottom: 1em;
    }
    #homepage-main article>section {
        padding: 3em 0;
    }
}

@media (max-width: 450px) {
    #homepage-main article>section {
        padding: 2em 0;
    }
}


/*  Home Slideshow  ------------------------
    ----------------------------------------
 */

#slideshow-row.row {
    margin-bottom: 0px;
}

#slideshow-row .column {
    padding: 0;
}

#slideshow-row .carousel-indicators {
    text-align: center;
    bottom: 5px;
    top: auto;
    margin-bottom: 0px;
}

#slideshow-row img {
    width: 100%;
    max-height: 500px;
    object-fit: cover;
    max-width: 100%;
    object-position: top;
    background-position: center;
    background-size: cover;
}

#slideshow-row .carousel-caption {
    position: absolute;
    z-index: 100;
    background: transparent;
    left: auto;
    top: auto;
    right: 0px;
    bottom: 0px;
    width: 100%;
    text-align: center;
    text-shadow: none;
    padding: 20px 0 30px;
    margin: 0;
}

@media (max-width: 767px) {
    #slideshow-row .carousel-caption {
        position: relative;
        background: var(--grey);
        padding: 30px 0 25px;
    }
}

#slideshow-row .caption-wrapper {
    margin: auto calc((var(--side-margin) * -1) + 30px);
    color: white;
    line-height: 1.1;
    padding-right: 15px;
    padding-left: 15px;
}

#slideshow-row .carousel-inner .item:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    opacity: 1;
    z-index: 0;
    background-size: cover;
    background-position: center;
    overflow: hidden;
    min-height: 100vh;
    min-height: 100%;
    object-fit: cover;
    object-position: center;
    background-blend-mode: multiply;
    background: linear-gradient(180deg, transparent 65%, rgba(35, 31, 32, 0.9));
}

#slideshow-row .caption-text {
    font-size: 20px;
    font-family: inherit;
    font-weight: 600;
}

#slideshow-row .alt-text {
    color: #fff;
    font-size: 16px;
    font-weight: 300;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em 0;
}

#slideshow-row p+p:not(:empty) {
    margin-top: 0.6rem;
}

#slideshow-row .carousel-indicators li {
    width: 12px;
    height: 12px;
    margin: 0 auto;
    margin-left: 6px;
    background: #fff;
    border: 1px solid #fff;
}

#slideshow-row .carousel-indicators li.active {
    width: 12px;
    height: 12px;
    background: var(--green);
    border: 1px solid var(--green);
}

#slideshow-row .carousel-indicators li:first-child {
    margin-left: 0px;
}

#slideshow-row .button-link {
    padding: 0.6em 2.05ch 0.8em;
}


/*Welcome Section */

#welcome-news-wrap {
    padding-top: 3.5em;
    padding-bottom: 2em;
}

#welcome-section-wrap p {
    margin-bottom: 1.5em;
}

#welcome-section-wrap p:last-child {
    margin-bottom: 0;
}


/* Recent News Section */

#news-section-wrap h2 {
    margin-bottom: 1em;
}

.news-item-wrap {
    background: #fff;
    border: 1px solid #e6e6e6;
    padding: 1em;
    margin-bottom: 1.2em;
    cursor: pointer;
}

.news-item-wrap:hover {
    box-shadow: 0px 1px 10px rgb(0 0 0 / 10%);
}

a.news-title-link {
    color: var(--black);
    font-size: 17px;
    font-weight: 600;
}

a.news-title-link:hover,
a.news-title-link:focus {
    color: var(--green);
    text-decoration: underline;
}

#news-section-wrap:not(#gm-canvas #news-section-wrap) .button-link {
    font-weight: 700;
    color: var(--green);
    background: transparent;
    border: 0px;
    padding: 0;
    margin: 0;
    margin-top: 0.6em;
}

#news-section-wrap:not(#gm-canvas #news-section-wrap) .button-link:after {
    content: url(../images/arrow-right-icon.svg);
    width: 14px;
    height: 12px;
    display: inline-block;
    padding-left: 10px;
    position: relative;
    top: 0px;
}

@media (max-width: 991px) {
    #news-section-wrap {
        margin-top: 3.5em;
        margin-bottom: 0.5em;
    }
}


/* Upcoming Events Section */

#upcoming-events-wrap:not(#gm-canvas #upcoming-events-wrap) {
    position: relative;
    padding: 3.3em 50px 4em;
    margin-right: -65px;
    margin-left: -65px;
}

#upcoming-events-wrap:not(#gm-canvas #upcoming-events-wrap):before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    display: block;
    background-color: #f2f2f2;
    z-index: -1;
    left: 0;
    width: 100%;
    height: auto;
    opacity: 1;
    min-height: 100%;
    max-width: 100%;
    border-radius: 10px;
}

.events-wrapper:not(#mycanvas .events-wrapper) {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 2rem 30px;
    margin-top: 30px;
}

.event-content-wrap {
    display: flex;
    gap: 1.5em;
    align-items: center;
    background: transparent;
}

.event-content-wrap date {
    background: #e6e6e6;
    color: var(--text-color);
    text-align: center;
    width: 100%;
    max-width: 80px;
    height: 80px;
    align-items: center;
    display: flex;
    flex-direction: column;
    font-size: 35px;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 0.45em;
    border-radius: 8px;
}

.event-content-wrap date span {
    background: var(--green);
    font-size: 16px;
    font-weight: 500;
    color: var(--yellow);
    padding: 0.55em 0.5em 0.3em;
    width: 100%;
    max-width: 80px;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    height: 30px;
}

.event-content-wrap h3 {
    font-size: 17px;
    line-height: 1.5em;
}

.event-content-wrap h3 a.ev-title-link {
    color: var(--black);
}

.event-content-wrap h3 a.ev-title-link:hover {
    color: var(--green);
    text-decoration: underline;
}

#upcoming-events-wrap:not(#gm-canvas #upcoming-events-wrap) .button-link {
    font-weight: 700;
    color: var(--green);
    background: transparent;
    border: 0px;
    padding: 0;
    margin: 0;
    margin-top: 1.75em;
}

#upcoming-events-wrap:not(#gm-canvas #upcoming-events-wrap) .button-link:after {
    content: url(../images/arrow-right-icon.svg);
    width: 14px;
    height: 12px;
    display: inline-block;
    padding-left: 10px;
    position: relative;
    top: 0px;
}

@media (max-width: 991px) {
    .events-wrapper:not(#mycanvas .events-wrapper) {
        grid-template-columns: repeat(1, 1fr);
    }
}


/* Three box section */

#three-box-wrap:not(#gm-canvas #three-box-wrap) {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 0;
    padding: 2.2em 0px;
}

#three-box-wrap:not(#gm-canvas #three-box-wrap):before {
    display: none;
}

#three-box-wrap:not(#gm-canvas #three-box-wrap) .column {
    width: auto;
    display: flex;
}

#three-box-wrap:not(#gm-canvas #three-box-wrap) .col-content-wrap {
    width: 100%;
    height: auto;
    opacity: 1;
    overflow: hidden;
    min-height: 100%;
    object-fit: cover;
    object-position: center;
    background: var(--green);
    max-width: 100%;
    background-size: cover;
    background-position: center;
    border-radius: 10px;
    padding: 1.8em 1em 1.2em;
    color: #fff;
    text-align: center;
    transition: .125s background ease-in-out, .125s color ease-in-out;
    cursor: pointer;
}

#three-box-wrap:not(#gm-canvas #three-box-wrap) .col-content-wrap h4 {
    color: #fff;
    font-weight: 400;
    font-size: 20px;
}

#three-box-wrap:not(#gm-canvas #three-box-wrap) .col-content-wrap h4 a {
    color: #fff;
}

#three-box-wrap:not(#gm-canvas #three-box-wrap) .col-content-wrap h4 a:hover,
#three-box-wrap:not(#gm-canvas #three-box-wrap) .col-content-wrap h4 a:focus {
    text-decoration: none;
}

#three-box-wrap svg {
    margin-bottom: 0.8em;
}

#three-box-wrap svg#home-calendar-icon {
    width: 45px;
    height: 50px;
}

#three-box-wrap svg#home-educ-icon {
    width: 62px;
    height: 50px;
}

#three-box-wrap svg#home-recognition-icon {
    width: 40px;
    height: 50px;
}

@media (max-width: 480px) {
    #three-box-wrap:not(#gm-canvas #three-box-wrap) {
        display: block;
    }
    #three-box-wrap:not(#gm-canvas #three-box-wrap) .column {
        width: 100%;
        margin-bottom: 2em;
    }
}


/*  Announcements row ----------------------
    ----------------------------------------
 */

@media (min-width: 851px) {
    #homepage-main #slideshow-row+.row>.column {}
}

#homepage-main #announcement-row:not(.display) {
    display: none;
}


/*  Introduction row ----------------------
    ----------------------------------------
 */

#introduction-column p {
    font-size: 23px;
    font-weight: bold;
}


/* Event feed */

.event-item {
    display: flex;
    gap: 0.5rem 20px;
    font-size: 20px;
    padding: 1em 0;
}

.events-page-item {
    padding: 1em;
    display: flex;
    gap: 1em;
    flex-direction: column;
    font-size: 18px;
}

.events-page-item>div:first-child {
    display: inherit;
    gap: inherit;
    align-items: center;
    padding-bottom: 1em;
    /* margin-bottom: .5em; */
    border-bottom: 2px solid var(--purple);
}

.event-item>time,
.events-page-item>div:first-child>time {
    background: var(--blue);
    color: white;
    font-weight: bold;
    font-size: 24px;
    line-height: 1;
    border-radius: 50%;
    min-width: 76px;
    height: 76px;
    padding: calc((76px - 1em) / 2) 0;
    text-align: center;
    width: fit-content;
}

.events-page-item>div:last-of-type>time {
    margin-bottom: .5em;
    font-weight: bold;
}

.event-item h3 {
    font-size: 23px;
    margin-bottom: 5px;
}

.event-item time {
    display: block;
    text-transform: lowercase;
}

.event-item time>span:last-child:not(:empty)::before {
    /* If there is an end time add an em dash between the two spans */
    content: '—';
    display: inline-block;
    margin-right: 0.5ch;
}

.event-item *:empty {
    display: none;
}

#homepage-main .event-item+.event-item {
    border-top: 1px solid var(--yellow);
}


/*  CTA row -------------------------------
    ----------------------------------------
 */

#homepage-main #cta-row {
    display: flex;
    gap: 1rem 30px;
    /* flex-wrap: wrap; */
}

#homepage-main #cta-row .column {
    background: url('../images/pattern.webp');
    background-size: cover;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 186px;
    position: relative;
    transition: .125s transform ease-in-out;
}

#homepage-main #cta-row .column:hover,
#homepage-main #cta-row .column:focus {
    transform: scale(1.025);
}

#homepage-main #cta-row a {
    color: white;
    font-size: 36px;
    font-weight: bold;
    max-width: 170px;
    text-align: center;
    line-height: 1.2;
}

#homepage-main #cta-row a::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

#homepage-main #cta-row a:hover,
#homepage-main #cta-row a:focus {
    text-decoration: none;
}

@media (max-width: 800px) {
    #homepage-main #cta-row .column {
        min-height: 156px;
    }
    #homepage-main #cta-row a {
        max-width: unset;
        font-size: 26px;
    }
}

@media (max-width: 767px) {
    #homepage-main #cta-row {
        flex-direction: column;
    }
}


/*  News row -------------------------------
    ----------------------------------------
 */

main:not(#mms-main) #news-row>.column:not(#slideshow-row .column) {
    padding: 0;
    filter: unset;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(535px, 1fr));
    gap: 1rem 30px;
}

.news-item {
    overflow: hidden;
}

.news-item img {
    height: 235px;
    object-fit: cover;
    object-position: center;
    width: 100%;
}

.news-item h3 {
    font-size: 23px;
    border-bottom: 3px solid;
    padding-bottom: 0.5rem;
}

.news-item time {
    font-size: 18px;
    opacity: .7;
    margin: 1em 0;
    display: block;
    line-height: 1;
}

@media (max-width: 767px) {
    main:not(#mms-main) #news-row>.column:not(#slideshow-row .column) {
        display: flex;
        flex-direction: column;
    }
}


/*  Banner row------------------------------
    ----------------------------------------
 */


/*  Model row ------------------------------
    ----------------------------------------
 */

.model-list,
.focus-list {
    display: flex;
    list-style: none;
    justify-content: space-around;
    padding: 0;
    gap: 1rem 15px;
    margin-bottom: 2rem;
}

.model-list li,
.focus-list li {
    text-align: center;
    max-width: 160px;
    position: relative;
}

.model-list li+li::before {
    content: '';
    border-bottom: 2px dashed var(--yellow);
    display: block;
    width: 50%;
    position: absolute;
    top: 40%;
    right: 140%;
}

.model-list img,
.focus-list img {
    margin: auto;
    min-height: 125px;
    padding: 15px;
}

@media (max-width: 1200px) {
    .model-list li+li::before {
        right: 120%;
    }
}

@media (max-width: 990px) {
    .model-list li+li::before {
        right: 23vw;
        width: 20%;
    }
}

@media (max-width: 767px) {
    .model-list li+li::before {
        content: none;
    }
}

@media (max-width: 600px) {
    .focus-list,
    .model-list {
        flex-direction: column;
        margin: 0 auto 2rem;
        width: fit-content;
    }
}


/*  Subpages -------------------------------
    ----------------------------------------
 */


/* List styles */

.star-list>li {
    list-style-image: url('../images/I100_Icons_InnerStar_Lake_RGB.svg');
}


/* Page titles */

#page-title {
    background-image: url(../images/ATL-City-BG2-e1694113104823.png);
    background-size: cover;
    background-position: center;
    min-height: 290px;
    max-height: 40vh;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

#page-title::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: white;
    opacity: .25;
    z-index: 1;
}

#page-title h1 {
    --shadow-color: rgba(0, 0, 0, .75);
    font-size: 36px;
    margin: 0;
    color: white;
    text-align: center;
    width: fit-content;
    filter: drop-shadow(0px 1px 2px var(--shadow-color));
    border-bottom: 4px solid;
    padding: .25em .5ch;
    position: relative;
    z-index: 2;
}

#page-title:has(h1:empty) {
    display: none;
}


/* Background heading */

.background-heading {
    position: relative;
}

#subpage-main>.background-row:first-child,
#subpage-main>.background-heading:first-child {
    margin-top: 0;
    z-index: 1;
}

#subpage-main .background-heading::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: calc(100% - 260px);
    left: var(--side-margin);
    right: var(--side-margin);
    background: url(../images/pattern.webp);
    background-size: cover;
    background-repeat: no-repeat;
    display: block;
    z-index: -1;
}

#subpage-main .background-heading h1,
#subpage-main .background-heading h2 {
    text-align: center;
    width: fit-content;
    margin: 1em auto;
    color: white;
}

#subpage-main .background-heading>.column {
    color: white;
    text-align: center;
}

#subpage-main .background-heading+.row {
    margin-top: -3rem;
    z-index: 4;
    position: relative;
}


/* About page */

.board-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(195px, 1fr));
    list-style: none;
    gap: 1em 30px;
    padding: 0;
    color: var(--purple);
    text-align: left;
}

.board-list li {
    box-shadow: 3px 10px 20px -10px rgba(0, 0, 0, .25);
    overflow: hidden;
    border-radius: 5px;
    background: white;
    display: flex;
    flex-direction: column;
}

.board-list img {
    width: 100% !important;
    height: 175px!important;
    /* !important's needed to prevent someone from not removing width/height attributes when uploading */
    object-fit: cover;
    object-position: center;
}

.board-list li>div {
    padding: 1em;
    font-weight: bold;
    line-height: 1.1;
    display: flex;
    gap: 5px;
    flex-direction: column;
    padding-bottom: 5em;
    font-size: 16px;
    position: relative;
    height: 100%;
}

@media (min-width: 768px) {
    .board-list li>div {
        font-size: 14px;
    }
}

.board-list .name {
    border-bottom: 3px solid;
    padding-bottom: 5px;
    font-size: 18px;
}

.board-list button {
    background: none;
    border: none;
    padding: 0;
    color: var(--blue);
    width: fit-content;
    text-transform: uppercase;
    position: absolute;
    bottom: 1.5em;
    right: 1em;
}


/* Board list modals */

.board-list~.modal .modal-dialog {
    width: 600px;
    color: var(--purple);
    text-align: left;
}

@media (min-width: 768px) {
    .board-list~.modal .modal-dialog {
        font-size: 18px;
    }
}

.board-list~.modal .modal-content {
    border-radius: 6px;
}

.board-list~.modal .modal-header {
    border: none;
    padding: 30px 30px 1em;
}

.board-list~.modal .modal-body {
    padding: 0 30px 30px;
}

.board-list~.modal .name,
.board-list~.modal .title {
    font-weight: bold;
}

.board-list~.modal .name {
    font-size: 23px;
    padding-bottom: .5em;
    margin-bottom: .5em;
    border-bottom: 3px solid;
}

.board-list~.modal .title {
    margin-bottom: 1em;
}

#subpage-main .details-row {
    margin: -1rem -30px 1rem;
    font-style: italic;
}

@media (min-width: 768px) {
    #subpage-main .details-row {
        font-size: 14px;
    }
}


/* Events page */

#subpage-main #events-row {
    padding-left: 15px;
    padding-right: 15px;
}

#subpage-main:not(#foo)>#events-row:not(#foo):not(#bar) {
    /* I seriously hate how :not jacks up the specificity of a selector. It should have no effect */
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(275px, 1fr));
}

#subpage-main>#events-row::before,
#subpage-main>#events-row::after {
    content: none;
}

#subpage-main #events-row>.column {
    /* Get rid of filter, border-radius and background-color applied to most .columns */
    display: contents;
}

#events-row .event-item {
    filter: drop-shadow(3px 10px 20px rgba(0, 0, 0, .25));
    border-radius: 0.375rem;
    background-color: white;
}


/* Contact row */

#contact-row .wrapper {
    max-width: var(--page-width) !important;
}

#contact-row .wrapper>.row {
    margin-bottom: 0 !important;
}

#subpage-main #contact-row .wrapper>.row>.column {
    color: white;
    background: none !important;
    filter: unset !important;
}

#subpage-main #contact-row h2 {
    color: white;
}

#contact-row .grecaptcha-badge,
[action="contact_form_resp.php"] .grecaptcha-badge {
    /* There is a style inside the iframe which can't be overwritten and makes the badge jump around when hovered. Sorry Alphabet. */
    display: none !important;
}


/* Contact form */

#contact-row form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem 30px;
}

#contact-row input {
    background: none;
    border: 0;
    border-bottom: 1px solid white;
    border-radius: 0;
    box-shadow: none;
    padding: 1em;
    height: unset;
    color: white;
    font-size: 18px;
    font-weight: normal;
}

#contact-row input::placeholder {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
}

#contact-row .col-sm-offset-2,
#contact-row .form-group {
    display: contents;
}

#contact-row .button-link {
    position: relative !important;
    top: unset !important;
    bottom: unset !important;
    left: unset !important;
    right: unset !important;
    font-size: 14px;
    margin: 0 !important;
    width: fit-content;
    grid-row: 2/3;
    grid-column: 2/3;
    height: fit-content;
    margin-top: auto !important;
}


/* Membership FAQs */

#membership-faqs {
    position: relative;
    z-index: 4;
    margin-top: -30px;
}

#membership-faqs .panel-default,
#membership-faqs .panel-heading,
#membership-faqs .panel-title {
    display: contents;
}

#subpage-main #membership-faqs a {
    display: flex;
    gap: 2ch;
    justify-content: space-between;
    align-items: center;
    color: var(--purple);
    line-height: 1.5;
    font-size: 20px;
}

#subpage-main #membership-faqs a::after {
    content: '+';
    font-size: 20px;
    line-height: 1;
    transition: .125s transform ease-in-out;
}

#membership-faqs .panel-body {
    padding: 0;
    padding-top: 1em;
}

#membership-faqs:has(.in) a::after {
    transform: rotate(45deg)
}


/* Contact page */

.icon-wrapper {
    display: grid;
    gap: 1ch;
    align-items: center;
    grid-template-columns: 40px 1fr;
    margin-bottom: 1em;
}

.icon-wrapper img {
    margin: auto;
}

.icon-wrapper address {
    margin: 0;
    line-height: 1.2;
}

#subpage-main #contact-info-column .social-list {
    position: absolute;
    bottom: 30px;
    right: 30px;
}

#contact-info-column .social-list svg {
    background: var(--blue);
    border-radius: 50%;
}

[action="contact_form_resp.php"] [class*="col-"] {
    display: contents;
}


/* Serves row */

#subpage-main #serves-row {
    position: relative;
    padding: 60px 30px;
    margin-bottom: -1em;
}

#subpage-main #serves-row::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--side-margin);
    right: var(--side-margin);
    background-image: url('../images/atl-map.png');
    background-size: cover;
    display: block;
}

main:not(#mms-main) #serves-row h2 {
    font-size: 25px;
    border: none;
}

#serves-row em {
    font-size: 23px;
}


/*  Grid Page Editor workarounds -----------
----------------------------------------
 */


/*  Footer -------------------
    ----------------------------------------
 */

footer {
    position: relative;
    color: white;
    padding: 2.6rem 15px;
}

footer::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--side-margin);
    right: var(--side-margin);
    display: block;
    z-index: -1;
    background: #3d3d3d;
}

.top-footer-inner {
    display: flex;
    justify-content: space-between;
}

.top-footer-inner p {
    margin: 0;
}


/* Footer elements */

footer h2 {
    color: white;
    font-size: 1rem;
    text-transform: uppercase;
    margin-bottom: .5rem;
}

footer address {
    margin: .5rem 0;
}

footer ul {
    padding: 0;
    margin: 0;
    list-style-type: none;
}

footer a,
footer a:hover,
footer a:focus,
.bottom-footer-wrap a,
.bottom-footer-wrap a:hover,
.bottom-footer-wrap a:focus {
    color: white;
    text-decoration: underline;
}


/* Footer logos */

footer .logo {
    height: 27.8px;
    width: 200px;
    display: block;
}

footer #global-section .cls-2 {
    display: none;
}

footer .social-list path {
    fill: var(--yellow) !important;
}

footer span.footer-privacy {
    border-left: 1px solid #fff;
    margin-left: 10px;
    padding-left: 10px;
}


/* Footer links */

.footer-links a {
    display: block;
    width: fit-content;
    position: relative;
    margin-bottom: .25rem;
}

.footer-links a::before {
    content: '';
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -2px;
    height: 2px;
    background: white;
    display: block;
    transition: .125s right ease-in-out;
}

.footer-links a:hover::before,
.footer-links a:focus::before {
    right: 0;
}


/* Footer social list */

section.bottom-footer-wrap {
    position: relative;
    color: white;
    padding: 1rem 15px;
}

section.bottom-footer-wrap::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--side-margin);
    right: var(--side-margin);
    display: block;
    z-index: -1;
    background: var(--black);
}

section.bottom-footer-wrap p {
    margin: 0;
}

@media (max-width: 767px) {
    footer {
        padding-bottom: 2em;
    }
    .top-footer-inner {
        flex-direction: column;
        align-items: center;
        gap: 1em;
        text-align: center;
    }
    section.bottom-footer-wrap {
        text-align: center;
    }
}