.blog-archive h1 {
    font-family: "Playfair Display", serif !important;
    font-size: 2em;
    font-weight: 700 !important;
    text-transform: uppercase;
}

.blog-archive h2 {
    font-family: "Playfair Display", serif !important;
    font-size: 1.3em;
    font-weight: 700 !important;
    text-transform: uppercase;
}

.blog-archive h3 {
    font-family: "Playfair Display", serif !important;
    font-size: 1.3em;
    font-style: italic !important;
}

.blog-archive p,
.hotel__preview-excerpt p {
    font-family: "TeXGyreTermes-Regular", serif !important;
    font-size: 1em;
}

#post-list {
    display: contents;
}

.hotel__preview-excerpt {
    width: 90%;
    text-align: justify;
}

.hotels-filter-button {
    background-color: #e7e2da !important;
    border-color: #e7e2da !important;
    font: normal 700 0.85em "Playfair Display", serif !important;
    padding: 0.6em 1.2em !important;
    color: black !important;
    margin: 0.5em !important;
}

@media (max-width: 768px) {
    .hotels-filter-button {
        font-size: 0.75em !important;
    }
}

.hotels-filter-button span {
    min-width: 12.1em;
}

.hotels-filter-col .col-inner {
    display: flex; 
    flex-wrap: wrap; 
    justify-content: center;
    gap: 0;
}

.hotels-filter-col {
    margin-top: -30px !important;
    margin-bottom: -70px !important;
}

@media (min-width: 1351px) {           
    .hotel__location-text {
        margin-top: -14px !important;
    }
}

.hotel__slider-image,
.flickity-viewport img {
    width: 100%;
    aspect-ratio: 1 / 1.11;
    object-fit: cover;
    object-position: center;        
}

.hotels__container .col {
    padding: 0 12px 12px;
}

.hotels-transit-image {
    position: absolute;
    top: 30px;
    left: 35px;
    z-index: 10;            
}

.hotel__inner .inline-line {
    display: inline-block;
    width: 20px;
    border-bottom: 1px solid #9D8665;
    vertical-align: middle;
}

.hotel-inner-stars {
    margin-top: -10px;
}

.hotel-inner-stars img {
    width: 20px;
    height: 20px;
    display: inline-block;
    vertical-align: middle;
    filter: invert(48%) sepia(18%) saturate(875%) hue-rotate(358deg) brightness(92%) contrast(87%);
}

p.discover-link {
    font-weight: 500 !important;
    text-decoration: underline;
}

/* Grid layout for hotels to handle filtering dynamically */
.hotels-grid .row-inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    width: 100%;
}

@media (max-width: 1350px) {
    .hotels-grid .row-inner {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 900px) {
    .hotels-grid .row-inner {
        grid-template-columns: 1fr;
    }
}

.hotels__container .col {
    position: relative;
}

/* 3 cards per row: show divider on the first two positions only */
@media (min-width: 1350px) {
    .hotels__container .col::after {
        content: "";
        position: absolute;
        top: 67%;
        bottom: 20%;
        right: 0;
        width: 1px;
        background-color: #9d8665;
        display: none;
    }

    .hotels__container .col:not(:nth-child(3n))::after {
        display: block;
    }
}

/* 2 cards per row: show divider only on the first position of each row */
@media (min-width: 900px) and (max-width: 1350px) {
    .hotels__container .col::after {
        content: "";
        position: absolute;
        top: 67%;
        bottom: 20%;
        right: 0;
        width: 1px;
        background-color: #9d8665;
        display: none;
    }

    .hotels__container .col:not(:nth-child(2n))::after {
        display: block;
    }
}

/* 1 card per row: no divider */
@media (max-width: 900px) {
    .hotels__container .col::after {
        display: none !important;
    }
}

/* Active filter button styling */
.hotels-filter-button.active {
    background-color: #9f9b95 !important;
    border-color: #9f9b95 !important;
}

/* Hotel card overflow handling for smooth slide animations */
@media (min-width: 450px) {
    .hotel-card_new {
        overflow: hidden;
        min-width: 450px !important;
    }
}

/* Center cards when fewer than 3 fit per row (desktop only) */
.hotels-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.hotel-traits-list {
    gap: 10px;
}

/* No results message */
.no-results-message {
    display: none;
    text-align: center;
    padding: 40px 20px;
    font-size: 18px;
    color: #666;
    width: 100%;
}

.no-results-message.show {
    display: block;
}

/* Mobile Styles - Following Flatsome breakpoints */
/* Mobile: max-width: 549px */
@media only screen and (max-width: 549px) {
    .adt-hotels-overview-text {
        h3 br {
            display: inline !important;
        }

        .col-inner {
            padding: 80px 15px 0px 15px !important;
        }
    }

    .adt-hotels-filter-section {
        padding-top: 0 !important;
    }

    .hotels-filter-button {
        font-size: 1.2em !important;
    }

    .hotel__location-text {
        margin-top: 20px !important;
    }

    .hotel__inner .col .col-inner {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .hotel-traits-list {
        justify-content: center !important;
    }
}

/* Tablet: 550px - 849px */
@media only screen and (min-width: 550px) and (max-width: 849px) {
    
}

/* Small Desktop: 850px - 999px */
@media only screen and (min-width: 850px) and (max-width: 999px) {
    
}

@media (min-width: 850px) {
    .section-bg .is-full-height {
        height: 100vh !important;
    }
}

.hotels-bg-color {
    background-color: #FCF5F5 !important;
}