
.inblu-properties-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:34px;
    align-items:start;
}

.inblu-property-card{
    background:#fff;
    border:1px solid #e6eaf0;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 12px 38px rgba(15,39,71,.07);
    transition:transform .2s ease,box-shadow .2s ease;
}

.inblu-property-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 46px rgba(15,39,71,.12);
}

.inblu-card-image{
    display:block;
    aspect-ratio:4/3;
    overflow:hidden;
    background:#f1f5f9;
}

.inblu-card-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .35s ease;
}

.inblu-property-card:hover .inblu-card-image img{
    transform:scale(1.025);
}

.inblu-no-image{
    display:flex;
    height:100%;
    align-items:center;
    justify-content:center;
    color:#64748b;
}

.inblu-card-body{
    padding:24px 24px 26px;
}

.inblu-card-body h3{
    margin:8px 0 8px;
    font-size:25px;
    line-height:1.18;
    font-weight:600;
}

.inblu-card-body h3 a{
    text-decoration:none;
    color:#0f2747;
}

.inblu-ref{
    font-size:12px;
    letter-spacing:.03em;
    text-transform:uppercase;
    color:#7c8798;
}

.inblu-location{
    color:#657386;
    margin:6px 0 14px;
    font-size:15px;
}

.inblu-price{
    font-size:28px;
    line-height:1;
    font-weight:700;
    color:#0039a6;
    margin:16px 0;
}

.inblu-card-facts{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    color:#344256;
    font-size:14px;
    margin:0 0 22px;
}

.inblu-card-facts span{
    position:relative;
}

.inblu-card-facts span+span:before{
    content:"•";
    margin-right:12px;
    color:#b0b8c4;
}

.inblu-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#0039a6;
    color:#fff!important;
    text-decoration:none!important;
    padding:12px 20px;
    border-radius:8px;
    font-weight:600;
    line-height:1;
    transition:opacity .2s ease,transform .2s ease;
}

.inblu-button:hover{
    opacity:.92;
    transform:translateY(-1px);
}

.inblu-property-detail{
    max-width:1220px;
    margin:0 auto;
    padding:8px 0 30px;
}

.inblu-property-header{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:40px;
    align-items:end;
    margin-bottom:30px;
}

.inblu-property-heading h1{
    color:#0f2747;
    font-size:clamp(34px,4vw,54px);
    line-height:1.05;
    margin:8px 0 12px;
    font-weight:600;
}

.inblu-price-detail{
    font-size:clamp(30px,3vw,44px);
    white-space:nowrap;
    margin-bottom:2px;
}

.inblu-gallery{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:14px;
    margin:26px 0 34px;
}

.inblu-gallery-single{
    grid-template-columns:1fr;
}

.inblu-gallery a{
    display:block;
    overflow:hidden;
    border-radius:16px;
    background:#f3f5f8;
}

.inblu-gallery img{
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover;
    display:block;
    transition:transform .3s ease;
}

.inblu-gallery a:hover img{
    transform:scale(1.015);
}

.inblu-gallery-single img{
    aspect-ratio:16/9;
    max-height:680px;
}

.inblu-facts{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
    gap:14px;
    margin:0 0 42px;
}

.inblu-fact{
    border:1px solid #e3e8ef;
    border-radius:12px;
    padding:18px 18px 16px;
    background:#fff;
}

.inblu-fact strong,
.inblu-fact span{
    display:block;
}

.inblu-fact strong{
    color:#0f2747;
    font-size:18px;
}

.inblu-fact span{
    font-size:12px;
    color:#7a8698;
    margin-top:5px;
}

.inblu-section{
    margin-top:44px;
    max-width:900px;
}

.inblu-section-kicker{
    color:#0039a6;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.09em;
    margin-bottom:6px;
}

.inblu-section h2{
    color:#0f2747;
    margin:0 0 18px;
    font-size:32px;
    line-height:1.2;
}

.inblu-description{
    color:#334155;
    font-size:17px;
    line-height:1.8;
}

.inblu-features{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.inblu-features span{
    background:#f4f6f9;
    border:1px solid #e7ebf0;
    color:#344256;
    border-radius:999px;
    padding:9px 14px;
    font-size:14px;
}

.inblu-feature-empty{
    color:#7a8698!important;
}

.inblu-contact-placeholder{
    margin-top:54px;
    background:#0f2747;
    color:#fff;
    border-radius:18px;
    padding:30px;
    display:flex;
    justify-content:space-between;
    gap:30px;
    align-items:center;
}

.inblu-contact-placeholder h2{
    color:#fff;
    margin:6px 0 8px;
    font-size:30px;
}

.inblu-contact-placeholder p{
    margin:0;
    max-width:680px;
    color:rgba(255,255,255,.82);
}

.inblu-contact-placeholder .inblu-section-kicker{
    color:#d7b36a;
}

.inblu-contact-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

.inblu-button-muted{
    background:#0039a6;
}

.inblu-button-outline{
    background:transparent;
    border:1px solid rgba(255,255,255,.55);
}

.inblu-error,
.inblu-empty{
    padding:18px;
    border:1px solid #e4e8ee;
    background:#f8fafc;
    border-radius:10px;
    color:#475569;
}

@media(max-width:1000px){
    .inblu-properties-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .inblu-property-header{
        grid-template-columns:1fr;
        gap:10px;
    }

    .inblu-price-detail{
        margin-top:0;
    }

    .inblu-gallery{
        grid-template-columns:1fr 1fr;
    }

    .inblu-contact-placeholder{
        display:block;
    }

    .inblu-contact-actions{
        justify-content:flex-start;
        margin-top:22px;
    }
}

@media(max-width:680px){
    .inblu-properties-grid{
        grid-template-columns:1fr;
        gap:24px;
    }

    .inblu-card-body h3{
        font-size:22px;
    }

    .inblu-property-heading h1{
        font-size:34px;
    }

    .inblu-gallery,
    .inblu-gallery-single{
        grid-template-columns:1fr;
    }

    .inblu-gallery img,
    .inblu-gallery-single img{
        aspect-ratio:4/3;
    }

    .inblu-facts{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .inblu-contact-placeholder{
        padding:24px;
    }
}


.inblu-filters{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:12px;
    padding:18px;
    margin-bottom:20px;
    background:#f7f9fc;
    border:1px solid #e5eaf0;
    border-radius:14px;
}
.inblu-filter-field label{
    display:block;
    margin-bottom:6px;
    color:#0f2747;
    font-size:12px;
    font-weight:700;
}
.inblu-filter-field input,
.inblu-filter-field select{
    width:100%;
    min-height:44px;
    border:1px solid #d9e0e8;
    border-radius:8px;
    background:#fff;
    padding:8px 10px;
}
.inblu-filter-submit{
    grid-column:1/-1;
}
.inblu-filter-submit button{
    border:0;
    border-radius:8px;
    background:#0039a6;
    color:#fff;
    padding:12px 20px;
    font-weight:700;
    cursor:pointer;
}
.inblu-results-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin:0 0 20px;
    color:#526174;
}
.inblu-results-head a{color:#0039a6}

.inblu-contact-section{
    margin-top:54px;
    background:#f8fafc;
    border:1px solid #e4e9ef;
    border-radius:18px;
    padding:30px;
}
.inblu-contact-section h2{
    color:#0f2747;
    font-size:32px;
    margin:6px 0 8px;
}
.inblu-contact-section>p{
    color:#64748b;
    margin:0 0 24px;
}
.inblu-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.inblu-form-field label{
    display:block;
    margin-bottom:7px;
    color:#0f2747;
    font-size:13px;
    font-weight:600;
}
.inblu-form-field input,
.inblu-form-field select,
.inblu-form-field textarea{
    width:100%;
    border:1px solid #d9e0e8;
    border-radius:8px;
    background:#fff;
    padding:11px 12px;
    min-height:44px;
}
.inblu-form-field textarea{resize:vertical}
.inblu-form-field-full{grid-column:1/-1}
.inblu-privacy label{
    display:flex;
    align-items:flex-start;
    gap:8px;
    font-weight:400;
}
.inblu-privacy input{width:auto;min-height:auto;margin-top:3px}
.inblu-form-submit{border:0;margin-top:18px;cursor:pointer}
.inblu-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.inblu-lead-notice{
    padding:14px 16px;
    border-radius:8px;
    margin-bottom:20px;
}
.inblu-lead-notice.success{
    background:#ecfdf5;
    border:1px solid #a7f3d0;
    color:#065f46;
}
.inblu-lead-notice.error{
    background:#fef2f2;
    border:1px solid #fecaca;
    color:#991b1b;
}
@media(max-width:1100px){
    .inblu-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:680px){
    .inblu-filters{grid-template-columns:1fr}
    .inblu-form-grid{grid-template-columns:1fr}
    .inblu-form-field-full{grid-column:auto}
}


.inblu-search-box{
    background:#fff;
    border:1px solid #e7ebf0;
    border-radius:16px;
    padding:18px;
    box-shadow:0 10px 28px rgba(15,39,71,.06);
    margin-bottom:28px;
}
.inblu-search-box.is-compact{
    max-width:1200px;
    margin:0 auto 28px;
}
.inblu-op-tabs{
    display:flex;
    gap:10px;
    margin:0 0 14px;
    flex-wrap:wrap;
}
.inblu-op-tabs a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:100px;
    padding:10px 16px;
    border-radius:999px;
    text-decoration:none;
    color:#0f2747;
    background:#f5f7fa;
    border:1px solid #e4e9ef;
    font-weight:700;
}
.inblu-op-tabs a.active{
    background:#0f2747;
    color:#fff;
    border-color:#0f2747;
}
.inblu-filters.is-home{
    grid-template-columns:repeat(6,minmax(0,1fr));
    margin-bottom:0;
    background:transparent;
    border:0;
    padding:0;
}
.inblu-filter-field.is-actions{
    display:flex;
    align-items:flex-end;
}
.inblu-search-button{
    width:100%;
    min-height:44px;
    border:0;
    border-radius:8px;
    background:#d7b36a;
    color:#fff;
    font-weight:700;
    cursor:pointer;
}
.inblu-card-topline{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:8px;
}
.inblu-badge{
    background:#eef4ff;
    color:#0039a6;
    border-radius:999px;
    padding:6px 10px;
    font-size:12px;
    font-weight:700;
}
.inblu-detail-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 12px;
    color:#657386;
}
.inblu-detail-meta span{
    position:relative;
}
.inblu-detail-meta span+span:before{
    content:"•";
    margin-right:12px;
    color:#b0b8c4;
}
@media(max-width:1100px){
    .inblu-filters.is-home{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:680px){
    .inblu-filters.is-home{
        grid-template-columns:1fr;
    }
}


/* Home featured properties */
.inblu-featured-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-rows:240px;
    gap:14px;
}
.inblu-featured-item{
    position:relative;
    display:block;
    overflow:hidden;
    border-radius:0;
    background:#e9edf2;
    text-decoration:none!important;
    min-height:240px;
}
.inblu-featured-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .45s ease;
}
.inblu-featured-item:hover img{
    transform:scale(1.035);
}
.inblu-featured-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(8,19,35,.05) 20%,rgba(8,19,35,.72) 100%);
    transition:background .25s ease;
}
.inblu-featured-item:hover .inblu-featured-overlay{
    background:linear-gradient(180deg,rgba(8,19,35,.08) 10%,rgba(8,19,35,.82) 100%);
}
.inblu-featured-content{
    position:absolute;
    left:22px;
    right:22px;
    bottom:20px;
    display:flex;
    flex-direction:column;
    gap:5px;
    color:#fff;
    z-index:2;
}
.inblu-featured-badge{
    align-self:flex-start;
    font-size:10px;
    line-height:1;
    text-transform:uppercase;
    letter-spacing:.11em;
    padding:7px 9px;
    border:1px solid rgba(255,255,255,.5);
    background:rgba(15,39,71,.45);
    backdrop-filter:blur(4px);
}
.inblu-featured-title{
    font-family:inherit;
    font-size:21px;
    line-height:1.12;
    font-weight:600;
    text-shadow:0 1px 8px rgba(0,0,0,.25);
}
.inblu-featured-location{
    font-size:13px;
    color:rgba(255,255,255,.88);
}
.inblu-featured-price{
    margin-top:3px;
    font-size:15px;
    font-weight:700;
    color:#fff;
}
.inblu-featured-noimage{
    position:absolute;
    inset:0;
    background:linear-gradient(135deg,#dce3eb,#b9c5d3);
}

/* Mosaic similar to the reference supplied by the client */
.inblu-featured-count-6 .inblu-featured-item-1{
    grid-column:span 1;
    grid-row:span 1;
}
.inblu-featured-count-6 .inblu-featured-item-2{
    grid-column:span 1;
    grid-row:span 1;
}
.inblu-featured-count-6 .inblu-featured-item-3{
    grid-column:span 2;
    grid-row:span 1;
}
.inblu-featured-count-6 .inblu-featured-item-4{
    grid-column:span 2;
    grid-row:span 1;
}
.inblu-featured-count-6 .inblu-featured-item-5,
.inblu-featured-count-6 .inblu-featured-item-6{
    grid-column:span 1;
    grid-row:span 1;
}

@media(max-width:900px){
    .inblu-featured-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        grid-auto-rows:230px;
    }
    .inblu-featured-count-6 .inblu-featured-item{
        grid-column:span 1;
        grid-row:span 1;
    }
    .inblu-featured-count-6 .inblu-featured-item-3,
    .inblu-featured-count-6 .inblu-featured-item-4{
        grid-column:span 2;
    }
}
@media(max-width:600px){
    .inblu-featured-grid{
        grid-template-columns:1fr;
        grid-auto-rows:250px;
    }
    .inblu-featured-count-6 .inblu-featured-item,
    .inblu-featured-count-6 .inblu-featured-item-3,
    .inblu-featured-count-6 .inblu-featured-item-4{
        grid-column:span 1;
    }
}


/* Smart sizing when there are fewer than 6 featured properties */
.inblu-featured-count-1{
    grid-template-columns:minmax(280px,420px);
    grid-auto-rows:300px;
    justify-content:start;
}
.inblu-featured-count-1 .inblu-featured-item{
    min-height:300px;
}
.inblu-featured-count-1 .inblu-featured-title{
    font-size:24px;
}

.inblu-featured-count-2{
    grid-template-columns:repeat(2,minmax(280px,1fr));
    grid-auto-rows:300px;
    max-width:900px;
}
.inblu-featured-count-2 .inblu-featured-item{
    min-height:300px;
}

.inblu-featured-count-3{
    grid-template-columns:repeat(3,minmax(240px,1fr));
    grid-auto-rows:280px;
}
.inblu-featured-count-3 .inblu-featured-item{
    min-height:280px;
}

.inblu-featured-count-4{
    grid-template-columns:repeat(2,minmax(280px,1fr));
    grid-auto-rows:280px;
}
.inblu-featured-count-4 .inblu-featured-item{
    min-height:280px;
}

.inblu-featured-count-5{
    grid-template-columns:repeat(3,minmax(240px,1fr));
    grid-auto-rows:260px;
}
.inblu-featured-count-5 .inblu-featured-item{
    min-height:260px;
}
.inblu-featured-count-5 .inblu-featured-item-1,
.inblu-featured-count-5 .inblu-featured-item-2{
    grid-column:span 1;
}
.inblu-featured-count-5 .inblu-featured-item-3{
    grid-column:span 1;
}
.inblu-featured-count-5 .inblu-featured-item-4{
    grid-column:span 2;
}

@media(max-width:900px){
    .inblu-featured-count-1{
        grid-template-columns:minmax(260px,380px);
        grid-auto-rows:280px;
    }
    .inblu-featured-count-2,
    .inblu-featured-count-3,
    .inblu-featured-count-4,
    .inblu-featured-count-5{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .inblu-featured-count-3 .inblu-featured-item-3,
    .inblu-featured-count-5 .inblu-featured-item-4,
    .inblu-featured-count-5 .inblu-featured-item-5{
        grid-column:auto;
    }
}
@media(max-width:600px){
    .inblu-featured-count-1,
    .inblu-featured-count-2,
    .inblu-featured-count-3,
    .inblu-featured-count-4,
    .inblu-featured-count-5{
        grid-template-columns:1fr;
        max-width:none;
    }
}


/* Gallery lightbox */
.inblu-gallery a{
    cursor:zoom-in;
}
.inblu-gallery img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.inblu-lightbox{
    position:fixed;
    inset:0;
    z-index:999999;
    display:none;
    align-items:center;
    justify-content:center;
    background:rgba(0,0,0,.88);
    padding:28px 72px;
}
.inblu-lightbox.is-open{
    display:flex;
}
html.inblu-lightbox-open,
html.inblu-lightbox-open body{
    overflow:hidden!important;
}
.inblu-lightbox-stage{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
}
.inblu-lightbox-image{
    display:block;
    width:auto;
    height:auto;
    max-width:100%;
    max-height:calc(100vh - 80px);
    object-fit:contain;
    border-radius:4px;
    box-shadow:0 12px 50px rgba(0,0,0,.35);
}
.inblu-lightbox-close,
.inblu-lightbox-prev,
.inblu-lightbox-next{
    position:absolute;
    z-index:3;
    appearance:none;
    border:0;
    color:#fff;
    background:rgba(15,39,71,.48);
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:background .2s ease;
}
.inblu-lightbox-close:hover,
.inblu-lightbox-prev:hover,
.inblu-lightbox-next:hover{
    background:rgba(15,39,71,.78);
}
.inblu-lightbox-close{
    top:20px;
    right:24px;
    width:44px;
    height:44px;
    border-radius:50%;
    font-size:32px;
    line-height:1;
}
.inblu-lightbox-prev,
.inblu-lightbox-next{
    top:50%;
    transform:translateY(-50%);
    width:48px;
    height:64px;
    border-radius:8px;
    font-size:46px;
    line-height:1;
}
.inblu-lightbox-prev{left:18px}
.inblu-lightbox-next{right:18px}
.inblu-lightbox-counter{
    position:absolute;
    left:50%;
    bottom:18px;
    transform:translateX(-50%);
    color:#fff;
    background:rgba(15,39,71,.55);
    border-radius:999px;
    padding:7px 12px;
    font-size:13px;
}
@media(max-width:700px){
    .inblu-lightbox{
        padding:54px 14px 50px;
    }
    .inblu-lightbox-prev,
    .inblu-lightbox-next{
        width:40px;
        height:52px;
        font-size:38px;
        background:rgba(15,39,71,.62);
    }
    .inblu-lightbox-prev{left:6px}
    .inblu-lightbox-next{right:6px}
    .inblu-lightbox-close{
        top:8px;
        right:8px;
    }
}
