/* =========================================================
   PROPERTIES PLUGIN - COMPLETE CSS
   Includes:
   - Search
   - Search results/cards
   - Property single page (modern design)
   - Sticky property sidebar
   - Video / Map
   - Admin fields / gallery
   - Responsive
   ========================================================= */

/* =========================================================
   GLOBAL PROPERTY VARIABLES
   ========================================================= */
:root{
    --prop-navy:#102a43;
    --prop-navy-dark:#08243d;
    --prop-blue:#123f63;
    --prop-gold:#b88a3b;
    --prop-gold-light:#d1a85a;
    --prop-border:#e3e8ed;
    --prop-text:#24364b;
    --prop-muted:#6d7884;
    --prop-bg:#f5f7f9;
    --prop-white:#fff;
}

/* =========================================================
   SEARCH BAR
   ========================================================= */
.prop-search{
    position:relative;
    z-index:999999;
    background:#fff;
    padding:20px 22px 22px;
    border-radius:5px;
    box-shadow:0 12px 40px rgba(0,0,0,.15);
    max-width:1120px;
    margin:0 auto;
    box-sizing:border-box;
    overflow:visible !important;
}

.prop-search-tab{
    position:absolute;
    top:-50px;
    left:0;
    background:var(--prop-gold);
    color:#fff;
    padding:14px 30px;
    font-weight:700;
    border-radius:5px 5px 0 0;
}

.prop-search-grid{
    position:relative;
    z-index:999999;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
    overflow:visible !important;
}

.prop-search select,
.prop-search input,
.prop-search button{
    width:100%;
    height:48px;
    border:1px solid #d7dce1;
    border-radius:4px;
    padding:0 14px;
    font:inherit;
    background:#fff;
    box-sizing:border-box;
}

.prop-search button{
    background:var(--prop-gold);
    color:#fff;
    border:0;
    font-weight:700;
    cursor:pointer;
}

.prop-search button:hover{
    background:#9f752e;
}

.prop-search button.clear{
    background:#d1d1d1;
}

/* =========================================================
   PRICE FIELDS - EURO SYMBOL
   ========================================================= */

.prop-search .prop-price-field{
    position:relative !important;
    display:block !important;
    width:100%;
    height:48px !important;
    min-height:48px !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box;
}

.prop-search .prop-price-field .prop-price-symbol{
    position:absolute !important;
    left:14px !important;
    top:0 !important;
    bottom:0 !important;
    width:18px !important;
    height:48px !important;
    margin:0 !important;
    padding:0 !important;
    z-index:20 !important;

    display:flex !important;
    align-items:center !important;
    justify-content:center !important;

    color:#555 !important;
    font-size:16px !important;
    line-height:1 !important;
    pointer-events:none !important;
}

.prop-search .prop-price-field input{
    display:block !important;
    width:100% !important;
    height:48px !important;
    min-height:48px !important;
    margin:0 !important;
    box-sizing:border-box !important;

    padding-left:40px !important;
    padding-right:14px !important;
}

/* =========================================================
   VIEW RESULTS + PROPERTY COUNT
   ========================================================= */

.prop-search .prop-view-results{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    white-space:nowrap;
}

.prop-search .prop-result-count{
    font-weight:700;
}

.prop-search .prop-view-results:disabled{
    opacity:.7;
    cursor:wait;
}

.prop-search button.clear:hover{
    background:#bdbdbd;
}

/* =========================================================
   SEARCH RESULTS
   ========================================================= */
.prop-results-wrap{
    max-width:1180px;
    margin:40px auto;
}

.prop-results-head{
    display:flex;
    justify-content:space-between;
    align-items:end;
    margin-bottom:20px;
    font-size:24px;
    color:var(--prop-gold);
    font-weight:700;
}

.prop-results-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}

.prop-card{
    background:#fff;
    border:1px solid var(--prop-border);
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 8px 28px rgba(17,33,50,.06);
    transition:transform .25s ease,box-shadow .25s ease;
}

.prop-card:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 35px rgba(17,33,50,.12);
}

.prop-card-img{
    display:block;
    position:relative;
    height:245px;
    overflow:hidden;
}

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

.prop-card:hover .prop-card-img img{
    transform:scale(1.04);
}

.prop-badge{
    position:absolute;
    left:14px;
    top:14px;
    background:var(--prop-gold);
    color:#fff;
    padding:6px 10px;
    border-radius:3px;
    font-size:12px;
}

.prop-card-body{
    padding:18px;
}

.prop-ref{
    font-size:11px;
    color:#6d7a8a;
    letter-spacing:.5px;
    margin-bottom:8px;
}

.prop-card h3{
    font-size:21px;
    line-height:1.3;
    margin:0 0 12px;
}

.prop-card h3 a{
    color:#16283d;
    text-decoration:none;
}

.prop-location{
    font-size:13px;
    color:#596777;
}

.prop-divider{
    height:1px;
    background:#e7eaee;
    margin:18px 0 12px;
}

.prop-meta{
    display:flex;
    gap:10px;
    font-size:13px;
    font-weight:600;
}

.prop-price-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-top:14px;
}

.prop-price-row strong{
    font-size:21px;
    color:var(--prop-gold);
}

.prop-price-row a{
    font-size:12px;
    font-weight:700;
    text-decoration:none;
    color:var(--prop-gold);
}

.prop-pagination{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px;
    margin-top:32px;
    padding:0;
}

.prop-page{
    min-width:36px;
    height:40px;
    padding:0 12px;
    border:0;
    background:#fff;
    color:#1d2d3d;
    font-size:14px;
    line-height:40px;
    text-align:center;
    cursor:pointer;
    border-radius:0;
    transition:background .2s ease,color .2s ease;
}

.prop-page:hover:not(:disabled){
    background:#f1eadf;
    color:#1d2d3d;
}

.prop-page.active{
    background:#AC8745!important;
    color:#fff!important;
    border-color:#AC8745!important;
}

.prop-page:disabled{
    opacity:.45;
    cursor:default;
}

.prop-page-dots{
    min-width:24px;
    color:#1d2d3d;
    text-align:center;
    line-height:40px;
}

.prop-no-results{
    padding:50px;
    text-align:center;
    background:#f7f8fa;
}

/* =========================================================
   OLD / FALLBACK SINGLE PROPERTY CLASSES
   ========================================================= */
.prop-single{
    max-width:1180px;
    margin:30px auto;
    color:var(--prop-text);
}

.prop-single-top{
    display:flex;
    gap:8px;
    margin-bottom:12px;
}

.prop-back,
.prop-new-search{
    background:var(--prop-gold);
    color:#fff;
    padding:9px 14px;
    text-decoration:none;
    font-size:13px;
}

.prop-single-head{
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    background:#3f4452!important;
    color:#fff;
    padding:12px 14px;
    gap:12px;
    font-size:13px;
}

.prop-single-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:14px;
    align-items:start;
}

.prop-gallery{
    border:1px solid #ddd;
}

.prop-main-image{
    height:480px;
    background:#f3f4f5;
}

.prop-main-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.prop-thumbs{
    display:flex;
    gap:6px;
    padding:8px;
    overflow:auto;
}

.prop-thumbs button{
    border:0;
    padding:0;
    background:#fff;
    width:84px;
    height:62px;
    flex:0 0 84px;
    cursor:pointer;
}

.prop-thumbs img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.prop-detail-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    border-top:1px solid #ddd;
    margin-top:22px;
    padding-top:16px;
    gap:10px 20px;
    font-size:13px;
}

.prop-detail-grid div{
    display:flex;
    justify-content:space-between;
    border-bottom:1px dotted #ddd;
    padding-bottom:7px;
}

.prop-detail-grid b{
    margin-right:10px;
}

.prop-single section{
    margin-top:24px;
}

.prop-single section h2{
    font-size:16px;
    border-bottom:1px solid #d9d9d9;
    padding-bottom:8px;
    color:#17365d;
}

.prop-description{
    font-size:13px;
    line-height:1.75;
}

.prop-feature-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:7px;
    font-size:12px;
}

.prop-single-sidebar{
    position:relative;
}

.prop-single-sidebar-inner{
    position:sticky;
    top:90px;
    z-index:10;
}

.prop-enquiry,
.prop-side-box{
    background:#3f4452!important;
    padding:16px;
    color:#fff;
    margin-bottom:14px;
}

.prop-enquiry h2,
.prop-side-box h3{
    font-size:18px;
    margin:0 0 10px;
    color:#fff;
}

.prop-enquiry p{
    font-size:12px;
    line-height:1.5;
}

.prop-enquiry label,
.prop-side-box label{
    display:block;
    font-size:13px;
    margin:10px 0 4px;
    color:#fff!important;
}

.prop-enquiry input,
.prop-enquiry textarea,
.prop-side-box input{
    width:100%;
    box-sizing:border-box;
    border:0;
    padding:9px;
    background:#fff;
}

.prop-enquiry textarea{
    height:90px;
}

.prop-enquiry button{
    margin-top:12px;
    width:100%;
    background:var(--prop-gold);
    color:#fff;
    border:0;
    padding:11px;
    cursor:pointer;
}

.prop-form-message{
    font-size:12px;
    margin-top:10px;
}

.prop-side-box{
    background:var(--prop-gold);
}

.mort-result{
    margin-top:14px;
    background:var(--prop-navy);
    padding:14px;
    font-size:17px;
    font-weight:700;
    text-align:center;
}

.prop-video{
    position:relative;
    width:100%;
    aspect-ratio:16/9;
    overflow:hidden;
    background:#eee;
}

.prop-video iframe{
    width:100%;
    height:100%;
    border:0;
    display:block;
}

.prop-map{
    position:relative;
    width:100%;
    height:400px;
    overflow:hidden;
    background:#eee;
}

.prop-map iframe{
    width:100%;
    height:100%;
    border:0;
    display:block;
}

/* =========================================================
   MODERN SINGLE PROPERTY PAGE
   ========================================================= */
.prop-single-modern{
    --omni-navy:#102a43;
    --omni-navy-dark:#08243d;
    --omni-blue:#123f63;
    --omni-gold:#b88a3b;
    --omni-gold-light:#d1a85a;
    --omni-text:#24364b;
    --omni-muted:#6d7884;
    --omni-border:#e3e8ed;
    --omni-bg:#f5f7f9;

    max-width:1240px!important;
    margin:0 auto!important;
    padding:18px 20px 70px!important;
    color:var(--omni-text);
    box-sizing:border-box;
}

.prop-single-modern *,
.prop-single-modern *::before,
.prop-single-modern *::after{
    box-sizing:border-box;
}

/* ---------- Breadcrumb ---------- */
.prop-single-modern .prop-modern-breadcrumb{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-bottom:18px;
    font-size:13px;
}

.prop-single-modern .prop-breadcrumb-left{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    color:#77828e;
}

.prop-single-modern .prop-breadcrumb-left a{
    color:#667382;
    text-decoration:none;
}

.prop-single-modern .prop-breadcrumb-left a:hover{
    color:var(--omni-gold);
}

.prop-single-modern .prop-breadcrumb-left strong{
    color:var(--omni-navy);
}

.prop-single-modern .prop-modern-actions{
    display:flex;
    gap:8px;
}

.prop-single-modern .prop-action-light,
.prop-single-modern .prop-action-dark{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:0 15px;
    border-radius:6px;
    text-decoration:none;
    font-size:13px;
    font-weight:700;
    white-space:nowrap;
}

.prop-single-modern .prop-action-light{
    background:#fff;
    border:1px solid var(--omni-border);
    color:var(--omni-navy);
}

.prop-single-modern .prop-action-dark{
    background:var(--omni-navy);
    border:1px solid var(--omni-navy);
    color:#fff;
}

.prop-single-modern .prop-action-light:hover{
    border-color:var(--omni-gold);
    color:var(--omni-gold);
}

.prop-single-modern .prop-action-dark:hover{
    background:var(--omni-blue);
    color:#fff;
}

/* ---------- Hero / Gallery + Sidebar ---------- */
.prop-single-modern .prop-modern-hero-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:18px;
    align-items:start;
}

.prop-single-modern .prop-modern-gallery{
    min-width:0;
}

/* ---------- Main Gallery ---------- */
.prop-single-modern .prop-modern-main-image{
    position:relative;
    height:500px;
    overflow:hidden;
    border-radius:12px;
    background:#e9edf1;
    box-shadow:0 8px 30px rgba(20,40,60,.08);
}

.prop-single-modern .prop-modern-main-image>img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.prop-single-modern .prop-modern-status{
    position:absolute;
    left:16px;
    top:16px;
    z-index:3;
    padding:9px 15px;
    border-radius:6px;
    background:var(--omni-navy);
    color:#fff;
    font-size:14px;
    font-weight:800;
}

.prop-single-modern .prop-gallery-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    z-index:4;
    width:42px;
    height:42px;
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(8,35,58,.88);
    color:#fff;
    font-size:30px;
    line-height:42px;
    text-align:center;
    cursor:pointer;
}

.prop-single-modern .prop-gallery-arrow:hover{
    background:var(--omni-gold);
}

.prop-single-modern .prop-gallery-prev{
    left:16px;
}

.prop-single-modern .prop-gallery-next{
    right:16px;
}

.prop-single-modern .prop-gallery-counter{
    position:absolute;
    right:16px;
    bottom:16px;
    z-index:4;
    padding:8px 12px;
    border-radius:6px;
    background:rgba(8,35,58,.88);
    color:#fff;
    font-size:12px;
    font-weight:700;
}

.prop-single-modern .prop-view-gallery{
    position:absolute;
    left:16px;
    bottom:16px;
    z-index:4;
    padding:9px 14px;
    border:0;
    border-radius:6px;
    background:rgba(8,35,58,.88);
    color:#fff;
    cursor:pointer;
    font-weight:700;
}

.prop-single-modern .prop-view-gallery:hover{
    background:var(--omni-gold);
}

/* ---------- Gallery thumbnails ---------- */
.prop-single-modern .prop-modern-thumbs{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:8px;
    margin-top:9px;
}

.prop-single-modern .prop-modern-thumbs button{
    width:100%;
    height:72px;
    padding:0;
    overflow:hidden;
    border:2px solid transparent;
    border-radius:7px;
    background:#fff;
    cursor:pointer;
}

.prop-single-modern .prop-modern-thumbs button.active{
    border-color:var(--omni-gold);
}

.prop-single-modern .prop-modern-thumbs img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

/* =========================================================
   MODERN STICKY SIDEBAR
   ========================================================= */
.prop-single-modern .prop-modern-sidebar{
    min-width:0;
}

.prop-single-modern .prop-property-sidebar-inner{
    position:sticky;
    top:100px !important;
    z-index:20;
}

/* ---------- Sidebar summary card ---------- */
.prop-single-modern .prop-price-card{
    background:#ffffff !important;
    border:1px solid var(--omni-border) !important;
    border-radius:12px;
    padding:18px;
    box-shadow:0 10px 35px rgba(20,40,60,.08);
}

.prop-single-modern .prop-price-top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:10px;
}

.prop-single-modern .prop-modern-price{
    color:var(--omni-gold);
    font-size:30px;
    line-height:1.1;
    font-weight:800;
}

.prop-single-modern .prop-icon-actions{
    display:flex;
    gap:7px;
}

.prop-single-modern .prop-icon-actions button{
    width:38px;
    height:38px;
    padding:0;
    border:1px solid var(--omni-border);
    border-radius:50%;
    background:#fff;
    color:var(--omni-navy);
    cursor:pointer;
    font-size:20px;
}

.prop-single-modern .prop-icon-actions button:hover{
    color:var(--omni-gold);
    border-color:var(--omni-gold);
}

.prop-single-modern .prop-price-card h1{
    margin:14px 0 8px;
    color:var(--omni-navy);
    font-size:24px;
    line-height:1.2;
    font-weight:800;
}

.prop-single-modern .prop-modern-location{
    color:#667482;
    font-size:13px;
    line-height:1.5;
}

.prop-single-modern .prop-modern-location span{
    color:var(--omni-gold);
}

.prop-single-modern .prop-modern-reference{
    margin-top:9px;
    padding-bottom:15px;
    border-bottom:1px solid var(--omni-border);
    color:#75818c;
    font-size:12px;
}

/* ---------- Quick stats ---------- */
.prop-single-modern .prop-quick-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    margin:16px 0;
    border:1px solid var(--omni-border);
    border-radius:8px;
    overflow:hidden;
}

.prop-single-modern .prop-quick-stats>div{
    padding:11px 4px;
    text-align:center;
    border-right:1px solid var(--omni-border);
}

.prop-single-modern .prop-quick-stats>div:last-child{
    border-right:0;
}

.prop-single-modern .prop-stat-icon{
    display:block;
    margin-bottom:4px;
    color:var(--omni-gold);
    font-size:19px;
}

.prop-single-modern .prop-quick-stats strong{
    display:block;
    color:var(--omni-navy);
    font-size:14px;
}

.prop-single-modern .prop-quick-stats small{
    display:block;
    margin-top:2px;
    color:#78838e;
    font-size:10px;
}

/* ---------- CTA ---------- */
.prop-single-modern .prop-main-cta{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:45px;
    border-radius:6px;
    background:var(--omni-gold);
    color:#fff!important;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
}

.prop-single-modern .prop-main-cta:hover{
    background:#9f752e;
}

/* ---------- Viewing ---------- */
.prop-single-modern .prop-viewing-card{
    display:grid;
    grid-template-columns:34px 1fr;
    gap:8px;
    margin-top:14px;
    padding:15px;
    border-radius:9px;
    background:#f5f7f9;
}

.prop-single-modern .prop-viewing-icon{
    color:var(--omni-gold);
    font-size:22px;
}

.prop-single-modern .prop-viewing-card h3{
    margin:0;
    color:var(--omni-navy);
    font-size:15px;
}

.prop-single-modern .prop-viewing-card p{
    margin:4px 0 12px;
    color:#75808a;
    font-size:11px;
    line-height:1.5;
}

.prop-single-modern .prop-viewing-card a{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    border:1px solid var(--omni-gold);
    border-radius:6px;
    background:#fff;
    color:var(--omni-gold)!important;
    text-decoration:none;
    font-size:12px;
    font-weight:700;
}

.prop-single-modern .prop-viewing-card a:hover{
    background:var(--omni-gold);
    color:#fff!important;
}

/* ---------- Mortgage ---------- */
.prop-single-modern .prop-modern-mortgage{
    margin-top:14px;
    padding-top:16px;
    border-top:1px solid var(--omni-border);
}

.prop-single-modern .prop-modern-mortgage h3{
    margin:0 0 13px;
    color:var(--omni-navy);
    font-size:16px;
}

.prop-single-modern .prop-modern-mortgage label{
    display:block;
    margin:10px 0 5px;
    color:#657180;
    font-size:11px;
    font-weight:600;
}

.prop-single-modern .prop-modern-mortgage input{
    width:100%;
    min-height:40px;
    padding:8px 10px;
    border:1px solid #d6dde4;
    border-radius:5px;
    background:#fff;
}

.prop-single-modern .mort-result{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:45px;
    margin-top:12px;
    border-radius:6px;
    background:var(--omni-navy);
    color:#fff;
    font-size:15px;
    font-weight:800;
}

/* ---------- Share ---------- */
.prop-single-modern .prop-share-box{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid var(--omni-border);
}

.prop-single-modern .prop-share-box h3{
    margin:0 0 11px;
    color:var(--omni-navy);
    font-size:15px;
}

.prop-single-modern .prop-share-links{
    display:flex;
    gap:8px;
}

.prop-single-modern .prop-share-links a{
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--omni-border);
    border-radius:50%;
    background:#fff;
    color:var(--omni-navy);
    text-decoration:none;
    font-weight:700;
}

.prop-single-modern .prop-share-links a:hover{
    color:var(--omni-gold);
    border-color:var(--omni-gold);
}

/* ---------- Enquiry ---------- */
.prop-single-modern .prop-modern-enquiry{
    margin-top:14px;
    padding:18px;
    background:#ffffff !important;
    border:1px solid var(--omni-border) !important ;
    border-radius:12px;
    box-shadow:0 10px 35px rgba(20,40,60,.08);
}

.prop-single-modern .prop-modern-enquiry h2{
    margin:0 0 8px;
    color:var(--omni-navy);
    font-size:19px;
}

.prop-single-modern .prop-modern-enquiry p{
    margin:0 0 14px;
    color:#74808b;
    font-size:12px;
    line-height:1.5;
}

.prop-single-modern .prop-modern-enquiry label{
    display:block;
    margin:10px 0 5px;
    color:var(--omni-navy);
    font-size:11px;
    font-weight:700;
}

.prop-single-modern .prop-modern-enquiry input,
.prop-single-modern .prop-modern-enquiry textarea{
    width:100%;
    padding:9px 10px;
    border:1px solid #d6dde4;
    border-radius:5px;
    background:#fff;
    color:#24364b;
}

.prop-single-modern .prop-modern-enquiry input{
    min-height:39px;
}

.prop-single-modern .prop-modern-enquiry textarea{
    min-height:100px;
    resize:vertical;
}

.prop-single-modern .prop-modern-enquiry button{
    width:100%;
    min-height:43px;
    margin-top:12px;
    border:0;
    border-radius:6px;
    background:var(--omni-gold);
    color:#fff;
    font-weight:800;
    cursor:pointer;
}

.prop-single-modern .prop-modern-enquiry button:hover{
    background:#9f752e;
}

/* =========================================================
   MODERN CONTENT
   ========================================================= */
.prop-single-modern .prop-modern-content{
    margin-top:18px;
    min-width:0;
}

.prop-single-modern .prop-section-tabs{
    position:sticky;
    top:85px;
    z-index:15;
    display:flex;
    overflow-x:auto;
    margin-bottom:16px;
    border:1px solid var(--omni-border);
    border-radius:9px;
    background:#fff;
    box-shadow:0 5px 18px rgba(20,40,60,.06);
}

.prop-single-modern .prop-section-tabs a{
    flex:1 0 auto;
    padding:14px 15px;
    border-bottom:3px solid transparent;
    color:#677482;
    text-align:center;
    text-decoration:none;
    font-size:12px;
    font-weight:700;
    white-space:nowrap;
}

.prop-single-modern .prop-section-tabs a:hover,
.prop-single-modern .prop-section-tabs a.active{
    color:var(--omni-gold);
    border-bottom-color:var(--omni-gold);
}

.prop-single-modern .prop-modern-section{
    scroll-margin-top:105px;
    margin-bottom:16px;
    padding:22px;
    border:1px solid var(--omni-border);
    border-radius:10px;
    background:#fff;
    box-shadow:0 5px 20px rgba(20,40,60,.035);
}

.prop-single-modern .prop-section-heading{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:16px;
}

.prop-single-modern .prop-section-heading>span{
    width:30px;
    height:3px;
    display:block;
    background:var(--omni-gold);
}

.prop-single-modern .prop-section-heading h2{
    margin:0;
    color:var(--omni-navy);
    font-size:24px;
    line-height:1.2;
    font-weight:800;
}

/* ---------- Details ---------- */
.prop-single-modern .prop-modern-details{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 28px;
}

.prop-single-modern .prop-modern-details>div{
    display:flex;
    justify-content:space-between;
    gap:15px;
    padding:12px 0;
    border-bottom:1px dashed #dce2e7;
    font-size:12px;
}

.prop-single-modern .prop-modern-details b{
    color:var(--omni-navy);
}

.prop-single-modern .prop-modern-details span{
    color:#6f7c88;
    text-align:right;
}

/* ---------- Description ---------- */
.prop-single-modern .prop-description{
    color:#52606d;
    font-size:14px;
    line-height:1.85;
}

.prop-single-modern .prop-description p{
    margin:0 0 10px;
}

/* ---------- Features / Amenities ---------- */
.prop-single-modern .prop-modern-feature-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px 20px;
}

.prop-single-modern .prop-modern-feature-grid>div{
    color:#52606d;
    font-size:13px;
    line-height:1.5;
}

.prop-single-modern .prop-modern-feature-grid>div span{
    margin-right:5px;
    color:var(--omni-gold);
    font-weight:800;
}

/* ---------- Video ---------- */
.prop-single-modern .prop-modern-video{
    width:100%;
    aspect-ratio:16/9;
    overflow:hidden;
    border-radius:9px;
    background:#edf0f2;
}

.prop-single-modern .prop-modern-video iframe{
    width:100%;
    height:100%;
    display:block;
    border:0;
}

/* ---------- Map ---------- */
.prop-single-modern .prop-modern-map{
    height:430px;
    overflow:hidden;
    border-radius:9px;
    background:#edf0f2;
}

.prop-single-modern .prop-modern-map iframe{
    width:100%;
    height:100%;
    display:block;
    border:0;
}

/* ---------- Similar properties ---------- */
.prop-single-modern .prop-similar-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.prop-single-modern .prop-similar-card{
    overflow:hidden;
    border:1px solid var(--omni-border);
    border-radius:9px;
    background:#fff;
    transition:transform .25s ease,box-shadow .25s ease;
}

.prop-single-modern .prop-similar-card:hover{
    transform:translateY(-4px);
    box-shadow:0 12px 28px rgba(20,40,60,.12);
}

.prop-single-modern .prop-similar-image{
    position:relative;
    display:block;
    height:150px;
    overflow:hidden;
}

.prop-single-modern .prop-similar-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .35s ease;
}

.prop-single-modern .prop-similar-card:hover .prop-similar-image img{
    transform:scale(1.05);
}

.prop-single-modern .prop-similar-image>span{
    position:absolute;
    right:9px;
    top:9px;
    width:31px;
    height:31px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#fff;
    color:var(--omni-navy);
}

.prop-single-modern .prop-similar-body{
    padding:13px;
}

.prop-single-modern .prop-similar-body h3{
    margin:0 0 8px;
    font-size:14px;
    line-height:1.35;
}

.prop-single-modern .prop-similar-body h3 a{
    color:var(--omni-navy);
    text-decoration:none;
}

.prop-single-modern .prop-similar-body>strong{
    display:block;
    margin-bottom:9px;
    color:var(--omni-gold);
    font-size:17px;
}

.prop-single-modern .prop-similar-meta{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    color:#6d7782;
    font-size:11px;
}

/* =========================================================
   ADMIN
   ========================================================= */
.prop-admin-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}

.prop-admin-field label{
    font-weight:600;
    display:block;
    margin-bottom:5px;
}

.prop-admin-field input,
.prop-admin-field textarea,
.prop-admin-field select{
    width:100%;
    box-sizing:border-box;
}

.prop-gallery-admin{
    margin-top:20px;
}

.prop-gallery-admin img{
    width:80px;
    height:60px;
    object-fit:cover;
    margin:6px;
    border:1px solid #ddd;
    vertical-align:middle;
}

/* =========================================================
   RESPONSIVE - TABLET
   ========================================================= */
@media(max-width:1100px){

    .prop-single-modern{
        padding-left:15px!important;
        padding-right:15px!important;
    }

    .prop-single-modern .prop-modern-hero-grid{
        grid-template-columns:minmax(0,1fr) 300px;
    }

    .prop-single-modern .prop-modern-main-image{
        height:450px;
    }

    .prop-single-modern .prop-similar-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

/* =========================================================
   RESPONSIVE - 991px
   ========================================================= */
@media(max-width:991px){

    .prop-search-grid,
    .prop-results-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .prop-single-layout{
        grid-template-columns:1fr;
    }

    .prop-feature-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .prop-single-sidebar-inner{
        position:static;
    }

    .prop-map{
        height:350px;
    }

    .prop-single-modern .prop-modern-hero-grid{
        grid-template-columns:1fr;
    }

    .prop-single-modern .prop-property-sidebar-inner{
        position:static;
    }

    .prop-single-modern .prop-modern-main-image{
        height:460px;
    }

    .prop-single-modern .prop-modern-feature-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .prop-single-modern .prop-section-tabs{
        position:static;
    }
}

/* =========================================================
   RESPONSIVE - 767px
   ========================================================= */
@media(max-width:767px){

    .prop-search-grid,
    .prop-results-grid,
    .prop-detail-grid,
    .prop-feature-grid{
        grid-template-columns:1fr;
    }

    .prop-single-head{
        grid-template-columns:1fr;
    }

    .prop-main-image{
        height:300px;
    }

    .prop-search-tab{
        top:-46px;
    }

    .prop-card-img{
        height:220px;
    }

    .prop-map{
        height:280px;
    }

    .prop-video{
        aspect-ratio:16/9;
    }

    .prop-single-modern{
        padding:12px 12px 45px!important;
    }

    .prop-single-modern .prop-modern-breadcrumb{
        align-items:flex-start;
        flex-direction:column;
    }

    .prop-single-modern .prop-modern-actions{
        width:100%;
    }

    .prop-single-modern .prop-action-light,
    .prop-single-modern .prop-action-dark{
        flex:1;
    }

    .prop-single-modern .prop-modern-main-image{
        height:330px;
    }

    .prop-single-modern .prop-modern-thumbs{
        grid-template-columns:repeat(4,1fr);
    }

    .prop-single-modern .prop-modern-thumbs button{
        height:62px;
    }

    .prop-single-modern .prop-quick-stats{
        grid-template-columns:repeat(2,1fr);
    }

    .prop-single-modern .prop-quick-stats>div:nth-child(2){
        border-right:0;
    }

    .prop-single-modern .prop-quick-stats>div:nth-child(-n+2){
        border-bottom:1px solid var(--omni-border);
    }

    .prop-single-modern .prop-modern-details{
        grid-template-columns:1fr;
    }

    .prop-single-modern .prop-modern-feature-grid{
        grid-template-columns:1fr;
    }

    .prop-single-modern .prop-similar-grid{
        grid-template-columns:1fr;
    }

    .prop-single-modern .prop-modern-section{
        padding:16px;
    }

    .prop-single-modern .prop-modern-map{
        height:320px;
    }

    .prop-single-modern .prop-section-heading h2{
        font-size:21px;
    }

    .prop-single-modern .prop-modern-price{
        font-size:26px;
    }

    .prop-single-modern .prop-price-card h1{
        font-size:21px;
    }
}

/* =========================================================
   VERY SMALL MOBILE
   ========================================================= */
@media(max-width:480px){

    .prop-single-modern .prop-modern-actions{
        flex-direction:column;
    }

    .prop-single-modern .prop-modern-actions a{
        width:100%;
    }

    .prop-single-modern .prop-modern-main-image{
        height:280px;
    }

    .prop-single-modern .prop-gallery-arrow{
        width:36px;
        height:36px;
        line-height:36px;
        font-size:25px;
    }

    .prop-single-modern .prop-modern-thumbs{
        gap:5px;
    }

    .prop-single-modern .prop-modern-thumbs button{
        height:55px;
    }

    .prop-single-modern .prop-modern-section{
        padding:13px;
    }

    .prop-single-modern .prop-modern-details>div{
        flex-direction:column;
        align-items:flex-start;
        gap:3px;
    }

    .prop-single-modern .prop-modern-details span{
        text-align:left;
    }

    .prop-single-modern .prop-modern-feature-grid{
        grid-template-columns:1fr;
    }
}

/* =========================================================
   MODERN SINGLE PAGE TWO-COLUMN LAYOUT
   RIGHT SIDEBAR = FIXED ON DESKTOP
   NO INTERNAL SCROLLBAR
   ========================================================= */

.prop-single-modern .prop-modern-page-grid{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 330px !important;
    gap:20px !important;
    align-items:start !important;
    position:relative !important;
}

.prop-single-modern .prop-modern-left{
    min-width:0 !important;
    width:100% !important;
}

.prop-single-modern .prop-property-sidebar{
    min-width:0 !important;
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    overflow-y:visible !important;
    overflow-x:visible !important;
    align-self:start !important;
}

/* New unique sidebar class - sticky on desktop, no internal scrolling. */
.prop-single-modern .prop-property-sidebar{
    position:sticky !important;
    top:85px !important;
    align-self:start !important;
    min-width:0 !important;
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
}

.prop-single-modern .prop-property-sidebar-inner{
    position:static !important;
    top:auto !important;
    bottom:auto !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    overflow-y:visible !important;
    overflow-x:visible !important;
    scrollbar-width:none !important;
}

.prop-single-modern .prop-property-sidebar::-webkit-scrollbar,
.prop-single-modern .prop-property-sidebar-inner::-webkit-scrollbar{
    display:none !important;
    width:0 !important;
    height:0 !important;
}

/* Gallery occupies the full left column. */
.prop-single-modern .prop-modern-hero-grid{
    display:block !important;
    width:100% !important;
}

.prop-single-modern .prop-modern-gallery{
    width:100% !important;
    min-width:0 !important;
}

.prop-single-modern .prop-modern-content{
    width:100% !important;
    margin-top:18px !important;
}

.prop-single-modern .prop-modern-no-image{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#6d7884;
    font-size:15px;
}

/*
 * JS controls the desktop fixed/stop-at-bottom behaviour.
 * Keep the sidebar static here so there is no CSS sticky conflict.
 */


@media(max-width:991px){
    .prop-single-modern .prop-modern-page-grid{
        grid-template-columns:1fr !important;
    }

    .prop-single-modern .prop-property-sidebar{
        position:static !important;
        width:100% !important;
        height:auto !important;
        max-height:none !important;
        overflow:visible !important;
    }

    .prop-single-modern .prop-property-sidebar .prop-property-sidebar-inner{
        position:static !important;
        height:auto !important;
        max-height:none !important;
        overflow:visible !important;
    }
}



/* =========================================================
   PROPERTY SIDEBAR - UNIQUE CLASS
   Sticky on desktop, normal on mobile, NO INTERNAL SCROLL
   ========================================================= */
.prop-single-modern .prop-property-sidebar{
    position:sticky !important;
    top:100px !important;
    align-self:start !important;
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
}

.prop-single-modern .prop-property-sidebar-inner{
    position:static !important;
    top:auto !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    overflow-y:visible !important;
    overflow-x:visible !important;
}

@media(max-width:991px){
    .prop-single-modern .prop-property-sidebar{
        position:static !important;
        width:100% !important;
        height:auto !important;
        max-height:none !important;
        overflow:visible !important;
    }

    .prop-single-modern .prop-property-sidebar-inner{
        position:static !important;
        height:auto !important;
        max-height:none !important;
        overflow:visible !important;
    }
}

/* =========================================================
   SEARCH DROPDOWN - ABOVE BANNER
   ========================================================= */

.prop-search .nice-select{
    position:relative;
    z-index:999999 !important;
}

.prop-search .nice-select.open{
    z-index:2147483647 !important;
}

.prop-search .nice-select .list{
    position:absolute !important;
    z-index:2147483647 !important;

    max-height:230px !important;

    overflow-y:auto !important;
    overflow-x:hidden !important;

    width:100% !important;

    box-sizing:border-box;
}

/*
 * Make sure the search elements themselves do not
 * clip the dropdown.
 */
.prop-search,
.prop-search-grid,
.prop-search .nice-select,
.prop-search .nice-select.open{
    overflow:visible !important;
}

/* Scrollbar */
.prop-search .nice-select .list::-webkit-scrollbar {
    width: 6px;
}

.prop-search .nice-select .list::-webkit-scrollbar-thumb {
    background: #b8b8b8;
    border-radius: 10px;
}

.nice-select .option.focus, .nice-select .option.selected.focus, .nice-select .option:hover {
    background-color: #b88a3b !important;
}

/* =========================================================
   MOBILE SEARCH BAR - FIXED HEIGHT + INTERNAL SCROLL
   ========================================================= */

@media screen and (max-width: 767px){

    /*
     * Keep the complete search box at a fixed height.
     * Only the fields area scrolls, so the search box itself
     * never gets cut off by the viewport.
     */
    .prop-search{
        width:100%;
        max-width:100%;
        height:430px;
        max-height:430px;
        min-height:430px;

        margin:0 auto;
        padding:0 14px 14px;

        box-sizing:border-box;

        overflow:visible !important;

        -webkit-overflow-scrolling:touch;
    }

    /*
     * Keep the "For Sale" tab visible while the fields scroll.
     */
    .prop-search .prop-search-tab{
        position:relative;

        top:auto;
        left:auto;

        z-index:20;

        width:calc(100% + 28px);
        margin:0 -14px 14px;

        padding:12px 16px;

        box-sizing:border-box;

        border-radius:5px 5px 0 0;

        text-align:left;
    }

    /*
     * The actual controls scroll vertically inside the
     * fixed-height search box.
     */
    .prop-search .prop-search-grid{
        display:grid;
        grid-template-columns:1fr;

        gap:10px;

        height:calc(100% - 58px);
        max-height:calc(100% - 58px);

        overflow-y:visible !important;
        overflow-x:visible !important;

        padding:0 4px 4px 0;

        box-sizing:border-box;

        -webkit-overflow-scrolling:touch;

        scrollbar-width:thin;
    }

    /*
     * Prevent long native/select content from forcing the
     * search box wider than the screen.
     */
    .prop-search select,
    .prop-search input,
    .prop-search button{
        width:100%;
        min-width:0;
        max-width:100%;
        height:48px;

        box-sizing:border-box;
    }

    /*
     * Better touch scrolling on mobile.
     */
    .prop-search .prop-search-grid{
        touch-action:pan-y;
    }

    /*
     * WebKit scrollbar styling.
     */
    .prop-search .prop-search-grid::-webkit-scrollbar{
        width:5px;
    }

    .prop-search .prop-search-grid::-webkit-scrollbar-track{
        background:#f0f0f0;
        border-radius:10px;
    }

    .prop-search .prop-search-grid::-webkit-scrollbar-thumb{
        background:#b88a3b;
        border-radius:10px;
    }
}

/* Smaller phones */
@media screen and (max-width: 480px){

    .prop-search{
        height:400px;
        max-height:400px;
        min-height:400px;

        padding-left:12px;
        padding-right:12px;
        padding-bottom:12px;
    }

    .prop-search .prop-search-tab{
        width:calc(100% + 24px);
        margin-left:-12px;
        margin-right:-12px;
        padding:11px 14px;
    }

    .prop-search .prop-search-grid{
        height:calc(100% - 54px);
        max-height:calc(100% - 54px);
        gap:9px;
    }

}

.nice-select {
    width: 100% !important;
}