@use "./mixins.scss" as mixins;
@use "./colors.scss" as colors;
@forward "./animations.scss";

/*
    The purpose of this is to prevent two things from happening:
        * On mobile, the x-axis overflows by A LOT, making it possible to scroll
          right a lot when you shouldn't be able to at all.

        * In solving the above issue, sometimes scrolling would get stuck because
          the wrapper would have scrolling enabled as well as the body, so it 
          gets dicey. That's why the wrapper hides *all* overflow. It works.
*/


.site-wrapper {
    position: relative;
    overflow-x: hidden;
    overflow-y: hidden;
}

.learn-more-link {
    text-decoration: underline;
    color: colors.$ekblue;
    font-weight: bold;
}

.fade-in {
    opacity: 0.5;
    visibility: hidden;
    transform: translateY(5px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    will-change: opacity, visibility;
}

.isVisible {
    opacity: 1;
    transform: none;
    visibility: visible;
}



.horizontal-line {
    border-color: #00000015;
}

.wave {
    padding: 0;
    margin: 0;
    z-index: -1;
    position: fixed;
    left: 0px;
}

#wave-1 {
    fill-opacity: 0;
    top: 50%;

    @include mixins.max-width(905px) {
        top: 55%;
    }

    @include mixins.max-width(600px) {
        top: 55%;
    }

    @include mixins.max-width(500px) {
        top: 50%;
    }
}

.section-padding {
    padding: 46px 10% 92px;
}

.grey-section {
    background-color: colors.$ekgrey;
    color: white;

    @include mixins.ekshadow;
    width: 100%;
}

.juicy-star {
    display: inline-block;
    margin: -2.9px;
    opacity: 0;
}

.no-size-selected {
    top: 40%;
}

.header-alert {
    text-align: center;
    height: 40px;
    width: 100%;
    position: fixed;
    color: white;
    background-color: red;
    font-size: 18px;
    font-family: 'Open Sans', sans-serif;
    padding-top: 12px;
    z-index: 2;
    opacity: 0.95;
    filter: alpha(opacity=95);
    transition: all 0.5s;
    top: 70px;
    display: block;
}

    #main-image {
        @include mixins.max-width(550px) {
            margin-top: 70px;
        }

        // @include mixins.max-width(905px) {    
        //     content: url('/images/banner-main-small.png');
        // }
    }


.masthead {
    margin-top: 20px;
    padding: 0 10%;

    .main-title {
        margin-bottom: 200px;
        font-size: 26px;
        display: none;
        opacity: 0%;

        @include mixins.max-width(950px) {
            margin-bottom: 50px;
        }
    }

    #anim-container {
        position: relative;
        width: 650px;
        margin: -25px auto 55px auto;
        opacity: 0;

        #password-anim-text {
            font-size: 26px;
            opacity: 60%;
            position: absolute;
            top: 12px;
            left: 20px;
        }

        #password-anim {
            position: relative;
            width: 600px;
            height: 60px;
            background-color: white;
            padding-left: 15px;

            @include mixins.ekcard;
            @include mixins.flex(row, nowrap, center, flex-start);

            

            #autofill-icon {
                width: 25px;
                height: auto;
                position: absolute;
                right: 15px;
                opacity: 0%;
            }
        }
    }

    

    #center-buy-now-button {
        font-size: 18px;
        margin-bottom: 250px;
        margin-top: -25px;

        @include mixins.max-width(905px) {
            margin-bottom: 175px;
        }
    }
}

#scroll-learn-more {
    font-size: 22px;
    color: colors.$ekblue;
    padding: 0;
    margin: 0;
    
    @include mixins.flex(row, nowrap, center, center);

    position: absolute;
    bottom: 25px;
    left: 50%;

    transform: translateX(-50%);

    opacity: 0;

    transition: opacity 0.5s;
    will-change: opacity;

    #down-carat {
        margin-bottom: 13px;
        margin-left: 10px;
        font-size: 28px;
        font-weight: 300;
    }
    
}
.promotional-content {
    padding-top: 61px;

    #video-container {
        width: 100%;
        padding: 0 10%;
        box-sizing: border-box;
        position: relative;
        
        @include mixins.flex(row, nowrap, center, center);

        .play-video-button {
            border-width: 0px;
            width: 200px;
            height: auto;
            z-index: 2;
            cursor: pointer;

            position: absolute;
            top: 50%;
            left: 50%;
            
            transform: translate(-50%, -50%);
    
            .play-video-text {
                color: white;
                font-size: 36px;
                margin-top: 10px;
                padding-bottom: 0;
            }
    
            .play-video-button-box {
                font-size: 60px;
                border: 3px solid white;
                width: 80px;
                height: 80px;
                border-radius: 100px;
                margin: 0 auto;
    
                .play-video-img {
                    width: 30px;
                    position: relative;
                    top: -8px;
                }
            }
        }
    
        .play-video-container {
            background-color: transparent;
            text-align: center;
            cursor: pointer;
        
            .play-video-image,
            .play-video-image-2 {
                width: 85%;
                padding: 0;
                margin: 0;
                max-width: 1500px;
                cursor: pointer;
    
                @include mixins.ekcard;
    
                @include mixins.max-width(750px) {
                    width: 100%;
                }
    
                @include mixins.max-width(950px) {
                    width: 95%;
                }
            }
        }
    }

    .unlock-section {
        padding: 87px 10% 102px;

        // .unlock-image-section {
        //     padding-bottom: 26px;
        // }

        .unlock-text-section {
            padding: 0px 0px 0px 30px;

            .unlock-text {
                display: inline-block;
                font-size: 24px;
                margin-bottom: 20px;
            }

            .unlock-container {
                display: inline-block;
                transform: translateY(50px);

                #unlock-word {
                    padding: 15px 20px;
                    margin: 0 0 -23px;
                    cursor: text;
                    font-size: 24px;
                    transition: color 0.1s, width 0.25s;
                    -webkit-transition: width 0.25s, color 0.1s;
                    border: none;

                    @include mixins.ekshadow;

                    #unlock-word-text {
                        color: black;
                        width: max-content;
                        width: -moz-max-content;
                        transition: color 0.1s, width 0.25s;
                        -webkit-transition: width 0.25s, color 0.1s;
                    }
                }

                #unlock-word:hover{
                    background-color: white;
                }
                .coming-soon-container {
                    #coming-soon-text {
                        padding-top: 30px;
                        color: #bbb;
                        font-weight: 400;
                        opacity: 0.4;
                        filter: alpha(opacity=40);
                        transition: opacity 0.5s, filter 0.5s;
                    }
                }
            }
        }

        .unlock-img {
            padding: 0 15px;
            opacity: 0.4;
            filter: alpha(opacity=40);
            transition: opacity 0.5s, filter 0.5s;
            height: 75px;

            @include mixins.max-width(950px) {
                padding: 10px 5px 0;
            }
        }

        #unlock-image-laptop,
        #unlock-image-websites {
            height: 80px;
        }

        #unlock-image-door {
            height: 95px;
        }
    }
}

#overview {
    padding: 92px 10%;
    padding-bottom: 0;

    .what-is-text {
        font-style: italic;
        text-decoration: underline;
        color: black;
        font-weight: 300;
    }

    .button {
        margin-top: 26px;
        margin-bottom: 112px;
    }
}

#unlock-animation-container {
    padding: 0;
    margin: 0;
    background-color: white;
    text-align: center;
    position: relative;
    z-index: -1;

    .unlock-animation,
    .unlock-animation-img {
        width: 800px;
        margin-left: -90px;
        padding-bottom: 0;
        border-width: 0;
        overflow: hidden;

        @include mixins.max-width(905px) {
            width: 600px;
            margin-left: -67px;
        }

        @include mixins.max-width(650px) {
            width: 95%;
            margin-left: -39px;
        }
    }
}

#press-div {
    width: 100%;
    margin-top: -5px;
    text-align: center;
    padding-bottom: 41px;
    z-index: 1;

    .press-logo-img {
        padding: 40px 20px 5px;
    }

    .press-logo-wired {
        height: 30px;
        padding-bottom: 20px;
    }

    .press-logo-business-insider {
        height: 70px;
        padding-bottom: 0px;
    }

    .press-logo-wall-street-journal {
        height: 60px;
    }

    .press-logo-yahoo {
        height: 50px;
        padding-bottom: 10px;
    }

    .press-logo-techcrunch {
        height: 60px;
    }
}

#feature-items {
    // TODO confirm spacing
    padding: 96px 0;
    padding-top: 126px;

    @include mixins.flex(row, wrap, center, center);

    .grid-item {
        @include mixins.ekcard;

        padding: 35px;
        padding-top: 20px;
        padding-bottom: 30px;
        margin: 15px;
        width: 300px;

        height: 275px;
        vertical-align: middle;
        position: relative;

        @include mixins.flex(column, nowrap, center, center);

        .feature-img {
            height: 100px;
            position: absolute;
            left: 50%;
            top: -50px;

            transform: translateX(-50%);
        }

        .feature-title {
            padding-bottom: 23px;
        }

        @include mixins.max-width(1200px) {
            margin-top: 65px;
        }

        @include mixins.max-width(650px) {
            width: 90%;
        }
    }
}

.promotional-content {
    padding-top: 0;
    .retail-section {
        padding-bottom: 40px;

        @include mixins.flex(row, wrap, center, center);

        .retail-img {
            padding: 40px 20px 0;

            @include mixins.max-width(700px) {
                height: 40px;
            }
        }

        .retail-best {
            height: 70px;
        }

        .retail-newegg {
            height: 60px;
        }

        .retail-micro {
            height: 50px;
        }

        .retail-office {
            height: 55px;
        }

        .retail-modern {
            height: 43px;

            @include mixins.max-width(700px) {
                width: 95px;
                height: auto;
            }
        }

        .retail-qvc {
            height: 65px;
        }
    }
}

#reviews {
    

    #reviews-div-left-1 {
        left: 5px;
    }

    #reviews-div-right-1 {
        right: 5px;
    }

    .review-carousel-button-left {
        margin-top: -165px;
        position: absolute;
        left: 15px;
        padding-left: 13px;
        padding-top: 5px;
        width: 32px;
        height: 40px;
        cursor: pointer;
    }

    .review-carousel-button-right {
        margin-top: -165px;
        position: absolute;
        right: 15px;
        padding-left: 17px;
        padding-top: 5px;
        width: 28px;
        height: 40px;
        cursor: pointer;
    }

    .review-carousel-button {
        width: 15px;
    }

    .review-carousel {
        padding: 0;
        margin: 0;
        background-color: colors.$ekgrey;
        color: white;
        height: 305px;

        @include mixins.ekshadow;

        .review-carousel-button {
            width: 15px;
        }

        .review-tile-wrapper {
            display: inline-block;
            position: absolute;
            width: 100%;

            .review-tile {
                padding: 60px 30px;
                width: 280px;
                display: inline-block;
                height: 170px;
                vertical-align: bottom;

                .review-tile-stars {
                    font-size: 30px;
                }

                .review-tile-name {
                    font-size: 30px;
                    font-weight: 500;
                }

                .review-tile-text {
                    padding-top: 15px;
                }
            }
        }
    }
}

.setup-section {
    padding: 96px 10% 96px;

    @include mixins.flex(column, nowrap, center);

    .app-image {
        object-fit: contain;
        width: 950px;

        @include mixins.max-width(905px) {
            width: 750px;
        }

        @include mixins.max-width(650px) {
            width: 100%;
            height: auto;
            margin-left: -50px;
            margin-right: -50px;
        }
    }

    .setup-title {
        padding-bottom: 23px;
    }

    .button {
        margin-top: 26px;
        margin-bottom: 0;
    }
}

#systems-div {
    width: 100%;
    padding: 20px 0px;

    @include mixins.flex(row, wrap, center, center);

    .compatibility-logo {
        height: 70px;
        padding: 15px 30px !important;
    }

    .compatibility-mac {
        padding-top: 38px;
        padding-bottom: 25px;
    }

    .compatibility-windows {
        padding-top: 40px;
    }

    .compatibility-android {
        padding-top: 42px;
    }

    .compatibility-safari {
        height: 75px;
        padding-top: 40px;
    }
}

.your-way-section {
    padding: 92px 10%;
    @include mixins.flex(column, nowrap, center, center);

    // TODO CTA: put learn more like apple or something on the accessories, just need more CTAs in general. 
    // Can have the setup one lead to setup too, for example.

    #accessories-container {

        margin-top: 150px;
        @include mixins.flex(row, wrap, center, center);

        .key-ring-accessory {

            @include mixins.max-width(1239px) {
                margin-top: 150px !important;
            }
        }

        .accessory-item {
            display: inline-block;
            padding: 35px;
            width: 450px;

            @include mixins.max-width(500px) {
                width: 300px;
                box-sizing: border-box;
                font-size: 16px !important;
            }
            //vertical-align: text-top;
            vertical-align: top;
    
            @include mixins.ekcard;
            @include mixins.flex(column, nowrap, center, center);
    
            height: 350px;
            box-sizing: border-box;
    
            margin: 25px 20px 0 20px;

            
    
            position: relative;
    
            .accessory-img {
                width: 150px;
                position: absolute;
            }

            .band-accessory-image {
                left: 50%;
                top: -140px;

                transform: translateX(-50%);
            }

            .key-ring-accessory-image {
                width: 125px;
                
                top: -135px;
                left: 55%;

                transform: translateX(-55%);
            }
    
            .accessory-title {
                padding: 23px 0 15px;
            }
            
        }
    }
}

#future-div {
    box-sizing: border-box;
    @include mixins.flex(column, wrap, center, center);

    padding-top: 92px;

    .future-text {
        font-size: 50px;
    }

    .future-img {
        padding: 35px 20px 0px;
        height: 90px;

        @include mixins.max-width(700px) {
            height: 60px;
            padding: 0 7px;
        }
    }

    .future-image-car {
        height: 80px;

        @include mixins.max-width(700px) {
            height: 53px;
        }
    }

    .future-image-door {
        height: 100px;

        @include mixins.max-width(700px) {
            height: 67px;
        }
    }
}

.revolution-section {
    padding: 92px 10% 92px;
}

.accessory-section {
    @include mixins.flex(column, nowrap);
    #accessories-header {
        padding: 92px 0 92px;
    }

    #accessories {
        padding: 0 5% 40px;
        @include mixins.flex(row, wrap, center, center);
        
        

        #replacement_plan_store_item {
            display: none;

            .store-acs-image {
                width: 250px;
                padding-bottom: 5px;
            }
        }

        #stacked-acc-div {
            height: 800px;
            @include mixins.flex(row, wrap, center, center);
        }

        .store-item {
            position: relative;

            height: 500px;
            padding: 125px 35px 35px 35px;
            padding-top: 125px;

            .store-acs-image {
                position: absolute;

                top: -125px;
                left: 50%;

                transform: translateX(-50%);
            }
        }

        #key_ring_store_item {
            .store-acs-image {
                width: 125px;
            }

            @include mixins.max-width(845px) {
                margin-top: 125px;
            }
        }

        #dongle_store_item {
            @include mixins.max-width(777px) {
                margin-top: 50px;
            }
        }

        #band_store_item {

            @include mixins.max-width(777px) {
                height: 550px;
                margin-bottom: 50px;
            }

            .add-to-bag {
                margin-top: 25px;
            }
        }

        #cable_store_item {
            .store-acs-image {
                width: 175px;

                top: -75px;
            }

            @include mixins.max-width(845px) {
                margin-top: 100px;
            }
        }

        #band-color-wrapper {
            padding-top: 20px;

            button{
                margin: 0em;
                margin-right:4px;
                padding-block: 1px;
                padding-inline: 6px;
            }
        }

        .store-band-color {
            width: 20px;
            height: 20px;
            border: 1px solid black;
            border-radius: 100px !important;
            margin-right: 4px;
            cursor: pointer;

            &:focus {
                outline: none;
                border: none;
            }
        }


        .selected-color {
            width: 30px;
            height: 30px;

            &:focus {
                border: 1px solid black;
                border-radius: 100px;
            }
        }

        .band-size-options {
            vertical-align: middle;
            padding: 23px 0;

            .store-band-size {
                padding-bottom: 3px;
                border-bottom: 0px solid colors.$ekblue;
                color: colors.$ekblue;
                font-size: 21px;
                font-weight: 300;
                cursor: pointer;
            }

            .band-size-info {
                font-size: 21px;
                cursor: pointer;
                color: colors.$ekblue;
                width: 38px;
                height: 38px;
                background-color: white;
                border: 2px solid colors.$ekblue;
                border-radius: 100px;
                margin: 0em;
                padding-block: 1px;
                padding-inline: 6px;

                transition: color 0.3s, background-color 0.3s;
                will-change: color, background-color;

                &:hover {
                    background-color: colors.$ekblue;
                    color: white;
                }
            }

            .selected-size {
                border-bottom-width: 2px;
            }
        }
    }
}

#shop,
#accessories {
    padding: 75px 5% 92px;

    @include mixins.flex(row, wrap, center, center);

    .shop-loading {
        width: 100px;
        height: 100px;
    }

    .store-item {
        width: 300px !important;
        padding: 0 35px;
        height: 515px;
        margin: 15px;

        position: relative;

        
        @include mixins.flex(column, nowrap, center, center);
        @include mixins.ekcard;

        .store-item-image {
            width: 250px;
            padding-bottom: 23px;

            position: absolute;
            top: -125px;

            left: 50%;
            transform: translateX(-50%);

            @include mixins.max-width(375px) {
                width: 200px;
            }
        }

        .store-acs-image {
            width: 250px;
            padding-bottom: 5px;
        }

        .subscription-info {
            cursor: pointer;
            font-size: 15px;
            color: colors.$ekblue;

            &:hover {
                text-decoration: underline;
            }
        }

        .shop-description {
            padding: 23px 0;
        }

        .price-span {
            .price {
                display: inline;
            }
        }

        .strike {
            color: #999;
            text-decoration: line-through;
            text-decoration-color: #999;
        }

        .add-to-bag {
            margin-top: 50px;
            margin-bottom: 5px;
        }

        @include mixins.max-width(400px) {
            height: 550px;
        }
    }
}

#shop {
    @include mixins.max-width(1333px) {
        #everykey-div-4 {
            margin-top: 130px;
        }
    }

    @include mixins.max-width(888px) {
        #everykey-div-2 {
            margin-top: 65px;
        }
    }
}

#accessories {
    
    .store-item {
        height: 750px;
        padding: 35px;

        width: 250px !important;

        .shop-description {
            flex: 1 1 auto;

            @include mixins.flex(column, nowrap, center, flex-start);
        }

        

        @include mixins.max-width(903px) {
            margin-top: 35px;
        }
    }

    @include mixins.max-width(903px) {
        #key_ring_store_item {
            margin-top: 125px;
        }

        #cable_store_item {
            margin-top: 55px;
        }
    }

    @include mixins.max-width(1348px) {
        #key_ring_store_item {
            margin-top: 75px;
        }
        #cable_store_item {
            margin-top: 75px;
        }
    }

}

#subscribe {
    padding: 92px 10% 92px;

    .subscribe-subtitle {
        font-size: 20px;
        padding-bottom: 23px;
    }

    #mce-EMAIL {
        border: none;
        outline: none;
        box-sizing: border-box;

        height: 56px;
        width: 300px;

        @include mixins.ekcard;

        @include mixins.max-width(400px) {
            margin-left: 0;
            margin-right: 0;

            width: 250px;
        }
    }

    

}

// Modal stuff
.band {
    max-width: 800px;
    padding: 0 10%;

    @include mixins.max-width(1100px) {
        max-width: 500px;
    }

    .size-range-text {
        font-family: "Open Sans", sans-serif;
        font-size: 19px;
    }

    .instructions-text {
        font-size: 17px;
    }

    .size-range-box {
        display: inline-block;
        padding: 30px;
        text-align: center;
    }

    .large-label {
        font-size: 40px;
    }

    .band-measure-img-1 {
        width: 200px;
    }

    .band-measure-img-2 {
        width: 400px;
    }
}

.vault {
    max-width: 1000px;
    padding: 30px 100px 80px 100px;
   

    @include mixins.max-width(1100px) {
        max-width: 500px;
        padding: 20px 30px 30px 30px;
    }

    .vault-modal-text {
        display: inline-block;
        max-width: 500px;

        .size-range-text {
            font-family: "Open Sans", sans-serif;
            font-size: 19px;
        }

        .instructions-text {
            font-size: 17px;
        }

        .large-label {
            font-size: 40px;
        }

        @include mixins.max-width(1100px) {
            max-width: unset;
        }
    }

    .vault-modal-img-1 {
        width: 213px;
        vertical-align: top;
        padding-right: 40px;

        @include mixins.max-width(1100px) {
            display: none;
        }
    }

    .vault-modal-img-2 {
        width: 213px;
        vertical-align: top;
        padding: 40px 87px 20px 0;
        display: none;

        @include mixins.max-width(1100px) {
            display: block;
        }
    }
}



.modal-content {

    .band {
        max-width: 800px;
        padding-right: 10%;
        padding-left: 10%;
    }

    .vault {
        max-width: 1000px;
        padding: 30px 100px 80px 100px;
    }
}
#notificationDesktop {
    transition: background 0.5s, color 0.5s, border 0.5s;
    opacity: 0.95;
    position: fixed;
    bottom: 19px;
    right: -999999px;
    background: white;
    //border: 2px solid black;
    padding: 18px 27px 18px 30px;
    border-radius: 6px;
    font-size: 17px;

    opacity: 0.92;

    @include mixins.ekcard;
    @include mixins.ekshadow(rgba(0, 0, 0, 0.2));

    //border-color: colors.$ekgrey;

    #notificationImageDesktop {
        width: 64px;
        padding: 0 1px 3px 1px;
    }

    #starContainerDesktop {
        display: inline-block;
        width: 90px;
        font-size: 22px;
        padding: 0 7px 25px 20px;
        color: colors.$ekgrey;

        #notificationStarsDesktop {
            position: absolute;
            left: 32px;
            top: 27px;
            font-size: 22px;
            color: colors.$ekgrey;

            .juicy-star {
                opacity: 1;
            }
        }

        #juicyNotificationStarsDesktop {
            position: absolute;
            left: 32px;
            top: 27px;
            font-size: 22px;
            color: #5c5f64;
        }

        
    }

    #notificationTextDesktop {
        display: inline-block;
        padding: 13px 13px 13px 19px;
        vertical-align: bottom;
        color: black;
    }
}

#notificationMobile {
    z-index: 1;
    transition: background 0.5s, color 0.5s, border 0.5s;
    opacity: 0.95;
    position: fixed;
    left: 0;
    top: -999999px;
    width: 100%;
    text-align: center;
    background: white;
    padding: 15px 0 20px 0;
    //border-bottom: 1px solid colors.$ekgrey;

    @include mixins.ekshadow;
    
    background-color: white;

    #notificationImageMobile {
        width: 64px;
        padding: 0 1px 3px 6px;
    }

    #starContainerMobile {
        display: inline-block;
        width: 90px;
        font-size: 22px;
        padding: 0 7px 25px 20px;
        color: colors.$ekgrey;

        #notificationStarsMobile {
            position: absolute;
            top: 23px;
            font-size: 22px;
            color: colors.$ekgrey;

            .juicy-star {
                opacity: 1;
            }
        }

        #juicyNotificationStarsMobile {
            position: absolute;
            top: 23px;
            font-size: 22px;
            color: colors.$ekgrey;
        }
    }

    #notificationTextMobile {
        display: inline-block;
        padding: 13px 13px 13px 15px;
        vertical-align: bottom;
        
        color: black;
    }
}

.flex{
    display: flex;
}

.items-center{
    align-items: center;
}