/* © 2026 Abner Ham · All rights reserved. */
/* Generated by tools/build.py from css/style.css and its imports. Do not edit by hand. */

/* ---- content.css ---- */
/*--------------------------------------------------
	Hero Section
---------------------------------------------------*/

#hero {
    width: 100%;
    height: auto;
    position: relative;
    z-index: 20;
    overflow: hidden;
}

#hero-styles {
    position: relative;
    width: 100%;
    height: auto;
    top: 0;
    left: 0;
    right: 0;
    display: block;
    margin: 0 auto;
    z-index: 2;
}

#hero-caption {
    display: flex;
    align-items: center;
    width: 100%;
    height: auto;
    padding-top: 80px;
    padding-bottom: 120px;
    margin: 0 auto;
    position: relative;
    box-sizing: border-box;
    text-align: left;
    pointer-events: initial;
}

#hero-caption.text-align-center {
    justify-content: center;
}

#hero-caption.height-title {
    height: 100vh;
    padding-top: 80px;
    padding-bottom: 80px;
}

#hero #hero-caption .inner {
    display: block;
    width: auto;
    height: auto;
}

#hero-caption.text-align-center .inner {
    text-align: center;
}

#hero-image-wrapper {
    position: absolute;
    width: 100vw;
    height: 100vh;
    z-index: 0;
    margin: 0 auto;
    left: 0;
    top: 0;
    right: 0;
}

.hero-title {
    font-size: calc(1rem + 24.15vw);
    line-height: calc(1rem + 22vw);
    font-weight: 500;
    position: relative;
    display: block;
    width: auto;
    overflow: hidden;
    padding: 0;
    margin-bottom: 0;
    margin-left: -0.6vw;
    color: #000;
}

.text-align-center .hero-title {
    margin-left: 0;
}

.height-title .hero-title {
    position: relative;
    overflow: visible;
    white-space: nowrap;
}

.height-title .hero-title div {
    display: inline-block;
}

.hero-title span {
    opacity: 0;
    display: block;
    margin-top: 0;
    min-width: 3vw;
    transform: translateY(160px);
    -webkit-transform: translateY(160px);
}

.height-title .hero-title span {
    box-sizing: border-box;
    display: inline-block;
    transform-origin: bottom center;
}

.light-content .hero-title {
    color: #fff;
}

.change-header .hero-title {
    color: #000;
}

.hero-subtitle {
    font-size: 18px;
    font-weight: 400;
    line-height: 24px;
    margin-top: 50px;
    width: 100%;
    z-index: 10;
    position: relative;
    display: block;
    overflow: hidden;
    margin-left: 0px;
    color: #000;
    opacity: 0.7;
}

.hero-subtitle span {
    position: relative;
    display: block;
    opacity: 0;
    transform: translateY(60px);
    -webkit-transform: translateY(60px);
}

.light-content .hero-subtitle {
    color: #fff;
}

.change-header .hero-subtitle {
    color: #000 !important;
}

.hero-arrow {
    width: 36px;
    height: 50px;
    position: absolute;
    bottom: 50px;
    left: 80px;
    right: auto;
    margin: 0;
    display: flex;
    background: transparent;
    justify-content: center;
    align-items: center;
}

.text-align-center .hero-arrow {
    left: 0;
    right: 0;
    margin: auto;
}

.hero-arrow span {
    position: relative;
    height: 100%;
    width: 100%;
    opacity: 0;
    display: flex;
    box-sizing: border-box;
    background: transparent;
    justify-content: center;
    align-items: center;
    transform: translateY(30px);
    -webkit-transform: translateY(30px);
    border-radius: 50px;
    border: 2px solid rgba(0, 0, 0, 0.4);
    cursor: pointer;
    -webkit-transition: border 0.2s ease-in-out 0s;
    transition: border 0.2s ease-in-out 0s;
}
.hero-arrow:hover span {
    border: 2px solid rgba(0, 0, 0, 1);
}

.light-content .hero-arrow span {
    border: 2px solid rgba(255, 255, 255, 0.5);
}

.light-content .hero-arrow:hover span {
    border: 2px solid rgba(255, 255, 255, 1);
}

#hero-footer {
    position: absolute;
    width: 100%;
    padding: 28px 80px;
    box-sizing: border-box;
    bottom: 0;
    left: 0;
    font-weight: 500;
    font-size: 14px;
    line-height: 60px;
    color: #222;
}

#hero-footer.has-border::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    opacity: 0;
    background-color: rgba(0, 0, 0, 0.15);
    transform: scaleX(0);
    transform-origin: center;
    transition: all 0.3s ease-out 0s;
}

.light-content #hero-footer.has-border::after {
    background-color: rgba(255, 255, 255, 0.15);
}

#hero-footer.has-border.visible::after {
    opacity: 1;
    transform: scaleX(1);
}

.light-content #hero-footer {
    color: #fff;
}

#hero-footer:after {
    content: "";
    clear: both;
    display: table;
}

.hero-footer-left {
    float: left;
    opacity: 0;
    cursor: pointer;
    transform: translateY(10px);
    -webkit-transform: translateY(10px);
}

.hero-footer-right {
    float: right;
    opacity: 0;
    transform: translateY(10px);
    -webkit-transform: translateY(10px);
}

#share {
    top: -3px;
    right: -10px;
    position: relative;
    font-size: 14px;
}

#share::before {
    position: absolute;
    top: 0;
    left: -140px;
    content: attr(data-text);
    width: 120px;
    text-align: right;
}

#share .parallax-wrap {
    width: 50px;
    height: 60px;
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    float: left;
}

.jssocials-share-link i {
    opacity: 0;
}

/*--------------------------------------------------
	Main Content
---------------------------------------------------*/

#main {
    position: relative;
    opacity: 0;
    user-select: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.load-next-page #main {
    opacity: 1;
}

#main-content {
    position: relative;
    opacity: 1;
    z-index: 10;
    -webkit-transition: all 0.4s ease-in-out 0s;
    transition: all 0.4s ease-in-out 0s;
}

#main-page-content {
    position: relative;
    box-sizing: border-box;
    opacity: 0;
    width: 100%;
    margin: 0 auto;
    margin-bottom: 0;
    overflow: hidden;
    max-width: none;
}

#main-page-content::after {
    clear: both;
    content: " ";
    display: table;
}

#main-page-content.project-page {
    margin-bottom: calc(200vh - 120px);
}

/*--------------------------------------------------
	Page Navigation
---------------------------------------------------*/

#page-nav {
    height: auto;
    width: 100%;
    color: #000;
    position: relative;
    margin-bottom: 0;
    opacity: 0;
    overflow: hidden;
}

.light-content #page-nav {
    color: #fff;
}

.page-nav-wrap {
    position: relative;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
    transform: translateY(0px);
    -webkit-transform: translateY(0px);
}

.page-nav-caption {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0 auto;
    padding-top: 180px;
    padding-bottom: 130px;
    margin: 0 auto;
    height: 100%;
    top: 0;
    opacity: 0;
    position: relative;
    box-sizing: border-box;
}

.page-nav-caption.height-title {
    height: calc(100vh - 120px);
    padding-top: 80px;
    padding-bottom: 80px;
}

#page-nav .inner {
    display: block;
    width: auto;
    height: auto;
    text-align: left;
}

#page-nav .text-align-center .inner {
    text-align: center;
}

.page-title {
    margin: 0;
    width: auto;
    z-index: 10;
    color: #000;
    position: relative;
    display: table;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}

.text-align-center .page-title {
    margin: 0 auto;
}

.light-content .page-title {
    color: #fff;
}

.next-hero-title {
    font-size: calc(1rem + 24.15vw);
    line-height: calc(1rem + 14.5vw);
    font-weight: 500;
    position: relative;
    display: block;
    width: auto;
    overflow: hidden;
    padding: 0;
    margin-top: 0px;
    margin-left: -0.6vw;
    color: #000;
}

.height-title .next-hero-title {
    position: relative;
    overflow: visible;
    white-space: nowrap;
}

.text-align-center .next-hero-title,
.text-align-center .next-hero-subtitle {
    display: table;
    width: auto;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.height-title .next-hero-title div {
    display: inline-block;
}

.height-title:not(.text-align-center) .next-hero-title div:first-child {
    display: none;
}

.next-hero-title span {
    display: block;
    min-width: 3vw;
    transform: translateY(0px);
    -webkit-transform: translateY(0px);
}

.height-title .next-hero-title span {
    box-sizing: border-box;
    display: inline-block;
    transform-origin: top center;
}

.light-content .next-hero-title {
    color: #fff;
}

.change-header .next-hero-title {
    color: #000;
}

.next-hero-subtitle {
    font-size: 18px;
    font-weight: 400;
    line-height: 30px;
    margin-top: 0px;
    margin-bottom: 40px;
    width: 100%;
    z-index: 10;
    position: relative;
    display: block;
    overflow: hidden;
    margin-left: 0px;
    color: #000;
    opacity: 0.7;
}

#page-nav .next-hero-subtitle {
    margin-top: 0px;
    margin-bottom: 50px;
}

.next-hero-subtitle span {
    position: relative;
    display: block;
}

.light-content .next-hero-subtitle {
    color: #fff;
}

.change-header .next-hero-subtitle {
    color: #000;
}

/*--------------------------------------------------
	Project Page Navigation
---------------------------------------------------*/

#project-nav {
    height: 200vh;
    width: 100%;
    color: #fff;
    position: absolute;
    margin-bottom: 0;
    bottom: -200vh;
    overflow: hidden;
}

#project-nav.change-header {
    color: #000;
    background-color: #fff;
}

.dark-content #project-nav.change-header {
    color: #fff;
    background-color: #000;
}

.next-project-wrap {
    display: table;
    width: 100%;
    margin: 0 auto;
    height: 50%;
    position: absolute;
    box-sizing: border-box;
    opacity: 1;
    /*top:-50%;*/
    z-index: 10;
}

.next-project-image-wrapper {
    position: absolute;
    width: 100vw;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 1;
}

.next-project-image-wrapper.temporary {
    position: fixed;
}

.next-project-image-wrapper.active {
    opacity: 1;
}

.next-project-image {
    position: absolute;
    top: 0;
    opacity: 1;
    left: 0;
    right: 0;
    margin: 0 auto;
    height: 100%;
    width: 100%;
    overflow: hidden;
    clip-path: inset(100% 0% 0% 0%);
    -webkit-transform: scale(1.25) rotate(-5deg);
    transform: scale(1.25) rotate(-5deg);
}

.load-project-thumb-with-title .next-project-image {
    z-index: 10;
}

.next-project-image.temporary {
    top: 0px !important;
}

.next-project-image.visible {
    opacity: 1 !important;
    clip-path: inset(0 0%) !important;
    -webkit-transform: scale(1.02) rotate(0) !important;
    transform: scale(1.02) rotate(0) !important;
}

.all-works {
    position: absolute;
    top: 20px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    width: auto;
    margin: 0 auto;
    margin-top: 25px;
    display: table;
    z-index: 100;
}

.all-works::after {
    content: "";
    position: absolute;
    height: 100%;
    top: 0;
    left: 0px;
    line-height: 30px;
    opacity: 1;
    -webkit-transition: all 0.15s ease-out 0s;
    transition: all 0.15s ease-out 0s;
    width: 100%;
    border: 2px solid #fff;
    border-radius: 30px;
    box-sizing: border-box;
    clip-path: inset(50% 0%);
    pointer-events: none;
}

.change-header .all-works::after {
    border: 2px solid #000;
}

.dark-content .change-header .all-works::after {
    border: 2px solid #fff;
}

.all-works:hover::after {
    clip-path: inset(0% 0%);
}

.all-works span,
.all-works span::before {
    padding: 0 16px;
}

.next-caption {
    display: table;
    position: relative;
    z-index: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
    transform-origin: center center;
}

.text-align-center .next-caption {
    margin: 0 auto;
    text-align: center;
}

#project-nav .next-ajax-link-project {
    display: block;
    margin: 0;
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 10;
    top: 0;
    left: 0;
}

.next-ajax-link-project.auto-trigger {
    pointer-events: none;
}

.disable-ajaxload .next-ajax-link-project.auto-trigger {
    pointer-events: initial;
}

.next-hero-counter {
    position: absolute;
    height: 20px;
    width: 30px;
    text-align: right;
    top: 6px;
    right: -45px;
    overflow: hidden;
    opacity: 0;
}

.next-hero-counter span {
    position: absolute;
    display: block;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    color: #000;
}

.change-header .next-hero-counter span {
    color: #000;
}

.light-content .next-hero-counter span {
    color: #fff;
}

.light-content .change-header .next-hero-counter span {
    color: #000;
}

.dark-content .change-header .next-hero-counter span {
    color: #fff;
}

.next-hero-progress {
    position: absolute;
    top: 0;
    right: 0;
    height: 6px;
    width: 100%;
    z-index: 100;
}

.next-hero-progress span {
    position: absolute;
    left: 0;
    height: 6px;
    width: 0;
    background-color: #000;
}

.change-header .next-hero-progress span {
    background-color: #000;
}

.light-content .next-hero-progress span {
    background-color: #fff;
}

.light-content .change-header .next-hero-progress span {
    background-color: #000;
}

.dark-content .change-header .next-hero-progress span {
    background-color: #fff;
}

#project-nav .next-hero-title,
#project-nav .next-hero-subtitle {
    color: #000;
}

#project-nav.change-header .next-hero-title,
#project-nav.change-header .next-hero-subtitle {
    color: #000;
}

.light-content #project-nav .next-hero-title,
.light-content #project-nav .next-hero-subtitle {
    color: #fff;
}

.light-content #project-nav.change-header .next-hero-title,
.light-content #project-nav.change-header .next-hero-subtitle {
    color: #000;
}

.dark-content #project-nav.change-header .next-hero-title,
.dark-content #project-nav.change-header .next-hero-subtitle {
    color: #fff;
}

#project-nav.change-header .all-works,
#project-nav.change-header .all-works .link-text {
    color: #000;
}

.light-content #project-nav .all-works,
.light-content #project-nav .all-works .link-text {
    color: #fff;
}

.light-content #project-nav.change-header .all-works,
.light-content #project-nav.change-header .all-works .link-text {
    color: #000;
}

.dark-content #project-nav.change-header .all-works,
.dark-content #project-nav.change-header .all-works .link-text {
    color: #fff;
}

/*--------------------------------------------------
	Temporary Hero
---------------------------------------------------*/

.temporary-hero {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999;
    pointer-events: none;
    z-index: 10;
}

.temporary-hero .outer {
    width: 100%;
    padding-top: 120px;
    padding-bottom: 160px;
    height: 100%;
    position: relative;
    margin: 0 auto;
    box-sizing: border-box;
    z-index: 10;
}

.temporary-hero .inner {
    vertical-align: top;
}

.temporary-hero .inner .next-caption {
    position: relative;
}

.temporary-hero .next-hero-progress {
    background-color: rgba(0, 0, 0, 0.3);
}

.temporary-hero .next-hero-progress span {
    background-color: #000;
}

.temporary-hero.light-content .next-hero-progress {
    background-color: rgba(255, 255, 255, 0.3);
}

.temporary-hero.light-content .next-hero-progress span {
    background-color: #fff;
}

.temporary-hero .next-hero-counter span {
    color: #000;
}

.temporary-hero.light-content .next-hero-counter span {
    color: #fff;
}

/*--------------------------------------------------
	General Width and Padding for Hero, Content, Page and Project Nav
---------------------------------------------------*/

.content-max-width {
    box-sizing: border-box;
    padding-left: 80px;
    padding-right: 80px;
    max-width: 1320px;
}

.content-full-width {
    box-sizing: border-box;
    padding-left: 80px;
    padding-right: 80px;
    max-width: 100%;
}

/*--------------------------------------------------
	Responsive
---------------------------------------------------*/
@media only screen and (max-width: 1537px) {
    .hero-title {
        font-size: calc(1rem + 22.15vw);
        line-height: calc(1rem + 20.5vw);
    }

    .hero-subtitle {
        margin-top: 30px;
    }

    #page-nav .next-hero-subtitle {
        margin-bottom: 30px;
    }

    .next-hero-title {
        font-size: calc(1rem + 22.15vw);
        line-height: calc(1rem + 12.5vw);
    }
}

@media only screen and (max-width: 1466px) {
    #hero-caption {
        padding-top: 160px;
        padding-bottom: 160px;
    }

    .temporary-hero .outer {
        padding-bottom: 60px;
    }

    #hero-footer {
        padding: 25px 60px;
    }

    .page-nav-caption {
        padding-top: 160px;
        padding-bottom: 120px;
    }

    .content-max-width,
    .content-full-width {
        padding-left: 60px;
        padding-right: 60px;
    }
}

@media only screen and (max-width: 1024px) {
    #hero-caption {
        padding-top: 140px;
        padding-bottom: 140px;
    }

    .temporary-hero .outer {
        padding-bottom: 40px;
    }
    .hero-subtitle {
        margin-top: 20px;
        font-size: 18px;
    }

    #hero-footer {
        padding: 10px 40px;
    }

    .page-nav-caption {
        padding-top: 140px;
        padding-bottom: 100px;
    }

    #page-nav .next-hero-subtitle {
        margin-top: 20px;
    }

    .next-hero-subtitle {
        font-size: 18px;
    }

    .next-hero-counter {
        top: 0px;
    }

    .content-max-width,
    .content-full-width {
        padding-left: 40px;
        padding-right: 40px;
    }
}

@media only screen and (max-width: 767px) {
    #hero-caption {
        padding-top: 120px;
        padding-bottom: 120px;
    }

    .temporary-hero .outer {
        padding-bottom: 30px;
    }

    .hero-subtitle {
        margin-top: 10px;
        font-size: 16px;
    }

    .hero-arrow {
        width: 30px;
        height: 45px;
        left: 30px;
        bottom: 38px;
    }

    #hero-footer {
        padding: 10px 30px;
    }

    .hero-footer-left {
        transform: translateX(-20px);
        -webkit-transform: translateX(-20px);
    }

    .hero-footer-left .button-text {
        display: none;
    }

    .page-nav-caption {
        padding-top: 120px;
        padding-bottom: 120px;
    }

    #page-nav .next-hero-subtitle {
        margin-top: 10px;
        font-size: 16px;
    }

    .next-hero-counter {
        top: -2px;
    }

    .content-max-width,
    .content-full-width {
        padding-left: 30px;
        padding-right: 30px;
    }
}

@media only screen and (max-width: 479px) {
    #hero-caption {
        padding-top: 100px;
        padding-bottom: 100px;
    }

    .temporary-hero .outer {
        padding-bottom: 20px;
    }

    #hero-footer {
        padding: 10px 20px;
    }

    #hero .button-wrap .button-text {
        display: none;
    }

    .page-nav-caption {
        padding-top: 100px;
        padding-bottom: 100px;
    }

    .all-works {
        top: 0;
    }

    .next-hero-counter {
        top: -4px;
        right: -38px;
    }

    .content-max-width,
    .content-full-width {
        padding-left: 20px;
        padding-right: 20px;
    }
}

/* ---- showcase.css ---- */
/*--------------------------------------------------
	General Styles
---------------------------------------------------*/
#app {
    top: 0;
    left: 0;
    position: fixed;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    pointer-events: none;
    opacity: 0;
    -webkit-transition: all 0.1s ease-in-out 0.3s;
    transition: all 0.1s ease-in-out 0.3s;
}

.load-project-thumb #app,
.load-project-thumb-with-title #app {
    opacity: 1;
}

.grid__item-img--large {
    pointer-events: none;
    position: absolute;
    opacity: 0;
}

/*--------------------------------------------------
	Common Slider Styles
---------------------------------------------------*/

.zxr-slider-wrapper {
    width: 100%;
    height: 100vh;
    position: relative;
}

.zxr-slider {
    position: absolute;
    left: 0;
    top: 0;
    padding: 0 42vw 0 42vw;
    display: flex;
    align-items: center;
    height: 100%;
    width: 100%;
    user-select: none;
    cursor: grab;
    z-index: 2;
    overflow: hidden;
    box-sizing: border-box;
}

.slide-inner {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.disable-ajaxload .slide-link {
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 1000;
}

.img-mask {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    margin: 0 auto;
    box-sizing: border-box;
    z-index: 0;
    overflow: hidden;
    border-radius: 0px;
    -webkit-transition: border-radius 0.4s ease-in-out 0s;
    transition: border-radius 0.4s ease-in-out 0s;
}

.rounded-borders .img-mask {
    border-radius: 12px;
}

.rounded-borders .above .img-mask {
    border-radius: 0px;
}

.section-image {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}

.item-image {
    width: 100%;
    height: 100% !important;
    position: relative;
    display: block;
    z-index: 100;
    object-position: center;
    object-fit: cover;
}

.zxr-slider img {
    pointer-events: none;
}

.zxr-pagination {
    width: 100%;
    max-width: 900px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 40px;
    margin: auto;
    z-index: 20;
    text-align: center;
    opacity: 0;
}

.zxr-pagination {
    width: 100%;
    max-width: 900px;
    height: 40px;
    display: flex;
    justify-content: center;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 40px;
    margin: auto;
    z-index: 20;
    text-align: center;
    opacity: 0;
    overflow: hidden;
}

.cp-button-prev,
.cp-button-next {
    float: left;
    pointer-events: initial;
    background-color: #000;
    height: 44px;
    line-height: 44px;
    border-radius: 44px;
    box-sizing: border-box;
    top: 18px;
    position: relative;
    cursor: pointer;
}

.light-content .cp-button-prev,
.light-content .cp-button-next {
    background-color: #fff;
}

.zxr-button.cp-button-prev,
.zxr-button.cp-button-next {
    opacity: 0;
}

.cp-button-next {
    float: right;
}

.cp-button-prev .icon-wrap,
.cp-button-next .icon-wrap {
    width: 36px;
    height: 36px;
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    top: 4px;
    left: 4px;
}

.cp-button-prev .button-icon,
.cp-button-next .button-icon {
    height: 36px;
    width: 36px;
    color: #000;
    text-align: center;
    line-height: 36px;
    font-size: 14px;
    background-color: #fff;
    border-radius: 36px;
}

.light-content .cp-button-prev .button-icon,
.light-content .cp-button-next .button-icon {
    color: #fff;
    background-color: #000;
}

.cp-button-prev .button-icon i,
.cp-button-next .button-icon i {
    height: 36px;
    line-height: 36px;
    width: 36px;
    text-align: center;
}

.cp-button-prev .button-text,
.cp-button-next .button-text {
    font-weight: 500;
    font-size: 14px;
    line-height: 44px;
    margin: 0;
    overflow: hidden;
    width: auto;
    padding: 0 36px 0 36px;
    color: #fff;
    -webkit-transition: padding 0.3s ease-out;
    transition: padding 0.3s ease-out;
}

.light-content .cp-button-prev .button-text,
.light-content .cp-button-next .button-text {
    color: #000;
}

.cp-button-prev:hover .button-text {
    padding: 0 36px 0 60px;
}

.cp-button-next:hover .button-text {
    padding: 0 60px 0 36px;
}

.disable-scroll .cp-button-prev,
.disable-scroll .cp-button-next {
    pointer-events: none;
}

.grid-open.disable-scroll .cp-button-prev,
.grid-open.disable-scroll .cp-button-next {
    pointer-events: initial;
}

.progress-info {
    position: absolute;
    display: flex;
    justify-content: center;
    width: auto;
    margin: 0 auto;
    margin-top: 30px;
    height: 20px;
    line-height: 20px;
    font-size: 14px;
    font-weight: 500;
    left: 0;
    right: 0;
    z-index: 10;
    opacity: 0;
}

.disable-scroll .zxr-slider {
    pointer-events: none;
}

/*--------------------------------------------------
	Showcase Overlapping Gallery
---------------------------------------------------*/

.overlapping-image {
    box-sizing: border-box;
    position: relative;
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.overlapping-image-inner {
    width: 100%;
    height: calc(100% - 120px);
    position: relative;
    cursor: pointer;
}

.overlapping-image:first-child .overlapping-image-inner {
    align-self: flex-start;
}

.overlapping-image:last-child {
    z-index: 10;
}

.rounded-borders .overlapping-image img {
    border-radius: 8px;
}

.overlapping-image .slide-caption {
    position: absolute;
    box-sizing: border-box;
    padding: 80px;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    color: #fff;
    pointer-events: none;
}

.overlapping-image .change-header .slide-caption {
    color: #ffffff;
}

.overlapping-image .slide-caption .slide-title {
    font-size: calc(1rem + 8vw);
    line-height: calc(1rem + 7.5vw);
    font-weight: 500;
    overflow: hidden;
}

.overlapping-image .slide-caption span {
    display: block;
    margin-top: 0;
}

.overlapping-image .slide-caption .slide-cat {
    position: absolute;
    bottom: 80px;
    right: 80px;
    padding: 2px 16px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 35px;
    font-size: 14px;
}

.overlapping-image .change-header .slide-caption .slide-cat {
    color: #fff;
    background: rgba(255, 255, 255, 0.2);
}

/*--------------------------------------------------
	Showcase Portfolio
---------------------------------------------------*/

.curtains {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    z-index: 2;
}

.curtains .curtain-row {
    overflow: hidden;
    background-color: #232323;
    transform-origin: center bottom;
    width: 100%;
    position: absolute;
}

.filters-options-wrapper {
    position: relative;
    right: -14px;
    height: auto;
    min-height: 60px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.filter-option {
    position: relative;
    opacity: 0.4;
    pointer-events: initial;
    margin-left: 12px;
    line-height: 30px;
    overflow: hidden;
    -webkit-transition: opacity 0.15s ease-out 0s;
    transition: opacity 0.15s ease-out 0s;
}

.filter-option:first-child {
    margin-left: 0px;
}

.filter-option.is_active,
.filter-option.is_active span,
.filter-option:hover {
    opacity: 1;
    pointer-events: none;
}

.filter-option::after {
    content: "";
    position: absolute;
    height: 100%;
    top: 0;
    left: 0px;
    line-height: 30px;
    opacity: 1;
    -webkit-transition: all 0.15s ease-out 0s;
    transition: all 0.15s ease-out 0s;
    width: 100%;
    border: 2px solid #000;
    border-radius: 30px;
    box-sizing: border-box;
    clip-path: inset(50% 0%);
}

.filter-option:hover::after {
    clip-path: inset(0% 0%);
}

.filter-option.is_active::after {
    clip-path: inset(0% 0%);
    opacity: 1;
}

.filter-option span {
    position: relative;
    display: inline-block;
    -webkit-transition: -webkit-transform 0.2s;
    transition: transform 0.2s;
    width: auto;
    text-align: center;
    transform-origin: 100% 0%;
    pointer-events: initial;
    cursor: pointer;
    padding: 0 16px;
}

.filter-option span::before {
    position: absolute;
    width: auto;
    top: 100%;
    left: 0;
    content: attr(data-hover);
    padding: 0 16px;
}

.filter-option:hover span {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
    transform-origin: 0% 0%;
}

.showcase-portfolio {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    width: calc(100% - 80px);
    margin: 0 auto;
    margin-top: 20px;
}

.showcase-portfolio .zxr-item {
    position: relative;
    width: calc(33.3333% - 80px);
    height: 18vw;
    margin: 60px 40px 120px 40px;
    box-sizing: border-box;
    padding: 0px;
    z-index: 10;
    display: block;
}

.showcase-portfolio .zxr-item:nth-of-type(6n + 1) {
    width: calc(40% - 80px);
    height: 44vw;
}

.showcase-portfolio .zxr-item:nth-of-type(6n + 2) {
    width: calc(40% - 80px);
    height: 22vw;
    margin-left: calc(20% + 40px);
}

.showcase-portfolio .zxr-item:nth-of-type(6n + 3) {
    width: calc(60% - 80px);
    height: 33vw;
    margin-left: calc(20% + 40px);
}

.showcase-portfolio .zxr-item:nth-of-type(6n + 4) {
    width: calc(40% - 80px);
    height: 22vw;
}

.showcase-portfolio .zxr-item:nth-of-type(6n + 5) {
    width: calc(40% - 80px);
    height: 44vw;
    margin-left: calc(20% + 40px);
}

.showcase-portfolio .zxr-item:nth-of-type(6n + 6) {
    width: calc(60% - 80px);
    height: 33vw;
    margin-left: calc(20% + 40px);
}

.showcase-portfolio .zxr-item.filtered {
    position: relative;
    width: calc(33.3333% - 80px);
    height: 18vw;
    margin: 60px 40px 120px 40px;
    box-sizing: border-box;
    padding: 0px;
    z-index: 10;
    display: block;
}

.showcase-portfolio .slide-inner {
    padding-top: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: visible;
}

.showcase-portfolio .slide-inner::after {
    display: block;
    content: "";
    clear: both;
}

.showcase-portfolio.items-filtered .slide-inner {
    transform: none !important;
}

.showcase-portfolio.ease-transform .slide-inner {
    transition-property: transform;
    transition-duration: 0.5s;
    transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
}

.showcase-portfolio .slide-inner.disabled {
    pointer-events: none;
}

.showcase-portfolio .section-image {
    width: 100%;
    height: 100%;
    left: 0;
    overflow: hidden;
    -webkit-transform: scale(1.03);
    transform: scale(1.03);
    -webkit-transition: transform 0.3s ease-out 0s;
    transition: transform 0.3s ease-out 0s;
}

.showcase-portfolio .slide-inner:hover .section-image,
.showcase-portfolio .above .section-image {
    -webkit-transform: scale(1);
    transform: scale(1);
}

.showcase-portfolio .slide-caption {
    z-index: 10;
    position: absolute;
    left: 0px;
    top: 0;
    height: calc(100% + 50px);
    width: 100%;
    cursor: default;
    pointer-events: none;
    text-align: left;
    opacity: 0;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
}

.showcase-portfolio .slide-caption .slide-title {
    font-size: 24px;
    line-height: 32px;
    font-weight: 500;
    color: #000;
    overflow: hidden;
}

.light-content .showcase-portfolio .slide-caption .slide-title {
    color: #fff;
}

.showcase-portfolio .slide-caption .slide-title span {
    display: block;
}

.showcase-portfolio .slide-caption .slide-cat {
    font-size: 14px;
    line-height: 32px;
    font-weight: 500;
    color: #000;
    z-index: 10;
    overflow: hidden;
    opacity: 0.4;
}

.light-content .showcase-portfolio .slide-caption .slide-cat {
    color: #fff;
}

.showcase-portfolio .slide-caption .slide-cat span {
    display: block;
}

/*--------------------------------------------------
	Showcase Gallery
---------------------------------------------------*/

.slider-fixed-content {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.grid-open .slider-fixed-content {
    opacity: 0.4 !important;
}

.slide-hero-title {
    font-size: calc(1rem + 24.15vw);
    line-height: calc(1rem + 22vw);
    font-weight: 500;
    color: #000;
    position: relative;
    display: table;
    width: auto;
}

.light-content .slide-hero-title {
    color: #fff;
}

.text-align-center .slide-hero-title,
.text-align-center .slide-hero-title span {
    display: table;
    width: auto;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.slide-hero-title div {
    overflow: hidden;
}

.height-title .slide-hero-title div {
    display: inline-block;
}

.slide-hero-title span {
    opacity: 0;
    display: block;
    margin-top: 0;
    min-width: 3vw;
    transform: translateY(160px);
    -webkit-transform: translateY(160px);
}

.height-title .slide-hero-title span {
    box-sizing: border-box;
    display: inline-block;
    transform-origin: bottom center;
}

.grid-open .height-title .slide-hero-title span {
    box-sizing: border-box;
    display: inline-block;
    transform-origin: top center;
}

/*--------------------------------------------------
	16. Responsive
---------------------------------------------------*/

@media only screen and (max-width: 1537px) {
    .slide-hero-title {
        font-size: calc(1rem + 22.15vw);
        line-height: calc(1rem + 20.5vw);
    }
}

@media only screen and (max-width: 1466px) {
    /* Showcase Elements */

    .zxr-pagination {
        bottom: 30px;
    }

    /* Showcase Overlapping Gallery */

    .overlapping-image .slide-caption {
        padding: 60px;
    }

    .overlapping-image .slide-caption .slide-cat {
        bottom: 60px;
        right: 60px;
    }

    /* Showcase Portfolio */

    .showcase-portfolio {
        width: calc(100% - 60px);
    }

    .showcase-portfolio .zxr-item {
        width: calc(33.3333% - 60px);
        margin: 60px 30px 120px 30px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 1) {
        width: calc(40% - 60px);
        height: 44vw;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 2) {
        width: calc(40% - 60px);
        height: 22vw;
        margin-left: calc(20% + 30px);
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 3) {
        width: calc(60% - 60px);
        height: 33vw;
        margin-left: calc(20% + 30px);
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 4) {
        width: calc(40% - 60px);
        height: 22vw;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 5) {
        width: calc(40% - 60px);
        height: 44vw;
        margin-left: calc(20% + 30px);
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 6) {
        width: calc(60% - 60px);
        height: 33vw;
        margin-left: calc(20% + 30px);
    }

    .showcase-portfolio .zxr-item.filtered {
        width: calc(33.3333% - 60px);
        height: 18vw;
        margin: 60px 30px 120px 30px;
    }

    .showcase-portfolio .slide-caption .slide-title {
        font-size: 20px;
        line-height: 28px;
    }

    .showcase-portfolio .slide-caption .slide-cat {
        line-height: 28px;
    }

    /* Showcase Gallery */
}

@media only screen and (max-width: 1024px) {
    /* Showcase Elements */

    .progress-info {
        margin-top: 30px;
    }

    .zxr-pagination {
        bottom: 30px;
    }

    /* Showcase Overlapping Gallery */

    .overlapping-image .slide-caption {
        padding: 40px;
    }

    .overlapping-image .slide-caption .slide-title {
        font-size: calc(1rem + 12vw);
        line-height: calc(1rem + 11.5vw);
    }

    .overlapping-image .slide-caption .slide-cat {
        bottom: 40px;
        right: 40px;
    }

    /* Showcase Portfolio */

    .showcase-portfolio {
        width: calc(100% - 40px);
    }

    .showcase-portfolio .zxr-item {
        width: calc(33.3333% - 40px);
        margin: 40px 20px 120px 20px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 1) {
        width: calc(45% - 40px);
        height: 48vw;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 2) {
        width: calc(45% - 40px);
        height: 25vw;
        margin-left: calc(10% + 20px);
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 3) {
        width: calc(60% - 40px);
        height: 33vw;
        margin-left: calc(20% + 20px);
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 4) {
        width: calc(45% - 40px);
        height: 25vw;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 5) {
        width: calc(45% - 40px);
        height: 48vw;
        margin-left: calc(10% + 20px);
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 6) {
        width: calc(60% - 40px);
        height: 33vw;
        margin-left: calc(20% + 20px);
    }

    .showcase-portfolio .zxr-item.filtered {
        width: calc(50% - 40px);
        height: 28vw;
        margin: 40px 20px 60px 20px;
    }

    .showcase-portfolio .section-image {
        -webkit-transform: scale(1);
        transform: scale(1);
    }

    .showcase-portfolio .slide-caption .slide-title {
        font-size: 18px;
    }

    /* Showcase Gallery */
}

@media only screen and (max-width: 767px) {
    /* Showcase Elements */

    .progress-info {
        margin-top: 30px;
    }

    .zxr-pagination {
        height: 20px;
        bottom: 30px;
    }

    /* Showcase Overlapping Gallery */

    .overlapping-image .slide-caption {
        padding: 30px;
    }

    .overlapping-image .slide-caption .slide-title {
        font-size: calc(1rem + 13vw);
        line-height: calc(1rem + 12.5vw);
    }

    .overlapping-image .slide-caption .slide-cat {
        top: 30px;
        bottom: auto;
        right: 30px;
    }

    /* Showcase Portfolio */

    .showcase-portfolio {
        width: calc(100% - 30px);
    }

    .showcase-portfolio .zxr-item {
        width: calc(33.3333% - 30px);
        margin: 30px 15px 60px 15px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 1) {
        width: calc(100% - 30px);
        height: 55vw;
        margin-left: 15px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 2) {
        width: calc(100% - 30px);
        height: 55vw;
        margin-left: 15px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 3) {
        width: calc(100% - 30px);
        height: 55vw;
        margin-left: 15px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 4) {
        width: calc(100% - 30px);
        height: 55vw;
        margin-left: 15px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 5) {
        width: calc(100% - 30px);
        height: 55vw;
        margin-left: 15px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 6) {
        width: calc(100% - 30px);
        height: 55vw;
        margin-left: 15px;
    }

    .showcase-portfolio .zxr-item.filtered {
        width: calc(100% - 30px);
        height: 55vw;
        margin: 30px 15px 60px 15px;
    }

    /* Showcase Gallery */
}

@media only screen and (max-width: 479px) {
    /* Showcase Elements */

    .cp-button-prev .button-icon,
    .cp-button-next .button-icon {
        color: #fff;
        background-color: #000;
    }

    .light-content .cp-button-prev .button-icon,
    .light-content .cp-button-next .button-icon {
        color: #000;
        background-color: #fff;
    }

    /* Showcase Overlapping Gallery */

    .overlapping-image .slide-caption {
        padding: 20px;
    }

    .overlapping-image .slide-caption .slide-title {
        font-size: calc(1rem + 14vw);
        line-height: calc(1rem + 13.5vw);
    }

    .overlapping-image .slide-caption .slide-cat {
        top: 20px;
        bottom: auto;
        right: 20px;
    }

    /* Showcase Portfolio */

    .showcase-portfolio {
        width: calc(100% - 20px);
    }

    .showcase-portfolio .zxr-item {
        width: calc(33.3333% - 20px);
        margin: 20px 10px 60px 10px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 1) {
        width: calc(100% - 20px);
        height: 55vw;
        margin-left: 10px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 2) {
        width: calc(100% - 20px);
        height: 55vw;
        margin-left: 10px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 3) {
        width: calc(100% - 20px);
        height: 55vw;
        margin-left: 10px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 4) {
        width: calc(100% - 20px);
        height: 55vw;
        margin-left: 10px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 5) {
        width: calc(100% - 20px);
        height: 55vw;
        margin-left: 10px;
    }

    .showcase-portfolio .zxr-item:nth-of-type(6n + 6) {
        width: calc(100% - 20px);
        height: 55vw;
        margin-left: 10px;
    }

    .showcase-portfolio .zxr-item.filtered {
        width: calc(100% - 20px);
        height: 55vw;
        margin: 20px 10px 60px 10px;
    }

    /* Showcase Gallery */
}

/* ---- shortcodes.css ---- */
/*--------------------------------------------------
	Pinned Section
---------------------------------------------------*/

.pinned-section {
    position: relative;
    display: table !important;
    width: 100%;
    margin: 0 auto;
    max-width: 1160px;
}

.full .pinned-section {
    max-width: 100%;
}

.pinned-section .pin-spacer {
    width: 50% !important;
}

.pinned-element {
    position: relative;
    display: block;
    height: auto;
    float: left;
    width: 50%;
    margin: 0;
    box-sizing: border-box;
}

.pinned-element.left {
    padding-right: 30px;
}

.pinned-element.right {
    padding-left: 30px;
}

.scrolling-element {
    position: relative;
    float: left;
    width: 50%;
    margin: 0;
    box-sizing: border-box;
}

.scrolling-element.left {
    padding-right: 30px;
}

.scrolling-element.right {
    padding-left: 30px;
}

.scrolling-element img {
    display: block;
    height: auto;
    width: 100%;
}

/*--------------------------------------------------
	Content Text Effects
---------------------------------------------------*/

.title-moving-forward,
.title-moving-backward {
    clear: both;
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    padding: 0 6vw;
    box-sizing: border-box;
}

.marquee-text {
    font-weight: 500;
    display: inline-block;
    color: #000;
}

.marquee-text:before {
    content: ".";
    color: transparent;
}

.light-content .marquee-text {
    color: #fff;
}

.light-content .light-section .marquee-text {
    color: #000;
}

/*--------------------------------------------------
	Hover Reveal Image
---------------------------------------------------*/

/*--------------------------------------------------
	Carousel
---------------------------------------------------*/

.zxr-slider-wrapper.content-slider {
    width: 100%;
    height: auto;
    position: relative;
}

.content-slider .zxr-slider {
    padding: 0 0 0 0;
    height: auto;
    position: relative;
}

.rounded-borders .content-slider {
    border-radius: 8px;
    overflow: hidden;
}

.content-slider .zxr-pagination {
    bottom: 20px;
}

.content-slider .zxr-pagination {
    opacity: 1;
}

.path {
    display: none;
}

@keyframes dash {
    from {
        stroke-dashoffset: 1000;
    }

    to {
        stroke-dashoffset: 0;
    }
}

/*--------------------------------------------------
	Light Box
---------------------------------------------------*/

.image-link,
.video-link {
    display: block;
    width: auto;
}

.rounded-borders .image-link img,
.rounded-borders .video-link img {
    border-radius: 8px;
}

.disable-cursor .image-link::after {
    font: var(--fa-font-solid);
    content: "\f002";
    font-size: 18px;
    width: 60px;
    height: 60px;
    line-height: 60px;
    text-align: center;
    position: absolute;
    right: 10px;
    top: 10px;
    color: #fff;
    opacity: 0;
    -webkit-transition: opacity 0.15s ease-out;
    transition: opacity 0.15s ease-out;
}

.disable-cursor .image-link:hover::after {
    opacity: 1;
}

.disable-cursor .video-link::after {
    font: var(--fa-font-solid);
    content: "\f04b";
    font-size: 18px;
    width: 60px;
    height: 60px;
    line-height: 60px;
    text-align: center;
    position: absolute;
    right: 10px;
    top: 10px;
    color: #fff;
    opacity: 0;
    -webkit-transition: opacity 0.15s ease-out;
    transition: opacity 0.15s ease-out;
}

.disable-cursor .video-link:hover::after {
    opacity: 1;
}

/*--------------------------------------------------
	Video Player
---------------------------------------------------*/

.hero-video-wrapper {
    position: absolute;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding: 0;
    overflow: hidden !important;
    opacity: 0;
}

.item .hero-video-wrapper,
.zxr-item .hero-video-wrapper,
.zxr-slider .hero-video-wrapper,
.overlapping-image .hero-video-wrapper {
    position: absolute;
    box-sizing: border-box;
    min-width: 100%;
    min-height: 100%;
    width: 100%;
    height: auto;
    background-size: cover;
    padding: 0;
    overflow: hidden !important;
    opacity: 1;
    top: 0;
    z-index: 120;
    pointer-events: none;
}

.content-video-wrapper {
    position: absolute;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    padding: 0;
    overflow: hidden !important;
    z-index: 1;
}

.hero-video-wrapper video.bgvid,
.content-video-wrapper video.bgvid {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: -1;
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.video-cover {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 100;
    cursor: pointer;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    -webkit-transition:
        opacity 0.3s ease-out 0.05s,
        height 0s ease-out 0s;
    transition:
        opacity 0.3s ease-out 0.05s,
        height 0s ease-out 0s;
}

.video-cover.hidden {
    opacity: 0;
    height: calc(100% - 50px);
    -webkit-transition:
        opacity 0.3s ease-out,
        height 0s ease-out 0.3s;
    transition:
        opacity 0.3s ease-out,
        height 0s ease-out 0.3s;
}

video.bgvid {
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    object-position: center;
    object-fit: cover;
    z-index: -100;
}

.progress {
    height: 2px;
    max-width: 100%;
    position: relative;
    width: 100%;
}

.progress span {
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    display: block;
}

/*--------------------------------------------------
	Buttons
---------------------------------------------------*/

.button-box {
    line-height: 16px;
    cursor: pointer;
    border: none;
    box-sizing: border-box;
    text-align: center;
    display: inline-block;
    position: relative;
}

.text-align-center .button-box,
.text-align-center.button-box {
    margin-left: 10px;
    margin-right: 10px;
    text-align: center;
}

.text-align-center.button-box {
    display: flex;
    margin: auto;
}

.zxr-button-wrap {
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    left: 0;
    right: 0;
    min-width: 100px;
    height: 60px;
}

.zxr-button-wrap.circle {
    min-width: 104px;
    height: 104px;
}

.text-align-center .zxr-button-wrap {
    margin: 0 auto;
}

.zxr-button {
    opacity: 1;
}

.button-border {
    height: 50px;
    width: auto;
    border: solid 2px #000;
    background-color: #000;
    border-radius: 5px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 500;
    line-height: 50px;
    overflow: hidden;
    color: #000;
    text-align: center;
    -webkit-transition: border 0.2s ease-out;
    transition: border 0.2s ease-out;
    box-sizing: initial !important;
}

.light-content .button-border,
.dark-section .button-border {
    border: solid 2px #fff;
    background-color: #fff;
}

.light-content .light-section .button-border {
    border: solid 2px #000;
    background-color: #000;
}

.light-content .button-border a,
.dark-section .button-border a {
    color: #000;
}

.light-content .light-section .button-border a {
    color: #fff;
}

.button-border.rounded {
    border-radius: 30px;
}

.button-border.outline {
    border: solid 2px #000;
    color: #000;
    background-color: transparent;
}

.light-content .button-border.outline,
.dark-section .button-border.outline {
    border: solid 2px #fff;
    color: #fff;
    background-color: transparent;
}

.light-content .light-section .button-border.outline {
    border: solid 2px #000;
    background-color: transparent;
}

.zxr-button a {
    position: relative;
    display: block;
    height: 100%;
}

.light-content .button-border.outline a,
.dark-section .button-border.outline a {
    color: #fff;
}

.light-content .light-section .button-border.outline a {
    color: #000;
}

.dark-content .light-section .button-border a {
    color: #fff;
}

.dark-content .light-section .button-border.outline a {
    color: #000;
}

.circle .button-border {
    border-radius: 100px;
    height: 100px;
    width: 100px;
}

.button-border span {
    position: relative;
    display: inline-block;
    -webkit-transition: -webkit-transform 0.2s;
    transition: transform 0.2s;
    width: auto;
    text-align: center;
    transform-origin: 100% 0%;
    padding: 0 40px;
}

.button-border span::before {
    position: absolute;
    width: 100%;
    top: 100%;
    left: 0;
    content: attr(data-hover);
    text-align: center;
}

.zxr-button:hover .button-border span {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
    transform-origin: 0% 0%;
}

.zxr-button-wrap.circle:hover .button-border {
    border: solid 2px transparent;
}

.zxr-button-wrap.circle .button-border input,
.zxr-button-wrap.circle .button-border a {
    height: 100px;
    width: 100px;
    line-height: 100px;
    text-align: center;
    padding: 0;
    font-size: 12px;
    cursor: pointer;
}

/*--------------------------------------------------
	Appearing Items
---------------------------------------------------*/

.has-animation {
    opacity: 0;
    transform: translateY(30px);
}

.has-animation.has-cover {
    opacity: 1;
    transform: translateY(0px);
    overflow: hidden;
}

.has-animation.has-cover::after {
    content: "";
    width: 100%;
    height: 100%;
    background-color: inherit;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 10;
    -webkit-transition: all 0.6s cubic-bezier(0.54, 0.49, 0.2, 1.01);
    -o-transition: all 0.6s cubic-bezier(0.54, 0.49, 0.2, 1.01);
    transition: all 0.6s cubic-bezier(0.54, 0.49, 0.2, 1.01);
}

.has-animation.has-cover.animated::after {
    width: 0;
}

.has-animation.has-cover img {
    opacity: 1;
    -webkit-transition: scale(1.05);
    transform: scale(1.05);
    -webkit-transition: all 0.6s cubic-bezier(0.54, 0.49, 0.2, 1.01);
    -o-transition: all 0.6s cubic-bezier(0.54, 0.49, 0.2, 1.01);
    transition: all 0.6s cubic-bezier(0.54, 0.49, 0.2, 1.01);
}

.has-animation.has-cover.animated img {
    opacity: 1;
    transform: scale(1);
}

.has-mask {
    margin-bottom: 10px;
}

.has-mask span {
    display: inline-table;
    overflow: hidden;
}

.has-mask span > span {
    display: inline-table;
    margin: 0 !important;
    line-height: inherit;
    height: inherit;
    opacity: 0;
    -webkit-transform: translateY(60px);
    transform: translateY(60px);
}

h1.big-title.has-mask span,
h1.big-title.has-mask span > span {
    line-height: inherit;
    height: inherit;
    margin-right: 12px;
}

h1.has-mask span,
h1.has-mask span > span {
    line-height: inherit;
    height: inherit;
    margin-right: 12px;
}

h2.has-mask span,
h2.has-mask span > span {
    line-height: inherit;
    height: inherit;
    margin-right: 10px;
}

h3.has-mask span,
h3.has-mask span > span {
    line-height: inherit;
    height: inherit;
    margin-right: 8px;
}

h4.has-mask span,
h4.has-mask span > span {
    line-height: inherit;
    height: inherit;
    margin-right: 7px;
}

h5.has-mask span,
h5.has-mask span > span {
    line-height: inherit;
    height: inherit;
    margin-right: 6px;
}

h6.has-mask span,
h6.has-mask span > span {
    line-height: inherit;
    height: inherit;
    margin-right: 5px;
}

.has-mask-fill > span {
    position: relative;
    display: inline;
    -webkit-text-fill-color: rgba(0, 0, 0, 0.1);
    -webkit-background-clip: text;
    background-clip: text;
    background-repeat: no-repeat;
    background-image: linear-gradient(#000, #000);
    background-size: 0% 100%;
}

.has-mask-fill.block-title > span {
    display: block;
}

.light-content .has-mask-fill > span,
.dark-section .has-mask-fill > span {
    -webkit-text-fill-color: rgba(255, 255, 255, 0.1);
    background-image: linear-gradient(#fff, #fff);
}

.light-content .light-section .has-mask-fill > span {
    -webkit-text-fill-color: rgba(0, 0, 0, 0.1);
    -webkit-background-clip: text;
    background-clip: text;
    background-repeat: no-repeat;
    background-image: linear-gradient(#000, #000);
}

.has-opacity span {
    opacity: 0.2;
}

.number-counter {
    position: relative;
    display: table;
}

.number-counter::after {
    content: attr(data-symbol);
    line-height: inherit;
    top: 0;
    position: absolute;
    left: calc(100% + 5px);
}

/*--------------------------------------------------
	Underline Link
---------------------------------------------------*/

a.link {
    display: inline-block;
    position: relative;
}

.light-content a.link {
    color: #fff;
}

.light-content .light-section a.link {
    color: #fff;
}

a.link::before {
    content: "";
    position: absolute;
    bottom: 1px;
    left: 0;
    width: 100%;
    height: 2px;
    background: rgba(0, 0, 0, 1);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.2s ease-out;
}

h1 a.link::before {
    bottom: 0px;
    height: 3px;
}

.light-content a.link::before,
.dark-section a.link::before {
    background: rgba(255, 255, 255);
}

.light-content .light-section a.link::before {
    background: rgb(255, 255, 255);
}

a.link:hover::before {
    transform: scaleX(1);
    transform-origin: left;
}

/*--------------------------------------------------
	Icon Boxes
---------------------------------------------------*/

.box-icon-wrapper {
    display: table;
    position: relative;
    box-sizing: border-box;
    height: auto;
    width: 100%;
}

.box-icon {
    color: #000;
    position: relative;
    margin-top: 0px;
    margin-bottom: 10px;
    width: 35px;
    height: 35px;
    line-height: 35px;
}

.text-align-center .box-icon {
    margin: auto;
}

.box-icon i {
    position: relative;
    margin-bottom: 0px;
    font-size: 24px;
}

.light-content .box-icon {
    color: #fff;
}

.light-content .light-section .box-icon {
    color: #000;
}

.box-icon:after {
    content: "";
    clear: both;
    display: table;
}

.box-icon-content {
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

.box-icon h5 {
    margin-bottom: 5px;
}

/*--------------------------------------------------
	Parallax Image
---------------------------------------------------*/

/*--------------------------------------------------
	Clients Table
---------------------------------------------------*/

/*--------------------------------------------------
	Accordion
---------------------------------------------------*/

.accordion {
    padding: 20px 0;
    padding-top: 0;
    margin: 0;
}

.accordion dt {
    position: relative;
    display: flex;
    align-items: center;
    cursor: pointer;
    padding: 0px;
    margin-bottom: 0px;
    margin-top: 20px;
    padding-top: 20px;
    font-size: 20px;
    line-height: 30px;
    font-weight: 500;
    -webkit-transition: all 0.2s ease 0s;
    transition: all 0.2s ease 0s;
    z-index: 10;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.light-content .accordion dt,
.dark-section .accordion dt {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.light-content .light-section .accordion dt {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.accordion dt:first-child {
    margin-top: 0px;
    border-top: none;
}

.accordion dt span {
    width: calc(100% - 30px);
    position: relative;
    overflow: hidden;
    display: block;
    padding: 0px;
    color: #000;
    font-family: inherit;
}

.accordion:not(.bigger-acc) dt span em {
    font-family: inherit;
}

.light-content .accordion dt span,
.dark-section .accordion dt span {
    color: #fff;
}

.light-content .light-section .accordion dt span {
    color: #000;
}

.accordion .accordion-content {
    margin-bottom: 0;
    font-size: 16px;
    color: #000;
    font-weight: 400;
    line-height: 28px;
    padding-left: 0;
    padding-right: 80px;
    padding-top: 10px;
    padding-bottom: 5px;
    z-index: 0;
    position: relative;
}

.light-content .accordion .accordion-content,
.dark-section .accordion .accordion-content {
    color: #ccc;
}

.light-content .light-section .accordion .accordion-content {
    color: #444;
}

.acc-icon-wrap {
    width: 30px;
    height: 30px;
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    float: none;
    opacity: 1;
    -webkit-transition: opacity 0.2s ease 0s;
    transition: opacity 0.2s ease 0s;
}

.accordion dt:hover .acc-icon-wrap,
.accordion dt.accordion-active .acc-icon-wrap {
    opacity: 1;
}

.acc-button-icon {
    height: 30px;
    width: 30px;
    color: #000;
    text-align: center;
    line-height: 30px;
    font-size: 12px;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 50px;
    -webkit-transition:
        background 0.2s ease 0s,
        color 0.2s ease 0s;
    transition:
        background 0.2s ease 0s,
        color 0.2s ease 0s;
}

.accordion dt:hover .acc-button-icon,
.accordion dt.accordion-active .acc-button-icon {
    background: rgba(0, 0, 0, 1);
    color: #fff;
}

.light-content accordion .acc-button-icon,
.dark-section .accordion .acc-button-icon {
    background: rgba(255, 255, 255, 0.1);
}

.light-content .accordion dt:hover .acc-button-icon,
.dark-section .accordion dt.accordion-active .acc-button-icon {
    background: rgba(255, 255, 255, 1);
    color: #000;
}

.light-content .light-section accordion .acc-button-icon {
    background: rgba(0, 0, 0, 0.1);
}

.light-content .light-section dt:hover .acc-button-icon,
.light-content .light-section .accordion dt.accordion-active .acc-button-icon {
    background: rgba(0, 0, 0, 1);
    color: #fff;
}

.light-content .accordion .acc-button-icon,
.dark-section .accordion .acc-button-icon {
    color: #fff;
}

.light-content .light-section .accordion .acc-button-icon {
    color: #000;
}

.acc-button-icon i {
    height: 30px;
    line-height: 30px;
    width: 30px;
    text-align: center;
    -webkit-transition: transform 0.2s ease 0s;
    transition: transform 0.2s ease 0s;
}

dt.accordion-active .acc-button-icon i {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
}

/*--------------------------------------------------
	Justified Gallery
---------------------------------------------------*/

.justified-gallery {
    box-sizing: border-box;
    padding: 0 0px;
    width: calc(100% + 20px) !important;
    margin-left: -10px;
}

/*--------------------------------------------------
	Team Members
---------------------------------------------------*/

/*--------------------------------------------------
	Contact Formular
---------------------------------------------------*/

.text-align-center #contact-formular {
    margin: 0 auto;
    max-width: 800px;
}

#contact-formular::after {
    clear: both;
    content: " ";
    display: table;
}

#contactform {
    position: relative;
}

input#verify {
    float: left;
    width: 34px;
    padding: 0;
    height: 34px;
    text-align: center;
    line-height: 34px;
    border: none;
    border-radius: 3px;
    background-color: #000;
    color: #fff;
}

.light-content input#verify,
.dark-section input#verify {
    background-color: #fff;
    color: #000;
}

.light-content .light-section input#verify {
    background-color: #000;
    color: #fff;
}

#contact-formular .required {
    float: left;
    width: auto;
    font-size: 14px;
    line-height: 34px;
    margin-left: 20px;
    margin-bottom: 0;
}

#contact-formular .text-align-center .required {
    float: left;
    margin-left: 0;
    display: block;
    clear: both;
    text-align: center;
    width: 100%;
    padding-top: 10px;
}

input,
textarea {
    color: rgba(0, 0, 0, 1);
    font-family: "Poppins", sans-serif;
    font-size: 16px;
    font-weight: 500;
    height: 50px;
    padding: 12px 20px 12px 20px;
    padding-left: 0;
    width: 100%;
    border-radius: 0px;
    margin-bottom: 0px;
    border: none;
    -webkit-transition: all 0.2s linear;
    transition: all 0.2s linear;
    box-sizing: border-box;
    background-color: transparent;
    outline: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}

input[type="search"] {
    padding-left: 0px;
}

.light-content input,
.light-content textarea,
.dark-section input,
.dark-section textarea {
    color: rgba(255, 255, 255, 1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}

.light-content .light-section input,
.light-content .light-section textarea {
    color: rgba(0, 0, 0, 1);
    border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}

::placeholder,
.light-content .light-section ::placeholder {
    color: #000;
    opacity: 1;
}

.light-content ::placeholder,
.dark-section ::placeholder {
    color: #fff;
    opacity: 1;
}

.light-content :-ms-input-placeholder,
.dark-section :-ms-input-placeholder {
    color: #fff;
}

.light-content .light-section :-ms-input-placeholder {
    color: #000;
    opacity: 1;
}

.light-content ::-ms-input-placeholder {
    color: #fff;
}

:-ms-input-placeholder {
    color: #000;
}

.input_label {
    background-color: #000;
    height: 2px;
    left: 0;
    position: absolute;
    top: 49px;
    width: 0;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}

.light-content .input_label,
.dark-section .input_label {
    background-color: #fff;
}

.light-content .light-section .input_label {
    background-color: #000;
}

.input_label.slow {
    -webkit-transition: all 0.4s ease-in-out;
    transition: all 0.4s ease-in-out;
}

input:focus + .input_label,
textarea:focus + .input_label {
    width: 100%;
}

input:focus,
textarea:focus {
    color: #000;
}

.light-content input:focus,
.light-content textarea:focus,
.dark-section input:focus,
.dark-section textarea:focus {
    color: #fff;
}

.light-content .light-section input:focus,
.light-content .light-section textarea:focus {
    color: #000;
}

textarea {
    resize: none;
    margin-bottom: 0;
    height: 50px;
    box-sizing: border-box;
    padding: 14px 20px 6px 20px;
    padding-left: 0;
    margin-bottom: 40px;
}

textarea:after {
    background-color: #000;
    content: "";
    height: 2px;
    left: 0px;
    position: absolute;
    top: 20px;
    width: 100%;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}

input[type="submit"] {
    margin: 0;
    background: transparent;
    border: none;
    color: #fff;
    font-family: "Poppins", sans-serif;
    font-size: 18px;
    font-weight: 500;
    padding-left: 50px;
    padding-right: 50px;
    height: 100%;
}

.light-content input[type="submit"],
.dark-section input[type="submit"] {
    color: #000;
}

.light-content .light-section input[type="submit"] {
    color: #fff;
}

.outline input[type="submit"] {
    color: #000;
}

.light-content .outline input[type="submit"],
.dark-section .outline input[type="submit"] {
    color: #fff;
}

.light-content .light-section .outline input[type="submit"] {
    color: #000;
}

#message fieldset {
    border: none;
}

/*--------------------------------------------------
	Google Map
---------------------------------------------------*/

#map_canvas {
    display: block;
    height: 100vh;
    position: relative;
    width: 100%;
}

.rounded-borders #map_canvas {
    border-radius: 8px;
    overflow: hidden;
}

/*--------------------------------------------------
	Flex Lists
---------------------------------------------------*/

.flex-lists-wrapper {
    position: relative;
    display: block;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    max-width: 1000% !important;
    width: 100vw !important;
    overflow: hidden;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.light-content .flex-lists-wrapper,
.dark-section .flex-lists-wrapper {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.light-content .light-section .flex-lists-wrapper {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.flex-list {
    position: relative;
    padding: 35px 80px;
    margin: 0;
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.light-content .flex-list,
.dark-section .flex-list {
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.light-content .light-section .flex-list {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    background-color: #fff;
}

.flex-list::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 0;
    left: 0;
    bottom: 0;
    z-index: 0;
    background-color: #000;
    -webkit-transition: all 0.2s ease-out 0s;
    transition: all 0.2s ease-out 0s;
}

.light-content .flex-list::after,
.dark-section .flex-list::after {
    background-color: #fff;
}

.light-content .light-section .flex-list::after {
    background-color: #000;
}

.flex-list:hover::after {
    height: 100%;
}

.flex-list > span {
    z-index: 10;
    mix-blend-mode: difference;
    color: #fff;
}

.flex-list-left {
    width: 15%;
    text-align: left;
}

.flex-list-center {
    width: 70%;
    font-size: 20px;
    text-align: center;
}

.flex-list-right {
    width: 15%;
    text-align: right;
}

/*--------------------------------------------------
	Moving Gallery
---------------------------------------------------*/

.moving-gallery li {
    position: relative;
    width: 25vw;
    padding-left: 10px;
    padding-right: 10px;
    box-sizing: border-box;
    margin: 10px 0;
    list-style: none;
}

.moving-gallery li img {
    height: auto;
    margin: 0px;
}

.moving-gallery li img {
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.rounded-borders .moving-gallery li img {
    border-radius: 12px;
}

/*--------------------------------------------------
	Zoom Gallery
---------------------------------------------------*/

.zoom-gallery {
    position: relative;
    margin: 0;
    padding: 0;
    clear: both;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    max-width: 1000%;
    width: calc(100vw);
    height: auto;
    pointer-events: none;
}

.zoom-wrapper-gallery {
    position: relative;
    border-right: 0px solid #f00;
    box-sizing: border-box;
    margin: 0;
    padding: 0 70px;
    clear: both;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
}

.zoom-wrapper-gallery li {
    position: relative;
    display: block;
    box-sizing: border-box;
    padding: 0 10px;
    margin: 0;
    list-style: none;
    z-index: 0;
    width: 50%;
    max-width: 50%;
    height: 100%;
    float: left;
    display: flex;
    align-items: center;
}

.zoom-wrapper-gallery li.zoom-center {
    z-index: 1;
}

.zoom-wrapper-gallery li .zoom-img-wrapper {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    min-height: 100%;
    position: relative;
    overflow: hidden;
    background-color: rgb(102, 102, 102);
}

.rounded-borders .zoom-wrapper-gallery li .zoom-img-wrapper {
    border-radius: 8px;
}

.zoom-wrapper-gallery li .zoom-img-wrapper img {
    width: 100%;
    height: 100%;
    position: relative;
    display: block;
    z-index: 100;
    object-position: center;
    object-fit: cover;
}

.zoom-wrapper-thumb {
    width: 100%;
    height: 100vh;
    position: absolute;
    top: 0;
    display: block;
}

.zoom-wrapper-thumb .zoom-img-wrapper {
    width: 100%;
    height: 100%;
    position: absolute;
    overflow: hidden;
}

.rounded-borders .zoom-wrapper-thumb .zoom-img-wrapper {
    border-radius: 8px;
}

.zoom-wrapper-thumb .zoom-img-wrapper img {
    width: 100%;
    height: 100%;
    position: relative;
    display: block;
    z-index: 100;
    object-position: center;
    object-fit: cover;
}

/*--------------------------------------------------
	Slowed Pinterest
---------------------------------------------------*/

.slowed-pin {
    position: relative;
    overflow: hidden;
}

.slowed-pin > .pin-spacer {
    pointer-events: none;
}

.slowed-text {
    position: absolute;
    height: auto;
    min-height: 100vh;
    width: 100%;
    max-width: 980px;
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    box-sizing: border-box;
    padding: 8vw 20px;
    z-index: 1;
    pointer-events: none;
    margin: auto;
    left: 0;
    right: 0;
}

.slowed-text-wrapper {
    position: relative;
    display: block;
}

.slowed-images {
    position: relative;
    top: 0;
    width: 100%;
    height: auto;
    box-sizing: border-box;
    overflow: hidden;
    z-index: 0;
    margin: auto;
}

.slowed-image {
    position: relative;
    width: 100%;
    height: auto;
    box-sizing: border-box;
    padding: 0 0px;
    margin: 150px 0;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
}

.slowed-image:nth-of-type(2n + 2) {
    align-items: flex-end;
}

.slowed-image img {
    width: auto;
    max-width: 40% !important;
    height: auto !important;
    display: block;
    cursor: pointer;
    margin-bottom: 10px;
    -webkit-transform: scale(0.95) translateY(30%);
    transform: scale(0.95) translateY(30%);
}

.rounded-borders .slowed-image img {
    border-radius: 8px;
}

/*--------------------------------------------------
	Horizontal Panels
---------------------------------------------------*/

.panels {
    position: relative;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    max-width: 1000% !important;
    width: calc(100vw) !important;
}

.panels-container {
    position: relative;
    height: 100vh;
    display: -webkit-box;
    display: -ms-flexbox;
    justify-content: flex-start;
    align-items: center;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    padding: 0;
    overflow: hidden;
    box-sizing: border-box;
}

.panels-container > .panel {
    position: relative;
    width: auto;
    height: 100%;
    margin: 0 10px;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    box-sizing: border-box;
    flex-direction: column;
}

.panels-container > .panel:first-child {
    margin-left: 80px;
}

.panels-container > .panel:last-child {
    margin-right: 80px;
}

.panels-container .panel img {
    width: 100%;
    height: 100%;
    position: relative;
    display: block;
    object-position: center;
    object-fit: cover;
}

.rounded-borders .panels-container .panel img {
    border-radius: 8px;
}

.panels-container .panel:first-child img {
    margin-left: 0px;
}

.panels-container .panel:last-child img {
    margin-right: 0px;
}

/*--------------------------------------------------
	Team Panels
---------------------------------------------------*/

/*--------------------------------------------------
	Pinned Gallery
---------------------------------------------------*/

.pinned-image {
    box-sizing: border-box;
    padding-bottom: 300px;
    position: relative;
}

.pinned-image:first-child {
    padding-top: 0;
}

.pinned-image:last-child {
    z-index: 10;
    padding-bottom: 0px;
}

.rounded-borders .pinned-image img {
    border-radius: 8px;
}

/*--------------------------------------------------
	Reveal Gallery
---------------------------------------------------*/

.reveal-gallery {
    position: relative;
    width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

.reveal-img {
    width: auto;
    height: auto;
    position: absolute;
    display: block;
    top: 0;
    left: auto;
    right: auto;
    margin: auto;
    z-index: 0;
    opacity: 0.95;
}

.reveal-img-fixed {
    width: 50%;
    max-width: 600px;
    position: relative;
    margin: 0 auto;
    z-index: 10;
}

.reveal-img:first-child {
    left: 0;
    transform: rotate(-4deg);
}

.reveal-img:last-child {
    right: 0;
    transform: rotate(4deg);
}

.reveal-gallery img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    position: relative;
    display: block;
    object-position: center;
    object-fit: contain;
    margin: auto;
}

.rounded-borders .reveal-gallery img {
    border-radius: 8px;
}

/*--------------------------------------------------
	Clipped Immaged
---------------------------------------------------*/

.clipped-image-wrapper {
    position: relative;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    max-width: 1000% !important;
    width: 100vw !important;
    overflow: hidden;
}

.clipped-image-pin {
    position: relative;
    display: block;
}

.clipped-image {
    position: relative;
    z-index: 0;
    width: 100vw;
    height: 100vh;
    display: block;
    overflow: hidden;
    clip-path: circle(22%);
    margin: 0 auto;
}

.clipped-image img {
    width: 100%;
    height: 100% !important;
    position: relative;
    display: block;
    z-index: 0;
    object-position: center;
    object-fit: cover;
}

.clipped-image-gradient {
    position: absolute;
    height: 30%;
    width: 100%;
    bottom: 0;
    opacity: 0;
    background-color: #000;
    z-index: 10;
    -webkit-mask-image: linear-gradient(transparent, black 85%);
    mask-image: linear-gradient(transparent, black 85%);
}

.clipped-image-content {
    position: relative;
    width: 100%;
    height: auto;
    padding-bottom: 40px;
    margin: 0 auto;
    z-index: 10;
}

/*--------------------------------------------------
	Carousel Shortcode
---------------------------------------------------*/

/*--------------------------------------------------
	List Rotator
---------------------------------------------------*/

.list-rotator-wrapper {
    position: relative;
    display: block;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    max-width: 1000% !important;
    width: 100vw !important;
    overflow: hidden;
}

.list-rotator-title {
    position: absolute;
    margin: 0 auto;
    display: table;
    top: 45px;
    left: 0;
    right: 0;
    padding-top: 45px;
    z-index: 100;
    line-height: 20px;
    font-size: 14px;
    font-weight: 500;
    color: #fff;
    padding: 4px 16px;
    box-sizing: border-box;
    border-radius: 30px;
    opacity: 0;
}

.list-rotator-pin {
    position: relative;
    height: 100vh;
    width: 100%;
    mask-image: linear-gradient(
        #0000 0%,
        #0000 5%,
        #0000 5%,
        black 20%,
        black 85%,
        #0000 99%,
        #0000 99%,
        #0000 100%
    );
    -webkit-mask-image: linear-gradient(
        #0000 0%,
        #0000 5%,
        #0000 5%,
        black 20%,
        black 85%,
        #0000 99%,
        #0000 99%,
        #0000 100%
    );
}

.list-rotator {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    box-sizing: border-box;
    padding-top: 20vh;
    padding-bottom: 15vh;
    margin: 0;
}

.list-rotator li {
    color: #000;
    list-style: none;
    position: relative;
    width: 100%;
    text-align: center;
    font-size: calc(1rem + 8vw);
    line-height: calc(1rem + 7.5vw);
    margin: 0;
    opacity: 1;
}

.light-content .list-rotator li,
.dark-section .list-rotator li {
    color: #fff;
}

.light-content .light-section .list-rotator li {
    color: #000;
}

/*--------------------------------------------------
	Move Thumbs Gallery
---------------------------------------------------*/

.move-thumbs-wrapper {
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    max-width: 1000% !important;
    width: 100vw !important;
}

.start-thumbs-caption {
    position: relative;
    width: 100%;
    height: 50vh;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.start-thumbs-wrapper {
    position: relative;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    box-sizing: border-box;
    padding: 0 40px;
}

.start-move-thumb {
    box-sizing: border-box;
    position: relative;
    width: calc(25% - 80px);
    height: calc(25vw - 40px);
    margin: 0 40px;
    margin-bottom: 40px;
}

.start-move-thumb:nth-of-type(3n + 2) {
    width: calc(15% - 80px);
    height: calc(15vw - 40px);
    margin-top: 50vh;
}

.start-move-thumb:nth-of-type(3n + 3) {
    width: calc(35% - 80px);
    height: calc(35vw - 40px);
    margin-top: 25vh;
}

.start-move-thumb .overlapping-image-inner {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
}

.end-move-thumb .move-thumb-inner {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
}

.rounded-borders .start-move-thumb .move-thumb-inner,
.rounded-borders .end-move-thumb .move-thumb-inner {
    border-radius: 12px;
    overflow: hidden;
}

.end-thumbs-wrapper {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 100vh;
    padding-left: 40px;
    padding-right: 40px;
    box-sizing: border-box;
}

.end-move-thumb {
    box-sizing: border-box;
    position: relative;
    width: calc(33.33% - 80px);
    height: calc(33.33vw - 80px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 40px;
}

/*--------------------------------------------------
	Responsive
---------------------------------------------------*/

@media only screen and (max-width: 1466px) {
    .button-border span {
        padding: 0 26px;
    }

    .flex-list {
        padding: 35px 60px;
    }

    .panels-container > .panel:first-child {
        margin-left: 60px;
    }

    .panels-container > .panel:last-child {
        margin-right: 60px;
    }

    .zoom-wrapper-gallery {
        padding: 0 50px;
    }

    .start-thumbs-wrapper {
        padding: 0 30px;
    }

    .start-move-thumb {
        width: calc(25% - 60px);
        height: calc(25vw - 30px);
        margin: 0 30px;
        margin-bottom: 30px;
    }

    .start-move-thumb:nth-of-type(3n + 2) {
        width: calc(15% - 60px);
        height: calc(15vw - 30px);
        margin-top: 50vh;
    }

    .start-move-thumb:nth-of-type(3n + 3) {
        width: calc(35% - 60px);
        height: calc(35vw - 30px);
        margin-top: 25vh;
    }

    .end-thumbs-wrapper {
        padding-left: 30px;
        padding-right: 30px;
    }

    .end-move-thumb {
        width: calc(33.33% - 60px);
        height: calc(33.33vw - 60px);
        margin: 30px;
    }
}

@media only screen and (max-width: 1024px) {
    textarea {
        margin-bottom: 30px;
    }

    #map_canvas {
        height: 50vh;
    }

    .accordion dt span {
        max-width: none;
    }

    .accordion .accordion-content {
        padding-right: 0;
    }

    .has-animation.has-cover img {
        transform: scale(1);
    }

    .flex-list {
        padding: 30px 40px;
    }

    .panels-container > .panel:first-child {
        margin-left: 40px;
    }

    .panels-container > .panel:last-child {
        margin-right: 40px;
    }

    .zoom-wrapper-gallery {
        padding: 0 30px;
    }

    .list-rotator-pin {
        height: auto;
    }

    .list-rotator li {
        font-size: calc(1rem + 12vw);
        line-height: calc(1rem + 11.5vw);
    }

    .start-thumbs-wrapper {
        padding: 0 20px;
    }

    .start-move-thumb,
    .start-move-thumb:nth-of-type(3n + 2),
    .start-move-thumb:nth-of-type(3n + 3) {
        width: calc(33.33% - 40px);
        height: calc(33.33vw - 40px);
        margin: 25px 20px;
    }

    .end-thumbs-wrapper {
        display: none;
    }
}

@media only screen and (max-width: 767px) {
    input[type="text"],
    textarea {
        font-size: 14px;
    }

    .accordion dt {
        font-size: 18px;
    }

    .acc-button-icon i {
        height: 30px;
        line-height: 30px;
        width: 30px;
    }

    .flex-list {
        padding: 30px 30px;
        flex-direction: column;
    }

    .flex-list-left,
    .flex-list-center,
    .flex-list-right {
        width: 100%;
        text-align: left;
        line-height: 30px;
    }

    .slowed-image {
        margin: 100px 0;
    }

    .slowed-image img {
        max-width: 50% !important;
    }

    .moving-gallery li {
        width: 50vw;
    }

    .panels-container > .panel:first-child {
        margin-left: 30px;
    }

    .panels-container > .panel:last-child {
        margin-right: 30px;
    }

    .zoom-wrapper-gallery {
        padding: 0 20px;
    }

    .list-rotator li {
        font-size: calc(1rem + 13vw);
        line-height: calc(1rem + 12.5vw);
    }

    .start-thumbs-wrapper {
        padding: 0 15px;
    }

    .start-move-thumb,
    .start-move-thumb:nth-of-type(3n + 2),
    .start-move-thumb:nth-of-type(3n + 3) {
        width: calc(50% - 30px);
        height: calc(50vw - 30px);
        margin: 10px 15px;
    }
}

@media only screen and (max-width: 479px) {
    .pinned-section .pin-spacer {
        width: 100% !important;
    }

    .pinned-element {
        float: none;
        width: 100%;
        margin: 0;
    }

    .pinned-element.left {
        padding-right: 0px;
        margin-bottom: 40px;
    }

    .pinned-element.right {
        padding-left: 0px;
    }

    .scrolling-element {
        position: relative;
        float: none;
        width: 100%;
        margin: 0;
    }

    .scrolling-element.left {
        padding-right: 0px;
        margin-bottom: 40px;
    }

    .scrolling-element.right {
        padding-left: 0px;
    }

    .zxr-button {
        margin-bottom: 20px;
    }

    .flex-list {
        padding: 20px;
    }

    .moving-gallery li {
        width: 60vw;
    }

    .panels-container > .panel:first-child {
        margin-left: 20px;
    }

    .panels-container > .panel:last-child {
        margin-right: 20px;
    }

    .zoom-wrapper-gallery {
        padding: 0 10px;
    }

    .list-rotator li {
        font-size: calc(1rem + 14vw);
        line-height: calc(1rem + 13.5vw);
    }

    .start-thumbs-wrapper {
        padding: 0 10px;
    }

    .start-move-thumb,
    .start-move-thumb:nth-of-type(3n + 2),
    .start-move-thumb:nth-of-type(3n + 3) {
        width: calc(50% - 20px);
        height: calc(50vw - 20px);
        margin: 5px 10px;
    }
}

/* ---- assets.css ---- */
/*--------------------------------------------------
	Ajax Page Transition
---------------------------------------------------*/

main {
    overflow: hidden;
}
main .cd-main-content > div {
    height: 100%;
    min-height: 100vh;
}
main .cd-main-content {
    width: 100%;
}
main .cd-main-content.cd-index > div {
    vertical-align: middle;
}
main .cd-main-content.cd-index::after {
    background-color: rgba(64, 137, 166, 0);
    background-image: -webkit-linear-gradient(bottom, #4089a6, rgba(64, 137, 166, 0));
    background-image: linear-gradient(to top, #4089a6, rgba(64, 137, 166, 0));
}
main .cd-main-content.cd-index::before {
    background-color: rgba(64, 137, 166, 0);
    background-image: -webkit-linear-gradient(top, #4089a6, rgba(64, 137, 166, 0));
    background-image: linear-gradient(to bottom, #4089a6, rgba(64, 137, 166, 0));
}
.cd-cover-layer {
    background-color: transparent;
}
.cd-cover-layer {
    position: fixed;
    z-index: 5000;
    left: 50%;
    top: 50%;
    bottom: auto;
    right: auto;
    -webkit-transform: translateX(-50%) translateY(-50%);
    -moz-transform: translateX(-50%) translateY(-50%);
    -ms-transform: translateX(-50%) translateY(-50%);
    -o-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
    height: 101%;
    width: 101%;
    opacity: 0;
    visibility: hidden;
    -webkit-transition:
        opacity 0.4s 0.4s,
        visibility 0s 0.4s;
    -moz-transition:
        opacity 0.4s 0.4s,
        visibility 0s 0.4s;
    transition:
        opacity 0.6s 0s,
        visibility 0s 0.4s;
}
.page-is-changing .cd-cover-layer {
    opacity: 1;
    visibility: visible;
    -webkit-transition:
        opacity 0.3s 0s,
        visibility 0s 0s;
    -moz-transition:
        opacity 0.3s 0s,
        visibility 0s 0s;
    transition:
        opacity 0.3s 0.3s,
        visibility 0s 0s;
}

/*--------------------------------------------------
	Flex Nav
---------------------------------------------------*/

.flexnav,
.flexnav li ul {
    width: 100%;
    margin: 0;
}
.flexnav,
.flexnav li {
    margin: 0;
}
.flexnav li,
.flexnav li ul li {
    font-size: 100%;
}
.flexnav .touch-button:hover {
    cursor: pointer;
}
.flexnav {
    -webkit-transition: none;
    -moz-transition: none;
    -ms-transition: none;
    transition: none;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    overflow: hidden;
    max-height: 0;
}
.flexnav.opacity {
    opacity: 0;
}
.flexnav.flexnav-show {
    max-height: 2000px;
    opacity: 1;
    -webkit-transition: all 0.5s ease-in-out;
    -moz-transition: all 0.5s ease-in-out;
    -ms-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out;
}
.flexnav.one-page {
    position: fixed;
    top: 50px;
    right: 5%;
    max-width: 200px;
}
.flexnav li,
.flexnav li a,
.flexnav li ul li {
    position: relative;
    overflow: hidden;
}
.flexnav li a {
    background: #fff;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    color: #222;
    display: block;
    padding: 20px 0;
    z-index: 2;
}
.flexnav li ul.flexnav-show li {
    overflow: visible;
}
.flexnav li ul li a {
    background: #fff;
    display: block;
    padding: 20px;
}
.flexnav ul li ul li a {
    background: #bfbfbc;
}
.flexnav ul li ul li ul li a {
    background: #cbcbc9;
}
.flexnav .touch-button {
    background: rgba(0, 0, 0, 0);
    display: inline-block;
    height: 60px;
    position: absolute;
    right: 0;
    text-align: right;
    top: 0;
    width: 60px;
    z-index: 999;
}
.flexnav .touch-button .navicon {
    position: relative;
    top: 1.8em;
    font-size: 12px;
    color: #666;
}
@media all and (min-width: 1025px) {
    .flexnav li a,
    .flexnav li ul li a {
        border-bottom: none;
    }
    .flexnav,
    .flexnav li {
        overflow: visible;
    }
    body.one-page {
        padding-top: 70px;
    }
    .flexnav.opacity {
        opacity: 1;
    }
    .flexnav.one-page {
        top: 0;
        right: auto;
        max-width: 1080px;
    }
    .flexnav li {
        position: relative;
        list-style: none;
        float: left;
        display: block;
        background-color: #a6a6a2;
    }
    .flexnav li a {
        border-left: 1px solid #acaca1;
    }
    .flexnav li > ul {
        position: absolute;
        top: auto;
        left: 0;
    }
    .flexnav li ul li > ul,
    .flexnav li ul.open ul.open {
        margin-left: 100%;
        top: 0;
    }
    .flexnav li > ul li {
        width: 100%;
    }
    .flexnav li ul.open {
        display: block;
        opacity: 1;
        visibility: visible;
        z-index: 1;
    }
    .flexnav li ul.open li {
        overflow: visible;
        max-height: 100px;
    }
}

/*--------------------------------------------------
	Tool Tips
---------------------------------------------------*/

[data-tooltip] {
    position: relative;
}
[data-tooltip]::after,
[data-tooltip]::before {
    position: absolute;
    display: block;
    opacity: 0;
    pointer-events: none;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
    line-height: 12px;
}
[data-tooltip]::before {
    content: attr(data-tooltip);
    font-size: 12px;
    font-weight: 500;
    font-family: Poppins, sans-serif;
    color: #000;
    padding: 5px;
    border-radius: 5px;
    white-space: nowrap;
    text-decoration: none;
    text-align: left;
}
.light-content [data-tooltip]::before {
    color: #fff;
}
[data-tooltip]::after {
    width: 0;
    height: 0;
    border: 6px solid transparent;
    content: "";
}
[data-tooltip]:hover::after,
[data-tooltip]:hover::before {
    opacity: 1;
}
[data-tooltip][data-placement="left"]::before {
    top: 32%;
    right: 100%;
    margin-right: 35px;
}
[data-tooltip][data-placement="left"]:hover::before {
    margin-right: -2px;
    -webkit-transition: all 0.3s ease-out 0.5s;
    transition: all 0.3s ease-out 0.5s;
}
[data-tooltip][data-placement="top"]::before {
    top: 16%;
    right: 100%;
    margin-right: 0;
    width: 200px;
    height: 16px;
    transform: translateX(147px) translateY(-170px) rotate(-90deg);
}
[data-tooltip][data-placement="top"]:hover::before {
    transform: translateX(147px) translateY(-140px) rotate(-90deg);
    -webkit-transition: all 0.3s ease-out 0.5s;
    transition: all 0.3s ease-out 0.2s;
}
[data-tooltip][data-placement="right"]::before {
    top: 32%;
    left: 100%;
    margin-left: 35px;
}
[data-tooltip][data-placement="right"]:hover::before {
    margin-left: -2px;
    -webkit-transition: all 0.3s ease-out 0.5s;
    transition: all 0.3s ease-out 0.5s;
}
@media only screen and (max-width: 479px) {
    [data-tooltip]:hover::after,
    [data-tooltip]:hover::before {
        opacity: 0;
    }
}

/*--------------------------------------------------
	Social Share
---------------------------------------------------*/

.jssocials-shares {
    margin: 0.2em 0;
}
.jssocials-shares * {
    box-sizing: border-box;
}
.jssocials-share {
    display: inline-block;
    vertical-align: middle;
    margin: 0;
}
.jssocials-share:last-child {
    margin-right: 0;
}
.jssocials-share-logo {
    width: 1em;
    vertical-align: middle;
    font-size: 1em;
}
img.jssocials-share-logo {
    width: auto;
    height: 1em;
}
.jssocials-share-link {
    display: block;
    text-align: center;
    text-decoration: none;
    width: 60px;
    height: 60px;
    line-height: 60px;
}
.jssocials-share-link.jssocials-share-link-count {
    padding-top: 0.2em;
}
.jssocials-share-link.jssocials-share-link-count .jssocials-share-count {
    display: block;
    font-size: 0.6em;
    margin: 0 -0.5em -0.8em;
}
.jssocials-share-link.jssocials-share-no-count {
    padding-top: 0.5em;
}
.jssocials-share-link.jssocials-share-no-count .jssocials-share-count {
    height: 1em;
}
.jssocials-share-label {
    padding-left: 0.3em;
    vertical-align: middle;
}
.jssocials-share-count-box {
    display: inline-block;
    height: 1.5em;
    padding: 0 0.3em;
    line-height: 1;
    vertical-align: middle;
    cursor: default;
}
.jssocials-share-count-box.jssocials-share-no-count {
    display: none;
}
.jssocials-share-count {
    line-height: 1.5em;
    vertical-align: middle;
}

/*--------------------------------------------------
	Justified Gallery
---------------------------------------------------*/

.justified-gallery {
    width: 100%;
    position: relative;
    overflow: hidden;
}
.justified-gallery > a,
.justified-gallery > div,
.justified-gallery > figure {
    position: absolute;
    display: inline-block;
    overflow: hidden;
    filter: "alpha(opacity=10)";
    opacity: 0.1;
    margin: 0;
    padding: 0;
}
.justified-gallery > a > a > img,
.justified-gallery > a > img,
.justified-gallery > div > a > img,
.justified-gallery > div > img,
.justified-gallery > figure > a > img,
.justified-gallery > figure > img {
    position: relative;
    top: 50%;
    left: 50%;
    margin: 0;
    margin-top: 0 !important;
    padding: 0;
    border: none;
    filter: "alpha(opacity=0)";
    opacity: 0;
}
.justified-gallery > a > .caption,
.justified-gallery > div > .caption,
.justified-gallery > figure > .caption {
    display: none;
    position: absolute;
    bottom: 0;
    padding: 5px;
    background-color: #000;
    left: 0;
    right: 0;
    margin: 0;
    color: #fff;
    font-size: 12px;
    font-weight: 300;
    font-family: sans-serif;
}
.justified-gallery > .entry-visible {
    filter: "alpha(opacity=100)";
    opacity: 1;
    background: 0 0;
}
.justified-gallery > .entry-visible > a > img,
.justified-gallery > .entry-visible > img {
    filter: "alpha(opacity=100)";
    opacity: 1;
    -webkit-transition: opacity 0.5s ease-in;
    -moz-transition: opacity 0.5s ease-in;
    -o-transition: opacity 0.5s ease-in;
    transition: opacity 0.5s ease-in;
}
.justified-gallery > .jg-filtered {
    display: none;
}
.justified-gallery > .spinner {
    position: absolute;
    bottom: 0;
    margin-left: -24px;
    padding: 10px 0;
    left: 50%;
    filter: "alpha(opacity=100)";
    opacity: 1;
    overflow: initial;
}
.justified-gallery > .spinner > span {
    display: inline-block;
    filter: "alpha(opacity=0)";
    opacity: 0;
    width: 8px;
    height: 8px;
    margin: 0 4px;
    background-color: #fff;
    border-radius: 6px;
}

/*--------------------------------------------------
	ZXR Popup
---------------------------------------------------*/

.zxr-img-popup,
.zxr-video-popup {
    position: fixed;
    height: 100%;
    width: 100%;
    z-index: 10000;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.zxr-img-popup-viewport {
    position: absolute;
    display: flex;
    box-sizing: border-box;
    padding: 80px 40px;
    margin: 0 auto;
    text-align: left;
    z-index: 100;
    height: auto;
    width: auto;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.zxr-video-popup-viewport {
    position: absolute;
    display: flex;
    box-sizing: border-box;
    padding: 0;
    margin: 0 auto;
    text-align: left;
    z-index: 100;
    height: auto;
    width: calc(100% - 80px);
    max-width: 900px;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.zxr-video-popup-viewport::before {
    float: left;
    padding-top: 56.25%;
    content: "";
}

.zxr-img-popup-preloader,
.zxr-video-popup-preloader {
    display: block;
    position: absolute;
    margin: 0 auto;
    width: 80px;
    height: 80px;
}

.zxr-img-popup-preloader div,
.zxr-video-popup-preloader div {
    position: absolute;
    top: 33px;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: #fff;
    animation-timing-function: cubic-bezier(0, 1, 1, 0);
}

.zxr-img-popup-preloader div:nth-child(1),
.zxr-video-popup-preloader div:nth-child(1) {
    left: 8px;
    animation: zxr-img-popup-preloader1 0.6s infinite;
}

.zxr-img-popup-preloader div:nth-child(2),
.zxr-video-popup-preloader div:nth-child(2) {
    left: 8px;
    animation: zxr-img-popup-preloader2 0.6s infinite;
}

.zxr-img-popup-preloader div:nth-child(3),
.zxr-video-popup-preloader div:nth-child(3) {
    left: 32px;
    animation: zxr-img-popup-preloader2 0.6s infinite;
}

.zxr-img-popup-preloader div:nth-child(4),
.zxr-video-popup-preloader div:nth-child(4) {
    left: 56px;
    animation: zxr-img-popup-preloader3 0.6s infinite;
}

@keyframes zxr-img-popup-preloader1 {
    0% {
        transform: scale(0);
    }
    100% {
        transform: scale(1);
    }
}

@keyframes zxr-img-popup-preloader3 {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(0);
    }
}

@keyframes zxr-img-popup-preloader2 {
    0% {
        transform: translate(0, 0);
    }
    100% {
        transform: translate(24px, 0);
    }
}

.zxr-img-popup img {
    position: relative;
    max-width: 100%;
    max-height: calc(100vh - 160px);
    width: auto;
    height: auto;
    margin: 0 auto;
    z-index: 10;
    pointer-events: initial;
}

.zxr-video-popup iframe {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    pointer-events: initial;
}

.rounded-borders .zxr-img-popup img {
    border-radius: 8px;
}

.zxr-img-popup-bg-close,
.zxr-video-popup-bg-close {
    position: absolute;
    display: block;
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
}

.zxr-img-popup-close {
    position: absolute;
    width: 40px;
    height: 40px;
    right: 20px;
    top: 60px;
    background-color: rgba(0, 0, 0, 1);
    color: #fff;
    opacity: 0;
    border-radius: 20px;
    z-index: 100;
    cursor: pointer;
    pointer-events: initial;
    -webkit-transition: background-color 0.2s ease-in-out;
    transition: background-color 0.2s ease-in-out;
}

.zxr-video-popup-close {
    position: absolute;
    width: 40px;
    height: 40px;
    right: -20px;
    top: -20px;
    background-color: rgba(0, 0, 0, 1);
    color: #fff;
    opacity: 0;
    border-radius: 20px;
    z-index: 100;
    cursor: pointer;
    pointer-events: initial;
    -webkit-transition: background-color 0.2s ease-in-out;
    transition: background-color 0.2s ease-in-out;
}

.zxr-img-popup-close:hover,
.zxr-video-popup-close:hover {
    background-color: rgba(0, 0, 0, 1);
}

.zxr-img-popup-close::after,
.zxr-video-popup-close::after {
    font: var(--fa-font-solid);
    content: "\f00d";
    font-size: 16px;
    line-height: 40px;
    text-align: center;
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
}

.zxr-img-popup-prev {
    position: absolute;
    width: 26px;
    height: 50px;
    left: 60px;
    background-color: rgba(0, 0, 0, 1);
    color: #fff;
    opacity: 0;
    border-radius: 4px;
    z-index: 100;
    cursor: pointer;
    -webkit-transition: background-color 0.2s ease-in-out;
    transition: background-color 0.2s ease-in-out;
}

.zxr-img-popup-prev:hover {
    background-color: rgba(0, 0, 0, 1);
}

.zxr-img-popup-prev::after {
    font: var(--fa-font-solid);
    content: "\f104";
    font-size: 16px;
    line-height: 50px;
    text-align: center;
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
}

.zxr-img-popup-next {
    position: absolute;
    width: 26px;
    height: 50px;
    right: 60px;
    background-color: rgba(0, 0, 0, 1);
    color: #fff;
    opacity: 0;
    border-radius: 4px;
    z-index: 100;
    cursor: pointer;
    -webkit-transition: background-color 0.2s ease-in-out;
    transition: background-color 0.2s ease-in-out;
}

.zxr-img-popup-next:hover {
    background-color: rgba(0, 0, 0, 1);
}

.zxr-img-popup-next::after {
    font: var(--fa-font-solid);
    content: "\f105";
    font-size: 16px;
    line-height: 50px;
    text-align: center;
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
}

@media only screen and (max-width: 479px) {
    .zxr-img-popup-viewport {
        padding: 60px 23px;
    }

    .zxr-video-popup-viewport {
        width: calc(100% - 60px);
    }

    .zxr-img-popup img {
        max-height: calc(100vh - 120px);
    }

    .zxr-img-popup-close {
        right: 3px;
        top: 40px;
    }

    .zxr-img-popup-prev {
        left: 10px;
    }

    .zxr-img-popup-next {
        right: 10px;
    }
}

/* ---- style.css ---- */
/*------------------------------------------------------------------

01. General Styles
02. Magic Cursor
03. Page Preloader
04. Header Elements
05. Main Content 
06. Footer Elements
07. Responsive Media Querries

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

/*--------------------------------------------------
	01. General Settings
---------------------------------------------------*/

html,
body {
    font-family: "Poppins", sans-serif;
    font-weight: 400;
    font-size: 16px;
    height: 100%;
    width: 100%;
    color: #444;
    background-color: #fff;
    user-select: none; /* supported by Chrome and Opera */
    -webkit-user-select: none; /* Safari */
    -khtml-user-select: none; /* Konqueror HTML */
    -moz-user-select: none; /* Firefox */
    -ms-user-select: none; /* Internet Explorer/Edge */
}

html {
    box-sizing: border-box;
    margin-right: 0px !important;
    overflow: visible !important;
}

body {
    overflow: hidden;
    overflow-y: scroll;
    -webkit-transition: opacity 0.2s ease-in-out 0.2s;
    transition: opacity 0.2s ease-in-out 0.2s;
}

body.smooth-scroll {
    overflow: hidden;
}

body.hidden {
    opacity: 0;
}

main111 {
    -webkit-transition: background 0.5s ease-in-out 0s;
    transition: background 0.5s ease-in-out 0s;
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
font,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
    border: 0;
    margin: 0;
    outline: 0;
    padding: 0;
    vertical-align: baseline;
}

article,
aside,
details,
figcaption,
footer,
header,
hgroup,
nav,
section {
    display: block;
}

audio {
    display: inline-block;
    max-width: 100%;
}

address {
    font-style: italic;
    margin-bottom: 24px;
}

abbr[title] {
    border-bottom: 1px dotted #2b2b2b;
    cursor: help;
}

b,
strong {
    font-weight: 600;
    color: #000;
}

.light-content b,
.light-content strong,
.dark-section b,
.dark-section strong {
    font-weight: 600;
    color: #fff;
}

.light-content .light-section b,
.light-content .light-section strong {
    font-weight: 600;
    color: #000;
}

cite,
dfn,
em,
i {
    font-style: italic;
}

mark,
ins {
    background: none repeat scroll 0 0 #000;
    text-decoration: none;
    color: #fff;
    padding: 2px 8px;
    display: inline-block;
    border-radius: 2px;
}

.light-content mark,
.light-content ins,
.dark-section mark,
.dark-section ins {
    background: none repeat scroll 0 0 #fff;
    color: #000;
}

.light-content .light-section mark,
.light-content .light-section ins {
    background: none repeat scroll 0 0 #111;
    color: #fff;
}

code,
kbd,
tt,
var,
samp,
pre {
    font-family: monospace, serif;
    font-size: 15px;
    -webkit-hyphens: none;
    -moz-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
    line-height: 1.6;
}

pre {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin-bottom: 24px;
    max-width: 100%;
    overflow: auto;
    padding: 12px;
    white-space: pre;
    white-space: pre-wrap;
    word-wrap: break-word;
    background-color: rgba(0, 0, 0, 0.05);
}

.light-content pre,
.dark-section pre {
    background-color: rgba(255, 255, 255, 0.05);
    color: #fff;
}

.light-content .light-section pre {
    background-color: rgba(0, 0, 0, 0.05);
    color: #000;
}

blockquote,
q {
    -webkit-hyphens: none;
    -moz-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: "";
    content: none;
}

blockquote {
    color: #000;
    line-height: 1.6;
    font-size: 1.5rem;
    margin-bottom: 2.1875rem;
    font-weight: 500;
    padding-left: 3.5rem;
    margin: 0 0 1.5625rem;
    position: relative;
}

.light-content blockquote,
.dark-section blockquote {
    color: #fff;
}

.light-content .light-section blockquote {
    color: #000;
}

blockquote::before {
    content: "\275D";
    position: absolute;
    left: 0;
    top: 5px;
    line-height: 1;
    font-size: 3rem;
    font-weight: 500;
}

blockquote cite,
blockquote small {
    color: #2b2b2b;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
}

.light-content blockquote cite,
.light-content blockquote small {
    color: #fff;
}

blockquote em,
blockquote i,
blockquote cite {
    font-style: normal;
}

blockquote strong,
blockquote b {
    font-weight: 600;
}

small {
    font-size: smaller;
}

big {
    font-size: 125%;
}

sup,
sub {
    font-size: 75%;
    height: 0;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sup {
    bottom: 1ex;
}

sub {
    top: 0.5ex;
}

dl {
    margin-bottom: 24px;
}

dt {
    font-weight: bold;
}

dd {
    margin-bottom: 24px;
}

ul,
ol {
    list-style: none;
    margin: 0 0 24px 20px;
}

ul,
ol {
    list-style: none;
    margin: 20px 0 25px 20px;
}

ul {
    list-style: disc;
}

ol {
    list-style: decimal;
}

li > ul,
li > ol {
    margin: 20px 0px 15px 25px;
}

li {
    line-height: 20px;
    color: #444;
    margin-bottom: 25px;
}

.light-content li,
.dark-section li {
    color: #ccc;
}

.light-content .light-section li {
    color: #444;
}

figure {
    margin: 0;
    position: relative;
    display: block;
}

figure.has-parallax {
    overflow: hidden;
}

.full figure.has-parallax {
    overflow: hidden;
    height: 100vh;
}

figure img {
    max-width: 100%;
}

.has-parallax > img {
    width: 100%;
    height: 100%;
    position: absolute;
    display: block;
    object-position: center;
    object-fit: cover;
}

figcaption {
    background-color: rgba(0, 0, 0, 0.3);
    bottom: 0px;
    color: #fff;
    font-weight: 400;
    font-size: 10px;
    padding: 5px 10px;
    position: absolute;
    right: 0px;
    z-index: 10;
    border-radius: 0;
}

fieldset {
    border: 1px solid rgba(0, 0, 0, 0.1);
    margin: 0 0 24px;
    padding: 0;
}

legend {
    white-space: normal;
}

button,
input {
    line-height: normal;
}

input,
textarea {
    background-image: -webkit-linear-gradient(
        hsla(0, 0%, 100%, 0),
        hsla(0, 0%, 100%, 0)
    ); /* Removing the inner shadow, rounded corners on iOS inputs */
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
    cursor: pointer;
}

button[disabled],
input[disabled] {
    cursor: default;
}

input[type="checkbox"],
input[type="radio"] {
    padding: 0;
}

input[type="search"] {
    -webkit-appearance: textfield;
    appearance: textfield;
}

input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
    border: 0;
    padding: 0;
}

textarea {
    overflow: auto;
    vertical-align: top;
}

table {
    border-collapse: separate;
    border-spacing: 0;
    border-width: 1px 0 0 1px;
    margin-bottom: 24px;
    width: 100%;
    color: #444;
}

thead,
.light-content .light-section thead {
    background-color: rgba(0, 0, 0, 1);
    color: #fff;
}

.light-content thead,
.dark-section thead {
    background-color: rgba(255, 255, 255, 1);
}

thead tr,
.light-content .light-section thead tr {
    color: #fff;
}

.light-content thead tr,
.dark-section thead tr {
    color: #000;
}

tr,
.light-content .light-section tr {
    color: #444;
}

.light-content tr,
.dark-section tr {
    color: #ccc;
}

tr:nth-child(2n),
.light-content .light-section tr:nth-child(2n) {
    background-color: rgba(0, 0, 0, 0.05);
}

.light-content tr:nth-child(2n),
.dark-section tr:nth-child(2n) {
    background-color: rgba(255, 255, 255, 0.1);
}

caption,
th,
td {
    font-weight: normal;
    text-align: left;
}

th {
    border-width: 0 1px 1px 0;
    padding: 10px;
}

td {
    border-width: 0 1px 1px 0;
    padding: 10px;
}

del {
    color: #767676;
}

hr {
    border: 0;
    height: 28px;
    width: 100%;
    float: none;
    margin: 0;
    display: inline-block;
    opacity: 1 !important;
    transform: translateY(0px) !important;
}

hr:after {
    clear: both;
    content: " ";
    display: block;
    height: 0;
    visibility: hidden;
}

::selection {
    background: #000;
    color: #fff;
    text-shadow: none;
}

::-moz-selection {
    background: #000;
    color: #fff;
    text-shadow: none;
}

img {
    border: 0 none;
    max-width: 100%;
    vertical-align: middle;
    height: auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: inherit;
    font-weight: 500;
    color: #000;
    margin-bottom: 20px;
}

.primary-font-title {
    font-family: "Six Caps", sans-serif;
    text-transform: lowercase;
    font-weight: 500;
}

.big-title {
    font-size: calc(1rem + 8vw);
    line-height: calc(1rem + 7.5vw);
}

.fixed-title {
    font-size: calc(1rem + 8vw);
    line-height: calc(1rem + 7.5vw);
    margin-bottom: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
}

.fixed-title.primary-font-title {
    font-size: calc(1rem + 24.15vw);
    line-height: calc(1rem + 22vw);
}

.fixed-title div {
    display: inline-block;
    white-space: nowrap;
}

.fixed-title span {
    display: block;
    opacity: 0.1;
    margin-top: 0;
    min-width: 3rem;
    box-sizing: border-box;
    display: inline-block;
    transform-origin: bottom center;
}

h1 {
    font-size: calc(1rem + 4.15vw);
    line-height: calc(1rem + 4.5vw);
}

h2 {
    font-size: calc(1rem + 3vw);
    line-height: calc(1rem + 3.5vw);
}

h3 {
    font-size: calc(1rem + 2vw);
    line-height: calc(1rem + 2.5vw);
}

h4 {
    font-size: calc(1rem + 1vw);
    line-height: calc(1rem + 1.6vw);
}

h5 {
    font-size: calc(1rem + 0.6vw);
    line-height: calc(1rem + 1.5vw);
}

h6 {
    font-size: 18px;
    line-height: 36px;
}

.no-margins {
    margin: 0;
}

.light-content h1,
.light-content h2,
.light-content h3,
.light-content h4,
.light-content h5,
.light-content h6,
.dark-section h1,
.dark-section h2,
.dark-section h3,
.dark-section h4,
.dark-section h5,
.dark-section h6 {
    color: #fff;
}

.light-content .light-section h1,
.light-content .light-section h2,
.light-content .light-section h3,
.light-content .light-section h4,
.light-content .light-section h5,
.light-content .light-section h6 {
    color: #000;
}

p {
    font-size: 18px;
    line-height: 28px;
    font-weight: 500;
    margin-bottom: 20px;
    color: #666;
}

.light-content p,
.dark-section p {
    color: #999;
}

.light-content .light-section p {
    color: #666;
}

.bigger {
    font-size: 26px;
    line-height: 42px;
}

.container {
    max-width: 1280px;
    width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
}

.container::after {
    clear: both;
    content: " ";
    display: table;
}

a:hover,
a:active {
    outline: 0;
    color: #000;
}

a,
.light-content .light-section a {
    text-decoration: none;
    color: #000;
    outline: 0;
}

.light-content a,
.dark-section a,
.white-header a {
    color: #fff;
}

.light-content .white-header a {
    color: #000;
}

a:hover {
    text-decoration: none;
}

.one_third {
    width: 30.6% !important;
}

.two_third {
    width: 65.33% !important;
}

.one_third,
.two_third {
    float: left !important;
    margin-bottom: 1px !important;
    margin-right: 4% !important;
    position: relative !important;
}

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

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

.outer {
    display: table;
    width: 100%;
    height: 100%;
}

.inner {
    display: table-cell;
    vertical-align: middle;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

.light-section-wrapper,
.dark-section-wrapper {
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    max-width: 1000% !important;
    width: 100vw !important;
}

.light-section-container,
.dark-section-container {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    margin: 0 auto;
}

.content-row {
    position: relative;
    width: 100%;
    margin: 0 auto;
    z-index: 1;
    opacity: 1;
    box-sizing: border-box;
}

.clip-effects {
    overflow: hidden;
    clip-path: inset(4% 10% round 40px);
}

.content-row::after {
    clear: both;
    content: " ";
    display: table;
}

.small {
    max-width: 820px;
    width: 100%;
    margin: 0 auto;
}

.large {
    max-width: 1380px;
    width: 100%;
    margin: 0 auto;
}

.full {
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    max-width: 1000% !important;
    width: 100vw !important;
}

.row_padding_top {
    padding-top: 9vw;
}

.row_padding_bottom {
    padding-bottom: 9vw;
}

.row_padding_left {
    padding-left: 80px;
}

.row_padding_right {
    padding-right: 80px;
}

#rotate-device {
    width: 100%;
    height: 100%;
    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;
    background-color: #0f1010;
    background-image: url(../images/rotate.png);
    background-size: 100px 100px;
    background-position: center;
    background-repeat: no-repeat;
    display: none;
}

/*--------------------------------------------------
	02. Magic Cursor
---------------------------------------------------*/

#magic-cursor {
    position: absolute;
    left: 0;
    top: 0;
    width: 30px;
    height: 30px;
    pointer-events: none;
    z-index: 10000;
    -webkit-transition: opacity 0.2s ease-in-out 0.5s;
    transition: opacity 0.2s ease-in-out 0.5s;
}

.hidden-ball #magic-cursor {
    opacity: 0 !important;
    visibility: hidden;
}

#ball {
    position: fixed;
    width: 80px;
    height: 80px;
    border: 2px solid #999999;
    border-radius: 50%;
    pointer-events: none;
    opacity: 1;
    box-sizing: border-box;
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
}

.light-content #ball,
.light-content #ball.with-icon {
    border: 2px solid #999999;
    border-color: #999999;
}

#ball.with-blur {
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

#ball:before {
    font: var(--fa-font-solid);
    content: "\f106";
    font-size: 14px;
    width: 8px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    position: absolute;
    left: 32px;
    top: -42px;
    color: #999;
    opacity: 0;
    transform: translateY(-20px);
    -webkit-transform: translateY(-20px);
    transition: all 0.15s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.light-content #ball:before {
    color: #999;
}

#ball::after {
    font: var(--fa-font-solid);
    content: "\f107";
    font-size: 14px;
    width: 8px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    position: absolute;
    left: 32px;
    top: 100px;
    color: #999;
    opacity: 0;
    transform: translateY(20px);
    -webkit-transform: translateY(20px);
    transition: all 0.15s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.light-content #ball:before,
.light-content #ball:after {
    color: #999;
}

.scale-up #ball:before {
    opacity: 1;
    transform: translateY(0px);
    -webkit-transform: translateY(0px);
    transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.scale-up #ball:after {
    opacity: 1;
    transform: translateY(0px);
    -webkit-transform: translateY(0px);
    transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.scale-up.scale-none #ball:before,
.scale-up.scale-none #ball:after {
    opacity: 0;
}

#ball-drag-x {
    position: absolute;
    width: 72px;
    height: 72px;
    pointer-events: none;
    opacity: 1;
    box-sizing: border-box;
}

#ball-drag-x::before {
    font: var(--fa-font-solid);
    content: "\f053";
    font-size: 14px;
    width: 8px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    position: absolute;
    left: -37px;
    top: 30px;
    color: #000;
    opacity: 0;
    transform: translateX(-20px);
    -webkit-transform: translateX(-20px);
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.light-content #ball-drag-x:before {
    color: #fff;
}

#ball-drag-x::after {
    font: var(--fa-font-solid);
    content: "\f054";
    font-size: 14px;
    width: 8px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    position: absolute;
    right: -40px;
    left: auto;
    top: 30px;
    color: #000;
    opacity: 0;
    transform: translateX(20px);
    -webkit-transform: translateX(20px);
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.light-content #ball-drag-x:before,
.light-content #ball-drag-x:after {
    color: #fff;
}

#ball-drag-y {
    position: absolute;
    width: 72px;
    height: 72px;
    pointer-events: none;
    opacity: 1;
    box-sizing: border-box;
}

#ball-drag-y:before {
    font: var(--fa-font-solid);
    content: "\f077";
    font-size: 14px;
    width: 8px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    position: absolute;
    left: 32px;
    top: -40px;
    color: #000;
    opacity: 0;
    transform: translateY(-20px);
    -webkit-transform: translateY(-20px);
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.light-content #ball-drag-y:before {
    color: #fff;
}

#ball-drag-y::after {
    font: var(--fa-font-solid);
    content: "\f078";
    font-size: 14px;
    width: 8px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    position: absolute;
    left: 32px;
    top: 100px;
    color: #000;
    opacity: 0;
    transform: translateY(20px);
    -webkit-transform: translateY(20px);
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.light-content #ball-drag-y:before,
.light-content #ball-drag-y:after {
    color: #fff;
}

#ball i {
    color: #fff;
    width: 76px;
    height: 80px;
    line-height: 78px;
    text-align: center;
    font-size: 14px;
    display: block;
    opacity: 1;
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

#ball {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

#ball p {
    color: #fff;
    width: auto;
    height: 16px;
    line-height: 16px;
    padding-top: 0px;
    padding-left: 0px;
    box-sizing: border-box;
    margin: 0 auto;
    margin-bottom: 0;
    text-align: center;
    font-size: 10px;
    font-weight: 600;
    display: flex;
    flex-direction: column;
    align-self: center;
    opacity: 1;
    position: relative;
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.light-content #ball p {
    color: #fff;
}

#ball p.center-first::before {
    content: "[";
    font-size: 12px;
    font-weight: 500;
    position: absolute;
    height: 20px;
    top: calc(50% - 10px);
    left: -8px;
    line-height: 20px;
}

#ball p.center-first::after {
    content: "]";
    font-size: 12px;
    font-weight: 500;
    position: absolute;
    height: 20px;
    top: calc(50% - 10px);
    right: -8px;
    line-height: 20px;
}

.light-content #ball i,
.light-content #ball.with-icon i {
    color: #fff;
}

.scale-up #ball i {
    opacity: 0;
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

#ball.with-icon i {
    width: 76px;
}

#ball.with-icon i:nth-child(2) {
    display: none;
}

#ball-loader {
    width: 100px;
    height: 100px;
    position: absolute;
    background-color: transparent;
    border-right: 4px solid transparent;
    border-bottom: 4px solid #999999;
    border-left: 4px solid transparent;
    border-top: 4px solid transparent;
    border-radius: 100px;
    box-sizing: border-box;
    opacity: 0;
    -webkit-transform: translate(-14px, -14px) rotate(0deg);
    transform: translate(-14px, -14px) rotate(0deg);
    -webkit-animation: rotating 0.8s ease-in-out infinite;
    animation: rotating 0.8s ease-in-out infinite;
    -webkit-transition: opacity 0s ease-in-out 0s;
    transition: opacity 0s ease-in-out 0s;
}

.light-content #ball-loader {
    border-bottom: 4px solid #999999;
}

.show-loader #ball-loader {
    opacity: 1;
    -webkit-transition: opacity 0.2s ease-in-out 0s;
    transition: opacity 0.2s ease-in-out 0s;
}

@keyframes rotating {
    0% {
        -webkit-transform: translate(-14px, -14px) rotate(0deg);
        transform: translate(-14px, -14px) rotate(0deg);
    }

    95% {
        -webkit-transform: translate(-14px, -14px) rotate(350deg);
        transform: translate(-14px, -14px) rotate(350deg);
    }

    100% {
        -webkit-transform: translate(-14px, -14px) rotate(360deg);
        transform: translate(-14px, -14px) rotate(360deg);
    }
}

.show-loader a,
.show-loader nav,
.scale-up a,
.scale-up .hide-ball,
.scale-up .link,
.scale-up .button-wrap,
.scale-up #burger-wrapper {
    pointer-events: none !important;
}

.disable-cursor #magic-cursor {
    display: none;
}

/*--------------------------------------------------
	03. Page Preloader
---------------------------------------------------*/

.disable-ajaxload .preloader-wrap {
    display: none;
}

.preloader-wrap {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    bottom: 0;
    background: #000;
    z-index: 1800;
    text-align: center;
}

.preloader-wrap .outer {
    padding: 0px;
    box-sizing: border-box;
}

.preloader-wrap .inner {
    vertical-align: middle;
    box-sizing: border-box;
}

.percentage-wrapper {
    position: relative;
    display: block;
    text-align: center;
    float: left;
    width: auto;
    overflow: hidden;
    z-index: 10;
    mix-blend-mode: difference;
}

.percentage {
    opacity: 1;
    font-size: 16px;
    line-height: 60px;
    width: 50px;
    font-weight: 500;
    color: #fff;
    display: table;
    margin: 0 auto;
    margin-top: 1px;
    opacity: 0;
    text-align: center;
}

.percentage::after {
    content: "%";
}

.percentage-intro {
    height: 20px;
    font-size: 16px;
    font-weight: 500;
    line-height: 20px;
    color: rgba(255, 255, 255, 0.6);
    position: absolute;
    bottom: 60px;
    left: 0;
    right: 0;
    margin: 0 auto;
}

.trackbar {
    width: 100%;
    height: 100%;
    clip-path: inset(45% 40% 45% 40%);
    margin: 0 auto;
    display: flex;
    position: absolute;
    top: 0;
    left: 0;
    padding: 0 80px;
    box-sizing: border-box;
    opacity: 1;
    background: rgba(255, 255, 255, 0.05);
}

.loadbar {
    width: 0;
    height: 100%;
    background: #fff;
    position: absolute;
    top: 0px;
    left: 0;
    right: auto;
    overflow: hidden;
    z-index: 0;
}

.preloader-intro {
    position: relative;
    display: block;
    color: #fff;
    overflow: hidden;
    padding-left: 0vw;
    float: right;
    z-index: 10;
    mix-blend-mode: difference;
    opacity: 0;
}

.preloader-intro span {
    position: relative;
    display: block;
    font-weight: 500;
    position: relative;
    font-size: 16px;
    line-height: 60px;
}

/*--------------------------------------------------
	04. Header Elements
---------------------------------------------------*/

header {
    width: 100%;
    height: 120px;
    left: 0;
    top: 0;
    background-color: transparent;
    position: fixed;
    box-sizing: border-box;
    z-index: 1000;
    pointer-events: none;
    -webkit-transition: background 0.4s ease-in-out 0.3s;
    transition: background 0s ease-in-out 0s;
}

#header-container {
    box-sizing: border-box;
    height: inherit;
    padding: 20px 80px;
    margin: 0 auto;
    position: relative;
    width: 100%;
    z-index: 20;
    opacity: 0;
}

.header-visible #header-container {
    opacity: 1;
}

#logo {
    position: relative;
    display: table;
    pointer-events: initial;
    z-index: 10;
    top: 15px;
    float: left;
}

#logo a {
    display: block;
    -webkit-transition: transform 0.5s ease-in-out 0.1s;
    transition: transform 0.5s ease-in-out 0.1s;
}

.open #logo a {
    pointer-events: none;
}

#logo img {
    display: block;
    height: 56px;
    width: auto;
    max-width: none;
    -webkit-transition: opacity 0.15s ease-in-out 0s;
    transition: opacity 0.15s ease-in-out 0s;
}

#logo img.black-logo {
    opacity: 1;
}

.light-content #logo img.black-logo {
    opacity: 0;
}

#logo img.white-logo {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
}

.light-content #logo img.white-logo {
    opacity: 1;
}

.white-header #logo img.black-logo {
    opacity: 0;
}

.light-content .white-header #logo img.black-logo {
    opacity: 1;
}

.light-content .white-header.over-white-section #logo img.black-logo {
    opacity: 0;
}

.white-header #logo img.white-logo {
    opacity: 1;
}

.light-content .white-header #logo img.white-logo {
    opacity: 0;
}

.light-content .white-header.over-white-section #logo img.white-logo {
    opacity: 1;
}

nav {
    pointer-events: none;
}

nav.open {
    pointer-events: initial;
}

.dark-content-header #logo img.black-logo {
    opacity: 1 !important;
}

.dark-content-header #logo img.white-logo {
    opacity: 0 !important;
}

.light-content-header #logo img.black-logo {
    opacity: 0 !important;
}

.light-content-header #logo img.white-logo {
    opacity: 1 !important;
}

@media all and (min-width: 1025px) {
    .flexnav .touch-button .navicon {
        display: none;
    }

    .flexnav:hover li a {
        color: rgba(0, 0, 0, 0.4);
    }

    /*-- Full Screen Menu --*/

    .fullscreen-menu .nav-height {
        overflow-y: scroll;
        position: relative;
        height: 100%;
        padding: 40px 0;
        padding-right: 30px;
        width: calc(100% + 30px);
        box-sizing: border-box;
    }

    .fullscreen-menu nav {
        height: 100vh;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        box-sizing: border-box;
        visibility: visible;
        pointer-events: none;
        opacity: 0;
        padding: 20px 0;
    }

    .fullscreen-menu nav.open {
        visibility: visible;
        pointer-events: initial;
    }

    .fullscreen-menu .flexnav {
        max-height: 2000px;
        -webkit-transition: all 0.2s ease-in 0.6s;
        transition: all 0.2s ease-in 0.6s;
        display: table;
        width: auto;
        padding: 0 20px;
        box-sizing: border-box;
        margin: 0 auto;
        float: none;
    }

    .fullscreen-menu .flexnav.flexnav-show {
        -webkit-transition: all 0.3s ease-out 0.2s;
        transition: all 0.3s ease-out 0.2s;
    }

    .fullscreen-menu .flexnav li {
        text-align: center;
        padding: 0;
        box-sizing: border-box;
        float: none;
    }

    .fullscreen-menu .menu-timeline {
        opacity: 0;
    }

    .fullscreen-menu .flexnav li ul li .touch-button {
        height: 32px;
    }

    .fullscreen-menu .flexnav:hover li ul li a.active,
    .fullscreen-menu .flexnav:hover li ul li:hover > a {
        opacity: 1;
    }

    .fullscreen-menu .flexnav .touch-button .navicon {
        display: none;
    }

    .fullscreen-menu .flexnav li.link {
        border-bottom: none;
    }

    .fullscreen-menu .flexnav > li > a {
        font-family: "Six Caps", sans-serif;
        font-weight: 500;
        font-size: calc(1rem + 8vw);
        line-height: calc(1rem + 7.5vw);
        padding: 0 50px;
        -webkit-transition: all 0.1s ease-in-out 0s;
        transition: all 0.1s ease-in-out 0s;
        text-transform: lowercase;
    }

    .fullscreen-menu .flexnav .touch-button {
        width: 100%;
        display: block;
        height: calc(1rem + 7.5vw);
    }

    .fullscreen-menu .flexnav li a {
        color: #222;
    }

    .fullscreen-menu.invert-header .flexnav li a {
        color: #fff;
    }

    .fullscreen-menu .flexnav:hover li a,
    .fullscreen-menu .flexnav.hover li a {
        opacity: 0.3;
    }

    .fullscreen-menu .flexnav li:hover a,
    .fullscreen-menu .flexnav li a.active {
        opacity: 1;
    }

    .fullscreen-menu .flexnav:hover li ul li a {
        opacity: 0.3;
    }

    .fullscreen-menu .flexnav:hover li ul li a.active,
    .fullscreen-menu .flexnav:hover li ul li:hover > a {
        opacity: 1;
    }

    .fullscreen-menu .flexnav a.link::before {
        display: none;
    }

    .fullscreen-menu .flexnav li ul {
        margin-top: 10px;
        margin-bottom: 10px;
        position: relative;
        left: 0;
    }

    .fullscreen-menu .flexnav li ul:after {
        display: none;
    }

    .fullscreen-menu .flexnav li ul li a {
        padding: 3px 0;
        font-size: 16px;
        line-height: 26px;
        font-weight: 500;
        border-top: none;
        text-transform: none;
    }

    .fullscreen-menu .flexnav ul li ul li a {
        background: transparent;
    }

    .fullscreen-menu .flexnav li ul li > ul,
    .fullscreen-menu .flexnav li ul.open ul.open {
        margin-left: 0;
        top: 0;
    }

    .fullscreen-menu .menu-timeline {
        opacity: 1;
    }

    .fullscreen-menu .menu-timeline .before-span {
        opacity: 0;
        display: block;
        -webkit-transform: translateY(120px);
        transform: translateY(120px);
    }

    .fullscreen-menu .flexnav li,
    .fullscreen-menu .flexnav li a {
        background-color: transparent;
        border: 0;
    }

    .fullscreen-menu .flexnav li a span {
        position: relative;
        display: block;
        -webkit-transition: -webkit-transform 0.2s;
        transition: transform 0.2s;
        transform-origin: 100% 0%;
        overflow: hidden;
    }

    .fullscreen-menu .open .flexnav li a span {
        overflow: visible;
    }

    .fullscreen-menu .flexnav li a span::before {
        position: absolute;
        top: 100%;
        width: 100%;
        left: 0;
        content: attr(data-hover);
    }

    .fullscreen-menu .flexnav li:hover a span {
        -webkit-transform: translateY(-100%);
        transform: translateY(-100%);
        transform-origin: 0% 0%;
    }

    .fullscreen-menu .flexnav li.hover a span {
        -webkit-transform: translateY(-100%) !important;
        transform: translateY(-100%) !important;
        transform-origin: 0% 0%;
    }
}

nav,
nav.open {
    background: transparent;
}

#burger-wrapper {
    width: 40px;
    height: 40px;
    float: right;
    top: 0px;
    right: 0;
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    pointer-events: initial;
}

#burger-wrapper .touch-button {
    display: none;
}

.button-wrap.right.burger-lines {
    right: -30px;
}

.burger-lines #menu-burger {
    width: 16px;
    height: 22px;
    position: relative;
    margin: 0 auto;
    z-index: 2;
    pointer-events: none;
}

.burger-lines #menu-burger span {
    display: block;
    position: absolute;
    height: 2px;
    width: 100%;
    opacity: 1;
    right: 0;
    background-color: #000;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-transition:
        background-color 0.05s ease-in-out,
        transform 0.2s ease-in-out,
        top 0.2s ease-in-out;
    transition:
        background-color 0.05s ease-in-out,
        transform 0.2s ease-in-out,
        top 0.2s ease-in-out;
}

.burger-lines #menu-burger span:nth-child(1) {
    top: 5px;
}

.burger-lines #menu-burger span:nth-child(2) {
    top: 13px;
}

.burger-lines #menu-burger span:nth-child(3) {
    display: none;
}

.burger-lines #menu-burger.open span:nth-child(1) {
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
    top: 10px;
}

.burger-lines #menu-burger.open span:nth-child(2) {
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
    top: 10px;
}

.light-content #menu-burger span {
    background-color: #fff;
}

.white-header #menu-burger span {
    background-color: #fff;
}

.light-content .white-header #menu-burger span {
    background-color: #000;
}

.light-content .white-header.over-white-section #menu-burger span {
    background-color: #fff;
}

.dark-content-header #menu-burger span {
    background-color: #000 !important;
}

.light-content-header #menu-burger span {
    background-color: #fff !important;
}

.dark-content-header .button-text {
    color: #000 !important;
}

.light-content-header .button-text {
    color: #fff !important;
}

/*--------------------------------------------------
	05. Main Content
---------------------------------------------------*/

#content-scroll {
    z-index: 1;
    position: relative;
}

.smooth-scroll #content-scroll {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    overflow: hidden;
}

.scroll-content {
    cursor: default !important;
}

.scale-up .scroll-content {
    cursor: grabbing !important;
}

.scrollbar-track {
    background: transparent !important;
}

.whatsapp {
    position: fixed;
    width: 60px;
    height: 60px;
    bottom: 110px;
    right: 20px;
    background-color: #ffffff;
    color: #000000;
    border-radius: 50px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    text-align: center;
    font-size: 30px;
    line-height: 60px;
    z-index: 100;
}

/* Theme toggle (footer, next to "back to top") */
.theme-toggle {
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: inherit;
}

.theme-toggle .button-icon {
    display: block;
}

#footer-container .theme-toggle.button-wrap.left {
    left: -32px;
    margin-left: 10px;
}

.theme-toggle:focus-visible {
    outline: none;
}

.theme-toggle:focus-visible .button-icon {
    border-radius: 50%;
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

/* Theme switch animation (see js/zxr-theme.js) */
::view-transition-old(root),
::view-transition-new(root) {
    animation: none;
    mix-blend-mode: normal;
}

::view-transition-new(root) {
    z-index: 9999;
}

.theme-fading,
.theme-fading * {
    -webkit-transition:
        background-color 0.5s ease,
        color 0.5s ease,
        border-color 0.5s ease,
        fill 0.5s ease !important;
    transition:
        background-color 0.5s ease,
        color 0.5s ease,
        border-color 0.5s ease,
        fill 0.5s ease !important;
}

/*--------------------------------------------------
	06. Footer Elements
---------------------------------------------------*/

footer {
    position: relative;
    width: 100%;
    height: 120px;
    z-index: 900;
    box-sizing: border-box;
    text-align: center;
    bottom: 0;
    left: 0;
    overflow: hidden;
    pointer-events: none;
}

#footer-container {
    padding: 0 80px;
    margin: 20px auto;
    height: 80px;
    opacity: 0;
    position: absolute;
    width: 100%;
    box-sizing: border-box;
    bottom: 0;
    left: 0;
}

.footer-middle {
    position: absolute;
    margin: 0 auto;
    width: 100%;
    height: inherit;
    display: table;
    left: 0;
    pointer-events: none;
}

.copyright {
    position: relative;
    top: 25px;
    width: auto;
    height: 30px;
    overflow: hidden;
    font-size: 14px;
    line-height: 30px;
    font-weight: 500;
    color: #000;
    pointer-events: initial;
    display: table;
    width: auto;
    padding: 0px 20px 0px 20px;
    max-width: 820px;
    box-sizing: border-box;
    text-align: center;
    margin: 0 auto;
}

.light-content .copyright {
    color: #fff;
}

.socials-wrap {
    position: relative;
    float: right;
    color: #000;
    width: 240px;
    height: 160px;
    box-sizing: border-box;
    pointer-events: initial;
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.light-content .socials-wrap {
    color: #fff;
}

footer .socials-wrap {
    margin-top: 0px;
}

.socials-wrap:hover {
    transform: translateY(-40px);
    -webkit-transform: translateY(-40px);
}

.socials-text {
    float: right;
    font-size: 14px;
    font-weight: 500;
    line-height: 40px;
    transform: translateY(20px);
}

.socials-wrap:hover .socials-text {
    transform: translateY(15px) translateX(5px);
    -webkit-transform: translateY(15px) translateX(5px);
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.socials-icon {
    float: right;
    width: 30px;
    height: 40px;
    font-size: 14px;
    line-height: 40px;
    text-align: right;
    margin-left: 10px;
    transform: scale(1) translateY(20px);
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.socials-wrap:hover .socials-icon {
    transform: scale(0) translateY(40px);
    width: 0;
    margin: 0;
    overflow: hidden;
}

.socials-icon:after,
.socials-text:after {
    content: "";
    clear: both;
    display: table;
}

.socials {
    height: auto;
    line-height: 30px;
    position: relative;
    width: auto;
    margin: 0 auto;
    margin-top: 10px;
    text-align: center;
    bottom: 0;
    display: table;
    transform: translateX(15px);
    -webkit-transform: translateX(15px);
}

.socials-wrap .socials {
    display: inline-block;
    width: 100%;
    text-align: right;
}

.socials li {
    margin-right: 0px;
    margin-left: 10px;
    list-style: none;
    color: #999;
    font-size: 15px;
    margin-bottom: 0;
    line-height: 40px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 40px;
    width: 40px;
    float: right;
    z-index: 2;
    -webkit-transition: background 0.4s ease-in-out 0s;
    transition: background 0.4s ease-in-out 0s;
}

.socials-wrap .socials li {
    opacity: 0;
    transform: translateY(20px);
    -webkit-transform: translateY(20px);
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.socials-wrap:hover .socials li:nth-child(5) {
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0.05s;
    opacity: 1;
    transform: translateY(10px);
    -webkit-transform: translateY(10px);
}

.socials-wrap:hover .socials li:nth-child(4) {
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0.1s;
    opacity: 1;
    transform: translateY(10px);
    -webkit-transform: translateY(10px);
}

.socials-wrap:hover .socials li:nth-child(3) {
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0.15s;
    opacity: 1;
    transform: translateY(10px);
    -webkit-transform: translateY(10px);
}

.socials-wrap:hover .socials li:nth-child(2) {
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0.2s;
    opacity: 1;
    transform: translateY(10px);
    -webkit-transform: translateY(10px);
}

.socials-wrap:hover .socials li:nth-child(1) {
    transition: all 0.2s cubic-bezier(0.215, 0.61, 0.355, 1) 0.3s;
    opacity: 1;
    transform: translateY(10px);
    -webkit-transform: translateY(10px);
}

.socials li:last-child {
    margin-left: 0px;
}

.socials li a {
    color: #000;
    font-size: 14px;
    font-weight: 500;
    display: block;
    height: 40px;
    width: 40px;
    line-height: 40px;
    text-align: center;
    -webkit-transition: opacity 0.2s ease-in-out;
    transition: opacity 0.2s ease-in-out;
}

.socials:hover li a {
    opacity: 0.3;
}

.socials li a:hover {
    color: #000;
    opacity: 1;
}

.light-content .socials li a {
    color: #fff;
}

.light-content .socials:hover li a {
    opacity: 0.3;
}

.light-content .socials li a:hover {
    color: #fff;
    opacity: 1;
}

.button-wrap {
    position: relative;
    cursor: pointer;
    top: 0px;
    pointer-events: initial;
    width: auto;
    display: table;
}

.button-wrap:after {
    clear: both;
    content: " ";
    display: block;
    height: 0;
    visibility: hidden;
}

.button-wrap.left {
    float: left;
    left: -32px;
}

.button-wrap.right {
    float: right;
    right: -26px;
}

#main .button-wrap.left {
    float: none;
    left: -24px;
}

#main .button-wrap.right {
    float: none;
    right: auto;
}

.icon-wrap {
    width: 80px;
    height: 80px;
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    float: left;
}

#main .icon-wrap {
    width: 60px;
    height: 60px;
}

.button-wrap.left .icon-wrap {
    float: left;
}

.button-wrap.right .icon-wrap {
    float: right;
}

.button-icon {
    height: 40px;
    width: 40px;
    color: #000;
    text-align: center;
    line-height: 40px;
    font-size: 18px;
}

.light-content .button-icon,
.dark-section .button-icon {
    color: #fff;
}

.light-content .light-section .button-icon {
    color: #000;
}

.white-header .button-icon {
    color: #fff;
}

.light-content .white-header .button-icon {
    color: #000;
}

.button-icon i {
    height: 40px;
    line-height: 40px;
    width: 40px;
    text-align: center;
}

#main .button-icon i {
    line-height: 40px;
}

#main .button-icon i.fa-arrow-right {
    font-size: 14px;
}

.button-text {
    font-weight: 500;
    font-size: 14px;
    line-height: 30px;
    margin: 25px 0;
    overflow: hidden;
    width: auto;
    padding: 0 10px;
    color: #000;
    -webkit-transition: color 0.05s ease-in-out;
    transition: color 0.05s ease-in-out;
}

#main #hero-footer .button-text span::after {
    content: none;
}

#main .button-text {
    font-size: 18px;
    line-height: 30px;
    font-weight: 500;
    margin: 15px 0;
    transition: transform 0.2s ease-out;
}

#main #hero #hero-footer .button-text {
    font-size: 14px;
    line-height: 30px;
}

.light-content .button-text,
.dark-section .button-text {
    color: #fff;
}

.light-content .light-section .button-text {
    color: #000;
}

.white-header .button-text {
    color: #fff;
}

.light-content .white-header .button-text {
    color: #000;
}

.light-content .white-header.over-white-section .button-text {
    color: #fff;
}

.button-wrap.left a {
    text-align: left;
    float: left;
}

.button-wrap.right a {
    text-align: right;
    float: right;
}

.button-wrap.right .button-text {
    padding-left: 0px;
}

.button-text span {
    position: relative;
    display: inline-block;
    -webkit-transition: -webkit-transform 0.2s;
    transition: transform 0.2s;
    width: auto;
    text-align: center;
    transform-origin: 100% 0%;
}

.button-wrap.left .button-text span {
    text-align: left;
}

.button-wrap.right .button-text span {
    text-align: right;
}

.button-text span::before {
    position: absolute;
    width: auto;
    top: 100%;
    left: 0;
    content: attr(data-hover);
}

.header-middle .button-text span::before {
    content: attr(data-on);
}

.button-wrap:hover .button-text span {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
    transform-origin: 0% 0%;
}

.link-text {
    font-weight: 500;
    font-size: 14px;
    line-height: 30px;
    margin: 0;
    overflow: hidden;
    display: table;
    width: auto;
    padding: 0;
    color: #000;
    -webkit-transition: color 0.05s ease-in-out;
    transition: color 0.05s ease-in-out;
}

footer .link-text {
    float: left;
    opacity: 0;
    margin-top: 25px;
}

p .link-text {
    display: inline-table;
    font-size: 16px;
}

.light-content .link-text,
.dark-section .link-text {
    color: #fff;
}

.light-content .light-section .link-text {
    color: #000;
}

.link-text span {
    position: relative;
    display: inline-block;
    -webkit-transition: -webkit-transform 0.2s;
    transition: transform 0.2s;
    width: auto;
    text-align: center;
    transform-origin: 100% 0%;
    pointer-events: initial;
    cursor: pointer;
}

.link-text span::before {
    position: absolute;
    width: auto;
    top: 100%;
    left: 0;
    content: attr(data-hover);
}

.link-text:hover span {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
    transform-origin: 0% 0%;
}

nav,
nav.open {
    background: transparent;
}

/*--------------------------------------------------
	07. Responsive
---------------------------------------------------*/

@media only screen and (max-width: 1466px) {
    .row_padding_left {
        padding-left: 60px;
    }

    .row_padding_right {
        padding-right: 60px;
    }

    .percentage-wrapper {
        width: 10vw;
    }

    .percentage-intro {
        bottom: 50px;
    }

    header {
        height: 100px;
    }

    #header-container {
        padding: 10px 60px;
    }

    .flexnav li {
        padding: 20px;
    }

    footer {
        height: 100px;
    }

    #footer-container {
        padding: 0 60px;
        margin: 10px auto;
    }

    .socials-wrap:hover .socials-text {
        transform: translateY(20px) translateX(5px);
        -webkit-transform: translateY(20px) translateX(5px);
    }
}

@media only screen and (max-width: 1024px) {
    .parallax-wrap {
        transform: none !important;
    }

    .parallax-element {
        transform: none !important;
    }

    .has-parallax figcaption {
        display: none;
    }

    .destroy {
        display: none;
    }

    .row_padding_left {
        padding-left: 0px;
    }

    .row_padding_right {
        padding-right: 0px;
    }

    .full.row_padding_left {
        padding-left: 40px;
    }

    .full.row_padding_right {
        padding-right: 40px;
    }

    .big-title {
        font-size: calc(1rem + 12vw);
        line-height: calc(1rem + 11.5vw);
    }

    #magic-cursor {
        display: none;
    }

    .percentage-wrapper {
        width: 12vw;
    }

    .percentage-intro {
        bottom: 40px;
    }

    #header-container {
        padding: 10px 40px;
    }

    nav {
        height: 100vh;
        width: 100%;
        position: fixed;
        left: 0;
        top: 0;
        box-sizing: border-box;
        visibility: visible;
        pointer-events: none;
        opacity: 0;
        padding: 20px 0;
    }

    nav.open {
        visibility: visible;
        pointer-events: initial;
    }

    .nav-height {
        position: relative;
        height: 100%;
        padding: 40px 0;
        width: 100%;
        box-sizing: border-box;
        overflow-y: auto;
    }

    .flexnav {
        padding: 0 20px;
        max-height: 2000px;
        display: table;
        width: auto;
        margin: 0 auto;
        text-align: center;
        box-sizing: border-box;
        background: transparent;
        -webkit-transition: all 0.2s ease-in 0.6s;
        transition: all 0.2s ease-in 0.6s;
    }

    .flexnav.flexnav-show {
        -webkit-transition: all 0.3s ease-out 0.2s;
        transition: all 0.3s ease-out 0.2s;
    }

    .flexnav.opacity {
        opacity: 1;
    }

    .flexnav li {
        padding: 0;
        -webkit-transition: color 0.15s ease-out 0s;
        transition: color 0.15s ease-out 0s;
    }

    .flexnav:hover li {
        color: rgba(255, 255, 255, 0.4);
    }

    .flexnav li:hover {
        color: rgba(255, 255, 255, 1);
    }

    .flexnav li a,
    .flexnav li ul li a {
        background: transparent;
    }

    .flexnav li a {
        font-weight: 500;
        font-size: 9vw;
        line-height: 10vw;
        padding: 0;
        border: none;
        -webkit-transition: all 0.1s ease-in-out 0s;
        transition: all 0.1s ease-in-out 0s;
    }

    .flexnav > li > a {
        font-size: calc(1rem + 12vw);
        line-height: calc(1rem + 11.5vw);
        font-family: "Six Caps", sans-serif;
        text-transform: lowercase;
    }

    .flexnav > li > .touch-button {
        width: 100%;
        height: calc(1rem + 11.5vw);
        display: block;
    }

    .flexnav li a {
        color: #000;
    }

    .invert-header .flexnav li a {
        color: #fff;
    }

    .flexnav:hover li a {
        opacity: 0.3;
    }

    .flexnav li:hover a,
    .flexnav li a.active {
        opacity: 1;
    }

    .flexnav .touch-button {
        width: 100%;
        display: block;
        height: 10vw;
    }

    .flexnav li ul {
        margin-bottom: 15px;
    }

    .flexnav li ul li a {
        padding: 3px 0;
        font-weight: 500;
        text-transform: none;
        font-size: 16px;
        line-height: 26px;
        border-top: none;
        opacity: 0.4;
        -webkit-text-stroke: none;
    }

    .flexnav li ul li:hover a,
    .flexnav li ul li a.active {
        opacity: 1;
    }

    .flexnav:hover li ul li a {
        opacity: 0.3;
    }

    .flexnav:hover li ul li a.active,
    .flexnav:hover li ul li:hover > a {
        opacity: 1;
    }

    .flexnav ul li ul li a {
        background: transparent;
    }

    .flexnav li ul li ul li a {
        padding: 10px 40px;
    }

    .flexnav li ul li .touch-button {
        height: 30px;
    }

    .flexnav .touch-button .navicon {
        display: none;
    }

    #menu-burger span.touch-button {
        display: none;
    }

    #footer-container {
        padding: 0 40px;
    }

    .copyright {
        text-align: center;
    }

    .socials-wrap {
        width: 240px;
        height: 40px;
        float: right;
        margin: 0 auto;
        right: -10px;
        transform: translateX(0px) translateY(20px) !important;
        -webkit-transform: translateX(0px) translateY(20px) !important;
    }

    .socials-wrap:hover {
        transform: translateY(20px);
        -webkit-transform: translateY(20px);
    }

    .socials-icon,
    .socials-text {
        display: none;
    }

    .socials-wrap .socials {
        margin-top: 3px;
        text-align: right;
        transform: translateX(0px);
        -webkit-transform: translateX(0px);
    }

    .socials-wrap .socials li {
        opacity: 1;
        transform: translateY(0px);
        -webkit-transform: translateY(0px);
    }

    .socials-wrap:hover .socials li {
        opacity: 1;
        transform: translateY(0px) !important;
        -webkit-transform: translateY(0px) !important;
    }

    .socials li {
        margin-right: 10px;
        line-height: 30px;
        height: 30px;
        width: 30px;
        margin: 0 5px auto;
        display: inline-block;
        float: none;
    }

    .socials li a {
        height: 30px;
        width: 30px;
        line-height: 30px;
    }
}

@media only screen and (max-width: 767px) {
    figcaption {
        background-color: rgba(0, 0, 0, 0.3);
        bottom: 0px;
        font-size: 10px;
        padding: 5px 10px;
        right: 0px;
        border-radius: 0;
    }

    .one_third {
        width: 100% !important;
    }

    .two_third {
        width: 100% !important;
    }

    .one_third,
    .two_third {
        margin-bottom: 30px !important;
        margin-right: 0% !important;
    }

    .row_padding_top {
        padding-top: 10vw;
    }

    .row_padding_bottom {
        padding-bottom: 10vw;
    }

    .row_padding_left {
        padding-left: 0px;
    }

    .row_padding_right {
        padding-right: 0px;
    }

    .full.row_padding_left {
        padding-left: 30px;
    }

    .full.row_padding_right {
        padding-right: 30px;
    }

    .clip-effects {
        overflow: hidden;
        clip-path: inset(2% 5% round 30px);
    }

    hr {
        height: 20px;
    }

    .big-title {
        font-size: calc(1rem + 13vw);
        line-height: calc(1rem + 12.5vw);
    }

    .bigger {
        font-size: 20px;
        line-height: 30px;
    }

    .percentage-wrapper {
        width: 16vw;
    }

    .percentage-intro {
        bottom: 30px;
    }

    header {
        height: 80px;
    }

    #header-container {
        padding: 0;
        margin: 0 auto;
    }

    #logo {
        left: 30px;
    }

    .button-wrap.right.menu {
        right: 4px;
    }

    .button-wrap.right.menu.burger-lines {
        right: 0px;
    }

    header .button-text {
        display: none;
    }

    .flexnav > li > a {
        font-size: calc(1rem + 13vw);
        line-height: calc(1rem + 12.5vw);
    }

    .flexnav > li > .touch-button {
        height: calc(1rem + 12.5vw);
    }

    footer {
        height: 80px;
    }

    #footer-container {
        height: 80px;
        padding: 0 30px;
        margin: 0;
    }

    #footer-container #backtotop.button-wrap.left {
        float: none;
        top: 5px;
        left: 0;
        right: 0;
        position: absolute;
        display: block;
    }

    #backtotop.button-wrap.left .button-text {
        text-align: left;
        float: left;
        display: none;
    }

    #backtotop.button-wrap.left .icon-wrap {
        float: none;
        position: absolute;
        right: auto;
        left: 0;
        margin: auto;
        top: 0px;
        opacity: 0.4;
        -webkit-transition: opacity 0.2s ease-out 0s;
        transition: opacity 0.2s ease-out 0s;
    }

    #backtotop.button-wrap.left:hover .icon-wrap {
        opacity: 1;
    }

    #footer-container .theme-toggle.button-wrap.left {
        position: absolute;
        float: none;
        top: 5px;
        left: auto;
        right: 0;
        margin: 0;
    }

    .theme-toggle .icon-wrap {
        opacity: 0.4;
        -webkit-transition: opacity 0.2s ease-out 0s;
        transition: opacity 0.2s ease-out 0s;
    }

    .theme-toggle:hover .icon-wrap {
        opacity: 1;
    }

    #logo img {
        height: 44px;
    }

    .footer-middle {
        max-width: 1180px;
        height: 20px;
        position: relative;
        margin: 0 auto;
        left: 0;
        width: 100%;
        top: 0px;
        margin-bottom: 15px;
    }

    .copyright {
        margin: 0 auto;
        left: auto;
        right: auto;
        top: 0;
        height: 20px;
        line-height: 20px;
    }

    .socials-wrap {
        width: auto;
        float: none;
        display: table;
        left: auto;
        right: auto;
        top: 0;
        margin: 0 auto;
        height: 20px;
        line-height: 20px;
        transform: translateX(0px) translateY(0px) !important;
        -webkit-transform: translateX(0px) translateY(0px) !important;
    }

    .socials-wrap .socials {
        text-align: center;
        margin: 0 auto;
        height: 20px;
        line-height: 20px;
        display: table;
        width: auto;
    }

    .socials li,
    .socials li a {
        height: 20px;
        line-height: 20px;
        margin: 0 auto;
    }
}

@media only screen and (max-width: 479px) {
    .one_third,
    .two_third {
        margin-bottom: 20px !important;
        margin-right: 0% !important;
    }

    .row_padding_top {
        padding-top: 12vw;
    }

    .row_padding_bottom {
        padding-bottom: 12vw;
    }

    .row_padding_left {
        padding-left: 0px;
    }

    .row_padding_right {
        padding-right: 0px;
    }

    .full.row_padding_left {
        padding-left: 20px;
    }

    .full.row_padding_right {
        padding-right: 20px;
    }

    hr {
        height: 10px;
    }

    .big-title {
        font-size: calc(1rem + 14vw);
        line-height: calc(1rem + 13.5vw);
    }

    .percentage-wrapper {
        width: 20vw;
    }

    #logo {
        left: 20px;
    }

    .button-wrap.right.menu {
        right: -6px;
    }

    .button-wrap.right.menu.burger-lines {
        right: -10px;
    }

    .flexnav > li > a {
        font-size: calc(1rem + 14vw);
        line-height: calc(1rem + 13.5vw);
    }

    .flexnav > li > .touch-button {
        height: calc(1rem + 13.5vw);
    }

    #footer-container {
        padding: 0px;
        margin: 0;
    }

    .button-text {
        display: none;
    }

    #main-page-content .button-text,
    #hero .button-text {
        display: block;
    }
}

@media only screen and (min-device-width: 375px) and (max-device-width: 667px) and (orientation: landscape) {
    #rotate-device {
        display: block;
    }
}

/*--------------------------------------------------
	ZXR refinements
---------------------------------------------------*/

/* Button groups stay together, centered, and wrap on small screens */
.text-align-center.button-box {
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px 16px;
}

.text-align-center.button-box .zxr-button-wrap {
    margin: 0;
}

@media only screen and (max-width: 767px) {
    .text-align-center.button-box .button-border {
        min-width: 220px;
        text-align: center;
    }
}

/* Header slides away while scrolling down (see js/zxr-header.js) */
header {
    -webkit-transition:
        transform 0.45s cubic-bezier(0.65, 0, 0.35, 1),
        background 0s;
    transition:
        transform 0.45s cubic-bezier(0.65, 0, 0.35, 1),
        background 0s;
}

header.header-tucked {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
}

@media (prefers-reduced-motion: reduce) {
    header {
        transition: none;
    }
}

/* Logo and menu contrast over sections that differ from the page theme (see js/zxr-header.js) */
#header-container.zxr-header-light #logo img.black-logo,
#header-container.zxr-header-dark #logo img.white-logo {
    opacity: 0 !important;
}

#header-container.zxr-header-light #logo img.white-logo,
#header-container.zxr-header-dark #logo img.black-logo {
    opacity: 1 !important;
}

#header-container.zxr-header-light #menu-burger span {
    background-color: #fff !important;
}

#header-container.zxr-header-dark #menu-burger span {
    background-color: #000 !important;
}

#header-container.zxr-header-light .button-text {
    color: #fff !important;
}

#header-container.zxr-header-dark .button-text {
    color: #000 !important;
}

#header-container #menu-burger span {
    -webkit-transition:
        background-color 0.3s ease,
        transform 0.2s ease-in-out,
        top 0.2s ease-in-out;
    transition:
        background-color 0.3s ease,
        transform 0.2s ease-in-out,
        top 0.2s ease-in-out;
}

#header-container .button-text {
    -webkit-transition: color 0.3s ease;
    transition: color 0.3s ease;
}

/* Room for accents (Á, É…) above the tight-leading display title in the page navigation */
#page-nav .next-hero-title {
    padding-top: 0.2em;
}

/* Tablet: icon-only "back to top" so the footer controls clear the centered copyright */
@media only screen and (min-width: 768px) and (max-width: 1024px) {
    #backtotop .button-text {
        display: none;
    }
}

/* Display text that can run onto several lines (Six Caps) needs leading for accents and
	   tildes (Á, Ñ): the template's line-height is ~0.94 of the font size, so marks on one line
	   overlap the line above. 1.15 fits them at every breakpoint because it scales with the font.
	   Selectors match the template's own specificity so this rule wins by coming later. */
.big-title,
.list-rotator li,
.overlapping-image .slide-caption .slide-title {
    line-height: 1.15;
}

/* <picture> wrappers from tools/build.py must not change the template's layout */
picture {
    display: contents;
}

/* Deferred images fade in once loaded (see js/zxr-loader.js). An animation, not a
	   transition, so it never overrides the template's own transitions or GSAP styles. */
img[data-lazy] {
    opacity: 0;
}

img.zxr-lazy-in {
    animation: zxr-fade-in 0.6s ease;
}

@keyframes zxr-fade-in {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    img.zxr-lazy-in {
        animation: none;
    }
}

/* Subheadings that keep the template's h5 size at the correct outline level (h3) */
h3.heading-md {
    font-size: calc(1rem + 0.6vw);
    line-height: calc(1rem + 1.5vw);
}

/* Contact details (email, address, phone): styled like the template's h6, not headings */
.contact-value {
    font-size: 18px;
    line-height: 36px;
    font-weight: 500;
    color: #000;
}

.light-content .contact-value,
.dark-section .contact-value {
    color: #fff;
}

.light-content .light-section .contact-value {
    color: #000;
}

/* Footer copyright on two lines, built from data/site.json: the brand owner, then a quieter
	   ZXR credit. The template sized .copyright for one line and clipped anything more. */
.copyright {
    top: 20px;
    height: auto;
    overflow: visible;
    line-height: 20px;
}

.copyright-owner,
.copyright-credit {
    display: block;
}

.copyright-credit {
    font-size: 12px;
    opacity: 0.65;
}

.copyright-credit strong {
    font-weight: 600;
}

@media only screen and (max-width: 767px) {
    .footer-middle {
        height: auto;
    }

    /* One line each on a 360 px phone, so the social icons stay inside the footer */
    .copyright {
        top: 0;
        padding: 0;
        font-size: 12px;
    }

    .copyright-credit {
        font-size: 11px;
    }
}

/* Contact map (Leaflet + OpenStreetMap, see js/contact.js). OpenStreetMap's colorful tiles
	   become the site's grayscale palette with filters, and invert for dark mode, so switching
	   themes restyles the map instantly without downloading other tiles. */
#map_canvas {
    isolation: isolate; /* keep Leaflet's panes (z-index 400+) under the fixed WhatsApp button */
    background: #e9e9e9;
    font-family: inherit;
}

#map_canvas .leaflet-tile-pane {
    filter: grayscale(1) contrast(0.9) brightness(1.05);
}

#map_canvas.zxr-map-dark {
    background: #1b1b1b;
}

#map_canvas.zxr-map-dark .leaflet-tile-pane {
    filter: grayscale(1) invert(1) contrast(0.85) brightness(0.9);
}

/* The pin is black on the light map and white on the dark one */
#map_canvas.zxr-map-dark .leaflet-marker-icon {
    filter: invert(1);
}

#map_canvas .leaflet-popup-content-wrapper,
#map_canvas .leaflet-popup-tip {
    background: #fff;
    color: #000;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

#map_canvas .leaflet-popup-content {
    margin: 14px 18px;
    font-size: 14px;
    line-height: 20px;
    text-align: center;
}

/* The popup is always white; the template would paint <strong> white in dark mode */
#map_canvas .leaflet-popup-content strong {
    display: block;
    font-weight: 600;
    color: #000;
}

#map_canvas .leaflet-control-attribution {
    font-size: 11px;
    background: rgba(255, 255, 255, 0.75);
}

#map_canvas .leaflet-control-zoom a {
    color: #000;
}

/* Button pair aligned with a text column (About: request a sample / view catalog) */
.button-box.zxr-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
    margin-top: 10px;
}

.button-box.zxr-actions .zxr-button-wrap {
    margin: 0;
}

/* ---- About: mobile quote and stacked actions ------------------------------ */

@media only screen and (max-width: 767px) {
    blockquote {
        font-size: 1.125rem;
        padding-left: 2.5rem;
    }

    blockquote::before {
        font-size: 2.25rem;
    }

    .button-box.zxr-actions .button-border {
        min-width: 220px;
        text-align: center;
    }
}

/* ---- About: signed brand statement ---------------------------------------- */

.content-row blockquote cite {
    display: block;
    margin-top: 16px;
    color: inherit;
    opacity: 0.6;
}
