/* IS LOADING ----------------------------------------------*/
.spinner {
    margin-top: -21px;
    position: absolute;
    text-align: center;
    top: 50%;
    width: 100%;

    z-index: 1000;
    box-sizing: border-box;
}

.spinner svg {
    -webkit-animation: loading-rotate 2s linear infinite;
    -moz-animation: loading-rotate 2s linear infinite;
    -o-animation: loading-rotate 2s linear infinite;
    animation: loading-rotate 2s linear infinite;
    height: 60px;
    width: 60px;
    box-sizing: border-box;
}

.spinner .path {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: 0;
    stroke-width: 2;
    stroke: black;
    stroke-linecap: round;
    -webkit-animation: loading-dash 1.5s ease-in-out infinite;
    -moz-animation: loading-dash 1.5s ease-in-out infinite;
    -o-animation: loading-dash 1.5s ease-in-out infinite;
    animation: loading-dash 1.5s ease-in-out infinite;
    box-sizing: border-box;
}

@-webkit-keyframes loading-rotate {
  to {
    -webkit-transform: rotate(1turn);
    transform: rotate(1turn);
  }
}

@-moz-keyframes loading-rotate {
  to {
    -moz-transform: rotate(1turn);
    transform: rotate(1turn);
  }
}

@-o-keyframes loading-rotate {
  to {
    -o-transform: rotate(1turn);
    transform: rotate(1turn);
  }
}

@keyframes loading-rotate {
  to {
    -webkit-transform: rotate(1turn);
    -moz-transform: rotate(1turn);
    -o-transform: rotate(1turn);
    transform: rotate(1turn);
  }
}

@-webkit-keyframes loading-dash {
  0% {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -40px;
  }
  to {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -120px;
  }
}

@-moz-keyframes loading-dash {
  0% {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -40px;
  }
  to {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -120px;
  }
}

@-o-keyframes loading-dash {
  0% {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -40px;
  }
  to {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -120px;
  }
}

@keyframes loading-dash {
  0% {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -40px;
  }
  to {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -120px;
  }
}

/* IS LOADING ----------------------------------------------*/

:root{
    --accent_color: rgb(210, 210, 210);
}

body{
    background-color: violet;
}


/* CONTAINER -----------------------------------------------------------------------------------------------------*/
#general_container{
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-self: center;
    background-color: transparent;
    border-radius: 15px;
}

.nav_header h1 p{
    align-items: flex-start;
    padding: 25px 40px;
}

.nav_header h1, .nav_header h2{
    background-color: transparent !important;
}



/* TEXT -----------------------------------------------------------------------------------------------------*/
#text_container{
    position: relative;
    width: 40%;
    border-right: var(--border);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    overflow-x: hidden;
}

#text_container h1{
    width: 100%;
    border-right: none;
}

#text_container h2, #text_container h3{
    width: 100%;
    box-sizing: border-box;
    background-color: white;
}

#text_container h2{
    font-size: clamp(2rem, 2.9vw, 6rem);
    font-variation-settings: "wght" 900;
    padding: 20px 20px 25px 40px;
    border-bottom: var(--border);
    cursor: text;
    line-height: 1.1;
}

#text_container h3{
    font-family: "red_hat", sans-serif;
    font-size: clamp(1rem, 1.5vw, 3rem);
    font-variation-settings: "wght" 650;
    padding: 25px 40px 25px 40px;
    border-bottom: var(--border);
    cursor: text;
}



/* IMAGE -----------------------------------------------------------------------------------------------------*/
#image_container{
    position: relative;
    width: 60%;
    background-color: rgba(255, 255, 255, .5);
}

.carousel_element_container{
    width: 100%;
    height: fit-content !important;
    margin-bottom: 0px !important;
    border-top: var(--border);
    border-bottom: var(--border);
    /* cursor: grab; */
    background-color: white;
    overflow: hidden;
    max-height: 80vh !important;
    background-color: rgba(220,220,220,1) !important;
    /* background-color: rgba(210,210,210, 1) !important; */
    display: flex;
    flex-direction: row;
    justify-content: center;
    margin-bottom: 20px !important;
}

/* .carousel_element_container:active{
    cursor: grabbing;
} */

.carousel_element_container:first-of-type{
    margin-top: -2px !important;
}

.carousel_element_container:last-of-type{
    margin-bottom: -10px !important;
}

.single_element{
    transform: translate(0%, 0%) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

.one_element{
    cursor: default !important;
}

.one_element:active{
    cursor: default !important;
}

.carousel_element{
    width: 100%;
    height: auto;
    max-height: calc(80vh - 4px);
    background-color: white;
}



/* PREV NEXT ------------------------------------------------------------------------------------------------------*/
.nav_prev_next{
    position: relative;
    z-index: 100;
    bottom: 0%;
    left: 0%;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    background-color: white;
    width: 100%;
    height: auto;
    border-top: var(--border);
}

.prev_next{
    width: 50%;
    height: 100%;
    cursor: pointer !important;
    background-color: white;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}


.prev_next:first-of-type{
    text-align: right;
    border-right: var(--border);
}

.prev_next p{
    width: 100%;
    height: fit-content;
    font-size: clamp(1.1rem, 1.1vw, 1.2rem);
    font-variation-settings: "wght" 600;
    line-height: 1.2;
    box-sizing: border-box;
    display: flex;
    /* padding: 25px 15px 28px 15px; */
    padding: 7% 7%;
    flex-direction: column;
    justify-content: center;
    transition: 150ms all;
    text-align: center;
}

.prev_next p em{
    font-size: clamp(1.1rem, 1vw, 1.2rem);
    font-family: "red_hat", sans-serif;
    font-variation-settings: "wght" 450;
    margin-top: 5px;
}

.prev_next:hover p{
    text-decoration: var(--text_decoration);
}

/* .prev_next:first-of-type:hover p{
    rotate: -6deg;
}

.prev_next:last-of-type:hover p{
    rotate: 6deg;
} */

#nav_prev_next_desktop{
    display: flex;
}

#nav_prev_next_mobile{
    display: none;
}



/* SPLIDE, CAROUSEL -----------------------------------------------------------------------------------------------------*/
#splide01{
    height: 100%;
}

.splide__arrow{
    left: unset !important;
    right: -.5em !important;

    height: 40px !important;
    width: 40px !important;
    border: var(--border) !important;
    border-radius: 100% !important;
    opacity: 1 !important;
    transition: var(--transition);
    background-color: white !important;
}

.splide__arrow:hover{
    background-color: var(--accent_color) !important;
}

.splide__arrow svg{
    height: 20px !important;
    width: 20px !important;
}

.splide__pagination__page.is-active{
    transform: unset !important;
    background-color: var(--accent_color) !important;
}

.splide__pagination__page{
    border: var(--border) !important;
    height: 15px !important;
    width: 15px !important;
    opacity: 1 !important;
    border-radius: 100% !important;
    background-color: white !important;
    /* margin: 0% !important; */
}

.splide__pagination{
    padding: 0px !important;
    left: unset !important;
    right: 1.3em !important;
}

.splide__pagination li{
    line-height: 0 !important;
}

.splide__slide{
    height: fit-content !important;
}



/* FLUID, VIDEO -----------------------------------------------------------------------------------------------------*/
.fluid_video_wrapper, .container_img{
    height: 100% !important;
    width: fit-content !important;
    margin: 0% !important;
    padding: 0% !important;
    box-sizing: border-box !important;
    outline: var(--border) !important;
}

.fullscreen_element{
    max-height: 100% !important;
}

.fluid_controls_container{
    background: unset !important;
    background-color: white !important;
    color: black !important;
    border-top: var(--border)!important;
    box-sizing: border-box;
    /* position: relative !important; */
    visibility: hidden;
    opacity: 0;
    padding-bottom: 3px;
}

.fluid_button{
    filter: invert(1);
}

.fluid_control_currentvolume, .fluid_control_volume_currentpos{
    background-color: black !important;
}

.fluid_control_duration, .fluid_timeline_preview{
    font-family: "red_hat", sans-serif !important;
    font-variation-settings: "wght" 500 !important;
}

.fluid_control_volume{
    background-color: lightgray !important;
}

.fluid_controls_progress_container{
    filter: invert(0);
    display: flex;
    flex-direction: row;
    justify-content: center !important;
}

.fluid_controls_progress{
    background-color: lightgray !important;
    /* width: 98% !important; */
}

.fluid_controls_currentpos{
    background-color: black !important;
}

.fluid_timeline_preview{
    color: black !important;
    background-color: white !important;
    border: var(--border);
}

.fluid_initial_play{
    border: 2px solid black !important;
    background-color: white !important;
    transition: var(--transition);
}

.fluid_initial_play_button{
    filter: invert(1);
}

.fluid_initial_play:hover{
    background-color: var(--accent_color) !important;
}

.fluid_button_fullscreen{
    margin-right: 10px;
}

/* PLYR ---------------------------------------------------------------------*/
.plyr{
    outline: var(--border) !important; 
    font-family: 'red_hat', sans-serif;
    --plyr-color-main: var(--accent_color);
    box-sizing: border-box;
}

.plyr__controls{
    background: white !important;
}

.plyr__control svg{
    fill: black;
    transition: none !important;
}

.plyr__control{
    border: 1px solid transparent;
}

.plyr__control:hover{
    background-color: var(--accent_color) !important;
}

.plyr__control, .plyr__tooltip{
    border-radius: 100% !important;
    transition: none !important;
}

.plyr__controls{
    background: white !important;
    border-top: 2px solid black !important;
    color: black !important;
    padding-top: var(--plyr-control-spacing,11px) !important;
}

.plyr__controls__item, .plyr__controls__item .plyr__control{
    border-radius: 0px !important;
    transition: 150ms all !important;
}

.plyr__control--overlaid{
    border: 2px solid black !important;
    background-color: white !important;
    transition: 100ms all !important;
}

.vertical{
    width: 100% !important;
    height: fit-content !important;    
}

.vertical img, .vertical video{
    width: 100% !important;
    height: 100% !important;
}

.one_element video{
    width: 101% !important;
}

video{
    background-color: rgba(0,0,0,1) !important;
}

/* CUSTOM INPUT ----------------------------------------------------------------------*/
input[type=range] {
    height: auto;
    -webkit-appearance: none;
    margin: 0px 0px 0px 0px;
    width: 100%;
    border: none !important;
    background-color: white;
    padding: 6px 6px;
    box-sizing: border-box;
    cursor: pointer;
  }
  
  input[type=range]:hover {
    background-color: white;
  }
  
  input[type=range]:focus {
    outline: none;
  }
  
  progress {
    border-radius: 0;
  }
  
  input[type=range]::-webkit-slider-runnable-track {
    width: 100% !important;
    height: 1px !important;
    cursor: pointer !important;
    animate: 0.2s !important;
    background: black !important;
    border-radius: 100% !important;
  }
  
  input[type=range]::-webkit-slider-thumb {
    height: 10px !important;
    width: 10px !important;
    border-radius: 100% !important;
    background: black !important;
    border: 1px solid black;
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: 0px;
    transform: translate(0%, -5%);
    box-shadow: none !important;
  }
  
  input[type=range]:focus::-webkit-slider-runnable-track {
    background: black;
  }
  
  input[type=range]::-moz-range-track {
    width: 100% !important;
    height: 1px !important;
    cursor: pointer !important;
    animate: 0.2s !important;
    background: black !important;
    border-radius: 100% !important;
  }
  
  input[type=range]::-moz-range-thumb {
    height: 10px !important;
    width: 10px !important;
    border-radius: 100% !important;
    background: black !important;
    border: 1px solid black;
    box-shadow: none !important;
    cursor: pointer;
  }
  
  input[type=range]::-moz-range-progress {
    width: 100% !important;
    height: 1px !important;
    cursor: pointer !important;
    animate: 0.2s !important;
    background: black !important;
    border-radius: 100% !important;
  }
  
  input[type=range]::-ms-track {
    width: 100% !important;
    height: 1px !important;
    cursor: pointer !important;
    animate: 0.2s !important;
    background: black !important;
    border-radius: 100% !important;
    border-color: transparent;
    color: transparent;
  }
  
  input[type=range]::-ms-fill-lower {
    background: black;
    border: 0px solid black;
    border-radius: 100%;
    box-shadow: 0px 0px 0px black;
  }
  
  input[type=range]::-ms-fill-upper {
    background: black;
    border: 0px solid black;
    border-radius: 100%;
    box-shadow: 0px 0px 0px black;
  }
  
  input[type=range]::-ms-thumb {
    margin-top: 0px;
    box-shadow: 0px 0px 0px black;
    border: 1px solid black;
    box-shadow: none !important;
    height: 10px !important;
    width: 10px !important;
    border-radius: 100%;
    background: black;
    cursor: pointer;
  }
  
  input[type=range]:focus::-ms-fill-lower {
    background: black;
  }
  
  input[type=range]:focus::-ms-fill-upper {
    background: black;
  }

/* MOBILE -----------------------------------------------------------------------------------------------*/
@media screen and (max-width: 700px) {
    .nav_header h1 p{
        padding: 11px 15px 14px 18px !important;
    }
    
    #general_container{
        flex-direction: column;
    }

    #text_container{
        width: 100%;
        height: 65%;
    }

    #image_container{
        height: 35%;
        width: 100%;
    }


    #text_container h2{
        line-height: 1.15;
        /* padding: 15px 15px 15px 15px !important; */
        font-size: clamp(1.5rem, 3vw, 6rem);
    }

    #text_container h3{
        /* padding: 15px 15px 15px 15px !important; */
        font-size: clamp(1.1rem, 1.5vw, 3rem) !important;
        /* background-color: red !important; */
    }

    #text_container h3, #text_container h2{
        padding: 10px 15px 13px 15px !important;
    }

    #nav_prev_next_desktop{
        display: none;
    }
    
    #nav_prev_next_mobile{
        height: 9vh;
        display: flex;
    }

    .prev_next p{
        font-size: clamp(.9rem, 1.2vw, 3rem);
        padding: 12px 10px;
    }

    .prev_next p em{
        display: none;
        margin-top: 1px;
        font-size: clamp(.9rem, 1vw, 3rem);
    }

    .prev_next:hover p{
        text-decoration: none !important;
        /* rotate: 0deg !important; */
    }

    #splide01-track{
        height: 100% !important;
    }

    .splide__arrow{
        display: none !important;
        left: unset !important;
        right: -.5em !important;
        height: 30px !important;
        width: 30px !important;
    }
    
    .splide__arrow svg{
        height: 15px !important;
        width: 15px !important;
    }

    .splide__pagination{
        left: 0em !important;
        right: 0.5em;
    }

    .project_contener .splide__pagination{
        right: 0em !important;
    }

    .splide__pagination__page{
        height: 10px !important;
        width: 10px !important;
    }

    .vertical{        
        width: 100% !important;
        height: fit-content !important;
        max-height: 100% !important;
    }

    .fluid_video_wrapper, .container_img{    
        width: 100% !important;
    }

    .fluid_video_wrapper{
        height: fit-content !important;
    }

    /* .fluid_controls_container{
        visibility: visible !important;
        opacity: 1 !important;
    } */

    .vertical .container_img{
        width: fit-content !important;
    }

    .carousel_element{
        width: auto !important;
        height: 100%;
    }

    .project_carousel .carousel_element_container{
        border-top: none;
        border-bottom: none;
        /* border-left: var(--border); */
        /* border-right: var(--border); */
        outline: var(--border);
        margin-bottom: 0% !important;
        margin-right: 20px;
        height: 100% !important;
        width: calc(100% + 4px) !important;
    }

    .carousel_element_container:first-of-type{
        margin-top: 0px !important;
    }

    .carousel_element_container:last-of-type{
        margin-right: 0px !important;
    }

    .project_carousel .carousel_element_container .container_img{
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .project_carousel .carousel_element_container .container_img img{
        /* border-bottom: var(--border); */
        /* border-top: var(--border); */
        outline: var(--border);
    }
}