@import 'variables';

header {
    display: flex;
    justify-content: space-between;
    padding: 1.3rem 2rem;
    background-color: #ffffff;
    align-items: center;
    box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.12);
    position: relative;
    z-index: 999;
    font-family: "Nunito", sans-serif;
    background-color: #fff;

    @media(max-width:768px) {
        // height: 48px;
    }

    .logo {
        width: 100px;
        display: flex;
        z-index: 999;
        cursor: pointer;
        background-color: #fff;

        img {
            width: 100%;
            height: 100%;
        }
    }

    nav {
        display: flex;
        position: relative;
        z-index: -1;

        @media(max-width:768px) {
            top: -200%;
            display: flex;
            flex-direction: column;
            position: absolute;
            opacity: 0;
            transition: all 0.3s;

            &.open {
                top: 99%;
                left: 0;
                width: 100%;
                transition: all 0.3s;
                // padding: 5px 10px;
                background-color: #fff;
                height: auto;
                z-index: -1;
                opacity: 1;
                transition: all 0.3s;
                box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.12);

                a {
                    padding: 7px 10px;
                    font-size: 16px;
                }
            }
        }

        .menu-item {
            color: #000000;
            font-weight: 600;
            margin-right: 15px;
            display: inline-block;
            position: relative;
            transition: color 0.3s;
            font-size: 18px;

            &.active {
                font-weight: bold;
                color: #{map-get($colors, primary)};

                 &::after {
                    content: "";
                    position: absolute;
                    top: 120%;
                    left: 0;
                    height: 2px;
                    width: 100%;
                    background: #{map-get($colors, primary)};
                    transform: scaleX(1);
                    transform-origin: left;
                    transition: transform 0.3s;
                }
            }

            &::after {
                content: "";
                position: absolute;
                top: 120%;
                left: 0;
                height: 2px;
                width: 100%;
                background: #{map-get($colors, primary)};
                transform: scaleX(0);
                transform-origin: left;
                transition: transform 0.3s;
            }

            &:hover {
                color: #{map-get($colors, primary)};
                cursor: pointer;
            }

            &:hover::after {
                transform: scaleX(1);
            }
        }
    }

    .mobile-toggler {
        background-color: #fff;
        border: none;
        font-size: 18px;

        @media(min-width: 769px) {
            display: none;
        }
    }
}

.home-banner {
    height: calc(100vh - 55px);
    padding: 50px 0;
    display: flex;
    background-color: #{map-get($colors, white)};
    opacity: 0;
    animation: slideUp 1s ease-in-out forwards;
    //   animation-delay: 0.2s;

    &.no-height {
        height: auto !important;
    }

    @media(max-width:768px) {
        height: 100vh;
    }

    .home-banner-inner {
        flex: 1;
        display: flex;
        align-items: center;
        width: 100%;


        .container {
            height: 100%;
        }

        .inner-row {
            display: flex;
            justify-content: space-between;
            align-items: stretch;
            height: 100%;

            @media(max-width:768px) {
                flex-direction: column;
            }
        }

        .image-col {
            flex: 0 0 45%;
            display: flex;
            flex-direction: column;
            justify-content: center;

            img {
                border-radius: 12px;
                box-shadow: #{map-get($shadows, 3)};
            }
        }

        .text-col {
            flex: 0 0 40%;
            display: flex;
            flex-direction: column;
            justify-content: center;
            gap: 10px;

            @media(max-width: 768px) {
                flex: 0 0 100%;
                max-width: 100%;
                text-align: center;
                z-index: 9;
            }

            .title {
                font-weight: 800;
                font-size: 3.7rem;
                line-height: 1.2;
                font-family: $font-family-base;

                @media(max-width:768px) {
                    font-size: 3.2rem;
                }
            }

            .lead {
                font-size: 1.6rem;
                font-weight: 400;

                @media(max-width:768px) {
                    font-size: 1.3rem;
                }
            }

            .cta-btn {
                padding: 10px;
                font-size: 1.4rem;
            }

            .login-text {
                display: inline-flex;
                gap: 5px;
                font-weight: 400;

                .login-link {
                    font-weight: 500;
                    text-decoration: underline;
                    cursor: pointer;
                }
            }
        }

        .image-wrapper {
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100%;

            @media(max-width: 768px) {
                position: absolute;
                top: 0;
                left: 0;
                z-index: 999;
                height: 100%;
                z-index: 1;
                opacity: 0.1;
                width: 100%;
            }

            img {
                height: 100%;
                width: 100%;
                object-fit: cover;
                display: block;
            }
        }
    }
}



// Banners
.display-banner {
    width: 100%;
    padding: 120px 0px;

    &.wedding-banner {
        background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
            url('/rss/img/wedding.jpg');
        padding: 180px 0px;
        background-position: center center;
        background-size: cover;
    }

    &.fitness-banner {
        background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
            url('/rss/img/fitness.jpg');
        padding: 180px 0px;
        background-position: center center;
        background-size: cover;
        overflow: hidden;
    }

    &.kissing-banner {
        background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
            url('/rss/img/couple-kissing.jpg');
        padding: 180px 0px;
        background-position: center center;
        background-size: cover;
    }

    &.moving-banner {
        background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
            url('/rss/img/couple.jpg');
        background-position: center 40%;
        background-size: cover;
        padding: 180px 0px;
    }
}

// Footer
footer {
    background-color: #{map-get($colors, 'dark')};
    color: #fff;
    display: flex;
    padding: 25px 0px;
    font-size: 14px;
    font-weight: 300;

    .logo {
        width: 125px;
        cursor: pointer;
    }

    ul {
        list-style: none;
    }
}

.features-section {

    h2 {
        font-size: map-get($font-sizes, xl);
        color: map-get($colors, dark);
    }

    .theme-card {
        border-radius: map-get($border-radius-sizes, md);
        overflow: hidden;
        transition: transform 0.3s ease, box-shadow 0.3s ease;

        .card-header {
            padding: #{map-get($spacing, "2")};
            text-align: center;

            img {
                width: 170px;
                height: 170px;
                border-radius: 50%;
                box-shadow: map-get($shadows, 2);
                object-fit: cover;
                margin: 0 auto;

                &.object-left {
                    object-position: left center;
                }

                &.object-center {
                    object-position: center center;
                }

                &.object-bottom {
                    object-position: bottom center;
                }
            }
        }

        .card-body {
            padding: #{map-get($spacing, "3")};
            text-align: center;
        }
    }
}

// Fix before release
// Theme fonts
.styled-title {
    font-family: "Nunito", sans-serif;

    &.fw-900 {
        font-weight: 900;
    }

    &.fw-600 {
        font-weight: 600;
    }
}


.filter-section {
    padding: 2rem 0;
}

.filter-card {
    background-color: #{map-get($colors, white)};
    border-radius: map-get($border-radius-sizes, md);
    box-shadow: map-get($shadows, 2);
    padding: #{map-get($spacing, "3")};
    text-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
    margin: 15px 0px;
}

.filter-icon {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    color: #{map-get($colors, primary)};
}

.filter-title {
    font-size: 1.3rem;
    font-weight: 500;
    margin-bottom: 0.5rem;
    color: map-get($colors, dark);
}

.filter-text {
    font-size: 1rem;
    color: map-get($colors, gray);
    line-height: 1.4;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .filter-card {
        margin-bottom: 1.5rem;
    }

    .filter-icon {
        font-size: 2rem;
    }

    .filter-title {
        font-size: 1.1rem;
    }
}







// Images

// Rounded col images
.rounded-col-image {
    height: 450px;
    width: 450px;
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;

    @media(max-width:1200px) {
        width: 300px;
        height: 300px;
    }

    @media(max-width:920px) {
        width: 225px;
        height: 225px;
    }

    &:before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border-radius: 50%;
        -webkit-box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1);
        -moz-box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1);
        box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1);
        z-index: 1;
        pointer-events: none;

    }

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

section {
    h2 {
        font-size: 1.8rem;
        font-weight: 500;
    }

    h3 {
        font-size: 1.6rem;
        font-weight: 500;
    }

    p {
        font-size: 1.2rem;
        font-weight: 400;
        line-height: 1.4;
    }

    .bolder {
        font-weight: 600;
    }
}

.section-animation {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.section-animation.visible {
    opacity: 1;
    transform: translateY(0);
}

.user-container {
    width: 100%;
    height: calc(100vh - 110px);
    // background-image: url('/rss/img/happy-kissing.jpg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    justify-content: center;
    align-items: center;

    @media(max-width: 768px) {
        height: auto;
        padding: 20px 0px;
    }

    &.alt {
        // background-image: url('/rss/img/happy-kissing-2.jpg') !important;

        .user-card {

            @media(max-width: 768px) {
                display: flex;
                flex-direction: column-reverse;
            }
        }
    }

    .user-card {
        border-radius: 12px;
        background-color: #ffffffe7;
        // box-shadow: #{map-get($shadows, 3)};
        display: flex;
        // min-height: 60vh;
        // height: 60vh;
        width: 100%;
        flex-direction: row;
        // overflow: hidden;

        @media(max-width: 768px) {
            flex-direction: column;
            height: auto;
        }

        .form {
            background-color: #FFF;
            padding: 20px 0px;
            // height: 100%;
            flex: 40%;
            max-width: 40%;
            display: flex;
            align-items: center;
            box-shadow: #{map-get($shadows, 3)};
            border-radius: 12px;

            @media(max-width: 768px) {
                flex: 100%;
                max-width: 100%;
                border-radius: 12px;
                box-shadow: #{map-get($shadows, 2)};
            }

            .user-form {
                padding: 10px 15px;
                width: 100%;
            }
        }

        .text-col {
            flex: 60%;
            max-width: 60%;
            padding: 30px 20px;

            @media(max-width: 768px) {
                flex: 100%;
                max-width: 100%;
            }

            .logo {
                display: flex;
                flex-direction: row;
                justify-content: center;

                img {
                    width: 180px;
                }
            }

            .text {
                margin-top: 20px;
            }
        }
    }
}

/* PROMO BLOCKS */
.promo-cover {
    height: calc(100vh - 60px);
    width: 100%;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;

    &.fetish-cover {
        background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.7)), url('/rss/img/promo-images/bdsm-background.jpeg');
        background-position: 50% 35%;
    }

    &.sugar-cover {
        background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.7)), url('/rss/img/promo-images/sugar-couple.jpeg');
        background-position: 50% 35%;
    }
    
    &.foot-cover {
        background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.7)), url('/rss/img/promo-images/foot1.jpg');
        background-position: 50% 35%;
    }

    &.app-cover {
        background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.7)), url('/rss/img/promo-images/couple1.jpg');
        background-position: 50% 35%;
    }

    .title-bar {
        padding: 20px;
        text-align: center;
        color: #fff;
        width: 100%;
        border-radius: 12px;
        position: relative;
        // background-color: #{map-get($colors, dark-purple-alt)};
        box-shadow: #{map-get($shadows, 5)};

        @media(min-width:769px) {
            width: 45%;
        }

        h1 {
            opacity: 1;
            font-weight: 700;
            font-size: 2.2rem;
            display: inline-block; // necessary to allow width-based pseudo-element

            &::after {
                content: "";
                display: block;
                width: 80%;
                height: 1px;
                background: #fff;
                margin: 2px auto 20px;
                border-radius: 2px;
            }
        }

        p {
            opacity: 1;
            font-weight: 500;
            font-size: 1.4rem;
        }

        .cta-btn{
            padding: 10px 20px;
            background-color: #{map-get($colors, dark-purple)};

            &:hover{
                background-color: lighten(map-get($colors, dark-purple), 10%);
            }
        }
    }
}

.content-section {
    padding: 40px 0px;
    color: #e2e8f0 !important;

    h2{
        font-weight: 700;
        font-size:2rem;
    }
    p{
        font-size: 1.2rem;
        font-weight: 400;
    }

    ul {
        padding: 0px 40px;
        padding-bottom: 10px;
    }
}

.promo-feature-icon{
    font-size: 2rem;
    display: block;
    text-align: center;
    color: #{map-get($colors, white)};
}

.video-background{
    position: relative;
    overflow: hidden;
    height: 65vh;
    width: 100%;
    box-shadow: #{map-get($shadows, 2)};
    margin-top: 50px;

    video{
        position: absolute;
        top: 50%;
        left: 50%;
        min-width: 100%;
        min-height: 100%;
        width: auto;
        height: auto;
        transform: translate(-50%, -50%);
        z-index: -1;
        object-fit: cover;
    }

    .content{
        position: absolute;
        z-index: 1;
        color: white;
        text-align: center;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        background-color: #0000007c;
        border-radius: 12px;
        padding: 25px 45px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .section-animation {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

@keyframes slideUp {
    from {
        transform: translateY(50px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}