/* Property detail: editorial typography and restrained surfaces, inspired by About. */
.property-detail-page { background:#f7f8fa; color:#182b43; }
.property-detail-page .property-heading { padding:32px 0 34px; background:#fff; border-bottom:1px solid #e4e9ef; }
.property-detail-page .property-heading h1 { max-width:1000px; font-size:clamp(26px,3vw,42px); line-height:1.45; letter-spacing:-.025em; color:#142c46; margin:0 0 14px; }
.property-detail-page .property-heading p { max-width:900px; color:#687687; font-size:14px; line-height:1.8; }
.property-highlights { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:22px; font-size:13px; }
.property-highlights span,.property-highlights a { display:inline-flex; align-items:center; gap:9px; color:#405872; }
.property-highlights i { color:#658aa7; }
.property-highlights a { text-decoration:underline; text-underline-offset:5px; }
.property-detail-page .section { padding-top:32px; }
.property-detail-page .detail-layout { grid-template-columns:minmax(0,1fr) 330px; gap:28px; }
.property-detail-page .detail-card { padding:28px; border:1px solid #e3e8ee; border-radius:16px; box-shadow:0 4px 18px rgba(24,43,67,.025); margin-bottom:20px; }
.property-detail-page .property-gallery-card { padding:0!important; border:0; background:transparent; box-shadow:none; }
.property-detail-page .property-gallery-stage { border-radius:16px; aspect-ratio:16/10; }
.property-detail-page .gallery-counter { right:auto; width:auto; left:18px; bottom:18px; padding:6px 13px; font-weight:500; }
.property-detail-page .gallery-watermark { font-size:15px; }
.property-detail-page .gallery-thumb { border-radius:8px; border-width:2px; box-shadow:none; }
.property-detail-page .gallery-thumb.active { border-color:#254e70; box-shadow:none; }
.property-detail-page .detail-title { background:#fff; border-left:3px solid #315a7b; }
.property-detail-page .detail-title h2 { margin:12px 0; font-size:21px; }
.property-detail-page .detail-price { color:#244e72; font-size:28px; }
.property-detail-page .detail-card h2 { color:#1b334d; font-size:22px; line-height:1.5; }
.property-detail-page .detail-card p,.property-detail-page .formatted-content,.property-detail-page .article-content { line-height:1.9; }
.property-detail-page .detail-section-icon { border:0; border-radius:12px; background:#edf2f6; color:#426785; box-shadow:none; }
.property-detail-page .detail-section-heading p { font-size:12px; }
.property-detail-page .property-info-icon { color:#527591; border:0; background:#f0f4f7; }
.property-detail-page .property-info-item small { color:#667588; }
.property-detail-page .property-info-item strong { font-weight:600; }
.property-detail-page .facility-list { gap:10px; }
.property-detail-page .facility-item { background:#f7f9fa; border:1px solid #e6ebef; color:#3c5870; border-radius:8px; padding:12px; }
.property-detail-page .facility-icon { color:#527b9b; }
.property-detail-page .contact-sidebar { position:static; }
.property-detail-page .owner-box { padding:24px; border-top:3px solid #254e70; }
.property-contact-price { text-align:left; padding-bottom:24px; margin-bottom:24px; border-bottom:1px solid #e4e9ef; }
.property-contact-price>span { display:block; color:#687789; font-size:12px; margin-bottom:6px; }
.property-contact-price strong { display:block; color:#163b5b; font-size:25px; line-height:1.5; }
.property-contact-price small { display:block; margin-top:7px; color:#687789; font-size:11px; }
.property-detail-page .owner-avatar { width:64px; height:64px; box-shadow:none; border-color:#e1e8ee; }
.property-detail-page .owner-box .btn-primary { background:#214e73; border-color:#214e73; box-shadow:none; }
.property-detail-page .owner-box .btn-primary:hover { background:#163a59; }
.property-detail-page .masked-phone-box { border:1px solid #dce5ed; background:#f6f8fa; border-radius:10px; }
.property-detail-page .property-map-section { scroll-margin-top:110px; }
.property-detail-page .property-map-section .map-box { border-radius:12px; border-color:#e4e9ef; box-shadow:none; }
.property-detail-page .source-notice-card { box-shadow:none; }
.property-detail-page .safety-warning-card { box-shadow:none; }
.property-detail-page a:focus-visible,.property-detail-page button:focus-visible { outline:3px solid #4286ba; outline-offset:4px; }
@media(max-width:1000px) { .property-detail-page .detail-layout { grid-template-columns:minmax(0,1fr) 300px; gap:20px; } }
@media(max-width:900px) { .property-detail-page .detail-layout { grid-template-columns:1fr; } .property-detail-page .contact-sidebar { max-width:none; width:100%; } }
@media(max-width:600px) {
 .property-detail-page .property-heading { padding:22px 0 26px; }
 .property-detail-page .property-heading h1 { font-size:26px; }
 .property-detail-page .section { padding-top:20px; }
 .property-detail-page .detail-card { padding:20px; border-radius:12px; margin-bottom:16px; }
 .property-detail-page .property-gallery-stage { aspect-ratio:4/3; border-radius:12px; }
 .property-detail-page .property-gallery-card { padding:0!important; }
 .property-detail-page .detail-card h2 { font-size:20px; }
 .property-detail-page .property-info-columns { gap:10px; }
 .property-detail-page .facility-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .property-detail-page .property-highlights { gap:12px 18px; }
}

/* Bedroom hero shares the About page's transparent header and navy palette. */
.property-detail-page .property-heading {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    padding:142px 0 28px;
    min-height:0;
    background:#10324e;
    border-bottom:0;
}
.property-heading-image {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    z-index:-2;
}
.property-detail-page .property-heading::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:linear-gradient(90deg,rgba(4,26,54,.68),rgba(4,26,54,.42) 60%,rgba(4,26,54,.12));
}
.property-detail-page .property-heading h1 {
    max-width:980px;
    color:#fff;
    text-shadow:0 2px 18px rgba(4,26,54,.15);
}
.property-detail-page .property-heading p { max-width:840px; color:#d9e6ef; }
.property-detail-page .property-highlights { margin-top:26px; }
.property-detail-page .property-highlights span,
.property-detail-page .property-highlights a { color:#e7f3fb; }
.property-detail-page .property-highlights i { color:#99dcf7; }
@media(max-width:600px) {
    .property-detail-page .property-heading { padding:134px 0 24px; min-height:0; }
    .property-heading-image { object-position:62% center; }
    .property-detail-page .property-heading::before { background:rgba(4,26,54,.65); }
    .property-detail-page .property-heading h1 { font-size:26px; line-height:1.5; }
}

/* Property showcase: gallery, navy contact card and full-width living banner. */
.property-showcase-grid { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:28px; align-items:stretch; margin-bottom:20px; }
.property-detail-page .property-showcase-grid .detail-card { margin-bottom:0; }
.property-showcase-grid .property-gallery-card { min-width:0; align-self:center; }
.property-detail-page .property-showcase-grid .owner-box {
    background:linear-gradient(135deg,rgba(34,73,105,.95),rgba(8,39,69,.98)),url('../images/property-detail-bedroom-hero.webp') center/cover;
    border:1px solid #7290a8; border-radius:14px; padding:22px;
    box-shadow:inset 0 0 0 3px rgba(255,255,255,.05),0 8px 24px rgba(12,39,65,.12);
    color:#fff;
}
.property-showcase .property-contact-price { margin-bottom:16px; padding-bottom:16px; border-color:rgba(255,255,255,.22); }
.property-showcase .property-contact-price strong { color:#fff; font-size:24px; }
.property-showcase .property-contact-price>span,.property-showcase .property-contact-price small,
.property-detail-page .property-showcase .owner-role,.property-detail-page .property-showcase .owner-contact-note { color:#d9e6f2; }
.property-detail-page .property-showcase .owner-box h3 { color:#fff; margin:8px 0 3px; }
.property-detail-page .property-showcase .owner-contact-note { margin:6px 0 16px; }
.property-detail-page .property-showcase .owner-avatar { width:64px; height:64px; background:#edf3f8; }
.property-detail-page .property-showcase .masked-phone-box { background:rgba(255,255,255,.08); border:1px solid #8fa7ba; padding:12px; }
.property-detail-page .property-showcase .masked-phone-copy strong { color:#fff; }
.property-detail-page .property-showcase .masked-phone-copy span { color:#d9e6f2; }
.property-detail-page .property-showcase .masked-phone-icon { background:rgba(255,255,255,.09); color:#f5d996; }
.property-detail-page .property-showcase .owner-box .btn-primary { background:linear-gradient(110deg,#f3ce7e,#ffedbf); color:#18354f; border:1px solid #f5da9e; box-shadow:0 3px 10px rgba(0,0,0,.12); }
.property-detail-page .property-showcase .owner-box .btn-primary:hover { background:#ffe6aa; }
.property-showcase .contact-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.property-showcase .masked-phone-box,.property-showcase .owner-contact-phone,.property-showcase .owner-contact-line { grid-column:1/-1; }
.property-detail-page .property-showcase .owner-contact-email,.property-detail-page .property-showcase .owner-contact-copy { background:rgba(255,255,255,.04); border:1px solid rgba(194,215,231,.4); color:#edf6ff; font-size:11px; padding:10px 7px; min-height:38px; gap:6px; margin:0; }
.property-detail-page .property-showcase .owner-contact-email i,.property-detail-page .property-showcase .owner-contact-copy i { color:#c1e3fb; }
.property-showcase .owner-contact-chevron { display:none; }
.property-detail-page .property-showcase .detail-title { position:relative; overflow:hidden; background:linear-gradient(90deg,rgba(12,43,71,.96),rgba(16,49,79,.82) 48%,rgba(16,49,79,.15)),url('../images/property-detail-bedroom-hero.webp') center/cover; border:1px solid #94aabc; padding:26px 32px; border-radius:16px; color:#e5eef6; }
.living-eyebrow { display:block; color:#d8c49e; font-size:10px; font-weight:700; letter-spacing:.25em; margin-bottom:10px; }
.property-detail-page .property-showcase .detail-title h2 { color:#fff; margin:0 0 8px; font-size:25px; }
.property-detail-page .property-showcase .detail-title .detail-price { color:#fff; font-size:30px; }
.property-showcase .detail-title p { max-width:760px; margin-bottom:0; font-size:14px; }
@media(max-width:1000px) { .property-showcase-grid { grid-template-columns:minmax(0,1fr) 300px; gap:20px; } }
@media(max-width:900px) { .property-showcase-grid { grid-template-columns:1fr; } .property-detail-page .property-showcase-grid .owner-box { width:100%; } }
@media(max-width:600px) {
 .property-detail-page .property-showcase .detail-title { padding:24px 20px; background-position:65% center; }
 .property-detail-page .property-showcase .detail-title h2 { font-size:22px; }
 .property-detail-page .property-showcase .detail-title .detail-price { font-size:25px; }
}

.property-showcase .gallery-media-actions { position:absolute; z-index:4; bottom:16px; left:50%; transform:translateX(-50%); display:flex; gap:6px; padding:7px; border:1px solid rgba(255,255,255,.2); border-radius:10px; background:rgba(13,34,53,.82); backdrop-filter:blur(12px); white-space:nowrap; }
.gallery-media-actions button,.gallery-media-actions a { display:inline-flex; align-items:center; gap:8px; border:0; background:transparent; color:#fff; font:inherit; font-size:12px; padding:9px 12px; cursor:pointer; border-radius:6px; }
.gallery-media-actions button:hover,.gallery-media-actions a:hover { background:rgba(255,255,255,.14); }
.property-showcase .gallery-watermark { bottom:78px; font-size:12px; }
@media(max-width:600px) { .property-showcase .gallery-media-actions { bottom:12px; left:auto; right:10px; transform:none; padding:4px; } .gallery-media-actions button,.gallery-media-actions a { font-size:11px; padding:7px; gap:5px; } }

/* Improve contact-card hierarchy and readability. */
.property-showcase-grid {
    grid-template-columns:minmax(0,1fr) 360px;
}
.property-detail-page .property-showcase-grid .owner-box {
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:26px 24px 24px;
}
.property-showcase .property-contact-price {
    margin-bottom:20px;
    padding-bottom:20px;
    text-align:center;
}
.property-showcase .property-contact-price > span {
    margin-bottom:5px;
    color:#cfe1ef;
    font-size:13px;
    font-weight:600;
}
.property-showcase .property-contact-price strong {
    font-size:clamp(24px,2vw,28px);
    font-weight:800;
    line-height:1.35;
}
.property-showcase .property-contact-price small {
    margin-top:7px;
    color:#dce9f3;
    font-size:13px;
    line-height:1.55;
}
.property-detail-page .property-showcase .owner-profile-head {
    gap:10px;
    margin-bottom:8px;
}
.property-detail-page .property-showcase .owner-avatar-wrap,
.property-detail-page .property-showcase .owner-box-guest .owner-avatar-wrap,
.property-detail-page .property-showcase .owner-avatar,
.property-detail-page .property-showcase .owner-box-guest .owner-avatar {
    width:76px;
    height:76px;
}
.property-detail-page .property-showcase .owner-avatar {
    border:3px solid rgba(255,255,255,.9);
    font-size:30px;
}
.property-detail-page .property-showcase .owner-box h3,
.property-detail-page .property-showcase .owner-box-guest h3 {
    margin:4px 0 2px;
    font-size:23px;
    line-height:1.35;
}
.property-detail-page .property-showcase .owner-role {
    font-size:14px;
    font-weight:700;
}
.property-detail-page .property-showcase .owner-contact-note,
.property-detail-page .property-showcase .owner-box-guest > .owner-contact-note {
    margin:7px 0 18px;
    color:#e5eff6;
    font-size:14px;
    line-height:1.55;
}
.property-detail-page .property-showcase .masked-phone-box {
    gap:13px;
    padding:14px;
    border:1px solid rgba(207,225,239,.7);
    border-radius:12px;
}
.property-detail-page .property-showcase .masked-phone-summary {
    gap:12px;
}
.property-detail-page .property-showcase .masked-phone-icon {
    width:46px;
    height:46px;
    flex-basis:46px;
    font-size:20px;
}
.property-detail-page .property-showcase .masked-phone-copy strong {
    color:#fff;
    font-size:19px;
    line-height:1.35;
}
.property-detail-page .property-showcase .masked-phone-copy span {
    margin-top:3px;
    color:#dce9f3;
    font-size:13px;
    line-height:1.45;
}
.property-detail-page .property-showcase .owner-contact-login.btn-primary {
    min-height:50px;
    border:1px solid rgba(255,255,255,.68);
    border-radius:9px;
    background:linear-gradient(135deg,rgba(255,255,255,.17),rgba(255,255,255,.07));
    color:#fff;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 22px rgba(2,20,38,.14);
    backdrop-filter:blur(12px);
    font-size:14px;
    font-weight:800;
}
.property-detail-page .property-showcase .owner-contact-login.btn-primary:hover {
    border-color:rgba(255,255,255,.9);
    background:linear-gradient(135deg,rgba(255,255,255,.25),rgba(255,255,255,.11));
    color:#fff;
}
.property-detail-page .property-showcase .owner-contact-email,
.property-detail-page .property-showcase .owner-contact-copy {
    min-height:44px;
    padding:10px 9px;
    border-color:rgba(207,225,239,.52);
    border-radius:9px;
    color:#fff;
    font-size:15px;
    font-weight:700;
    line-height:1.35;
}
.property-detail-page .property-showcase .owner-contact-line,
.property-detail-page .property-showcase .owner-contact-email,
.property-detail-page .property-showcase .owner-contact-copy {
    justify-content:center;
    text-align:center;
}
.property-detail-page .property-showcase .owner-contact-email:hover,
.property-detail-page .property-showcase .owner-contact-copy:hover {
    background:rgba(255,255,255,.12);
    border-color:rgba(255,255,255,.75);
    color:#fff;
}
@media(max-width:1000px) and (min-width:901px) {
    .property-showcase-grid { grid-template-columns:minmax(0,1fr) 330px; }
}
@media(max-width:600px) {
    .property-detail-page .property-showcase-grid .owner-box { padding:24px 18px; }
    .property-showcase .property-contact-price { margin-bottom:18px; padding-bottom:18px; }
    .property-showcase .contact-actions { grid-template-columns:1fr; }
    .property-detail-page .property-showcase .owner-contact-email,
    .property-detail-page .property-showcase .owner-contact-copy { grid-column:1/-1; }
}

/* Property hero and decision summary adapted from the latest visual reference. */
.property-hero-status {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:14px;
    padding:7px 12px;
    border:1px solid rgba(146,225,244,.36);
    border-radius:999px;
    background:rgba(13,139,174,.32);
    color:#c9f6ff;
    font-size:13px;
    font-weight:800;
    backdrop-filter:blur(10px);
}
.property-hero-status i { color:#65e1f4; }
.property-detail-page .property-heading h1 { max-width:900px; font-size:clamp(30px,3.15vw,46px); }
.property-detail-page .property-heading p { max-width:930px; }
.property-hero-benefits {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,220px));
    gap:10px;
    margin-top:22px;
}
.property-hero-benefits > span {
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    column-gap:10px;
    align-items:center;
    min-height:56px;
    padding:9px 12px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:12px;
    background:rgba(5,36,65,.34);
    color:#fff;
    backdrop-filter:blur(9px);
}
.property-hero-benefits i {
    grid-row:1/3;
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border-radius:10px;
    background:rgba(112,203,244,.13);
    color:#9de0ff;
    font-size:17px;
}
.property-hero-benefits small { color:#c9dbea; font-size:10px; line-height:1.25; }
.property-hero-benefits strong { color:#fff; font-size:12px; line-height:1.4; }
.property-trust-strip {
    display:grid;
    grid-template-columns:1.35fr repeat(3,1fr);
    gap:0;
    overflow:hidden;
    margin-bottom:20px;
    border:1px solid #d7e7f3;
    border-radius:16px;
    background:linear-gradient(105deg,#e9f6ff,#f7fbfe 64%,#eef7fc);
    box-shadow:0 10px 26px rgba(25,69,103,.07);
}
.property-trust-strip > div {
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    padding:18px 20px;
    border-left:1px solid #dceaf4;
}
.property-trust-strip > div:first-child { border-left:0; }
.property-trust-icon {
    display:grid;
    place-items:center;
    flex:0 0 42px;
    width:42px;
    height:42px;
    border-radius:12px;
    background:#fff;
    color:#147ed5;
    box-shadow:0 6px 16px rgba(20,126,213,.1);
    font-size:17px;
}
.property-trust-primary .property-trust-icon {
    width:50px;
    height:50px;
    flex-basis:50px;
    border-radius:50%;
    background:linear-gradient(135deg,#28a2ef,#1668d5);
    color:#fff;
    box-shadow:0 8px 18px rgba(22,104,213,.23);
}
.property-trust-strip small,.property-trust-strip strong { display:block; }
.property-trust-strip small { margin-bottom:3px; color:#668096; font-size:11px; line-height:1.4; }
.property-trust-strip strong { color:#194b78; font-size:13px; line-height:1.45; }
.property-trust-primary strong { font-size:14px; }
@media(max-width:1000px) {
    .property-trust-strip { grid-template-columns:repeat(2,1fr); }
    .property-trust-strip > div:nth-child(3) { border-left:0; border-top:1px solid #dceaf4; }
    .property-trust-strip > div:nth-child(4) { border-top:1px solid #dceaf4; }
}
@media(max-width:700px) {
    .property-hero-benefits { grid-template-columns:1fr; }
    .property-hero-benefits > span { max-width:340px; }
    .property-trust-strip { grid-template-columns:1fr; }
    .property-trust-strip > div { padding:14px 16px; border-left:0; border-top:1px solid #dceaf4; }
    .property-trust-strip > div:first-child { border-top:0; }
}
@media(max-width:600px) {
    .property-hero-status { margin-bottom:11px; font-size:12px; }
    .property-detail-page .property-heading h1 { font-size:27px; }
    .property-hero-benefits { margin-top:17px; }
}

/* Multi-number phone picker. */
.phone-picker-trigger {
    width:100%;
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    text-align:left;
    cursor:pointer;
}
.phone-picker-trigger:hover .masked-phone-copy strong { color:#bce8ff; }
.phone-picker-trigger .masked-phone-copy { flex:1; }
.phone-picker-chevron { color:#b7d4e8; font-size:13px; }
.phone-picker-modal {
    position:fixed;
    inset:0;
    z-index:100000;
    display:grid;
    place-items:center;
    padding:20px;
    opacity:0;
    transition:opacity .18s ease;
}
.phone-picker-modal[hidden] { display:none; }
.phone-picker-modal.is-open { opacity:1; }
.phone-picker-backdrop { position:absolute; inset:0; background:rgba(2,18,33,.72); backdrop-filter:blur(5px); }
.phone-picker-dialog {
    position:relative;
    z-index:1;
    width:min(100%,440px);
    padding:30px;
    border:1px solid #d9e6f0;
    border-radius:20px;
    background:#fff;
    box-shadow:0 24px 70px rgba(2,18,33,.3);
    text-align:center;
    transform:translateY(12px) scale(.98);
    transition:transform .18s ease;
}
.phone-picker-modal.is-open .phone-picker-dialog { transform:none; }
.phone-picker-close {
    position:absolute;
    top:14px;
    right:14px;
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border:1px solid #dce6ee;
    border-radius:50%;
    background:#f7fafc;
    color:#4e667b;
    cursor:pointer;
}
.phone-picker-heading-icon {
    display:grid;
    place-items:center;
    width:58px;
    height:58px;
    margin:0 auto 13px;
    border-radius:17px;
    background:linear-gradient(135deg,#178ee8,#235fd1);
    color:#fff;
    font-size:22px;
    box-shadow:0 10px 24px rgba(31,108,211,.22);
}
.phone-picker-dialog h2 { margin:0; color:#173b5d; font-size:24px; }
.phone-picker-dialog > p { margin:7px 0 20px; color:#66798b; font-size:14px; }
.phone-picker-list { display:grid; gap:9px; text-align:left; }
.phone-picker-list > a,.phone-picker-list > div {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    min-height:66px;
    padding:11px 15px;
    border:1px solid #dce7ef;
    border-radius:12px;
    background:#f7fafc;
    color:#173b5d;
}
.phone-picker-list > a:hover { border-color:#70b9ec; background:#f0f8ff; }
.phone-picker-list small,.phone-picker-list strong { display:block; }
.phone-picker-list small { margin-bottom:2px; color:#728598; font-size:11px; }
.phone-picker-list strong { font-size:18px; }
.phone-picker-list > a > i { color:#1388df; }
.phone-picker-list > div > i { color:#95a7b6; }
.phone-picker-login { justify-content:center; margin-top:16px; }
body.phone-picker-open { overflow:hidden; }
@media(max-width:520px) {
    .phone-picker-dialog { padding:26px 18px 20px; border-radius:16px; }
    .phone-picker-dialog h2 { font-size:21px; }
}
