/* ==========================================================================
   Site fixes (loaded after new-style.css)
   ========================================================================== */

/* The page banner is floated; make the next section (breadcrumbs) start below it
   instead of sliding up over the banner image. */
#aa-property-header + section,
#aa-property-header ~ .bread-menu,
.bread-menu {
    clear: both;
}

/* City / city section banner: title centred vertically and horizontally */
#aa-property-header.city-hero {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: center;
}
#aa-property-header.city-hero::before {
    background: linear-gradient(180deg, rgba(2, 18, 38, .35) 0%, rgba(2, 18, 38, .62) 100%);
}
.city-hero__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1100px;
    padding: 0 20px;
    text-align: center;
}
.city-hero__title {
    margin: 0;
    color: #fff;
    font-size: clamp(28px, 4.2vw, 52px);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.01em;
    text-shadow: 0 2px 18px rgba(0, 0, 0, .45);
}
.city-hero__title::after {
    content: "";
    display: block;
    width: 72px;
    height: 4px;
    margin: 18px auto 0;
    border-radius: 4px;
    background: #f5b301;
}
@media (max-width: 767px) {
    #aa-property-header.city-hero { min-height: 260px; }
}

/* Footer social links as plain text links */
.footer-social-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 8px 22px;
    margin: 0 0 14px;
    padding: 0;
    list-style: none;
}
.footer-social-links a,
.footer-social-links a:visited {
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}
.footer-social-links a:hover,
.footer-social-links a:focus {
    text-decoration: underline;
}

/* Theme labels and headings: Capitalized Words instead of ALL CAPS */
.social_links p,
#aa-slider .aa-slider-area .aa-top-slider .aa-top-slider-single .aa-top-slider-content .aa-top-slider-catg,
#aa-slider .aa-slider-area .aa-top-slider .aa-top-slider-single .aa-top-slider-content .aa-top-slider-title,
#aa-slider .aa-slider-area .aa-top-slider .aa-top-slider-single .aa-top-slider-content .aa-top-slider-price,
#aa-slider .aa-slider-area .aa-top-slider .aa-top-slider-single .aa-top-slider-content .aa-top-slider-btn,
#aa-advance-search .aa-advance-search-area .aa-advance-search-top .aa-single-advance-search .aa-search-btn,
#aa-promo-banner .aa-promo-banner-area a,
#aa-property-header .aa-property-header-inner h2,
#aa-properties .aa-properties-sidebar .aa-properties-single-sidebar h3,
#aa-properties .aa-properties-sidebar .aa-properties-single-sidebar .aa-single-advance-search .aa-search-btn,
.aa-properties-social ul li:first-child,
#aa-gallery .aa-gallery-area .aa-gallery-content .aa-gallery-top ul li,
#aa-error .aa-error-area a,
#aa-signin .aa-signin-area .aa-signin-form .aa-signin-form-title .aa-property-home,
#aa-signin .aa-signin-area .aa-signin-form .aa-signin-form-title h4,
a.block.book-btn.book_custom,
.aa-search-btn,
span.aa-date-tag1 a,
#searchboxInc #inout h3,
#searchboxInc #inout .check-date-title,
button,
.no-dec-title h5,
.aa-blog-single .aa-blog-img .aa-date-tag a,
.s3_in,
.initialism,
.text-uppercase
 {
    text-transform: capitalize !important;
}

/* ==========================================================================
   Breadcrumbs: one look on every page (cities, city, apartment, blog, pages).
   The theme had 6 conflicting .breadcrumb rules (floats, 0-20px margins,
   padding 7-15px); these override all of them.
   ========================================================================== */
.bread-menu,
section:has(> .container > .row > ol.breadcrumb) {
    clear: both;
    position: relative;
    z-index: 1;
    background: #fff;
    border-bottom: 1px solid #e6e8eb;
    padding: 14px 0 !important;
    margin: 0 0 28px !important;
}
.bread-menu .aa-property-header-inner {
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
}
.bread-menu nav[aria-label="breadcrumb"] { margin: 0; }

ol.breadcrumb,
nav[aria-label="breadcrumb"] ol.breadcrumb,
#aa-property-header .aa-property-header-inner .breadcrumb {
    float: none !important;
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 0;
    width: auto;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
    background: none !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
    text-transform: none !important;
}
/* breadcrumb placed straight in a .row (about-us, cities): line it up with the columns */
.row > ol.breadcrumb {
    padding: 0 calc(var(--bs-gutter-x, 1.5rem) * .5) !important;
}
/* blog pages put the breadcrumb directly in a container, with no bar */
.container > nav[aria-label="breadcrumb"] {
    padding: 18px 0 14px;
    margin-bottom: 8px;
    border-bottom: 1px solid #e6e8eb;
}

ol.breadcrumb li,
ol.breadcrumb .breadcrumb-item {
    position: static !important;
    display: inline-flex;
    align-items: center;
    padding: 0 !important;
    margin: 0;
    color: #4b5563 !important;
    font-size: inherit !important;
    font-weight: 400;
}
ol.breadcrumb li::before,
ol.breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    display: none !important;
    content: none !important;
}
ol.breadcrumb li::after {
    content: "/" !important;
    display: inline-block !important;
    position: static !important;
    margin: 0 10px;
    color: #9ca3af !important;
    font-size: inherit !important;
    top: auto !important;
    right: auto !important;
}
ol.breadcrumb li:last-child::after { display: none !important; }
ol.breadcrumb li a,
ol.breadcrumb li a:visited {
    color: #02648a !important;
    text-decoration: none;
}
ol.breadcrumb li a:hover,
ol.breadcrumb li a:focus { text-decoration: underline; }
ol.breadcrumb li.active,
ol.breadcrumb li:last-child {
    color: #111827 !important;
    font-weight: 500;
    min-width: 0;
}
@media (max-width: 767px) {
    .bread-menu,
    section:has(> .container > .row > ol.breadcrumb) {
        padding: 10px 0 !important;
        margin-bottom: 18px !important;
    }
    ol.breadcrumb { font-size: 14px !important; }
    ol.breadcrumb li::after { margin: 0 7px; }
    /* long apartment / article names: keep the bar to one or two lines */
    ol.breadcrumb li:last-child {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}

/* ==========================================================================
   Cities page: country boxes in balanced columns (4 / 3 / 2 / 1) instead of
   floated columns that leave big gaps when the lists have different lengths.
   ========================================================================== */
.cities-grid {
    display: block !important;
    column-count: 4;
    column-gap: 24px;
    margin: 0 0 40px !important;
}
.cities-grid > [class*="col-"] {
    display: inline-block;
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 0 24px;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    background: #fff;
    border: 1px solid #e3e7ec;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}
.cities-grid .fl-wrap { float: none !important; width: 100%; }
.cities-grid .list-single-main-item-title {
    margin: 0 !important;
    padding: 0 !important;
    background: #02648a;
}
.cities-grid .list-single-main-item-title h3 {
    margin: 0;
    padding: 12px 18px;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
}
.cities-grid .listing-features { padding: 8px 0 10px; }
.cities-grid .listing-features ul { margin: 0; padding: 0; list-style: none; }
.cities-grid .listing-features li {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}
.cities-grid .listing-features li a {
    display: block;
    padding: 6px 18px;
    color: #374151 !important;
    font-size: 16px;
    font-weight: 400;
    text-decoration: none;
    transition: background-color .15s, color .15s;
}
.cities-grid .listing-features li a:hover,
.cities-grid .listing-features li a:focus {
    background: #f0f7fa;
    color: #02648a !important;
}
@media (max-width: 1199px) { .cities-grid { column-count: 3; } }
@media (max-width: 991px)  { .cities-grid { column-count: 2; column-gap: 18px; } }
@media (max-width: 575px)  {
    .cities-grid { column-count: 1; }
    .cities-grid > [class*="col-"] { margin-bottom: 16px; }
}
