﻿/*** GENERAL ***/

body {
    background-color: #ffffff;
    color: #000000;
    font-family: 'Open Sans', sans-serif;
    font-size: 20px;
    font-weight: normal;
    overflow-x: hidden;
}

body.member-login-open {
    overflow: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
}

h1 {
    font-size: 44px;
}

h2 {
    font-size: 36px;
}

h3 {
    font-size: 26px;
}

h4 {
    font-size: 24px;
}

h5 {
    font-size: 22px;
}

h6 {
    font-size: 20px;
}

.container-fluid {
    margin: 0;
    padding: 0;
    position: relative;
}

    .container-fluid.initial {
        position: initial;
    }

.row > [class*='col-'] {
    display: flex;
    flex-direction: column;
}

a,
a:visited,
a:hover {
    text-decoration: none;
    color: #ffffff;
}

.hide {
    display: none;
}

.black {
    background-color: #000000;
}

.fixed {
    position: fixed !important;
}

main.overflowHidden {
    height: 100vh;
    overflow: hidden;
}

@media (min-width: 768px) {
    .mobile {
        display: none;
    }
}

@media (max-width: 767px) {
    .desktop {
        display: none;
    }
}
/*** [END] GENERAL ***/
/*** HEADER ***/

.headerbar {
    height: 70px;
    width: 100%;
    position: fixed;
    top: 0;
    z-index: 50;
    background-color: #000000;
}

    .headerbar.not-sticky {
        position: absolute;
    }

    .headerbar .logo {
        width: 10%;
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
    }

    .headerbar .icon {
        height: 24px;
        width: auto;
        position: absolute;
        top: 50%;
        transform: translate(0, -50%);
        cursor: pointer;
    }

        .headerbar .icon.menu {
            left: 15px;
            height: 45px;
        }

        .headerbar .icon.shop {
            right: 25px;
            display: none;
        }

    .headerbar .language {
        color: #9D9D9D;
        font-weight: 400;
        position: absolute;
        top: 50%;
        transform: translate(0, -50%);
        left: 110px;
    }

    .headerbar .icon.close-nav {
        height: 19px;
        left: 32px;
        display: none;
    }

        .headerbar .icon.close-nav.open {
            display: block;
        }

    .headerbar .hiddenButton {
        top: 50%;
        position: absolute;
        width: 100px;
        height: 50px;
        right: 150px;
        transform: translateY(-50%);
        cursor: pointer;
        z-index: 1;
    }

    .headerbar .member-auth {
        position: absolute;
        right: 20px;
        top: 50%;
        transform: translateY(-50%);
        z-index: 2;
    }

    .headerbar .back-to-top {
        position: absolute;
        left: 20px;
        top: 50%;
        transform: translateY(-50%);
        z-index: 2;
    }

    .headerbar .member-auth form {
        margin: 0;
        margin-top: -5px;
    }

    .headerbar .member-auth-button {
        border-radius: 30px;
        cursor: pointer;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: .04em;
        min-width: 70px;
        padding: 5px 13px;
        text-transform: none;
        transition: background-color .2s ease, border-color .2s ease, color .2s ease;
    }

    .headerbar .member-auth-button.member-auth-button--login {
        background-color: #D4B660;
        border: 1px solid #D4B660;
        color: #0A0A0A;
    }

    .headerbar .member-auth-button.member-auth-button--logout {
        background-color: rgba(0, 0, 0, .65);
        border: 1px solid #ffffff;
        color: #ffffff;
    }

    .headerbar .member-auth-button:hover {
        opacity: .92;
    }

    .headerbar.nav-open .member-auth {
        display: none;
    }

@media (max-width: 991px) {
    .headerbar {
        height: 60px;
    }

        .headerbar .icon {
            height: 16px;
        }

            .headerbar .icon.menu {
                left: 10px;
                height: 30px;
            }

            .headerbar .icon.shop {
                right: 20px;
            }

            .headerbar .icon.close-nav {
                height: 16px;
                left: 20px;
            }

        .headerbar .language {
            left: 65px;
            font-size: 13px;
        }

        .headerbar .hiddenButton {
            width: 70px;
            height: 30px;
            right: 105px;
        }

        .headerbar .member-auth {
            right: 15px;
            display: flex;
            align-items: center;
        }

        .headerbar .back-to-top {
            left: 15px;
            display: flex;
            align-items: center;
        }

        .headerbar .member-auth-button {
            min-width: 58px;
            padding: 3px 10px;
        }
}

@media (max-width: 767px) {
    .headerbar {
        height: 100px;
    }

    .headerbar .logo {
        height: 22px;
        width: auto;
        top: 20px;
        transform: translateX(-50%);
    }

    .headerbar .icon {
        top: 31px;
    }

    .headerbar .icon.close-nav {
        height: 14px;
        right: 20px;
        left: unset;
    }

    .headerbar .back-to-top {
        left: 50%;
        right: auto;
        top: auto;
        bottom: 14px;
        transform: translateX(calc(-100% - 6px));
    }

    .headerbar .member-auth {
        left: auto;
        right: 50%;
        top: auto;
        bottom: 14px;
        transform: translateX(calc(100% + 6px));
    }

    .headerbar .member-auth form {
        margin-top: 0;
    }
}

@media (max-width: 499px) {
    .headerbar .hiddenButton {
        width: 50px;
        right: 95px;
    }

    .headerbar .member-auth-button {
        font-size: 10px;
        min-width: 54px;
        padding: 3px 9px;
    }
}
/*** [END] HEADER ***/
/*** MEMBER LOGIN ***/

.member-login-modal {
    align-items: flex-start;
    background: rgba(0, 0, 0, 0.75);
    display: flex;
    inset: 0;
    justify-content: center;
    opacity: 0;
    padding: 16px;
    padding-top: 8vh;
    pointer-events: none;
    position: fixed;
    transition: opacity .2s ease, visibility .2s ease;
    visibility: hidden;
    z-index: 100;
}

    .member-login-modal.open {
        opacity: 1;
        pointer-events: auto;
        visibility: visible;
    }

    .member-login-open.member-login-kb .member-login-modal {
        align-items: flex-start;
        padding-top: 15px;
    }

    .member-login-modal__dialog {
        background-color: #0A0A0A;
        border-radius: 28px;
        box-shadow: 0 18px 50px rgba(0, 0, 0, .25);
        color: #ffffff;
        display: flex;
        flex-direction: column;
        max-width: 340px;
        padding: 28px 22px 26px;
        position: relative;
        width: 100%;
    }

    .member-login-modal--welcome .member-login-modal__dialog {
        padding: 32px 28px 32px;
    }

    @media (max-width: 767px) {
        .member-login-modal--welcome {
            background: rgba(0, 0, 0);
        }
    }

    .member-login-modal__header {
        align-items: center;
        display: flex;
        justify-content: center;
        margin-bottom: 4px;
        position: relative;
        text-align: center;
    }

    .member-login-modal__brand {
        color: #BFBFBF;
        display: block;
        font-size: 12px;
        font-weight: 400;
        letter-spacing: 0.18em;
    }

    .member-login-modal__content {
        align-items: center;
        display: flex;
        flex: 1;
        flex-direction: column;
        justify-content: center;
        padding: 22px 8px 16px;
        text-align: center;
    }

    .member-login-modal__message {
        color: #FFFFFF;
        font-size: 28px;
        font-weight: 600;
        line-height: 1.15;
        margin: 0;
        text-align: center;
    }

    .member-login-modal--welcome .member-login-modal__message {
        font-size: 36px;
    }

    /* Login states render the message as a bold footnote BELOW the code entry
       (the thank-you modal keeps the large base heading above its body). */
    .member-login-modal--login .member-login-modal__message,
    .member-login-modal--error .member-login-modal__message {
        font-size: 18px;
        font-weight: 700;
        line-height: 1.3;
        margin-top: 24px;
    }

    .member-login-modal--welcome .member-login-modal__message {
        margin-top: 22px;
    }

    .member-login-modal__subtext {
        color: #FFFFFF;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.45;
        margin: 10px 0 0;
        text-align: center;
    }

    .member-login-modal__form {
        margin: 0;
        width: 100%;
    }

    .member-login-modal__entry {
        margin-top: 18px;
        padding: 0 10px;
        position: relative;
        width: 100%;
    }

    .member-login-modal__input {
        background: transparent;
        border: 0;
        bottom: -8px;
        color: transparent;
        caret-color: #ffffff;
        font-size: 18px;
        left: 0;
        letter-spacing: 0;
        opacity: .01;
        position: absolute;
        right: 0;
        width: 100%;
        z-index: 2;
    }

    .member-login-modal__input:focus {
        outline: none;
    }

    .member-login-modal__slots {
        align-items: flex-end;
        display: flex;
        gap: 10px;
        justify-content: center;
        width: 100%;
    }

    .member-login-modal__slot {
        border-bottom: 4px solid rgba(255, 255, 255, 0.3);
        box-sizing: border-box;
        color: #ffffff;
        display: flex;
        font-size: 22px;
        font-weight: 600;
        height: 30px;
        justify-content: center;
        line-height: 1;
        position: relative;
        text-align: center;
        align-items: flex-start;
        width: 24px;
    }

    /* Empty slots show a faded "0" placeholder; the real digit replaces it once typed. */
    .member-login-modal__slot:not(.is-filled)::before {
        color: rgba(255, 255, 255, 0.32);
        content: "0";
        font-weight: 600;
    }

    .member-login-modal__slot.is-active {
        border-bottom-color: rgba(255, 255, 255, 0.5);
    }

    .member-login-modal__slot.is-filled {
        border-bottom-color: #FFFFFF;
        color: #FFFFFF;
    }

    .member-login-modal__close-btn {
        background: transparent;
        border: 0;
        color: #FFFFFF;
        cursor: pointer;
        font-size: 22px;
        font-weight: 300;
        line-height: 1;
        padding: 4px 8px;
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        transition: opacity .15s ease;
    }

        .member-login-modal__close-btn:hover {
            opacity: .7;
        }

    .member-login-modal__submit {
        background: #D4B660;
        border: 1px solid #D4B660;
        border-radius: 30px;
        color: #0A0A0A;
        cursor: pointer;
        display: block;
        font-size: 14px;
        font-weight: 600;
        letter-spacing: 0.12em;
        margin: 22px auto 0;
        padding: 18px 24px;
        text-transform: uppercase;
        width: 100%;
    }

    .member-login-modal__sr-only {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
    }

@media (min-width: 768px) {
    .headerbar .member-auth-button {
        border-radius: 30px;
        font-size: 14px;
        min-width: 88px;
        padding: 7px 18px;
    }

    .member-login-modal {
        padding: 24px;
        padding-top: 8vh;
    }

    .member-login-modal__dialog {
        border-radius: 28px;
        max-width: 390px;
        padding: 32px 28px 30px;
    }

    .member-login-modal--welcome .member-login-modal__dialog {
        max-width: 370px;
        padding: 36px 32px 36px;
    }

    .member-login-modal__content {
        padding: 26px 12px 16px;
    }

    .member-login-modal__message {
        font-size: 31px;
    }

    .member-login-modal--welcome .member-login-modal__message {
        font-size: 42px;
    }

    .member-login-modal__entry {
        margin-top: 26px;
        padding: 0 22px;
    }

    .member-login-modal__slots {
        gap: 12px;
    }

    .member-login-modal__slot {
        font-size: 24px;
        height: 34px;
        width: 28px;
    }
}

@media (max-width: 767px) {
    .member-login-modal {
        align-items: flex-start;
        padding: 0 16px;
        padding-top: 20vh;
    }

    .member-login-modal__dialog {
        border-radius: 28px;
        padding: 24px 20px 22px;
    }

    .member-login-modal__slot {
        width: 22px;
    }
}
/*** [END] MEMBER LOGIN ***/
/*** BACK TO TOP ***/

    .member-auth-button--back-to-top {
        background-color: transparent;
        border: 1px solid rgba(255, 255, 255, 0.4);
        color: #ffffff;
    }

        .member-auth-button--back-to-top:hover {
            border-color: #ffffff;
        }

/*** [END] BACK TO TOP ***/

/*** LANGUAGE ***/

.language-container {
    margin-top: 70px;
    padding: 10px 50px;
    background-color: rgba(0, 0, 0, .8);
    height: auto;
    width: 100%;
    position: fixed;
    z-index: 1;
    opacity: 0;
    visibility: hidden;
    transition: all .5s ease;
}

    .language-container.open {
        opacity: 1;
        visibility: visible;
    }

    .language-container h2 {
        display: none;
        font-weight: 600;
        font-size: 20px;
        text-align: center;
        color: #9D9D9D;
        margin: 0 10px 20px 10px;
    }

    .language-container a .languagebox {
        font-weight: 600;
        font-size: 12px;
        color: #9D9D9D;
        text-align: center;
        border: 1.5px solid #9D9D9D;
        border-radius: 3px;
        padding: 3px 0;
        margin: 5px 7.5px;
        cursor: pointer;
    }

    .language-container a.active .languagebox,
    .language-container a:hover .languagebox {
        border-color: #1DB954;
        color: #1DB954;
    }

@media (min-width: 768px) {
    .language-container .icon.close-page {
        top: 90px;
        right: 30px;
        height: 14px;
        position: fixed;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .language-container {
        margin-top: 60px;
    }

        .language-container .icon.close-page {
            top: 62px;
        }
}


@media (max-width: 767px) {
    .language-container {
        margin-top: 60px;
        padding: 75px 10px 0 10px;
        min-height: calc(100vh - 60px);
        background-color: #000000;
    }

        .language-container h2 {
            display: block;
        }

        .language-container .icon.close-page {
            top: 10px;
        }
}

@media (max-width: 400px) {
    .language-container .languagebox {
        margin: 10px 5px;
    }
}
/*** [END] LANGUAGE ***/
/*** NAVIGATION ***/

nav {
    display: block;
    position: fixed;
    height: auto;
    max-height: 100vh;
    overflow-y: scroll;
    -ms-overflow-style: none;
    z-index: 1;
}

    nav::-webkit-scrollbar {
        display: none;
    }

    nav.bottom {
        position: absolute;
        left: 0;
    }

    nav#hamburger {
        display: none;
        overflow-x: initial;
        overflow-y: auto;
        max-height: 100%;
        height: calc(100vh - 70px);
        background-color: rgba(0, 0, 0, .8);
        top: 70px;
        z-index: 1;
    }

    nav > ul {
        margin: 130px 0;
        padding: 0;
        width: 400px;
        font-size: 20px;
    }

    nav#hamburger > ul {
        margin: 0;
        width: 400px;
        height: auto;
    }

    nav > ul > li {
        padding: 10px 25px;
        list-style: none;
        list-style-type: none;
        border-top: 1px solid #EBEBEB;
        position: relative;
    }

    nav#hamburger > ul > li {
        padding: 10px 50px;
        border-top: 1px solid #2B2B2E;
    }

    nav > ul > li:last-child {
        border-bottom: 1px solid #EBEBEB;
    }

    nav#hamburger > ul > li:last-child {
        border-bottom: 1px solid #2B2B2E;
    }

    nav ul li.active > a,
    nav ul li:hover > a {
        color: #1DB954 !important;
    }

    nav ul li a,
    nav ul li a:visited,
    nav ul li a:hover {
        color: #000000;
    }

    nav#hamburger ul li a,
    nav#hamburger ul li a:visited,
    nav#hamburger ul li a:hover {
        color: #ffffff;
    }

    nav ul li .icon.dropdown {
        height: 8px;
        width: auto;
        position: absolute;
        top: 20px;
        right: 10px;
        cursor: pointer;
    }

    nav#hamburger ul li .icon.dropdown {
        right: 50px;
    }

    nav ul li .icon.dropdown.open {
        transform: rotate(180deg);
    }

    nav ul li .subnav {
        padding: 0 0 0 20px;
        opacity: 0;
        z-index: -1;
        max-height: 0;
        height: auto;
        transition: all 0.3s ease-in-out 0s, z-index 0s linear 0.01s;
    }

        nav ul li .subnav.open {
            opacity: 1;
            z-index: 1;
            max-height: 5000px;
        }

    nav#hamburger ul li .subnav {
        min-height: 0;
    }

    nav ul li .subnav li {
        color: #000000;
        padding-bottom: 18px;
        list-style: none;
        list-style-type: disc;
        font-size: 20px;
        line-height: 25px;
    }

        nav ul li .subnav li:first-child {
            padding-top: 20px;
        }

    nav#hamburger ul li .subnav li {
        color: #ffffff;
        font-size: 20px;
        padding-bottom: 10px;
    }

        nav#hamburger ul li .subnav li:first-child {
            padding-top: 10px;
        }

@media (max-width: 991px) {
    nav > ul,
    nav#hamburger > ul {
        width: 300px;
    }

    nav#hamburger {
        height: calc(100vh - 60px);
        top: 60px;
    }
}

@media (max-width: 767px) {
    nav#hamburger {
        background-color: #000000;
        position: unset;
        overflow-y: auto;
        height: 100vh;
    }

        nav#hamburger > ul {
            min-height: 100vh;
            margin: 100px 0 50px 0;
            width: 100%;
        }

            nav#hamburger > ul > li {
                padding: 15px 20px;
                font-size: 22px;
            }

        nav#hamburger ul li .subnav li {
            padding-bottom: 10px;
        }

        nav#hamburger ul li .icon.dropdown {
            height: 8px;
            right: 20px;
            top: 28px;
        }

        nav#hamburger ul li .subnav li {
            font-size: 20px;
        }
}
/*** [END] NAVIGATION ***/
/*** GRID ***/
/* GENERAL */

.grid .wrapper {
    height: 100%;
    position: relative;
}

.grid img {
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
}

.grid .image, .grid .video {
    width: 100%;
    object-position: center top;
}

.grid .image,
.grid video.video {
    object-fit: cover;
}

.grid video.video {
    height: 100%;
}

.grid iframe.video {
    margin-top: -5px;
    margin-bottom: -12px;
    height: calc(100vw / 16 * 9);
}

/* [END] GENERAL */
/* ICONS */

.grid .logo-container {
    background-color: #000000;
}

    .grid .logo-container .logo {
        width: 50%;
        height: auto;
        display: block;
        margin: 17.9% auto;
    }

.grid .icon.logo {
    cursor: pointer;
    position: absolute;
    width: 20%;
    height: auto;
    left: 50%;
    bottom: 25px;
    transform: translate(-50%, 0);
    z-index: 20;
}

    .grid .icon.logo.wide {
        width: 10%;
    }

    .grid .icon.logo.high {
        width: 30%;
    }

.grid .icon.flip {
    cursor: pointer;
    width: auto;
    position: absolute;
    height: 55px;
    right: 0px;
    top: 0px;
    padding: 20px;
    z-index: 5;
}

@media (max-width: 767px) {
    .grid .logo-container .logo {
        width: 35%;
        margin: 39px auto;
    }

    .grid .icon.logo,
    .grid .icon.logo.wide,
    .grid .icon.logo.high {
        width: 35%;
    }
}

@media (max-width: 575px) {
    .grid .logo-container {
        height: 100px;
    }

        .grid .logo-container .logo {
            height: 22px;
            width: auto;
        }

    .grid .icon.logo,
    .grid .icon.logo.wide {
        height: 22px;
        width: auto;
        bottom: 10px;
    }

        .grid .icon.logo#noFoxy,
        .grid .icon.logo.wide#noFoxy {
            height: 52px;
        }

    .grid .icon.flip {
        padding: 15px;
    }
}
/* [END] ICONS */
/* GALLERY */

.grid .gallery.front {
    cursor: pointer;
}

.grid .gallery {
    position: absolute;
    left: -150%;
    top: 0;
    opacity: 0;
    transition: opacity .5s ease, left .3s ease 1s;
}

    .grid .gallery.active {
        position: initial;
        opacity: 1;
    }

    .grid .gallery.back > div {
        height: 0;
    }

    .grid .gallery.back.active > div {
        height: auto;
    }

    .grid .gallery.front .titlebox {
        position: absolute;
        top: 7%;
        right: 2.5%;
        background-color: rgba(0, 0, 0, .8);
        padding: 10px 30px;
        z-index: 10;
        transition: all .2s ease-in-out;
    }

    .grid .gallery.back .titlebox {
        margin: -12.5px 0 50px 0;
        width: 95%;
    }

    .grid .gallery.front .titlebox:hover {
        opacity: .7;
        background-color: #000000;
    }

    .grid .gallery .titlebox .title {
        font-weight: 600;
        font-size: 34px;
        color: #ffffff;
        margin: 0;
    }

    .grid .gallery .titlebox .author {
        font-size: 18px;
        line-height: 25px;
        color: #1DB954;
        font-family: 'Roboto', sans-serif;
        margin: 0;
    }

    .grid .gallery .text {
        color: #ffffff;
        font-size: 22px;
        margin-bottom: 70px;
    }

    .grid .gallery picture {
        position: relative;
    }

    .grid .gallery.back .source {
        background-color: #000000;
        color: #9D9D9D;
        width: auto;
        line-height: 20px;
        font-size: 15px;
        margin: 10px auto 0 auto;
        padding: 0;
        height: 0
    }

    .grid .gallery.back.active .source {
        height: auto;
    }

    .grid .gallery.back .wrapper-text {
        margin: 75px 64px 95px 64px;
    }

    .grid .gallery.back .image {
        height: 0;
        width: auto;
        max-width: 960px;
        max-height: 640px;
        object-fit: contain;
    }

    .grid .gallery.back.active .image {
        height: 100%;
    }

    .grid .gallery .spickel {
        display: none;
        position: absolute;
        height: 23px;
        left: 40px;
        z-index: 10;
    }

    .grid .gallery .icon.close-page {
        top: -37.5px;
        right: 0;
        z-index: 1500;
    }

    .grid .gallery.front .icon.close-page {
        top: 15px;
        right: 15px;
    }

@media (max-width: 1450px) {
    .grid .gallery.back .titlebox {
        margin: -10px 0 50px 0;
    }

    .grid .gallery .titlebox .title {
        font-size: 28px;
    }

    .grid .gallery .titlebox .author, .grid .gallery .text {
        font-size: 20px;
    }
}

@media (max-width: 1199px) {
    .grid .gallery.back .titlebox {
        margin: 16px 0 50px 0;
    }

    .grid .gallery.back .wrapper-text {
        margin: 50px 45px 95px 45px;
    }

    .grid .gallery .icon.close-page {
        top: -25px;
    }
}

@media (max-width: 1000px) {
    .grid .gallery.front .titlebox {
        right: 5%;
        padding: 20px;
    }

    .grid .gallery .titlebox .title {
        font-size: 26px;
    }

    .grid .gallery .titlebox .author,
    .grid .gallery .text {
        font-size: 16px;
    }

    .grid .gallery.front .icon.close-page {
        top: 10px;
        right: 10px;
        height: 15px;
    }
}

@media (max-width: 900px) {
    .grid .gallery.back .wrapper-text {
        margin-top: 25px;
    }

    .grid .gallery.back .titlebox {
        margin: 50px 0 25px 0;
    }

    .grid .gallery .text {
        margin-bottom: 35px;
    }

    .grid .gallery .icon.close-page {
        height: 14px;
        top: 0;
        right: -20px;
    }
}

@media (max-width: 767px) {
    .grid .gallery.back .wrapper-text {
        margin: 20px;
    }

    .grid .gallery.back .titlebox {
        margin: 0 0 20px 0;
    }

    .grid .gallery.front .titlebox {
        display: block !important;
        position: unset;
        background-color: #000000;
    }

        .grid .gallery.front .titlebox:hover {
            opacity: 1;
        }

    .grid .gallery .titlebox .author {
        font-family: 'Open Sans', sans-serif;
    }

    .grid .gallery .titlebox .author,
    .grid .gallery .text {
        font-size: 18px;
    }

    .grid .gallery .text {
        margin-bottom: 0;
    }

    .grid .gallery .spickel {
        display: block;
    }

    .grid .gallery.back .source {
        font-size: 13px;
        line-height: 18px;
    }

    .grid .gallery.back .image {
        height: 0;
        width: auto;
        min-height: 0;
        max-height: 375px;
        max-width: 375px;
        margin: 0 auto;
    }

    .grid .gallery.back.active .image {
        height: auto;
    }

    .grid .gallery .icon.close-page#close {
        top: -10px;
        right: -10px;
        display: block;
    }
}

@media (max-width: 400px) {
    .grid .gallery.back .image {
        max-width: 100%;
    }
}
/* [END] GALLERY */
/* REVIEW */

.grid .review {
    background-color: #000000;
    color: #ffffff;
    font-family: 'Open Sans', sans-serif;
    padding: 70px 40px;
    position: relative;
    overflow-y: scroll;
    -ms-overflow-style: none;
}

    .grid .review::-webkit-scrollbar {
        display: none;
    }

    .grid .review .titlebox {
        position: absolute;
        background-color: black;
        padding: 50px 0 15px 0;
        top: 0;
        width: 100%;
        font-size: 20px;
    }

        .grid .review .titlebox .wrapper {
            width: calc(100% - 200px);
        }

            .grid .review .titlebox .wrapper.noImage {
                width: calc(100% - 80px);
            }

        .grid .review .titlebox .profile {
            width: 100px;
            height: 100px;
            margin: 0 20px 10px 0;
            border-radius: 50px;
        }

        .grid .review .titlebox .author {
            color: #1DB954;
            font-weight: 600;
            margin: 0;
        }

        .grid .review .titlebox .title {
            margin: 0;
        }

    .grid .review .text {
        font-size: 20px;
    }

    .grid .review .icon.flip {
        height: 59px;
    }

@media (max-width: 1525px) {
    .grid .review .titlebox {
        font-size: 16px;
    }
}

@media (max-width: 1450px) {
    .grid .review .text {
        font-size: 20px;
    }
}

@media (max-width: 1300px) {
    .grid .review {
        padding: 50px 25px 30px 20px;
    }

        .grid .review .titlebox {
            font-size: 16px;
        }

            .grid .review .titlebox .wrapper {
                width: calc(100% - 165px);
            }

                .grid .review .titlebox .wrapper.noImage {
                    width: calc(100% - 45px);
                }

        .grid .review .text {
            font-size: 16px;
        }

        .grid .icon.flip,
        .grid .review .icon.flip {
            height: 35px;
            padding: 10px;
        }
}

@media (max-width: 1199px) {
    .grid .review .titlebox .wrapper {
        width: calc(100% - 45px);
    }
}

@media (max-width: 992px) {
    .grid .review .titlebox .profile {
        width: 76px;
        height: 76px;
    }
}

@media (max-width: 767px) {
    .grid .review {
        padding-top: 35px;
    }

        .grid .review .titlebox .wrapper {
            width: calc(100% - 141px);
        }

        .grid .review .titlebox .profile {
            max-height: 75px;
        }

        .grid .review .titlebox {
            font-size: 20px;
        }

        .grid .review .text {
            font-size: 20px;
        }
}
/* [END] REVIEW */
/*** [END] GRID ***/
/*** SLICK SLIDER ***/

.gallery-slider#image-slider {
    padding: 20px 20px 0 20px;
}

    .gallery-slider#image-slider .slick-track {
        display: flex;
    }

        .gallery-slider#image-slider .slick-track .slick-slide {
            display: flex;
            height: auto;
            align-items: center;
            justify-content: center;
        }

.slick-counter {
    color: #9D9D9D;
    font-size: 16px;
    position: absolute;
    bottom: 0;
}

    .slick-counter img.prev,
    .slick-counter img.next {
        width: 10px;
        height: auto;
        margin-right: 20px;
        padding-bottom: 4px;
        cursor: pointer;
    }

    .slick-counter img.next {
        margin-left: 20px;
        margin-right: 0;
    }

@media (min-width: 768px) {
    .gallery-slider#image-slider {
        padding: 75px 0 75px 75px;
        top: 50%;
        left: 0;
        transform: translate(0, -50%);
    }
}

@media (max-width: 767px) {
    .slick-counter {
        bottom: 35px;
        left: 50%;
        transform: translate(-50%, 0);
    }

        .slick-counter img.prev,
        .slick-counter img.next {
            width: 8px;
        }

    .gallery-slider#image-slider {
        padding: 20px 20px 75px 20px;
    }

        .gallery-slider#image-slider .slick-track .slick-slide {
            align-items: start;
        }
}
/*** [END] SLICK SLIDER ***/
/*** TEXT-CONTAINER ***/

.text-container {
    margin-bottom: 110px;
}

    .content-container.text-container--accordion-compact {
        min-height: 0;
    }

    .text-container.text-container--symmetric {
        margin-right: 75px;
        margin-bottom: 0;
        min-height: 0;
    }

    .text-container.text-container--accordion-compact {
        margin-bottom: 0;
    }

    .text-container.text-container--accordion-compact .text-accordion,
    .text-container.text-container--accordion-compact .text-accordion__sticky,
    .home-connection .home-connection__form {
        box-sizing: border-box;
        max-width: 100%;
        width: 100%;
    }

    .text-container .text-block--accordeon {
        margin-bottom: 0;
    }

    .text-container.text-container--accordion-compact .text-block--accordeon {
        margin-bottom: 0;
    }

    .text-container .text-block:not(:first-child) h2,
    .text-container .text-block:not(:first-child) .subtitleIconWrapper {
        margin-top: 110px;
    }

    .text-container .text-block:not(:first-child).text-block--accordeon {
        margin-top: 0;
    }

    .text-container h2,
    .text-container .subtitleIconWrapper {
        margin-bottom: 40px;
    }

        .text-container h2:target,
        .text-container .subtitleIconWrapper:target {
            padding-top: 95px;
            margin-top: 15px !important;
        }

        .text-container .subtitleIconWrapper .icon img {
            height: 65px;
            width: auto;
        }

        .text-container .subtitleIconWrapper h2,
        .text-container .text-block:not(:first-child) .subtitleIconWrapper h2 {
            margin: 0 0 0 15px;
            font-size: 20px;
        }

    .text-container h3 {
        margin-bottom: 0;
    }

        .text-container .text .bold {
            font-weight: 700;
        }

        .text-container .text a {
            color: #000000;
        }

            .text-container .text a:active, .text-container .text a:hover {
                color: #1DB954;
            }

    .text-container .image {
        width: 100%;
        height: auto;
        margin-top: 40px;
        margin-bottom: 25px;
    }

    .text-container .text-accordion {
        position: relative;
    }

    .text-container .text-accordion__sticky {
        background-color: #000000;
        color: #ffffff;
        padding: 16px 20px;
        position: sticky;
        top: 70px;
        z-index: 5;
    }

    .text-container.text-container--accordion-compact .text-accordion__sticky {
        padding: 14px 20px;
    }

    .text-container .text-accordion__label-group {
        display: flex;
        flex-direction: column;
        flex: 1;
    }

    .text-container .text-accordion__subtitle {
        color: #ffffff;
        font-size: 16px;
        font-weight: 600;
        line-height: 1.1;
        margin-bottom: 2px;
    }

    /* Item 7: keep single-line "no content" bars compact... */
    .accordeon-title-row .text-accordion__sticky.text-accordion__toggle--no-content {
        padding-top: 5px;
        padding-bottom: 5px;
    }

    /* Item 5: ...but the "prepared for" bar carries a subtitle, so give it room
       to show both the subtitle and the company name even if it is taller. */
    .accordeon-title-row .text-accordion__sticky.text-accordion__toggle--has-subtitle {
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .text-container .text-accordion__title,
    .text-container .text-block:not(:first-child) .text-accordion__title {
        color: #ffffff;
        font-size: 30px;
        font-weight: 400;
        margin: 0;
    }

    .text-container .text-accordion__intro {
        padding: 24px 20px 10px;
    }

        .text-container .text-accordion__intro > :last-child {
            margin-bottom: 0;
        }

    .text-container .text-accordion__items {
        background-color: #000000;
    }

    .text-container .text-accordion__item {
        border-top: 1px solid #ffffff;
    }

    .text-block--accordeon + .text-block--accordeon .text-accordion__group-toggle,
    .text-container.home-connection .text-accordion__group-toggle {
        border-top: 1px solid #ffffff;
    }

    .text-container .text-accordion__toggle {
        align-items: center;
        background-color: #000000;
        border: 0;
        color: #ffffff;
        cursor: pointer;
        display: flex;
        font-size: 20px;
        font-weight: 400;
        justify-content: space-between;
        padding: 14px 20px;
        text-align: left;
        width: 100%;
    }

    .text-container .text-accordion__group-toggle {
        font-size: 30px;
        font-weight: 400;
        padding: 16px 20px;
        position: sticky;
        top: 70px;
        z-index: 5;
    }

        .text-container .text-accordion__toggle:focus {
            outline: none;
        }

        .text-container .text-accordion__toggle:focus-visible {
            outline: 2px solid #1DB954;
            outline-offset: 6px;
        }

    .text-container .text-accordion__toggle-label {
        display: block;
        flex: 1;
        padding-right: 24px;
    }

    @media (max-width: 767px) {
        .text-accordion__group-toggle .text-accordion__toggle-label {
            font-size: 26px;
        }

        .text-accordion__items .text-accordion__toggle-label {
            font-size: 20px;
        }
    }

    .text-container .text-accordion__next {
        color: #ffffff;
        cursor: pointer;
        flex-shrink: 0;
        font-size: 22px;
        line-height: 1;
        margin-right: 12px;
        user-select: none;
    }

    .text-container .text-accordion__icon {
        border-bottom: 3px solid #ffffff;
        border-right: 3px solid #ffffff;
        display: block;
        flex-shrink: 0;
        height: 16px;
        transform: rotate(45deg);
        transition: transform .2s ease;
        width: 16px;
    }

    .text-container .text-accordion__toggle[aria-expanded="true"] .text-accordion__icon {
        transform: rotate(-135deg);
    }

    .text-accordion__item.is-visited > .text-accordion__toggle .text-accordion__icon,
    .text-accordion.is-visited > .text-accordion__group-toggle .text-accordion__icon {
        border-bottom-color: #f4d36c;
        border-right-color: #f4d36c;
    }

    .text-container .text-accordion__toggle[aria-expanded="true"] .text-accordion__toggle-label {
        color: #f4d36c;
    }

    .text-container .text-accordion__group-toggle[aria-expanded="true"] .text-accordion__toggle-label {
        color: #f4d36c;
    }

    .text-container .text-accordion__panel[hidden] {
        display: none !important;
    }

    .text-container .text-accordion__panel {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.35s ease;
    }

    .text-container .text-accordion__panel.is-open {
        max-height: 4000px;
    }

    .text-container .text-accordion__panel-inner {
        font-size: 20px;
        background-color: #ffffff;
        padding: 22px 20px 24px;
    }

    .text-container .text-accordion__panel-next,
    .text-container .text-accordion__panel-connect {
        background: #D4B660;
        border: 1px solid #D4B660;
        border-radius: 30px;
        color: #0A0A0A;
        cursor: pointer;
        display: block;
        font-size: 14px;
        font-weight: 700;
        letter-spacing: .04em;
        margin: 16px auto 0;
        padding: 8px 32px;
        transition: background-color .2s ease, border-color .2s ease, color .2s ease;
        width: fit-content;
    }

        .text-container .text-accordion__panel-next:hover,
        .text-container .text-accordion__panel-connect:hover {
            opacity: .92;
        }

        .text-container .text-accordion__panel-next:focus,
        .text-container .text-accordion__panel-connect:focus {
            outline: none;
        }

        .text-container .text-accordion__panel-next:focus-visible,
        .text-container .text-accordion__panel-connect:focus-visible {
            outline: 2px solid #1DB954;
            outline-offset: 4px;
        }

    .text-accordion__panel-actions {
        align-items: center;
        display: flex;
        gap: 10px;
        justify-content: center;
        margin-top: 16px;
    }

        .text-accordion__panel-actions .text-accordion__panel-next,
        .text-accordion__panel-actions .text-accordion__panel-connect {
            margin: 0;
        }

    .text-container .text-accordion__toggle--no-content {
        cursor: default;
    }

    .accordeon-title-row + .accordeon-items-row {
        margin-top: 0;
    }

    .accordeon-title-row + .accordeon-title-row {
        margin-top: 0;
    }

    .accordeon-title-row + .accordeon-title-row .text-accordion__sticky,
    .accordeon-items-row .text-accordion__group-toggle:not(:first-child) {
        border-top: 1px solid #ffffff;
    }

.with-navigation main > .accordeon-title-row:first-child {
    margin-top: -55px;
}

    .home-connection .home-connection__intro-text {
        color: #000000;
        padding: 22px 20px 0;
    }

        .home-connection .home-connection__intro-text > :last-child {
            margin-bottom: 0;
        }

    .home-connection .home-connection__form {
        background-color: #ffffff;
        padding: 22px 20px 24px;
    }

    /* Confirmation message: sized like the "Let's connect" title, with extra top spacing */
    .home-connection .umbraco-forms-submitmessage {
        color: #000000;
        display: block;
        font-size: 30px;
        font-weight: 400;
        line-height: 1.2;
        margin: 48px 0 24px;
    }

    .home-connection .umbraco-forms-submitmessage p {
        margin: 0;
    }

    .home-connection .umbraco-forms-navigation {
        text-align: center;
        justify-content: center;
    }

    .home-connection .umbraco-forms-field-wrapper {
        position: relative;
    }

        .home-connection .umbraco-forms-field-wrapper .caption {
            position: absolute;
            top: 12.5px;
            left: 15px;
            font-size: 16px;
            transition: all .5s ease;
        }

        .home-connection .umbraco-forms-field-wrapper.isFilled .caption {
            font-size: 12px;
            top: 0;
            left: 10px;
        }

        .home-connection .umbraco-forms-field-wrapper input.text {
            padding-top: 15px;
        }

    .home-connection .umbraco-forms-page {
        max-width: none;
        width: 100%;
    }

    .home-connection .umbraco-forms-form,
    .home-connection .umbraco-forms-container {
        max-width: 100%;
        width: 100%;
    }

    .home-connection .umbraco-forms-page .row {
        margin-left: 0;
        margin-right: 0;
    }

    .home-connection .umbraco-forms-page .umbraco-forms-container {
        padding-left: 0;
        padding-right: 0;
    }

    .home-connection .umbraco-forms-page input.text,
    .home-connection .umbraco-forms-page textarea,
    .home-connection .umbraco-forms-page select {
        box-sizing: border-box;
        width: 100%;
    }

        .text-container .text-accordion__panel-inner > :last-child {
            margin-bottom: 0;
        }

.icon.close-page {
    height: 19px;
    top: 105px;
    right: 30px;
    width: auto;
    position: absolute;
    cursor: pointer;
    z-index: 1;
}

@media (max-width: 1500px) {
    .text-container h2 {
        font-size: 32px;
        margin-bottom: 25px;
    }
}

@media (max-width: 1199px) {
    .text-container {
        margin-bottom: 80px;
    }

        .text-container.text-container--symmetric {
            margin-right: 75px;
        }

        .text-container .text-block:not(:first-child) h2 {
            margin-top: 80px;
        }

        .text-container .text-block:not(:first-child).text-block--accordeon {
            margin-top: 0;
        }

        .text-container .text-block--accordeon {
            margin-bottom: 0;
        }
}

@media (max-width: 992px) {
    .text-container .text-accordion__sticky,
    .text-container .text-accordion__group-toggle {
        top: 60px;
    }

    .icon.close-page {
        top: 65px;
    }
}

#video-next-btn,
.video-next-btn,
.video-connect-btn {
    background: #D4B660;
    border: 1px solid #D4B660;
    border-radius: 30px;
    bottom: 25%;
    color: #0A0A0A;
    cursor: pointer;
    display: none;
    font-size: 14px;
    font-weight: 700;
    left: 50%;
    letter-spacing: .04em;
    padding: 8px 32px;
    position: absolute;
    transform: translateX(-50%);
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
    z-index: 11;
}

    #video-next-btn:hover,
    .video-next-btn:hover,
    .video-connect-btn:hover {
        opacity: .92;
    }

/* Member-only Next + Connect buttons on the second buyer video: stacked
   vertically, centred horizontally, anchored in the lower third of the video.
   The base .video-next-btn / .video-connect-btn rules position each button
   absolutely on its own; inside the stack they flow in normal column order. */
.video-next-stack {
    align-items: center;
    bottom: 25%;
    display: none;
    flex-direction: column;
    gap: 12px;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    z-index: 11;
}

    .video-next-stack.is-visible {
        display: flex;
    }

    .video-next-stack .video-next-btn,
    .video-next-stack .video-connect-btn {
        bottom: auto;
        display: block;
        left: auto;
        margin: 0;
        position: static;
        transform: none;
    }

/* When the sequence Next button is shown alongside the Play button, stack the
   two around the vertical centre with a fixed gap so both stay clickable
   regardless of the video's rendered height (short videos otherwise overlap). */
.col-12.has-video-next .video-start-btn {
    top: 50%;
    bottom: auto;
    transform: translate(-50%, calc(-50% - 26px));
}

.col-12.has-video-next .video-next-btn {
    top: 50%;
    bottom: auto;
    transform: translate(-50%, calc(-50% + 26px));
}

.video-start-btn {
    background: #D4B660;
    border: 1px solid #D4B660;
    border-radius: 30px;
    color: #0A0A0A;
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    left: 50%;
    letter-spacing: .04em;
    padding: 8px 32px;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
    z-index: 10;
}

    .video-start-btn:hover {
        opacity: .92;
    }

@media (max-width: 767px) {
    .text-container.text-container--symmetric {
        margin-right: 0;
    }

    .content-container.text-container--accordion-compact {
        padding-left: 0;
        padding-right: 0;
    }

    .text-container .text-accordion__sticky,
    .text-container .text-accordion__group-toggle {
        padding: 12px 16px;
        top: 60px;
    }

    .text-container.text-container--accordion-compact .text-accordion__sticky {
        padding: 14px 16px;
    }

    .text-container .text-accordion__subtitle {
        font-size: 12px;
    }

    .text-container .text-accordion__intro {
        padding: 20px 16px 8px;
    }

    .text-container .text-accordion__toggle,
    .text-container .text-accordion__panel-inner {
        font-size: 18px;
    }

    .text-container .text-accordion__toggle {
        padding: 14px 16px;
    }

    .text-container .text-accordion__icon {
        border-bottom-width: 2px;
        border-right-width: 2px;
        height: 14px;
        width: 14px;
    }

    .text-container .text-accordion__panel-inner {
        padding: 18px 16px 22px;
    }

    .home-connection .home-connection__form {
        padding: 18px 16px 22px;
    }
}
/*** [END] TEXT-CONTAINER ***/
/*** CONTENT ***/

.with-navigation main {
    padding-top: 125px;
}

@media (max-width: 767px) {
    .with-navigation main {
        padding-top: 115px;
    }
}

.content-container {
    padding-top: 125px;
    margin-left: 75px;
    margin-right: 75px;
    min-height: 300px;
}

.with-navigation .content-container {
    padding-top: 0;
}

/* Item 2: the "Let's connect" block sits directly under the image grid with no gap */
.content-container.home-connection {
    padding-top: 0;
}

@media (max-width: 767px) {
    .content-container {
        margin-left: 0;
        margin-right: 0;
        min-height: unset;
    }
}

.without-navigation .content-container {
    margin-left: 75px;
}

.without-navigation .text-container.text-container--symmetric {
    margin-right: 75px;
}

.without-navigation main {
    display: flow-root;
}

@media (max-width: 992px) {
    .without-navigation .content-container {
        margin-left: 75px;
    }
}

@media (max-width: 767px) {
    .without-navigation .content-container {
        margin-left: 0;
    }

    .without-navigation .text-container.text-container--symmetric {
        margin-right: 0;
    }
}

/* Item 5: keep disclaimer / regular text blocks off the screen edge on mobile */
@media (max-width: 767px) {
    .text-container .text-block:not(.text-block--accordeon) {
        padding-left: 15px;
        padding-right: 15px;
    }
}

/* Item 10: on desktop let the black accordion bars bleed to the screen edge,
   moving the container's 75px side margin into the bars' padding. */
@media (min-width: 768px) {
    .text-container .text-accordion,
    .text-container.text-container--accordion-compact .text-accordion {
        width: calc(100% + 150px);
        max-width: none;
        margin-left: -75px;
        margin-right: -75px;
    }

    .text-container .text-accordion__sticky,
    .text-container .text-accordion__group-toggle,
    .text-container .text-accordion__toggle,
    .text-container .text-accordion__intro,
    .text-container .text-accordion__panel-inner,
    .text-container.text-container--accordion-compact .text-accordion__sticky,
    .home-connection .home-connection__intro-text,
    .home-connection .home-connection__form {
        padding-left: 95px;
        padding-right: 95px;
    }
}

/* Mobile body-copy size: 18px across the board. */
@media (max-width: 767px) {
    body {
        font-size: 18px;
    }
}
/*** [END] CONTENT ***/

/*** FORM ***/
.form {
    margin-bottom: 25px;
}

    .form h2 {
        font-family: 'Open Sans', sans-serif;
        font-weight: 700;
        font-size: 36px;
    }

    .form .umbraco-forms-page {
        max-width: 425px;
    }

    .form .umbraco-forms-field-wrapper {
        position: relative;
    }

        .form .umbraco-forms-field-wrapper .caption {
            position: absolute;
            top: 12.5px;
            left: 15px;
            font-size: 16px;
            transition: all .5s ease;
        }

        .form .umbraco-forms-field-wrapper.isFilled .caption {
            font-size: 12px;
            top: 0;
            left: 10px;
        }

        .form .umbraco-forms-field-wrapper input.text {
            padding-top: 15px;
        }



@media (max-width: 1500px) {
    .form h2 {
        font-size: 32px;
    }
}

/*** [END] FORM ***/
/*** HOME SLIDER ***/
.home-slider {
    padding: 0;
}

    .home-slider .slide-img {
        width: 100vw;
        height: 100vh;
        object-fit: cover;
        object-position: center;
    }

    .home-slider .slick-prev,
    .home-slider .slick-next {
        z-index: 1;
        width: 40px;
        height: 40px;
        background-color: #FFFFFF;
        opacity: 0.5;
        border-radius: 50%;
    }

    .home-slider .slick-prev {
        left: 25px;
    }

    .home-slider .slick-next {
        right: 25px;
    }

        .home-slider .slick-prev:hover,
        .home-slider .slick-next:hover {
            opacity: 1;
        }

        .home-slider .slick-prev:before,
        .home-slider .slick-next:before {
            content: url(../_img/icons/desktop/slick_arrow.svg);
            color: #DFDFDF;
            margin: -2px -3px 0px 0;
        }

    .home-slider .slick-prev:before {
        display: inline-block;
        transform: rotate(180deg);
        margin: 3px 0px 0 -2px;
    }

@media screen and (max-width: 768px) {
    .home-slider .slick-prev,
    .home-slider .slick-next {
        background-color: transparent;
        opacity: 1;
    }

        .home-slider .slick-prev:before,
        .home-slider .slick-next:before {
            content: url(../_img/icons/smartphone/slick_arrow_mobile.svg);
        }
}
/*** [END] HOME SLIDER ***/
/*** FOOTER ***/
footer {
    padding: 50px;
    background-color: #000000;
}

    footer p {
        margin-bottom: 10px;
        color: #ffffff;
    }

    footer .metaLinks a.active,
    footer .metaLinks a:hover,
    footer a.active,
    footer a:hover {
        color: #1DB954;
    }

    footer .metaLinks,
    footer .metaLinks a {
        color: #ffffff;
        margin: 0 2.5px;
        font-size: 14px;
        text-align: center;
    }

    footer .icons {
        max-width: 270px;
    }

        footer .icons .icon {
            width: 50px;
            height: 50px;
            margin: 0 0 30px 40px;
            transition: border-color .2s ease-in-out, transform .2s ease-in-out;
        }

            footer .icons .icon:hover {
                border: solid 1.8px #1DB954;
                border-radius: 25px;
                transform: scale(1.1);
            }

@media (max-width: 767px) {
    footer {
        padding: 50px 25px;
    }

        footer .contact {
            display: none;
        }

        footer .icons {
            margin-top: 50px;
            max-width: 230px;
        }

            footer .icons .icon {
                margin: 0 40px 30px 0;
                border: solid 1.3px #1DB954;
                border-radius: 25px;
            }

            footer .icons a:nth-child(3n) .icon {
                margin-right: 0;
            }

        footer p {
            font-size: 18px;
        }
}
    .footer-bottom {
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        margin-top: 20px;
    }

        .footer-bottom .footer-links {
            position: absolute;
            left: 0;
        }

            .footer-bottom .footer-links a {
                color: #ffffff;
                font-size: 14px;
                margin-right: 12px;
                text-decoration: none;
            }

            .footer-bottom .footer-links a:hover {
                color: #1DB954;
            }

        .footer-bottom .copyright {
            color: #ffffff;
            font-size: 14px;
        }

/*** [END] FOOTER ***/

/*** BUY BUTTON ***/
.buyBtn {
    background: #000000;
    width: auto;
    text-align: center;
    padding: 5px 10px;
    border: 2px solid #1DB954;
    border-radius: 10px;
    position: absolute;
    bottom: 4%;
    right: 1vw;
    transition: all .3s linear;
    cursor: pointer;
    z-index: 21;
    display: flex;
    justify-content: center;
    align-items: center;
}

    .buyBtn a {
        color: #1DB954;
        font-weight: 600;
        font-size: 22px;
    }

    .buyBtn:hover {
        background: #1db954;
    }


        .buyBtn:hover a {
            color: #000000;
        }

@media (max-width: 1599px) {
    .buyBtn {
        padding: 5px;
    }

        .buyBtn a {
            font-size: 18px;
        }
}

@media (max-width: 1199px) {
    .buyBtn {
        padding: 2.5px;
    }

        .buyBtn a {
            font-size: 14px;
        }
}

@media (max-width: 767px) {
    .buyBtn {
        background: #1db954;
        padding: 5px 10px;
        right: 4%;
    }

        .buyBtn a {
            color: #000000;
            font-weight: 600;
            font-size: 28px;
        }
}

@media (max-width: 575px) {
    .buyBtn {
    }

        .buyBtn a {
            font-size: 18px;
        }
}
/*** [END] BUY BUTTON ***/

/*** Item 1: standardise all action buttons to 150px width with the login button's padding ***/
.headerbar .member-auth-button,
.member-login-modal__submit,
.text-accordion__panel-next,
.text-accordion__panel-connect,
.buyBtn,
.video-start-btn,
#video-next-btn,
.video-next-btn,
.video-connect-btn,
.form .btn,
.umbraco-forms-form input[type="submit"],
.umbraco-forms-form button[type="submit"] {
    box-sizing: border-box;
    width: 150px;
    min-width: 150px;
    max-width: 150px;
    padding: 7px 18px;
}
/*** [END] Item 1 ***/

/*** Foxylight button spec — mobile sizing (desktop values live on the base rules) ***/
@media (max-width: 767px) {
    .member-login-modal__submit,
    .text-container .text-accordion__panel-next,
    .text-container .text-accordion__panel-connect,
    #video-next-btn,
    .video-next-btn,
    .video-connect-btn,
    .video-start-btn {
        border-radius: 24px;
        font-size: 12.5px;
    }
}
/*** [END] Foxylight button spec — mobile sizing ***/

/*** Item 14: mobile header — keep the logo and both action buttons on one line.
     Placed after Item 1 so these override the fixed 150px button width on mobile.
     The logo dimensions are intentionally left untouched. ***/
@media (max-width: 767px) {
    .headerbar {
        height: 60px;
    }

    .headerbar .logo {
        top: 50%;
        transform: translate(-50%, -50%);
    }

    .headerbar .icon {
        top: 50%;
    }

    .headerbar .icon.close-nav {
        top: 50%;
        transform: translate(0, -50%);
    }

    .headerbar .back-to-top {
        left: 8px;
        right: auto;
        top: 50%;
        bottom: auto;
        transform: translateY(-50%);
    }

    .headerbar .member-auth {
        left: auto;
        right: 8px;
        top: 50%;
        bottom: auto;
        transform: translateY(-50%);
    }

    .headerbar .member-auth-button {
        width: auto;
        min-width: 0;
        max-width: 38vw;
        padding: 5px 10px;
        font-size: 11px;
        white-space: nowrap;
    }
}

@media (max-width: 360px) {
    .headerbar .member-auth-button {
        font-size: 10px;
        padding: 4px 8px;
    }
}
/*** [END] Item 14 ***/
