button:focus-visible,
.btn:focus-visible,
a.btn:focus-visible,
a.podcast-link:focus-visible img,
.blog-teaser-item:focus-visible,
a.link-list-item:focus-visible,
.header-search-content button[type=submit]:focus-visible,
a.footer-social:focus-visible,
a.navigation-social:focus-visible { 
    outline: 3px solid #312e51 !important;
    outline-offset: 3px;
    box-shadow: 0 0 0 4px rgb(49 46 81 / 40%);
}

a:focus-visible {
    text-decoration: underline!important;
}

.wpcf7 textarea:focus,
.wpcf7 select:focus,
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus {
    border: 2px solid #312e51 !important;
}

.wpcf7 label {
    display: block;
    max-width: 100%;
    margin-top: .5rem;
    font-weight: normal;
    text-align: left;
}

.contactform-section form .select-container:after {
    display: none;
}

.contactform-section form .select-container span:after {
    content: "";
    position: absolute;
    right: 10px;
    width: 20px;
    height: 20px;
    top: 2.75rem;
    transform: translateY(-50%);
    background-image: url(assets/icons/plus.svg);
    background-repeat: no-repeat;
    background-position: 50%;
    background-size: contain;
    pointer-events: none;
}

.contactform-section form select {
    color: black;
}

.isJumpy section.heroshot-section, .isJumpy .page-container, .home section, .home footer, .isSnappy section, .isSnappy footer {
    scroll-snap-align: none!important;
}

.home section:not(.contactform-section,.map-section), .isSnappy section:not(.contactform-section,.map-section) {
    min-height: auto!important;
}

.video-control-button {
    border: none;
    border-radius: 50%;
    background: transparent;
    position: absolute;
    bottom: 1rem;
    right: 1rem;
    opacity: .75;
    z-index: 200;
    padding: 0;
    margin: 0;
    display: flex
;
}

.video-control-button:hover {
    opacity: 1;
}

.btn:not(.btn-link):not(.btn-download) {
    background-color: #312e51 !important;
    background-image: none !important;
    color: white;
}

.btn:not(.btn-link):not(.btn-download):focus-visible {
    color: white!important;
}

button.header-search {
    background-color: rgba(0, 0, 0, 0);
    border: none;
    display: flex;
    justify-content: center;
    align-items: center;
}

.accordion-section .accordion .accordion-item button.accordion-item-header {
    border: none;
    background: transparent;
    width: 100%;
    text-align: start;
    display: inline-block;
    font-family: "AssistantBold", sans-serif;
    font-size: 22px;
    line-height: 30px;
    margin: 0;
    padding-top: 30px;
    padding-bottom: 30px;
    padding-left: 18px;
    padding-right: 18px;
}

.header-search-container .header-search-content .h3 {
    width: 100%;
    font-size: 50px;
    line-height: 58px;
    font-family: "AssistantBold", sans-serif;
    color: #312e51;
    margin: 0 0 34px;
}

.header-search-container .header-search-content input[type=search] {
    padding: 10px;
    font-size: 26px;
    line-height: 46px;
    border: none;
    border-radius: 0;
    margin-right: 4px;
    vertical-align: top;
    flex-grow: 1;
}

.header-search-container .header-search-content button[type=submit] {
    font-size: 20px;
    line-height: 24px;
    padding: 21px 26px;
    border-radius: 0;
    font-family: "AssistantBold", sans-serif;
    color: #fff;
    background-color: #56af31;
    border: none;
    margin-right: 4px;
    vertical-align: top;
    transition: color .3s, background-color .3s;
    border: none;
}

.map-section .map-overlay .h3 {
    font-size: 24px !important;
    line-height: 36px !important;
    margin-top: 0px !important;
    font-family: "AssistantExtraBold", sans-serif;
    text-transform: uppercase;
    margin-bottom: 24px;
}

.back-to-top {
    border: none;
    background: transparent;
    padding: 0;
}

@media (min-width: 48rem) {
    .map-section .map-overlay .h3 {
        font-size: 32px !important;
    }
}