:root {
    --primary-color: #8dc63f;
    --hover-primary-color: #7FB239;
    --accent-color: #edffd4;
    --dark-color: #000000;
    --light-color: #ffffff
}

html {
    font-size: 62.5%;
    overflow-x: hidden !important;
    -webkit-text-size-adjust: none;
    -webkit-font-smoothing: subpixel-antialiased;
    -webkit-font-smoothing: antialiased;
    scroll-behavior: smooth;
    font-family: 'Open Sans', sans-serif;
}

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

body {
    box-sizing: border-box;
    margin: 0;
    font-size: 1.6rem;
}

::selection {
    background: black;
    color: #fff;
}

::-moz-selection {
    background: black;
    color: #fff;
}

::-webkit-selection {
    background: black;
    color: #fff;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
figure {
    margin: 0;
}

q:before,
q:after {
    display: none;
}

button {
    display: inline-block;
    overflow: visible;
    margin: 0;
    padding: 0;
    outline: 0;
    border: 0;
    background: none transparent;
    color: inherit;
    vertical-align: middle;
    text-align: center;
    text-decoration: none;
    text-transform: none;
    font: inherit;
    line-height: normal;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}

blockquote {
    margin-block-start: 0;
    margin-block-end: 0;
    margin-inline-start: 0;
    margin-inline-end: 0;
}

*,
:before,
:after {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
    border-color: #e5e7eb;
}

:before,
:after {
    --tw-content: "";
}

html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    -o-tab-size: 4;
    tab-size: 4;
    font-feature-settings: normal;
    font-variation-settings: normal;
}

body {
    margin: 0;
    line-height: inherit;
}

hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
}

abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: inherit;
    font-weight: inherit;
}

a {
    color: inherit;
    text-decoration: inherit;
}

b,
strong {
    font-weight: bolder;
}

code,
kbd,
samp,
pre {
    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Monaco,
        Consolas,
        Liberation Mono,
        Courier New,
        monospace;
    font-feature-settings: normal;
    font-variation-settings: normal;
    font-size: 1em;
}

small {
    font-size: 80%;
}

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
}

button,
input,
optgroup,
select,
textarea {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
}

button,
select {
    text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: button;
    background-color: transparent;
    background-image: none;
}

:-moz-focusring {
    outline: auto;
}

:-moz-ui-invalid {
    box-shadow: none;
}

progress {
    vertical-align: baseline;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
    height: auto;
}

[type="search"] {
    -webkit-appearance: textfield;
    outline-offset: -2px;
}

::-webkit-search-decoration {
    -webkit-appearance: none;
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
}

summary {
    display: list-item;
}

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
    margin: 0;
}

fieldset {
    margin: 0;
    padding: 0;
}

legend {
    padding: 0;
}

ol,
ul,
menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

dialog {
    padding: 0;
}

textarea {
    resize: vertical;
}

input::-moz-placeholder,
textarea::-moz-placeholder {
    opacity: 1;
    color: #9ca3af;
}

input::placeholder,
textarea::placeholder {
    opacity: 1;
    color: #9ca3af;
}

button,
[role="button"] {
    cursor: pointer;
}

:disabled {
    cursor: default;
}

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
    display: block;
    vertical-align: middle;
}

img,
video {
    max-width: 100%;
    height: auto;
}

[hidden] {
    display: none;
}

*:focus-visible {
    outline: 3px solid var(--primary-color) !important;
    outline-offset: 2px;
    border-radius: 2px
}

.header-primary {
    font-size: 3.2rem;
    font-weight: bold;
    line-height: 1.5
}

@media screen and (min-width: 768px) {
    .header-primary {
        font-size: 4rem
    }
}

@media screen and (min-width: 1024px) {
    .header-primary {
        font-size: 4.8rem
    }
}

.header-secondary {
    font-size: 2rem;
    font-weight: bold;
    line-height: 1.5
}

@media screen and (min-width: 768px) {
    .header-secondary {
        font-size: 2.4rem
    }
}

@media screen and (min-width: 1024px) {
    .header-secondary {
        font-size: 3.2rem
    }
}

.header-tertiary {
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1.5
}

@media screen and (min-width: 768px) {
    .header-tertiary {
        font-size: 1.6rem
    }
}

@media screen and (min-width: 1024px) {
    .header-tertiary {
        font-size: 1.6rem
    }
}

.paragraph {
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.5
}

@media screen and (min-width: 768px) {
    .paragraph {
        font-size: 1.6rem
    }
}

@media screen and (min-width: 1024px) {
    .paragraph {
        font-size: 2rem
    }
}

.paragraph-small {
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.5
}

@media screen and (min-width: 768px) {
    .paragraph-small {
        font-size: 1.4rem
    }
}

@media screen and (min-width: 1024px) {
    .paragraph-small {
        font-size: 1.6rem
    }
}

.button {
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.5
}

@media screen and (min-width: 768px) {
    .button {
        font-size: 1.4rem
    }
}

@media screen and (min-width: 1024px) {
    .button {
        font-size: 1.4rem
    }
}

.tag {
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.5
}

@media screen and (min-width: 768px) {
    .tag {
        font-size: 1.4rem
    }
}

@media screen and (min-width: 1024px) {
    .tag {
        font-size: 1.4rem
    }
}

.link {
    font-size: 1.2rem;
    font-weight: 600;
    text-decoration: underline;
    line-height: 1.5
}

@media screen and (min-width: 768px) {
    .link {
        font-size: 1.4rem
    }
}

@media screen and (min-width: 1024px) {
    .link {
        font-size: 1.4rem
    }
}

.eyebrow {
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.5
}

@media screen and (min-width: 768px) {
    .eyebrow {
        font-size: 2.4rem
    }
}

@media screen and (min-width: 1024px) {
    .eyebrow {
        font-size: 3.2rem
    }
}

.button {
    padding: .8rem 1.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--light-color)
}

.button-plain {
    color: var(--dark-color);
    transition: color ease-in-out .3s
}

.button-plain:hover {
    color: var(--primary-color)
}

.button-primary {
    border: .1rem solid var(--primary-color);
    border-radius: .8rem;
    transition: ease-in-out background-color .3s;
    background-color: var(--primary-color);
}

.button-primary:hover {
    background-color: var(--hover-primary-color);
}

.button-secondary {
    border: .1rem solid var(--primary-color);
    border-radius: .8rem;
    transition: ease-in-out background-color .3s
}

.button-secondary:hover {
    background-color: var(--primary-color)
}

.button-ghost {
    background-color: rgba(0, 0, 0, 0);
    border: .1rem solid var(--dark-color);
    border-radius: .8rem;
    transition: ease-in-out background-color .3s, ease-in-out border-color .3s;
}

.button-ghost:hover {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}

.header {
    display: flex;
    padding: .8rem 1.6rem;
    justify-content: space-between;
    align-items: center;
    position: sticky;
    width: 100%;
    height: auto;
    top: 0;
    left: 0;
    right: 0;
    background-color: var(--light-color);
    z-index: 500
}

@media screen and (min-width: 768px) {
    .header {
        padding: .8rem 4rem
    }
}

@media screen and (min-width: 1024px) {
    .header {
        max-width: 102.4rem;
        margin-left: auto;
        margin-right: auto;
        padding: .8rem 0
    }
}

.header__banner {
    display: block;
    height: 3.2rem
}

.header__banner__image {
    height: 100%;
    width: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.header .hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: .3s all ease-in-out;
    z-index: 999;
    position: relative;
    width: 4.8rem;
    height: 4.8rem;
    padding: .8rem
}

@media screen and (min-width: 768px) {
    .header .hamburger {
        display: none
    }
}

.header .hamburger .hamburger-bar {
    display: block;
    width: 3.2rem;
    height: .2rem;
    margin: 0 auto;
    transition: .3s all ease-in-out;
    position: absolute;
    background-color: var(--dark-color)
}

.header .hamburger .hamburger-bar:nth-child(1) {
    top: 1.5rem;
    -moz-transition: top .2s ease .2s, -moz-transform .2s ease-out .1s;
    -o-transition: top .2s ease .2s, -o-transform .2s ease-out .1s;
    -webkit-transition: top .2s ease, -webkit-transform .2s ease-out;
    transition-delay: .2s, .1s;
    transition: top .2s ease .2s, transform .2s ease-out .1s
}

.header .hamburger .hamburger-bar:nth-child(2) {
    -moz-transition: ease .2s .2s;
    -o-transition: ease .2s .2s;
    -webkit-transition: ease .2s;
    transition-delay: .2s;
    transition: ease .2s .2s
}

.header .hamburger .hamburger-bar:nth-child(3) {
    top: 3.1rem;
    -moz-transition: top .2s ease .2s, -moz-transform .2s ease-out .1s;
    -o-transition: top .2s ease .2s, -o-transform .2s ease-out .1s;
    -webkit-transition: top .2s ease, -webkit-transform .2s ease-out;
    transition-delay: .2s, .1s;
    transition: top .2s ease .2s, transform .2s ease-out .1s
}

.header .hamburger.active .hamburger-bar:nth-child(1) {
    top: 2.3rem;
    transform: rotate(45deg);
    -moz-transition: top .2s ease .1s, -moz-transform .2s ease-out .3s;
    -o-transition: top .2s ease .1s, -o-transform .2s ease-out .3s;
    -webkit-transition: top .2s ease, -webkit-transform .2s ease-out;
    transition-delay: .1s, .3s;
    transition: top .2s ease .1s, transform .2s ease-out .3s
}

.header .hamburger.active .hamburger-bar:nth-child(2) {
    opacity: 0
}

.header .hamburger.active .hamburger-bar:nth-child(3) {
    top: 2.3rem;
    transform: rotate(-45deg);
    -moz-transition: top .2s ease .1s, -moz-transform .2s ease-out .3s;
    -o-transition: top .2s ease .1s, -o-transform .2s ease-out .3s;
    -webkit-transition: top .2s ease, -webkit-transform .2s ease-out;
    transition-delay: .1s, .3s;
    transition: top .2s ease .1s, transform .2s ease-out .3s
}

.header__navigation {
    display: none;
    flex-direction: row;
    align-items: center
}

@media screen and (min-width: 768px) {
    .header__navigation {
        display: flex
    }
}

.header #mobile-navigation {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    padding: .8rem 1.6rem 2rem;
    z-index: 10;
    background-color: var(--light-color)
}

.header #mobile-navigation .header__navigation {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .8rem
}

.header #mobile-navigation .header__navigation .button {
    padding: 1.2rem 1.6rem;
    min-height: 4.8rem
}

.mobile-navigation-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, .5);
    z-index: 499;
    display: none
}

.footer {
    background-color: var(--light-color);
    color: var(--dark-color);
    padding: 2rem 2.4rem 4rem
}

.footer__wrapper {
    max-width: 102.4rem;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: column;
    gap: 2.4rem
}

.footer__backlink {
    display: flex;
    flex-direction: column-reverse;
    gap: 2.4rem
}

@media screen and (min-width: 768px) {
    .footer__backlink {
        flex-direction: row;
        justify-content: space-between;
        align-items: center
    }
}

.footer__backlink__social {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center
}

@media screen and (min-width: 768px) {
    .footer__backlink__social {
        gap: 1.6rem
    }
}

.footer__backlink__social__item>a {
    color: var(--dark-color);
    transition: color ease-in-out .3s;
    width: 2.4rem;
    height: 2.4rem;
    display: block
}

.footer__backlink__social__item>a:hover {
    color: var(--primary-color)
}

.footer__backlink__social__item>a>svg {
    width: 100%;
    height: 100%
}

.footer__backlink__poweredby a {
    color: var(--primary-color)
}

.hero {
    background-color: var(--light-color);
    color: var(--dark-color);
    padding: 4rem 2.4rem 2rem
}

.hero__wrapper {
    max-width: 102.4rem;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: column;
    gap: 4rem
}

.hero__banner {
    overflow: hidden;
    position: relative;
    border-radius: 3.2rem;
    min-height: 40rem;
    display: flex;
    align-items: flex-end
}

.hero__banner__image {
    background-color: var(--dark-color);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.hero__banner__content {
    width: 100%;
    color: var(--light-color);
    position: relative;
    z-index: 1;
    padding: 2.4rem;
    display: flex;
    flex-direction: column;
    gap: 1.6rem
}

.hero__banner__content__text .eyebrow {
    margin-bottom: -0.8rem
}

.hero__banner__content__text .header-primary {
    margin-top: -0.8rem
}

.hero__banner__content__text .header-primary strong {
    color: var(--primary-color)
}

@media screen and (min-width: 768px) {
    .hero__banner__content__text br {
        display: none;
    }
}

@media screen and (min-width: 1024px) {
    .hero__banner__content__job-search {
        max-width: 71.2rem;
    }
}

.intro {
    background-color: var(--light-color);
    color: var(--dark-color);
    padding: 2rem 2.4rem
}

.intro__wrapper {
    max-width: 102.4rem;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: column;
    gap: 2.4rem
}

.intro__content {
    display: flex;
    flex-direction: column;
    gap: 1.5rem
}

.hero-error {
    background-color: var(--light-color);
    color: var(--dark-color);
    padding: 4rem 2.4rem 2rem
}

.hero-error__wrapper {
    max-width: 102.4rem;
    margin-left: auto;
    margin-right: auto;
    padding: 2.4rem;
    background-color: var(--accent-color);
    border-radius: 1.6rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.4rem
}

@media screen and (min-width: 768px) {
    .hero-error__wrapper {
        padding: 4rem;
    }
}

@media screen and (min-width: 1024px) {
    .hero-error__wrapper {
        padding: 5.6rem;
    }
}

.hero-error__icon {
    width: 5.4rem;
    height: 4.8rem;
    color: var(--primary-color)
}

.hero-error__content {
    text-align: center;
}

.hero-error__cta {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.8rem;
}

.hero-error__cta .btn__icon {
    width: 1.6rem;
    height: 1.6rem;
}