:root {
    --primary: #50bfbf;
    --secondary: #50bf88;
    --secondaryDark: #3ea974;
    --muted: #a0a8c0;
    --light: #f6f6f6;
    --dark: #333333;
    --white: #ffffff;
}

/* Base utilities */

body {
  font-family: 'DM Sans', sans-serif;
}

.iframe-wrapper iframe {
    border: none;
}

.cursor-pointer {
    cursor: pointer;
}

.text-wrap-pretty {
    text-wrap: pretty;
}

/* Backgrounds */

.bg-brand-secondary {
    background-color: var(--secondary);
}

/* Animations */

@keyframes spin {
    to {
        transform: rotate(1turn);
    }
}

.animate-spin {
    animation: spin 1s linear infinite;
}

/* Buttons */

.btn {
    font-size: .85rem;
    letter-spacing: 2px;
    padding: .9rem;
    border: .1875rem solid var(--dark);
    border-radius: 3rem;
}

.btn-primary {
    color: var(--dark);
    background-color: var(--primary);
}

.btn-secondary {
    color: var(--white);
    background-color: var(--secondary);
}

.btn-secondary:hover {
    color: var(--white);
    background-color: var(--secondaryDark);
}

.btn-outline-secondary {
    color: var(--secondary);
    background-color: var(--white);
}

.btn-outline-secondary:hover {
    color: var(--white);
    background-color: var(--secondary);
}

/* Forms */

.form-label {
    font-size: .9rem;
    color: var(--muted);
}

.form-control,
.form-select {
    border-left: 0;
    border-top: 0;
    border-right: 0;
    border-radius: 0;
}

.prepend-pound {
    position: relative;
}

.prepend-pound::before {
    content: "";
    position: absolute;
    top: 2.65rem;
    left: 0;
    width: .8rem;
    height: .8rem;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3NC42NjcgNzQuNjY3Ij48cGF0aCBmaWxsPSIjYTBhOGMwIiBkPSJtNjIuOTM1IDYyLjY0OC4wMDIuMDA2LS41MjMuMTE1YTIuNTYyIDIuNTYyIDAgMCAwLS43MjYuMjEzbC0uMjIuMDgyYy0zLjQ3NyAxLjc2My03LjE0MyAyLjY2OC0xMC44NDggMi42NjgtLjY3MiAwLTEuOTMzLS4xNzgtMy43NDgtLjUyOWE3MDQuMiA3MDQuMiAwIDAgMS01Ljg5NS0xLjA0MSA3NzkuMjY0IDc3OS4yNjQgMCAwIDAtNi4yMDctMS4wOTRjLTIuMDQ4LS4zNTMtMy42MzItLjUyMi00Ljg0MS0uNTIyLS44NTQgMC0xLjcxOS4wNDEtMi41NzMuMTIybC0zLjY0Ni4zNDggMi40OTItMi42ODRjLjI1LS4yNjguNDg2LS41MzUuNzEzLS44YTIwLjM0NSAyMC4zNDUgMCAwIDAgMi43NTItNC4xMDMgMTcuNzM3IDE3LjczNyAwIDAgMCAxLjU0MS00LjY0OGMuMzE0LTEuNjcyLjQ3NS0zLjU1Ny40NzUtNS42MDIgMC0uOTMzLS4xMDktMS44NTktLjMyNi0yLjc1NWwtLjQxNi0xLjcyMSAxMy45MjktLjAyN2MuMjQ3LS4wMjEuNDU5LS4wNzcuNjY2LS4xNzMgMS41NDQtLjUwMyAyLjU0NC0xLjg2NyAyLjU0NC0zLjQxNmEzLjU3OSAzLjU3OSAwIDAgMC0yLjkzNy0zLjUxOSAxLjg0NiAxLjg0NiAwIDAgMC0uMzQ5LS4wNDVsLS4wMTYuMDAxYTIuMjA4IDIuMjA4IDAgMCAxLS4xMDQtLjAwNGwtLjE4MS4wMTNIMjkuMjJsLS4zMDYtLjk3OUMyNy4zMTEgMjcuNDExIDI2LjUgMjMuMDY3IDI2LjUgMTkuNjRhMTIuNiAxMi42IDAgMCAxIC45MzEtNC44IDEyLjkxNCAxMi45MTQgMCAwIDEgMi41NTctMy45OWMxLjA3My0xLjEzOCAyLjM5OS0yLjA0NiAzLjk0MS0yLjY5OCAxLjUzNy0uNjQ5IDMuMjgxLS45NzkgNS4xODEtLjk3OSA3LjczMSAwIDExLjgyMSAzLjY3NCAxMi41MDMgMTEuMjMyLjAxMi4wNDEuMDIxLjA4NC4wMjkuMTI3bC4wMjcuMzQyLS4wMS4wNzFjLjAwOC4xNTUuMDUyLjM5Mi4xNDIuNjcxLjM2MSAyLjQwMyAyLjMwNiA0LjA5IDQuNjQyIDQuMDlhNC42OTggNC42OTggMCAwIDAgNC42NjQtNC4xOTNoLS4wMDJsLjAyOC0uNjQ1Yy4wMDEtLjAxLS4wMDktLjA4OC0uMDEzLS4xNzVsLS4wMDItLjEwM2MtLjI3Mi0zLS45OTgtNS43MDMtMi4xNS04LjAxMy0xLjE1Mi0yLjMwMS0yLjY3Ny00LjI1Ni00LjUyOS01LjgwOS0xLjg1OC0xLjU2LTQuMDk0LTIuNzU3LTYuNjQtMy41NThDNDUuMjQ4LjQwNyA0Mi40MDMgMCAzOS4zNDcgMGMtMy4zMDkgMC02LjM2Ny40NzktOS4wOSAxLjQyNC0yLjcyNy45NDYtNS4wOTggMi4zMTItNy4wNDUgNC4wNTYtMS45NTMgMS43NDktMy40OTMgMy45MjctNC41NzcgNi40NzQtMS4wODYgMi41NTItMS42MzcgNS40NC0xLjYzNyA4LjU4OSAwIDEuNDg0LjIgMy4zMTMuNTk1IDUuNDM1LjMxIDEuNjgxLjc4MyAzLjYyMiAxLjQwOCA1Ljc3MWwuNTE4IDEuNzg1LTcuOTQxLS4wMTdhMy41OTMgMy41OTMgMCAwIDAtMy4yNDggMy41NzIgMy41NjggMy41NjggMCAwIDAgMy4yMTUgMy41NDZsLjM0Mi4wNjIgOS42OTMuMDA4LjI0IDEuMDk3Yy4zNjcgMS42ODkuNTU0IDMuNDE5LjU1NCA1LjEzOCAwIDIuNTI5LS4yNDEgNC44LS43MTYgNi43NDQtLjQ3MyAxLjkzOS0xLjE2MiAzLjY4Mi0yLjA1IDUuMTc0YTE1LjkyOCAxNS45MjggMCAwIDEtMy4yNzEgMy45MTRjLTEuMjc5IDEuMTA3LTIuNzY0IDIuMTAzLTQuNDA4IDIuOTU1LTIuNjUuODgxLTUuNjA5IDIuNDc3LTUuMTA3IDUuMjcuNDEgMi4yODEgMi41ODIgMy45NDEgNC44OTggMy42MzQuMDctLjAxMi4wNzItLjAxMy4xMzMtLjA0MiA2LjQ3NS0yLjk1MiAxMi4zNTUtNC40NDEgMTcuNTA3LTQuNDQxLjY2NyAwIDEuNTk5LjExMiAyLjc2OS4zMzQgMS4xNzIuMjIyIDIuNDY5LjQ5NCAzLjg1NS44MTIgMS4zOTUuMzE1IDIuODM5LjY2MyA0LjMyOCAxLjA0NSAxLjQ5LjM4IDIuOTI0LjcyOSA0LjMwNCAxLjA0NSAxLjM4LjMxNyAyLjYzOS41OTcgMy43OC44MzQgMS4xNDYuMjM4IDIuMDMuMzU0IDIuNy4zNTRoLjIwNGM1LjIwNCAwIDEwLjcyOS0yLjE3NiAxMC45NjMtMi4yNjkuNTEtLjIyMiAyLjA3LS44MDEgMi4wNy0uODAxIDIuNDc3LS41NjIgMy45OTktMi45NjYgMy40NTgtNS4zNzgtLjQ5MS0yLjE5LTIuNjE2LTMuNzE0LTQuODU2LTMuNDc2eiIvPjwvc3ZnPg==");
    background-size: cover;
    background-repeat: no-repeat;
}

.prepend-pound .form-control {
    padding-left: 1rem;
}

.form-check {
    display: flex;
    min-height: 1.2rem;
}

.custom-checkbox-wrapper:hover .check {
    stroke-dashoffset: 0;
}

.custom-checkbox-wrapper {
    position: relative;
    display: inline-block;
    width: 22px;
    height: 22px;
    margin-right: 8px;
    flex-shrink: 0;
}

.custom-checkbox-wrapper .background {
    fill: #ccc;
    transition: ease all 0.6s;
    -webkit-transition: ease all 0.6s;
}

.custom-checkbox-wrapper .stroke {
    fill: none;
    stroke: var(--white);
    stroke-miterlimit: 10;
    stroke-width: 2px;
    stroke-dashoffset: 100;
    stroke-dasharray: 100;
    transition: ease all 0.6s;
    -webkit-transition: ease all 0.6s;
}

.custom-checkbox-wrapper .check {
    fill: none;
    stroke: var(--white);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2px;
    stroke-dashoffset: 22;
    stroke-dasharray: 22;
    transition: ease all 0.6s;
    -webkit-transition: ease all 0.6s;
}

.custom-checkbox-wrapper input[type=checkbox] {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    margin: 0;
    opacity: 0;
    appearance: none;
}

.custom-checkbox-wrapper input[type=checkbox]:hover {
    cursor: pointer;
}

.custom-checkbox-wrapper input[type=checkbox]:checked + svg .background {
    fill: var(--secondary);
}

.custom-checkbox-wrapper input[type=checkbox]:checked + svg .stroke {
    stroke-dashoffset: 0;
}

.custom-checkbox-wrapper input[type=checkbox]:checked + svg .check {
    stroke-dashoffset: 0;
}

/* Footer */

.footer-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
    margin-top: 20rem;
    background-color: var(--light);
}

