:root {
    --60: #f2f1ee;
    --30: #354caa;
    --30-1: #4f67c7;
    --10: #1c691c;
    --10-1: #114011;
    --copy: #1e1d1d;
    --header-height: 4rem;
    --title-font: "Oswald", sans-serif;
    --body-font: "Quattrocento", serif;
}
html {
    scroll-behavior: smooth;
    /* overflow-x: hidden; */
    width: 100vw;
}
@media (max-width: 768px) {
    html {
        overflow-x: hidden;
    }
}
body {
    scroll-behavior: smooth;
    min-height: 100vh;
    background: var(--60, white);
    color: var(--copy, black);
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    font-family: var(--body-font);
    font-size: 16pt;
}
main {
    padding-top: 4rem;
    flex-grow: 1;
}
main#index {
    padding: 0;
}
h1, h2, h3, h4, h5, .heading {
    font-family: var(--title-font);
}

.btn-primary {
    background: var(--10);
    border-color: var(--10);
}
.btn-primary.loading {
    position: relative;
    pointer-events: none;
    color: var(--10);
    background: var(--10);
    outline: none;
    box-shadow: none;
}
.btn-primary.loading::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    height: .75rem;
    width: .75rem;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    border: 2px solid var(--60);
    border-left-color: transparent;
    border-top-color: transparent;

    animation-name: loading;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}
@keyframes loading {
    from { transform: translate(-50%, -50%) rotate(0); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

#hero {
    position: relative;
    padding-top: var(--header-height);
    height: 75vh;
    width: 100%;
}
@media (min-width: 768px)  {
    #hero {
        min-height: 39rem;
    }
}
#hero::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: -5%;
    height: 25vh;
    /* transform: translateY(100%); */
    width: 110%;
    /* box-shadow: 0 -12px 12px #00000050; */
    background: linear-gradient(0deg,var(--60) 0%, transparent 100%);
}
#hero h2 {
    font-size: 3rem;
}

#heroImage, #solutionsImage {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    margin: 0;
    overflow: hidden;
}
#heroImage img, #solutionsImage img {
    position: relative;
    height: 105%;
    width: 100%;
    object-fit: cover;
    object-position: top center;
    top: calc(.5% * var(--scroll-hero, 0));
}
#hero .intro {
    position: relative;
    z-index: 1;
    text-shadow: 0 0 15px #fff;
    height: 100%;
    justify-content: center;
    align-items: center;
}
@media (max-width: 768px) {
    #hero .intro {
        align-items: end;
        padding-bottom: 8rem;
    }
    #hero h2 {
        font-size: 1.5rem;
    }
    #heroImage img, #solutionsImage img {
        object-position: 80%;
    }
}

.arrow-right {
    position: relative;
    margin-left: 2rem;
    transition: .25s;
}
/* .arrow-right::before {
    content: "";
    display: block;
    position: relative;
    height: 5px;
    width: 2rem;
    background: white;
} */
.arrow-right::after {
    content: "";
    display: block;
    position: absolute;
    height: .75rem;
    width: .75rem;
    border-top: 4px solid white;
    border-right: 4px solid white;
    rotate: 45deg;
    right: 4px;
    top: calc(50% - 2px);
    transform: translateY(-50%);
}

#cta {
    width: 55rem;
    max-width: 90vw;
    margin: 0 auto;
    position: relative;
    transform: translateY(-50%);
    z-index: 1;
}
#cta::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: calc(50% - 1px);
    height: 100%;
    width: 2px;
    background: #fff;
}
.cta-box {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    color: white;
    background: var(--10);
    text-decoration: none;
    padding: 1rem;
    transition: .25s;
}
.cta-box .fa-solid {
    font-size: 12pt;
    margin-right: 10px;
}
.cta-box h3 {
    font-size: 16pt;
    margin: 0;
}
.cta-box:hover {
    background: var(--10-1);
    color: white;
    transition: .25s;
}
.cta-box .slide {
    margin-left: 2rem;
    transition: .25s;
}
@media (max-width: 768px) {
    .cta-box h3 {
        font-size: 12pt;
    }
    .cta-box:hover .slide {
        margin-left: 3rem;
        transition: .25s;
    }
}
#cta #talent {
    height: 100%;
    border-radius: 1rem 0 0 1rem;
}
#cta #jobs {
    height: 100%;
    border-radius: 0 1rem 1rem 0;
}

#summary {
    display: flex;
    align-items: center;
    height: 30vh;
}
@media (max-width: 768px) {
    #summary {
        align-items: start;
        height: fit-content;
    }
}

.approach-card {
    background: var(--30);
    color: var(--60);
    padding: 2rem;
    height: 100%;
    border-radius: 1rem;
}
.approach-image {
    position: relative;
    margin: 0 auto 1rem auto;
    width: 50%;
    aspect-ratio: 1/1;
    border-radius: 50%;
    overflow: hidden;
    background: var(--60);
}
.approach-image img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: center;
}


#solutions {
    position: relative;
    margin-top: 5vh;
    height: 90vh;
    padding: 2rem;
}
@media (max-width: 768px) {
    #solutions {
        height: fit-content;
    }
}
#solutionsImage {
    height: 100%;
}
#solutionsImage img {
    position: relative;
    height: 110%;
    width: 100%;
    object-fit: cover;
    object-position: top center;
    top: calc(.5% * var(--scroll-solutions, 0));
}
#theSolutions {
    position: relative;
    z-index: 1;
    height: fit-content;
    /* min-height: 90vh; */
}
#theSolutions .content {
    border-radius: 1rem;
    background: var(--30);
    color: var(--60);
    padding: 2rem;
}
.accordian-item .accordian-body {
    padding-bottom: 2rem;
}

@media (min-width: 768px) {
    .check-list {
        column-count: 2;
    }
}
.list-item i {
    color: var(--30);
    margin-right: 1rem
}

#jobsContainer {
    position: relative;
    width: 100vw;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    overflow: hidden;
    padding: 2rem;
}

#jobsContainer.animate {
    justify-content: start;
}

.job-card {
    position: relative;
    flex-shrink: 0;
    width: 58rem;
    max-width: 100vw;
    height: 28rem;
    overflow-x: hidden;
    display: flex;
    justify-content: center;
}
.job-card .job-content {
    width: calc(100% - 4rem);
    height: 28rem;
    border-radius: 1rem;
    padding: 2rem;
    background: var(--30);
    color: var(--60);
}

/* #jobsContainer.animate .job-card {
    transform: translateX(-100%);
} */
.job-card.shrink {
    width: 0;
    max-width: 0;
    padding: 0;
    margin: 0 2rem 0 -2rem;
    transition: 10s;
    transition-timing-function: linear;
}
.job-card .description {
    display: -webkit-box;
    -webkit-line-clamp: 8;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.job-card .description > p, .job-card .description > ul {
    margin: 0;
    font-size: 12pt;
}

.accordian-header {
    display: flex;
    align-items: center;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--60);
}
.accordian-header div {
    cursor: pointer;
}
.accordian-header div::after {
    content: "";
    display: inline-block;
    position: relative;
    margin-left: 1.5rem;
    rotate: 225deg;
    height: .75rem;
    width: .75rem;
    top: -.25rem;
    border-right: 3px solid var(--60);
    border-bottom: 3px solid var(--60);
    transition: .25s;
}
.accordian-header div.collapsed::after {
    top: -.5rem;
    rotate: 45deg;
    transition: .25s;
}
#desktopHeader {
    position: relative;
    width: 100vw;
    height: var(--header-height, 4rem);
    position: absolute;
    top: 0;
    z-index: 100;
    padding: 0 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: transparent;
}
#desktopHeader.follow {
    position: fixed;
    top: 0;
    background: var(--60);
    /* box-shadow: 0 0 4px #00000020; */
    transform: translateY(-120%);
}
#desktopHeader.follow.show.hide {
    transform: translateY(-120%);
    transition: .25s;
}
#desktopHeader.follow.show {
    transform: translateY(0);
    transition: .25s;
}

#desktopHeader .branding {
    position: relative;
    height: 75%;
    display: flex;
    align-items: center;
    text-decoration: none;
    color: var(--copy, black);
}
@media (max-width: 768px) {
    #desktopHeader.menu-toggled {
        transform: translateY(0) !important;
        background: var(--60);
        transition: .25s;
    }
    #desktopHeader {
        z-index: 1051;
    }
    #desktopHeader .branding {
        width: 50%;
        margin: 0 auto;
        justify-content: center;
    }
}
.branding .title {
    margin: 0;
    font-weight: bold;
    font-size: 21pt;
    padding-left: 1rem;
    /* color: var(--30); */
}
#desktopHeader .logo {
    height: 100%;
    aspect-ratio: 1/1;
    border-radius: 50%;
    overflow: hidden;
    margin: 0;
}
.logo::after {
    content: "";
    display:block;
    height: 100%;
    width: 100%;
    background: var(--copy);
}
#desktopHeader .links {
    position: relative;
    width: 26rem;
}
#desktopHeader .links ul {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    list-style: none;
    width: 100%;
    padding: 0;
    margin: 0;
}
#desktopHeader .links li {
    margin-left: 1rem;
}
#desktopHeader .links a:not(.btn) {
    color: var(--copy, black);
    font-size: 14pt;
    text-decoration: none;
}

#mainFooter {
    min-height: 19rem;
    width: 100vw;
    padding: 2rem;
    background: var(--30);
    color: var(--60);
    display: flex;
    align-items: center;
}
#mainFooter nav ul {
    padding: 0;
    list-style: none;
}
#mainFooter nav a {
    text-decoration: none;
    color: var(--60)
}
#mainFooter nav a:hover {
    text-decoration: underline;
}

#mainFooter .contact-info a {
    color: var(--60);
}

#footerBrand {
    display: flex;
    flex-direction: column;
    align-items: center;
}
#mainFooter .logo {
    margin-top: -.5rem;
    width: 6rem;
}
#mainFooter .logo path {
     fill: var(--60);
     
}
#mainFooter .logo ellipse {
    stroke: var(--60);
}
.copyright {
    height: fit-content;
}
.copyright a, .copyright p {
    color: var(--60, white);
    font-size: 10pt;
    text-decoration: none;
    margin: 0;
}
#oneNDone:hover {
    text-decoration: underline;
}
#oneNDone svg {
    margin-left: 4px;
}

#tableOfContents {
    position: -webkit-sticky;
    position: sticky;
    display: block;
    top: 5rem;
    right: 0;
    width: 100%;
    min-height: 8rem;
}
#tableOfContents a {
    color: var(--copy);
}

#faqsAccordian .accordian-header {
    position: relative;
    border-bottom: 1px solid var(--copy);
    padding: 0;
    margin-bottom: 1.5rem;
    font-weight: bold;
}

#faqsAccordian .accordian-button::after {
    border-right-color: var(--copy) !important;
    border-bottom-color: var(--copy) !important;
}

#mobileToggle {
    position: absolute;
    right: 1rem;
    height: 2.5rem;
    width: 2.5rem;
    cursor: pointer;
}
.menu-toggled #mobileToggle {
    z-index: 1051;
}
#mobileMenu {
    background: var(--60);
    padding-top: var(--header-height);
    position: fixed;
}
#mobileToggle::before, #mobileToggle::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: calc(30% - 4px);
    width: 100%;
    height: 8px;
    background: var(--copy);
    transition: .25s;
}
#mobileToggle::after {
    top: calc(70% - 4px);
}
.menu-toggled #mobileToggle::before {
    rotate: 45deg;
    top: calc(50% - 4px)
}
.menu-toggled #mobileToggle::after {
    rotate: -45deg;
    top: calc(50% - 4px)
}
.mobile-nav ul {
    list-style: none;
    
}
.mobile-nav li {
    margin: 1rem auto;
}
.mobile-nav li:last-child {
    margin-top: 1.5rem;
}
.mobile-nav li a:not(.btn) {
    text-decoration: none;
    color: var(--copy);
}
.mobile-nav li a:not(.btn):hover {
    text-decoration: underline;
}
.mobile-nav li .btn {
    width: 50%;
}

.form {
    position: relative;
    width: 45rem;
    max-width: 100vw;
    border-radius: 1rem;
    box-shadow: 0 0 4px #00000030;
    padding: 2rem;
    margin-bottom: 4rem;
    margin-top: 6rem;
    transition: .25s;
}
.form::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1rem;
    background: var(--30);
    border-radius: 1rem 1rem 0 0;
}
.form-item {
    position: relative;
    margin-bottom: 1rem
}
.form-item.error input, .form-item.error textarea {
    border-color: red;
}
.form-item input, .form-item textarea, .form-item select {
    background: none;
    border: 1px solid var(--copy);
    border-radius: .5rem;
    width: 100%;
    padding: .25rem 1rem;
    max-height: 23rem;
}
.form-item select {
    cursor: pointer;
}
.form-item textarea {
    min-height: 12rem;
}
.form-item input:focus, .form-item input:active {    
    box-shadow: 0 0 4px var(--30);
    outline: none;
}
.form button[type="submit"] {
    padding: .5rem 2.5rem;
    font-weight: bold;
}
@media (max-width: 768px) {
    .form {
        border-bottom: 1px solid var(--30)
    }
    .form, .form::after {
        margin-top: 0;
        border-radius: 0;
        box-shadow: none;
    }
}

.errors {
    position: relative;
    margin-bottom: 1rem;
}
.errors::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 50%;
    border-bottom: 1px solid red;
}
.errors li {
    color: red;
}

.success-message {
    font-size: 21pt;
    font-weight: bold;
    color: green;
    padding: 3rem 0;
}