:root {
    --n1: #000;
    --n2: #A3A3A3;
    --n3: #fff;
    --s2: #150A00;
    --s3: #371A00;
    --s5: #6D4E30;
    --s6: #C3A581;
    --s7: #F0E2CE;
    --s8: #FAF3E9;
    --p1: #AB7327;
    --p2: #DE9A3D;

    --primaryColor: #150A00;
    --secondaryColor: #A97125;
    --otherColor: #F0E2CE;
    --background: white;
    --ctaColor: #DD993C;
    --headerHeight: 80px;

    --auth-background: url('/files/family_hunt.jpg');
    --auth-background-position: left bottom;
}

main, header, footer {
    max-width: 100vw !important;
    overflow-x: hidden;
}

body, .btn, a {
    font-family: "Albert Sans", sans-serif;
}
body {
    font-size: 18px;
}

h1, h2, h3, .title-font {
    font-family: "Bitter", serif;
}

h4, h5, h6, .sub-heading {
    font-family: "Archivo", sans-serif;
}
.legal-text {
    font-size: 14px;
    opacity: .6;
}

.w-md-auto {
    width: auto !important;
}

.hide {
    opacity: 0;
    pointer-events: none;
    position: absolute;
}

#mobileToggle {
    position: absolute;
    top: 0;
    right: 0;
    height: var(--headerHeight);
    width: var(--headerHeight);
}
#mobileToggle::before,
#mobileToggle::after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 8px);
    left: 50%;
    height: 6px;
    width: 36px;
    transform: translate(-50%, -50%);
    background: var(--background);
    transition: .35s;
}
#mobileToggle::after {
    top: calc(50% + 8px);
}
.menu-toggled #mobileToggle::before {
    top: 50%;
    transform: translate(-50%, -50%) rotate(-45deg);
}
.menu-toggled #mobileToggle::after {
    top: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
}
#mobileMenu .offcanvas-body {
    padding-top: calc(var(--headerHeight) + 24px);
}
#mobileMenu ul {
    list-style: none;
    padding: 0;
    text-align: center;
}
#mobileMenu li {
    margin: 18px 0;
}
#mobileMenu li,
#mobileMenu a:not(.btn) {
    color: var(--primaryColor);
    text-decoration: none;
    font-weight: 600;
    font-size: 24px;
}
#mobileMenu a.btn {
    font-size: 21px;
    margin-top: 24px;
}
#mobileMenu .svg-background {
    height: calc(100% - var(--headerHeight)) !important;
    top: var(--headerHeight);
}
#mobileMenu .svg-background svg {
    height: 100%;
}


#loginPanel .title {
    padding-left: 12px;
}
#loginPanel .title h1 {
    color: white;
    font-size: 32px;
}
#loginPanel .brand {
    flex-direction: column;
    align-items: start;
}
@media (max-width: 768px) {
    #loginPanel .brand {
        align-items: center;
    }
    #loginPanel .title {
        text-align: center;
    }
}
#loginPanel .brand .logo {
    width: 150px;
    height: 75px;
}
#loginPanel .brand .logo img {
    object-fit: cover;
    object-position: left center;
}

.logo.dark svg path, .logo.dark svg polygon {
    fill: var(--n1);
}

#about h2 {
    color: var(--p1);
    text-transform: uppercase;
}
#gallery h1 {
    color: var(--p1);
    text-transform: uppercase;
    font-size: 64px;
}

figure img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: center;
}

.btn {
    width: fit-content;
    white-space: nowrap;
    padding: 8px 24px 10px 24px;
    border-radius: 4rem;
    line-height: 1;
    transition: .25s;
}
.btn.btn-secondary {
    background: var(--primaryColor);
    color: var(--background);
    border: 3px solid var(--background);
    outline: 1px solid transparent;
    
}
.btn.btn-secondary:hover,
.btn.btn-secondary:active,
.btn.btn-secondary:focus {
    /* background: var(--background); */
    color: var(--ctaColor);
    outline-color: var(--ctaColor);
}
.btn.btn-primary {
    background: var(--ctaColor);
    color: var(--primaryColor);
    outline: 1px solid transparent;
    border: 3px solid var(--background);
}
.btn.btn-primary.dark-background {
    border-color: var(--primaryColor);
}
.btn.btn-primary:hover,
.btn.btn-primary:active,
.btn.btn-primary:focus {
    color: var(--primaryColor);
    outline-color: var(--primaryColor);
}
.btn.btn-primary.dark-background:hover,
.btn.btn-primary.dark-background:active,
.btn.btn-primary.dark-background:focus {
    outline-color: var(--ctaColor);
}
.btn.btn-primary.btn-dark {
    background: transparent;
    color: var(--ctaColor);
    border-color: var(--ctaColor);
}

form.loading .btn[type="submit"],
.btn.loading {
    position: relative;
    color: transparent;
    pointer-events: none;
}
.vue-app:not(.modal) {
    position: relative;
}

.vue-app.loading::after,
form.loading .btn[type="submit"]::after,
.contract-row.status-verifying td:first-child::after,
.btn.loading::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    height: 1rem;
    width: 1rem;
    transform: translate(-50%, -50%);

    border-top: 2px solid var(--color3);
    border-right: 2px solid transparent;
    border-bottom: 0px solid transparent;
    border-left: 2px solid var(--color3);

    border-radius: 50%;

    animation-name: btnLoading;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}
.contract-row.status-verifying td:first-child::after {
    left: unset;
    display: inline;
    position: relative;
    top: 25%;
}

.vue-app.loading::after,
form.loading .btn.btn-primary[type="submit"]::after,
.btn.btn-primary.loading::after {
    border-top: 2px solid var(--primaryColor);
    border-right: 2px solid transparent;
    border-bottom: 0px solid transparent;
    border-left: 2px solid var(--primaryColor);
}
form.loading .btn.btn-secondary[type="submit"]::after,
.btn.btn-secondary.loading::after {
    border-top: 2px solid var(--background);
    border-left: 2px solid var(--background);
}
.vue-app.loading {
    min-height: 50vh;
}
.vue-app.loading .content {
    display: none;
}

@keyframes btnLoading {
    from { transform: translate(-50%, -50%) rotate(0); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

.form-input {
    width: 100%;
    padding: 0 6px 0 12px;
    border: 2px solid var(--background);
    outline: 2px solid transparent;
}
.form-input:focus {
    outline-color: var(--ctaColor);
}

.form-message {
    margin: 24px 0;
    font-size: 18px;
}
.form-message.error {
    color: red;
}
.form-message.with-vue:not(.show) {
    display: none;
}
.form-message.success {
    text-align: center;
    font-weight: bold;
    color: #035003;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
main {
    padding-top: var(--headerHeight);
    flex-grow: 1;
}

a.link-emph {
    color: var(--primaryColor);
    text-decoration: none;
    font-weight: 800;
    height: fit-content;
    white-space: nowrap;
    cursor: pointer;
}
a:not(.btn, .no-style) {
    position: relative;
}
a:not(.btn, .no-style)::after {
    content: "";
    display: block;
    position: absolute;
    bottom: -4px;
    left: 50%;
    /* transform: translateX(-50%); */
    height: 2px;
    width: 0;
    background: var(--primaryColor);
    transition: .25s;
}
a:not(.btn, .no-style):hover::after {
    left: calc(50% - 16px);
    width: 32px;
}

header#header {
    position: absolute;
    top: 0;
    left: 0;
    height: var(--headerHeight);
    width: 100%;
    background: var(--primaryColor);
    display: flex;
    justify-content: space-between;
    align-items: center;
    overflow-x: hidden;
    transition: 0;
    z-index: 1046;
}
header#header .brand {
    position: relative;
    width: fit-content;
    height: calc(100% - 48px);
    margin-left: 24px;
}
header#header .brand svg {
    height: 100%;
}
header#header.sticky {
    position: fixed;
    transform: translateY(-120%);
}
header#header.ready {
    transition: .25s;
}
header#header.sticky.show {
    transform: translateY(0);
}
#header nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
#header ul {
    list-style: none;
    display: flex;
    padding: 0;
    margin: 0;
    height: 100%;
    align-items: center;
}
#header li {
    color: white;
}
#header nav .btn {
    color: var(--background);
    margin-right: 24px;
    border-width: 1px;
}
#header nav a:not(.btn) {
    padding: 0 24px;
    text-decoration: none;
    color: var(--background);
    cursor: pointer;
    transition: .25s;
}
#header nav a.active {
    color: var(--ctaColor);
    pointer-events: none;
}
#header nav a:not(.btn, .no-style)::after {
    background: var(--background);
}
#header nav .btn:hover {
    background: var(--ctaColor);
    /* color: var(--primaryColor); */
}

header#header .member-link {
    position: relative;
    height: calc(var(--headerHeight) / 2.5);
    width: calc(var(--headerHeight) / 2.5);
    margin-right: 24px;
    margin-left: 30px;
    padding: 0;
}
.member-link svg {
    height: 100%;
    fill: var(--ctaColor);
}

.subscribe-form .form-message {
    margin-top: 0 !important;
}

#subscribe-modal .modal-content {
    background: transparent;
}
#subscribeModal .modal-body {
    position: relative;
    background: var(--primaryColor);
    padding: 48px;
    overflow: hidden;
    border-radius: 8px;
}
#subscribeModal .modal-body::after  {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background: linear-gradient(20deg, var(--primaryColor) 20%, transparent 100%);
}
#subscribeModal svg {
    position: absolute;
    top: 0;
    right: 0;
}
#subscribeModal svg rect {
    opacity: 0;
}
#subscribeModal svg path {
    fill: var(--ctaColor);
}
#subscribeModal form {
    position: relative;
    z-index: 1;
}

.subscribe-form input {
    flex-grow: 1;
    border: 1px solid var(--primaryColor);
    margin-right: 12px;
    padding: 6px;
    border-radius: 3px;
}
.subscribe-form button {
    border-radius: 3px;
}

footer#footer {
    position: relative;
    min-height: 20rem;
    padding: 48px;
    width: 100%;
    background: var(--primaryColor);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--background);
}
footer#footer .background {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    pointer-events: none;
    overflow: hidden;
}
footer#footer .background::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, var(--primaryColor) 50%, transparent 100%);
}
footer#footer .background svg {
    position: absolute;
    top: 0;
    right: 0;
    width: 65%;
    fill: var(--ctaColor);
    opacity: .35;
}
footer#footer .background svg rect {
    opacity: .25;
}
footer#footer h2 {
    color: var(--ctaColor);
    margin-bottom: 30px;
}
#footer .top {
    margin-bottom: 48px;
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: 1300px;
    z-index: 1;
}
#footer .top .section {
    margin: 0 24px;
    max-width: 360px;
}
#footer ul {
    list-style: none;
}
#footer ul li {
    padding: 6px 0;
}
#footer ul li a {
    display: inline-block;
    position: relative;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    color: var(--background);
    padding-right: 12px;
    transition: .25s;
}
#footer ul li a::after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50%);
    left: 100%;
    height: 6px;
    width: 6px;
    border-top: 1px solid var(--background);
    border-right: 1px solid var(--background);
    border-bottom: 1px solid transparent;
    border-left: 1px solid transparent;
    rotate: 45deg;
}
#footer ul li a:hover::after {
    left: calc(100% - 6px);
}
#footer .bottom {
    border-top: 1px solid var(--ctaColor);
    color: var(--background);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding-top: 24px;
    max-width: 1300px;
    z-index: 1;
}
#footer .bottom a {
    color: var(--ctaColor);
    text-decoration: none;
}
@media (max-width: 768px) {
    footer#footer {
        padding: 48px 0;
    }
    #footer .top {
        flex-direction: column;
    }
    #footer .top .section {
        margin: 0 auto;
    }
    #footer .top .section:not(:last-child) {
        margin-bottom: 48px;
    }
    #footer h2 {
        text-align: center;
    }
    #footer ul {
        list-style: none;
        display: flex;
        flex-wrap: wrap;
        padding: 0;
    }
    #footer ul li {
        
        width: 50%;
    }
}

section {
    position: relative;
    height: fit-content;
    
    overflow: hidden;
    padding: 124px 0 0 0;
}
section.padding-bottom {
    padding-bottom: 124px;
}
section h2 {
    color: var(--ctaColor);
}
.svg-background {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    pointer-events: 0;
    z-index: -1;
}
.svg-background svg {
    fill: var(--ctaColor);
    opacity: .5;
    z-index: -1;
}
.svg-background::after,
.svg-background::before
 {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background: linear-gradient(0deg, var(--background) 5%, transparent 100%);
    z-index: 1;
}
.svg-background.fade-top::after {
    background: linear-gradient(180deg, var(--background) 5%, transparent 100%);
}
.svg-background::before {
    background: linear-gradient(-90deg, var(--background) 35%, transparent 100%);
}
.svg-background.svg-right::before {
    background: linear-gradient(90deg, var(--background) 35%, transparent 100%);
}
section.angle-section {
    height: 90vh;
    display: flex;
    align-items: center;
    padding: 0;
    background: var(--primaryColor);
    overflow: hidden;
}
section.angle-section > svg {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    fill: var(--ctaColor);
}
section.angle-section > svg rect {
    fill: var(--ctaColor);
    opacity: .15;
}
section.angle-section figure {
    position: absolute;
    right: 0;
    height: 100%;
    width: 70%;
    margin: 0;
    z-index: 1;
}
section.angle-section .slide {
    position: relative;
    top: 0;
    left: 0;
    margin: 62px 0;
    width: 60%;
    height: fit-content;
    background: var(--background);
    z-index: 1;
    /* clip-path: polygon(0 0, 100% 0, 75% 100%, 0% 100%); */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 62px 15%;
}
section.angle-section.flip {
    justify-content: end;
}
section.angle-section.flip figure {
    right: unset;
    left: 0;
}
section.angle-section.flip > svg {
    left: unset;
    right: 0;
}
@media (max-width: 768px) {
    section.angle-section {
        flex-direction: column;
        align-items: start;
        height: fit-content;
    }
    section.angle-section .slide {
        text-align: center;
        width: 100vw;
    }
}

section.final-section {
    height: 150vh;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
@media (max-width: 768px) {
    section.final-section {
        height: 90vh;
    }
}

.card {
    width: 300px;
    max-width: 90vw;
    max-height: 40vh;
    aspect-ratio: 10/13;
    background: var(--primaryColor);
    display: flex;
    flex-direction: column;
    justify-content: end;
    outline: none;
    border: none;
    box-shadow: 0 0 8px #00000090;
    overflow: hidden;
    padding: 0;
    margin: 24px;
}
@media (max-width: 992px) {
    .card {
        width: calc(50% - 48px) !important;
    }
}
.card.membership-card {
    width: 20%;
}
.card img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.card svg {
    position: absolute;
    height: 200%;
    left: -130%;
}
.card:nth-child(odd) svg {
    left: -200%;
}
.card svg path {
    fill: var(--ctaColor);
}
.card svg rect {
    opacity: .25;
}
.card .card-body {
    height: fit-content;
    flex: unset;
    padding: 0;
    z-index: 1;
}
.card::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    height: 75%;
    width: 100%;
    background: linear-gradient(0deg, black 0%, transparent 100%);
}
.card .card-button {
    display: block;
    width: 100%;
    background: var(--primaryColor);
    color: var(--background);
    padding: 12px;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    user-select: none;
}
.card .card-title {
    font-size: 61px;
    font-weight: 600;
    text-align: center;
    color: var(--ctaColor);
    margin-bottom: 36px;
}
.card .card-button::after {
    display: none;
}

.card-package {
    background: linear-gradient(to bottom, var(--s2) 0%, var(--s5) 100%);
}
.card-package svg {
    left: 0 !important;
    height: 100%;
    fill: var(--s5);
    opacity: .5;
}
.card-package .content {
    z-index: 1;
    height: 65%;
    margin-bottom: auto;
    padding: 24px;
    
}
.card-package h3 {
    color: var(--p2);
}
.card-package .btn-primary {
    border-color: var(--s2);
}
.card-package .btn-primary:hover {
    outline-color: var(--ctaColor);
}
.card-package .price {
    font-size: 42px;
    font-weight: bold;
    color: var(--n3);
}
.card-package .yr {
    font-size: 21px
}
.card-package .footer {
    height: 35%;
    background: var(--s2);
    color: white;
    z-index: 1;
    padding: 24px;
}
@media (max-width: 768px) {
    .card-package {
        max-height: unset;
        aspect-ratio: unset;
        padding-top: 12px;
    }
    .card-package .content {
        margin-bottom: 12px;
        height: fit-content;
    }
    .card-package .footer {
        height: fit-content;
    }
}

.card-package.light {
    background: linear-gradient(to bottom, var(--s7) 0%, var(--s8) 50%);
}
.card-package.light svg {
    fill: var(--s5);
}
.card-package.light h3 {
    color: var(--s3);
}
.card-package.light .price {
    color: var(--s3);
}
.card-package.light .footer {
    background: var(--s8);
    color: var(--s2);
}
.card-package.light::after {
    display: none;
}
.card-package.light .btn-secondary {
    border-color: var(--s8);
}
@media (max-width: 768px) {
    .memberships-main {
        margin-top: 0 !important;
    }
    .card {
        width: 90vw !important
    }
    .card .card-title {
        font-size: 7vw;
        margin-bottom: 12px;
    }
    .card .card-button {
        font-size: 16px;
    }
}

.package-divider {
    position: absolute;
    height: 80px;
    top: 50%;
    left: -24px;
    transform: translateY(-50%);
    width: 2px;
    background: black;
}

#packages section {
    padding: 48px 0;
}

input[type="checkbox"],
input[type="radio"] {
    cursor: pointer;
}

.membership-slider {
    min-height: 18rem;
    width: 100%;
    background: linear-gradient(128deg, var(--s3) 0%, var(--s2) 100%);
}
.memberships-main {
    margin-top: 48px;
}
.memberships-main .selector {
    position: relative;
    bottom: 0;
    left: 0;
    transition: .25s;    
}
.memberships-main .selector::after {
    --progress: 0%;
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 50%;
    height: 15px;
    width: 50px;
    transform: translateX(-50%);
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    background: #2B1500;
}
#memberships h2 {
    color: var(--p1);
    font-size: 36px;
}

.memberships-main[data-active='1'] .selector {
    transform: translateX(100%);
}
.memberships-main[data-active='1'] .selector::after {
    background: #261200;
}
.memberships-main[data-active='2'] .selector {
    transform: translateX(200%);
}
.memberships-main[data-active='2'] .selector::after {
    background: var(--s2);
}
.memberships-main[data-active='3'] .selector {
    opacity: 0;
}
.membership-slider {
    position: relative;
    width: 100vw;
    overflow-x: hidden;
    display: flex;
}
.membership-slider .mem-slider-container {
    display: flex;
    width: fit-content;
    display: flex;
    align-items: center;
    transition: .25s;
}
.memberships-main[data-active='1'] .mem-slider-container {
    transform: translateX(-25%);
}
.memberships-main[data-active='2'] .mem-slider-container {
    transform: translateX(-50%);
}
.memberships-main[data-active='3'] .mem-slider-container {
    transform: translateX(-75%);
}
.membership-slider .mem-slide {
    width: 100vw;
    color: var(--s7);
    padding: 62px 0;
}
@media (max-width: 768px) {
    .slider-main {
        background: linear-gradient(128deg, var(--s3) 0%, var(--s2) 100%);
        color: var(--background);
        padding: 24px 0;
    }
}

.carousel-main {
    position: relative;
    min-height: 20rem;
    width: 100%;
    overflow-x: hidden;
}
.carousel-container {
    width: fit-content;
    display: flex;
}
.carousel-main.static .carousel-container {
    width: 100%;
    justify-content: center;
}
.carousel-slide {
    position: relative;
    height: 310px;
    width: 480px;
    padding: 24px;
}
.carousel-main:not(.static) .carousel-slide {
    transform: translateX(-100%);
    transition: 0;
}
.carousel-slide .carousel-content {
    position: relative;
    height: 100%;
    width: 100%;
    border-radius: 8px;
    box-shadow: 0 0 8px #00000090;
    overflow: hidden;
}
.carousel-content figure {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    margin: 0;
}
.carousel-container figure img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: center;
}
.carousel-title {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 12px;
    background: linear-gradient(to right, transparent 0%, var(--n1) 100%);
    color: var(--n3);
    text-shadow: 0 0 4px black;
    font-size: 16px;
    text-align: right;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.carousel-main:not(.static).transition .carousel-slide:first-child {
    width: 0;
    padding: 24px 0;
    transition: 10s;
    transition-timing-function: linear;
}


.sub-slider .slider-header {
    margin-bottom: 24px;
    font-size: 16px;
}
.slider-header .sub-slide-nav {
    position: relative;
    padding-bottom: 6px;
    cursor: pointer;
}
.slider-header .sub-slide-nav::after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: transparent;
}
.sub-slider[data-active="0"] .slider-header .sub-slide-nav[data-target="0"]::after,
.sub-slider[data-active="1"] .slider-header .sub-slide-nav[data-target="1"]::after,
.sub-slider[data-active="2"] .slider-header .sub-slide-nav[data-target="2"]::after,
.sub-slider[data-active="3"] .slider-header .sub-slide-nav[data-target="3"]::after {
    background: var(--ctaColor);
}

.slider-container {
    position: relative;
    width: 100%;
    overflow-x: hidden;
    display: flex;
}
.slider-container .slide {
    width: 100%;
    flex-shrink: 0;
    transition: .25s;
    display: flex;
    align-items: center;
}

.sub-slider[data-active="1"] .slider-container .slide:nth-child(1),
.sub-slider[data-active="1"] .slider-container .slide:nth-child(2),
.sub-slider[data-active="1"] .slider-container .slide:nth-child(3),
.sub-slider[data-active="1"] .slider-container .slide:nth-child(4) {
    transform: translateX(-100%);
}
.sub-slider[data-active="2"] .slider-container .slide:nth-child(1),
.sub-slider[data-active="2"] .slider-container .slide:nth-child(2),
.sub-slider[data-active="2"] .slider-container .slide:nth-child(3),
.sub-slider[data-active="2"] .slider-container .slide:nth-child(4) {
    transform: translateX(-200%);
}
.sub-slider[data-active="3"] .slider-container .slide:nth-child(1),
.sub-slider[data-active="3"] .slider-container .slide:nth-child(2),
.sub-slider[data-active="3"] .slider-container .slide:nth-child(3),
.sub-slider[data-active="3"] .slider-container .slide:nth-child(4) {
    transform: translateX(-300%);
}

.membership-slider .title {
    text-align: end;
}
.memberships-main .title .btn {
    border-color: var(--s3);
}
@media (max-width: 768px) {
    .memberships-main .title .btn {
        margin: 12px auto;
    }
    .slider-main.sub-slider {
        position: relative;
    }
    .slider-main.sub-slider::after {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 50%;
        height: 15px;
        width: 50px;
        transform: translate(-50%, -100%);
        clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
        background: #261200;
    }
    .slider-main.sub-slider .slider-nav.sub-slide-nav {
        margin-top: 6px;
        white-space: nowrap;
        width: fit-content;
        /* width: 50%; */
        text-align: center;
    }
    .slider-main.sub-slider .slide {
        padding: 0 12px;
    }
    .membership-card.card .card-button {
        display: none;
    }
    .membership-card.card .card-title {
        margin-bottom: 48px;
    }
}
.membership-slider .title .btn:hover {
    outline-color: var(--ctaColor);
}
.membership-slider .title h3 {
    color: var(--s7);
    margin-bottom: 24px;
    font-size: 32px;
}

.hero {
    position: relative;
    width: 100%;
    height: calc(95vh - var(--headerHeight, 0px));
    max-height: 50rem;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
}
.hero .background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--otherColor);
    display: flex;
    justify-content: end;
}
.hero .background svg {
    position: absolute;
    top: 0;
    height: 100%;
}
.hero .background > svg {
    fill: var(--background);
    opacity: .75;
}
.hero .background .split-1 {
    background: var(--background);
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 65%;
    overflow: hidden;
    clip-path: polygon(0 0, 100% 0, 50% 100%, 0% 100%);
}
.hero .background .split-1 svg {
    fill: var(--secondaryColor);
    opacity: .25;
}
.hero .background .split-2 {
    position: absolute;
    top: 0;
    left: 48%;
    transform: translateX(-50%);
    width: 50%;
    height: 100%;
    background: var(--background);
    clip-path: polygon(40% 0, 100% 0, 60% 100%, 0% 100%);
    opacity: 1;
}
.hero .content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100vw;
    z-index: 1;
}
.hero .title {
    display: flex;
    align-items: center;
    width: fit-content;
}
.hero h1 {
    text-transform: uppercase;
    font-size: 1.5vw;
    width: fit-content;
    display: flex;
    flex-direction: column;
    align-items: end;
    font-weight: bold;
    margin: 0 12px 0 0;
}

.hero .pro {
    text-transform: uppercase;
    display: flex;
    line-height: 1;
    font-family: "Archivo", sans-serif;
    
}
.hero .pro > div {
    font-weight: bolder;
    font-size: 7vw;
}
/* .hero .pro div:nth-child(1) {
    transform: skewX(-15deg);
} */
.hero .slides {
    display: flex;
    flex-direction: column;
    width: 25vw;
    overflow: hidden;
    perspective: 1000px;
    margin-left: 24px;
    transition: .5s;
}
.hero .pro .slides span {
    display: inline-block;
    position: absolute;
    font-weight: 100;
    
    color: var(--secondaryColor);
    opacity: 0;
    transform-style: preserve-3d;
}
.hero .pro .slides span.active {
    opacity: 1;
    transform: translateY(0) rotateX(0);
    transition: .5s;
}
.hero .slides span.next {
    transform: translateY(100%) rotateX(-180deg);
    transition: 1s;
}
.hero .slides span.prev {
    transform: translateY(-100%) rotateX(180deg);
    opacity: 0;
    transition: 1s;
}
.hero .sub {
    display: flex;
    justify-content: space-between;
    width: 600px;
    max-width: 90vw;
    margin-top: 36px;
}
.hero .sub a {
    color: var(--background);
}
.hero .sub p {
    font-size: 22px;
    color: var(--secondaryColor);
    width: 48%;
    text-align: end;
}

.hero .seal {
    position: absolute;
    bottom: 26px;
    right: 26px;
}
.hero .seal svg {
    height: 120px;
}
@media (max-width: 768px) {
    .hero {
        height: calc(85vh - var(--headerHeight, 0px))
    }
    .hero svg {
        top: 0 !important;
        left: 0 !important;
    }
    .hero .split-1 {
        display: block;
        clip-path: polygon(0% 0%, 100% 0%, 100% 65%, 50% 100%, 0% 100%) !important;
        width: 100vw !important;
    }
    .hero .split-2 {
        display: none;
    }
    .hero .title {
        flex-direction: column;
    }
    .hero h1 {
        font-size: 2.5vw;
        flex-direction: row;
        margin-right: auto;
    }
    .hero .pro > div {
        font-size: 12vw
    }
    .hero h1 div:not(:last-child) {
        margin-right: 4px;
    }
    .hero .sub {
        flex-direction: column;
        align-items: center;
        width: 100vw;
        max-width: unset;
        white-space: nowrap;
    }
    .hero .sub p {
        margin-top: 12px;
        width: 100%;
        text-align: center;
    }
    .hero .slides {
        margin-left: 12px;
    }
    .hero .seal svg {
        height: 60px;
    }
}

.doc-status.verifying {
    position: relative;
    padding-right: 16px;
}
.doc-status::before {
    content: attr(data-status);
} 
.doc-status.verifying::after {
    content: "";
    display: inline-block;
    position: absolute;
    height: 12px;
    width: 12px;
    top: 50%;
    left: 100%;

    border-top: 2px solid var(--primaryColor);
    border-right: 2px solid transparent;
    border-bottom: 0px solid transparent;
    border-left: 2px solid var(--primaryColor);

    border-radius: 50%;

    animation-name: btnLoading;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}


#gateCode {
    display: flex;
    align-items: center;
    justify-content: end;
    position: absolute;
    top: 0;
    right: 0;
    text-align: end;
}
#gateCode strong {
    margin-left: 8px;
    font-size: 24px;
    font-weight: bold;
    color: var(--ctaColor);
}

#tabsMain {
    position: relative;
    padding: 0;
}
#tabsMain #floatDetails {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    align-items: center;
}
.tabs-header ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}
.tabs-header .tab {
    position: relative;
    height: fit-content;
}
.tabs-header .tab a {
    display: block;
    padding: 12px 24px;
    margin: 0 6px;
    /* max-width: calc(25vw - 12px); */
    overflow-x: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    border: 1px solid black;
    border-bottom: 0;
    text-decoration: none;
    color: var(--primaryColor);
    border-radius: 3px 3px 0 0;
    background: #00000025;
    transition: .25s;
}
.tabs-header .tab a::after {
    display: none;
}
.tabs-header .tab:first-child a {
    margin-left: 0;
}
.tabs-header .tab:last-child a {
    margin-right: 0;
}
.tabs-header .tab a:not(.active):hover {
    box-shadow: 0 0 4px #00000050;
    background: var(--background);
}
.tabs-header .tab a.active {
    background: var(--background);
    padding: 12px 24px 13px 24px;
    transform: translateY(1px);
    z-index: 5;
}
#tabContent .card {
    max-width: 75vw
}
@media (max-width: 768px) {
    #gateCode {
        position: relative;
        right: unset;
        text-align: start;
        justify-content: start;
    }
    .tabs-header ul {
        flex-wrap: wrap;
    }
    .tabs-header .tab a,
    .tabs-header .tab a.active {
        font-size: 16px;
        padding: 8px;
        margin: 0 4px;
    }
    #tabsMain {
        padding-bottom: 64px;
    }
    #tabsMain #floatDetails {
        right: unset;
        left: 50%;
        transform: translateX(-50%);
        top: unset;
        bottom: 0;
        width: 75vw;
    }
    #tabsMain #floatDetails #logout {
        width: 100%;
    }
}

.tabs-header .tab[data-number]::after {
    content: attr(data-number);
    position: absolute;
    display: block;
    display: flex;
    height: 24px;
    width: 24px;
    font-size: 9pt;
    background: var(--ctaColor);
    color: var(--background);
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    top: 0;
    right: 0;
    transform: translateY(-50%);
    z-index: 5;
}

#tabContent {
    border: 1px solid black;
    background: var(--background);
    box-shadow: 0 0 4px #00000050;
    padding: 24px;
    border-radius: 0 0 3px 3px;
    z-index: 1;
    min-height: 185px;
}

.table {
    width: 100%;
    border: 1px solid var(--primaryColor);
}
.table tr {
    display: flex;
    width: fit-content;
    min-width: 100%;
}
.table tr:nth-child(odd) {
    background: var(--otherColor);
}
/* .table tr:nth-child(odd) .btn {
    border-color: var(--otherColor);
} */
.table tr:first-child {
    background: #00000020;
}
.table tr:not(:last-child) {
    border-bottom: 1px solid var(--primaryColor);
}
.table td, 
.table th {
    padding: 12px;
    min-width: 15%;
    display: flex;
    justify-content: start;
    align-items: center;
}
.table td:first-child, 
.table th:first-child {
    flex-grow: 1;
}
@media (max-width: 768px) {
    .table {
        display: flex;
        overflow-x: auto;
        width: fit-content;
        max-width: 100%;
        margin: 8px auto;
    }
    .table td {
        width: fit-content;
        white-space: nowrap;
    }
    #tabContent {
        padding: 12px 0;
    }
}

.contract-row.status-verifying td:first-child {
    position: relative;
}
.contract-row.status-verifying td:first-child a {
    display: none;
}
.contract-row.status-verifying td:first-child::after {
    border-top: 2px solid var(--primaryColor);
    border-left: 2px solid var(--primaryColor);
}
.contract-row.status-verifying td:first-child::before {
    content: 'Verifying';
    display: inline-block;
    padding: 6px 24px 6px 6px;
}

.gallery-main {
    position: relative;
    width: 100vw;
    overflow-x: hidden;
    margin: 48px 0;
}
.gallery-main:first-child {
    margin-top: 0;
}
.gallery-header  {
    position: relative;
    height: 48px;
    width: 100%;
    display: flex;
    align-items: center;
    padding: 0 85px;
}
.gallery-title {
    margin: 0;
    font-family: "Archivo", sans-serif;
    color: var(--p1);
    text-transform: uppercase;
    font-size: 24px;
    user-select: none;
}
.gallery-controls .next {
    height: 18px;
    width: 18px;
    position: absolute;
    border-top: 2px solid var(--n1);
    border-right: 2px solid var(--n1);
    border-bottom: 2px solid transparent;
    border-left: 2px solid transparent;
    right: 48px;
    top: 50%;
    cursor: pointer;
    transform: translateY(-50%) rotate(45deg);
}
.gallery-controls .prev {
    height: 18px;
    width: 18px;
    position: absolute;
    border-top: 2px solid var(--n1);
    border-right: 2px solid var(--n1);
    border-bottom: 2px solid transparent;
    border-left: 2px solid transparent;
    left: 48px;
    top: 50%;
    cursor: pointer;
    transform: translateY(-50%) rotate(-135deg);
}
.large-image .modal-body {
    position: relative;
    max-height: 90vh;
    max-width: 90vw;
    display: flex;
}
.large-image figure {
    position: relative;
    margin: 0;
}
.large-image img {
    object-fit: contain;
}

.gallery-main .gallery-container {
    display: flex;
}
.gallery-image {
    height: 282px;
    max-width: calc(90vw - 24px);
    margin: 12px;
    flex-shrink: 0;
    flex-grow: 0;
    cursor: pointer;
    box-shadow: 0 0 0 transparent;
    transition: .25s;
}
.gallery-image:hover {
    box-shadow: 0 0 4px #000000;
    overflow: hidden;
    border-radius: 4px;
}
@media (max-width: 768px) {
    .gallery-controls .prev,
    .gallery-controls .next {
        top: unset;
        right: 24px;
        bottom: 0;
    }
    .gallery-controls .prev {
        right: unset;
        left: 24px;
    }
    .gallery-header {
        height: 75px;
        padding: 0 48px;
    }
    .gallery-title {
        text-align: center;
        margin: 0 auto auto auto;
        font-size: 24px;
    }
}

#contactForm .modal-body {
    display: flex;
    padding: 0;
    overflow: hidden;
    border-radius: 5px;
    padding-left: 50%;
}
#contactForm section {
    width: 50%;
    padding: 60px;
}

#contactForm .title {
    width: 100%;
    color: var(--p2);
    font-size: 48px;
    margin-bottom: 12px;
}
#contactForm .modal-body section:first-child {
    position: absolute;
    left: 0;
    height: 100%;
    padding: 80px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(-25deg, var(--s2) 0%, var(--s3));
    color: var(--s8);
}
#contactForm .modal-body section.form {
    width: 100%;
}

#contactForm .modal-body section:first-child a {
    color: var(--p2);
}

#contactForm .form-input,
#contactForm textarea {
    width: 100%;
    border-radius: 4px;
    border-color: var(--s3);
    padding: 8px 12px;
    margin: 6px 0;
    outline: 2px solid transparent;
}
#contactForm textarea {
    min-height: 120px;
    max-height: 220px;
}
#contactForm .form-input:focus,
#contactForm textarea:focus {
    outline-color: var(--ctaColor);
}
#contactForm .close-modal {
    position: absolute;
    top: 0;
    right: 0;
    height: 48px;
    width: 48px;
    cursor: pointer;
}
#contactForm .close-modal::before,
#contactForm .close-modal::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
    height: 2px;
    width: 24px;
    background: var(--primaryColor);
}
#contactForm .close-modal::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
@media (max-width: 768px) {
    #contactForm .modal-body {
        flex-direction: column;
        padding: 0;
    }
    #contactForm section {
        width: 100% !important;
        position: relative !important;
        margin: 0;
    }
    #contactForm .modal-body section:first-child,
    #contactForm .modal-body section {
        padding: 24px !important;
    }
    #contactForm .modal-body section .btn {
        width: 100%;
    }
    #contactForm .close-modal::before,
    #contactForm .close-modal::after {
        background: var(--background);
    }
}

.grecaptcha-badge {
    display: none;
}

#packages h1 {
    color: var(--p1);
}

.level-selector {
    position: relative;
    width: 400px;
    max-width: 100%;
    margin: 0 auto;
    border-radius: 8rem;
    background: #F0F0F0;
    padding: 12px 0;
    display: flex;
    justify-content: space-around;
    cursor: pointer;
    user-select: none;
    box-shadow: inset 0 0 4px #00000040;
}
.level-selector .op {
    z-index: 1;
    width: 50%;
    text-align: center;
    color: #505050;
    transition: .25s;
}
.level-selector:not(.is-family) .op:nth-child(1) {
    color: var(--s7);
}
.level-selector .selector {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    border-radius: 8rem;
    width: 50%;
    background: var(--s2);
    transition: .25s;
}
.level-selector.is-family .selector {
    left: calc(50% - 6px);
}
.level-selector.is-family .op:nth-child(2) {
    color: var(--s7);
}

/* Base style */
.layer {
  transform-origin: center;
}

/* Very subtle, different motions */
.layer-1 {
  animation: drift1 5s ease-in-out infinite alternate;
}

.layer-2 {
  animation: drift2 7s ease-in-out infinite alternate;
}

.layer-3 {
  animation: drift3 10s ease-in-out infinite alternate;
}

@keyframes drift1 {
  from { transform: translate(0px, 0px); }
  to   { transform: translate(-8px, -4px); }
}

@keyframes drift2 {
  from { transform: translate(0px, 0px); }
  to   { transform: translate(6px, -3px); }
}

@keyframes drift3 {
  from { transform: translate(0px, 0px); }
  to   { transform: translate(-4px, 5px); }
}