/*-----------------------------------------------
|   btn
-----------------------------------------------*/
.btn-fixed{
    display: block;
    width: 195px;
    height: 80px;
    background-image: url(../images/btn-fixed.svg);
    background-size: contain;
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    right: 0;
    bottom: 0;
    z-index: 1020;
    filter: drop-shadow(0px 8px 16px rgba(0, 0, 0, 0.15));
}
.btn-fixed:hover{
    /* filter: drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.15)); */
    filter: brightness(1.1) drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.15));
    -webkit-filter: brightness(1.1) drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.15));
    transition : -webkit-filter 0.4s ease;
    -webkit-transition : -webkit-filter 0.4s ease;
}
.btn-primary{
    display: inline-block;
    padding-right: 68px;
    position: relative;
}
.btn-primary::after{
    content: "";
    background: url(../images/btn-primary.svg) no-repeat center / 100% 100%;
    width: 52px;
    height: 7px;
    position: absolute;
    right: 0;
    top: calc(50% - 4px);
    display: block;
    transition: transform 0.4s ease;
    -webkit-transition: transform 0.4s ease;
}
.btn-primary:hover::after{
    transform: translateX(5px);
}
/* .btn-lineOut-w > *{
    display: inline;
    background-image: gradient(linear, left top, left bottom, from(#fff), to(#fff));
    background-image: -webkit-linear-gradient(#fff, #fff);
    background-image: linear-gradient(#fff, #fff);
    background-position: left 100%;
    background-size: 100% 1px;
    background-repeat: no-repeat;
    -webkit-transition: background-size 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: background-size 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.btn-lineOut-w:hover *{
    background-position: right 100%;
    background-size: 0% 1px;
} */
.btn-lineIn-w > *{
    display: inline;
    background-image: linear-gradient(#fff, #fff);
    background-position: 100% 100%;
    background-size: 0% 1px;
    background-repeat: no-repeat;
    -webkit-transition: background-size 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: background-size 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.btn-lineIn-w:hover *{
    background-position: 0 100%;
    background-size: 100% 1px;
}
.btn-rectangle {
    background: gradient(linear, left top, right top, color-stop(45%, #fff), color-stop(45%, #000)) -360px 0/600px auto;
    background: linear-gradient(90deg, #fff 45%, #000 45%) -360px 0/600px auto;
    transition: all 0.5s ease-out;
    -webkit-transition: all 0.5s ease-out;
    padding: 16px 60px;
    color: #fff;
    border: 1px solid #000;
    cursor: pointer;
    border-radius: 4px;
}
.btn-rectangle:hover {
    background-position: 0 0;
    color: #000;
    transition: all 0.5s ease-out;
    -webkit-transition: all 0.5s ease-out;
}
.btn-outline {
    display: inline-block;
    padding: 8px 24px;
    border-radius: 4px;
    border: 1px solid var(--bs-primary);
    color: var(--bs-primary);
    background: gradient(linear, left top, right top, color-stop(45%, var(--bs-primary)), color-stop(45%, rgba(255, 255, 255, 0))) -360px 0/600px auto;
    background: linear-gradient(90deg, var(--bs-primary) 45%, rgba(255, 255, 255, 0) 45%) -360px 0/600px auto;
    transition: all 0.5s ease-out;
    -webkit-transition: all 0.5s ease-out;
  }
  
  .btn-outline:hover {
    background-position: 0 0;
    color: #fff;
    transition: all 0.5s ease-out;
    -webkit-transition: all 0.5s ease-out;
  }
@media (max-width: 991px){
    .btn-fixed{
        background: var(--bs-secondary);
        /* flex-direction: column; */
        -webkit-writing-mode: vertical-lr;
        writing-mode: vertical-lr;
        letter-spacing: 1px;
        width: 60px;
        height: 140px;
        border-radius: 8px 0px 0px 0px;
        font-size: 14px;
    }
    .btn-outline{
        padding: 6px 20px;
        font-size: 14px;
    }
}
/*-----------------------------------------------
|   fonts
-----------------------------------------------*/
.ls-2{
    letter-spacing: 2px;
}
.fs-7{
    font-size: 14px;
}
.fs-8{
    font-size: 12px;
}
.title{
    font-size: 28px;
    line-height: 1.5;
    font-weight: 700;
    position: relative;
    margin-top: 0;
    margin-bottom: 0;
}
.title__deco--top::before{
    content: "";
    position: absolute;
    left: 0;
    top: -48px;
    width: 100px;
    height: 1px;
    background: #000;
}
.title__deco--full::before{
    content: "";
    position: absolute;
    /* left: 0;
    right: 0; */
    top: -50px;
    height: 1px;
    background: #000;
    width: calc(100% - 24px);
}
.subtitle{
    font-weight: 700;
    text-transform: uppercase;
}
.subtitle-soultion{
    position: absolute;
    left: 0;
    top: -120px;
    left: 12px;
}
.description{
    font-size: 16px;
    /* margin-top: 0; */
    /* margin-bottom: 0; */
}
@media (max-width: 1399px){
    .title{
        font-size: 20px;
    }
    .description, .subtitle{
        font-size: 14px;
    }
}
@media (max-width: 767px){
    .title__deco--full::before,
    .title__deco--top::before{
        top: -30px;
    }
    .title__deco--full::before{
        width: calc(83.33333333% - 24px);
    }
    .subtitle-soultion{
        top: -90px;
        width: calc(83.33333333% - 24px);
        left: 50%;
        transform: translateX(-50%);
    }
}
/*-----------------------------------------------
|   custom grid
-----------------------------------------------*/
.align-start{
    margin-right: calc((100vw - 1320px)/2);
}
.align-end{
    margin-left: calc((100vw - 1320px)/2);
}
@media (max-width: 1399px) {
    .align-end{
        margin-left: calc((100vw - 1140px)/2);
    }
    .align-start{
        margin-right: calc((100vw - 1140px)/2);
    }
}
@media (max-width: 1199px) {
    .align-end{
        margin-left: calc((100vw - 960px)/2);
    }
    .align-start{
        margin-right: calc((100vw - 960px)/2);
    }
}
@media (max-width: 991px) {
    .align-end{
        margin-left: calc((100vw - 720px)/2);
    }
    .align-start{
        margin-right: calc((100vw - 720px)/2);
    }
}
@media (max-width: 767px) {
    .align-end{
        margin-left: calc((100vw - 540px)/2);
    }
    .align-start{
        margin-right: calc((100vw - 540px)/2);
    }
}
@media (max-width: 575px){
    .align-start{
        /* width: 83.33333333%; */
        width: 100%;
        /* margin-right: 30px; */
        margin-right: 0;
        padding-right: 30px;
    }
    .align-end{
        /* width: 83.33333333%; */
        width: 100%;
        /* margin-left: 30px; */
        margin-left: 0;
        padding-left: 30px;
    }

}
/*-----------------------------------------------
|   box
-----------------------------------------------*/
.box{
    display: flex;
    width: 100%;
}
.box .box_body{
    padding-left: 24px;
}
.box_img_outer{
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 84%;
}
.box_img_outer .box_img{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    -webkit-transition: transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.box .box_date{
    color: var(--bs-gray);
    font-size: 14px;
}
.box .box_tag{
    display: inline-block;
    color: var(--bs-secondary);
    padding: 2px 12px;
    border: 1px solid var(--bs-secondary);
    border-radius: 50px;
    font-size: 14px;
}
.box .box_link{
    line-height: 1.5;
}
.box .box_link .box_title{
    font-size: 24px;
    font-weight: 700;
    display: inline;
}
.box .box_link .box_title{
    background-image: gradient(linear, left top, left bottom, from(#000), to(#000));
    background-image: -webkit-linear-gradient(#000, #000);
    background-image: linear-gradient(#000, #000);
    background-position: left 100%;
    background-size: 100% 1px;
    background-repeat: no-repeat;
    -webkit-transition: background-size 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: background-size 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.box .box_link:hover .box_title{
    background-position: right 100%;
    background-size: 0% 1px;
}
.box .box_text{
    overflow:hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
    margin-bottom: 0;
}
.box_img_outer .box_img:hover{
    transform: scale(1.2);
    -webkit-transition: transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.box .box_img_outer{
    overflow: hidden;
}
@media (max-width: 1399px) {
    .box .box_link .box_title{
        font-size: 20px;
    }
}
@media (max-width: 991px){
    .box .box_tag{
        font-size: 12px;
    }
}
/* @media (max-width: 767px){
    .box .box_text{
        display: none;
    }
} */
@media (max-width: 575px){
    .box .box_link .box_title{
        font-size: 18px;
    }
}
/*-----------------------------------------------
|   breadcrumb
-----------------------------------------------*/
.breadcrumb{
    height: 320px;
    background-size: cover;
    background-position:center center;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-end;
    padding-bottom: 50px;
    position: relative;
}
.breadcrumb .breadcrumb_title{
    color: #fff;
    letter-spacing: 1px;
    margin-bottom: 10px;
    position: relative;
    font-weight: 400;
}
.breadcrumb .breadcrumb_nav{
    color: #fff;
    display: flex;
    align-items: center;
    font-size: 14px;
    opacity: 0.8;
}
.breadcrumb .breadcrumb_nav li{
    position: relative;
}
.breadcrumb .breadcrumb_nav li a{
    color: #fff;
}
.breadcrumb .breadcrumb_nav li:not(:last-child){
    margin-right: 16px;
    padding-right: 16px;
}
.breadcrumb .breadcrumb_nav li:not(:last-child)::after{
    width: 1px;
    right: -1px;
    height: 18px;
    content: "";
    position: absolute;
    background-color: #cccccc;
    /* -webkit-transform: rotate(30deg); */
    /* transform: rotate(30deg); */
    /* transform-origin: center; */
    /* top: 4px; */
    top: 50%;
    transform: translateY(-50%);
}
.breadcrumb .breadcrumb_overlay{
    content: "";
    position: absolute;
    background: linear-gradient(120deg, rgba(21, 39, 67, 0.7) 40%, rgba(21, 39, 67, 0.7) 40%, transparent 40%); 
    /* background-color: rgba(21, 39, 67, 0.7);*/
    /* backdrop-filter: blur(20px); */
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
}
/* .breadcrumb .breadcrumb_overlay svg{
    backdrop-filter: blur(20px);
} */
@media (max-width: 767px){
    .breadcrumb{
        height: 240px;
        padding-bottom: 20px;
    }
    .breadcrumb .breadcrumb_title{
        font-size: 20px;
    }
    .breadcrumb .breadcrumb_overlay{
        background: linear-gradient(120deg, rgba(21, 39, 67, 0.7) 60%, transparent 40%); 
    }

}
/*-----------------------------------------------
|   rectangle
-----------------------------------------------*/
.rectangle{
    background: #FFFFFF;
    box-shadow: 0px 8px 30px rgba(71, 153, 150, 0.17);
    border-radius: 4px;
    padding: 32px 20px;
    position: relative;
}
.rectangle .rectangle_title{
    color: var(--bs-secondary);
    font-size: 18px;
    margin-top: 0;
    margin-bottom: 20px;
    position: relative;
}
.rectangle .rectangle_title::before{
    content: "";
    position: absolute;
    left: -21px;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 40px;
    background-color: var(--bs-secondary);
}
.rectangle .rectangle_num{
    position: absolute;
    color: rgba(163, 194, 204, 0.2);
    font-weight: 300;
    font-size: 100px;
    font-style: italic;
    letter-spacing: -1px;
    line-height: 1;
    top: 12px;
    right: 18px;
}
@media (max-width: 767px){
    .rectangle .rectangle_num{
        font-size: 80px;
    }
}
/*-----------------------------------------------
|   page_head
-----------------------------------------------*/
.page_head .page_title{
    position: relative;
    display: inline-block;
    line-height: 1;
}
.page_head .page_subtitle{
    position: absolute;
    line-height: 1;
    left: 60px;
    bottom: -28px;
    color: var(--bs-light);
    font-style: italic;
    font-weight: 300;
    z-index: -1;
    font-size: 100px;
}
.page_head{
    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.page_aside{
    margin: 0;
    position: sticky;
    top: 100px;
    z-index: 1;
}
.page_aside .page_aside_filter{
    padding: 8px 0;
    display: inline-block;
    position: relative;
    padding-left: 20px;
    color: var(--bs-gray);
    transition: var(--transition-ease);
    -webkit-transition: var(--transition-ease);
}
.page_aside .page_aside_filter.active{
    color: #000;
}
.page_aside .page_aside_filter.active::before{
    content:"";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--bs-primary);
}
.page_aside .page_aside_filter:hover{
    color: #000;
    transition: var(--transition-ease);
    -webkit-transition: var(--transition-ease);
}
/* .page_aside_mobile{
    display: flex;
    word-break: keep-all;
    overflow: auto;
    background: #eee;
    padding-left: 41px;
}
.page_aside_mobile .page_aside_filter{
    padding: 8px 16px;
    display: inline-block;
    position: relative;
    color: var(--bs-gray);
    transition: var(--transition-ease);
    -webkit-transition: var(--transition-ease);
    font-size: 14px;
}
.page_aside_mobile .page_aside_filter.active{
    color: #000;
}
.page_aside_mobile .page_aside_filter.active::before{
    width: 30px;
    height: 2px;
    border-radius: 2px;
    top: unset;
    left: 50%;
    transform: translate(-50%);
    bottom: 0;
} */
@media (max-width: 767px){
    .page_head .page_title{
        font-size: 20px;
    }
    /* .page_aside{
        display: flex;
        margin-bottom: 20px;
    } */
    .page_aside .page_aside_filter{
        font-size: 14px;
    }
    
}
@media (max-width: 575px){
    .page_aside{
        flex-wrap: nowrap;
        word-break: keep-all;
        overflow: auto;
        background: #f2f2f2;
        /* padding-left: calc((17% / 2) - 10px); */
        width: 100%;
        margin-bottom: 40px;
        top: 75px;
    }
    .page_aside>li{
        display: inline-block;
    }
    .page_aside .page_aside_filter{
        padding-right: 20px;
        white-space: nowrap;
    }
    .page_aside .page_aside_filter.active::before{
        width: 30px;
        height: 2px;
        border-radius: 2px;
        top: unset;
        left: 50%;
        transform: translate(-50%);
        bottom: 0;
    }
    .page_head .page_subtitle{
        font-size: 60px;
        left: 0;
        bottom: 0;
    }
}
/*-----------------------------------------------
|   card
-----------------------------------------------*/
.card{
    background-color: #fff;
    box-shadow: 0px 16px 32px -16px rgba(0, 0, 0, 0.16);
    border-radius: 8px;
    height: 100%;
    display: block;
    transition: var(--transition-ease);
    /* padding: 24px; */
}
.card_img_outer{
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 75%;
}
.card_img_outer .card_img{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    -webkit-transition: transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
    background-size: 90%;
    background-position: center;
    background-repeat: no-repeat;
}
.card .card_body{
    padding: 24px 20px;
}
.card .card_body .card_title{
    text-align: center;
    position: relative;
    padding-bottom: 4px;
    margin-top: 0;
}
.card .card_body .card_title::before{
    content: "";
    width: 30px;
    height: 2px;
    background-color: var(--bs-secondary);
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    
}
.card .card_body .card_text{
    color: var(--bs-gray);
    font-size: 14px;
    text-align: center;
    margin-bottom: 0;
    line-height: 1.5;
}
.card:hover{
    transform: translateY(-5px);
    transition: var(--transition-ease);
}
@media (max-width: 767px){
    .card .card_body .card_title{
        font-size: 16px;
    }
}
/*-----------------------------------------------
|   product single page - jumbotron
-----------------------------------------------*/
.jumbotron{
    height: 600px;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    display: flex;
    align-items: center;
}
/* .jumbotron [class^="jumbotron_title"]{
    font-size: 48px;
    line-height: 1.5;
} */
/* .jumbotron__title--end{
    text-align: end;
} */
.jumbotron .jumbotron_title{
    font-size: 32px;
    line-height: 1.5;
    margin-bottom: 20px;
    margin-top: 0;
}
.jumbotron_subtitle{
    font-weight: 300;
    margin: 0;
}
@media (max-width: 767px){
    .jumbotron{
        height: 400px;
        position: relative;
        /* background-position: left bottom; */
    }
    .jumbotron .jumbotron_title{
        font-size: 28px;
        text-align: center;
        position: relative;
    }
    .jumbotron .jumbotron_subtitle{
        font-size: 14px;
        text-align: center;
        position: relative;
    }
    .jumbotron_overlay::before{
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        bottom: 0;
        background-color: rgba(0, 0, 0, 0.4);
    }
}
@media (max-width: 575px){
    .jumbotron{
        height: 300px;
    }
    .jumbotron .jumbotron_title{
        font-size: 24px;
        margin-bottom: 8px;
    }
}
/*-----------------------------------------------
|   product single page - img gallery
-----------------------------------------------*/
.gallery_img_outer{
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 63%;
}
.gallery_img_outer .gallery_img{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 4px;
}
.gallery .slick-track{
    margin-left: 0;
}
.gallery .gallery_img_outer{
    cursor: pointer;
}
.gallery .slick-current{
    position: relative;
}
.gallery [class^="gallery_slider_nav"] .slick-current::before{
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 1;
    border: 2px solid var(--bs-secondary);
    border-radius: 4px;
}
/* .gallery_list_group .gallery_list_item{
    padding-left: 24px;
    position: relative;
}
.gallery_list_group .gallery_list_item:not(:last-child){
    margin-bottom: 8px;
}
.gallery_list_group .gallery_list_item::before{
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2366BAB7' class='bi bi-check-circle' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath d='M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z'/%3E%3C/svg%3E");
    position: absolute;
    left: 0;
} */
.gallery_list_group li{
    padding-left: 24px;
    position: relative;
}
.gallery_list_group li:not(:last-child){
    margin-bottom: 8px;
}
.gallery_list_group li::before{
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2366BAB7' class='bi bi-check-circle' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath d='M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z'/%3E%3C/svg%3E");
    position: absolute;
    left: 0;
}
@media (max-width: 991px){
    /* .gallery_list_group .gallery_list_item{
        font-size: 14px;
    } */
    .gallery_list_group li{
        font-size: 14px;
    }
}