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

:root {
    font-size: 16px;
    font-family: 'Onest', sans-serif;
    --red: #9D1535;
    --blue: #114D89;
    --litegray: #3D454C;
    --darkgray: #2C3338;
    --side-margin: calc((100vw - var(--page-width) + 13px) / -2);
    overflow-x: hidden;
    scroll-margin-top: 117px;
    --header-height: 165px; /* see the mq for main for the changes to this variable */
    --footer-height: 294px;
}

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

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

@media (max-width:990px) {
     :root {
        --side-margin: 0px;
    }
}

body {
    overflow-x: hidden;
}


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

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

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: bold;
}

h1 {
    font-size: 36px;
}

h2 {
    font-size: 30px;
    color: var(--blue);
}

h3 {
    font-size: 28px;
}

h4 {
    font-size: 24px;
}

h5 {
    font-size: 22px;
}

h6 {
    font-size: 20px;
}

main:not(#mms-main) h2 {
    border-bottom: 3px solid currentColor;
    padding-bottom: .25em;
    padding-top: 1rem;
}

main:not(#mms-main) h1 {
    padding-bottom: .25em;
    padding-top: 1rem;
}

@media (max-width: 767px) {
    main:not(#mms-main) h1,
    main:not(#mms-main) h2 {
        font-size: 25px;
    }
}


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

a {
    color: var(--darkgray);
    text-decoration: underline;
    font-weight: bold;
    transition: .125s color ease-in-out;
    scroll-margin-top: 117px;
}

a:hover,
a:focus {
    text-decoration: none;
    color: var(--red);
}

[id] {
    scroll-margin-top: 117px;
  }

.button-link,
input[type="submit"]:not(#mms-main, .search-button, input),
.mobile-login button {
    /* :not exception needed to avoid messing with all sorts of different buttons in the MMS  */
    background: var(--blue);
    padding: .5em 2.5ch;
    display: inline-block;
    text-decoration: none;
    color: white;
    border-radius: 2px;
    margin-right: 2ch;
    font-weight: 600;
    transition: .125s background-color ease-in-out, .125s color ease-in-out;
}

.top-header .button-link:not(.join.button-link) {
    background-color: var(--blue);
    border-radius: 2px;
    padding: .5em 2.5ch;
}

.join.button-link {
    background-color: var(--red);
    border-radius: 2px;
    padding: .5em 2.5ch;
}

.join.button-link:hover,
.join.button-link:focus {
    text-decoration: none;
    background-color: var(--blue);
    color: white;
}

main:not(#mms-main) .button-link:not(#slideshow-row, .button-link) {
    position: absolute;
    bottom: 0;
    right: 30px;
    margin-bottom: 30px;
    margin-right: 0;
}

a.button-link:hover,
a.button-link:focus,
.top-header .button-link:not(.join.button-link):hover,
.top-header .button-link:not(.join.button-link):focus {
    background: var(--red);
    color: white;
}

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

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

.mobile-button-link,
.mobile-login-link {
    background: var(--red);
    padding: .5em 2.5ch;
    display: block;
    color: white;
    border-radius: 2px;
    position: relative;
    text-align: center;
    text-shadow: none;
    font-weight: 600;
    font-size: inherit;
    border: 2px solid white;
    transition: .125s background ease-in-out, .125s color ease-in-out;
    margin-bottom: 1em;
}

.mobile-button-link:hover,
.mobile-button-link:focus,
.mobile-login-link:hover,
.mobile-login-link:focus {
    background: var(--blue);
}


/*
--------------------------------------------------------------------------
 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);
}

@media (max-width: 990px) {
    .wrapper {
        padding-left: 15px;
        padding-right: 15px;
    }
}

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

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

.background-row:not(#mycanvas .background-row) {
    background: url(../images/pattern.webp);
    background-size: cover;
    padding: 1rem;
    position: relative;
    left: var(--side-margin);
    right: var(--side-margin);
    width: calc(100vw + 13px);
    display: flex;
}

.background-row:not(#mycanvas .background-row)>.column {
    background: transparent !important;
    font-size: 32px;
    color: white;
    text-align: center;
    font-weight: bold;
    max-width: 800px;
    margin: auto;
    line-height: 1.3;
}

#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 (max-width: 767px) {
    .background-row:not(#mycanvas .background-row)>.column {
        font-size: 22px;
        width: 550px;
        max-width: 100%;
        transform: translateX(-15px);
    }
}

.row-background:not(#mycanvas .row-background) {
    position: relative;
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
    padding-left: 15px;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 30px;
}

.row-background:not(#mycanvas .row-background):last-child {
    padding-top: 3.5rem;
    padding-bottom: 4.5rem;
}

.row-background:not(#mycanvas .row-background)::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: -666vw;
    right: -666vw;
    display: block;
    background-color: var(--litegray);
    opacity: .25;
}

.row-background:not(#mycanvas .row-background)>.column {
    background: white;
    padding: 1.5rem 30px;
    border-radius: 5px;
}

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

@media (max-width: 990px) {
    .container,
    .wrapper {
        /* Extra wiggle room at a breakpoint that needs it  */
        width: 100%;
    }
    .full-width,
    .background-row {
        --side-margin: -15px;
        left: var(--side-margin);
        right: var(--side-margin);
        width: calc(100vw + 30px);
    }
    .row-background:not(#mycanvas .row-background) {
        padding-right: 15px;
    }
    .row-background::before {
        left: 0;
        right: 0;
    }
}

@media (max-width: 767px) {
    .row-background {
        padding-top: 1rem;
        padding-bottom: 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(--secondary);
}

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 {
    border-radius: 2px;
    display: flex;
    gap: 2em;
}

.news-column>.feed-item {
    outline: 1px solid #e6e6e6;
    padding: 5px;
}

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


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

.feed-item img {
    width: 300px;
}


/* 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: 5px;
    padding: 0;
    margin: 0;
    justify-content: flex-end;
    margin-top: 1em;
}

header .social-list::before {
    content: 'Follow us ';
    color: white;
    margin-top: -3px;
}

.social-list svg {
    border: none;
    background: transparent;
    color: white;
}

.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: white;
    transition: left 300ms cubic-bezier(1.000, 0.010, 0.0, 1.000);
    color: white;
}

#mobileMenuWrapper.open {
    left: 0;
}

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

#mobile-menu li {
    margin-bottom: 1em;
}

.triggerClose {
    text-align: right;
}

#mobile-menu button {
    border: none;
    background-color: transparent;
}

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

#mobileMenuWrapper #mobile-menu a {
    display: inline-block;
    width: 100%;
    margin-bottom: .75em;
}

#mobileMenuWrapper #mobile-menu a:hover,
#mobileMenuWrapper #mobile-menu a:focus {
    text-decoration: underline;
}

#mobileMenuWrapper .mDropdown {
    display: none;
    list-style: none;
    padding: 0;
    background: none;
    border-top: 2px solid var(--yellow);
    border-bottom: 2px solid var(--yellow);
    padding-top: .75em;
    margin-bottom: .75em;
}

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

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

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

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

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

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


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

.top-header {
    margin: 0% 5%;
}

.top-right-section {
    text-align: right;
}

.top-right-section>* {
    display: inline-block;
    vertical-align: middle;
    margin-top: 0.9em;
    margin-right: 0.8em;
}

.top-right-section>*:last-child {
    margin-right: 0px;
}

@media (max-width: 991px) {
    .top-header,
    .top-right-section {
        text-align: center;
        margin-bottom: 1em;
    }
}

@media (min-width: 768px) and (max-width: 990px) {
    .top-right-section>* {}
}

@media (max-width: 767px) {
    header {
        margin-left: 0;
        text-align: center;
    }
}

body>header {
    /*display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;*/
    position: fixed;
    top: 0;
    background: white;
    z-index: 101;
    /*box-shadow: 3px 10px 20px -10px rgba(0, 0, 0, .25);*/
    transition-duration: .125s;
}

body>header.scrolled {
    gap: 10px;
    transition: .25s gap ease-in-out;
    transition-delay: .125s;
}

header>section {
    background: var(--blue);
    display: flex;
    justify-content: space-between;
    padding: 5px 50px;
    align-items: center;
    width: 100%;
}

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

header>section ul {
    display: flex;
    gap: 2ch;
    text-transform: uppercase;
    font-weight: bold;
    font-size: 14px;
}

header>section .social-list {
    margin-bottom: -5px;
}

.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;
}

svg.logo {
    margin-top: 10px;
    overflow: unset !important;
    vertical-align: initial;
}

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

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


/* Desktop menu  */

nav {
    width: 100vw;
    display: flex;
    background: var(--darkgray);
    justify-content: center;
}

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

#nav_menu>ul {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    justify-content: space-between;
    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;
    text-transform: capitalize;
    font-size: 17px;
    font-weight: 600;
}

#nav_menu>ul>li>a::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 100%;
    transition: .125s right ease-in-out;
    height: 3px;
    background: #6B7580;
}

#nav_menu>ul>li>a:hover::before,
#nav_menu>ul>li>a:focus::before {
    right: 0;
}

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

#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: 14px;
    padding: .5em 1ch 1em;
    border: none;
    border-radius: 0;
    top: auto;
    left: -50%;
    border-top: 10px solid transparent;
    background: var(--darkgray);
}

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

#nav_menu .dropdown-menu a:hover,
#nav_menu .dropdown-menu a:focus {
    text-decoration: underline;
}


/*#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%;
    top: 0%;
    margin-top: 0px;
}

nav.navbar.navbar-default {
    width: 100%;
}


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

.searchbox {
    position: relative;
    padding: 5px 1ch;
    /* outline: 1px solid #e6e6e6; */
    transition: .125s outline ease-in-out;
    overflow: hidden;
}

#mobile-menu .searchbox {
    width: 100%;
}

.search-button {
    border: none;
    background-image: url(../images/search-icon.svg?fc=f15b5f);
    position: absolute;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 15px;
    transition: .125s background-image ease-in-out;
    top: 0;
    bottom: 0;
    width: 30px;
    right: 0;
    background-color: transparent;
    padding: 0;
}

#mobile-menu .search-button {
    width: 30px;
    padding: 0;
    top: 2px;
}

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

form.searchbox {
    width: 200px;
    max-width: 100%;
    color: #000;
    position: relative;
    padding: 5px 0.5ch;
    border: 2px solid #000;
    border-radius: 0px;
    height: 32px;
    max-height: 32px;
    overflow-y: hidden;
    transition: all .25s ease-in-out;
    margin-left: auto;
    outline: none;
}

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

@media (min-width: 1170px) and (max-width: 1215px) {
    form.searchbox {
        width: 180px;
    }
    .top-header a.button-link,
    .top-header .button-link:not(.join.button-link) {
        padding: .4em 1.3ch;
        margin-right: 0.5ch;
        font-weight: 400;
    }
}

@media (min-width: 992px) and (max-width: 1170px) {
    form.searchbox {
        width: 160px;
    }
    .top-header a.button-link,
    .top-header .button-link:not(.join.button-link) {
        padding: .4em 1.3ch;
        margin-right: 0.5ch;
        font-weight: 400;
    }
}

@media (max-width: 1200px) {
    #nav_menu>ul {
        display: flex;
        justify-content: space-between;
    }
    #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>section {
        display: none;
    }
    header .logo-link svg,
    header.scrolled .logo-link svg {
        /* No resizing when scrolled */
        width: 300px;
        height: auto;
        max-width: 100%;
    }
}


/* Mobile menu trigger  */

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

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

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

.mobileMenuTrigger button {
    font-size: 150%;
    color: var(--darkgray);
}

.menu-trigger {
    width: 30px;
    color: white;
}

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


/* 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 - var(--header-height) - var(--footer-height));
    position: relative;
    padding-top: 6rem;
    margin-bottom: 3em;
}

main:not(main#homepage-main) {
    margin-top: 171px;
    padding-top: 0px;
}
/* fixed header adjustments for page content */
@media (min-width: 991px) and (max-width: 1201px) {
    main:not(main#homepage-main) {
        --header-height: 172px;
        --footer-height: 317px;
        margin-top: 178px;        
    }
}
@media (min-width: 808px) and (max-width: 991px) {
    main:not(main#homepage-main) {
        --header-height: 241px;
        --footer-height: 317px;
        margin-top: 247px;        
    }
}
@media (min-width: 767px) and (max-width: 808px) {
    main:not(main#homepage-main) {
        --header-height: 287px;
        --footer-height: 317px;
        margin-top: 293px;        
    }
}
@media (max-width: 767px) {
    main:not(main#homepage-main) {
        --header-height: 159px;
        margin-top: 165px;        
    }
}

@media (min-width: 605px) and (max-width: 767px) {
    main:not(main#homepage-main) {
        --footer-height: 317px;
    }
}
@media (min-width: 467px) and (max-width: 605px) {
    main:not(main#homepage-main) {
        --footer-height: 318px;
    }
}
@media (min-width: 402px) and (max-width: 467px) {
    main:not(main#homepage-main) {
        --footer-height: 384px;
    }
}
@media (max-width: 402px) {
    main:not(main#homepage-main) {
        --footer-height: 407px;
    }
}

#subpage-main,
#mms-main {
    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) {
        /* display: flex;
        gap: 1rem 30px;*/
        /* this applied to system pages that aren't mms pages like the thank you page for the contact form, change to use more specific targeting if it is needed.*/
    } 
}

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

main:not(#mms-main) .column:not(#slideshow-row .column):not(.background-heading .column):not(.details-row .column),
.news-item {
    /*filter: drop-shadow(3px 10px 20px rgba(0, 0, 0, .25));*/
    border-radius: 2px;
    background-color: white;
}

main:not(#mms-main) .column:not(#slideshow-row .column):not(.details-row .column),
.news-item>div {
    padding: 30px 30px 0px 30px;
}

main:not(#mms-main) .column:not(#slideshow-row .column):not(.details-row .column):has(.button-link),
.news-item>div:has(.button-link),
.events-page-item>div:last-of-type {
    padding-bottom: 60px;
}

@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(60px + 1em);
    }
}

@media (min-width: 767px) {
    #subpage-main .row:last-child,
    #homepage-main .row:not(#slideshow-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) {
    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;
    }
}

@media (max-width: 450px) and (min-width: 200px) {
    #mms-main {
        margin-top: 0;
    }
}


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

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

#slideshow-row .carousel-indicators {
    text-align: right;
    bottom: unset;
    top: 10px;
}

#slideshow-row img {
    width: 100%;
}

#slideshow-row .carousel-caption {
    bottom: 35%;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    background: rgba(0, 0, 0, .5);
}

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


/*@media (min-width: 871px) {
    #slideshow-row .caption-wrapper {
        max-width: 485px;
    }
}*/

#slideshow-row .caption-text {
    font-size: 46px;
    font-size: clamp(24px, calc(4vw - 20px), 30px);
}

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

#slideshow-row .button-link:hover,
#slideshow-row .button-link:focus {
    background: white;
}

@media (max-width: 1100px) {
    #slideshow-row p+p:not(:empty) {
        margin-top: 1rem;
    }
}

@media (max-width: 850px) {
    #slideshow-row .carousel-caption {
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        display: flex;
        text-align: left;
    }
    #slideshow-row .carousel-caption {
        position: relative;
        background: rgba(0, 0, 0, .75);
        color: white;
    }
    #slideshow-row .caption-text {
        font-size: 22px;
    }
}


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

@media (min-width: 851px) {
    #homepage-main #slideshow-row+.row>.column {
        margin-top: -120px;
        position: relative;
        background: white;
    }
}

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


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

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


/* Event feed */

.event-column {
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.event-column>.feed-item {
    border-bottom: 1px solid #e6e6e6;
}

.event-entry:last-child {
    border-bottom: none;
}

.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;
}

.event-column>.feed-item>time,
.events-page-item>div:first-child>time {
    background: #E5E8EA;
    font-weight: bold;
    font-size: 24px;
    line-height: 1;
    border-radius: 2px;
    min-width: 76px;
    height: 76px;
    padding: 15px;
    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;
}

@media (max-width: 450px) {
    .event-desc {
        display: none;
    }
}

.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 -------------------------------
    ----------------------------------------
 */

#cta-row:not(.gm-editing)::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--side-margin);
    right: var(--side-margin);
    display: block;
    background-color: #E8EDEF;
    z-index: -1;
}

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

#cta-row div {
    margin-bottom: 2em;
}

#homepage-main #cta-row .column {
    display: flex;
    flex-direction: column;
    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-column {
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.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-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.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;
    }
}

@media (max-width: 767px) {
    .news-column>.feed-item {
        flex-direction: column;
    }
    .feed-item img {
        width: 100%;
    }
}


/*  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;
}

#subpage-main>.row:first-child {
    margin-top: -60px;
    z-index: 3;
    position: relative;
}


/* 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;
    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;
    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;
    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;
    display: grid;
}

.top-footer {
    background: var(--litegray);
    min-height: 175px;
    padding: 53px 0px;
}

.footer-address {
    display: flex;
    gap: 10px;
}

.bottom-footer {
    background: var(--darkgray);
    min-height: 75px;
    padding: 27px 0px;
}

@media (min-width: 991px) {
    .section-wrapper {
        display: contents;
    }
}

@media (min-width: 991px) {
    footer>section:nth-of-type(1),
    #global-section {
        grid-column: 1/3;
    }
    .credit-section {
        grid-column: 3/6;
        text-align: right;
    }
}

#global-section {
    position: relative;
}

#global-section a::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 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 .social-list {
    gap: 1.5em;
    flex-wrap: wrap;
}

footer a {
    color: white;
}

footer a:hover,
footer 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 path {
    fill: white !important;
}


/* Footer social list */

footer .social-list svg {
    background: transparent;
    transition: .125s background ease-in-out;
}

footer .social-list a:hover svg {
    border: 1px solid white;
}

footer .social-list path {
    fill: white !important;
}


/* MMS Styles */

.main-admin-navbar {
    display: block;
    width: 100%;
}

div.field_border#apg_aux_admin_ml_9,
div.field_border#apg_aux_admin_ml_10 {
    border: 5px solid var(--red);
}

/* added to fix buttons on members/projects_view.php */
.form-control {
    height: fit-content;
}