:root {
    --banner-size: 4.5rem;
}

html {
    overflow-x: hidden;
}
body {
    position: relative;
    width: 100vw;
    min-height: 100vh;
    background: var(--color00, white);
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    padding-top: 4.25rem;
}
main {
    flex-grow: 1;
}


a {
    color: black;
    text-decoration: none;
}
a:not(.btn):hover {
    color: #00000080;
    text-decoration: underline;
}
a:not(.btn):hover svg path {
    fill: #00000080 !important;
}

.flex-grow {
    flex-grow: 1;
}

#mainHeader {
    top: 0;
    position: fixed;
    border-bottom: 1px solid black;
    background: inherit;
    height: 4.25rem;
    z-index: 1051;
    transform: translateY(-120%);
}

#mainHeader.slide, body.mobile-toggled #mainHeader, #mainHeader.slide ~ #mobileToggle, body.mobile-toggled #mobileToggle {
    transform: translateY(0);
    transition: .25s;
}
body:not(.mobile-toggled) #mainHeader.out, body:not(.mobile-toggled) #mainHeader.out ~ #mobileToggle {
    transform: translateY(-120%);
    transition: .25s;
}

#mainHeader.top {
    position: absolute;
    transform: none;
}
#mainHeader.top ~ #mobileToggle {
    position: absolute;
    right: 0;
    transform: none;
}

#scrollToTop {
    display: none;
    pointer-events: none;
    transform: translateY(calc(100% + 3rem));
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    height: 4.5rem;
    width: 4.5rem;
    background: var(--color1, lightblue);
    border-radius: 50%;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: .25s;
}
@media (max-width: 768px) {
    #scrollToTop {
        right: calc(50% - 2.25rem);
    }
}
#scrollToTop.will-use {
    display: flex;
    pointer-events: all;
}
#scrollToTop.show {
    transform: translateY(0);
}
#scrollToTop:hover {
    height: 5rem;
    width: 5rem;
    box-shadow: 4px 4px 4px #00000050;
}
#scrollToTop::before {
    content: "";
    display: block;
    height: 1.5rem;
    width: 1.5rem;
    border-top: 4px solid white;
    border-left: 4px solid white;
    rotate: 45deg;
}
#scrollToTop::after {
    content: "To Top";
    color: white;
    font-size: 8pt;
    margin-top: -6px;
}

.image-break {
    position: relative;
    width: 100%;
    max-height: 28rem;
    overflow: hidden;
}
.cover-image {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

#mobileMenu {
    width: 21rem;
    max-width: 80vw;
    top: 4.25rem;
    height: fit-content;
    max-height: calc(100vh - 4.25rem);
    border: 1px solid black;
    border-top: none;
    border-right: none;
    border-radius: 0 0 0 3px;
}
#mobileMenu ul {
    padding: 0;
}
#mobileMenu li {
    list-style: none;
    margin: 1.5rem 0;
}

#mobileToggle {
    position: fixed;
    top: 0;
    right: 0;
    height: calc(4.25rem - 1px);
    width: 4.25rem;
    z-index: 11;
    background: white;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1052;
    transform: translateY(-120%);
}
#mobileToggle .bar {
    position: absolute;
    width: 2.5rem;
    height: 6px;
    background: var(--color1, lightblue);
    transition: .25s;
}
#mobileToggle .bar-1 {
    margin-top: -1rem;
}
#mobileToggle .bar-2 {
    margin-top: 1rem;
}

@media (min-width: 992px) {
    #mobileMenu, #mobileToggle {
        display: none;
    }
}

.mobile-toggled #mobileToggle, .mobile-toggled #mainHeader {
    z-index: 1051;
}
.mobile-toggled #mobileToggle .bar-1, .mobile-toggled #mobileToggle .bar-2 {
    margin: 0;
    transform: rotate(45deg);
}
.mobile-toggled #mobileToggle .bar-2 {
    transform: rotate(-45deg);
}

#mainHeader #branding {
    position: relative;
    height: 100%;
}
#mainHeader #branding #brandingLink, #mainHeader #branding #brandingLink:visited {
    position: relative;
    display: block;
    height: 100%;
    padding: .5rem;
    width: fit-content;
    min-width: 4.25rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    text-decoration: none;
    color: var(--color1, black);
}
#mainHeader #branding img {
    position: relative;
    height: 100%;
    top: 50%;
    transform: translate(0, -50%);
}
.branding-text {
    font-weight: bold;
    font-size: 18pt;
    margin: 0;
    margin-left: 8px;
    color: var(--color1, lightblue);
}
@media (max-width: 576px) {
    #mainHeader .branding-text {
        font-size: 5vw;
    }
}
a.branding-link:hover {
    text-decoration: none !important;
}

#subscribeForm .modal-body {
    height: 320px;
    overflow-y: auto
}
@media (max-width: 768px) {
    #subscribeForm .modal-body {
        height: 400px;
    }
}

#headerNav {
    position: relative;
    padding: 12px 18px 12px 12px;
    z-index: 1;
}

#headerNav .selector {
    display: block;
    position: absolute;
    height: 2px;
    width: 9rem;
    background: var(--color1, black);
    bottom: 9px;
    right: calc(11rem + 8px);
    transition: .25s;
}
#headerNav ul li:nth-child(1).active ~ .selector {
    right: calc(42rem + 6px);
}
#headerNav ul li:nth-child(2).active ~ .selector {
    right: calc(32rem + 2px);
}
#headerNav ul li:nth-child(3).active ~ .selector {
    right: calc(21.5rem + 5px);
}
#headerNav ul {
    display: flex;
    flex-direction: row;
    margin: 0;
}
#headerNav li {
    position: relative;
    list-style: none;
    margin-left: 18px;
    align-items: center;
    white-space: nowrap;
    width: fit-content;
    text-align: center;
    align-items: center;
    border-radius: 2px;
    transition: .25s;
}

#headerNav li.w-btn {
    padding: 0;
}
/* #headerNav li:not(.w-btn).active {
    background: var(--color1, blue);
}
#headerNav li:not(.w-btn).active a {
    color: white !important;
} */
#headerNav li:not(.w-btn, .active):hover {
    background: #00000020;
    transition: .25s;
}
#headerNav li a:not(.btn), #headerNav li a:not(.btn):visited, #mainFooter ul .nav-link a {
    text-decoration: none;
    color: black;
    white-space: nowrap;
}
#headerNav li.active {
    background: var(--color1, blue);
}
#headerNav li.active a:not(.dropdown-item) {
    color: var(--color4, white) !important;
    cursor: default;
}
.active a.dropdown-toggle {
    cursor: pointer !important;
}
.dropdown-item:active {
    background: none;
}
.dropdown-item.active {
    border-radius: 3px;
    background: var(--color1, blue);
    color: white !important;
}

#headerNav .dropdown-menu {
    margin-top: calc(1.1rem + 3px) !important;
    border-radius: 0;
    padding: 1.25rem;
    border: 1px solid black;
    border-top: none;
    z-index: -1;
}
.btn {
    border-color: transparent;
    border-radius: 2px;
    outline: none;
    transition: .25s;
}
.btn.btn-primary {
    background: var(--color3);
    box-shadow: 0 0 0 transparent;
    transition: .25s;
}
.btn.btn-primary:hover {
    border-color: transparent;
    background: var(--color1);
    box-shadow: 0 0 2px black;
    border-radius: 6px;
    transition: .25s;
}
.btn.btn-secondary {
    background: var(--color00, white);
    border: 1px solid black;
    color: black;
    transition: .25s;
}
.btn.btn-secondary:hover {
    box-shadow: 0 0 2px black;
    border-radius: 6px;
    transition: .25s;
}

main .hero {
    position: relative;
    width: 100vw;
    padding: 0;
    margin: 0;
    height: 40vh;
    background: var(--color1);
}

.hero figure {
    position: absolute;
    margin: 0;
    height: 100%;
    width: 100%;
}
.hero figure img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: center;
}

figure .stock-hint {
    position: absolute;
    bottom: 1rem;
    right: 1.5rem;
    cursor: default;
}
figure .stock-hint::before {
    content: "Stock Image";
    text-decoration: underline;
    color: white;
    text-shadow: 0 0 4px black;
    font-size: 9pt;
}
figure .stock-hint::after {
    pointer-events: none;
    opacity: 0;
    content: "We are working hard to bring more, high quality images from the field. Stock Images are from Unsplash.";
    position: absolute;
    top: -7.75rem;
    
    transform: translateX(-100%);
    background: white;
    box-shadow: 0 0 4px black;
    color: black;
    text-shadow: none;
    height: 7.75rem;
    width: 16rem;
    padding: 1rem;
    border-radius: 4px 4px 0 4px;
    transition: .25s;
}
.stock-hint:hover::after {
    opacity: 1;
    transition: .25s;
}

.hero .hero-title {
    position: absolute;
    top: 0;
    height: 100%;
    width: 40%;
    display: flex;
    flex-direction: row;
    align-items: center;
    color: var(--color4, white);
}

main section:first-of-type {
    padding-top: 4rem;
}

#mainFooter {
    padding: 8rem 1rem 8rem 1rem;
}
#mainFooter .branding-link img {
    height: 4rem;
}
#mainFooter ul .nav-link a:hover {
    text-decoration: underline;
}

@media (min-width: 768px) {
    #mainFooter {
        padding: 8rem 0 2rem 0;
    }
}

#oneNDoneLogo path {
    fill: black;
}

.section-image {
    position: relative;
    width: 100%;
    aspect-ratio: 1/1;
}
.section-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

figure[data-caption] {
    background: #00000010;
}
figure[data-caption]::after {
    content: attr(data-caption);
    display: block;
    position: relative;
    padding: .5rem;
}
figure[data-caption] img {
    height: calc(100% - 36px);
}

.cta-section {
    width: 100vw;
    min-height: 8rem;
    background: var(--color2, gold);
    padding: 4rem 0;
}

@media (max-width: 768px) {
    :root {
        --banner-size: 4.25rem;
    }
}

#pageBanner ~ main {
    margin-top: var(--banner-size);
}

#pageBanner {
    height: var(--banner-size);
    width: 100vw;
    background: var(--colorRed, red);
    color: white;
    position: fixed;
    top: 0;
    left: 0;
    font-size: 14pt;
    z-index: 1051;
}
#pageBanner a {
    color: white;
    text-decoration: underline;
}
#pageBanner a:hover {
    opacity: .8;
}
#pageBanner ~ #mainHeader,
#pageBanner ~ #mobileToggle  {
    top: var(--banner-size);
    z-index: 1050;
}
#pageBanner ~ #mainHeader.out,
#pageBanner ~ #mainHeader.out ~ #mobileToggle {
    transform: translateY(calc(-120% - var(--banner-size)));
}
.banner-svg {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 16px;
    width: 16px;
}
.banner-svg svg {
    height: 100%;
}
@media (max-width: 768px) {
    .banner-svg {
        height: 24px;
        width: 24px;
        margin: 0 .25rem;
    }
}

.emergency-title {
    color: var(--colorRed, red);
    margin: 1rem 0;
}

article video {
    position: relative;
    float: right;
    border-radius: 4px;
    max-height: 35rem;
    max-width: 100%;
    margin: 1rem 0 1rem 2rem;
}
@media (max-width: 768px) {
    .article-video {
        display: flex;
        justify-content: center;
    }
    article video {
        max-height: 85vh;
        float: unset;
        margin: 1rem;
    }
}
.indented {
    padding-left: 2rem;
}

blockquote {
    background: #f9f9f9;
    border-left: 10px solid #ccc;
    padding: 0.5em 10px;
    quotes: "\201C""\201D""\2018""\2019";
  }
  blockquote:before {
    color: #ccc;
    content: open-quote;
    font-size: 4em;
    line-height: 0.1em;
    margin-right: 0.25em;
    vertical-align: -0.4em;
  }
  blockquote p {
    display: inline;
  }


/* GALLERY */
.gallery {
    position: relative;
    width: 100%;
    height: 40vh;
    overflow: hidden;
}
.gallery-main {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    padding: 3rem 0;
    display: flex;
    flex-direction: column;
}
.slide-images-container {
    position: relative;
    width: fit-content;
    display: flex;
    flex-direction: row;
    height: 100%;
    left: 50%;
    transition: .25s;
}
.slide-images-container img {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
    height: fit-content;
    max-height: 100%;
    max-width: calc(100vw - 12px);
    margin: 0 1rem;
    opacity: .15;
    border-radius: 4px;
    transition: .25s;
}
.slide-images-container img.active {
    opacity: 1;
    transition: .25s;
}
.slide-main {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    padding: 3rem 0;
    display: flex;
    flex-direction: column;
}
.slide-btn {
    position: absolute;
    top: calc(50% - 2rem);
    left: 4rem;
    height: 4rem;
    width: 4rem;
    max-width: 20%;
    cursor: pointer;
    z-index: 1;
}
.slide-btn:hover::before {
    box-shadow: 0 0 4px black;
}
.slide-btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 4rem;
    width: 4rem;
    border-radius: 50%;
    background: white;
    border: 4px solid white;
}
.slide-btn::after {
    content: "";
    position: absolute;
    height: 1.5rem;
    width: 1.5rem;
    top: calc(50% - .75rem);
    left: calc(50% - .5rem);
    border-top: 4px solid black;
    border-right: 4px solid black;
    transform: rotate(-135deg);
}
.slide-btn.btn-next {
    left: unset;
    right: 4rem;
}
.slide-btn.btn-next::after {
    left: calc(50% - 1rem);
    transform: rotate(45deg);
}
@media (max-width: 768px) {
    .slide-btn {
        top: 0;
        left: 0;
        height: 100%;
        width: 10rem;
        max-width: 20%;
        transform: unset;
    }
    .slide-btn.btn-next {
        right: 0;
    }
    .slide-btn::before {
        display: none;
    }
    .slide-btn::after {
        filter: drop-shadow(0 0 4px white);
        transition: .25s;
    }
    .slide-btn:active::after {
        left: calc(50%);
    }
    .slide-btn.btn-next:active::after {
        left: calc(50% - 1.5rem);
    }
}
/* GALLERY */