/*-----------------------------------*\
            #base.css
\*-----------------------------------*/

/** copyright 042026 Fultho **/

@font-face {
    font-family: "Manrope";
    src: url(../fonts/Manrope-VariableFont_wght.ttf) format("truetype");
    font-weight: 100 900;
    font-style: normal;
}

@font-face {
    font-family: "Rethink";
    src: url(../fonts/RethinkSans-VariableFont_wght.ttf) format("truetype");
    font-weight: 100 900;
    font-style: normal;
}

/*-----------------------------------*\
            #CUSTOM PROPERTY
\*-----------------------------------*/

:root {

    /* COLORS */

    --color-blue-light: #0d86d5;
    --color-black: #000;
    --color-white: #fff;
    --color-blue-depp: #031723;
    --color-blue-dark: #042e4b;
    --color-primary-gray: #222222;
    --color-gray-1: #e1e2e3;
    --color-gray-2: #CCCCD1;
    --color-gray-3: #a8b1b7;
    --color-gray-4: #5d6d7a;
    --color-gray-5: #4b4b4b;

    /* TIPOGRAFY */

    /* font-family */
    --font-primary: "Manrope", sans-serif;

    /* Font Size */
    --fs-base: 62.5%;
    --fs-body-medium: 1.6rem;
    --fs-label-medium: 1.5rem;
    --fs-title: 3.2rem;

    /* Line Height */
    /* --lh-label-medium: 20px;
    --lh-body-medium: 24px;
    --lh-title: 8px; */

    /* Font-Weight */
    --weight-Bold: 700;
    --weight-Semibold: 600;
    --weight-Medium: 500;
    --weight-Regular: 400;

    /* Letter Spacing */
    --ls-small: 0.5px;

    /* Border Radius */
    --radius-small: 8px;
    --radius-medium: 12px;
    --radius-large: 16px;
    --radius-extra-large: 32px;
    --radius-full: 1000px;
    --radius-circle: 50%;

    /* Shadows */

    /* Transitions */
    --transition-easing-quick: cubic-bezier(0, 0.7, 0.3, 1);
    --transition-duration-quick: 200ms;
    --transition-duration-smooth: 500ms;
}

/*-----------------------------------*\
  #RESET
\*-----------------------------------*/

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;

}

li {    list-style: none;   }

a {
    color: inherit;
    text-decoration: none;
}

img {   height: auto;   }

svg {
    overflow: visible;
}

a,
img,
span,
input,
select,
button {    display: block; }

button {    cursor: pointer;    }

button,
input,
select {
    background: none;
    border: none;
    font: inherit;
}

html {
    font-family: var(--font-primary);
    font-size: var(--fs-base);
}

body {
    background-color: var(--color-white);
    color: var(--color-primary-gray);
    font-size: var(--fs-body-medium);
    line-height: var(--lh-body-medium);
    /* line height faz muita diferença quando tem muito texto ou mesmo textos de 3,4 linhas. interfere também em menus de navegação vertical como <nav> */
}

/****************************************\
                TIPOGRAFIA
\****************************************/

/* .body-medium {
    
}

.label-medium {
    
}

.title {

} */

/****************************************\
                REUSED STYLE
\****************************************/

.container {
    padding-inline: 22px;
    max-width: 580px;
    width: 100%;
    margin-inline: auto;
}

.overlay {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: opacity .4s ease, visibility .4s;

    &.active {
        opacity: 1;
        visibility: visible;
    }
}


/*-----------------------------------*\
  #COMPONENT
\*-----------------------------------*/

/* Botões,cards etc */

.btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    padding-inline: 20px;
    border-radius: var(--radius-extra-large);
    font-weight: var(--weight-Semibold);
}

.btn-fill-bluedark {
    color: var(--color-white);
    background-color: var(--color-blue-dark);
    border: 2px solid var(--color-blue-depp);
}

.btn-outline-bluedeep {
    color: var(--color-blue-deep);
    border: 2px solid var(--color-blue-depp);
}

.btn-outline-gray {
    color: var(--color-gray-4);
    border: 1px solid var(--color-gray-3);
}

.btn-fill-bluelight {
    color: var(--color-white);
    background-color: var(--color-blue-light);
}

.btn-outline-bluelight {
    color: var(--color-blue-light);
    border: 2px solid var(--color-blue-light);
}

/****************************************\
                HEADER
\****************************************/
header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 70px;
    background-color: var(--color-white);
    border-bottom: 1px solid var(--color-gray-2);

    .desktop-menu-nav {
        display: none;
    }

    & >.container {
        position: relative;
        display: flex;
        align-items: center;
        height: 100%;
        justify-content: space-between;
        background-color: var(--color-white);
        z-index: 1000;

        .header-left {
            .icon-close-menusidebar {
                display: none;
            }

            img {
                height: 16px;
            }
        }

        .header-logo {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }

        .header-right {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 32px;

            img {   height: 16px; }

            .img-user {
                img {
                    height: 20px;
                    border-radius: var(--radius-circle);
                }
            }

            .header-login {
                /* display: none; */
                position: relative;

                .box-login {
                    position: absolute;
                    top: 32px;
                    right: 0;
                    background-color: var(--color-white);
                    border: 1px solid var(--color-gray-2);
                    border-radius: 16px;
                    padding-inline: 20px;
                    padding-block-start: 20px;
                    padding-block-end: 30px;
                    min-width: 300px;
                    box-shadow: -1px 1px 3px 1px rgba(0, 0, 0, 0.1);

                    visibility: hidden;
                    pointer-events: none;
                    opacity: 0;

                    scale: 0;
                    transition: scale .2s ease, opacity .2s ease, visibility .2s;

                    .box-login-content {
                        position: relative;


                        .icon-close-box-login {
                            position: absolute;
                            right: 0;
                            width: 14px;
                        }

                        & .box-login-title{
                            padding-top: 10px;
                            font-weight: var(--weight-Semibold);
                            font-size: 1.8rem;
                        }

                        & .box-login-text {
                            margin-top: 4px;
                            max-width: 220px;
                            line-height: 20px;
                            font-size: 1.4rem;
                            font-weight: var(--weight-Medium);
                        }

                        .box-actions {
                            display: flex;
                            align-items: center;
                            justify-content: space-between;
                            margin-block-start: 28px;
                            
                            .btn {
                                font-size: 1.4rem;
                                min-width: 120px;
                                font-weight: 550;
                                height: 46px;
                            }
                        }
                    }

                    &.active {
                        visibility: visible;
                        pointer-events: all;
                        opacity: 1;

                        scale: 1;
                    }
                }
            }
        }
    }
}


#header_search {
    margin-top: 1px;
    min-height: 400px;
    width: 100vw;
    background-color: var(--color-white);
    border-radius: 0 0 22px 22px;
    padding-block-start: 40px;
    z-index: 999;
    transform: translateY(calc(-100% - 70px));
    transition: transform .3s ease-in-out, opacity 1s ease;

    .container {
        .search-header-input {
            height: 60px;
            width: 100%;
            border-block-end: 1px solid var(--color-gray-2);
            padding-inline-start: 8px;

            &::placeholder {
                color: var(--color-gray-4);
                font-weight: var(--weight-Medium);
            }
        }
    }

    &.active {
        transform: translateY(0);
    }
}

#menu_user_logged {
    left: 0;

    .sidebar-top .container {
       justify-content: flex-end;
    }   
}


.sidebar-mobile-menu {
    z-index: 1001;
    background-color: var(--color-white);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    left: -100%;
    overflow-y: auto;
    transition: left .3s ease;
    transition-property: left;

    &.active {
        left: 0;
    }

    .sidebar-top {
        height: 70px;
        width: 100%;
        border-bottom: 1px solid var(--color-gray-2);

        >.container {
            display: flex;
            align-items: center;
            height: 100%;
            justify-content: space-between;
        }
    }

    .sidebar-content {
        position: relative;
        width: 100%;
        height: calc(100dvh - 70px);
        transform: translateX(0);
        transition: transform .5s ease;
        * {
            font-size: 1.4rem;
        }

        .more-options {
          border-bottom: 1px solid var(--color-gray-2);
          padding-block-start: 42px;
          padding-block-end: 16px;
    
          .slogan {
            font-size: 1.8rem;
            font-weight: 800;
          }
        }

        .sidebar-nav {
            margin-top: 10px;
            font-weight: var(--weight-Medium);

            .nav-list {
                line-height: 5rem;

                li a {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;

                    svg {
                        width: 16px;
                    }
                }
            }
        }

        .sidebar-bottom {
            /* display: none; */
            width: 100%;
            position: absolute;
            bottom: 22px;
            border-top: 1px solid var(--color-gray-2);
            padding-block-start: 32px;

            a { 
                gap: 8px; 
                cursor: pointer;
                font-weight: var(--weight-Bold);
            }

            span {  display: flex; }

            a:nth-child(2) {
                svg:nth-child(1) {
                    fill: var(--color-blue-depp);
                }
            }

            & .container {
                display: grid;
                gap: 16px;
            }
        }
    }

    .submenu {
        position: fixed;
        bottom: 0;
        width: 100%;
        height: calc(100dvh - 70px);
        transform: translateX(100%);
        transition: transform .5s ease, visibility .5s ease, opacity .5s ease;
        visibility: hidden;
        opacity: 0;
        pointer-events: none;

        .submenu-title {
            font-size: 1.6rem;
            font-weight: var(--weight-Semibold);
        }

        .submenu-top {
            margin-block: 26px;
            button {
                display: flex;
                align-items: center;
                gap: 16px;
            }
            

            svg {
                width: 16px;
                transform: rotate(180deg);
            }
        }

        .submenu-content {
            border-top: 1px solid var(--color-gray-2);
            padding-block-start: 20px;
            display: flex;
            flex-direction: column;
            gap: 32px;
            height: calc(100dvh - 160px);
            overflow-y: auto;
            overflow-x: hidden;
            
            /* hide scrollbar in firefox */
            scrollbar-width: none;

            /* Chrome, safari etc. or width:0 */
            &::-webkit-scrollbar {
                display: none;
            }

            .content-title {
                font-size: 1.6rem;
                font-weight: var(--weight-Semibold);
            }

            .content-description {
                margin-top: 6px;
                font-size: 1.4rem;
                color: var(--color-gray-4);
                font-weight: var(--weight-Medium);
            }
        }
    }
}

.sidebar-content.active {
    transform: translateX(-100%);
}

.submenu.active {
    transform: translateX(0);
    visibility: visible;
    opacity: 1;
    pointer-events: all;
}

/****************************************\
            MEDIA QUERIES
\****************************************/

@media (min-width: 1280px) {
    
    /* REUSED STYLE */
    .container {    max-width: 1240px; }

    .header-left {
        border: 1px dotted red;
        display: none;
    }

}

/****************************************\
                SECTION 1
\****************************************/

.section-1 {
    .container {
        /* width: 100vw; */
        background-color: #e96c6c;
        min-height: 800px;
    }
}
.section-2 {
    .container {
        /* width: 100vw; */
        background-color: #ffffff;
        min-height: 800px;
    }
}
.section-3 {
    .container {
        /* width: 100vw; */
        background-color: #847fe4;
        min-height: 800px;
    }
}
/* Anotações 

-box shadow: 
horizontal, vertical, blur, spread, color
*/
