/*----------------------------

    # K U L M A (styles)

----------------------------*/
:root {
    /* colors */
    --color-white: #FFFFFF;
    --color-cream: #F7F5F4;
    --color-gray: #3E3F3F;
    --color-black: #000000;
    --color-red: #F70A19;
    --color-red-rgb: rgba(247, 10, 25, .5);

    /* fonts sizes */
    --font-xs: 0.75rem;
    --font-s: 0.9rem;
    --font-m: 1rem; 
    --font-l: 5rem;
    --font-xl: 5.653rem;
    --font-xxl: 10rem;

    /* global settings */
    --sidebar--project-width: 200px;
    --sidebar--detail-width: 100px;
}

@font-face {
    font-family: --light;
    src: url('../fonts/poppins/Poppins-Light.ttf');
}

@font-face {
    font-family: --medium;
    src: url('../fonts/poppins/Poppins-Medium.ttf');
}

@font-face {
    font-family: --semi;
    src: url('../fonts/poppins/Poppins-SemiBold.ttf');
}

/* setting */
img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: -1;
}

.video {
    height: 100%;
    width: 100%;
}

video {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

canvas {
    width: 100% !important;
    height: 100% !important;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
    object-position: center;
}

body {
    background-color: var(--color-cream);
    color: var(--color-gray);
    font-family: --light;
    font-size: var(--font-m);
    overflow-x: hidden;
}

section {
    overflow: hidden;
}

.container {
    max-width: 95%;
}

.container, 
.row {
    padding: 0px !important;
    position: relative;
}

/* --- image effect --- */
.image--effect {
    position: relative;
    width: 100%;
    height: 100%;
}

.image--effect img {
    position: absolute;
    top: 0%;
    left: 0%;
    width: 100%;
    height: 100%;
}

/* --- image effect --- */
.preloader--wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--color-gray);
    color: var(--color-white);
    font-size: var(--font-s);
    text-align: center;
    z-index: 10000000;   
}

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

.preloader--image {
    width: 100px;
    height: 100px;
}

.preloader--progress {
    background: var(--color-white);
    width: 0%;
    height: 2px;
    margin-top: 20px;
}

.preloader--count {
    font-size: 3rem;
}


/*--- 

    G L O B A L

---*/
.global--container {
    display: flex;
}

main {
    width: calc(100% - var(--sidebar--project-width));
    padding-right: 1rem;
}

.title--small {
    font-family: --semi;
    font-size: var(--font-s);
    text-transform: uppercase;
}

.title--big {
    font-family: '--SEMI';
    font-size: var(--font-xxl);
    letter-spacing: -10px;
    /**/
    font-size: 7rem;
}

.text--small {
    font-family: '--light';
    font-size: var(--font-s);
}

.text--xsmall {
    font-family: '--light';
    font-size: var(--font-xs);
}

.info--image {
    position: absolute;
    right: 0px;
    bottom: 20px;
    width: 200px;
    opacity: 0;
    mix-blend-mode: difference;
    transition: 0.5s all linear;
    mix-blend-mode: difference;
    color: #fff;
}

img:hover + .info--image,
.info--image:hover {
    right: 20px;
    opacity: 1;
}

.info--image p {
    margin-bottom: 10px !important;
}


/*--- 

    H O M E

---*/
.home--section {
    width: 100%;
    height: 100vh;
    padding: 20px 0px;
}

.home--section .home--image {
    height: 100%;
}

.home--image .logo--home{
    position: absolute;
    top: 20px;
    left: 20px;
    width: 115px;
    height: auto;
    z-index: 100;
    object-fit: fill;
}

.home--section .container,
.home--section .row {
    width: 100%;
    height: 100vh;
}

.home--section .col-md-6:nth-child(2) {
    padding-left: 2rem !important;
}

/* ---  home information --- */
.home--title {
    font-size: var(--font-xl);
    font-family: --medium;
    letter-spacing: -5px;
    line-height: 1;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
}

.home--title img {
    margin-left: 0px;
    width: 50px;
    height: auto;
    object-fit: fill;
}

.home--text {
    position: absolute;
    bottom: 3%;
    margin-bottom: 0rem;
}

.home--section a {
    color: var(--color-gray);
    font-family: --light;
    font-size: var(--font-s);
    margin-right: 2rem;
}

/* --- notice banner --- */
.notice {
    width: 200px;
    height: 200px;
    background: var(--color-red);
    position: absolute;
    top: 40%;
    left: -105px;
    z-index: -2;
    border-radius: 100%;
    /*text */
    display: flex;
    align-items: center;
    justify-items: center;
    text-align: center;
    color: var(--color-white);
    padding: 15px;
    /*animation 360 */
    animation: spin 10s linear infinite paused;
}

.notice:hover {
    /*animation 360 */
    animation: spin 10s linear infinite;
}

.notice p {
    text-transform: uppercase;
    font-size: 0.65rem;
}

.notice p span {
    font-family: --medium;
    font-size: 1.2rem;
    border-top: 1px solid;
    border-bottom: 1px solid;
    width: 100%;
    display: inline-block;
}


/*--- 

    A B O U T

---*/
.about--content {
    padding-top: 3rem !important;
}

/* --- about information --- */
.about--section .about--info {
    padding: 3rem 0rem 3rem;
}

/* --- about image --- */
.about--image {
    height: 100vh;
}

.about--image img {
    padding: 0rem 0rem 2rem;
    border-bottom: 1px solid;
}

/* --- about features --- */
.about--features {
    padding: 3rem 0rem !important;
}

.about--features .padding--left{
    padding-left: 2.4rem; 
}

.about--lateral {
    border-right: 1px solid;
    padding-right: 5rem;
}

.about--lateral .title--small {
    margin-bottom: -14px;
}

.about--lateral .text--small {
    line-height: 25px;
}

.about--images.firts{
    height: 450px;
}

.about--images{
    height: 350px;
}

.about--text--bottom {
    position: absolute;
    bottom: 0px;
    margin-bottom: 0rem;
}

/* --- about awards --- */
.about--awards{
    border-top: 1px solid;
    border-bottom: 1px solid;
}

.awards--item {
    height: 230px;
    width: 230px;
}


/*--- 

    F E A T U R E S

---*/
.features--section {
    padding: 5rem 0rem;
}

.features--image {
    height: 85vh;
    margin: 5rem 0rem 3rem;
}

.features--section p {
    margin-bottom: 3rem;
}

.features--images {
    height: 500px;
}


/*--- 

    P R O J E C T S

---*/
.project--section .project--item {
    border-top: 1px solid;
    padding: 3.4rem 0rem !important;
    margin-top: 3rem;
}

.projects--images {
    height: 300px;
    margin-bottom: 2.6rem;
}

.link--project--detail {
    text-align: center;
    padding: 2rem 0rem 0rem;
}

.link--project--detail a {
    font-size: var(--font-m);
    font-family: --medium;
    text-transform: uppercase;
    letter-spacing: 0.6rem;
    color: var(--color-gray);
    text-decoration: none;
    /* effect */
    background: linear-gradient(to right, rgb(0, 0, 0), rgb(66, 66, 66) 50%, rgb(114, 114, 114) 50%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-size: 200% 100%;
    background-position: 100%;
    transition: background-position 275ms ease;
    text-decoration: none;
    
}

.link--project--detail a:hover {
    color: inherit;
    background-position: 0 100%;
}


.project--section .project--item .home--title span.title--big {
    display: block;
    background-position: 0 100%;
}

/*--- 

    F O O T E R

---*/
footer {
    padding: 5rem 0rem 1rem;
    background: var(--color-gray);
    color: var(--color-white);
    z-index: 100000;
    position: relative;
}

/* --- contact information --- */
.footer--title {
    font-size: 5rem;
    font-family: '--medium';
    line-height: 83px;
    letter-spacing: -5px;
}

.footer--title span:nth-child(1){
    padding-left: 10rem;
}

.footer--title span:nth-child(2){
    padding-left: 5rem;
}

.logo--contact {
    width: 60px;
}

.contact--info {
    padding-bottom: 10rem !important;
}

.contact--info a{
    font-size: 1.4rem;
    text-decoration: none;
}

.contact--info a.text--small{
    font-size: 0.85rem;
    text-decoration: none;
}

.contact--info ul:nth-child(2) {
    padding-bottom: 4rem;
    border-bottom: 1px solid;
    width: 75%;
}

/* --- legal information --- */
.legal--information a {
    font-size: var(--font-s);
    font-family: --light;
}

.legal--information a {
    color: var(--white);
    font-size: var(--font-s);
    font-family: --light;
    margin-left: 20px;
}

.legal--information ul li {
    margin-left: 20px;
}

.legal--information ul li:nth-child(4) {
    margin-left: 40px;
}

.legal--information .logo--legal {
    width: 200px;
    height: 100px;
    object-fit: none;
    margin-left: -25px;
    margin-bottom: -15px;
}

/*--- 

    P R O J E C T  R E S P O N S I V E

---*/
.project--responsive {
    display: none;
}

.project--responsive a {
    text-decoration: none;
    color: inherit;
}

.project--responsive .row:nth-child(1) {
    border-top: 1px solid;
    border-bottom: 1px solid;
    padding: 3rem 0rem 0.5rem !important;
    margin: 3rem 0rem;
}

.project--responsive .project--link{
    position: relative;
    border-top: 0px;
    height: 150px;
}


/* --- project item image --- */
.project--image {
    height: 150px;
    position: relative;
    overflow: hidden;
}

.project--image--hover {
    position: absolute;
    top: 0;
    left: 0;
    width: 0%;
    height: 100%;
    background: var(--color-red-rgb);
    /* text */
    color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-l);
    /* animation */
    transition: 0.5s all ease-in-out;
    mix-blend-mode:multiply
}

.project--image:hover .project--image--hover {
    width: 100%;
}

.project--image--hover ion-icon {
    font-size: 0rem;
    /* animation */
    transition: 0.5s all ease-in-out;
}

.project--image--hover:hover ion-icon {
    font-size: var(--font-l);
}

/* --- project link --- */
.project--link {
    position: absolute;
    bottom: 0;
    background: var(--color-cream);
    width: 100%;
    height: 200px;
    border-top: 1px solid;
    /* text */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-xxl);
    overflow: hidden;
    /* animation */
    transition: 0.5s background-color ease-in-out;
    /**/
    left: 12px;
    width: 95%;
    padding-bottom: 1rem;
}

.project--link:hover {
    color: var(--color-white);
    background-color: var(--color-red) !important;
}

.project--link ion-icon {
    transform-origin: 50% 0%;
    transition: 0.5s;
}

.project--link:hover ion-icon {
    transform: rotate(-45deg);
    margin-left: -4rem !important;
    
}

.project--link span{
    font-size: 0rem;
    font-family: --semi;
    text-transform: uppercase;
    position: absolute;
    bottom: 30px;
    right: 20px;
    opacity: 0;
    transition: 0.5s;
}

.project--link:hover span{
    opacity: 1;
    font-size: var(--font-m);
}


/*--- 

    D E T A I L  P R O J E C T

---*/
.global--container.detail {
    background: var(--color-gray);
    color: var(--color-white);
}

.detail--section {
    padding: 20px 0px;
    overflow: hidden;
}

.detail--section canvas {
    z-index: 1000000;
}

.detail--section .image--effect {
    height: 400px;
}

.detail--section .video {
    height: 400px;
}

.global--container.detail main {
    width: calc(100% - var(--sidebar--detail-width)) !important;
    padding: 0px;
    padding-right: 1rem !important;
}

/* --- detail images --- */
.detail--images img{
    height: 400px;
    margin: 3rem 0rem;
}

/* --- detail information --- */
.detail--section .home--title {
    display: flex;
}

.home--title span.title--big {
    display: inline-block;
    padding-right: 2rem;
}

.detail--section .image--effect img:nth-child(1){
    z-index: 10000;
}

/* --- detail features --- */
.detail--feature {
    display: flex;
    border-top: 1px solid;
    border-bottom: 1px solid;
    margin-top: 2rem;
}

.detail--features {
    padding: 0.8rem 2rem;
    border-right: 1px solid;
    display: flex;
    align-items: center;
}

.detail--features:last-child {
    border-right: 0px solid;
}

.detail--features p {
    margin: 0px;
    font-family: '--medium';
    font-size: var(--font-s);
    text-align: center;
}

.detail--feature--footer {
    padding: 0.8rem 2rem;
    border-bottom: 1px solid;
    margin-top: 0px;
    margin-bottom: 2rem;
    text-align: center;
}

.detail--feature--footer.special {
    display: flex;
    justify-content: center;
}

.detail--feature--footer p{
    margin: 0px;
    font-family: '--medium';
    font-size: var(--font-s);
}

/* --- detail images --- */
.detail--image {
    width: 100%;
    height: 100%;
}

/* especial */
.detail--feature.special {
    display: block;
    border-top: 1px solid;
    border-bottom: 0px solid;
}

.detail--feature.special .detail--features {
    padding: 0.8rem 1rem;
    width: 50%;
    float: left;
    height: 70px;
    border-bottom: 1px solid;
    border-right: 1px solid;
    justify-content: center;
}

.detail--feature.special .detail--features:last-child,
.detail--feature.special .detail--features:nth-child(2)  {
    border-right: 0px solid;
}

/*--- 

    S I D E B A R 

---*/
/* --- sidebar projects --- */
.sidebar--project {
    position: fixed;
    top: 20px;
    right: 20px;
    width: var(--sidebar--project-width);
    height: 100%;
    border-left: 1px solid;
    padding-left: 0.7rem;
}

.sidebar--project .row:nth-child(1) {
    overflow: scroll;
    max-height: 100vh;
    padding-bottom: 200px !important;
}

.sidebar--project a{
    color: var(--color-black);
    text-decoration: none;
}


/* --- sidebar detail --- */
.sidebar--detail {
    position: fixed;
    top: 20px;
    right: 20px;
    width: var(--sidebar--detail-width);
    height: 100%;
    border-left: 1px solid;
    max-height: 100vh;
}

.slider--close {
    width: 100%;
    height: 100px;
    /* text */
    display: flex;
    justify-content: center;
    align-items: center;
    border-bottom: 1px solid;
    font-size: var(--font-xl);
    outline: none !important;
    color: inherit;
}

.slider--close:hover {
    outline: none !important;
    color: inherit;
}


/*--- 

    A N I M A T I O N

---*/
@-moz-keyframes spin { 
    100% { 
        -moz-transform: rotate(-360deg); 
    } 
}
@-webkit-keyframes spin { 
    100% { 
        -webkit-transform: rotate(-360deg); 
    } 
}
@keyframes spin { 
    100% { 
        -webkit-transform: rotate(-360deg); 
        transform:rotate(-360deg); 
    } 
}


/*--- 

    R E S P O N S I V E

---*/
@media(max-width: 1200px) {
    :root {
        /* fonts sizes */
        --font-xs: 0.6rem;
        --font-s: 0.70rem;
        --font-m: 0.85rem; 
        --font-l: 4rem;
        --font-xl: 4.2rem;
        --font-xxl: 7.4rem;
    }

    /*--- 

        H O M E

    ---*/
    .notice {
        width: 190px;
        height: 190px;
    }

    .home--section .col-md-6:nth-child(2) {
        padding-left: 1.5rem !important;
    }


    /*--- 

        A B O U T

    ---*/
    .awards--item {
        height: 200px;
        width: 200px;
    }

    .about--features .title--big:nth-child(2) {
        font-size: 5.5rem;
    }

    /*--- 

        F O O T E R

    ---*/
    .footer--title {
        font-size: 4rem;
        letter-spacing: -4px;
    }

    /*--- 

        A B O U T

    ---*/
    .about--lateral {
        padding-right: 2rem;
    }


    /*--- 

        D E T A I L  P R O J E C T

    ---*/
    .detail--section {
        padding: 20px 0px;
        height: auto;
        overflow: scroll;
    }

    .detail--section .row, .detail--section .container {
        height: auto;
    }

    .info--image.small {
        opacity: 0;
        right: 0px;
        width: 90%;
    }
    
    img:hover + .info--image.small,
    .info--image.small:hover {
        right: 0px;
        opacity: 1;
    }

    /* --- project link --- */
    .project--link:hover ion-icon {
        transform: rotate(-45deg);
        margin-left: -1rem !important;
        
    }
}

@media (max-width: 700px) {
    :root {
        /* fonts sizes */
        --font-xs: 0.65rem;
        --font-s: 0.7rem;
        --font-m: 1rem; 
        --font-l: 4.8rem;
        --font-xl: 3.5rem;
        --font-xxl: 10rem;
    }

    .container {
        max-width: 90%;
    }


    /*--- 

        G L O B A L

    ---*/
    main {
        width: 100%;
        padding-right: 0rem;
    }

    .sidebar--project {
        display: none;
    }

    /*--- 

        S I D E B A R  C O N T E N T

    ---*/
    .sidebar--detail {
        height: auto;
        position: absolute;
        top: 0px;
        right: 0px;
    }

    .project--responsive {
        display: block;
    }


    /*--- 

        H O M E

    ---*/
    .home--section {
        height: auto;
    }

    .home--section .home--image {
        height: 350px;
    }

    .home--section .container,
    .home--section .row {
        height: 100%;
    }

    /* ---  home information --- */
    .home--title {
        margin-top: 3.4rem;
    }

    .home--section .col-md-6:nth-child(2) p:nth-child(2){
        margin-top: 1rem;
        width: 80%;
    }

    .home--section a {
        margin-right: 1.5rem;
    }

    .home--text {
        position: relative;
        margin-top: 4rem;
    }

    /* --- notice banner --- */
    .notice {
        top: -148px;
        left: 50%;
    }


    /*--- 

        A B O U T

    ---*/
    .about--features .col-md-9:nth-child(2) {
        display: none;
    }

    .about--features .padding--left {
        padding-left: 1rem; 
    }

    /* --- about image --- */
    .about--image {
        height: 500px;
    }

    .about--image img {
        padding: 0rem 0rem 3rem;
    }

    /* --- about features --- */
    .about--features {
        padding: 3rem 0rem !important;
    }

    .about--lateral {
        border-right: 0px solid;
    }

    .about--features .col-md-5,
    .about--features .col-md-4{
        width: 50%;
    }

    .about--features .col-md-3{
        margin-top: 2rem;
    }

    .about--images{
        height: 200px;
    }

    .about--text--bottom {
        display: none;
    }

    /* --- about awards --- */
    .about--awards{
        border-top: 0px solid;
        border-bottom: 1px solid;
    }

    .awards--item {
        height: 150px;
        margin-bottom: 4rem;
    }


    /*--- 

        F E A T U R E S

    ---*/
    .features--section p {
        margin-bottom: 3rem;
    }

    .features--section [class*=pe-] {
        padding-right: 0.9rem !important;
    }
    .features--section [class*=px-] {
        padding-left: 0.9rem !important;
        padding-right: 0.9rem !important;
    }

    .features--section p:nth-child(1) {
        margin-bottom: 4rem;
    }

    .features--images {
        height: 300px;
        margin-bottom: 3rem;
    }


    /*--- 

        D E T A I L  P R O J E C T

    ---*/  
    .detail--section {
        padding: 20px 0px;
        height: auto;
    }

    .detail--section .row, .detail--section .container {
        height: auto;
    }
    
    .global--container.detail main {
        width: 100% !important;
        padding: 0px;
    }
    
    /* --- detail information --- */
    .detail--section .home--title {
        display: block;
    }
    
    .home--title span.title--big {
        width: 100%;
    }

    .detail--section .image--effect{
        height: 300px;
        width: 100%;
    }

    .detail--section .image--effect:nth-child(1){
        margin-bottom: 0rem;
        height: 350px;
    }
    
    /* --- detail features --- */
    .detail--feature {
        display: block;
        border-top: 1px solid;
        border-bottom: 0px solid;
    }
    
    .detail--features {
        width: 50%;
        float: left;
        height: 100px;
        border-bottom: 1px solid;
        border-right: 1px solid;
        justify-content: center;
    }
    
    .detail--features:last-child,
    .detail--features:nth-child(2)  {
        border-right: 0px solid;
    }

    .detail--feature--footer {
        display: flex;
        justify-content: center;
    }

    /* --- detail information --- */
    .detail--information .col-md-6:nth-child(2) .text--small {
        position: relative !important;
    }

    .detail--information p:nth-child(2) {
        margin: 3rem 0rem;
        width: 70%;
    }

    .project--section .project--item [class*=pe-] {
        padding-right: 1rem !important;
    }
    

    /*--- 

        F O O T E R

    ---*/
    footer {
        padding: 5rem 0rem 1rem;
        background: var(--color-gray);
        color: var(--color-white);
        z-index: 10000000;
        position: relative;
    }

    /* --- contact information --- */
    .footer--title {
        font-size: 3rem;
        font-family: '--medium';
        line-height: 50px;
    }

    .footer--title span:nth-child(1){
        padding-left: 0rem;
    }

    .footer--title span:nth-child(2){
        padding-left: 0rem;
    }

    .contact--info .col-md-3 {
        margin-top: 10rem;
    }

    .contact--info .col-md-3 .title--small {
        padding-bottom: 3rem;
    }

    .contact--info .col-md-3 .title--small:nth-child(2) {
        padding: 3rem 0rem !important;
    }

    /* --- legal information --- */
    .legal--information .col-md-6:nth-child(2).text-end {
        text-align: center !important;
    }

    .legal--information .col-md-6:nth-child(1) {
        order: 2;
    }

    .legal--information a {
        margin-left: 0px;
        padding: 1.2rem;
        line-height: 5rem;
    }

    .legal--information ul li {
        margin-left: 0px;
    }

    .legal--information ul li:nth-child(4) {
        margin-left: 0px;
    }

    .legal--information .logo--legal {
        width: 100%;
        margin: 5rem 0rem 2rem 0rem;
    }
}