@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,700');

/*----------------------------------------------------------------------------------------------------------------------
Project:	    MyHouse
Version:        1.0.1

Default Color   #3FB9A4;

Body copy:		'Roboto', sans-serif; 14px;
Headers:		'Roboto', sans-serif;

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

/*----------------------------------------------------------------------------------------------------------------------
[Table of contents]

A. Basic Styling
  -- Styling

B. Helpers

  -- Animations
  -- Borders
  -- Center
  -- Colors
  -- Column-count
  -- Background
  -- File-upload
  -- Height
  -- No gutters
  -- Opacity
  -- Overflow
  -- Position
  -- Shadow
  -- Typography
  -- Title
  -- Transitions
  -- Utilities
  -- Z-index

C. Components

  -- Badge
  -- Block
  -- Blockquote
  -- Box
  -- Buttons
  -- Breadcrumb
  -- Card
  -- Carousel
  -- Circle
  -- Collapse
  -- Description-list
  -- Dropdown
  -- Faq
  -- Feature
  -- Forms
  -- Footer
  -- Hr
  -- Inputs
  -- Item
  -- List
  -- Main
  -- Map
  -- Hero
  -- Navbar
  -- Page
  -- Pagination
  -- Partners
  -- Person
  -- Price-box
  -- Result
  -- Ribbon
  -- Sidebar
  -- Slider
  -- Tabs
  -- Quick-info

D. Plugins Styles
  -- Magnific Popup
  -- Owl Carousel

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

/***********************************************************************************************************************
A. Basic Styling
***********************************************************************************************************************/

:root {
    --primary-color: #173156;
    --secondary-color: #3FB9A4;
    --black: #191919;
    --dark-gray: #6A6F78;
    --light-gray: #E0E0E0;
    --white-gray: #f6f6f6;
    --white: #fff;
}

:root {
    --pill-gray: #e8e8e8;
    --pill-stroke: rgba(0, 0, 0, .04);
}

/*-------------------------------------------
  -- Styling - Colors, Font Size, Font Family
-------------------------------------------*/

body {
    background-color: #f6f6f6;
    color: #191919;
    font-family: "Poppins", sans-serif;
    font-weight: 400;
    font-size: .9375rem;
    margin: 0;
    padding: 0;
}

html {
    font-size: 95%;
    scroll-behavior: smooth;
}

h1,
.h1 {
    font-size: 3rem;
    font-weight: 600;
    line-height: 4.5rem;
    margin-bottom: 4rem;
}

.ts-homepage h1 {
    margin-top: 1rem;
    font-size: 41px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 600;
    font-family: "Poppins", sans-serif;
}

h2,
.h2 {
    font-size: 2.25rem;
    margin-bottom: .5rem;
}

h3,
.h3 {
    font-size: 1.5rem;
    line-height: 2rem;
    margin-bottom: 1rem;
    padding-bottom: .5rem;
}

h4,
.h4 {
    font-size: 1.125rem;
    line-height: 1.75rem;
    margin-bottom: 2rem;
    font-family: "Poppins", sans-serif;
}

h5,
.h5 {
    font-size: 1rem;
    line-height: 1.5rem;
}

h6,
.h6 {
    font-size: .9375rem;
}

#whatsapp-share-btn span {
    text-decoration: underline;
}

.grid {
    display: grid;
    grid-column-gap: 15px;
    grid-template-columns: repeat(4, 1fr);
}

.bg-light-gray {
    background-color: #E0E0E0;
}

.bg-white {
    background-color: #fff;
}

@media(min-width: 768px) {
    .flex-row-reverse-desktop {
        flex-direction: row-reverse;
    }

    .map-h-property {
        height: 100vh;
        top: 0;
    }
}

@media(max-width: 767px) {
    .flex-row-reverse-desktop {
        flex-direction: column;
    }

    .map-h-property {
        height: 400px;
    }
}

@media (min-width: 768px) {
    #property-location-label {
        display: inline-block;
        margin-top: 5.5rem;
        /* Aproximadamente 2 renglones */
    }
}

/* Mobile: reduce title size and whitespace for property location h1 */
@media (max-width: 767px) {
    .ts-homepage .col-lg-9 h1 {
        font-size: 1.6rem;
        line-height: 2.1rem;
        margin-bottom: 0.5rem !important;
    }

    .ts-homepage .col-lg-9>.d-flex.mb-4 {
        margin-bottom: 0.5rem !important;
    }
}


/***********************************************************************************************************************
B. Helpers
***********************************************************************************************************************/

/* -- 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;
}

/*-------------------------------------------
  -- Borders
-------------------------------------------*/

.ts-border-radius__sm {
    border-radius: clamp(20px, 2vw, 20px);
    /*overflow: hidden;*/
}

.ts-border-radius__md {
    border-radius: clamp(20px, 2vw, 20px);
    /*overflow: hidden;*/
}

.ts-border-radius__lg {
    border-radius: clamp(20px, 2vw, 20px);
    /*overflow: hidden;*/
}

.ts-border-radius__xl {
    border-radius: clamp(20px, 2vw, 20px);
    /*overflow: hidden;*/
}

.ts-border-radius__pill {
    border-radius: clamp(20px, 2vw, 20px);
    /*overflow: hidden;*/
}

.ts-border-radius__round-shape {
    border-radius: clamp(20px, 2vw, 20px);
    /*overflow: hidden;*/
}

/* Center Align with Flex */

.ts-center__vertical {
    display: flex;
    align-items: center;
}

.ts-center__horizontal {
    display: flex;
    justify-content: center;
}

.ts-center__both {
    display: flex;
    align-items: center;
    justify-content: center;
}

.ts-font-color__white {
    color: #fff;
}

.ts-font-color__black {
    color: #000;
}

.ts-font-color__primary {
    color: #3FB9A4;
}

.ts-bg-light {
    background-color: #f6f6f6;
}

.ts-bg-primary {
    background-color: #3FB9A4;
}

.ts-bg-black {
    background-color: #191919;
}

.text-white p {
    color: rgba(255, 255, 255, .6);
}

.ts-text-color-light {
    color: rgba(0, 0, 0, .5);
}

.ts-text-color-primary {
    color: #3FB9A4;
}

.ts-text-color-black {
    color: #191919;
}

/* Bootstrap primary colors */

.text-primary {
    color: #3FB9A4 !important;
}

.bg-primary {
    background-color: #3FB9A4 !important;
}

.border-primary {
    border-color: #3FB9A4 !important;
}

.text-white .custom-checkbox .custom-control-label {
    color: rgba(255, 255, 255, .6);
}

.ts-column-count-1 {
    -webkit-column-count: 1;
    column-count: 1;
}

.ts-column-count-2 {
    -webkit-column-count: 2;
    column-count: 2;
}

.ts-column-count-3 {
    -webkit-column-count: 3;
    column-count: 3;
}

.ts-column-count-4 {
    -webkit-column-count: 4;
    column-count: 4;
}

/*-------------------------------------------
  -- Background
-------------------------------------------*/

[data-bg-image] {
    background-size: cover;
    background-position: 50%;
}

.ts-background {
    bottom: 0;
    left: 0;
    height: 100%;
    overflow: hidden;
    position: absolute;
    width: 100%;
    z-index: -2;
}

.ts-background .ts-background {
    height: 100%;
    width: 100%;
}

.ts-background-repeat {
    background-repeat: repeat;
    background-size: inherit;
}

.ts-background-repeat .ts-background-image {
    background-repeat: repeat;
    background-size: inherit;
}

.ts-background-image,
.ts-img-into-bg {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50%;
    height: 100%;
    overflow: hidden;
    width: 100%;
}

.ts-background-image img,
.ts-img-into-bg img {
    display: none;
}

header {
    opacity: 1;
}

.ts-bokeh-background {
    -webkit-filter: blur(1.875rem);
    filter: blur(1.875rem);
    top: -1rem;
    position: absolute;
    display: block;
    left: 0;
    width: 100%;
    height: 12rem;
    opacity: .6;
    overflow: hidden;
    z-index: -1;
}

.ts-bokeh-background #ts-canvas {
    width: 100%;
}

/* -- File Upload */

.file-upload {
    position: relative;
    height: 8rem;
    margin-bottom: 2rem;
    margin-top: 2rem;
}

.file-upload .file-upload-input {
    border-radius: clamp(20px, 2vw, 20px);
    width: 100%;
    border: .125rem dashed rgba(0, 0, 0, .2);
    height: 8rem;
    text-align: center;
    cursor: pointer;
    position: relative;
    display: inline-block;
    padding: 8rem 0 0 0;
    overflow: hidden;
    z-index: 1;
    transition: .3s ease;
}

.file-upload .file-upload-input:hover {
    border-color: rgba(0, 0, 0, .4);
    background-color: rgba(0, 0, 0, .05);
}

.file-upload span {
    position: absolute;
    top: 0;
    bottom: 0;
    line-height: 8rem;
    width: 100%;
    text-align: center;
    margin: auto;
    z-index: 0;
    left: 0;
    color: rgba(0, 0, 0, .5);
}

.file-upload span i {
    color: #3FB9A4;
    margin-right: 1rem;
}

.file-upload-previews>.MultiFile-label {
    border-radius: clamp(20px, 2vw, 20px);
    background-color: rgba(0, 0, 0, .03);
    display: inline-block;
    border: .125rem solid rgba(0, 0, 0, .1);
    padding: 1rem;
    position: relative;
    margin-right: 1rem;
    margin-bottom: 1rem;
}

.file-upload-previews span.MultiFile-label {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    position: relative;
    text-align: center;
    display: inline-block;
    margin: 1rem;
}

.file-upload-previews span.MultiFile-label .MultiFile-title {
    position: absolute;
    background-color: rgba(0, 0, 0, .4);
    color: #fff;
    padding: 1rem;
    bottom: 0;
    font-size: .75rem;
    text-align: center;
    width: 100%;
}

.file-upload-previews span.MultiFile-label .MultiFile-preview {
    max-width: 14rem !important;
    max-height: 7rem !important;
}

.file-uploaded-images .image {
    height: 15rem;
    display: inline-block;
    margin-bottom: 1.8rem;
    margin-right: 1.5rem;
    position: relative;
}

.file-uploaded-images .image figure {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    border-radius: clamp(20px, 2vw, 20px);
    cursor: pointer;
    background-color: red;
    width: 2rem;
    height: 2rem;
    position: absolute;
    right: -1rem;
    top: -1rem;
    content: "";
    text-align: center;
    line-height: 1.5rem;
}

.file-uploaded-images .image figure i {
    color: #fff;
    font-size: 1rem;
}

.file-uploaded-images .image img {
    height: 100%;
}

.file-uploaded-images .image {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    height: 10rem;
    display: inline-block;
    margin-bottom: 1rem;
    margin-right: 1rem;
    position: relative;
}

.file-uploaded-images .image figure {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    border-radius: clamp(20px, 2vw, 20px);
    cursor: pointer;
    background-color: red;
    width: 1.5rem;
    height: 1.5rem;
    position: absolute;
    right: -0.75rem;
    top: -0.75rem;
    content: "";
    text-align: center;
    line-height: 1.375rem;
}

.file-uploaded-images .image figure i {
    color: #fff;
    font-size: .75rem;
}

.file-uploaded-images .image img {
    height: 100%;
}

.MultiFile-remove {
    line-height: .625rem !important;
}

/*-------------------------------------------
  -- Height
-------------------------------------------*/

.ts-h__auto {
    height: auto;
}

.ts-min-h__10vh {
    min-height: 10vh;
}

.ts-min-h__20vh {
    min-height: 20vh;
}

.ts-min-h__30vh {
    min-height: 30vh;
}

.ts-min-h__40vh {
    min-height: 40vh;
}

.ts-min-h__50vh {
    min-height: 50vh;
}

.ts-min-h__60vh {
    min-height: 60vh;
}

.ts-min-h__70vh {
    min-height: 70vh;
}

.ts-min-h__80vh {
    min-height: 80vh;
}

.ts-min-h__90vh {
    min-height: 90vh;
}

.ts-min-h__100vh {
    min-height: 100vh;
}

/* SM*/

/*MD*/

/*LG*/

/*XL*/

/*-------------------------------------------
  -- No Gutters - Removes padding from col*
-------------------------------------------*/

.no-gutters {
    margin-right: 0;
    margin-left: 0;
}

.no-gutters>.col,
.no-gutters>[class*="col-"] {
    padding-right: 0;
    padding-left: 0;
}

/*-------------------------------------------
  -- Opacity
-------------------------------------------*/

.ts-opacity__5 {
    opacity: .05;
}

.ts-opacity__10 {
    opacity: .1;
}

.ts-opacity__20 {
    opacity: .2;
}

.ts-opacity__30 {
    opacity: .3;
}

.ts-opacity__40 {
    opacity: .4;
}

.ts-opacity__50 {
    opacity: .5;
}

.ts-opacity__60 {
    opacity: .6;
}

.ts-opacity__70 {
    opacity: .7;
}

.ts-opacity__80 {
    opacity: .8;
}

.ts-opacity__90 {
    opacity: .9;
}

/*-------------------------------------------
  -- Overflow
-------------------------------------------*/

.ts-overflow__hidden {
    overflow: hidden;
}

.ts-overflow__visible {
    overflow: visible;
}

/*-------------------------------------------
  -- Position
-------------------------------------------*/

/* Top */

.ts-top__0 {
    top: 0;
}

.ts-top__50 {
    top: 50%;
}

.ts-top__100 {
    top: 100%;
}

/* Right */

.ts-right__0 {
    right: 0;
}

.ts-right__50 {
    right: 50%;
}

.ts-right__100 {
    right: 100%;
}

.ts-right__inherit {
    right: inherit;
}

/* Bottom */

.ts-bottom__0 {
    bottom: 0;
}

.ts-bottom__50 {
    bottom: 50%;
}

.ts-bottom__100 {
    bottom: 100%;
}

/* Left */

.ts-left__0 {
    left: 0;
}

.ts-left__50 {
    left: 50%;
}

.ts-left__100 {
    left: 100%;
}

.ts-left__inherit {
    left: inherit;
}

.ts-push-left__100 {
    -webkit-transform: translateX(100%);
    transform: translateX(100%);
}

.ts-push-left__50 {
    -webkit-transform: translateX(50%);
    transform: translateX(50%);
}

.ts-push-right__50 {
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
}

.ts-push-right__100 {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
}

.ts-push-down__50 {
    -webkit-transform: translateY(50%);
    transform: translateY(50%);
}

.ts-push-down__100 {
    -webkit-transform: translateY(100%);
    transform: translateY(100%);
}

.ts-push-up__50 {
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

.ts-push-up__100 {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
}

/*-------------------------------------------
  -- Shadow
-------------------------------------------*/

.ts-shadow__sm {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
}

.ts-shadow__md {
    box-shadow: 0 .1875rem .9375rem rgba(0, 0, 0, .15);
}

.ts-shadow__lg {
    box-shadow: 0 .3125rem 1.5625rem rgba(0, 0, 0, .25);
}

.ts-shadow__none {
    box-shadow: none !important;
}

/*-------------------------------------------
  -- Typography
-------------------------------------------*/

a {
    color: #191919;
    transition: .3s ease;
    outline: none;
}

a:hover {
    color: #3FB9A4;
    text-decoration: none;
}

button {
    outline: none !important;
}

p {
    line-height: 1.5rem;
    color: rgba(0, 0, 0, .5);
}

.ts-text-small {
    font-size: .75rem !important;
}

.ts-xs-text-center {}

/*-------------------------------------------
  -- Title
-------------------------------------------*/

.ts-title {
    padding-bottom: 1rem;
}

.ts-title h1 {
    margin-bottom: 0;
}

.ts-title h5 {
    font-weight: normal;
    opacity: .5;
}

.ts-block .ts-title {
    margin-bottom: 2rem;
}

/*
  margin-bottom: 3rem ?if media (min-width: 576px) and (max-width: 991px);
  margin-bottom: 4rem ?if media (min-width: 992px);
 */

/*-------------------------------------------
  -- Utilities
-------------------------------------------*/

.ts-element {
    position: relative;
    display: block;
}

/* Social Icons */

.ts-social-icons {
    font-size: 120%;
}

.ts-social-icons a {
    padding: .125rem .25rem;
    color: #9e9e9e;
}

/* Overlay */

.ts-has-overlay {
    position: relative;
}

.ts-has-overlay:after {
    background-color: #000;
    content: "";
    height: 100%;
    left: 0;
    opacity: .5;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: -1;
}

/* Flip x */

.ts-flip-x {
    -webkit-transform: scaleY(-1);
    transform: scaleY(-1);
}

/* Flip Y */

.ts-flip-y {
    -webkit-transform: scaleX(-1);
    transform: scaleX(-1);
}

.ts-full-screen {
    min-height: 100vh;
    width: 100%;
}

.ts-na {
    opacity: .5;
}

.ts-has-talk-arrow {
    position: relative;
}

.ts-has-talk-arrow:after {
    border-style: solid;
    border-width: .5rem .5rem 0 .5rem;
    border-color: #fff transparent transparent transparent;
    bottom: -0.375rem;
    content: "";
    left: 1rem;
    position: absolute;
}

.ts-white-gradient {
    position: relative;
}

.ts-white-gradient:after {
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
    content: "";
    position: absolute;
    bottom: 0;
    height: 50%;
    left: 0;
    width: 100%;
    z-index: -1;
}

.ts-black-gradient {
    position: relative;
}

.ts-black-gradient:before {
    /*FF3.6-15*/

    /*Chrome10-25,Safari5.1-6*/
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
    /*W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+*/
    bottom: 0;
    content: "";
    height: 50%;
    left: 0;
    position: absolute;
    width: 100%;
}

.ts-remove,
.MultiFile-remove {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    border-radius: clamp(20px, 2vw, 20px);
    color: transparent;
    position: absolute;
    background-color: red;
    width: 2rem;
    height: 2rem;
    line-height: 2rem;
    text-align: center;
    top: -1rem;
    right: 1rem;
    z-index: 1;
}

.ts-remove:after,
.MultiFile-remove:after {
    display: block;
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    content: "\f00d";
    color: #fff;
    font-size: 1rem;
}

.ts-responsive-block {
    overflow-y: auto;
    white-space: nowrap;
    width: 100%;
}

.ts-h-0 {
    height: 0 !important;
}

.ts-w-0 {
    width: 0 !important;
}

/*-------------------------------------------
  -- Z-index
-------------------------------------------*/

.ts-z-index__-1 {
    z-index: -1 !important;
}

.ts-z-index__0 {
    z-index: 0 !important;
}

.ts-z-index__1 {
    z-index: 1 !important;
}

.ts-z-index__2 {
    z-index: 2 !important;
}

.ts-z-index__1000 {
    z-index: 1000 !important;
}

/***********************************************************************************************************************
C. Components
***********************************************************************************************************************/

/* -- Badge */

.badge {
    border-radius: clamp(20px, 2vw, 20px);
    font-size: 80%;
    padding: .375rem .625rem;
    font-family: 'Poppins', sans-serif;
}

.badge-primary {
    background-color: #3FB9A4 !important;
}

.badge.badge-dark {
    border-radius: clamp(20px, 2vw, 20px);
    background: rgba(0, 0, 0, .6);
}

.badge.badge-light {
    color: var(--black);
    background: var(--pill-gray);
    box-shadow: inset 0 0 0 1px var(--pill-stroke);
    border-radius: clamp(20px, 2vw, 20px);
    border: 1px solid var(--dark-gray);
}

/*-------------------------------------------
  -- Block
-------------------------------------------*/

.ts-block {
    padding-bottom: 2rem;
    padding-top: 2rem;
    position: relative;
}

.ts-block-inside {
    padding: 1.25rem;
    position: relative;
}

section {
    position: relative;
}

.our-clients {
    &::after {
        content: "";
        display: block;
        height: 260px;
        width: 330px;
        z-index: -1;
        top: -26px;
        position: absolute;
        object-fit: contain;
        background: url(../img/quote.svg) no-repeat center center;
        background-size: contain;

        @media(max-width: 767px) {
            height: 147px;
            width: 186px;
            top: -15px;
        }
    }

    h2 {
        position: absolute;
        top: 2.5em;

        @media(max-width: 767px) {
            width: 30%;
        }

        @media(max-width: 640px) {
            font-size: 40px;
            position: relative;
            text-align: center;
            padding-top: 1em;
            margin: 0 auto;
            top: 0;
            width: 60%;
        }

        @media(max-width: 440px) {
            font-size: 32px;
        }

    }
}

/*-------------------------------------------
  -- Blockquote
-------------------------------------------*/

blockquote {
    font-size: 1.125rem;
    position: relative;
    padding-bottom: 2rem;
}

blockquote [class*="ts-circle"] {
    box-shadow: 0 .3125rem 1.5625rem rgba(0, 0, 0, .25);
    position: relative;
    z-index: 2;
    margin-top: 1rem;
}

blockquote p {
    background-color: #f1f1f1;
    border-radius: clamp(20px, 2vw, 20px);
    margin-top: -2.5rem;
    padding: 2.5rem;
    position: relative;
    z-index: 1;
}

blockquote p:after {
    border-color: #f1f1f1 transparent transparent transparent;
    border-style: solid;
    border-width: .8125rem .8125rem 0 .8125rem;
    content: "";
    width: 0;
    height: 0;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    bottom: -0.8125rem;
}

blockquote h4 {
    margin-bottom: .3125rem;
}

blockquote h6 {
    opacity: .5;
}

.blockquote-footer {
    color: inherit;
}

.blockquote-footer:before {
    display: none;
}

.ts-carousel-blockquote .owl-item figure,
.ts-carousel-blockquote .owl-item p,
.ts-carousel-blockquote .owl-item .blockquote-footer {
    opacity: 0;
    transition: .6s ease;
    -webkit-transform: translateY(.625rem);
    transform: translateY(.625rem);
}

.ts-carousel-blockquote .owl-item.active figure,
.ts-carousel-blockquote .owl-item.active p,
.ts-carousel-blockquote .owl-item.active .blockquote-footer {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
}

.ts-carousel-blockquote .owl-item.active p {
    transition-delay: .1s;
}

.ts-carousel-blockquote .owl-item.active .blockquote-footer {
    transition-delay: .2s;
}

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

.ts-box {
    background-color: #fff;
    border-radius: clamp(20px, 2vw, 20px);
    margin-bottom: 2rem;
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    padding: 1.5rem;
    position: relative;
}

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

.btn {
    border-radius: clamp(20px, 2vw, 20px);
    font-size: .9375rem;
    padding: .5rem 1.25rem;
    position: relative;
    outline: none !important;
    transition: all .2s ease-in-out;
}


.btn:hover .fa-arrow-right {
    -webkit-transform: translateX(.5rem);
    transform: translateX(.5rem);
}

.btn .fa-arrow-right {
    transition: .6s cubic-bezier(.85, -0.37, .17, 1.45);
    -webkit-transform: translateX(0) rotate(.02deg);
    transform: translateX(0) rotate(.02deg);
}

.btn span {
    transition: .3s ease;
}

.btn .status {
    bottom: 0;
    height: 1.375rem;
    left: 0;
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    width: 1.5rem;
}

.btn .status .spinner {
    left: .3125rem;
    transition: .3s ease;
    top: .1875rem;
    position: absolute;
    opacity: 0;
}

.btn .status .status-icon {
    border-radius: clamp(20px, 2vw, 20px);
    left: 0;
    opacity: 0;
    font-size: .625rem;
    padding: .25rem .4375rem;
    position: relative;
    transition: .3s ease;
    z-index: 1;
    -webkit-transform: scale(0);
    transform: scale(0);
}

.btn .status .status-icon.valid {
    background-color: green;
}

.btn .status .status-icon.invalid {
    background-color: red;
}

.btn.processing span {
    opacity: .2;
}

.btn.processing .spinner {
    opacity: 1;
}

.btn.done .ts-spinner {
    opacity: 0;
}

.btn.done .status-icon {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
}

.btn-light {
    background-color: #fff;
    border-color: #fff;
}

.btn-light:hover {
    background-color: #ececec;
    border-color: #ececec;
}

button {
    cursor: pointer;
}

.ts-btn-arrow:after {
    content: "\f054";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: .625rem;
    margin-left: .75rem;
    position: relative;
    top: -0.0625rem;
    vertical-align: middle;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: #3FB9A4;
    border-color: #3FB9A4;
}

.btn-primary {
    background-color: #3FB9A4;
    border-color: #3FB9A4;
    color: #fff;
    transition: all .2s ease-in-out;
}

/* .btn-block:hover {
    transform: none !important;
} */

.btn-primary:hover {
    background-color: #6ed4c8;
    border-color: #6ed4c8;
}

.btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
}

@media (min-width: 992px) {
    .btn:hover {
        transform: translateY(-2px);
        box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
    }
}

.btn-black {
    color: #fff;
    padding: 14px;
    background-color: #26282A;
    border-color: #26282A;
}

.btn-black:hover {
    color: white;
}

.btn-primary.disabled,
.btn-primary:disabled {
    background-color: #3FB9A4;
    border-color: #3FB9A4;
}

.btn-primary:not(:disabled):not(.disabled):active:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus,
.show>.btn-primary.dropdown-toggle:focus {
    background-color: #3FB9A4;
    border-color: #3FB9A4;
    box-shadow: 0 .1875rem .9375rem rgba(0, 0, 0, .2);
}

.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show>.btn-primary.dropdown-toggle {
    background-color: #3FB9A4;
    border-color: #3FB9A4;
    box-shadow: 0 .1875rem .9375rem rgba(0, 0, 0, .2);
}

.btn-dark {
    background-color: #191919;
    border-color: #191919;
}

.btn-outline-primary {
    border-color: #3FB9A4;
    color: #3FB9A4;
}

.btn-outline-primary:hover {
    background-color: #6ed4c8;
    border-color: #6ed4c8;
}

.btn-outline-primary:not(:disabled):not(.disabled):active:focus {
    background-color: #6ed4c8;
    border-color: #6ed4c8;
    box-shadow: 0 0 0 .2rem rgba(0, 0, 255, .5);
}

.btn-lg {
    padding: .75rem 1.5rem;
    font-size: 1.125rem;
}

.btn-sm {
    font-size: .8125rem;
    padding: .375rem 1rem;
}

.btn-xs {
    font-size: .75rem;
    font-weight: 600;
    padding: .125rem .6875rem;
    text-transform: uppercase;
}

[class*="btn-outline-"] {
    box-shadow: none;
}

.ts-btn-border-muted {
    border-color: rgba(25, 25, 25, .1);
}

.btn-link {
    color: #3FB9A4;
}

.btn-link:hover {
    color: #3FB9A4;
}

@media (min-width: 768px) {
    .btn-desktop {
        display: block;
    }

    .btn-mobile {
        display: none;
    }
}

@media (max-width: 767px) {
    .btn-desktop {
        display: none;
    }

    .btn-mobile {
        width: 100%;
        display: block;
    }
}

/* -- Breadcrumb */

.breadcrumb {
    background-color: transparent;
    margin-bottom: 1rem;
    padding: 0;
    font-size: .8125rem;
}

.breadcrumb-item {
    opacity: .5;
}

.breadcrumb-item.active {
    color: #191919;
    opacity: 1;
}

.breadcrumb-item+.breadcrumb-item:before {
    content: "\f054";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: .625rem;
    opacity: .5;
}

/*-------------------------------------------
  -- Card
-------------------------------------------*/

.card {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    border: none;
    box-shadow: 0 .1875rem .9375rem rgba(0, 0, 0, .15);
    margin-bottom: 2rem;
}

.sticky-top {
    top: calc(80px + 2rem);
}

@media (max-width: 767px) {
    .position-sticky {
        position: relative !important;
    }

    .sticky-top {
        top: 0;
    }
}

.card-columns .card {
    margin-bottom: 1.5rem;
}

.ts-cards-same-height>div[class*='col'] {
    display: flex;
}

.ts-cards-same-height>div[class*='col'] .card {
    width: 100%;
}

.ts-card__flat {
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: none;
}

.ts-card__flat .card-footer {
    background-color: transparent;
    border: none;
}

.ts-card__image {}

.ts-card {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    border-radius: clamp(20px, 2vw, 20px);
    margin-bottom: 2rem;
    position: relative;
    overflow: hidden;
    transition: .3s ease;
    -webkit-transform: translateY(0);
    transform: translateY(0);
}

.ts-card:hover {
    box-shadow: 0 .3125rem 1.5625rem rgba(0, 0, 0, .25);
    color: inherit;
    -webkit-transform: translateY(-0.3125rem);
    transform: translateY(-0.3125rem);
}

.ts-card .card-body {
    position: relative;
}

.ts-card .card-img {
    border-top-left-radius: .1875rem;
    border-top-right-radius: .1875rem;
    display: block;
    height: 15rem;
    position: relative;
    z-index: 1;
}

.ts-card .card-footer {
    background-color: white;
    border-top: .0625rem solid rgba(0, 0, 0, .1);
    padding: .5rem 1rem;
}

.ts-card .card-link::before {
    content: "";
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 1;
}

.ts-card .card-footer__disclaimer {
    color: var(--dark-gray);
}

.ts-card .card-footer .ts-btn-arrow {
    color: var(--black);
    font-size: .6875rem;
    font-weight: 500;
    text-transform: uppercase;
}

.ts-card .card-footer .ts-btn-arrow:after {
    color: var(--secondary-color);
}

.ts-card .ts-item__info-badge {
    background-color: #fff;
    box-shadow: 0 .1875rem .9375rem rgba(0, 0, 0, .15);
    bottom: -0.75rem;
    border-radius: clamp(20px, 2vw, 20px);
    color: #191919;
    display: inline-block;
    left: 1.25rem;
    font-size: .75rem;
    font-weight: 500;
    position: absolute;
    padding: .25rem .5rem;
    z-index: 2;
}

.ts-items-carousel {
    padding-left: 1rem;
    padding-right: 1rem;
}

.ts-items-carousel .owl-stage-outer {
    padding-top: .5rem;
    padding-bottom: .5rem;
}

.ts-items-carousel .ts-item {
    margin-left: 1rem;
    margin-right: 1rem;
}

[class*="ts-gallery-carousel"] .ts-image {
    border-radius: clamp(20px, 2vw, 20px);
    display: block;
    width: 100%;
    height: 40vh;
    position: relative;
}

[class*="ts-gallery-carousel"] .ts-zoom {
    background-color: #fff;
    border-radius: clamp(20px, 2vw, 20px);
    bottom: 1rem;
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    display: inline-block;
    left: 1rem;
    padding: .5rem;
    position: absolute;
}

[class*="ts-gallery-carousel"] .ts-zoom i {
    margin-right: .5rem;
    opacity: .5;
}

[class*="ts-gallery-carousel"] .owl-stage-outer {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
}

.ts-gallery-carousel__multi .owl-stage-outer {
    box-shadow: none;
    padding-bottom: 1rem;
    padding-top: .75rem;
}

.ts-gallery-carousel__multi .slide {
    padding-right: .5rem;
    padding-left: .5rem;
}

.ts-gallery-carousel__multi .ts-image {
    box-shadow: 0 .1875rem .9375rem rgba(0, 0, 0, .15);
}

/*-------------------------------------------
  -- Circle
-------------------------------------------*/

.ts-circle__xs {
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-block;
    height: 3rem;
    flex: 0 0 3rem;
    overflow: hidden;
    text-align: center;
    line-height: 3rem;
    width: 3rem;
}

.ts-circle__sm {
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-block;
    height: 4.375rem;
    flex: 0 0 4.375rem;
    overflow: hidden;
    text-align: center;
    line-height: 4.375rem;
    width: 4.375rem;
}

.ts-circle__md {
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-block;
    height: 6.25rem;
    flex: 0 0 6.25rem;
    overflow: hidden;
    text-align: center;
    line-height: 6.25rem;
    width: 6.25rem;
}

.ts-circle__lg {
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-block;
    height: 8.125rem;
    flex: 0 0 8.125rem;
    overflow: hidden;
    text-align: center;
    line-height: 8.125rem;
    width: 8.125rem;
}

.ts-circle__xl {
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-block;
    height: 10rem;
    flex: 0 0 10rem;
    overflow: hidden;
    text-align: center;
    line-height: 10rem;
    width: 10rem;
}

.ts-circle__xxl {
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-block;
    height: 15.625rem;
    flex: 0 0 15.625rem;
    overflow: hidden;
    text-align: center;
    line-height: 15.625rem;
    width: 15.625rem;
}

.ts-circle {
    align-items: center;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-flex;
    justify-content: center;
    padding: 50%;
    position: relative;
    text-align: center;
    overflow: hidden;
}

.ts-circle>* {
    line-height: 0;
    position: absolute;
    width: 100%;
}

/* -- Collapse */

[data-toggle="collapse"] .ts-visible-on-collapsed {
    display: none;
}

[data-toggle="collapse"].collapsed .ts-visible-on-collapsed {
    display: inline-block;
}

[data-toggle="collapse"].collapsed .ts-visible-on-uncollapsed {
    display: none;
}

/* -- Description List */

.ts-description-lists dl {
    display: inline-block;
    font-weight: 400;
    font-family: 'Poppins', sans-serif;
}

.ts-description-lists dl:not(:last-of-type) {
    margin-right: 1.5rem;
}

.ts-description-lists dl dt {
    font-size: .8125rem;
    opacity: .6;
    margin-bottom: .25rem;
}

.ts-description-lists dl dd {
    font-size: .875rem;
}

.ts-description-list__line dt {
    font-weight: 400;
}

.ts-description-list__line dd {
    font-weight: 700;
}

/* -- Details */
.row .col-md-half {
    -ms-flex: 0 0 48%;
    flex: 0 0 48%;
    max-width: 48%;
}

@media (max-width: 575px) {
    .column-reverse-sm {
        -ms-flex-direction: column-reverse;
        flex-direction: column-reverse;
    }
}

@media (max-width: 991px) {
    .row .col-md-half {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }

}

/* -- Dropdown */
.dropdown {
    border: 1px solid #E0E0E0;
    padding: 24px;
    border-radius: clamp(20px, 2vw, 20px);
}

.dropdown-menu {
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: 0 .3125rem 1.5625rem rgba(0, 0, 0, .25);
    font-size: .875rem;
    margin-top: .25rem;
}

.dropdown-menu .dropdown-item {
    padding-left: 1rem;
    padding-right: 1rem;
}

/* -- FAQ */

.faq-container {
    max-width: 700px;
    margin: auto;
}

/* Tabs */
.faq-container input[type="radio"] {
    display: none;
}

.faq-tabs {
    display: flex;
    justify-content: space-between;
    margin-bottom: 2rem;
    gap: 1rem;
    flex-wrap: wrap;
}

.faq-tabs label {
    cursor: pointer;
    padding: 0.5rem 1rem;
    border-radius: clamp(20px, 2vw, 20px);
    transition: background 0.3s;
    flex: 1 1 auto;
    text-align: center;
}

.faq-tabs label:hover {
    background: #ddd;
}

.faq-content {
    overflow: hidden;
}

/* Categorías ocultas */
.faq-content .faq-category {
    display: none;
    opacity: 0;
    transition: opacity 0.4s ease;
    font-family: "Poppins", sans-serif;
}

#stay:checked~.faq-content #content-stay,
#booking:checked~.faq-content #content-booking,
#access:checked~.faq-content #content-access,
#support:checked~.faq-content #content-support {
    display: block;
    opacity: 1;
}

input[type="radio"]#stay:checked~.secondary-nav label[for="stay"],
input[type="radio"]#booking:checked~.secondary-nav label[for="booking"],
input[type="radio"]#access:checked~.secondary-nav label[for="access"],
input[type="radio"]#support:checked~.secondary-nav label[for="support"] {
    color: var(--black);
    font-weight: 600;
}

/* Acordeón con checkbox */
.faq-accordion input[type="checkbox"] {
    display: none;
}

.faq-item:not(:last-child) {
    border-bottom: 1px solid #ddd;
}

.faq-item label {
    margin: 0;
    font-weight: 400;
}

.faq-item .faq-question {
    display: block;
    cursor: pointer;
    transition: background 0.3s;
    font-weight: 400;
    font-size: 15px;
    padding: 1em;
}


.faq-item .faq-question i {
    display: inline-flex;
    align-items: center;
    transition: all .2s ease-in-out;
    transform-origin: center;
}

.faq-question:hover {
    background: #f0f0f0;
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    padding: 0 1em;
    transition: all 0.4s ease;
    background: #F6F6F6;
}

.faq-answer p {
    margin: 0;
    color: #26282A;
}

input[type="checkbox"]:checked+.faq-question {
    font-weight: 600;
    background: #F6F6F6;
}

input[type="checkbox"]:checked+.faq-question i {
    transform: rotate(180deg);
}

/* Mostrar si está checkeado */
input[type="checkbox"]:checked+.faq-question+.faq-answer {
    max-height: 300px;
    opacity: 1;
    padding: 1rem;
    padding-top: 0;
}

.ts-faq {
    border-bottom: .0625rem solid rgba(25, 25, 25, .1);
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    padding-top: .75rem;
    margin-left: 4rem;
    position: relative;
}

.ts-faq:before {
    background-color: #191919;
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    content: "";
    left: -4rem;
    padding: 1.25rem;
    position: absolute;
    top: 0;
}

.ts-faq:after {
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    content: "\f128";
    color: #fff;
    position: absolute;
    z-index: 1;
    top: .5rem;
    left: -3rem;
}

.ts-feature {
    margin-bottom: 2rem;
}

.ts-feature .ts-feature__icon {
    position: relative;
    margin-bottom: 1.5rem;
}

.ts-feature .ts-feature__icon .ts-circle {
    background-color: #3FB9A4;
    bottom: 0;
    color: #fff;
    left: 0;
    padding: 1rem;
    position: absolute;
}

.ts-feature h4 {
    margin-bottom: 1rem;
}

.ts-feature-box {
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: 0 .1875rem .9375rem rgba(0, 0, 0, .15);
    color: #fff;
    display: block;
    text-align: center;
    margin-bottom: 2rem;
    padding-bottom: 5rem;
    padding-top: 5rem;
    position: relative;
    overflow: hidden;
}

.ts-feature-box:hover {
    color: #fff;
}

.ts-feature-box h3 {
    font-weight: normal;
    margin-bottom: .5rem;
}

.ts-feature-box h5 {
    font-weight: normal;
    opacity: .5;
    margin-bottom: 2rem;
}

.ts-feature-box .ts-background {
    background-color: #191919;
}

.ts-feature-box .ts-background .ts-background-image {
    opacity: .4;
}

/*-------------------------------------------
  -- Forms
-------------------------------------------*/

form,
.ts-form {
    position: relative;
}

form.ts-labels-inside-input .form-group,
.ts-form.ts-labels-inside-input .form-group {
    position: relative;
}

form.ts-labels-inside-input .form-group label,
.ts-form.ts-labels-inside-input .form-group label {
    line-height: 2.625rem;
    left: .8125rem;
    opacity: .4;
    pointer-events: none;
    position: absolute;
    top: 0;
    transition: .3s ease;
}

form.ts-labels-inside-input .form-group label.focused,
.ts-form.ts-labels-inside-input .form-group label.focused {
    top: -2.1875rem;
    left: 0;
    font-size: .75rem;
    opacity: 1;
}

form .ts-form-advanced-search,
.ts-form .ts-form-advanced-search {
    box-shadow: 0 .1875rem .9375rem rgba(0, 0, 0, .15);
    background-color: #3FB9A4;
    bottom: 0;
    color: #fff;
    left: 1rem;
    font-size: .75rem;
    position: absolute;
    padding: 1rem;
    -webkit-transform: translateY(50%);
    transform: translateY(50%);
}

.ts-form__map-search {
    max-height: 100%;
    overflow-y: auto;
    padding: 1rem;
    position: absolute;
    width: 100%;
    z-index: 1;
}

.ts-form__map-search .ts-form {
    background-color: rgba(255, 255, 255, .95);
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: 0 .1875rem .9375rem rgba(0, 0, 0, .15);
    padding: 1rem;
}

.ts-form__map-horizontal {
    height: auto;
    bottom: 0;
    margin: 1rem 0;
    position: relative;
    z-index: 1;
    width: 100%;
}

.ts-form__map-horizontal>.container {}

.form-control,
.custom-select {
    border-width: .0625rem;
    border-color: rgba(0, 0, 0, .1);
    font-size: .9375rem;
    border-radius: clamp(20px, 2vw, 20px);
    padding: .5rem .75rem;
    transition: .3s ease;
    min-height: 2.5rem;
}

.form-control:hover,
.custom-select:hover {
    border-color: rgba(0, 0, 0, .2);
}

.form-control:focus,
.custom-select:focus {
    box-shadow: none;
    border-color: #9e9e9e;
}

.form-group,
.input-group {
    margin-bottom: 1.5rem;
}

.input-group label {
    width: 100%;
}

.input-group .form-control:focus~.input-group-append .input-group-text {
    border-color: #9e9e9e;
}

.input-group-append {
    margin-left: 0;
}

.input-group-append .input-group-text {
    border-color: rgba(25, 25, 25, .15);
    color: rgba(25, 25, 25, .3);
    transition: .3s ease;
    font-size: .875rem;
}

label:not(.custom-control-label) {
    font-size: .875rem;
    margin-bottom: 0;
}

.custom-checkbox {
    padding-left: 2rem;
}

.custom-checkbox .custom-control-label {
    color: rgba(0, 0, 0, .5);
    transition: .3s ease;
}

.custom-checkbox .custom-control-label:hover {
    cursor: pointer;
}

.custom-checkbox .custom-control-label:after {
    top: .125rem;
    left: -1.8125rem;
}

.custom-checkbox .custom-control-label:before {
    background-color: #fff;
    border: .0625rem solid rgba(0, 0, 0, .15);
    border-radius: clamp(20px, 2vw, 20px);
    height: 1.25rem;
    left: -2rem;
    top: 0;
    width: 1.25rem;
    transition: .3s ease;
}

.custom-checkbox .custom-control-input:checked~.custom-control-label {
    color: inherit;
}

.custom-checkbox .custom-control-input:checked~.custom-control-label:before {
    background-color: #3FB9A4;
    border-color: #3FB9A4;
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
}

.custom-checkbox .custom-control-input:focus~.custom-control-label::before {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
}

.custom-checkbox .custom-control-input:active~.custom-control-label::before {
    background-color: rgba(0, 0, 0, .1);
}

.custom-select {
    cursor: pointer;
    padding: .5625rem 1.5rem .5625rem .75rem;
    height: auto;
    color: rgba(0, 0, 0, .5);
}

.custom-select.ts-selected {
    color: inherit;
}

.custom-checkbox {
    margin-bottom: .5rem;
}

select [value=""] {
    color: rgba(0, 0, 0, .5);
}

.ts-icons-checkboxes {
    display: flex;
    justify-content: space-between;
    overflow-x: auto;
    padding: 1rem .25rem;
}

.ts-icons-checkboxes .ts-icon-checkbox {
    margin-right: 1.5rem;
    padding-left: 0;
    width: 100%;
}

.ts-icons-checkboxes .ts-icon-checkbox:last-child {
    margin-right: 0;
}

.ts-icons-checkboxes .ts-icon-checkbox i {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    position: absolute;
    top: .5rem;
    right: .5rem;
    font-size: 1.5rem;
    color: #191919;
    -webkit-transform: scale(0) rotate(0deg);
    transform: scale(0) rotate(0deg);
    transition: .3s ease;
}

.ts-icons-checkboxes .ts-icon-checkbox .form-check-input {
    visibility: hidden;
    position: absolute;
}

.ts-icons-checkboxes .ts-icon-checkbox .form-check-input:checked~.form-check-label {
    box-shadow: 0 .25rem .3125rem rgba(0, 0, 0, .2);
    -webkit-transform: translateY(-0.125rem);
    transform: translateY(-0.125rem);
    opacity: 1;
}

.ts-icons-checkboxes .ts-icon-checkbox .form-check-input:checked~.form-check-label img {
    opacity: 1;
}

.ts-icons-checkboxes .ts-icon-checkbox .form-check-input:checked~.form-check-label i {
    -webkit-transform: scale(1) rotate(90.002deg);
    transform: scale(1) rotate(90.002deg);
}

.ts-icons-checkboxes .ts-icon-checkbox .form-check-label {
    cursor: pointer;
    font-weight: normal;
    margin-bottom: 0;
    min-width: 6rem;
    padding: 0;
    opacity: .3;
    -webkit-transform: translateY(0);
    transform: translateY(0);
    transition: .3s ease;
    text-align: center;
    width: 100%;
}

.ts-icons-checkboxes .ts-icon-checkbox .form-check-label .ts-icon-checkbox-image {
    display: flex;
    justify-content: center;
    height: 7rem;
    opacity: .7;
    transition: .3s ease;
}

.ts-icons-checkboxes .ts-icon-checkbox .form-check-label .ts-icon-checkbox-text {
    background-color: #f8f8f8;
    border-top: .0625rem solid rgba(0, 0, 0, .1);
    display: block;
    padding: .5rem 1rem;
    position: relative;
}

.ts-icons-checkboxes .ts-icon-checkbox .form-check-label .ts-icon-checkbox-text:after {
    border-color: #f8f8f8 transparent transparent transparent;
    border-style: solid;
    border-width: .25rem .25rem 0 .25rem;
    bottom: -0.25rem;
    content: "";
    height: 0;
    left: 0;
    margin: auto;
    position: absolute;
    right: 0;
    width: 0;
}

.ts-icons-select {
    display: flex;
    padding: 1.75rem .5rem;
    overflow-x: auto;
}

.ts-icons-select a {
    align-items: center;
    border: .0625rem solid rgba(25, 25, 25, .1);
    border-radius: clamp(20px, 2vw, 20px);
    display: flex;
    min-width: 14rem;
    padding: 1.5rem 1rem 1.5rem 2rem;
    position: relative;
    margin-left: .75rem;
    margin-right: .75rem;
    width: 100%;
}

.ts-icons-select a:hover {
    color: inherit;
    background-color: rgba(255, 255, 255, .4);
}

.ts-icons-select a aside {
    background-color: #fff;
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: 0 .1875rem .9375rem rgba(0, 0, 0, .15);
    bottom: 0;
    margin: auto;
    height: 2rem;
    font-size: .75rem;
    line-height: 2rem;
    text-align: center;
    left: -0.5rem;
    width: 2rem;
    position: absolute;
    top: 0;
}

.ts-icons-select a img {
    margin-right: 1rem;
    opacity: .3;
}

.ts-icons-select a figure {
    margin-bottom: 0;
}

.ts-icons-select a h6 {
    margin-bottom: 0;
}

.ts-icons-select a small {
    opacity: .5;
    font-size: .6875rem;
    text-transform: uppercase;
}

.ts-icons-select.ts-icons-select__dark {
    background-color: #181818;
}

.ts-icons-select.ts-icons-select__dark a {
    color: #fff;
    border-color: rgba(255, 255, 255, .2);
}

.ts-icons-select.ts-icons-select__dark a:hover {
    background-color: rgba(255, 255, 255, .1);
}

.ts-icons-select.ts-icons-select__dark a aside {
    color: #191919;
}

.ts-borderless-inputs .form-control,
.ts-borderless-inputs .custom-select,
.ts-borderless-inputs .input-group-append .input-group-text {
    border: none;
}

/* -- Footer */

#ts-footer {
    background-color: #173156;
    box-shadow: none;
    color: #fff;
}

#ts-footer address {
    line-height: 1.6rem;
    color: rgba(255,255,255,0.78);
    font-style: normal;
}

#ts-footer h4 {
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 18px;
}

#ts-footer #ts-footer-main {
    padding-bottom: 4rem;
    padding-top: 4rem;
}

#ts-footer #ts-footer-main nav {
    opacity: 1;
}

#ts-footer #ts-footer-main nav .nav-link {
    padding-left: 0;
    color: rgba(255,255,255,0.78);
    font-size: 0.875rem;
    padding-top: 4px;
    padding-bottom: 4px;
    transition: color 0.2s;
}

#ts-footer #ts-footer-main nav .nav-link:hover {
    color: #3FB9A4;
}

#ts-footer #ts-footer-secondary {
    border-top: 1px solid rgba(255,255,255,0.1);
    font-size: .8125rem;
    padding-bottom: 1rem;
    padding-top: 1rem;
    color: rgba(255,255,255,0.78);
}

#ts-footer #ts-footer-secondary .container {
    justify-content: space-between;
    align-items: center;
}

#ts-footer #ts-footer-secondary .ts-footer-nav .nav-link {
    color: rgba(255,255,255,0.78);
    font-size: 1rem;
    transition: color 0.2s;
}

#ts-footer #ts-footer-secondary .ts-footer-nav .nav-link:hover {
    color: #3FB9A4;
}

#ts-footer .brand {
    display: inline-block;
    margin-bottom: 1.875rem;
}

/* Footer logo — invert to white on dark bg */
.footer-brand img {
    filter: brightness(0) invert(1);
}

.footer-brand {
    display: inline-block;
    margin-bottom: 14px;
}

.footer-chip {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    color: rgba(255,255,255,0.78);
    border: 1.5px solid rgba(255,255,255,0.4);
    border-radius: 50px;
    padding: 5px 16px;
    margin-bottom: 14px;
}

.footer-desc {
    font-size: 0.84rem;
    color: rgba(255,255,255,0.78);
    line-height: 1.7;
    margin-bottom: 0;
}

.footer-contact-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.875rem;
    color: rgba(255,255,255,0.78);
}

.footer-contact-item a {
    color: rgba(255,255,255,0.78);
    transition: color 0.2s;
    text-decoration: none;
}

.footer-contact-item a:hover {
    color: #3FB9A4;
    text-decoration: none;
}

.footer-contact-item i {
    font-size: 1rem;
    color: #3FB9A4;
    width: 18px;
    text-align: center;
}

/* Address link */
#ts-footer address a {
    color: rgba(255,255,255,0.78);
    transition: color 0.2s;
    text-decoration: none;
    display: inline-block;
}

#ts-footer address a:hover {
    color: #3FB9A4;
    text-decoration: none;
}

/*-------------------------------------------
  -- HR
-------------------------------------------*/

.ts-hr-light {
    border-top-color: rgba(255, 255, 255, .2);
}

/*-------------------------------------------
  -- Inputs
-------------------------------------------*/

.ts-inputs__transparent input,
.ts-inputs__transparent textarea {
    background-color: transparent;
    color: #fff;
}

.ts-inputs__transparent input:active,
.ts-inputs__transparent input:focus,
.ts-inputs__transparent textarea:active,
.ts-inputs__transparent textarea:focus {
    background-color: transparent;
    color: #fff;
}

/* -- Item */

.ts-item.ts-item__lg .card-img {
    height: 17rem;
}

.ts-item__badges {
    top: 15px;
    left: 15px;
    position: absolute;
    z-index: 10;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
}

.ts-item__badges .badge {
    border-radius: clamp(20px, 2vw, 20px);
    margin-bottom: 0.5rem;
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 12px;
}

.ts-item.ts-item__lg .card-img h4 {
    font-size: 1.25rem;
}

.ts-item.ts-item__lg .card-body {}

.ts-item.ts-item__lg .ts-description-lists dt {
    font-size: 13px;
    font-weight: 400;
}

.ts-item.ts-item__lg .ts-description-lists dd {
    font-size: .875rem;
    margin-bottom: 0;
}

.ts-item.ts-item__lg .ts-item__info-badge {
    font-size: 1rem;
    font-weight: 600;
}

.ts-item .card-img:before {
    /*Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#000000+0,000000+100&0+0,1+100*/

    /*FF3.6-15*/

    /*Chrome10-25,Safari5.1-6*/
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
    /*W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+*/
    bottom: 0;
    content: "";
    height: 50%;
    left: 0;
    position: absolute;
    width: 100%;
}

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

.ts-item .ts-item__info {
    bottom: .5rem;
    border-top-left-radius: .25rem;
    border-top-right-radius: .25rem;
    color: #fff;
    margin-bottom: 0;
    bottom: 0;
    left: 0;
    position: absolute;
    overflow: hidden;
    transition: .3s ease;
    z-index: 1;
    padding: 1.2rem;
}

.ts-item .ts-item__info h4 {
    margin-bottom: 0;
    transition-delay: .2s;
}

.ts-item .ts-item__info aside {
    font-size: .8125rem;
    transition-delay: .1s;
}

.ts-item .card-body {
    background-color: #fff;
    padding: 1rem 1.2rem;
}

.ts-item .ts-description-lists dl {
    margin-bottom: 0;
}

.ts-item .ts-description-lists dl:not(:last-of-type) {
    margin-right: 1.2rem;
}

.ts-item .ts-description-lists dt {
    font-size: .75rem;
}

.ts-item .ts-description-lists dd {
    font-size: .8125rem;
}

.ts-compare-items-table {
    display: block;
    overflow-x: auto;
    padding-top: 1.5rem;
    width: 100%;
}

.ts-compare-items-table .row {
    margin: 0;
    flex-wrap: nowrap;
}

.ts-compare-items-table .row:last-child {
    border: none;
}

.ts-compare-items-table .row:last-child .col {
    border: none;
}

.ts-compare-items-table .row .col {
    border-bottom: .0625rem solid rgba(0, 0, 0, .1);
    padding-top: .5rem;
    padding-bottom: .1rem;
    min-width: 14rem;
}

.ts-compare-items-table .row .col:first-child {
    padding-left: 0;
}

.ts-compare-items-table .row .col:last-child {
    padding-right: 0;
}

.ts-compare-items-table .row .col:not(.ts-row-title) {
    text-align: center;
}

.ts-compare-items-table .card {
    height: 14rem;
}

.ts-compare-items-table .card .card-img:after {
    display: none;
}

.ts-compare-items-table h3 {
    margin-bottom: 2rem;
}

.ts-compare-items-table .ts-row-title {
    font-weight: bold;
}

.ts-compare-items-table .ts-row-title i {
    opacity: .5;
    margin-right: .5rem;
}

.ts-compare-items-table .ts-available:after,
.ts-compare-items-table .ts-not-available:after {
    font-family: "Font Awesome\ 5 Free";
    font-weight: 900;
    font-style: normal;
}

.ts-compare-items-table .ts-available:after {
    color: #3FB9A4;
    content: "\f00c";
}

.ts-compare-items-table .ts-not-available:after {
    content: "\f00d";
    opacity: .3;
}

@-moz-document url-prefix() {
    .ts-item {
        transform: rotate(.002deg);
        transform-style: preserve-3d;
    }
}

.ts-item__list {
    width: 100%;
}

.ts-item__list .ts-item__info {
    bottom: inherit;
    top: -5rem;
    padding: 0;
}

.ts-item__list .ts-item__info-badge {
    bottom: inherit;
    top: -1rem;
}

.ts-item__company .card-img {
    align-items: center;
    background-color: #fff;
    display: flex;
    justify-content: center;
}

.ts-item__company .card-img:before,
.ts-item__company .card-img:after {
    display: none;
}

.ts-item__company .card-body {
    background-color: #f6f6f6;
    padding-bottom: 0;
}

.ts-item__company .card-footer {
    border: none;
}

.ts-item__company .ts-item__info {
    position: relative;
    color: inherit;
    margin-bottom: 1rem;
    top: inherit;
}

.ts-item__company .ts-description-list1,
.ts-item__company .ts-company-info {
    background-color: #fff;
    padding: 1rem 1rem .5rem 1rem;
    border-radius: clamp(20px, 2vw, 20px);
    justify-content: space-between;
    font-size: .875rem;
}

.ts-item__company .ts-description-list1 .ts-company-contact i,
.ts-item__company .ts-company-info .ts-company-contact i {
    margin-right: 1rem;
    opacity: .5;
}

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

ul {
    line-height: 2.625rem;
}

ul.ts-list-colored-bullets {
    list-style: none;
    padding-left: 0;
}

ul.ts-list-colored-bullets li:before {
    text-shadow: 0 0 .5rem rgba(0, 0, 255, .8);
    content: "•";
    color: #3FB9A4;
    vertical-align: middle;
    font-size: 1.75rem;
    padding-right: .75rem;
}

ul.ts-list-divided {
    list-style: none;
    padding-left: 0;
}

ul.ts-list-divided li {
    border-bottom: .0625rem solid rgba(0, 0, 0, .1);
    padding-bottom: .3125rem;
    padding-top: .3125rem;
}

ul.ts-list-divided li:last-child {
    border-bottom: none;
}

ul.ts-list-check-marks {
    list-style: none;
    padding-left: 0;
}

ul.ts-list-check-marks li {
    position: relative;
    padding-left: 1.5rem;
    color: rgba(0, 0, 0, .5);
}

ul.ts-list-check-marks .ts-checked {
    color: #191919;
}

ul.ts-list-check-marks .ts-checked:before {
    color: #3FB9A4;
    content: "\f00c";
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    left: 0;
    position: absolute;
}

ul.ts-list-icons {
    list-style: none;
    padding-left: 0;
}

.bills-list {
    display: flex;
    margin-bottom: 0;
    justify-content: center;
}


ul.ts-list-icons li {
    margin-bottom: 15px;
    line-height: 1.5em;
}

ul.ts-list-icons.bills-list li {
    margin-bottom: 0;
}

ul.ts-list-icons i {
    margin-right: .5rem;
}

/* -- Main Content */

@media (max-width: 768px) {
    #ts-main.padding-top-mobile {
        padding-top: 70px;
    }

    .padding-bottom-mobile {
        padding-bottom: 82px;
    }
}

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

.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: #3FB9A4;
    box-shadow: inset 0 0 0 .375rem rgba(255, 255, 255, .3),
        0 .1875rem .9375rem rgba(0, 0, 0, .15);
    border-radius: clamp(20px, 2vw, 20px);
    color: #fff !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 !important;
    border: none !important;
}

.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);
}

.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: "";
    left: 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: clamp(20px, 2vw, 20px);
    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: #3FB9A4;
    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: #3FB9A4;
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    border-radius: clamp(20px, 2vw, 20px);
    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: clamp(20px, 2vw, 20px);
    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-infobox__wrapper {
    align-items: flex-end;
    color: #fff;
    display: flex;
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: 0 .5rem 4rem rgba(0, 0, 0, .5);
    height: 14rem;
    overflow: hidden;
    width: 15rem;
    padding: .75rem;
    position: relative;
    z-index: 1;
}

.ts-infobox .ts-infobox__wrapper:before {
    height: 70%;
    z-index: 1;
}

.ts-infobox .ts-close {
    position: absolute;
    right: -1rem;
    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: .7;
}

.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: #3FB9A4;
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    border-radius: clamp(20px, 2vw, 20px);
    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;
}

.ts-description-lists dl:not(:last-of-type) {
    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%;*/
}

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

#ts-hero {
    display: flex;
    position: relative;
    overflow: hidden;

    &.overflow-visible {
        overflow: visible;
    }
}

#ts-hero .ts-background-image {
    background-position: top center;
}

#ts-hero .slide,
#ts-hero .ts-image {
    height: 100%;
}

.ts-hero--container {
    bottom: 0;
    padding-bottom: 5em;
    position: absolute;
}

.ts-hero--overlay::before {
    content: "";
    top: 0;
    bottom: 0;
    width: 100%;
    position: absolute;
    background: #0d0d0d;
    background: linear-gradient(0deg, rgba(13, 13, 13, 1) 0%, rgba(0, 0, 0, 0.75) 0%, rgba(255, 255, 255, 0) 100%);
}

.ts-homepage h1.ts-hero--title {
    font-size: 48px;

    svg {
        height: 42px;
    }

    @media (max-width: 990px) {
        font-size: 36px;

        span {
            display: block;
        }
    }
}

.heart {
    animation: heartbeat 2s infinite;
    transform-origin: center;
}

@keyframes heartbeat {

    0%,
    100% {
        transform: scale(1);
    }

    14% {
        transform: scale(1.2);
    }

    28% {
        transform: scale(1);
    }

    42% {
        transform: scale(1.1);
    }

    70% {
        transform: scale(1);
    }
}

/* Hero slider height */

.ts-hero-slider .owl-carousel,
.ts-hero-slider .ts-slide {
    height: 100%;
}

.ts-hero-slider .owl-carousel {
    opacity: 0;
    transition: 1s ease;
}

.ts-hero-slider .owl-carousel.owl-loaded {
    opacity: 1;
}

.ts-hero-slider .owl-item.active .ts-slide-description h3,
.ts-hero-slider .owl-item.active .ts-slide-description figure,
.ts-hero-slider .owl-item.active .ts-slide-description .ts-description-list,
.ts-hero-slider .owl-item.active .ts-slide-description .btn {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
}

.ts-hero-slider .ts-slide-description {
    background-color: rgba(0, 0, 0, .6);
    bottom: 0;
    color: #fff;
    position: absolute;
    padding-bottom: 2rem;
    padding-top: 2rem;
    width: 100%;
}

.ts-hero-slider .ts-slide-description h3 {
    margin-bottom: .25rem;
}

.ts-hero-slider .ts-slide-description h2 {
    margin-bottom: .75rem;
}

.ts-hero-slider .ts-slide-description h3,
.ts-hero-slider .ts-slide-description figure,
.ts-hero-slider .ts-slide-description .ts-description-list,
.ts-hero-slider .ts-slide-description .btn {
    opacity: 0;
    transition: .5s cubic-bezier(.03, .18, .05, 1.01);
    -webkit-transform: translateY(1rem);
    transform: translateY(1rem);
}

.ts-hero-slider .ts-slide-description figure {
    transition-delay: .1s;
}

.ts-hero-slider .ts-slide-description .ts-description-list {
    transition-delay: .2s;
}

.ts-hero-slider .ts-slide-description .btn {
    transition-delay: .3s;
}

.ts-hero-slider-control {
    height: 0;
    bottom: 2.5rem;
    position: absolute;
    z-index: 1;
    width: 100%;
}

.ts-hero-slider-control .container,
.ts-hero-slider-control .owl-nav {
    height: 0;
    text-align: right;
}

.ts-hero-slider-control .owl-prev,
.ts-hero-slider-control .owl-next {
    background-color: #fff;
    display: inline-block;
    padding: 1.25rem;
    opacity: .8;
    transition: .3s ease;
    position: relative;
}

.ts-hero-slider-control .owl-prev:hover,
.ts-hero-slider-control .owl-next:hover {
    opacity: 1;
    cursor: pointer;
}

.ts-hero-slider-control .owl-prev:after,
.ts-hero-slider-control .owl-next:after {
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    height: 1rem;
    width: .375rem;
    bottom: 0;
    left: 0;
    right: 0;
    top: 0;
    margin: auto;
    font-size: .75rem;
}

.ts-hero-slider-control .owl-prev:after {
    content: "\f053";
}

.ts-hero-slider-control .owl-next:after {
    content: "\f054";
}


#schedule-visit {
    background: url(../img/bg-visit_2x.webp) no-repeat center center;
    background-size: cover;

    h3 {
        font-size: 42px;
        line-height: 1;
        font-family: 'Poppins', sans-serif;

        @media(max-width: 768px) {
            font-size: 32px;
        }
    }

    @media (max-width:767px) {
        background-image: url(../img/bg-visit-mobile_1x.webp);
    }
}

.scroll-button {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    background-color: var(--secondary-color);
    color: white;
    font-size: 1rem;
    border: none;
    height: 45px;
    width: 84px;
    cursor: pointer;
    border-top-left-radius: 16px;
    border-top-right-radius: 16px;
    transition: opacity 0.4s, transform 0.4s, top 0.4s, bottom 0.4s;
    z-index: 0;
}

.scroll-button.hide {
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 50px);
}

.scroll-button.fixed-to-element {
    position: absolute;
    bottom: auto;
    top: 0;
}

/*-------------------------------------------
  -- Navbar
-------------------------------------------*/

#ts-header {
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
}

#ts-header:not(.fixed-top) {
    z-index: 3;
    position: relative;
}

#ts-header.ts-expanded {
    max-height: 100%;
    overflow-y: auto;
}

@media (min-width: 768px) {
    #ts-header.margin-4 .container {
        max-width: 100%;
        margin: 0 20px;
    }
}

.header--white {
    background-color: #fff;
}

.header--white svg {
    height: 32px;
}

/*1st level*/

ul.navbar-nav {
    margin-top: .5rem;
    align-items: center;
    width: 100%;
}

ul.navbar-nav .nav-item {
    position: relative;
    border-bottom: .0625rem solid rgba(25, 25, 25, .1);
    transition: .3s ease;
}

ul.navbar-nav .nav-item__price {
    color: var(--white);
    margin: 0;
    margin-right: 1em;
    font-size: 16px;
    display: inline-block;
    font-family: 'Poppins', sans-serif;
}

ul.navbar-nav .nav-item__price span {
    font-weight: 600;
}

ul.navbar-nav .nav-item__price span:not(#property-price4) {
    font-weight: 400;
    margin-left: 4px;
}

#reserveButton {
    margin-left: auto;
    display: none;
    transition: all .3s ease-in-out;
}

ul.navbar-nav .nav-item.ts-active {
    background-color: rgba(25, 25, 25, .08);
    border-radius: clamp(20px, 2vw, 20px);
}

ul.navbar-nav .nav-item:hover>ul.ts-child {
    opacity: 1;
    pointer-events: auto;
}

ul.navbar-nav .nav-link {
    color: rgba(25, 25, 25, .5);
}

ul.navbar-nav .nav-link:hover {
    color: rgba(25, 25, 25, .8);
}

ul.navbar-nav .nav-link.active {
    color: #191919;
}

ul.navbar-nav>.nav-item .nav-link {
    padding-left: .5rem;
    padding-bottom: 0;
    padding-top: 0;
}

ul.navbar-nav>.nav-item>.nav-link {
    margin-right: .5rem;
}

ul.navbar-nav>.nav-item>ul.ts-child>.nav-item:first-child>.nav-link {
    /* 2nd level up arrow on first item */
}

ul.navbar-nav>.nav-item>ul.ts-child>.nav-item:first-child>.nav-link:after {
    content: "";
    width: 0;
    height: 0;
    border-width: 0 .25rem .25rem .25rem;
    border-color: transparent transparent #fff transparent;
    position: absolute;
    top: -0.1875rem;
    left: 1rem;
    transition: .3s ease;
}

ul.navbar-nav>.nav-item>ul.ts-child>.nav-item:first-child>.nav-link:hover:after {
    border-color: transparent transparent #f3f3f3 transparent;
}

ul.navbar-nav .nav-item.ts-has-child:hover>.ts-child {
    height: auto;
}

/* 1st level arrow down */

ul.navbar-nav>.ts-has-child>.nav-link {
    padding-right: 1.25rem;
}

ul.navbar-nav>.ts-has-child>.nav-link:after {
    color: #191919;
    content: "\f0dd";
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    right: .75rem;
    top: -0.125rem;
}

ul.navbar-nav>.ts-active>.nav-link:after {
    content: "\f0d8";
}

ul.navbar-nav>.ts-active .ts-active:after {
    content: "\f0d8" !important;
}

/*2nd level*/

ul.navbar-nav ul.ts-child {
    border-radius: clamp(20px, 2vw, 20px);
    list-style: none;
    min-width: 13rem;
    padding-left: 0;
    height: 0;
    width: 100%;
    text-align: left;
    overflow: hidden;
    transition: .3s ease;
    pointer-events: none;
    z-index: 2;
}

ul.navbar-nav ul.ts-child .nav-item {
    border-bottom: .0625rem solid rgba(25, 25, 25, .1);
}

ul.navbar-nav ul.ts-child .nav-item:first-child {
    border-top: .0625rem solid rgba(25, 25, 25, .1);
}

ul.navbar-nav ul.ts-child .nav-item:last-child {
    border-bottom: none;
}

ul.navbar-nav ul.ts-child>.nav-item:hover>.nav-link {
    background-color: rgba(25, 25, 25, .05);
}

ul.navbar-nav ul.ts-child .nav-link {
    padding-left: 1rem;
    padding-right: 1rem;
}

ul.navbar-nav ul.ts-child .ts-has-child:after {
    color: rgba(25, 25, 25, .2);
    content: "\f0dd";
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    right: .75rem;
    top: -0.125rem;
}

/*3rd level*/

ul.navbar-nav ul.ts-child ul.ts-child {
    top: 0;
    left: 0;
    margin-left: 0;
}

ul.navbar-nav .nav-item:hover {
    background-color: rgba(25, 25, 25, .05);
}

.navbar-dark {
    color: #fff;
}

.navbar-dark #ts-primary-navigation {
    background-color: #171717;
}

.navbar-dark #ts-secondary-navigation {
    background-color: #000;
}

.navbar-dark #ts-secondary-navigation .form-control,
.navbar-dark #ts-secondary-navigation .custom-select {
    color: rgba(255, 255, 255, .5);
}

.navbar-light .navbar-nav .nav-link {
    color: #ffffff;
    font-weight: 400;
    /* Mantén el peso fijo */
    transition: transform 0.2s ease, color 0.2s ease;
}

.navbar-light .navbar-nav .nav-link:visited,
.navbar-light .navbar-nav .nav-link:active,
.navbar-light .navbar-nav .nav-link:focus {
    color: #ffffff;
}

.navbar-light .navbar-nav .nav-link:hover {
    color: #ffffff;
    transform: scale(1.08);
    /* Hace un sutil aumento sin cambiar el peso */
}


.navbar-dark .navbar-nav .nav-link.active {
    color: #fff;
}

.navbar-dark .navbar-nav .nav-item.ts-active {
    background-color: rgba(255, 255, 255, .08);
}

.navbar-dark .navbar-nav>.nav-item>ul.ts-child>.nav-item:first-child>.nav-link:hover:after {
    border-color: transparent transparent #000;
}

.navbar-dark .navbar-nav>.nav-item>ul.ts-child>.nav-item:first-child>.nav-link:after {
    border-color: transparent transparent #000;
}

.navbar-dark .navbar-nav>.ts-has-child>.nav-link:after {
    color: #fff;
}

.navbar-dark .navbar-nav ul.ts-child .ts-has-child:after {
    color: rgba(255, 255, 255, .6);
}

.navbar-dark [class*="border-"] {
    border-color: rgba(255, 255, 255, .2) !important;
}

.navbar-collapse.collapse.show {
    max-height: 75vh;
    overflow-y: auto;
}

#ts-primary-navigation {
    background-color: #173156;
    /* Valores para Nav nuevo logo*/
    font-size: .875rem;
    font-weight: 400;
    padding-bottom: 1rem;
    padding-top: 1rem;
    transition: .3s ease;
    z-index: 999;

    @media(min-width: 992px) {
        height: 74px;
    }
}

#ts-secondary-navigation {
    background-color: #f6f6f6;
    border-bottom: .0625rem solid rgba(0, 0, 0, .1);
    color: #9e9e9e;
    font-size: .75rem;
}

#ts-secondary-navigation a {
    color: #9e9e9e;
    display: inline-block;
}

#ts-secondary-navigation input {
    font-size: .75rem;
}

#ts-secondary-navigation .form-control,
#ts-secondary-navigation .custom-select {
    border: none;
    border-radius: clamp(20px, 2vw, 20px);
    color: rgba(0, 0, 0, .5);
    min-height: inherit;
}

/*-------------------------------------------
  -- Page
-------------------------------------------*/
body.ts-full-screen-page {
    position: fixed;
    width: 100%;
    height: 100%;
}

.ts-page-wrapper {
    overflow-x: hidden;

}

.ts-page-wrapper2 {
    overflow-x: hidden;
    padding-top: 100px;
    /* ajustar según el alto real del nav + banner */

}

#ts-main {
    position: relative;
}

#ts-main section:not(.ts-block) {
    margin-bottom: 2rem;
}

.overflow-visible {
    overflow: visible;

    @media (max-width: 768px) {
        overflow: hidden;
    }
}


/* -- Pagination */

.pagination {
    margin-top: 4rem;
}

.page-link {
    background-color: transparent;
    border: none;
    border-radius: clamp(20px, 2vw, 20px);
    color: #191919;
    margin: 0 .125rem;
    padding: .75rem 1rem;
    position: relative;
}

.page-link:hover {
    background-color: #fff;
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    color: #191919;
}

.page-link:after {
    border-style: solid;
    border-width: .5rem .5rem 0 0;
    border-color: transparent transparent transparent transparent;
    bottom: -0.4375rem;
    content: "";
    height: 0;
    left: 0;
    position: absolute;
    width: 0;
    transition: .3s ease;
}

.page-item:first-child .page-link,
.page-item:last-child .page-link {
    border-radius: clamp(20px, 2vw, 20px);
}

.page-item.active .page-link {
    background-color: #3FB9A4;
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
}

.page-item.active .page-link:after {
    border-color: #3FB9A4 transparent transparent transparent;
}

/*-------------------------------------------
  -- Partners
-------------------------------------------*/

.ts-partners a {
    display: block;
    padding: .625rem .3125rem;
}

/* -- person */

.ts-person .card-body {
    padding: 0;
}

.ts-person .card-body .ts-item__info {
    padding: 1.5rem;
    background-color: #f6f6f6;
}

.ts-person .card-body dl {
    padding: .5rem 1.5rem;
}

.ts-person .card-body dl dt {
    text-transform: uppercase;
    font-size: .6875rem;
}

.ts-person .card-body dl dd {
    color: rgba(0, 0, 0, .5);
}

.ts-person .card-body dl dd a {
    color: rgba(0, 0, 0, .5);
}

.ts-person .card-body h4 {
    font-weight: 500;
    margin-bottom: .25rem;
}

.ts-person .card-body aside {
    color: rgba(0, 0, 0, .5);
    font-size: .8125rem;
}

.ts-person .card-footer {
    background-color: transparent;
}

/*-------------------------------------------
  -- Price Box
-------------------------------------------*/

.ts-price-box h5 {
    margin-bottom: 0;
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.ts-price-box h3 {
    font-size: 2.25rem;
    margin-bottom: 0;
}

.ts-price-box .ts-title {
    margin-bottom: 0;
    padding-top: 3rem;
    padding-bottom: 3rem;
}

.ts-price-box .card-header {
    padding: 0;
}

.ts-price-box .card-footer {
    padding: 0 0 1.5rem 0;
}

.ts-price-box__promoted {
    box-shadow: 0 .3125rem 1.5625rem rgba(0, 0, 0, .25);
    margin-top: -1.25rem;
    margin-bottom: .625rem;
    z-index: 2;
}

.ts-price-box__promoted .ts-title {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
}

/* -- Result */

#ts-results {
    height: 100%;
    position: relative;
}

.ts-results-wrapper {
    height: 100%;
    position: absolute;
    width: 100%;
}

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

.ts-results__vertical {
    position: relative;
    height: 100% !important;
}

.ts-results__vertical>.scroll-content {
    overflow-x: hidden !important;
}

.scrollbar-inner:hover>.scroll-element {
    opacity: 1;
}

.scrollbar-inner>.scroll-element {
    opacity: 0;
    transition: .3s ease;
}

.scrollbar-inner>.scroll-element.scroll-y {
    height: calc(100% - 1rem);
    top: .5rem;
    width: .25rem;
    right: .375rem;
}

.scrolling-section {
    scroll-margin-top: 100px;
}

.secondary-nav {
    position: relative;
    overflow: hidden;
    margin-bottom: 1em;
    padding: 0 !important;
}

.secondary-nav-container.fixed {
    position: fixed;
    top: 70px;
    left: 0;
    right: 0;
    z-index: 999;
    transform: translateY(0);
    transition: .3s ease-in-out;
}

@media (min-width: 1200px) {
    .secondary-nav-container.fixed {
        top: 74px;
    }

    .secondary-nav-container.fixed .secondary-nav__list {
        width: 98.7%;
    }
}

@media (max-width: 991px) {
    .secondary-nav-container.fixed {
        top: 68px;
    }
}

.secondary-nav.gray {
    background-color: #f6f6f6;
}

.secondary-nav__scroll-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
}

.secondary-nav__list {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    white-space: nowrap;
    gap: 1.5rem;
    position: relative;
    border-bottom: 2px solid rgba(0, 0, 0, .05);
}


.secondary-nav__list::before {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    height: 3px;
    width: var(--widthJS, 0);
    background: black;
    transform: translateX(var(--transformJS, 0));
    transition: all 0.3s ease;
}

.secondary-nav__list__item {
    flex: 0 0 auto;
    font-family: "Poppins", sans-serif;
}

.secondary-nav__list__item a.active {
    color: var(--black);
    font-weight: 600;
}

.secondary-nav__list__item:last-of-type {
    padding-right: 2em;
}

.secondary-nav__list__item>* {
    color: #6A6F78;
    text-decoration: none;
    transition: all .2s ease-in-out;
    display: inline-block;
    cursor: pointer;
}

.secondary-nav__list__item>*:hover {
    color: #191919;
}

.secondary-nav__arrow {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(to right, transparent, #f6f6f6 100%);
    pointer-events: none;
    /* que no tape el scroll con el dedo */
    font-size: 1.2rem;
    color: #999;
}


/* ====================================================================================================================
  GRID Results
 */

.ts-results__grid.scroll-wrapper {
    position: absolute !important;
    -webkit-transform: translateX(calc(100% - 3rem));
    transform: translateX(calc(100% - 3rem));
    transition: .4s transform ease;
}

.ts-results__grid.scroll-wrapper .scrollbar-inner {
    padding-right: 4rem;
}

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

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

.ts-results__grid .ts-results-wrapper {
    padding: 1rem;
}

.ts-results__grid .ts-form__grid {
    padding: 1rem;
}

.ts-results__grid .ts-sly-frame {
    position: absolute;
    padding: 1rem;
    width: 100%;
    height: 100%;
}

.ts-results__grid .ts-result-link {
    display: inline-block;
    margin: 1rem;
    width: calc(100% - 24px);
}

.ts-results__grid .ts-item__info-badge {
    top: -0.875rem;
    bottom: inherit;
}

.ts-results__grid .ts-item__info {
    bottom: inherit;
    left: 0;
    top: 0;
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
}

.ts-results__grid .card-img {
    background-size: cover;
}

/* ====================================================================================================================
  HORIZONTAL Results
 */

.ts-results__horizontal {
    min-height: 9rem;
    width: 100%;
    white-space: nowrap;
}

.ts-results__horizontal .scroll-element.scroll-x {
    bottom: .5rem;
    height: .375rem;
    left: .5rem;
    width: calc(100% - 1rem);
}

.ts-results__horizontal .ts-results-wrapper {
    padding-top: 1rem;
}

.ts-results__horizontal .ts-result-link {
    display: inline-flex;
}

/* ====================================================================================================================
  Horizontal Results in Map
 */

.ts-map .ts-results__horizontal {
    bottom: 7.5rem;
    left: 0;
    height: 0;
    position: absolute;
    z-index: 1;
}

/* ====================================================================================================================
  HORIZONTAL Results Elements
 */

.ts-results__horizontal .ts-result,
.ts-results__vertical-list .ts-result {
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-flex;
    flex-direction: row;
    white-space: normal;
    margin: .25rem;
    width: 19rem;
    height: 6rem;
}

.ts-results__horizontal .ts-result h4,
.ts-results__vertical-list .ts-result h4 {
    font-size: 1rem;
    margin-bottom: .25rem;
    line-height: 1.375rem;
}

.ts-results__horizontal .ts-result aside,
.ts-results__vertical-list .ts-result aside {
    opacity: .5;
    font-size: .75rem;
}

.ts-results__horizontal .ts-result .card-body,
.ts-results__vertical-list .ts-result .card-body {
    background-color: transparent;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1.125rem 1rem;
}

.ts-results__horizontal .ts-result .card-img,
.ts-results__vertical-list .ts-result .card-img {
    border-radius: clamp(20px, 2vw, 20px);
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    background-size: cover;
    height: 100%;
    float: left;
    position: relative;
    width: 4rem;
    z-index: 1;
}

.ts-results__horizontal .ts-result .card-img:before,
.ts-results__horizontal .ts-result .card-img:after,
.ts-results__vertical-list .ts-result .card-img:before,
.ts-results__vertical-list .ts-result .card-img:after {
    display: none;
}

.ts-results__horizontal .ts-result .card-footer,
.ts-results__vertical-list .ts-result .card-footer {
    display: none;
}

.ts-results__horizontal .ts-result .ts-item__info-badge,
.ts-results__vertical-list .ts-result .ts-item__info-badge {
    background-color: rgb(0, 0, 179);
    bottom: inherit;
    color: #fff;
    top: -0.75rem;
    left: 1rem;
}

.ts-results__horizontal .ts-result .ts-item__info,
.ts-results__vertical-list .ts-result .ts-item__info {
    color: #191919;
    overflow: visible;
    padding: 0;
    position: relative;
    bottom: inherit;
}

.ts-results__horizontal .ts-result .ts-description-lists,
.ts-results__vertical-list .ts-result .ts-description-lists {
    display: none;
    border-top: .0625rem solid rgba(25, 25, 25, .1);
    padding-top: .5rem;
}

.ts-results__horizontal .ts-result .ts-description-lists dl:not(:last-of-type),
.ts-results__vertical-list .ts-result .ts-description-lists dl:not(:last-of-type) {
    margin-bottom: 0;
    margin-right: .5rem;
}

.ts-results__horizontal .ts-result .ts-description-lists dt,
.ts-results__vertical-list .ts-result .ts-description-lists dt {
    font-size: .6875rem;
    opacity: .5;
}

.ts-results__horizontal .ts-result .ts-description-lists dd,
.ts-results__vertical-list .ts-result .ts-description-lists dd {
    font-size: .6875rem;
    margin-bottom: 0;
}

.ts-results__horizontal .ts-result .ts-ribbon,
.ts-results__vertical-list .ts-result .ts-ribbon {
    right: inherit;
    left: .5rem;
}

/* ====================================================================================================================
  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: clamp(20px, 2vw, 20px);
    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: clamp(20px, 2vw, 20px);
    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 #3FB9A4;
    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: #3FB9A4;
    -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;
}

/* -- Sidebar */

.ts-sidebar {
    flex-direction: column;
}

.ts-sidebar h3 {
    margin-bottom: 2.5rem;
}

.ts-sidebar .form-group {
    margin-bottom: 1rem;
}

.ts-sidebar section {
    width: 100%;
}

/*-------------------------------------------
  -- Slider
-------------------------------------------*/

.ts-slider {
    height: 100% !important;
}

.ts-slider div {
    height: 100% !important;
}

/*-------------------------------------------
  -- Tabs
-------------------------------------------*/

.nav-tabs {
    border-bottom-width: .1875rem;
    margin-bottom: 2rem;
}

.nav-tabs h4 {
    font-weight: normal;
    margin-bottom: 0;
}

.nav-tabs .nav-item {
    margin-bottom: -0.1875rem;
}

.nav-tabs .nav-link {
    background-color: transparent;
    border: none;
    border-bottom: .1875rem solid transparent;
    color: inherit;
    opacity: .5;
}

.nav-tabs .nav-link:first-child {
    margin-left: 0;
}

.nav-tabs .nav-link>* {
    padding-bottom: 0;
    margin-bottom: 0;
}

.nav-tabs .nav-link.active {
    color: #191919;
    background-color: transparent;
    border-bottom: .1875rem solid #3FB9A4;
    opacity: 1;
}

/** -- Quick Info */

#quick-info {
    margin-bottom: 20px;
}

.ts-quick-info {
    text-align: center;
    padding: 0;
    overflow: hidden;
}

@media (max-width: 768px) {
    .ts-quick-info.grid {
        grid-row-gap: 15px;
        grid-template-columns: repeat(2, 1fr);
    }
}


.ts-quick-info__item {
    height: 90px;
    display: flex;
    justify-content: center;
    flex-direction: column;
}

.ts-quick-info__item-info {
    display: flex;
    margin-bottom: 0;
    color: black;
    align-items: center;
    justify-content: center;
}

.ts-quick-info__item-text {
    font-family: "Poppins", sans-serif;
}

.ts-quick-info__item-info span {
    margin-left: 4px;
    font-weight: 600;
    font-size: 18px;
}

.ts-quick-info__item p:first-child {
    margin-bottom: 6px;
}

.ts-quick-info .ts-quick-info__item h6 {
    color: rgba(0, 0, 0, .5);
}

.ts-quick-info .ts-quick-info__item figure {
    margin-bottom: 0;
    font-size: 1.5rem;
}

/* -- Booking Info */

.booking-form-container {
    position: sticky;
    top: 120px;
    /* si el banner mide unos 30px */
    z-index: 1000;
}


.booking-form-container #bookButton3 {
    display: none;
}

#booking.fixed {
    position: fixed;
    top: 0;
    left: 0;
}

#booking.absolute-bottom {
    position: absolute;
    bottom: 0;
    left: 0;
}

@media (max-width: 767px) {
    .booking-form-container {
        position: fixed;
        bottom: 0;
        top: auto;
        margin: 0;
        left: 0;
        width: 100%;
        overflow: hidden;
        box-sizing: content-box;
        height: auto;
        padding: 0;
        z-index: 1000;
        box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .2);
    }

    .booking-form-container .card-custom {
        width: 100%;
        border-radius: clamp(20px, 2vw, 20px);
        border: none;
        display: flex;
        padding: 16px;
        justify-content: space-between;
    }

    .booking-form-container .booking-form,
    .booking-form-container .booking-form--button {
        display: none;
    }

    .booking-form-container .booking-info p {
        border: none;
        padding: 0;
    }

    .booking-form-container .booking-info p:not(:first-child) {
        margin-top: 5px;
    }

    .booking-form-container .booking-info i {
        display: none;
    }

    .booking-form-container #property-price {
        font-size: 18px;
        font-weight: 600;
        font-family: 'Poppins', sans-serif;
    }

    .booking-info p.tag-mobile {
        font-size: 13px;
        font-weight: 400;
        padding: 2px 6px;
        display: inline-block;
    }

    .booking-form-container #bookButton3 {
        display: inline-block;
    }
}

@media(min-width: 768px) {
    .booking-info {
        text-align: center;
    }

    .booking-info #property-price {
        font-size: 20px;
    }

    .booking-info #property-availability_date {
        color: var(--dark-gray);
        font-weight: 300;
    }

    .booking-form--button .btn {
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }
}


.booking-info p {
    margin-bottom: 0;
    font-weight: 500;
    color: black;
    font-family: "Poppins", sans-serif;
}

.booking-info i {
    width: 22px;
    font-size: 16px;
    color: #3FB9A4;
}

.booking-info i.fa-calendar {
    font-size: 18px;
}

.booking-form,
.booking-form--button {
    padding: 0 14px 20px;
}

.booking-form {
    padding: 16px;
    padding-bottom: 0;
}

.booking-form .form-group {
    flex: 1;
}

.booking-form .form-group:first-of-type {
    margin-right: .5rem;
}

.booking-form .form-group label {
    font-family: 'Poppins', sans-serif;
}

.booking-form--detail {
    border-top-right-radius: 12px;
    border-top-left-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--light-gray);
    padding: 0;
    margin: 10px 14px 0 14px;

    [type="date"]::-webkit-calendar-picker-indicator {
        left: 0;
    }
}

.booking-form .form-group:last-of-type {
    margin-left: 0;
}

.booking-form--detail .form-control {
    border: none;
    margin-bottom: 0;
}

.booking-form--detail .form-group.-guests {
    position: relative;

    .form-control {
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        padding-left: 1em;
    }
}

.booking-form--detail .form-group.-guests::after {
    content: "\f500";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    /* para solid */
    display: inline-block;
    position: absolute;
    right: 1.5em;
    top: 50%;
    font-size: 12px;
    transform: translateY(-50%);
    pointer-events: none;
}

.booking-form--detail .form-group:first-of-type::after {
    content: "|";
    display: inline-flex;
    align-self: center;
    font-weight: 300;
    color: var(--light-gray);
}

.booking-form--detail .form-group:last-of-type {
    margin-bottom: 0;
}


/***********************************************************************************************************************
D. Plugins Styles
***********************************************************************************************************************/

/**
 * Owl Carousel v2.2.1
 * Copyright 2013-2017 David Deutsch
 * Licensed under  ()
 */

.owl-carousel,
.owl-carousel .owl-item {
    -webkit-tap-highlight-color: transparent;
    position: relative;
}

.owl-carousel {
    display: none;
    width: 100%;
    z-index: 1;
}

.owl-carousel .owl-stage {
    position: relative;
    -ms-touch-action: pan-Y;
    -moz-backface-visibility: hidden;
}

.owl-carousel .owl-stage:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}

.owl-carousel .owl-stage-outer {
    position: relative;
    overflow: hidden;
    -webkit-transform: translate3d(0, 0, 0);
}

.owl-carousel .owl-item,
.owl-carousel .owl-wrapper {
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
}

.owl-carousel .owl-item {
    min-height: .0625rem;
    float: left;
    -webkit-backface-visibility: hidden;
    -webkit-touch-callout: none;
}

.owl-carousel .owl-item img {
    display: block;
    width: 100%;
}

.owl-carousel .owl-dots.disabled,
.owl-carousel .owl-nav.disabled {
    display: none;
}

.no-js .owl-carousel,
.owl-carousel.owl-loaded {
    display: block;
}

.owl-carousel .owl-dot,
.owl-carousel .owl-nav .owl-next,
.owl-carousel .owl-nav .owl-prev {
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.owl-carousel.owl-loading {
    opacity: 0;
    display: block;
}

.owl-carousel.owl-hidden {
    opacity: 0;
}

.owl-carousel.owl-refresh .owl-item {
    visibility: hidden;
}

.owl-carousel.owl-drag .owl-item {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.owl-carousel.owl-grab {
    cursor: move;
    cursor: -webkit-grab;
    cursor: grab;
}

.owl-carousel.owl-rtl {
    direction: rtl;
}

.owl-carousel.owl-rtl .owl-item {
    float: right;
}

.owl-carousel .animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

.owl-carousel .owl-animated-in {
    z-index: 0;
}

.owl-carousel .owl-animated-out {
    z-index: 1;
}

.owl-carousel .fadeOut {
    -webkit-animation-name: fadeOut;
    animation-name: fadeOut;
}

@-webkit-keyframes fadeOut {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

@keyframes fadeOut {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.owl-height {
    transition: height .5s ease-in-out;
}

.owl-carousel .owl-item .owl-lazy {
    opacity: 0;
    transition: opacity .4s ease;
}

.owl-carousel .owl-item img.owl-lazy {
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
}

.owl-carousel .owl-video-wrapper {
    position: relative;
    height: 100%;
    background: #000;
}

.owl-carousel .owl-video-play-icon {
    position: absolute;
    height: 5rem;
    width: 5rem;
    left: 50%;
    top: 50%;
    margin-left: -2.5rem;
    margin-top: -2.5rem;
    background: url(owl.video.play.png) no-repeat;
    cursor: pointer;
    z-index: 1;
    -webkit-backface-visibility: hidden;
    transition: -webkit-transform .1s ease;
    transition: transform .1s ease;
    transition: transform .1s ease, -webkit-transform .1s ease;
}

.owl-carousel .owl-video-play-icon:hover {
    -webkit-transform: scale(1.3, 1.3);
    transform: scale(1.3, 1.3);
}

.owl-carousel .owl-video-playing .owl-video-play-icon,
.owl-carousel .owl-video-playing .owl-video-tn {
    display: none;
}

.owl-carousel .owl-video-tn {
    opacity: 0;
    height: 100%;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    transition: opacity .4s ease;
}

.owl-carousel .owl-video-frame {
    position: relative;
    z-index: 1;
    height: 100%;
    width: 100%;
}

.image-legend {
    margin: 16px 0 0;
}

/* Magnific Popup CSS */

.mfp-bg {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1042;
    overflow: hidden;
    position: fixed;
    background: #0b0b0b;
    opacity: .8;
    filter: alpha(opacity=80);
}

.mfp-wrap {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1043;
    position: fixed;
    outline: none !important;
    -webkit-backface-visibility: hidden;
}

.mfp-container {
    text-align: center;
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    padding: 0 .5rem;
    box-sizing: border-box;
}

.mfp-container:before {
    content: '';
    display: inline-block;
    height: 100%;
    vertical-align: middle;
}

.mfp-align-top .mfp-container:before {
    display: none;
}

.mfp-content {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    margin: 0 auto;
    text-align: left;
    z-index: 1045;
}

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
    width: 100%;
    cursor: auto;
}

.mfp-ajax-cur {
    cursor: progress;
}

.mfp-zoom-out-cur,
.mfp-zoom-out-cur .mfp-image-holder .mfp-close {
    cursor: zoom-out;
}

.mfp-zoom {
    cursor: pointer;
    cursor: zoom-in;
}

.mfp-auto-cursor .mfp-content {
    cursor: auto;
}

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.mfp-loading.mfp-figure {
    display: none;
}

.mfp-hide {
    display: none !important;
}

.mfp-preloader {
    color: #ccc;
    position: absolute;
    top: 50%;
    width: auto;
    text-align: center;
    margin-top: -0.8em;
    left: .5rem;
    right: .5rem;
    z-index: 1044;
}

.mfp-preloader a {
    color: #ccc;
}

.mfp-preloader a:hover {
    color: white;
}

.mfp-s-ready .mfp-preloader {
    display: none;
}

.mfp-s-error .mfp-content {
    display: none;
}

button.mfp-close,
button.mfp-arrow {
    overflow: visible;
    cursor: pointer;
    background: transparent;
    border: 0;
    -webkit-appearance: none;
    display: block;
    outline: none;
    padding: 0;
    z-index: 1046;
    box-shadow: none;
}

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

.mfp-close {
    width: 2.75rem;
    height: 2.75rem;
    line-height: 2.75rem;
    position: absolute;
    right: 0;
    top: 0;
    text-decoration: none;
    text-align: center;
    opacity: .65;
    filter: alpha(opacity=65);
    padding: 0 0 1.125rem .625rem;
    color: white;
    font-style: normal;
    font-size: 1.75rem;
    font-family: Arial, Baskerville, monospace;
}

.mfp-close:hover,
.mfp-close:focus {
    opacity: 1;
    filter: alpha(opacity=100);
}

.mfp-close:active {
    top: .0625rem;
}

.mfp-close-btn-in .mfp-close {
    color: #333;
}

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
    color: white;
    right: -0.375rem;
    text-align: right;
    padding-right: .375rem;
    width: 100%;
}

.mfp-counter {
    position: absolute;
    top: 0;
    right: 0;
    color: #ccc;
    font-size: .75rem;
    line-height: 1.125rem;
}

.mfp-arrow {
    position: absolute;
    opacity: .65;
    filter: alpha(opacity=65);
    margin: 0;
    top: 50%;
    margin-top: -3.4375rem;
    padding: 0;
    width: 5.625rem;
    height: 6.875rem;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.mfp-arrow:active {
    margin-top: -3.375rem;
}

.mfp-arrow:hover,
.mfp-arrow:focus {
    opacity: 1;
    filter: alpha(opacity=100);
}

.mfp-arrow:before,
.mfp-arrow:after,
.mfp-arrow .mfp-b,
.mfp-arrow .mfp-a {
    content: '';
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    left: 0;
    top: 0;
    margin-top: 2.1875rem;
    margin-left: 2.1875rem;
    border: medium inset transparent;
}

.mfp-arrow:after,
.mfp-arrow .mfp-a {
    border-top-width: .8125rem;
    border-bottom-width: .8125rem;
    top: .5rem;
}

.mfp-arrow:before,
.mfp-arrow .mfp-b {
    border-top-width: 1.3125rem;
    border-bottom-width: 1.3125rem;
    opacity: .7;
}

.mfp-arrow-left {
    left: 0;
}

.mfp-arrow-left:after,
.mfp-arrow-left .mfp-a {
    border-right: 1.0625rem solid white;
    margin-left: 1.9375rem;
}

.mfp-arrow-left:before,
.mfp-arrow-left .mfp-b {
    margin-left: 1.5625rem;
    border-right: 1.6875rem solid #3f3f3f;
}

.mfp-arrow-right {
    right: 0;
}

.mfp-arrow-right:after,
.mfp-arrow-right .mfp-a {
    border-left: 1.0625rem solid white;
    margin-left: 2.4375rem;
}

.mfp-arrow-right:before,
.mfp-arrow-right .mfp-b {
    border-left: 1.6875rem solid #3f3f3f;
}

.mfp-iframe-holder {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.mfp-iframe-holder .mfp-content {
    line-height: 0;
    width: 100%;
    max-width: 56.25rem;
}

.mfp-iframe-holder .mfp-close {
    top: -2.5rem;
}

.mfp-iframe-scaler {
    width: 100%;
    height: 0;
    overflow: hidden;
    padding-top: 56.25%;
}

.mfp-iframe-scaler iframe {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    box-shadow: 0 0 .5rem rgba(0, 0, 0, .6);
    background: black;
}

/* Main image in popup */

img.mfp-img {
    width: auto;
    max-width: 100%;
    height: auto;
    display: block;
    line-height: 0;
    box-sizing: border-box;
    padding: 2.5rem 0 2.5rem;
    margin: 0 auto;
}

/* The shadow behind the image */

.mfp-figure {
    line-height: 0;
}

.mfp-figure:after {
    content: '';
    position: absolute;
    left: 0;
    top: 2.5rem;
    bottom: 2.5rem;
    display: block;
    right: 0;
    width: auto;
    height: auto;
    z-index: -1;
    box-shadow: 0 0 .5rem rgba(0, 0, 0, .6);
    background: #444;
}

.mfp-figure small {
    color: #bdbdbd;
    display: block;
    font-size: .75rem;
    line-height: .875rem;
}

.mfp-figure figure {
    margin: 0;
}

.mfp-bottom-bar {
    margin-top: -2.25rem;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    cursor: auto;
}

.mfp-title {
    text-align: left;
    line-height: 1.125rem;
    color: #f3f3f3;
    word-wrap: break-word;
    padding-right: 2.25rem;
}

.mfp-image-holder .mfp-content {
    max-width: 100%;
}

.mfp-gallery .mfp-image-holder .mfp-figure {
    cursor: pointer;
}

.mfp-ie7 .mfp-img {
    padding: 0;
}

.mfp-ie7 .mfp-bottom-bar {
    width: 37.5rem;
    left: 50%;
    margin-left: -18.75rem;
    margin-top: .3125rem;
    padding-bottom: .3125rem;
}

.mfp-ie7 .mfp-container {
    padding: 0;
}

.mfp-ie7 .mfp-content {
    padding-top: 2.75rem;
}

.mfp-ie7 .mfp-close {
    top: 0;
    right: 0;
    padding-top: 0;
}


/*-------------------------------------------
  -- Top Rooms
-------------------------------------------*/

#top-rooms .owl-carousel {
    margin: 0 -1rem;
    padding: 0;
    width: calc(100% + 2rem);
}

@media (max-width: 768px) {
    #top-rooms .ts-title {
        margin-bottom: 0;
    }
}

/*-------------------------------------------
  -- Magnific Popup
-------------------------------------------*/

/* overlay at start */

.mfp-fade.mfp-bg {
    opacity: 0;
    background-color: #000;
    transition: all .15s ease-out;
}

/* overlay animate in */

.mfp-fade.mfp-bg.mfp-ready {
    opacity: .8;
}

/* overlay animate out */

.mfp-fade.mfp-bg.mfp-removing {
    opacity: 0;
}

/* content at start */

.mfp-fade.mfp-wrap .mfp-content {
    opacity: 0;
    transition: all .15s ease-out;
}

/* content animate it */

.mfp-fade.mfp-wrap.mfp-ready .mfp-content {
    opacity: 1;
}

/* content animate out */

.mfp-fade.mfp-wrap.mfp-removing .mfp-content {
    opacity: 0;
}

/*-------------------------------------------
  -- Tag
-------------------------------------------*/

.tag {
    font-size: 14px;
    border-radius: clamp(20px, 2vw, 20px);
    padding: 2px 10px;
}

.tag--light {
    color: #26282A;
    background-color: #F6F6F6;
    font-family: 'Poppins', sans-serif;
}

@media (max-width: 768px) {
    .tag-mobile {
        font-size: 14px;
        border-radius: clamp(20px, 2vw, 20px);
        padding: 2px 10px;
    }

    .tag-mobile--light {
        color: #26282A;
        background-color: #F6F6F6;
        font-family: 'Poppins', sans-serif;
    }

}

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

.owl-carousel .owl-stage,
.owl-carousel .owl-stage-outer,
.owl-carousel .owl-item {
    height: 100%;
}

.owl-carousel .owl-dots {
    text-align: center;
}

.owl-carousel .owl-dots .owl-dot {
    display: inline-block;
    padding: .3125rem;
}

.owl-carousel .owl-dots .owl-dot:hover span,
.owl-carousel .owl-dots .owl-dot.active span {
    opacity: .7;
}

.owl-carousel .owl-dots .owl-dot span {
    background-color: #191919;
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-block;
    height: .625rem;
    opacity: .2;
    transition: .3s ease;
    width: .625rem;
}

.owl-carousel .owl-nav {
    position: absolute;
    bottom: 4rem;
    height: 0;
    margin: auto;
    width: 100%;
}

.owl-carousel .owl-nav .owl-prev,
.owl-carousel .owl-nav .owl-next {
    background-color: rgba(255, 255, 255, .6);
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: 0 .125rem .3125rem rgba(0, 0, 0, .1);
    color: #191919;
    display: inline-block;
    height: 2.5rem;
    position: absolute;
    text-align: center;
    transition: .3s ease;
    width: 2.5rem;
}

.owl-carousel .owl-nav .owl-prev:after,
.owl-carousel .owl-nav .owl-next:after {
    font-family: "Font Awesome\ 5 Free";
    font-weight: 900;
    font-size: 1.375rem;
    line-height: 2.5rem;
    -webkit-font-smoothing: antialiased;
}

.owl-carousel .owl-nav .owl-prev:hover,
.owl-carousel .owl-nav .owl-next:hover {
    background-color: rgba(255, 255, 255, .8);
}

.owl-carousel .owl-nav .owl-next {
    right: 1rem;
}

.owl-carousel .owl-nav .owl-next:after {
    content: "\f105";
    margin-left: .1875rem;
}

.owl-carousel .owl-nav .owl-prev {
    left: 1rem;
}

.owl-carousel .owl-nav .owl-prev:after {
    content: "\f104";
    margin-right: .0625rem;
}

@media (min-width: 36rem) and (max-width: 47.9375rem) {
    html {
        font-size: 85%;
    }

    h1,
    .h1 {
        font-size: 1.875rem;
    }

    .ts-column-count-sm-1 {
        -webkit-column-count: 1;
        column-count: 1;
    }

    .ts-column-count-sm-2 {
        -webkit-column-count: 2;
        column-count: 2;
    }

    .ts-column-count-sm-3 {
        -webkit-column-count: 3;
        column-count: 3;
    }

    .ts-column-count-sm-4 {
        -webkit-column-count: 4;
        column-count: 4;
    }

    .ts-bokeh-background {
        top: -5rem;
    }

    .ts-hero-slider .ts-slide-description h3 {
        margin-bottom: .5rem;
    }

    .ts-results__vertical-list {
        width: 28rem;
    }
}

@media (min-width: 48rem) and (max-width: 61.9375rem) {
    html {
        font-size: 90%;
    }

    h1,
    .h1 {
        font-size: 1.75rem;
    }

    .ts-homepage h1 {
        font-size: 40px;
    }

    .ts-column-count-md-1 {
        -webkit-column-count: 1;
        column-count: 1;
    }

    .ts-column-count-md-2 {
        -webkit-column-count: 2;
        column-count: 2;
    }

    .ts-column-count-md-3 {
        -webkit-column-count: 3;
        column-count: 3;
    }

    .ts-column-count-md-4 {
        -webkit-column-count: 4;
        column-count: 4;
    }

    .ts-bokeh-background {
        top: -7rem;
    }

    .ts-results__vertical-list {
        width: 30rem;
    }
}

@media (min-width: 62rem) and (max-width: 74.9375rem) {
    html {
        font-size: 95%;
    }

    h1,
    .h1 {
        font-size: 1.875rem;
    }

    .ts-homepage h1 {
        font-size: 3rem;
    }

    .ts-column-count-lg-1 {
        -webkit-column-count: 1;
        column-count: 1;
    }

    .ts-column-count-lg-2 {
        -webkit-column-count: 2;
        column-count: 2;
    }

    .ts-column-count-lg-3 {
        -webkit-column-count: 3;
        column-count: 3;
    }

    .ts-column-count-lg-4 {
        -webkit-column-count: 4;
        column-count: 4;
    }

    .ts-block {
        padding-bottom: 3rem;
        padding-top: 3rem;
    }

    .ts-card__image {
        height: 12.5rem;
    }

    .ts-results__grid .ts-result-link {
        width: calc(50% - 2rem);
    }

    .ts-results__vertical-list {
        width: 32rem;
    }
}

@media (min-width: 75rem) {
    html {
        font-size: 100%;
    }

    h1,
    .h1 {
        font-size: 2.25rem;
    }

    .ts-homepage h1 {
        font-size: 44px;
    }

    .ts-column-count-xl-1 {
        -webkit-column-count: 1;
        column-count: 1;
    }

    .ts-column-count-xl-2 {
        -webkit-column-count: 2;
        column-count: 2;
    }

    .ts-column-count-xl-3 {
        -webkit-column-count: 3;
        column-count: 3;
    }

    .ts-column-count-xl-4 {
        -webkit-column-count: 4;
        column-count: 4;
    }

    .ts-xl-h__auto {
        height: auto;
    }

    .ts-block {
        padding-bottom: 4rem;
        padding-top: 4rem;
    }

    .ts-card__image {
        height: 15.625rem;
    }

    .navbar-dark .navbar.navbar-expand-xl ul.navbar-nav ul.ts-child {
        background-color: black;
    }

    .navbar.navbar-expand-xl ul.navbar-nav {
        margin-top: 0;
    }

    .navbar.navbar-expand-xl ul.navbar-nav .nav-item:first-child {
        border-top: none;
    }

    .navbar.navbar-expand-xl ul.navbar-nav .nav-item:hover {
        background-color: transparent;
    }

    .navbar.navbar-expand-xl ul.navbar-nav .nav-item:hover>ul.ts-child {
        opacity: 1;
    }

    .navbar.navbar-expand-xl ul.navbar-nav>.nav-item {
        border-bottom: none;
    }

    .navbar.navbar-expand-xl ul.navbar-nav>.nav-item>ul.ts-child>.nav-item:first-child>.nav-link:after {
        border-style: solid;
    }

    .navbar.navbar-expand-xl ul.navbar-nav ul.ts-child {
        background-color: #fff;
        box-shadow: 0 .3125rem 1.5625rem rgba(0, 0, 0, .25);
        position: absolute;
        height: auto;
        width: auto;
        overflow: visible;
        opacity: 0;
    }

    .navbar.navbar-expand-xl ul.navbar-nav ul.ts-child .ts-has-child:after {
        content: "\f0da";
    }

    .navbar.navbar-expand-xl ul.navbar-nav ul.ts-child ul.ts-child {
        left: 13rem;
        margin-left: -0.25rem;
    }

    .ts-results__grid .ts-result-link {
        width: calc(33.33% - 2rem);
    }

    .ts-results__vertical-list {
        width: 34rem;
    }
}

@media (max-width: 35.9375rem) {

    h1,
    .h1 {
        margin-bottom: 1.25rem;
    }

    h2,
    .h2 {
        font-size: 1.8rem;
    }

    [class*="ts-column-count-"] {
        -webkit-column-count: 1;
        column-count: 1;
    }

    .ts-xs-text-center {
        text-align: center !important;
    }

    .ts-title {
        margin-bottom: 1.2rem;
    }

    .ts-infobox .ts-infobox__wrapper {
        height: 11rem;
        width: 12rem;
    }

    .ts-infobox .ts-item__info {
        border-bottom: none;
    }

    .ts-infobox .ts-description-lists {
        display: none;
    }

    .leaflet-popup {
        margin-left: -1.75rem;
    }

    .H_ib_body .infobox-wrapper {
        left: 2rem;
    }

    .ts-quick-info .ts-quick-info__item {
        border-bottom: .0625rem solid rgba(25, 25, 25, .1);
    }
}

@media (min-width: 36rem) and (max-width: 61.9375rem) {

    h1,
    .h1 {
        margin-bottom: 1.875rem;
    }

    .ts-title {
        margin-bottom: 2rem;
    }

    .ts-block-inside {
        padding: 2.5rem;
    }
}

@media (min-width: 62rem) {

    h1,
    .h1 {
        margin-bottom: 2.5rem;
    }

    .ts-bokeh-background {
        top: -10rem;
    }

    .ts-lg-h__auto {
        height: auto;
    }

    .ts-title {
        margin-bottom: 2rem;
    }

    .ts-block-inside {
        padding: 3.75rem;
    }

    .navbar-dark .navbar.navbar-expand-lg ul.navbar-nav ul.ts-child {
        background-color: black;
    }

    .navbar.navbar-expand-lg ul.navbar-nav {
        margin-top: 0;
    }

    .navbar.navbar-expand-lg ul.navbar-nav .nav-item:first-child {
        border-top: none;
    }

    .navbar.navbar-expand-lg ul.navbar-nav .nav-item:hover {
        background-color: transparent;
    }

    .navbar.navbar-expand-lg ul.navbar-nav .nav-item:hover>ul.ts-child {
        opacity: 1;
    }

    .navbar.navbar-expand-lg ul.navbar-nav>.nav-item {
        border-bottom: none;
    }

    .navbar.navbar-expand-lg ul.navbar-nav>.nav-item>ul.ts-child>.nav-item:first-child>.nav-link:after {
        border-style: solid;
    }

    .navbar.navbar-expand-lg ul.navbar-nav ul.ts-child {
        background-color: #fff;
        box-shadow: 0 .3125rem 1.5625rem rgba(0, 0, 0, .25);
        position: absolute;
        height: auto;
        width: auto;
        overflow: visible;
        opacity: 0;
    }

    .navbar.navbar-expand-lg ul.navbar-nav ul.ts-child .ts-has-child:after {
        content: "\f0da";
    }

    .navbar.navbar-expand-lg ul.navbar-nav ul.ts-child ul.ts-child {
        left: 13rem;
        margin-left: -0.25rem;
    }

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

    .ts-map .ts-results__horizontal {
        bottom: 11rem;
    }

    .ts-results__horizontal {
        min-height: 12rem;
    }

    .ts-results__horizontal .ts-result {
        height: 9rem;
    }

    .ts-results__horizontal .ts-result .ts-description-lists {
        display: block;
    }
}

@media (min-width: 36rem) {
    .ts-bokeh-background {
        -webkit-filter: blur(2.5rem);
        filter: blur(2.5rem);
    }

    .ts-sm-h__auto {
        height: auto;
    }

    .ts-description-list__line dt {
        float: left;
    }

    .ts-description-list__line dd {
        text-align: right;
    }

    .ts-form__map-search {
        width: 20rem;
    }

    .ts-form__map-horizontal {
        height: 0;
        position: absolute;
    }

    .ts-form__map-horizontal>.container {
        -webkit-transform: translateY(-100%);
        transform: translateY(-100%);
    }

    #ts-footer #ts-footer-secondary .container {
        display: flex;
    }

    .ts-item__list .card-img {
        border-top-right-radius: 0;
        border-bottom-left-radius: .1875rem;
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 14rem;
    }

    .ts-item__list .card-img:after {
        display: none;
    }

    .ts-item__list .card-img:before {
        border-bottom-left-radius: .1875rem;
    }

    .ts-item__list .card-body,
    .ts-item__list .card-footer {
        padding-left: 15rem;
    }

    .ts-item__list .ts-item__info {
        top: inherit;
        color: #191919;
        margin-bottom: 1rem;
        padding: 0;
        position: relative;
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }

    .ts-item__list .ts-ribbon {
        right: inherit;
        left: 11rem;
    }

    .ts-item__list .ts-item__info-badge {
        bottom: -1rem;
        font-size: .875rem;
        left: 1.5rem;
        top: inherit;
    }

    .ts-item__list.ts-item__compact .card-img {
        width: 11rem;
    }

    .ts-item__list.ts-item__compact .card-body {
        padding: .5rem .5rem 0 .5rem;
    }

    .ts-item__list.ts-item__compact .card-body,
    .ts-item__list.ts-item__compact .card-footer {
        padding-left: 12rem;
    }

    .ts-item__list.ts-item__compact .ts-ribbon {
        left: 8rem;
    }

    .ts-item__list.ts-item__compact .ts-item__info-badge {
        font-size: .75rem;
    }

    .ts-item__company .ts-description-list1,
    .ts-item__company .ts-company-info {
        display: flex;
    }

    .navbar-dark .navbar.navbar-expand-sm ul.navbar-nav ul.ts-child {
        background-color: black;
    }

    .navbar.navbar-expand-sm ul.navbar-nav {
        margin-top: 0;
    }

    .navbar.navbar-expand-sm ul.navbar-nav .nav-item:first-child {
        border-top: none;
    }

    .navbar.navbar-expand-sm ul.navbar-nav .nav-item:hover {
        background-color: transparent;
    }

    .navbar.navbar-expand-sm ul.navbar-nav .nav-item:hover>ul.ts-child {
        opacity: 1;
    }

    .navbar.navbar-expand-sm ul.navbar-nav>.nav-item {
        border-bottom: none;
    }

    .navbar.navbar-expand-sm ul.navbar-nav>.nav-item>ul.ts-child>.nav-item:first-child>.nav-link:after {
        border-style: solid;
    }

    .navbar.navbar-expand-sm ul.navbar-nav ul.ts-child {
        box-shadow: 0 .3125rem 1.5625rem rgba(0, 0, 0, .25);
        position: absolute;
        height: auto;
        width: auto;
        overflow: visible;
        opacity: 0;
    }

    .navbar.navbar-expand-sm ul.navbar-nav ul.ts-child .ts-has-child:after {
        content: "\f0da";
    }

    .navbar.navbar-expand-sm ul.navbar-nav ul.ts-child ul.ts-child {
        left: 13rem;
        margin-left: -0.25rem;
    }

    .ts-results__grid.scroll-wrapper {
        position: relative !important;
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }

    .ts-results__grid.scroll-wrapper .scrollbar-inner {
        padding-right: 0;
    }

    .ts-results__grid .ts-form__grid {
        padding: 2rem;
    }

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

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

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

    .ts-results__vertical-list {
        position: relative !important;
    }

    .ts-results__vertical-list .ts-result {
        flex-direction: column-reverse;
    }

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

    .ts-results__vertical-list .ts-result .card-img {
        width: 50%;
        height: 9rem;
    }

    .ts-results__vertical-list .ts-result .ts-description-lists {
        position: absolute;
        padding-top: 0;
        top: 4.5rem;
        padding-left: .75rem;
        -webkit-column-count: 2;
        column-count: 2;
        width: 50%;
    }

    .ts-results__vertical-list .ts-result .ts-item__info-badge {
        top: 6rem;
    }

    .ts-quick-info .ts-quick-info__item {
        border-right: .0625rem solid rgba(25, 25, 25, .1);
    }

    .owl-carousel .owl-nav {
        bottom: 0;
        top: 0;
    }
}

@media (min-width: 48rem) {
    .ts-md-h__auto {
        height: auto;
    }

    .ts-hero-slider .ts-slide-description h3 {
        margin-bottom: 1rem;
    }

    .navbar-dark .navbar.navbar-expand-md ul.navbar-nav ul.ts-child {
        background-color: black;
    }

    .navbar.navbar-expand-md ul.navbar-nav {
        margin-top: 0;
    }

    .navbar.navbar-expand-md ul.navbar-nav .nav-item:first-child {
        border-top: none;
    }

    .navbar.navbar-expand-md ul.navbar-nav .nav-item:hover {
        background-color: transparent;
    }

    .navbar.navbar-expand-md ul.navbar-nav .nav-item:hover>ul.ts-child {
        opacity: 1;
    }

    .navbar.navbar-expand-md ul.navbar-nav>.nav-item {
        border-bottom: none;
    }

    .navbar.navbar-expand-md ul.navbar-nav>.nav-item>ul.ts-child>.nav-item:first-child>.nav-link:after {
        border-style: solid;
    }

    .navbar.navbar-expand-md ul.navbar-nav ul.ts-child {
        background-color: #fff;
        box-shadow: 0 .3125rem 1.5625rem rgba(0, 0, 0, .25);
        position: absolute;
        height: auto !important;
        width: auto;
        overflow: visible;
        opacity: 0;
    }

    .navbar.navbar-expand-md ul.navbar-nav ul.ts-child .ts-has-child:after {
        content: "\f0da";
    }

    .navbar.navbar-expand-md ul.navbar-nav ul.ts-child ul.ts-child {
        left: 13rem;
        margin-left: -0.25rem;
    }
}

@media (max-width: 61.9375rem) {
    .ts-card__image {
        height: 15.625rem;
    }
}

@media screen and (max-width: 50rem) and (orientation: landscape),
screen and (max-height: 18.75rem) {
    /**
       * Remove all paddings around the image on small screen
       */

    .mfp-img-mobile .mfp-image-holder {
        padding-left: 0;
        padding-right: 0;
    }

    .mfp-img-mobile img.mfp-img {
        padding: 0;
    }

    .mfp-img-mobile .mfp-figure:after {
        top: 0;
        bottom: 0;
    }

    .mfp-img-mobile .mfp-figure small {
        display: inline;
        margin-left: .3125rem;
    }

    .mfp-img-mobile .mfp-bottom-bar {
        background: rgba(0, 0, 0, .6);
        bottom: 0;
        margin: 0;
        top: auto;
        padding: .1875rem .3125rem;
        position: fixed;
        box-sizing: border-box;
    }

    .mfp-img-mobile .mfp-bottom-bar:empty {
        padding: 0;
    }

    .mfp-img-mobile .mfp-counter {
        right: .3125rem;
        top: .1875rem;
    }

    .mfp-img-mobile .mfp-close {
        top: 0;
        right: 0;
        width: 2.1875rem;
        height: 2.1875rem;
        line-height: 2.1875rem;
        background: rgba(0, 0, 0, .6);
        position: fixed;
        text-align: center;
        padding: 0;
    }
}

@media all and (max-width: 56.25rem) {
    .mfp-arrow {
        -webkit-transform: scale(.75);
        transform: scale(.75);
    }

    .mfp-arrow-left {
        -webkit-transform-origin: 0;
        transform-origin: 0;
    }

    .mfp-arrow-right {
        -webkit-transform-origin: 100%;
        transform-origin: 100%;
    }

    .mfp-container {
        padding-left: .375rem;
        padding-right: .375rem;
    }
}


.custom-div-icon img {
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.navbar-brand img {
    max-height: 30px;
    /* Ajusta la altura máxima del logo, similar al tamaño de MY.HOUSE */
    width: auto;
    /* Mantén la proporción del logo */
}

.navbar-brand {
    display: flex;
    align-items: center;
}

.whatsapp-icon {
    position: fixed;
    bottom: 150px;
    right: 20px;
    /* Adjusted to 20px to match reservation/payment pages */
    z-index: 9999;
    /* Asegura que el ícono esté en la parte superior de otros elementos */
    width: 60px;
    /* Increased to 60px as per user preference */
    height: 60px;
    transition: transform 0.3s ease-in-out;
    /* Transición suave al agrandar */
}

.zsiq-float {
    width: 46px !important;
    height: 46px !important;
    right: 15px !important;
    bottom: 75px !important;
}

@media (max-width: 991px) {
    .whatsapp-icon {
        bottom: 135px !important;
        width: 50px;
        /* Keep mobile size at 50px */
        height: 50px;
    }

    .zsiq-float {
        bottom: 80px !important;
        transform: scale(1) !important;
    }
}

/* Añade un estilo para el ícono de WhatsApp */
.whatsapp-icon img {
    width: 100%;
    height: auto;
}

/* Añade un estilo para el ícono de Mail */
.whatsapp-icon img {
    width: 100%;
    height: auto;
}

.whatsapp-icon:hover {
    transform: scale(1.2);
    /* Agranda el ícono un 20% */
}

.whatsapp-icon:hover {
    transform: scale(1.2);
    /* Agranda el ícono un 20% al hacer hover */
}

.ts-feature .ts-feature__icon .fa-stack {
    font-size: 5rem;
    /* Ajusta el tamaño general de la pila (círculo e ícono) */
}

.ts-feature .ts-feature__icon .fa-circle {
    font-size: 1.2em;
    /* Ajusta el tamaño del círculo */
}

.ts-feature .ts-feature__icon .fa-bed {
    font-size: 0.8em;
    /* Ajusta el tamaño del ícono dentro del círculo */
    position: relative;
    top: -0.1em;
    /* Ajusta la alineación vertical del ícono si es necesario */
}


.ts-feature__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 100%;
    height: 100%;
}

.ts-feature__icon .fa-stack {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.ts-feature__icon .fa-stack .fa-circle {
    width: 100px;
    /* Ajusta el tamaño del círculo */
    height: 100px;
    /* Ajusta el tamaño del círculo */
}

.ts-feature__icon .fa-stack .fa-inverse {
    position: absolute;
    font-size: 2.5rem;
    /* Ajusta el tamaño del icono */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /* Centra el ícono dentro del círculo */
}

.ts-feature__icon .fa-stack {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    /* Ajusta el tamaño según lo necesario */
    height: 100px;
    /* Ajusta el tamaño según lo necesario */
}

.ts-feature__icon .fa-circle {
    font-size: 5rem;
    /* Tamaño del círculo */
}

.ts-feature__icon .fa-stack .fa-inverse {
    font-size: 2.5rem;
    /* Tamaño del ícono */
    color: #fff;
    /* Asegúrate de que el color del ícono contraste con el fondo */
}

.ts-feature {
    text-align: center;
    /* Centra el contenido dentro de cada .ts-feature */
}

.ts-feature h4 {
    margin-top: 1rem;
    /* Espaciado opcional para el título */
}

.ts-feature p {
    margin-top: 0.5rem;
    /* Espaciado opcional para el párrafo */
}

.footer-brand {
    margin-bottom: 1.5rem;
    display: block;
}

article.ts-faq {
    scroll-margin-top: 100px;
    /* Ajusta este valor según la altura de tu navbar */
}

#ts-map-simple {
    width: 100%;
    height: 400px;
    /* Ajusta el tamaño según sea necesario */
}

#guidelines,
#satisfaction,
#check-in,
#stay,
#keys,
#bond,
#cleaning,
#payments,
#urgent,
#notices,
#maintenance,
#visits,
#issues,
#parking,
#bills,
#suppliers,
#terms,
#register,
#discover,
#apply,
#payment,
#documents,
#contract,
#move-in,
#exceptional,
#management,
#solutions,
#safety,
#check-out,
#breach,
#repairs,
#report,
#rights,
#condition,
#maintenance,
#access,
#noise,
#images,
#privacy,
#booking {
    scroll-margin-top: 90px;
    /* Ajusta el valor según el tamaño del nav */
}

.quick-info-bills {
    font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 24px;
    /* Tamaño similar a Rooms y Bathrooms */
    color: #333;
    /* Color similar a los otros valores */
    align-items: center;
}

nav {
    position: relative;
    /* Asegura que el z-index funcione */
    /* Otras reglas de estilo del nav */
}

.floating-button-container {
    position: fixed;
    /* Cambia a fixed para que el botón no desaparezca al hacer scroll */
    top: 3%;
    /* Ajusta la posición del botón en la ventana del navegador */
    right: 80px;
    /* Ajuste de margen a la derecha */
    transform: translateY(-50%);
    /* Centra verticalmente el botón */
    z-index: 9999;
    /* Forzar el botón a estar por encima de otros elementos */
}

/* Estilos para pantallas móviles */
@media (max-width: 768px) {
    .floating-button-container {
        top: 4%;
        /* Ajusta la posición del botón para pantallas pequeñas */
        right: 80px;
        /* Margen derecho reducido para móviles */
        transform: translateY(-50%);
        /* Centra verticalmente el botón */
        z-index: 9999;
        /* Forzar el botón a estar por encima de otros elementos */

    }

    #reserveButton {
        margin-left: 0;
    }
}

.floating-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #3FB9A4;
    color: white;
    border-radius: clamp(20px, 2vw, 20px);
    /* Borde más pequeño */
    padding: 4px 12px;
    /* Reduce el padding para un tamaño más compacto */
    font-size: 12px;
    /* Reduce el tamaño de la fuente */
    text-decoration: none;
    font-weight: bold;
    box-shadow: 0 3px 4px rgba(0, 0, 0, 0.1);
    /* Sombra más pequeña */
    transition: transform 0.3s ease-in-out;
}


.floating-button:hover {
    background-color: #2a7e75;
    text-decoration: none;
    transform: scale(1.1);
}

.floating-button i {
    margin-right: 3px;
    /* Reduce espacio entre ícono y texto */
    font-size: 14px;
    /* Reduce el tamaño del ícono */
    background-color: white;
    color: #3FB9A4;
    border-radius: clamp(20px, 2vw, 20px);
    padding: 6px;
    /* Reduce el padding del ícono */
    margin-right: 6px;
    /* Reduce el espacio entre ícono y texto */
    box-shadow: 0 3px 4px rgba(0, 0, 0, 0.1);
}

.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #3FB9A4;
    color: white;
    border-radius: clamp(20px, 2vw, 20px);
    padding: 12px 14px;
    font-size: 16px;
    text-decoration: none;
    font-weight: 600;
    transition: transform 0.3s ease-in-out;
    font-family: 'Poppins', sans-serif;
}

.btn-small {
    font-size: 14px;
    border-radius: clamp(20px, 2vw, 20px);
    padding: 4px 8px;
}

.btn-primary:hover {
    text-decoration: none;
}

.btn-primary i {
    margin-right: 6px;
}

.btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #3FB9A4;
    color: white;
    border-radius: clamp(20px, 2vw, 20px);
    padding: 10px 14px;
    font-size: 20px;
    text-decoration: none;
    font-weight: bold;
    box-shadow: 0 3px 4px rgba(0, 0, 0, 0.1);
    border: none;
    transition: transform 0.3s ease-in-out;
}

.btn-secondary:hover {
    background-color: #2a7e75;
    text-decoration: none;
}

.btn-secondary i {
    margin-right: 3px;
    font-size: 14px;
    /* Reduce el tamaño del ícono */
    background-color: white;
    color: #3FB9A4;
    border-radius: clamp(20px, 2vw, 20px);
    padding: 6px;
    margin-right: 6px;
    box-shadow: 0 3px 4px rgba(0, 0, 0, 0.1);
}

.ts-promo-number h2 {
    margin-bottom: 5px;
    /* Ajusta este valor según sea necesario */
}

.ts-promo-number h3 {
    margin-top: 5px;
    /* Ajusta el espaciado entre número y subtítulo */
}

.card-custom {
    background: white;
    border-radius: clamp(20px, 2vw, 20px);
    padding: 28px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid #f1f5f9;
    margin-bottom: 24px;
}

@media (min-width: 768px) {
    .card-custom {
        padding: 40px;
    }
}

.card-custom.-gray {
    background-color: var(--white-gray);
}

.card-custom--no-padding {
    padding: 0;
}

.card-custom__header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 28px;
}

.card-custom__icon {
    width: 44px;
    height: 44px;
    background-color: #1a2d42;
    color: white;
    border-radius: clamp(20px, 2vw, 20px);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    flex-shrink: 0;
}

@media (min-width: 768px) {
    .card-custom__icon {
        width: 40px;
        height: 40px;
        font-size: 14px;
    }
}

.card-custom__title {
    font-family: 'Poppins', sans-serif;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #1a2d42;
    line-height: 1.2;
    margin: 0;
    padding: 0;
    border-bottom: none;
    text-align: left;
}

.icon-circle {
    color: white;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center !important;
    display: inline-flex !important;
    border-radius: clamp(20px, 2vw, 20px);
    margin-right: 10px;
}

.icon-circle.-primary {
    background-color: var(--primary-color);
}

.icon-circle.-secondary {
    background-color: var(--secondary-color);
}

.card-gray {
    background: #f6f6f6;
    border: 1px solid #E0E0E0;
    border-radius: clamp(20px, 2vw, 20px);
    padding: 12px 0;
    box-sizing: border-box;
}

/* Aplicar más espaciado entre los elementos en la versión móvil */
@media (max-width: 768px) {
    .ts-promo-number {
        margin-bottom: 60px;
        /* Aumenta el espacio debajo de cada bloque en móviles */
    }
}

h1#property-name,
.title--main {
    font-size: 41px;
}

.property-title {
    font-size: 15px;
    font-weight: normal;
}

.text-clamp-5 {
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.title--line {
    font-weight: 300;
    font-size: 14px;
    margin-bottom: .6em;
    text-align: center;
    padding-bottom: 0;
    color: var(--dark-gray);
    text-transform: uppercase;
    position: relative;
    font-family: "Poppins", sans-serif;

    &::after {
        content: "";
        height: 1px;
        width: 100%;
        top: 50%;
        display: block;
        background-color: var(--dark-gray);
        position: absolute;
    }

    &.-left {
        text-align: left;

        span {
            padding-left: 0;
        }
    }
}

.title--line span {
    z-index: 5;
    position: relative;
    display: inline-block;
    background: white;
    padding: 0 10px;
}

.title--slogan {
    margin-bottom: 0;
    font-size: 38px;

    svg {
        height: 50px;
    }

    span {
        font-style: italic;
    }

    @media(max-width: 768px) {
        font-size: 32px;

        svg {
            height: 40px;
        }
    }

    @media(max-width: 400px) {
        font-size: 28px;

        svg {
            height: 34px;
        }
    }
}

.title--slogan-sm {
    margin-bottom: 0;
    font-size: 22px;
    font-family: 'Poppins', sans-serif;

    svg {
        height: 30px;
    }

    span {
        font-weight: 500;
        font-style: italic;
    }
}

.color-primary {
    color: var(--primary-color)
}

.color-secondary {
    color: var(--secondary-color)
}


@media (max-width: 768px) {

    h1#property-name,
    .title--main {
        font-size: 30px;
        line-height: 45px;
    }

    h2#property-price {
        font-size: 18px;
    }

    h3.ts-opacity__90 {
        font-size: 16px;
    }
}



.accordion-card {
    margin-bottom: 10px;
    overflow: hidden;

    @media(max-width: 768px) {
        padding: 16px;
    }
}

.accordion-item {
    h4 {
        font-weight: 400;
        font-size: 1rem;
    }

    .accordion-content p {
        border: none;
        margin-top: 0;
    }
}

.accordion-toggle {
    display: none;
}


.accordion-item {
    h4 {
        font-weight: 400;
        font-size: 1rem;
    }

    .accordion-content p {
        border: none;
        margin-top: 0;
    }
}

.accordion-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
}

.accordion-header .fa-caret-down {
    transition: transform 0.3s ease;
    margin-left: auto;
    font-size: 18px;
}

.accordion-header .icon-circle {
    width: 32px;
    height: 32px;
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.accordion-content p {
    margin-bottom: 0;
    margin-top: 16px;
    padding-top: 18px;
    border-top: 1px solid var(--light-gray);

    @media(max-width: 768px) {
        padding-top: 16px;
        margin-top: 16px;
    }
}

.accordion-toggle:checked+.accordion-header+.accordion-content {
    max-height: 500px;
    /* ajusta si necesitás más */
}

.accordion-toggle:checked+.accordion-header .fa-caret-down {
    transform: rotate(180deg);
}

/* Solo aplicar este comportamiento en mobile */
@media (min-width: 768px) {
    .accordion-card {

        .accordion-toggle,
        .accordion-header .fa-caret-down {
            display: none;
        }

        .accordion-content {
            max-height: none;
        }

        .accordion-header {
            cursor: default;
        }
    }

    .accordion-col {
        display: flex;
        flex-grow: 1;
    }
}

/* Centrar el loader en la pantalla y asegurarse de que cubra todo */
.loader-container {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    /* 100% del alto de la ventana */
    width: 100vw;
    /* 100% del ancho de la ventana */
    position: fixed;
    top: 0;
    left: 0;
    background-color: white;
    /* Fondo blanco mientras el loader está visible */
    z-index: 999999;
    /* Asegurarse de que esté adelante de todo */
    overflow: hidden;
    /* Evitar el scroll de la página mientras el loader está visible */
}

/* Estilo del loader (spinner) */
.loader {
    border: 16px solid #f3f3f3;
    /* Gris claro */
    border-top: 16px solid #3FB9A4;
    /* Azul */
    border-radius: 50%;
    width: 120px;
    height: 120px;
    animation: spin 2s linear infinite;
    /* Girar continuamente */
}

/* Animación de giro */
@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}


.ts-min-h__responsive {
    min-height: 90vh;
    /* Para pantallas grandes */
}

@media (max-width: 768px) {
    .ts-min-h__responsive {
        min-height: 40vh;
        /* Para pantallas pequeñas (celulares) */
    }
}

@media (max-width: 1179px) {

    h1,
    .h1 {
        font-size: 2.3rem;
        /* Reducir el tamaño de la fuente para que todo el texto quepa */
        line-height: 3.5rem;
        /* Ajustar la altura de línea para mejor legibilidad */
    }
}

#timer {
    min-height: 20px;
    /* Asegura que siempre haya espacio para el temporizador */
    visibility: hidden;
    /* El temporizador está oculto pero aún ocupa espacio */
    margin-top: 15px;
    /* Añade espacio entre el botón y el temporizador */
    font-size: 16px;
    /* Ajuste opcional para el tamaño del texto */
    text-align: left;
    /* Alineación opcional del temporizador */
}

#timer.visible {
    visibility: visible;
    /* Muestra el temporizador cuando sea necesario */
}

/* Asegurar que el botón no sea visible ni clickeable, pero siga ocupando espacio */
.hidden-button {
    visibility: hidden;
    /* Oculta el botón pero sigue ocupando espacio */
    pointer-events: none;
    /* Desactiva la capacidad de hacer clic */
}

.error-message1 {
    visibility: hidden;
    /* Oculta el mensaje pero sigue ocupando espacio */
    pointer-events: none;
    /* Desactiva la capacidad de hacer clic */
    margin-bottom: 8px;
    min-height: 25px;
    /* Asegura que siempre ocupe espacio incluso cuando no hay contenido */
}

.error-message2 {
    visibility: hidden;
    /* Oculta el mensaje pero sigue ocupando espacio */
    pointer-events: none;
    /* Desactiva la capacidad de hacer clic */
    margin-bottom: 8px;
    padding: 5px;
    min-height: 20px;
    /* Asegura que siempre ocupe espacio incluso cuando no hay contenido */
}

@media (max-width: 768px) {
    .request-button {
        margin-bottom: 20px;
    }
}

input,
select {
    width: 100%;
    padding: 10px;
    margin-bottom: 15px;
    border-radius: clamp(20px, 2vw, 20px);
    border: 1px solid #ccc;
}


.price-details {
    margin-bottom: 15px;
    /* Añadir margen inferior entre los bloques de precios */
}

.price-text {
    line-height: 1.5;
    /* Aumentar espacio entre líneas */
    font-size: 14px;
    /* Reducir tamaño de fuente si es necesario */
}

@media (max-width: 768px) {
    .price-details {
        margin-bottom: 10px;
        /* Ajustar el espaciado en pantallas más pequeñas */
    }
}

.progress-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    width: 100%;
    max-width: 600px;
    margin: 40px auto;

    @media (max-width: 767px) {
        margin-top: 80px;
    }
}

.progress-bar {
    position: absolute;
    top: 25%;
    /* Coloca la línea en el centro vertical de los círculos */
    left: 0;
    transform: translateY(-50%);
    height: 4px;
    width: calc(100% - 50px);
    /* Ajusta el ancho para terminar dentro del último círculo */
    background-color: #e0e0e0;
    z-index: 1;
}

.step {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 2;
}

.step.active:not(.first-active)::before {
    content: '';
    position: absolute;
    top: 25%;
    right: 50px;
    transform: translateY(-50%);
    height: 4px;
    width: 170%;
    z-index: 3;
    background-color: #3FB9A4;

    @media(max-width: 767px) {
        width: 125%;
    }

    @media(max-width: 500px) {
        width: 100%;
    }

    @media(max-width: 450px) {
        width: 80%;
    }

    @media(max-width: 400px) {
        width: 70%;
    }

    @media(max-width: 380px) {
        width: 60%;
    }
}

.step .circle {
    width: 50px;
    height: 50px;
    border-radius: clamp(20px, 2vw, 20px);
    background-color: #e0e0e0;
    color: #5f5f5f;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    transition: background-color 0.3s;
    position: relative;
    z-index: 4;
}

.step p {
    margin-top: 10px;
    font-size: 14px;
    color: #333;
    text-align: center;
}

/* Clase para destacar pasos completados */
.step.completed .circle {
    background-color: #3FB9A4;
    color: white;
    z-index: 5;
}


/* Estilos para la ventana scrolleable */
.scrollable-window {
    width: 100%;
    max-height: 500px;
    /* Ajusta la altura máxima */
    overflow-y: scroll;
    border: 1px solid #ccc;
    padding: 20px;
    font-family: Arial, sans-serif;
    font-size: 14px;
    line-height: 1.4;
    /* Ajuste de interlineado */
}


/* Estilos para el botón deshabilitado */
#submitBtn:disabled {
    cursor: not-allowed;
}


/* Estilos de las opciones de pago */
.payment-option input {
    display: none;
    /* Oculta los inputs de tipo radio */
}

.payment-options {
    display: flex;
    gap: 5px;
    margin-bottom: 20px;
    justify-content: center;
    flex-wrap: wrap;
    /* Permite que las tarjetas se ajusten en múltiples filas si es necesario */
}

.payment-option {
    max-width: 100%;
    /* Define un ancho máximo fijo */
    width: 100%;
    box-sizing: border-box;
}

.payment-card {
    border: 1px solid #ddd;
    padding: 10px;
    border-radius: clamp(20px, 2vw, 20px);
    width: 100%;
    height: 160px;
    /* Altura fija para todas las tarjetas */
    text-align: center;
    cursor: pointer;
    transition: background-color 0.3s ease, border-color 0.3s ease;
    display: block;
    /* Asegura que no se use flexbox */
    box-sizing: border-box;
}

.payment-card h5 {
    font-size: 16px;
    font-weight: bold;
    margin: 0 0 10px;
}

.payment-card p {
    font-size: 14px;
    color: #666;
    margin: 5px 0;
}

.payment-option input[type="radio"]:checked+.payment-card {
    border-color: #3FB9A4;
    background-color: #f0f8ff;
}

/* Media query para pantallas pequeñas */
@media (max-width: 768px) {
    .payment-options {
        flex-direction: column;
        align-items: center;
    }
}

/* Estilo del selector de moneda */
.currency-select {
    width: 100%;
    padding: 10px;
    border-radius: clamp(20px, 2vw, 20px);
    border: 1px solid #ddd;
    font-size: 14px;
}

.currency-select option {
    font-size: 14px;
}

/* Estilos para organizar en dos columnas en pantallas grandes */
.form-content {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.form-content .col-sm-6 {
    flex: 1;
}

/* Ajuste de las columnas para que ocupen toda la fila en pantallas pequeñas */
@media (max-width: 768px) {
    .form-content {
        flex-direction: column;
    }
}

/* Estilos para el cuadro de información de pago */
.payment-info {
    border: 1px solid #ddd;
    padding: 15px;
    border-radius: clamp(20px, 2vw, 20px);
    margin-top: 1.5em;
    background-color: #f9f9f9;
}

.payment-info h5 {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 10px;
}

.payment-info p {
    font-size: 14px;
    color: #666;
    margin-bottom: 10px;
}

.payment-info ul {
    list-style-type: none;
    padding: 0;
}

.payment-info li {
    font-size: 14px;
    margin-bottom: 5px;
}

.circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    /* Tamaño del círculo */
    height: 60px;
    border-radius: clamp(20px, 2vw, 20px);
    /* Hace que el contenedor sea circular */
    background-color: #3FB9A4;
    /* Color de fondo del círculo */
    color: white;
    /* Color del ícono */
    font-size: 24px;
    /* Tamaño del ícono */
}



/* Mobile bottom button, default is hidden */
.mobile-bottom-button {
    display: none;
    /* Oculto por defecto en pantallas grandes */
    position: fixed;
    bottom: 0px;
    left: 0;
    width: 100%;
    padding: 14px 20px;
    background-color: #fff;
    z-index: 1000;
    box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.2);
    align-items: center;
    box-sizing: border-box;
    justify-content: space-between;
}

.mobile-bottom-button #property-price5 {
    font-size: 18px;
    font-weight: 600;
    font-family: 'Poppins', sans-serif;
}

.price-container {
    font-size: 18px;
    color: #333;
    /* Text color for price */
    margin-right: 10px;
    /* Space between price and button */
}

/* Show the button on small screens */
.mobile-bottom-button a {
    color: #fff;
    /* Text color */
    bottom: 1px;
    left: 0px;
    font-size: 18px;
    padding: 10px 20px;
    text-decoration: none;
}

/* Ajustes específicos para pantallas pequeñas */
@media (max-width: 768px) {
    .mobile-bottom-button {
        display: flex;
        /* Mostrar solo en pantallas de hasta 768px */
    }

    /* Opcional: Ocultar el botón flotante de escritorio en dispositivos móviles */
    .floating-button-container {
        display: none;
    }
}


#bookButton1 {
    margin-left: 0;
    float: left;
    /* Alinea el botón completamente al margen izquierdo */
}

/* Contenedor principal */
.pricing-detail {
    display: flex;
    /* Alinea los elementos en una fila */
    align-items: center;
    /* Centra verticalmente los elementos */
    gap: 15px;
    /* Espaciado entre la imagen y el texto */
    margin-bottom: 20px;
}

/* Imagen */
.pricing-detail img {
    width: 80px;
    /* Tamaño fijo de la imagen */
    height: 80px;
    border-radius: clamp(20px, 2vw, 20px);
    /* Bordes redondeados */
    object-fit: cover;
    /* Ajusta la imagen a su contenedor sin distorsionarla */
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
    /* Sombra para darle profundidad */
}

/* Contenedor del texto */
.pricing-text {
    display: flex;
    flex-direction: column;
    /* Apila los textos verticalmente */
    gap: 5px;
}

/* Título principal */
.pricing-text h2 {
    font-size: 18px;
    font-weight: bold;
    margin: 0;
    text-align: left;
}

/* Subtítulo */
.pricing-text h4 {
    font-size: 14px;
    font-weight: normal;
    color: #555;
    /* Color gris */
    margin: 0;
    text-align: left;
}


.navbar-toggler-icon {
    background-image: none !important;
    /* Elimina el ícono predeterminado de Bootstrap */
    width: 30px;
    height: 3px;
    background-color: white;
    /* Cambia este color al que necesites */
    display: block;
    position: relative;
}

.navbar-toggler-icon::before,
.navbar-toggler-icon::after {
    content: "";
    width: 30px;
    height: 3px;
    background-color: white;
    /* Cambia este color */
    display: block;
    position: absolute;
    left: 0;
}

.navbar-toggler-icon::before {
    top: -8px;
    /* Ajusta la separación superior */
}

.navbar-toggler-icon::after {
    bottom: -8px;
    /* Ajusta la separación inferior */
}

.navbar-toggler {
    border: none !important;
    background-color: transparent !important;
}


/* Contenedor de cada filtro */
.filter-pill {
    display: flex;
    flex-direction: column;
    margin-right: 10px;
    flex-grow: 1;
}

/* Responsive: mobile */
@media (max-width: 768px) {
    .ts-search-bar-airbnb-style {
        flex-direction: column;
    }

    .filter-pill {
        width: 100%;
    }

    .filter-select {
        width: 100%;
    }
}

/* Footer intacto */
#ts-footer {
    position: relative;
    z-index: 10;
}

/* Mapa intacto */
.map-container {
    position: relative;
    height: 50vh;
    width: 100%;
    z-index: 0;
}

@media (min-width: 768px) {
    .map-container {
        width: 100%;
        height: calc(100vh - 74px);
        left: 0;
        top: 74px;
        position: sticky;
    }

    .scroll-column {
        overflow-y: auto;
        height: calc(100vh - 90px);
    }
}

.sort-btn {
    border-radius: clamp(20px, 2vw, 20px);
    padding: 0.5rem 1.2rem;
    font-weight: 500;
    background: #fff;
    border: 1.5px solid #ccc;
    color: #333;
    transition: all 0.2s ease;
}

.sort-btn:hover {
    background-color: #f3f3f3;
    border-color: #bbb;
    color: #000;
}

.sort-btn.active {
    border-color: #5bc0b1;
    background-color: #e9f8f6;
    color: #000;
}

/* Contenedor alineado a la derecha */
.filter-sort {
    text-align: right;
}

/* Espaciado entre botones */
.filter-sort .d-flex {
    gap: 1rem;
    /* más aire entre los botones */
}

/* Encabezado de la barra de búsqueda */
.ts-search-bar-airbnb-style h5 {
    font-size: 1.15rem;
    font-weight: 600;
    margin-bottom: 0;
}

/* Ícono de lupa en la cabecera */
.ts-search-bar-airbnb-style i.fas.fa-search {
    font-size: 1rem;
    color: #888;
    margin-right: 0.4rem;
}

/* Subtítulo sutil en cabecera */
.ts-search-bar-airbnb-style .subtext {
    font-size: 0.9rem;
    color: #888;
    font-weight: 400;
}

/* Responsive (opcional) */
@media (max-width: 768px) {
    .filter-sort {
        text-align: left;
        margin-top: 1rem;
    }
}


.sort-container {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.5rem;
    margin-bottom: 1.5rem;
    padding: 0;
}

.sort-clean {
    border: 1px solid #e0e0e0;
    background-color: #fff;
    border-radius: 20px;
    font-size: 0.9rem;
    font-weight: 500;
    color: #444;
    cursor: pointer;
    appearance: none;
    padding: 0.5rem 2rem 0.5rem 1rem;
    margin: 0;
    min-width: unset;
    /* Removed fixed min-width 140px */
    width: auto;
    /* Let content define width */
    transition: all 0.2s ease;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23555' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 10px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
}

.sort-clean:hover {
    border-color: #ccc;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.sort-clean:focus {
    outline: none;
}


.ts-search-bar-airbnb-style .filter-pill {
    flex: 1 1 0;
    min-width: 220px;
}

.scroll-button {
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0.8s ease;
    z-index: 9999;
}

.scroll-button.hide {
    opacity: 0;
    pointer-events: none;
}

.form-step {
    display: none;
}

.form-step.step-active {
    display: block;
    animation: visitFadeIn 0.3s ease;
}

@keyframes visitFadeIn {
    from {
        opacity: 0;
        transform: translateY(8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.nav-buttons {
    display: flex;
    justify-content: space-between;
    margin-top: 20px;
    padding: 0 4px;
}

/* ===== Visit Modal Nav Buttons ===== */
.visit-nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 28px;
    border-radius: 14px;
    font-size: 14px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: 'Poppins', sans-serif;
}

.visit-nav-btn--back {
    background-color: #f1f5f9;
    color: #64748b;
}

.visit-nav-btn--back:hover {
    background-color: #e2e8f0;
    color: #1a1a2e;
    transform: translateX(-2px);
}

.visit-nav-btn--next {
    background-color: #3FB9A4;
    color: white;
    box-shadow: 0 4px 12px rgba(92, 183, 172, 0.25);
}

.visit-nav-btn--next:hover {
    background-color: #4aa399;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(92, 183, 172, 0.35);
}


/* ===== Visit Modal Card Styling ===== */
/* Desktop */
#step-2 .card-custom,
#step-3 .card-custom,
#step-4 .card-custom {
    min-height: 500px;
    max-height: 600px;
    max-width: 500px;
    min-width: 500px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    border-radius: 16px;
    border: 1.5px solid #e2e8f0;
    background: white;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

/* Mobile */
@media (max-width: 767px) {

    #step-2 .card-custom,
    #step-3 .card-custom,
    #step-4 .card-custom {
        max-height: 600px;
        min-height: 500px;
        max-width: 100%;
        min-width: 280px;
        border-radius: 14px;
    }
}

/* ===== Visit Modal Form Inputs ===== */
#multiStepForm .form-group {
    margin-bottom: .8rem !important;
}

#multiStepForm label {
    margin-bottom: 0.25rem !important;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.3;
    color: #334155;
    letter-spacing: 0.01em;
}

#multiStepForm input.form-control,
#multiStepForm select.form-control {
    margin-bottom: 0 !important;
    padding: 0.5rem 0.75rem;
    font-size: 0.9rem;
    border-radius: 10px;
    border: 1.5px solid #e2e8f0;
    background: #fafbfc;
    color: #1a1a2e;
    transition: all 0.2s ease;
}

#multiStepForm input.form-control:focus,
#multiStepForm select.form-control:focus {
    border-color: #3FB9A4;
    box-shadow: 0 0 0 3px rgba(92, 183, 172, 0.15);
    background: white;
    outline: none;
}

#multiStepForm input.form-control::placeholder {
    color: #94a3b8;
    font-weight: 400;
}

/* Reduce spacing for sub-text */
#multiStepForm .form-text,
#multiStepForm small,
#multiStepForm p {
    margin-top: 0.4rem !important;
    margin-bottom: 0 !important;
    font-size: 0.72rem;
    line-height: 1.2;
    color: #94a3b8;
}

#multiStepForm .form-row {
    margin-left: 0;
    margin-right: 0;
}

/* Steps 3 & 4 compact layout */
#step-3 .form-group,
#step-4 .form-group {
    margin-bottom: 0.8rem !important;
}

#step-3 input.form-control,
#step-3 select.form-control,
#step-4 input.form-control,
#step-4 select.form-control {
    padding: 0.5rem 0.75rem !important;
    font-size: 0.9rem !important;
    margin-bottom: 0 !important;
    border-radius: 10px;
    border: 1.5px solid #e2e8f0;
    background: #fafbfc;
    transition: all 0.2s ease;
}

#step-3 input.form-control:focus,
#step-3 select.form-control:focus,
#step-4 input.form-control:focus,
#step-4 select.form-control:focus {
    border-color: #3FB9A4;
    box-shadow: 0 0 0 3px rgba(92, 183, 172, 0.15);
    background: white;
}

#step-3 label,
#step-4 label {
    margin-bottom: 0.25rem !important;
    font-size: 0.82rem !important;
    font-weight: 600;
    line-height: 1.3 !important;
    color: #334155;
}

#step-3 .form-text,
#step-4 .form-text,
#step-3 small,
#step-4 small,
#step-3 p,
#step-4 p {
    margin-top: 0.4rem !important;
    margin-bottom: 0 !important;
    font-size: 0.72rem;
    line-height: 1.2;
    color: #94a3b8;
}

/* ===== Visit Modal Step 4 Action Buttons ===== */
#step-4 #sendCodeBtn,
#step-4 #validateCodeBtn {
    border-radius: 14px;
    font-weight: 600;
    font-size: 14px;
    padding: 12px 24px;
    font-family: 'Poppins', sans-serif;
    transition: all 0.2s ease;
    background-color: #1a1a2e;
    border-color: #1a1a2e;
}

#step-4 #sendCodeBtn:hover,
#step-4 #validateCodeBtn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(26, 26, 46, 0.2);
}

/* ===== Mobile-specific refinements ===== */
@media (max-width: 767px) {

    #multiStepForm input.form-control,
    #multiStepForm select.form-control {
        padding: 0.4rem 0.6rem;
        font-size: 0.85rem;
    }

    #multiStepForm label {
        font-size: 0.78rem;
        margin-bottom: 0.15rem;
    }

    #multiStepForm .form-text,
    #multiStepForm small,
    #multiStepForm p {
        font-size: 0.65rem;
    }

    #multiStepForm .form-row {
        margin-left: 0;
        margin-right: 0;
    }

    #step-3 .form-group,
    #step-4 .form-group {
        margin-bottom: 0.6rem !important;
    }

    #step-3 input.form-control,
    #step-3 select.form-control,
    #step-4 input.form-control,
    #step-4 select.form-control {
        font-size: 0.85rem !important;
        padding: 0.4rem 0.6rem !important;
    }

    #step-3 label,
    #step-4 label {
        font-size: 0.78rem !important;
        line-height: 1.15 !important;
    }

    #step-3 .form-text,
    #step-4 .form-text,
    #step-3 small,
    #step-4 small,
    #step-3 p,
    #step-4 p {
        font-size: 0.65rem !important;
    }

    .visit-nav-btn {
        padding: 10px 22px;
        font-size: 13px;
    }
}

/* ===== Visit Modal ===== */
#visitModal .modal-body {
    padding: 4px 24px 24px;
}

#visitModal .modal-content {
    border-radius: 20px;
    border: none;
}


/* Para dispositivos móviles, ajustamos el tamaño del texto */
@media (max-width: 767px) {

    /* Reducimos el tamaño de la fuente del título "Verified by" */
    .text-white h3 {
        font-size: 1rem;
        /* Tamaño de fuente más pequeño */
    }

    /* Si es necesario, también puedes reducir el tamaño del logo de Flatmates */
    .text-white h3 img {
        height: 20px;
        /* Reducción del tamaño del logo */
    }

    /* Ajuste del tamaño del texto del párrafo */
    .text-white p {
        font-size: 1rem;
        /* Reducir tamaño de la fuente en móvil */
    }
}


@media (max-width: 768px) {
    #ts-main {
        padding-top: 140px;
        /* Ajustalo según la altura total del nav + banner en mobile */
    }
}

/* Fuerza el carrusel a no dejar espacio inferior */
#gallery-carousel {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    height: auto !important;
    overflow: hidden;
}

/* Elimina padding/margen interno de Owl Carousel */
#gallery-carousel .owl-carousel,
#gallery-carousel .owl-stage-outer,
#gallery-carousel .owl-stage {
    margin-bottom: 10px !important;
    padding-bottom: 0 !important;
    height: auto !important;
}

/* Alineación entre carrusel y mapa */
.flex-row-reverse-desktop.align-items-start {
    align-items: flex-start !important;
}

/* Elimina margen entre mapa y contenido debajo */
#ts-hero {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Asegura que el container siguiente no agregue espacio */
#room-list,
#property-list,
#property-location-label,
#ts-hero+.container {
    margin-top: 0 !important;
    padding-top: 0 !important;
}


#ts-hero.position-sticky {
    top: 0 !important;
    /* fuerza a que empiece desde el top real */
    margin-top: 20px !important;
    padding-top: 0 !important;
}


.gm-style-iw,
.gm-style-iw-d,
.gm-style-iw-c {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: hidden !important;
    border-radius: clamp(20px, 2vw, 20px);
}

.gm-style-iw-t::after {
    display: none !important;
    /* Quita el borde tipo “pico” */
}

.text-dark-secondary {
    color: #333;
    font-size: 0.95rem;
}


#googleMap {
    position: relative;
}

#googleMap::after {
    content: "Click to move the map";
    position: absolute;
    left: 12px;
    top: 60px;
    padding: 6px 10px;
    background: rgba(0, 0, 0, .6);
    color: #fff;
    font-size: 12px;
    border-radius: clamp(20px, 2vw, 20px);
    pointer-events: none;
    opacity: 1;
    transition: opacity .2s ease;
}

#googleMap.map-active::after {
    opacity: 0;
    /* se oculta cuando está activo */
}


/* Tiles de método de pago */
.payment-tile {
    padding: .875rem 1rem;
    border: 2px solid var(--bs-border-color);
    border-radius: clamp(20px, 2vw, 20px);
    /* redondeado suave como tu UI */
    background-color: #ffffff;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.payment-tile .tile-icon {
    font-size: 1.15rem;
    line-height: 1;
}

.payment-tile .tile-badge {
    display: none;
    width: 28px;
    height: 28px;
    border-radius: clamp(20px, 2vw, 20px);
    align-items: center;
    justify-content: center;
    background: var(--bs-primary);
    color: #ffffff;
}

/* Estado hover/focus */
.payment-tile:hover {
    border-color: var(--bs-primary);
}

.btn-check:focus+.payment-tile {
    box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .15);
}

/* Estado seleccionado */
.btn-check:checked+.payment-tile {
    border-color: var(--bs-primary);
    background-color: var(--bs-primary-bg-subtle, #eef5ff);
    /* Bootstrap 5.3 var */
    box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .12);
}

.btn-check:checked+.payment-tile .tile-badge {
    display: inline-flex;
    color: #01930b;
}

#amount #dueDateTop {
    display: block;
    font-size: .9rem;
    /* más chico */
    line-height: 1.1;
    margin-top: .25rem;
    color: #6c757d;
    /* similar a text-muted */
}


/* Barra sticky desktop */
/* Barra sticky desktop (Floating Button) */
.desktop-sticky-cta {
    position: fixed;
    bottom: 30px;
    /* Floating at the bottom */
    right: 30px;
    z-index: 1040;
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.desktop-sticky-cta.show {
    display: block !important;
    opacity: 1 !important;
}

.desktop-sticky-cta .btn-primary {
    background-color: var(--secondary-color);
    border-color: var(--secondary-color);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

.desktop-sticky-cta .btn-primary:hover {
    background-color: #4aa399;
    /* Darker shade of teal */
    border-color: #4aa399;
    transform: translateY(-2px);
    transition: all 0.2s ease;
}

@media (max-width: 767.98px) {
    .desktop-sticky-cta {
        display: none !important;
    }
}

/* Mobile CTA (ya lo tenías) */
@media (max-width: 1024px) {
    body.padding-bottom-mobile {
        padding-bottom: 140px;
    }
}

.mobile-bottom-cta {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    background: #fff;
    border-top: 1px solid #e5e5e5;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    box-shadow: 0 -6px 18px rgba(0, 0, 0, .06);
}

.mobile-bottom-cta .price-container {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.mobile-bottom-cta .tag {
    display: inline-block;
    padding: 4px 8px;
    border-radius: clamp(20px, 2vw, 20px);
    font-size: 12px;
    background: #f6f6f6;
    color: #333;
    margin-top: 4px;
}

@media (min-width:768px) {
    .mobile-bottom-cta {
        display: none !important;
    }
}


@media (min-width: 992px) {
    .js-sticky {
        position: sticky;
        top: var(--sticky-top, 96px);
    }
}


#reservationDisclaimer.booking-disclaimer {
    margin: 0 0 0 0 !important;
    align-items: center;
    justify-content: center;
    text-align: center;
}


/* Barra */
#secondary-nav-scroll {
    position: relative;
    overflow: visible;
    /* evita que el contenedor “corte” el scroll */
}

/* Pista que scrollea */
#secondary-nav-scroll .secondary-nav__scroll-container {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    /* Firefox */
}

/* La lista NO se debe envolver y debe medir lo que necesita */
#secondary-nav-scroll .secondary-nav__list {
    display: flex;
    flex-wrap: nowrap;
    /* <- clave */
    gap: 1.25rem;
    /* separador opcional */
    margin: 0;
    padding: 0 0 .25rem 0;
    min-width: max-content;
    /* <- fuerza ancho total = suma de ítems */
}

/* Cada item ocupa su ancho y no se estira */
#secondary-nav-scroll .secondary-nav__list__item {
    flex: 0 0 auto;
    /* <- clave */
    list-style: none;
}

/* (opcional) oculta la flecha si no hay overflow */
#secondary-nav-scroll .secondary-nav__arrow {
    position: absolute;
    right: .25rem;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    user-select: none;
    padding: .25rem .4rem;
    line-height: 1;
    background: #fff;
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: 0 2px 6px rgba(0, 0, 0, .06);
}

/* espacio para que la flecha no tape el último item */
#secondary-nav-scroll .secondary-nav__scroll-container {
    padding-right: var(--nav-arrow-pad, 56px);
    /* se ajusta por JS */
}

/* flecha */
#secondary-nav-scroll .secondary-nav__arrow {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}

/* === Tipografías consistentes con el index === */
body {
    font-family: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif;
}

h1,
h2,
h3,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5,
.display-6 {
    font-family: 'Poppins', sans-serif;
    letter-spacing: -0.01em;
}

/* === Lockup "c[heart]-living" con animación === */
.coliving-lockup {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    line-height: 1;
    color: #ffffff;
    /* mismo tono del hero */
}

.coliving-lockup i {
    font-style: italic;
}

.coliving-lockup .heart {
    width: 34px;
    height: 30px;
    color: #ffffff;
    /* usa currentColor del padre */
    transform-origin: center;
    will-change: transform;
    animation: heart-beat 1.2s ease-in-out infinite;
}

/* Animación tipo "doble pulso" como en el index */
@keyframes heart-beat {
    0% {
        transform: scale(1);
    }

    14% {
        transform: scale(1.18);
    }

    28% {
        transform: scale(1);
    }

    42% {
        transform: scale(1.12);
    }

    70%,
    100% {
        transform: scale(1);
    }
}

/* Respeto a usuarios con reduced motion */
@media (prefers-reduced-motion: reduce) {
    .coliving-lockup .heart {
        animation: none;
    }
}

/* (opcional) Si querés que los números de métricas usen Poppins */
.metric-number {
    font-family: 'Poppins', sans-serif;
}

/* Evita que la barra del navegador “robe” altura */
#ts-hero .ts-full-screen,
#ts-hero .ts-hero--overlay {
    min-height: 100dvh;
    /* dinámico: respeta UI del navegador */
}

/* Fallback para navegadores antiguos */
@supports not (height: 100dvh) {

    #ts-hero .ts-full-screen,
    #ts-hero .ts-hero--overlay {
        min-height: 100vh;
    }
}

/* Empuja el contenido un pelín hacia arriba en móviles */
.ts-hero--container {
    padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px));
}

/* Opcional: botón un poco más alto del borde */
.ts-hero--container .btn.btn-primary.btn-xl {
    margin-bottom: 100px;
}

/* La sección Our story dentro del hero comparte ancho */
#ts-hero .hero-inner>section.py-5 {
    max-width: var(--headline-width);
    margin-left: 0;
}

/* ===== Pill gris: "c ❤ -living" ===== */
.coliving-lockup {
    display: inline-flex;
    align-items: center;
    /* mejor alineación vertical */
    gap: 0.05em;
    /* separa “un cachito” más */
    padding: .20em .75em .25em;
    background: #eceff1;
    border-radius: clamp(20px, 2vw, 20px);
    white-space: nowrap;
    line-height: 1.05;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .04);
    margin-right: .25em;
    color: #111 !important;
    /* todo el pill en negro */
}

.coliving-lockup .heart {
    width: 1em;
    height: .95em;
    display: block;
    margin: 0 -.02em;
    /* leve compensación del viewBox */
    transform: translateY(.06em);
    color: currentColor;
}

.coliving-lockup i {
    font-style: italic;
    font-weight: 700;
    color: inherit;
    margin-left: -.01em;
    /* acerca suavemente el guion */
}

#ts-hero .hero-subtitle {
    color: #444 !important;
    opacity: .9;
    margin: 0 0 .75rem;
}

/* --- H1 y Our story comparten ancho --- */
#ts-hero .hero-inner h1 {
    max-width: var(--headline-width);
    text-wrap: balance;
}

#ts-hero .hero-inner>section.py-5,
#ts-hero .hero-inner>.hero-story {
    max-width: var(--headline-width);
    margin-left: 0;
}

/* --- Pill “c ❤ -living” --- */
.coliving-lockup {
    display: inline-flex;
    align-items: center;
    gap: var(--pill-gap);
    padding: .2em var(--pill-pad-x) .25em;
    background: #eceff1;
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .04);
    white-space: nowrap;
    line-height: 1.05;
    color: #111 !important;
}

.coliving-lockup .heart {
    width: 1em;
    height: .95em;
    display: block;
    color: currentColor;
    transform: translateY(.06em);
    /* aprieta alrededor del corazón */
    margin: 0 var(--heart-tight);
}

.coliving-lockup i {
    font-style: italic;
    font-weight: 700;
    color: inherit;
}

/* ================== Mobile ================== */
@media (max-width: 575.98px) {

    /* escala del H1 en mobile (parecido a tu mock) */
    #ts-hero .hero-inner h1 {
        font-size: clamp(28px, 7vw + 4px, 36px);
        line-height: 1.15;
    }

    /* el subtítulo y el bloque Our story siguen ese ancho */
    #ts-hero .hero-subtitle,
    #ts-hero .hero-inner>section.py-5,
    #ts-hero .hero-inner>.hero-story {
        max-width: var(--headline-width);
    }

    /* el pill no se dispare de alto */
    .coliving-lockup {
        font-size: .85em;
    }
}

/* Logos de partners: tamaños consistentes y buen contraste */
.partner-logo {
    max-height: 56px;
    /* ajustá a 48–64 según gusto */
    width: auto;
    /* mantiene proporción */
    object-fit: contain;
    filter: grayscale(100%);
    /* look más “trust” */
    opacity: .8;
    transition: filter .2s ease, opacity .2s ease, transform .2s ease;
}

.partner-logo:hover {
    filter: none;
    opacity: 1;
    transform: translateY(-2px);
}

/* Ajustes de spacing en pantallas grandes (opcional) */
@media (min-width: 992px) {
    .about-partners .row>.col {
        padding-inline: 1rem;
    }
}

.partner-logo {
    max-height: 56px;
    /* ajustá 48–64 según gusto */
    width: auto;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: .8;
    transition: filter .2s, opacity .2s, transform .2s;
}

.partner-logo:hover {
    filter: none;
    opacity: 1;
    transform: translateY(-2px);
}

/* Asegurar wrap por si algún estilo lo anuló */
.partners-row {
    flex-wrap: wrap !important;
}

/* (Opcional) fuerza 1 por fila en móviles aunque haya overrides raros */
@media (max-width: 575.98px) {
    .partners-row>[class*="col-"] {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}

/* Más separación vertical entre partners en mobile */
@media (max-width: 575.98px) {
    .partners-row {
        --bs-gutter-y: 4rem;
        /* ↑ ajustá 2.5–4rem a gusto */
    }
}

@media (max-width: 575.98px) {
    .partner-logo {
        margin-bottom: 4rem;
    }
}

/* Más aire arriba/abajo del bloque de partners */
.partners-row {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

/* Aire vertical por cada logo (la columna que lo envuelve) */
.partners-row>div {
    padding-top: .75rem;
    padding-bottom: .75rem;
}

/* Mobile: más separación entre filas */
@media (max-width: 575.98px) {
    .partners-row {
        --bs-gutter-y: 3rem;
        /* separa logos verticalmente */
        padding-top: 1.25rem;
        padding-bottom: 1.25rem;
    }
}

/* Tablet: dos columnas con más aire entre ellas */
@media (min-width: 576px) and (max-width: 991.98px) {
    .partners-row {
        --bs-gutter-x: 3rem;
        /* separa columnas */
        --bs-gutter-y: 2.5rem;
        /* separa filas */
        padding-top: 1rem;
        padding-bottom: 1rem;
    }
}

/* ==== Pill “c ❤ -living” (una sola definición) ==== */
#ts-hero .hero-inner {
    /* controla el tamaño del fondo gris */
    --pill-pad-x: .5em;
    /* ancho del pill (izq/der) */
    --pill-pad-y: .18em;
    /* alto del pill (arr/abajo) */
    --pill-gap: .05em;
    --heart-tight: -.05em;
}

/* Tag gris para títulos de sección */
.section-tag {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem 1rem;
    border-radius: clamp(20px, 2vw, 20px);
    /* pill total */
    background: #f1f3f5;
    /* gris suave */
    color: #111827;
    /* texto oscuro */
    font-weight: 600;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7), 0 1px 2px rgba(16, 24, 40, .04);
    /* leve relieve */
}

.section-tag i {
    font-size: .95rem;
    opacity: .85;
}

/* Logos: altura consistente y look sobrio */
.partners-row .partner-logo {
    height: 42px;
    /* normaliza alturas */
    width: auto;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .85;
    transition: filter .2s, opacity .2s, transform .2s;
}

.partners-row .partner-logo:hover {
    filter: none;
    opacity: 1;
    transform: translateY(-2px);
}

/* En pantallas md+ un poquito más grandes */
@media (min-width:768px) {
    .partners-row .partner-logo {
        height: 48px;
    }
}

/* Tag gris de partners con el MISMO gris que co-living */
.about-partners .section-tag {
    background: var(--pill-gray);
    box-shadow: inset 0 0 0 1px var(--pill-stroke);
    color: #111;
    /* mismo contraste */
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem 1rem;
    font-weight: 600;
}

.coliving-lockup {
    background: var(--pill-gray);
    box-shadow: inset 0 0 0 1px var(--pill-stroke);
}

/* Tag gris de partners con el MISMO gris que co-living */
.about-partners .section-tag {
    background: var(--pill-gray);
    box-shadow: inset 0 0 0 1px var(--pill-stroke);
    color: #111;
    /* mismo contraste */
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem 1rem;
    font-weight: 600;
}

.partner-link {
    display: inline-block;
}

.partner-link:focus-visible {
    outline: 2px solid #111;
    outline-offset: 3px;
    border-radius: clamp(20px, 2vw, 20px);
}

.partner-link .partner-logo {
    cursor: pointer;
}

/* ===== Mission counters (como en la imagen) ===== */
.mission-counters .num {
    font-weight: 700;
    font-size: clamp(28px, 3.4vw, 40px);
    line-height: 1;
}

.mission-counters .label {
    color: #6b7280;
    /* gris suave */
    font-size: .875rem;
    margin-top: .35rem;
}

/* ===== Cards split con banda azul ===== */
.card-split {
    border: 0;
    border-radius: clamp(20px, 2vw, 20px);
    overflow: hidden;
    /* redondeo real en imagen y banda */
    background: #fff;
}

.card-split .card-band {
    background: #1f3350;
    /* azul oscuro de la banda */
    color: #fff;
    text-align: center;
    font-weight: 700;
    padding: .65rem 1rem;
}

.card-split .img-side {
    min-height: 260px;
    /* asegura alto visual parejo */
}

.card-split .img-side img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.card-split .card-content {
    padding: 1.25rem;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Botones de íconos (redondos) */
.icon-btn {
    width: 36px;
    height: 36px;
    border-radius: clamp(20px, 2vw, 20px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f3f5f7;
    color: #111;
    text-decoration: none;
    transition: transform .15s ease, background .2s ease;
}

.icon-btn:hover {
    transform: translateY(-2px);
    background: #e9ecef;
}

/* Responsive: acomodo en mobile */
@media (max-width: 575.98px) {
    .card-split .img-side {
        min-height: 220px;
    }
}

/* Panel grande con borde y sombra suave (como el mock) */
.advisors-panel {
    background: #fff;
    border: 1px solid rgba(17, 24, 39, .08);
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 8px 24px rgba(16, 24, 40, .06);
}

/* Título “Meet our” pequeño (eyebrow) */
.eyebrow {
    font-size: .9rem;
    font-weight: 600;
    color: #111;
}

/* Card pequeña tipo “pill” para cada advisor */
.advisor-card {
    background: #f3f5f7;
    border: 1px solid rgba(17, 24, 39, .08);
    border-radius: clamp(20px, 2vw, 20px);
    padding: 12px 14px;
    transition: transform .15s ease, background .2s ease, box-shadow .2s ease;
}

.advisor-card:hover {
    background: #eef1f4;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(16, 24, 40, .08);
}

/* Avatar circular */
.advisor-card .avatar {
    width: 56px;
    height: 56px;
    border-radius: clamp(20px, 2vw, 20px);
    object-fit: cover;
    display: block;
    background: #e9ecef;
}

/* Responsive: un poco más compacto en mobile */
@media (max-width:575.98px) {
    .advisors-panel {
        border-radius: clamp(20px, 2vw, 20px);
    }

    .advisor-card .avatar {
        width: 52px;
        height: 52px;
    }
}

/* más espacio entre la foto y el texto dentro de cada advisor */
.advisor-card .avatar {
    margin-right: clamp(14px, 2.2vw, 22px);
}

/* En mobile, fijá un mínimo cómodo para la foto */
@media (max-width: 575.98px) {
    .card-split .img-side {
        min-height: 200px;
    }
}

/* (Opcional) misma altura visual para las fotos en desktop entre ambas cards */
@media (min-width: 992px) {
    :root {
        --teamImgH: clamp(360px, 34vw, 200px);
    }

    .card-split .img-side {
        min-height: var(--teamImgH);
    }
}

.press-row-card {
    background: #fff;
    border: 1px solid rgba(17, 24, 39, .08);
    border-radius: clamp(20px, 2vw, 20px);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}

.press-cover {
    overflow: hidden;
    display: block;
}

.press-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.press-meta {
    font-size: .95rem;
}

@media (max-width:575.98px) {
    .press-row-card {
        border-radius: clamp(20px, 2vw, 20px);
    }
}

/* —— Press cards “editoriales” —— */
.about-press .press-item {}

.about-press .press-media {
    /* relación por defecto (desktop/tablet): 4:3 */
    --bs-aspect-ratio: 75%;
    border-radius: clamp(20px, 2vw, 20px);
    overflow: hidden;
    background: #f3f5f7;
}

.about-press .press-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

/* En mobile, más panorámico (16:9) */
@media (max-width: 575.98px) {
    .about-press .press-media {
        --bs-aspect-ratio: 56.25%;
    }
}

/* Tipografía y clamps para alturas parejas */
.about-press .press-heading a {
    color: #111;
    text-decoration: none;
}

.about-press .press-heading a:hover {
    text-decoration: underline;
}

.line-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 1) Todas las miniaturas con la MISMA relación de aspecto */
.about-press .press-media {
    /* usa Bootstrap ratio y también aspect-ratio nativo */
    --bs-aspect-ratio: 75%;
    /* 4:3 */
    aspect-ratio: 4 / 3;
    border-radius: clamp(20px, 2vw, 20px);
    overflow: hidden;
    display: block;
    background: #f3f5f7;
}

.about-press .press-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Fallback por si algún navegador no soporta aspect-ratio */
@supports not (aspect-ratio: 4 / 3) {
    .about-press .press-media {
        position: relative;
    }

    .about-press .press-media::before {
        content: "";
        display: block;
        padding-top: 75%;
    }

    .about-press .press-media img {
        position: absolute;
        inset: 0;
    }
}

/* 2) Igualar ALTURA de las cards dentro de la fila */
.about-press .row>* {
    /* cada .col se vuelve flex */
    display: flex;
}

.about-press .press-item {
    /* la card ocupa toda la altura disponible */
    display: flex;
    flex-direction: column;
    height: 100%;
}

.about-press .press-heading,
.about-press .press-excerpt {
    /* que el texto no empuje más de lo debido */
    margin-right: .25rem;
}

/* (Opcional) un poco más de separación vertical en mobile */
@media (max-width: 575.98px) {
    .about-press .row {
        row-gap: 1rem;
    }
}

/* Aplica a esos grupos específicos dentro de las cards */
.team-card .p-3>.d-flex,
.card-split .card-content>.d-flex {
    gap: 5px;
    flex-wrap: wrap;
}

@supports not (gap: 1px) {

    .team-card .p-3>.d-flex .icon-btn+.icon-btn,
    .card-split .card-content>.d-flex .icon-btn+.icon-btn {
        margin-left: 10px;
    }
}

/* ===== HERO (canónico) ===================================== */
/* Contenedor base + stacking propio para que nada lo pise */
#ts-hero.hero-split {
    position: relative;
    isolation: isolate;
    min-height: clamp(560px, 90vh, 900px);
    display: flex;
    align-items: flex-start;
    background: #fff;
    overflow: hidden;
}

/* Fondo (usa la variable inline; fallback por si falta) */
#ts-hero.hero-split.ts-separate-bg-element::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--hero-image, url("assets/img/hero-laptop.webp")) !important;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: right center;
    /* foco a la derecha en desktop */
    z-index: 0;
}

/* Degradado para legibilidad (desktop) */
#ts-hero.hero-split.ts-separate-bg-element::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background: linear-gradient(to right, #ffffff 0%, rgba(255, 255, 255, .98) 22%, rgba(255, 255, 255, .90) 32%, rgba(255, 255, 255, .70) 45%, rgba(255, 255, 255, 0) 62%);
}

/* Contenido encima del fondo */
#ts-hero.hero-split .hero-inner {
    position: relative;
    z-index: 1;
    width: 100%;
    text-align: left;
    padding-top: clamp(56px, 16vh, 160px);
    padding-bottom: clamp(24px, 8vh, 72px);
    --headline-width: 18ch;
}

#ts-hero.hero-split h1 {
    color: #111;
    margin-bottom: 1rem;
    max-width: var(--headline-width);
    text-wrap: balance;
}

/* ===== Mobile: imagen arriba, H1 debajo, foco a la derecha ===== */
@media (max-width: 575.98px) {

    /* altura de la “franja” de imagen */
    #ts-hero.hero-split {
        --hero-mobile-h: clamp(320px, 56vh, 460px);
        min-height: auto;
    }

    /* El fondo sólo ocupa arriba; si recorta, lo hace por la izquierda */
    #ts-hero.hero-split.ts-separate-bg-element::before {
        top: 0;
        left: 0;
        right: 0;
        bottom: auto;
        height: var(--hero-mobile-h);
        background-size: cover !important;
        background-position: right top !important;
        /* CLAVE: mantiene la compu visible */
    }

    /* Degradado vertical (transparente→blanco) bajo la imagen */
    #ts-hero.hero-split.ts-separate-bg-element::after {
        top: 0;
        left: 0;
        right: 0;
        bottom: auto;
        height: var(--hero-mobile-h);
        background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 52%, #fff 100%);
    }

    /* Empuja el contenido por debajo de la imagen */
    #ts-hero.hero-split .hero-inner {
        padding: calc(var(--hero-mobile-h) + 12px) 16px 24px;
    }

    /* Título cómodo en mobile */
    #ts-hero.hero-split h1 {
        max-width: 24ch;
        font-size: clamp(28px, 7vw + 2px, 36px);
        line-height: 1.15;
        margin-bottom: 12px;
    }

    /* Un pelín de aire al bloque de texto */
    #ts-hero.hero-split .hero-inner>section {
        margin-top: 4px;
    }
}

/* Timeline Journey */
.timeline {
    list-style: none;
    margin: 0;
    padding: 0.25rem 0 0 0;
    position: relative;
}

.timeline::before {
    content: "";
    position: absolute;
    left: 12px;
    /* Alinea con .dot */
    top: 0;
    bottom: 0;
    width: 2px;
    background: rgba(0, 0, 0, .08);
}

.timeline-item {
    position: relative;
    display: flex;
    gap: 16px;
    padding-left: 36px;
    /* espacio para la línea */
    margin-bottom: 18px;
}

.timeline-item:last-child {
    margin-bottom: 0;
}

.timeline .dot {
    position: absolute;
    left: 3px;
    top: 4px;
    width: 18px;
    height: 18px;
    border-radius: clamp(20px, 2vw, 20px);
    background: #3FB9A4;
    /* Bootstrap primary */
    box-shadow: 0 0 0 4px rgba(13, 110, 253, .15);
}

.timeline .content h6 {
    font-weight: 600;
}

@media (min-width: 992px) {
    .timeline {
        padding-top: 6px;
    }

    .timeline::before {
        left: 10px;
    }

    .timeline .dot {
        left: 1px;
    }

    .timeline-item {
        padding-left: 32px;
    }
}

html {
    scroll-behavior: smooth;
}

/* si tenés header fijo, evita que tape el título al llegar */
#story {
    scroll-margin-top: 80px;
}

/* si tenés header fijo, evita que tape el título al llegar */
#team {
    scroll-margin-top: 80px;
}

/* ajustá 80px a la altura real del header */

.mission-list {
    list-style: none;
    padding-left: 0;
}

.mission-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
}

.mission-list li::before {
    content: "\f00c";
    /* Font Awesome check */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: #3FB9A4;
    /* Bootstrap primary */
    position: absolute;
    left: 0;
    top: 2px;
}

/* Cajón uniforme para cada logo */
.partners-row .partner-link {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 80px;
    /* alto del cajón (uniforma filas) */
    padding: 8px 12px;
    /* respiro alrededor del logo */
}

/* El logo en sí mismo */
.partners-row .partner-logo {
    max-height: 64px;
    /* controla el tamaño visual del logo */
    max-width: 200px;
    /* evita logos muy anchos */
    width: 100%;
    height: 100%;
    object-fit: contain;
    /* mantiene proporción sin recortar */
}

/* Igualar altura de columnas dentro del split */
.card-split .row.g-0 {
    display: flex;
    /* fuerza columnas de igual altura */
    align-items: stretch;
}

/* Las columnas internas también como flex para que el contenido estire */
.card-split .row.g-0>[class*="col-"] {
    display: flex;
    flex-direction: column;
}

/* La cara de imagen ocupa toda la altura disponible */
.card-split .img-side {
    flex: 1 1 auto;
    background: transparent;
    /* sin gris alrededor */
    min-height: 280px;
    /* base en mobile */
}

/* La imagen rellena y recorta si hace falta */
.card-split .img-side img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    /* mové el foco si querés */
    display: block;
}

/* En md+ subimos la altura base para que ambas queden pareja y “grandes” */
@media (min-width: 768px) {
    .card-split .img-side {
        min-height: clamp(360px, 34vw, 520px);
        /* misma altura visual en ambas cards */
    }
}

/* --- New Utilities for Property Card Redesign --- */
.btn-white {
    background-color: #fff;
    border: 1px solid #e0e0e0;
    color: #333;
}

.btn-white:hover {
    background-color: #f8f9fa;
    color: #000;
}

.object-fit-cover {
    object-fit: cover !important;
}

.cursor-pointer {
    cursor: pointer;
}

.booked-property {
    opacity: 0.6;
    filter: grayscale(100%);
    pointer-events: auto;
    /* Ensure it's still clickable */
}

.booked-property .card-footer .btn-primary {
    background-color: #6c757d;
    /* Gray button */
    border-color: #6c757d;
    cursor: not-allowed;
}

.booked-property .ts-item__badges {
    opacity: 0.8;
}

/* --- Filter Section Redesign --- */

/* Fix Z-Index for Magnific Popup (Image Expansion) */
.mfp-bg,
.mfp-wrap {
    z-index: 10000 !important;
    /* Higher than Bootstrap modal (1050) */
}

/* Ensure Room Detail Modal is above Availability Modal if both are DOM present, but we hide one so standard is ok.
   However, let's make sure our detail modal content is wide enough on desktop */
@media (min-width: 992px) {
    #roomDetailModal .modal-dialog {
        max-width: 1000px;
        /* Wider modal */
    }
}

.ts-filter-card {
    background: #ffffff;
    border-radius: clamp(20px, 2vw, 20px);
    /* border: 1px solid rgba(0,0,0,0.05); */
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
    /* Modern soft shadow */
    padding: 1.5rem;
}

.ts-filter-card h1 {
    font-size: 1.75rem;
    font-weight: 800;
    /* Bolder */
    margin-bottom: 0.5rem;
    color: #191919;
    letter-spacing: -0.5px;
}

.ts-filter-card h2 {
    font-size: 1.25rem;
    font-weight: 600;
    color: #444;
}

/* Labels */
.ts-filter-label {
    font-size: 0.75rem;
    font-weight: 700;
    /* text-transform: uppercase; Removed per user request */
    color: #888;
    margin-bottom: 0.35rem;
    display: block;
    letter-spacing: 0.5px;
}

.ts-filter-group {
    /* Ensure spacing if gap-3 is not enough or supported */
    margin-right: 1rem;
    min-width: 0;
}

.ts-filter-group:last-child {
    margin-right: 0;
}

@media (max-width: 767px) {
    .ts-filter-group {
        margin-right: 0;
        margin-bottom: 1rem;
    }

    .ts-filter-card {
        padding: 1rem;
        /* More space for content */
    }

    .ts-filter-card h1 {
        font-size: 1.3rem;
        /* Adjusted to fit on one line */
        text-align: center;
    }
}

/* Inputs/Selects container for the pill look if needed, but we use standalone inputs */
/* The inputs themselves */
.ts-filter-input,
.ts-filter-select {
    background: #fcfcfc;
    border: 1px solid #e0e0e0;
    border-radius: clamp(12px, 1.5vw, 16px);
    padding: 0 1rem;
    font-weight: 500;
    color: #333;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    transition: all 0.2s ease;
    height: 52px;
    /* Taller for better touch target */
    appearance: none;
    /* Remove default arrow to style commonly or keep simple */
    -webkit-appearance: none;
}

/* Add custom arrow for selects if we want, or keep browser default for now to be safe */
.ts-filter-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23555' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 12px;
    padding-right: 2.5rem;
    /* Space for arrow */
}

/* Fix para input[type=date]: evitar overflow en iOS Safari.
   El .ts-date-wrapper recorta el botón nativo de calendario que iOS
   añade fuera del box model del input. */
.ts-date-wrapper {
    position: relative;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    border-radius: clamp(12px, 1.5vw, 16px);
    /* hereda el border-radius del input */
    display: block;
}

input[type="date"].ts-filter-select {
    background-image: none;
    padding-right: 1rem;
    /* mantiene appearance nativo para que el picker funcione en iOS */
    -webkit-appearance: none;
    appearance: none;
    /* fuerza que el input ocupe todo el ancho del wrapper */
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    display: block;
}

.ts-filter-input:focus,
.ts-filter-select:focus {
    background: #fff;
    border-color: #5bc0b1;
    box-shadow: 0 4px 12px rgba(91, 192, 177, 0.15);
    outline: none;
}

/* Hover state */
.ts-filter-input:hover,
.ts-filter-select:hover {
    border-color: #ccc;
    background: #fff;
}

/* Style for Available Only button to match Sort By */
#filter-available-btn {
    border-radius: 20px !important;
    padding: 0 1.25rem;
    font-size: 0.9rem;
    font-weight: 500;
    height: 40px;
    /* Align with sort select */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: #fff;
    border: 1px solid #e0e0e0;
    color: #555;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
    transition: all 0.2s ease;
}

#filter-available-btn:hover {
    background: #f8f9fa;
    border-color: #ccc;
    color: #333;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* Override bootstrap classes if needed, or rely on specific ID */
#filter-available-btn.btn-outline-secondary {
    color: #555;
    border-color: #e0e0e0;
    background: #fff;
}

#filter-available-btn.btn-dark {
    background: #191919 !important;
    border-color: #191919 !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Urgency Chip Styles */
.urgency-pill {
    display: inline-flex;
    margin-top: 8px;
    width: 100%;
    justify-content: center;
    /* Center on mobile */
}

@media (min-width: 768px) {
    .urgency-pill {
        width: auto;
        justify-content: flex-start;
        /* Align left on desktop */
        margin-top: 0;
    }
}

.pill-content {
    background: rgba(23, 49, 86, 0.95); /* solid enough, no blur needed */
    color: white;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 500;
    /* Regular weight */
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    white-space: nowrap;
    width: fit-content;
}

.fire {
    font-size: 14px;
    display: inline-block;
    animation: jump 2s infinite;
}

@keyframes jump {

    0%,
    85%,
    100% {
        transform: translateY(0) scale(1);
    }

    90% {
        transform: translateY(-4px) scale(1.1);
    }

    95% {
        transform: translateY(0) scale(1);
    }
}

/* Responsive Property Title */
.property-card-title-responsive {
    font-size: 0.8rem;
    /* Mobile */
}

@media (min-width: 768px) {
    .property-card-title-responsive {
        font-size: 1.25rem;
        /* Desktop */
    }
}

/* --- Availability Modal Compact Cards --- */
.room-list-compact {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.room-card-compact {
    display: flex;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: clamp(12px, 1.5vw, 12px);
    overflow: hidden;
    height: 120px;
    /* Fixed height for compactness */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    transition: transform 0.2s ease;
}

.room-card-compact:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
}

.room-container-img {
    width: 35%;
    /* Adjust width for image */
    min-width: 110px;
    max-width: 160px;
    position: relative;
}

.room-container-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.room-container-content {
    flex: 1;
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.room-header-compact {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.25rem;
}

.room-title-compact {
    font-size: 0.95rem;
    font-weight: 700;
    color: #333;
    line-height: 1.2;
}

.room-subtitle-compact {
    font-size: 0.8rem;
    color: #6c757d;
}

.room-price-compact {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--primary-color, #173156);
}

.room-price-compact small {
    font-weight: 400;
    font-size: 0.75rem;
    color: #6c757d;
}

.room-actions-compact {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
}

.availability-badge-compact {
    font-size: 0.7rem;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    background-color: #28a745;
    color: white;
    display: inline-flex;
    align-items: center;
}

.btn-compact {
    padding: 0.35rem 0.8rem;
    font-size: 0.8rem;
    font-weight: 600;
    border-radius: 20px;
}

/* Mobile optimizations */
@media (max-width: 575.98px) {
    .room-card-compact {
        height: 110px;
    }

    .room-container-content {
        padding: 0.6rem 0.8rem;
    }

    .room-title-compact {
        font-size: 0.9rem;
    }

    .room-price-compact {
        font-size: 0.9rem;
    }
}

/* Modal Backdrop - Match Payment Page */
/* backdrop-filter removed — causes scroll lag (full-viewport repaint on every frame) */
.modal-backdrop {
    background-color: rgba(23, 49, 86, 0.55) !important;
    opacity: 1 !important;
}

/* ─────────────────────────────────────
   Section Index Navigation
   ───────────────────────────────────── */

.section-index {
    position: sticky;
    top: var(--section-index-top, 125px);
    z-index: 1020;
    background: #fff;
    border-bottom: 1px solid #e9ecef;
    border-radius: 14px;
    margin-bottom: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: box-shadow 0.25s ease;
}

.section-index__track {
    display: flex;
    align-items: center;
    gap: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* Firefox */
    -ms-overflow-style: none;
    /* IE */
    padding: 0 0.5rem;
}

.section-index__track::-webkit-scrollbar {
    display: none;
    /* Chrome/Safari */
}

.section-index__link {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    padding: 0.75rem 1rem;
    font-size: 0.8rem;
    font-weight: 500;
    color: #6c757d;
    text-decoration: none;
    white-space: nowrap;
    border-bottom: 2px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
    letter-spacing: 0.01em;
    font-family: "Poppins", sans-serif;
}

.section-index__link:hover {
    color: #173156;
    text-decoration: none;
}

.section-index__link.active {
    color: #3FB9A4;
    border-bottom-color: #3FB9A4;
    font-weight: 600;
}

/* Desktop: center links, slightly bigger */
@media (min-width: 992px) {
    .section-index__track {
        justify-content: center;
    }

    .section-index__link {
        font-size: 0.85rem;
        padding: 0.85rem 1.2rem;
    }
}

/* Mobile: make it scroll nicely */
@media (max-width: 767.98px) {
    .section-index {
        border-radius: 0;
        margin-left: -1.5rem;
        margin-right: -1.5rem;
        margin-top: -0.5rem;
        /* Fallback top for mobile (JS will override with exact header height) */
        top: var(--section-index-top, 112px);
    }

    .section-index__link {
        font-size: 0.78rem;
        padding: 0.65rem 0.9rem;
    }
}

/* ─────────────────────────────────────
   Bond Promotion Badge
   ───────────────────────────────────── */

/* ── Card overlay: pick-bond-badge (index.html) & pp-bond-badge (properties) ──
   These sit absolute inside the card-img container alongside the availability badge.
   Sizing matches .pick-avail-badge / .pp-avail-badge exactly so both sit at
   the same visual height.                                                      */

.pick-bond-badge,
.pp-bond-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 5;
    pointer-events: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(135deg, #f59e0b 0%, #ef8c08 100%);
    color: #fff;
    font-size: 0.72rem;      /* same as .pick-avail-badge */
    font-weight: 600;        /* same as .pick-avail-badge */
    border-radius: 50px;     /* same as .pick-avail-badge */
    padding: 4px 11px;       /* same as .pick-avail-badge */
    letter-spacing: 0.01em;
    white-space: nowrap;
    box-shadow: 0 2px 6px rgba(245,158,11,0.35);
    line-height: 1;
}

.pick-bond-badge i,
.pp-bond-badge i {
    font-size: 0.68rem;
}

/* ── Standalone .bond-badge (used in property gallery banner text) ── */
.bond-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: linear-gradient(135deg, #f59e0b 0%, #ef8c08 100%);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 4px 11px;
    border-radius: 50px;
    letter-spacing: 0.01em;
    white-space: nowrap;
    box-shadow: 0 2px 6px rgba(245,158,11,0.35);
    vertical-align: middle;
    line-height: 1;
}

.bond-badge i { font-size: 0.68rem; }

/* ── Desktop gallery badge — inside desk-img-0 (main photo cell) ──
   desk-img-0 (.gallery-main) has overflow:hidden but this badge sits
   at top:14px right:14px, well within the cell bounds, so not clipped. */
.bond-gallery-badge {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 20;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(135deg, #f59e0b 0%, #ef8c08 100%);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 24px;
    letter-spacing: 0.03em;
    white-space: nowrap;
    box-shadow: 0 4px 14px rgba(245,158,11,0.45);
    pointer-events: none;
    animation: bond-pulse 3s ease-in-out infinite;
}

@keyframes bond-pulse {
    0%, 100% { box-shadow: 0 4px 14px rgba(245,158,11,0.45); }
    50%       { box-shadow: 0 4px 22px rgba(245,158,11,0.70); }
}

/* ── Mobile banner — lives inside #ts-header, immediately below the nav ──
   On mobile it shows as a full-width amber stripe inside the fixed header.
   On desktop it is hidden (header only shows the nav). */
.bond-mobile-banner {
    display: flex;
    width: 100%;
    background: linear-gradient(90deg, #f59e0b 0%, #ef8c08 100%);
    color: #fff;
    text-align: center;
    font-size: 0.82rem;
    font-weight: 700;
    padding: 7px 16px;
    letter-spacing: 0.03em;
    gap: 8px;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(245,158,11,0.25);
}

.bond-mobile-banner i { font-size: 0.78rem; }

/* Hide on desktop (≥ 992px) */
@media (min-width: 992px) {
    .bond-mobile-banner {
        display: none;
    }
}