@charset "UTF-8";


.word-rotator i,
.word-rotator em,
.word-rotator b {
    font-style: normal;
    font-weight: inherit
}

.word-rotator-words {
    display: inline-flex !important;
    position: relative;
    text-align: left
}

.word-rotator-words b {
    display: inline-block;
    position: absolute;
    white-space: nowrap;
    left: 0;
    top: 0
}

.word-rotator-words b.is-visible {
    position: relative
}

.word-rotator-words[class*=bg-] {
    background: #ccc
}

.word-rotator-words[class*=bg-] b {
    color: #fff;
    padding: 1.6px 8px;
    padding: .1rem .5rem
}

.word-rotator.rotate-1 .word-rotator-words {
    perspective: 300px;
}

.word-rotator.rotate-1 b {
    opacity: 0;
    transform-origin: 50% 100%;
    transform: rotateX(180deg)
}

.word-rotator.rotate-1 b.is-visible {
    opacity: 1;
    transform: rotateX(0deg);
    animation: word-rotator-rotate-1-in 1.2s
}

.word-rotator.rotate-1 b.is-hidden {
    transform: rotateX(180deg);
    animation: word-rotator-rotate-1-out 1.2s
}

@keyframes word-rotator-rotate-1-in {
    0% {
        transform: rotateX(180deg);
        opacity: 0
    }

    35% {
        transform: rotateX(120deg);
        opacity: 0
    }

    65% {
        opacity: 0
    }

    100% {
        transform: rotateX(360deg);
        opacity: 1
    }
}

@keyframes word-rotator-rotate-1-out {
    0% {
        transform: rotateX(0deg);
        opacity: 1
    }

    35% {
        transform: rotateX(-40deg);
        opacity: 1
    }

    65% {
        opacity: 0
    }

    100% {
        transform: rotateX(180deg);
        opacity: 0
    }
}

.word-rotator.type .word-rotator-words {
    vertical-align: top;
    overflow: hidden;
    position: relative;
    padding-right: 3px
}

.word-rotator.type .word-rotator-words::after {
    content: ' ';
    position: absolute;
    right: 0;
    top: 5%;
    height: 90%;
    width: 2px;
    display: block;
    background-color: transparent
}

.word-rotator.type .word-rotator-words.waiting::after {
    animation: 1s word-rotator-pulse step-end infinite
}

.word-rotator.type .word-rotator-words.selected {
    background-color: #212529 !important
}

.word-rotator.type .word-rotator-words.selected::after {
    visibility: hidden
}

.word-rotator.type .word-rotator-words.selected b {
    color: #fff !important
}

.word-rotator.type b {
    visibility: hidden
}

.word-rotator.type b.is-visible {
    visibility: visible
}

.word-rotator.type i {
    position: absolute;
    visibility: hidden
}

.word-rotator.type i.in {
    position: relative;
    visibility: visible
}

.word-rotator.type.type-clean-light .word-rotator-words:after {
    width: 8px
}

.word-rotator.type.type-clean-light .word-rotator-words.waiting::after {
    animation: 500ms word-rotator-pulse-light step-end infinite
}

.word-rotator.type.type-clean-light .word-rotator-words.selected {
    background-color: transparent !important
}

@keyframes word-rotator-pulse {

    from,
    to {
        background-color: transparent
    }

    50% {
        background-color: #000
    }
}

@keyframes word-rotator-pulse-light {

    from,
    to {
        background-color: transparent
    }

    50% {
        background-color: #fff
    }
}

.word-rotator.rotate-2 .word-rotator-words {
    perspective: 300px
}

.word-rotator.rotate-2 i,
.word-rotator.rotate-2 em {
    display: inline-block;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

.word-rotator.rotate-2 b {
    opacity: 0
}

.word-rotator.rotate-2 i {
    transform-style: preserve-3d;
    transform: translateZ(-20px) rotateX(90deg);
    opacity: 0
}

.is-visible .word-rotator.rotate-2 i {
    opacity: 1
}

.word-rotator.rotate-2 i.in {
    animation: word-rotator-rotate-2-in .4s forwards
}

.word-rotator.rotate-2 i.out {
    animation: word-rotator-rotate-2-out .4s forwards
}

.word-rotator.rotate-2 em {
    transform: translateZ(20px)
}

.no-csstransitions .word-rotator.rotate-2 i {
    transform: rotateX(0deg);
    opacity: 0
}

.no-csstransitions .word-rotator.rotate-2 i em {
    transform: scale(1)
}

.no-csstransitions .word-rotator.rotate-2 .is-visible i {
    opacity: 1
}

@keyframes word-rotator-rotate-2-in {
    0% {
        opacity: 0;
        transform: translateZ(-20px) rotateX(90deg)
    }

    60% {
        opacity: 1;
        transform: translateZ(-20px) rotateX(-10deg)
    }

    100% {
        opacity: 1;
        transform: translateZ(-20px) rotateX(0deg)
    }
}

@keyframes word-rotator-rotate-2-out {
    0% {
        opacity: 1;
        transform: translateZ(-20px) rotateX(0)
    }

    60% {
        opacity: 0;
        transform: translateZ(-20px) rotateX(-100deg)
    }

    100% {
        opacity: 0;
        transform: translateZ(-20px) rotateX(-90deg)
    }
}

.word-rotator.loading-bar span {
    display: inline-block;
    padding: .2em 0
}

.word-rotator.loading-bar .word-rotator-words {
    overflow: hidden;
    vertical-align: top
}

.word-rotator.loading-bar .word-rotator-words::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: 0;
    background: #212529;
    z-index: 2;
    transition: width .3s -.1s
}

.word-rotator.loading-bar .word-rotator-words.is-loading::after {
    width: 100%;
    transition: width 3s
}

.word-rotator.loading-bar .word-rotator-words.bg-light::after {
    background-color: #212529 !important
}

.word-rotator.loading-bar .word-rotator-words[class*=bg-]:not(.bg-light)::after {
    background-color: #fff !important
}

.word-rotator.loading-bar b {
    top: .2em;
    opacity: 0;
    transition: opacity .3s
}

.word-rotator.loading-bar b.is-visible {
    opacity: 1;
    top: 0
}

.word-rotator.slide span {
    display: inline-block;
    padding: .2em 0
}

.word-rotator.slide .word-rotator-words {
    overflow: hidden;
    vertical-align: top
}

.word-rotator.slide b {
    opacity: 0;
    top: .2em
}

.word-rotator.slide b.is-visible {
    top: 0;
    opacity: 1;
    animation: slide-in .6s
}

.word-rotator.slide b.is-hidden {
    animation: slide-out .6s
}

@keyframes slide-in {
    0% {
        opacity: 0;
        transform: translateY(-100%)
    }

    60% {
        opacity: 1;
        transform: translateY(20%)
    }

    100% {
        opacity: 1;
        transform: translateY(0)
    }
}

@keyframes slide-out {
    0% {
        opacity: 1;
        transform: translateY(0)
    }

    60% {
        opacity: 0;
        transform: translateY(120%)
    }

    100% {
        opacity: 0;
        transform: translateY(100%)
    }
}

.word-rotator.clip span {
    display: inline-block;
    padding: .2em 0
}

.word-rotator.clip .word-rotator-words {
    overflow: hidden;
    vertical-align: top
}

.word-rotator.clip .word-rotator-words::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 2px;
    height: 100%;
    background-color: #212529
}

.word-rotator.clip b {
    opacity: 0
}

.word-rotator.clip b.is-visible {
    opacity: 1
}

.word-rotator.zoom .word-rotator-words {
    perspective: 300px
}

.word-rotator.zoom b {
    opacity: 0
}

.word-rotator.zoom b.is-visible {
    opacity: 1;
    animation: zoom-in .8s
}

.word-rotator.zoom b.is-hidden {
    animation: zoom-out .8s
}

@keyframes zoom-in {
    0% {
        opacity: 0;
        transform: translateZ(100px)
    }

    100% {
        opacity: 1;
        transform: translateZ(0)
    }
}

@keyframes zoom-out {
    0% {
        opacity: 1;
        transform: translateZ(0)
    }

    100% {
        opacity: 0;
        transform: translateZ(-100px)
    }
}

.word-rotator.rotate-3 .word-rotator-words {
    perspective: 300px
}

.word-rotator.rotate-3 b {
    opacity: 0
}

.word-rotator.rotate-3 i {
    display: inline-block;
    transform: rotateY(180deg);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

.is-visible .word-rotator.rotate-3 i {
    transform: rotateY(0deg)
}

.word-rotator.rotate-3 i.in {
    animation: word-rotator-rotate-3-in .6s forwards
}

.word-rotator.rotate-3 i.out {
    animation: word-rotator-rotate-3-out .6s forwards
}

.no-csstransitions .word-rotator.rotate-3 i {
    transform: rotateY(0deg);
    opacity: 0
}

.no-csstransitions .word-rotator.rotate-3 .is-visible i {
    opacity: 1
}

@keyframes word-rotator-rotate-3-in {
    0% {
        transform: rotateY(180deg)
    }

    100% {
        transform: rotateY(0deg)
    }
}

@keyframes word-rotator-rotate-3-out {
    0% {
        transform: rotateY(0)
    }

    100% {
        transform: rotateY(-180deg)
    }
}

.word-rotator.scale b {
    opacity: 0
}

.word-rotator.scale i {
    display: inline-block;
    opacity: 0;
    transform: scale(0)
}

.is-visible .word-rotator.scale i {
    opacity: 1
}

.word-rotator.scale i.in {
    animation: scale-up .6s forwards
}

.word-rotator.scale i.out {
    animation: scale-down .6s forwards
}

.no-csstransitions .word-rotator.scale i {
    transform: scale(1);
    opacity: 0
}

.no-csstransitions .word-rotator.scale .is-visible i {
    opacity: 1
}

@keyframes scale-up {
    0% {
        transform: scale(0);
        opacity: 0
    }

    60% {
        transform: scale(1.2);
        opacity: 1
    }

    100% {
        transform: scale(1);
        opacity: 1
    }
}

@keyframes scale-down {
    0% {
        transform: scale(1);
        opacity: 1
    }

    60% {
        transform: scale(0);
        opacity: 0
    }
}

.word-rotator.push b {
    opacity: 0
}

.word-rotator.push b.is-visible {
    opacity: 1;
    animation: push-in .6s
}

.word-rotator.push b.is-hidden {
    animation: push-out .6s
}

@keyframes push-in {
    0% {
        opacity: 0;
        transform: translateX(-100%)
    }

    60% {
        opacity: 1;
        transform: translateX(10%)
    }

    100% {
        opacity: 1;
        transform: translateX(0)
    }
}

@keyframes push-out {
    0% {
        opacity: 1;
        transform: translateX(0)
    }

    60% {
        opacity: 0;
        transform: translateX(110%)
    }

    100% {
        opacity: 0;
        transform: translateX(100%)
    }
}

section.section-custom-map {
    background: transparent url(../img/map.png) center 0 no-repeat;
    padding: 129px 0 0;
    margin: 20px 0 0;
    border: 0
}

section.section-custom-map section.section {
    border-top: 0;
    background: rgba(247, 247, 247, .5)
}

.home-intro {
    background-color: #212529;
    margin-bottom: 60px;
    overflow: hidden;
    padding: 38.4px 0;
    padding: 2.4rem 0;
    position: relative;
    text-align: left;
    letter-spacing: -.5px
}

.home-intro p {
    color: #fff;
    display: inline-block;
    font-size: 1.4em;
    font-weight: 600;
    margin-bottom: 0
}

.home-intro p span:not(.highlighted-word) {
    color: #fff;
    display: block;
    font-size: .8em;
    font-weight: 300;
    padding-top: 5px;
    opacity: .7
}

.home-intro p .highlighted-word {
    font-size: 1.6em
}

.home-intro .get-started {
    position: relative
}

.home-intro .get-started .btn {
    position: relative;
    z-index: 1
}

.home-intro .get-started .btn i {
    font-size: 1.1em;
    font-weight: 400;
    margin-left: 5px
}

.home-intro .get-started a {
    color: #fff
}

.home-intro .get-started a:not(.btn) {
    color: #fff;
    font-weight: 600
}

.home-intro .learn-more {
    color: #fff;
    margin-left: 15px;
    font-weight: 300
}

.home-intro.light {
    background-color: #ededed
}

.home-intro.light.secondary {
    background-color: #e0e1e4
}

.home-intro.light p,
.home-intro.light .learn-more,
.home-intro.light p span:not(.highlighted-word),
.home-intro.light .get-started a:not(.btn) {
    color: #333
}

.home-intro-compact {
    border-radius: 0 0 .3rem .3rem;
    margin-top: -10px;
    margin: -10px auto 60px;
    max-width: 1116px
}

.home-intro-compact p {
    padding-left: 20px
}

.home-intro-compact .get-started {
    padding-right: 20px
}

@media(max-width:991px) {
    .home-intro p {
        margin-bottom: 2rem
    }

    .home-intro-compact .get-started {
        padding-left: 20px
    }
}

@media(max-width:767px) {
    .home-intro-compact {
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0
    }
}

@keyframes animatedLineBg {
    from {
        stroke-dasharray: 1000
    }

    to {
        stroke-dasharray: 1360
    }
}

@keyframes animatedLineSmallCircle {
    from {
        stroke-dasharray: 1000
    }

    to {
        stroke-dasharray: 1120
    }
}

@keyframes animatedLineBigCircle {
    from {
        stroke-dasharray: 1000
    }

    to {
        stroke-dasharray: 1266
    }
}

@keyframes animatedInitialPin {
    0% {
        transform: translate(2px, 69px) scale(.23)
    }

    33% {
        transform: translate(2px, 79px) scale(.23)
    }

    66% {
        transform: translate(2px, 74px) scale(.23)
    }

    100% {
        transform: translate(2px, 79px) scale(.23)
    }
}

@keyframes animatedFinalPin {
    0% {
        transform: translate(325px, -19px) scale(.23) rotate(36deg)
    }

    33% {
        transform: translate(325px, -13px) scale(.23) rotate(36deg)
    }

    66% {
        transform: translate(325px, -16px) scale(.23) rotate(36deg)
    }

    100% {
        transform: translate(325px, -13px) scale(.23) rotate(36deg)
    }
}

@keyframes animatedFinalPinFirefox {
    0% {
        transform: translate(193px, -16px) scale(.23) rotate(36deg)
    }

    33% {
        transform: translate(193px, -10px) scale(.23) rotate(36deg)
    }

    66% {
        transform: translate(193px, -13px) scale(.23) rotate(36deg)
    }

    100% {
        transform: translate(193px, -10px) scale(.23) rotate(36deg)
    }
}

.home-concept {
    background: transparent url(../img/home/home-concept.png) no-repeat center 0;
    width: 100%;
    overflow: hidden
}

.home-concept strong {
    display: block;
    font-family: shadows into light, cursive;
    font-size: 1.8em;
    font-weight: 400 !important;
    position: relative;
    margin-top: 30px
}

.home-concept .row {
    position: relative
}

.home-concept .process-image {
    background: transparent url(../img/home/home-concept-item.png) no-repeat 0 0;
    width: 160px;
    margin: 120px auto 0;
    padding-bottom: 50px;
    position: relative;
    z-index: 1
}

.home-concept .process-image img {
    border-radius: 150px;
    margin: 7px 8px;
    width: auto;
    height: auto;
    max-width: 145px;
    max-height: 145px
}

@media(min-width:992px) {
    .home-concept .process-image.process-image-on-middle {
        margin-top: 95px
    }
}

.home-concept .our-work {
    margin-top: 52px;
    font-size: 2.2em
}

.home-concept .project-image {
    background: transparent url(../img/home/home-concept-item.png) no-repeat 100% 0;
    width: 350px;
    margin: 20px 0 0 -30px;
    padding-bottom: 45px;
    position: relative;
    z-index: 1
}

.home-concept .sun {
    background: transparent url(../img/home/home-concept-icons.png) no-repeat 0 0;
    width: 60px;
    height: 56px;
    display: block;
    position: absolute;
    left: 0;
    top: 65px
}

.home-concept .cloud {
    background: transparent url(../img/home/home-concept-icons.png) no-repeat 100% 0;
    width: 116px;
    height: 56px;
    display: block;
    position: absolute;
    left: 53%;
    top: 35px
}

@media(max-width:991px) {
    .home-concept {
        background-image: none
    }

    .home-concept .project-image {
        margin: 20px auto 0
    }

    .home-concept .process-image {
        margin-top: 0;
        padding-bottom: 25px
    }
}

@media(max-width:479px) {
    .home-concept .project-image {
        background-position: 0 0;
        margin-left: auto;
        max-width: 160px
    }

    .home-concept .fc-slideshow {
        max-width: 145px;
        height: 145px
    }

    .home-concept .fc-slideshow img {
        max-height: 145px;
        max-width: 145px
    }
}

.portfolio-title {
    margin-bottom: -10px
}

.portfolio-title a {
    display: inline-block
}

.portfolio-title [class*=fa-],
.portfolio-title .icons {
    font-size: 1.7em
}

.portfolio-title .portfolio-nav {
    margin-top: 11px
}

.portfolio-title .portfolio-nav-all {
    margin-top: 9px
}

.portfolio-title .portfolio-nav {
    text-align: right
}

.portfolio-title .portfolio-nav a {
    width: 40%
}

.portfolio-title .portfolio-nav-all .fa,
.portfolio-title .portfolio-nav-all .icons {
    font-size: 2em
}

.portfolio-title .fa-angle-right {
    text-align: right
}

.portfolio-title .portfolio-nav-prev {
    text-align: left
}

.portfolio-info {
    margin: 2px 0 10px
}

.portfolio-info ul {
    list-style: none;
    padding: 0;
    margin: 0
}

.portfolio-info ul li {
    display: inline-block;
    border-right: 1px solid #e6e6e6;
    color: #b1b1b1;
    padding-right: 8px;
    margin-right: 8px;
    font-size: .9em
}

.portfolio-info ul li:last-child {
    border-right: 0;
    padding-right: 0;
    margin-right: 0
}

.portfolio-info ul li a {
    text-decoration: none;
    color: #b1b1b1
}

.portfolio-info ul li a:hover .fa-heart {
    color: #e53f51
}

.portfolio-info ul li [class*=fa-],
.portfolio-info ul li .icons {
    margin-right: 4px
}

.portfolio-list {
    list-style: none;
    padding: 0;
    margin-top: 0;
    margin-bottom: 0
}

.portfolio-list:not(.row) {
    margin: 0
}

.portfolio-list .portfolio-item {
    position: relative;
    margin-bottom: 35px
}

.portfolio-list .portfolio-item.portfolio-item-updated:after,
.portfolio-list .portfolio-item.portfolio-item-new:after {
    position: absolute;
    z-index: 1;
    top: 10px;
    right: 10px;
    background: #ccc;
    content: "NEW";
    display: block;
    padding: 0 8px;
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    color: #fff;
    border-radius: 2px;
    line-height: 22px
}

.portfolio-list .portfolio-item.portfolio-item-updated:after {
    content: "UPDATED";
    background: #36c57a
}

.portfolio-details {
    list-style: none;
    padding: 0;
    margin: 45px 0 0 5px;
    font-size: .9em
}

.portfolio-details>li {
    padding: 0;
    margin: 0 0 20px
}

.portfolio-details p {
    padding: 0;
    margin: 0
}

.portfolio-details blockquote {
    padding: 0 0 0 10px;
    margin: 15px 0 0;
    color: #999
}

.portfolio-details .list-icons {
    margin-left: 0
}

.portfolio-details .list-icons>li {
    padding-left: 18px;
    margin-right: 10px
}

.portfolio-details .list-icons>li [class*=fa-],
.portfolio-details .list-icons>li .icons {
    top: 7px
}

.portfolio-modal .mfp-arrow,
.portfolio-ajax-modal .mfp-arrow {
    display: none
}

.portfolio-load-more-loader {
    display: none;
    position: relative;
    height: 49px
}

.btn-portfolio-infinite-scroll {
    opacity: 0
}

.portfolio-next:hover [class*=fa-],
.portfolio-next:hover .icons,
.portfolio-prev:hover [class*=fa-],
.portfolio-prev:hover .icons {
    animation: navItemArrow 600ms ease;
    animation-iteration-count: infinite
}

@media(max-width:991px) {

    .portfolio-nav,
    .portfolio-nav-all {
        display: none
    }
}

ul.team-list {
    list-style: none;
    margin: 0;
    padding: 0
}

ul.team-list .team-item {
    margin-bottom: 35px
}

ul.team-list .team-item .thumb-info-social-icons {
    margin: 0 10px
}

@media(max-width:991px) {
    ul.team-list .team-item {
        margin: 0 auto 35px;
        max-width: 270px
    }
}

.search-results {
    min-height: 300px
}

.http-error {
    padding: 50px 0
}

.http-error h2 {
    font-size: 140px;
    font-weight: 700;
    line-height: 140px
}

.http-error h4 {
    color: #777
}

.http-error p {
    font-size: 1.4em;
    line-height: 36px
}

@media(max-width:575px) {
    .http-error {
        padding: 0
    }

    .http-error h2 {
        font-size: 100px;
        letter-spacing: 0;
        line-height: 100px
    }
}