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

.ts-full-screen {
    height: 900px;
    width: 100%;
}

.ts-map {
    position: relative;
}

.ts-map a[href^="http://maps.google.com/maps"] {
    display: none !important;
}

.ts-map a[href^="https://maps.google.com/maps"] {
    display: none !important;
}

.ts-map .gmnoprint a, .ts-map .gmnoprint span, .ts-map .gm-style-cc {
    display: none;
}

.ts-map .cluster > div, .ts-map .marker-cluster > div {
    background-color: #0a3e56;
    box-shadow: inset 0 0 0 .375rem rgba(255, 255, 255, .3),
                0 .1875rem .9375rem rgba(0, 0, 0, .15);
    border-radius: 50%;
    color: #fff !important;
    font-size: 16px !important;
    text-align: center;
    transition: .3s ease;
}

.ts-map .cluster > div:hover, .ts-map .cluster > div.ts-hover,
.ts-map .marker-cluster > div:hover, .ts-map .marker-cluster > div.ts-hover {
    box-shadow: inset 0 0 0 .375rem rgba(255, 255, 255, .3),
                0 .3125rem 1.5625rem rgba(0, 0, 0, .5);
}

.ts-map .marker-cluster > div {
    line-height: 3rem;
    height: 3rem !important;
    width: 3rem !important;
}

.ts-map .gm-style-mtc > div {
    font-size: .75rem !important;
    height: 2rem !important;
    padding: 0 .75rem !important;
}

.ts-map__detail {
    height: 18rem;
}

.ts-contact-map {
    height: 25rem;
}

.ts-sidebar-map {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    height: 18rem;
}

/* =====================================================================================================================
  MARKER
 */

.ts-marker-wrapper {
    -webkit-transform: scale(1);
            transform: scale(1);
    -webkit-transform-origin: 0 2.75rem;
             transform-origin: 0 2.75rem;
    transition: .3s ease;
}

.ts-marker-wrapper.ts-hide-marker {
    -webkit-transform: scale(0);
            transform: scale(0);
}

.leaflet-div-icon {
    background-color: transparent;
    border: none;
}

.leaflet-marker-icon.ts-hide-marker .ts-marker {
    -webkit-transform: scale(0);
            transform: scale(0);
}

.ts-marker {
    display: inline-block;
    position: relative;
    padding-bottom: .5rem;
    transition: .6s cubic-bezier(.16, .64, .31, 1.68);
    -webkit-transform: translateY(0) rotate(.002deg);
            transform: translateY(0) rotate(.002deg);
    background-color: #0a3e56;
    border-radius: 50%;
    height: 30px;
    width: 30px;
    border: 1px solid #fff;
}

.ts-marker:hover, .ts-marker.ts-hover {
    color: inherit;
    -webkit-transform: translateY(-0.25rem);
            transform: translateY(-0.25rem);
    z-index: 1;
}

.ts-marker:hover .ts-marker__title, .ts-marker:hover .ts-marker__info,
.ts-marker.ts-hover .ts-marker__title, .ts-marker.ts-hover .ts-marker__info {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
}

.ts-marker:hover .ts-marker__info, .ts-marker.ts-hover .ts-marker__info {
    transition-delay: .05s;
}

.ts-marker:hover:before, .ts-marker.ts-hover:before {
    -webkit-transform: translateY(.25rem) scaleX(.8);
            transform: translateY(.25rem) scaleX(.8);
    opacity: .2;
}

.ts-marker:after {
    border-color: #191919 transparent transparent transparent;
    border-width: .375rem .375rem 0 0;
    border-style: solid;
    bottom: .1875rem;
    content: "";
    right: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.ts-marker:before {
    content: url("../img/marker-shadow.png");
    bottom: -0.375rem;
    left: -0.0625rem;
    position: absolute;
    opacity: .8;
    transition: .6s cubic-bezier(.16, .64, .31, 1.68);
    -webkit-transform: translateY(0) scaleX(1);
            transform: translateY(0) scaleX(1);
    -webkit-transform-origin: left;
             transform-origin: left;
}

.ts-marker .ts-marker__title, .ts-marker .ts-marker__info {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    position: absolute;
    font-size: .6875rem;
    font-weight: 500;
    left: .25rem;
    white-space: nowrap;
    border-radius: .0625rem;
    pointer-events: none;
    padding: .0625rem .25rem;
    transition: .5s cubic-bezier(.03, .18, .05, 1.01);
    -webkit-transform: translateX(.25rem);
            transform: translateX(.25rem);
    opacity: 0;
}

.ts-marker .ts-marker__title {
    background-color: #fff;
    top: .25rem;
    z-index: 2;
}

.ts-marker .ts-marker__info {
    background-color: #00f;
    color: #fff;
    top: 1.25rem;
    z-index: 1;
}

.ts-marker .ts-marker__feature {
    top: -0.625rem;
    left: -0.625rem;
    position: absolute;
    z-index: 3;
}

.ts-marker .ts-marker__feature > * {
    background-color: #00f;
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    border-radius: 50%;
    color: #fff;
    font-size: .5rem;
    width: 1.375rem;
    text-align: center;
    height: 1.375rem;
    line-height: 1.375rem;
}

.ts-marker .ts-marker__image {
    background-size: cover;
    background-position: 50% 50%;
    border-radius: .125rem;
    box-shadow: 0 .25rem .5rem rgba(0, 0, 0, .3);
    height: 2.625rem;
    width: 2.625rem;
    position: relative;
}

.ts-marker .ts-marker__image:before {
    border-bottom-right-radius: .125rem;
}

.ts-marker-hide {
    opacity: .2;
}

/* =====================================================================================================================
  INFOBOX
 */

.infobox-wrapper {
    transition: .3s transform cubic-bezier(.51, .31, .28, 1.16);
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: bottom left;
             transform-origin: bottom left;
}

.infobox-wrapper > img {
    display: none;
}

.infobox-wrapper.ts-show {
    -webkit-transform: scale(1);
            transform: scale(1);
}

.infobox-wrapper.ts-show .ts-infobox .ts-close {
    -webkit-transform: scale(1) rotate(0deg);
            transform: scale(1) rotate(0deg);
    transition-delay: .15s;
}

.infobox-wrapper.ts-show .ts-infobox .ts-close:hover {
    transition-delay: 0s;
    opacity: 1;
}

.leaflet-popup {
    margin-bottom: 0;
}

.leaflet-popup .leaflet-popup-content-wrapper {
    padding: 0;
    background-color: transparent;
    box-shadow: none;
}

.leaflet-popup .leaflet-popup-content-wrapper .leaflet-popup-content {
    margin: 0;
}

.leaflet-popup .leaflet-popup-tip-container {
    display: none;
}

.ts-infobox {
    display: inline-block;
    position: relative;
}

.ts-infobox:after {
    border-color: #191919 transparent transparent transparent;
    border-width: .5rem .5rem 0 0;
    border-style: solid;
    bottom: -0.375rem;
    content: "";
    left: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.ts-infobox .ts-ribbon {
    right: 1.5rem;
}

.ts-infobox .ts-ribbon-corner:before {
    left: 1.5625rem;
}

.ts-infobox .ts-ribbon-corner:after {
    bottom: 1.5625rem;
}

.ts-infobox .badge {
    position: absolute;
    top: .75rem;
    left: .75rem;
    z-index: 1;
}

.ts-infobox .ts-close {
    position: absolute;
    right: -0.9rem;
    top: -1rem;
    z-index: 3;
    -webkit-filter: drop-shadow(0 .1875rem .125rem rgba(0, 0, 0, .2));
            filter: drop-shadow(0 .1875rem .125rem rgba(0, 0, 0, .2));
    cursor: pointer;
    transition: .3s ease;
    -webkit-transform: scale(0) rotate(180deg);
            transform: scale(0) rotate(180deg);
    opacity: .95;
}

.ts-infobox .ts-infobox_image {
    background-size: cover;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 0;
}

.ts-infobox .ts-infobox__content {
    z-index: 1;
    width: 100%;
}

.ts-infobox .ts-item__info {
    margin-bottom: .5rem;
}

.ts-infobox .ts-item__info h4 {
    text-shadow: 0 .125rem .1875rem rgba(25, 25, 25, .8);
    font-size: 1rem;
    font-weight: 500;
    margin-bottom: .5rem;
    line-height: 1.375rem;
}

.ts-infobox .ts-item__info aside {
    font-size: .75rem;
    opacity: .7;
}

.ts-infobox .ts-item__info-badge {
    display: inline-block;
    background-color: #00f;
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    border-radius: .1875rem;
    font-weight: 500;
    font-size: .6875rem;
    margin-bottom: .25rem;
    padding: .25rem .375rem;
}

.ts-infobox .ts-description-lists {
    border-top: .0625rem solid rgba(255, 255, 255, .4);
    padding-top: .5rem;
}

.ts-infobox .ts-description-lists dl {
    margin-bottom: 0;
    margin-right: .5rem;
}

.ts-infobox .ts-description-lists dt {
    font-size: .6875rem;
    opacity: .5;
}

.ts-infobox .ts-description-lists dd {
    font-size: .6875rem;
    margin-bottom: 0;
}

.H_ui * {
    box-sizing: border-box;
}

.H_ib_tail {
    display: none;
}

.H_ib_body {
    background-color: transparent;
    padding: 0;
}

.H_ib_body .H_ib_close {
    display: none;
}

.H_ib_body .H_ib_content {
    margin: 0;
}

.H_ib_body .infobox-wrapper {
    bottom: 0;
    left: 6.25rem;
    position: absolute;
}

.here-map-marker .ts-marker-wrapper {
    margin-top: -3rem;
    position: relative;
}

@-webkit-keyframes ts-dimIn {
    0% {
        width: 0;
    }

    1% {
        width: 100%;
    }

    5% {
        opacity: 0;
    }

    100% {
        opacity: .6;
    }
}

@keyframes ts-dimIn {
    0% {
        width: 0;
    }

    1% {
        width: 100%;
    }

    5% {
        opacity: 0;
    }

    100% {
        opacity: .6;
    }
}

@-webkit-keyframes ts-dimOut {
    0% {
        opacity: .6;
    }

    95% {
        opacity: 0;
    }

    99% {
        width: 100%;
    }

    100% {
        width: 0;
    }
}

@keyframes ts-dimOut {
    0% {
        opacity: .6;
    }

    95% {
        opacity: 0;
    }

    99% {
        width: 100%;
    }

    100% {
        width: 0;
    }
}

#ts-map-hero {
    transition: .3s ease;
}

#ts-map-hero.leaflet-container:after {
    z-index: 401;
}

#ts-map-hero:after {
    -webkit-animation-fill-mode: forwards;
            animation-fill-mode: forwards;
    -webkit-animation-duration: .5s;
            animation-duration: .5s;
    -webkit-animation-name: ts-dimOut;
            animation-name: ts-dimOut;
    background-color: black;
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    transition: opacity .4s ease;
    opacity: 0;
}

#ts-map-hero.ts-dim-map:after {
    -webkit-animation-name: ts-dimIn;
            animation-name: ts-dimIn;
    /*opacity: .6;
      height: 100%;
      width: 100%;*/
}

/* ====================================================================================================================
  VERTICAL LIST Results
 */

.ts-results__vertical-list {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    z-index: 1;
    width: 100%;
    position: absolute !important;
}

.ts-results__vertical-list.scroll-wrapper {
    -webkit-transform: translateX(calc(-100% + 3rem));
            transform: translateX(calc(-100% + 3rem));
    transition: .4s transform ease;
}

.ts-results__vertical-list.scroll-wrapper .scrollbar-inner {
    padding-left: 4rem;
}

.ts-results__vertical-list.scroll-wrapper.ts-expanded {
    -webkit-transform: translateX(-4rem);
            transform: translateX(-4rem);
}

.ts-results__vertical-list.scroll-wrapper.ts-expanded .ts-result {
    pointer-events: auto;
}

.ts-results__vertical-list .ts-result {
    border-top: .0625rem solid rgba(25, 25, 25, .1);
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    margin: 0;
    width: 100%;
    height: auto;
    padding: 1rem;
    pointer-events: none;
}

.ts-results__vertical-list .ts-result:hover {
    box-shadow: 0 .1875rem .9375rem rgba(0, 0, 0, .15);
    background-color: #f8f8f8;
}

.ts-results__vertical-list .ts-result .card-img {
    border-radius: .1875rem;
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    width: 100%;
    height: 10rem;
}

.ts-results__vertical-list .ts-result .card-body {
    padding: 1.5rem 0 0 0;
}

.ts-results__vertical-list .ts-result .ts-description-lists {
    display: block;
    right: 0;
    border: none;
    padding-left: 0;
    top: 0;
    position: relative;
    padding-top: .5rem;
    padding-bottom: .5rem;
}

.ts-results__vertical-list .ts-result .ts-description-lists dt {
    font-size: .75rem;
}

.ts-results__vertical-list .ts-result .ts-description-lists dd {
    font-size: .75rem;
    margin-bottom: .5rem;
}

.ts-results__vertical-list .ts-result .ts-item__info-badge {
    background-color: #fff;
    color: inherit;
    top: -0.875rem;
}

.ts-results__vertical-list .ts-result .ts-ribbon {
    right: .5rem;
    left: inherit;
    -webkit-transform: scale(.8);
            transform: scale(.8);
    top: -0.875rem;
}

.ts-results__vertical-list .ts-result .ts-ribbon-corner {
    top: 0;
}

.ts-results__vertical-list .ts-result .ts-ribbon-corner:before {
    display: none;
}

.ts-center-marker {
    display: none;
    padding: .125rem .5rem;
    right: .375rem;
    top: .375rem;
    position: absolute;
    transition: .3s ease;
    opacity: .3;
    z-index: 1;
}

.ts-center-marker:hover {
    cursor: pointer;
    opacity: .8;
}

.ts-result .card-img {
    background-position: center;
}

.ts-result-link {
    position: relative;
    transition: .3s ease;
}

.ts-result-link:hover {
    color: #191919;
}

.ts-result-link .card {
    -webkit-transform: translateY(0);
            transform: translateY(0);
}

.ts-full-screen.ts-has-horizontal-results .ts-map {
    height: calc(100% - 9rem);
}

.blue {
    background-color: blue !important;
}

/* -- Ribbon */

.ts-ribbon {
    border: 1rem solid #00f;
    border-top: 0 solid;
    border-bottom: 1rem solid rgba(0, 0, 0, 0);
    color: #fff;
    line-height: 2.5rem;
    position: absolute;
    right: 1rem;
    top: -0.25rem;
    z-index: 2;
    width: 0;
}

.ts-ribbon i {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
}

.ts-ribbon-corner {
    height: 7.5rem;
    position: absolute;
    top: -0.375rem;
    overflow: hidden;
    right: -0.375rem;
    width: 7.5rem;
}

.ts-ribbon-corner:before, .ts-ribbon-corner:after {
    width: 0;
    height: 0;
    border-style: solid;
    content: "";
    position: absolute;
}

.ts-ribbon-corner:before {
    border-width: .375rem 0 0 .375rem;
    border-color: transparent transparent transparent #191919;
    left: 1.4375rem;
    top: 0;
}

.ts-ribbon-corner:after {
    border-width: .375rem 0 0 .375rem;
    border-color: transparent transparent transparent #191919;
    right: 0;
    bottom: 1.4375rem;
}

.ts-ribbon-corner span {
    background-color: #00f;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    color: #fff;
    font-size: .625rem;
    font-weight: 600;
       text-transform: uppercase;
    text-align: center;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transform-origin: center;
             transform-origin: center;
    -webkit-transform-style: preserve-3d;
              transform-style: preserve-3d;
    padding: .5rem 2rem;
    position: absolute;
    z-index: 2;
    width: 200%;
    display: block;
    top: 1.25rem;
    right: -5rem;
}

/* -- Animations */

@-webkit-keyframes ts-anim__active-marker {
    0% {
        -webkit-transform: rotateX(70deg) rotateZ(0deg);
                transform: rotateX(70deg) rotateZ(0deg);
    }

    100% {
        -webkit-transform: rotateX(70deg) rotateZ(360deg);
                transform: rotateX(70deg) rotateZ(360deg);
    }
}

@keyframes ts-anim__active-marker {
    0% {
        -webkit-transform: rotateX(70deg) rotateZ(0deg);
                transform: rotateX(70deg) rotateZ(0deg);
    }

    100% {
        -webkit-transform: rotateX(70deg) rotateZ(360deg);
                transform: rotateX(70deg) rotateZ(360deg);
    }
}

.ts-active-marker {
    position: relative;
    -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d;
    opacity: 1 !important;
}

.ts-active-marker:before {
    -webkit-animation-name: ts-anim__active-marker;
            animation-name: ts-anim__active-marker;
    -webkit-animation-duration: 2s;
            animation-duration: 2s;
    -webkit-animation-timing-function: linear;
            animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
            animation-iteration-count: infinite;
    content: url(../img/marker-active.svg);
    position: absolute;
    width: 3.25rem;
    height: 3.25rem;
    z-index: 0;
    left: -1.5rem;
    bottom: -1.1875rem;
    opacity: .4;
}

.values {
    position: relative;
    overflow: hidden;
}

.map-container {
    position: relative;
    height: 700px;
    background-color: #f5f5f5;
}

.map-wrapper {
    width: 100%;
    height: 100%;
}

.portfolio-items-container {
    height: 700px;
    background-color: transparent;
    display: flex;
    flex-direction: column;
}

.portfolio-items-wrapper {
    flex: 1;
    overflow-y: auto;
    padding: 0 25px 0 20px;
}

.portfolio-items-wrapper::-webkit-scrollbar {
    width: 8px;
}

.portfolio-items-wrapper::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.portfolio-items-wrapper::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 4px;
}

.portfolio-items-wrapper::-webkit-scrollbar-thumb:hover {
    background: #555;
}

.portfolio-item {
    margin-bottom: 25px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.portfolio-item a {
    text-decoration: none;
    color: inherit;
    display: block;
}

.portfolio-item:hover {
    transform: translateY(-8px);
}

.portfolio-item .card {
    border: none;
    border-radius: 16px;
    overflow: hidden;
    height: 100%;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    transition: box-shadow 0.3s ease;
    background: #fff;
}

.portfolio-item:hover .card {
    box-shadow: 0 12px 24px rgba(0,0,0,0.15);
}

.portfolio-item .card-img-top {
    height: 200px;
    object-fit: cover;
    background-color: #f0f0f0;
    width: 100%;
}

.portfolio-item .card-body {
    padding: 18px 18px 15px 18px;
    background: #fff;
}

.portfolio-item .card-title {
    font-size: 17px;
    font-weight: 600;
    margin-bottom: 8px;
    color: #1a1a1a;
}

.portfolio-item .card-text {
    font-size: 15px;
    color: #444;
    display: flex;
    align-items: center;
}

.portfolio-item .card-text i {
    margin-left: 6px;
    color: #007bff;
    font-size: 14px;
}

.ts-infobox .ts-infobox__wrapper {
    display: flex;
    flex-direction: column;
    border-radius: 12px;
    height: auto;
    overflow: hidden;
    padding: 0;
    position: relative;
    z-index: 1;
    background: #fff;
}

.ts-infobox .ts-infobox_image {
    background-size: cover;
    background-position: center;
    height: 180px;
    width: 100%;
    position: relative;
    z-index: 0;
}

.ts-infobox .ts-infobox__content {
    background: #fff;
    padding: 16px;
    width: 100%;
    z-index: 1;
}

.ts-infobox .ts-item__info {
    margin-bottom: 12px;
}

.ts-infobox .ts-item__info h4 {
    text-shadow: none;
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 6px;
    line-height: 1.3;
    color: #1a1a1a;
}

.ts-infobox .ts-item__info aside {
    font-size: 13px;
    color: #666;
    opacity: 1;
    display: flex;
    align-items: center;
}

.ts-infobox .ts-item__info aside i {
    margin-left: 6px;
    color: #999;
}

.ts-infobox .btn-visit-infobox {
    display: inline-flex;
    align-items: center;
    background-color: transparent;
    color: #183e56;
    padding: 0;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: color 0.2s ease;
    border: none;
}

.ts-infobox .btn-visit-infobox:hover {
    font-weight: 600;
    background-color: transparent;
}

.ts-infobox .btn-visit-infobox i {
    margin-left: 6px;
    font-size: 12px;
}

.cluster > div, .marker-cluster > div {
    box-shadow: 0 4px 12px rgba(10, 62, 86, 0.4);
    transition: all 0.3s ease;
    background: transparent !important;
    overflow: hidden;
    border-radius: 50% !important;
    box-shadow: inset 0 0 0 0rem rgba(0, 0, 0, 0);
}

.cluster > div:hover, .marker-cluster > div:hover {
    box-shadow: inset 0 0 0 0.175rem rgba(0, 0, 0, 1),
                0 6px 16px rgba(15, 95, 130, 0.6);
    transform: scale(1.15);
    cursor: pointer;
    filter: brightness(1.3);
}

.cluster > div:hover span, .marker-cluster > div:hover span {
    font-size: 120% !important;
}

.infobox-wrapper {
    z-index: 9999 !important;
}

.ts-infobox {
    z-index: 9999 !important;
}

.ts-infobox .ts-infobox__wrapper {
    z-index: 9999 !important;
}

.ts-infobox .ts-close {
    z-index: 10000 !important;
}

.ts-marker-wrapper {
    z-index: 100 !important;
}

.ts-marker-wrapper.ts-hide-marker {
    z-index: 50 !important;
}

.portfolio-item.active .card {
    box-shadow: 0 0 0 3px rgba(0,123,255,0.4);
}

.portfolio-item.active:hover .card {
    box-shadow: 0 0 0 3px rgba(0,123,255,0.4), 0 12px 24px rgba(0,0,0,0.15);
}

@media (max-width: 991.98px) {
    .map-container {
        height: 400px;
    }
    
    .portfolio-items-container {
        margin-top: 25px;
    }
}