:root{
  --navy:#1F3A5F; --navy-soft:#3C5578; --teal:#3AB8A8; --cream:#FAF7F2;
  --coral:#E8A87C; --sage:#5F8F5A; --sage-dark:#4C7548; --ink:#1A2433;
  --border:#e7e0d6;
}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Inter',sans-serif;line-height:1.55;font-size:16px}
h1,h2,h3,.brand{font-family:'Lexend',sans-serif}
a{color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
img{max-width:100%;display:block}

/* Header / nav */
header.site{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;position:relative;z-index:50}
.brand{display:flex;align-items:center;gap:8px;font-size:19px;font-weight:700;color:var(--navy);text-decoration:none}
.brand .pin{width:26px;height:26px;background:var(--navy);border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center}
.brand .pin span{transform:rotate(45deg);color:#fff;font-size:12px}
.navlinks{display:flex;align-items:center;gap:14px}
.pill-btn{padding:9px 18px;border-radius:22px;font-size:14px;font-weight:600;text-decoration:none;border:1px solid var(--border);color:var(--navy);background:#fff;cursor:pointer;font-family:inherit}
.pill-btn.teal{background:var(--teal);color:#fff;border-color:var(--teal)}
.pill-btn.teal:hover{background:#329c8e}
.register-wrap{position:relative}
.register-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(20,30,50,.12);padding:8px;width:260px}
.register-wrap:hover .register-menu, .register-wrap:focus-within .register-menu{display:block}
.register-item{display:flex;gap:12px;padding:11px 12px;border-radius:8px;text-decoration:none;color:var(--ink)}
.register-item:hover{background:var(--cream)}
.register-item .ico{font-size:18px;width:22px}
.register-item b{display:block;color:var(--navy);font-size:14px}
.register-item span{font-size:12.5px;color:#6b7684}
.register-item.disabled{opacity:.45;cursor:not-allowed}
.who{font-size:14px;color:var(--navy-soft)}
.who a{color:var(--teal);text-decoration:none;font-weight:600;margin-left:10px}

/* Page banner strip (register/login/browse pages) */
.banner{background:linear-gradient(120deg,var(--navy),var(--teal));border-radius:14px;margin:0 24px;padding:60px 40px;text-align:center;color:#fff}
.banner h1{margin:0;font-size:36px}
.banner p{margin:10px 0 0;opacity:.9;font-size:15px}

/* Split auth card */
.auth-card{max-width:1000px;margin:48px auto;background:#fff;border-radius:16px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 4px 24px rgba(20,30,50,.06)}
@media (max-width:800px){.auth-card{grid-template-columns:1fr}}
.auth-left{background:linear-gradient(160deg,var(--navy),var(--navy-soft));color:#fff;padding:48px 40px;display:flex;flex-direction:column;justify-content:center}
.auth-left.owner{background:linear-gradient(160deg,var(--navy),var(--teal))}
.auth-left .brand-lg{font-size:19px;font-weight:700;margin-bottom:18px}
.auth-left h2{font-size:26px;margin:0 0 14px;line-height:1.25}
.auth-left > p{opacity:.9;font-size:14.5px;margin:0 0 26px;max-width:36ch}
.auth-point{display:flex;gap:12px;margin-bottom:16px}
.auth-point .ico{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px}
.auth-point b{display:block;font-size:14.5px}
.auth-point span{font-size:13px;opacity:.85}
.auth-right{padding:48px 44px}
.auth-right h2{font-size:22px;color:var(--navy);margin:0 0 4px}
.auth-right > p.lede{color:#6b7684;font-size:14px;margin:0 0 18px}
.role-badge{display:inline-flex;align-items:center;gap:6px;background:var(--cream);border:1px solid var(--border);color:var(--navy);font-size:13px;font-weight:600;padding:6px 14px;border-radius:20px;margin-bottom:22px}
label{display:block;font-size:13px;font-weight:600;color:var(--navy-soft);margin:14px 0 5px}
label:first-of-type{margin-top:0}
input,select{width:100%;padding:11px 13px;border:1px solid #dcd4c6;border-radius:8px;font-size:14.5px;font-family:inherit;background:#fff}
input:focus,select:focus{outline:none;border-color:var(--teal)}
.btn-submit{width:100%;padding:13px 0;border:none;border-radius:9px;font-size:15px;font-weight:600;color:#fff;cursor:pointer;margin-top:20px;font-family:inherit}
.btn-submit.sage{background:var(--sage)}
.btn-submit.sage:hover{background:var(--sage-dark)}
.terms-note{font-size:12.5px;color:#8a8a8a;margin-top:14px}
.terms-note a{color:var(--teal);text-decoration:none}
.crosslinks{border-top:1px solid var(--border);margin-top:20px;padding-top:16px;text-align:center;font-size:13.5px;color:#6b7684}
.crosslinks div{margin-bottom:6px}
.crosslinks a{color:var(--teal);text-decoration:none;font-weight:600}
.msg-ok{background:#e4f7f2;color:#0d6b5c;padding:10px 12px;border-radius:8px;font-size:13.5px;margin-bottom:14px}
.msg-err{background:#fdecea;color:#a33;padding:10px 12px;border-radius:8px;font-size:13.5px;margin-bottom:14px}
.checkbox-row{display:flex;gap:10px;align-items:flex-start;background:var(--cream);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-top:14px;font-size:13px;color:var(--navy-soft)}
.checkbox-row input{width:auto;margin-top:2px}

/* Footer */
footer.site{background:var(--navy);color:#c9d2e0;padding:44px 24px 28px;margin-top:60px;text-align:center}
footer.site .f-brand{font-family:'Lexend';font-weight:700;color:#fff;font-size:19px;margin-bottom:8px}
footer.site .f-tag{font-size:13.5px;opacity:.85;margin-bottom:18px}
footer.site .f-contact{font-size:13px;opacity:.85;margin-bottom:14px}
footer.site .f-contact span{margin:0 12px}
footer.site .f-links a{color:#c9d2e0;text-decoration:none;font-size:13px;margin:0 10px}
footer.site .f-links a:hover{color:#fff}
footer.site .f-copy{border-top:1px solid rgba(255,255,255,.12);margin-top:20px;padding-top:16px;font-size:12px;opacity:.6}

/* Listing cards */
.listing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media (max-width:900px){.listing-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.listing-grid{grid-template-columns:1fr}}
.listing-card{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.listing-card .photo{height:140px;background:linear-gradient(135deg,#dfe7de,#cfe0dc);display:flex;align-items:center;justify-content:center;color:#8aa08f;font-size:12.5px;position:relative}
.listing-card .badge{position:absolute;top:10px;left:10px;background:#fff;color:var(--coral);font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}
.listing-card .body{padding:14px}
.listing-card h3{font-size:15px;margin:0 0 4px;color:var(--navy)}
.listing-card .addr{font-size:12.5px;color:#6b7684;margin-bottom:8px}
.listing-card .price{font-family:'Lexend';font-size:17px;color:var(--navy)}
.listing-card .meta{font-size:12px;color:#8a8a8a;margin-top:4px}
.empty{background:#fff;border:1px dashed #d8cfc0;border-radius:12px;padding:40px;text-align:center;color:#6b7684;font-size:14.5px}

/* ============================================================
   Migration additions: brand imagery, listing detail, reviews,
   perks, blog, support modal.
   ============================================================ */

/* Header brand logo + text nav */
.brand{gap:9px}
.brand-logo{width:30px;height:30px;border-radius:7px;object-fit:contain;display:block}
.brand-logo-full{height:34px;width:auto;display:block}
.brand-word{font-family:'Lexend',sans-serif;font-weight:700;font-size:19px;color:var(--navy)}
.navlinks .nav-text{font-size:14px;font-weight:600;color:var(--navy-soft);text-decoration:none;padding:6px 4px}
.navlinks .nav-text:hover{color:var(--teal)}
@media (max-width:760px){.navlinks .nav-text{display:none}.navlinks .support-link{display:inline}}

/* Pay icons in the trust bar */
.pay-icons{display:flex;gap:8px;margin-top:8px}
.pay-icons img{height:22px;width:auto;display:block;border-radius:4px}

/* Real listing-card photos + badges */
.listing-card .photo.has-img{background-size:cover;background-position:center;color:transparent}
.dist-badge{font-size:12px;color:var(--sage-dark);font-weight:600;margin-bottom:6px}
.card-stars{color:#E39A3B;font-weight:600}

/* ---- Listing detail page ---- */
.listing-detail{padding-top:24px;padding-bottom:70px}
.back-link{display:inline-block;color:var(--teal);text-decoration:none;font-size:13.5px;font-weight:600;margin:6px 0 18px}
.ld-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.ld-head h1{font-size:28px;color:var(--navy);margin:0 0 6px}
.ld-addr{color:#6b7684;font-size:14px}
.ld-rating{margin-top:8px;font-size:14px;color:var(--navy-soft)}
.ld-price{font-family:'Lexend';font-size:26px;color:var(--navy);white-space:nowrap}
.ld-price span{font-size:13px;color:#8a8a8a;font-weight:400}
.stars{color:#E39A3B;letter-spacing:1px}

.ld-gallery{margin-bottom:26px}
.ld-main-photo{height:380px;border-radius:14px;overflow:hidden;background:#eceae4;position:relative}
.ld-main-photo img{width:100%;height:100%;object-fit:cover}
.ld-main-photo.noimg{display:flex;align-items:center;justify-content:center;color:#8aa08f;background:linear-gradient(135deg,#dfe7de,#cfe0dc);font-size:14px}
.ld-main-photo .badge{position:absolute;top:12px;left:12px;background:#fff;color:var(--coral);font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}
.ld-thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:8px}
.ld-thumbs img{height:74px;width:100%;object-fit:cover;border-radius:8px}
@media (max-width:700px){.ld-main-photo{height:250px}.ld-thumbs{grid-template-columns:repeat(4,1fr)}}

.ld-grid{display:grid;grid-template-columns:1fr 340px;gap:34px;align-items:start}
@media (max-width:860px){.ld-grid{grid-template-columns:1fr}}
.ld-section{margin-bottom:30px}
.ld-section h2{font-size:19px;color:var(--navy);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.ld-sub{color:#6b7684;font-size:13px;margin:-4px 0 12px}
.ld-meta-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.ld-chip{background:var(--cream);border:1px solid var(--border);color:var(--navy-soft);font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:20px}
.ld-desc{font-size:14.5px;color:#333;line-height:1.7}

.ld-dist{width:100%;border-collapse:collapse;font-size:14px}
.ld-dist td{padding:10px 6px;border-bottom:1px solid var(--border)}
.ld-dist .c-name{color:var(--navy);font-weight:600}
.ld-dist .c-km{color:#8a8a8a;text-align:right;width:90px}
.ld-dist .c-walk{color:var(--sage-dark);text-align:right;width:120px;font-weight:600}

.ld-map{width:100%;height:320px;border:1px solid var(--border);border-radius:12px}
.ld-map-link{margin-top:8px;font-size:12.5px}
.ld-map-link a{color:var(--teal)}

.ld-rating-big{font-size:16px;color:var(--navy);margin-bottom:14px}
.review-form{background:var(--cream);border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:20px}
.review-form label{margin-top:8px}
.review-form textarea,.review-form select{width:100%;padding:10px;border:1px solid #dcd4c6;border-radius:8px;font-family:inherit;font-size:14px;background:#fff}
.review-form button{margin-top:12px;background:var(--sage);color:#fff;border:none;padding:9px 18px;border-radius:8px;font-weight:600;cursor:pointer;font-family:inherit}
.review{padding:14px 0;border-bottom:1px solid var(--border)}
.review-head{font-size:14px;color:var(--navy)}
.review-date{color:#9aa3b0;font-size:12px;margin-left:8px;font-weight:400}
.review-body{margin:6px 0 0;font-size:14px;color:#444;line-height:1.6}

.ld-action-card{position:sticky;top:20px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px;box-shadow:0 4px 20px rgba(20,30,50,.05)}
.ld-action-price{font-family:'Lexend';font-size:24px;color:var(--navy);margin-bottom:16px}
.ld-action-price span{font-size:13px;color:#8a8a8a}
.ld-action-card label{margin-top:10px}
.ld-action-card input,.ld-action-card textarea{width:100%;padding:10px;border:1px solid #dcd4c6;border-radius:8px;font-family:inherit;font-size:14px;margin-bottom:4px}
.ld-cta{display:block;width:100%;text-align:center;background:var(--sage);color:#fff;border:none;padding:13px 0;border-radius:9px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;margin-top:14px;font-family:inherit}
.ld-cta:hover{background:var(--sage-dark)}
.ld-cta.ghost{background:#fff;color:var(--teal);border:1px solid var(--teal);margin-top:8px}
.ld-message details{margin-top:8px}
.ld-message summary{cursor:pointer;color:var(--teal);font-size:13px;font-weight:600}
.ld-fine{font-size:12px;color:#8a8a8a;margin-top:10px}
.ld-status{display:inline-block;margin-top:8px;font-size:12.5px;color:var(--navy-soft)}

/* ---- Perks ---- */
.perks-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:820px){.perks-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.perks-grid{grid-template-columns:1fr}}
.perk-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px;position:relative;overflow:hidden}
.perk-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:5px;background:linear-gradient(90deg,var(--coral),var(--teal))}
.perk-biz{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--teal);margin-bottom:6px}
.perk-card h3{font-size:17px;color:var(--navy);margin:0 0 10px}
.perk-discount{display:inline-block;background:var(--cream);border:1px dashed var(--coral);color:var(--sage-dark);font-weight:700;font-size:14px;padding:4px 12px;border-radius:8px;margin-bottom:10px}
.perk-desc{font-size:13.5px;color:#555;line-height:1.55;margin:0 0 10px}
.perk-code{font-size:13px;color:var(--navy);background:#f3f0ea;padding:6px 10px;border-radius:6px;margin-bottom:8px}
.perk-expiry{font-size:12px;color:#9aa3b0}
.perk-foot{font-size:11.5px;color:#b0b0b0;margin-top:12px;border-top:1px solid var(--border);padding-top:10px}

/* ---- Blog ---- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media (max-width:820px){.blog-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.blog-grid{grid-template-columns:1fr}}
.blog-card{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;display:block}
.blog-card-cover{height:150px;background-size:cover;background-position:center;background-color:#dfe7de}
.blog-card-cover.placeholder{background:linear-gradient(135deg,var(--navy),var(--teal))}
.blog-card-body{padding:16px}
.blog-card-date{font-size:11.5px;color:#9aa3b0;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}
.blog-card h3{font-size:16px;color:var(--navy);margin:0 0 8px;line-height:1.3}
.blog-card p{font-size:13px;color:#6b7684;margin:0;line-height:1.5}
.blog-single{max-width:760px;padding-top:24px;padding-bottom:70px}
.blog-single h1{font-size:32px;color:var(--navy);margin:10px 0 6px}
.blog-date{color:#9aa3b0;font-size:13px;margin-bottom:20px}
.blog-cover{width:100%;border-radius:14px;margin-bottom:24px}
.blog-body{font-size:16px;line-height:1.75;color:#333}
.blog-body p{margin:0 0 18px}
.blog-body h2,.blog-body h3{color:var(--navy);margin:28px 0 12px}

/* ---- Support modal + page ---- */
.support-modal{position:fixed;inset:0;background:rgba(20,30,45,.5);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}
.support-modal[hidden]{display:none}
.support-card{background:#fff;border-radius:16px;padding:26px 28px;max-width:460px;width:100%;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.support-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:24px;color:#9aa3b0;cursor:pointer;line-height:1}
.support-card h3{color:var(--navy);margin:0 0 6px;font-size:19px}
.support-sub{color:#6b7684;font-size:13.5px;margin:0 0 16px}
.support-card label{display:block;font-size:13px;font-weight:600;color:var(--navy-soft);margin:12px 0 5px}
.support-card input,.support-card select,.support-card textarea{width:100%;padding:10px 12px;border:1px solid #dcd4c6;border-radius:8px;font-family:inherit;font-size:14px;background:#fff}
.support-send{width:100%;margin-top:16px;background:var(--sage);color:#fff;border:none;padding:12px 0;border-radius:9px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit}
.support-send:hover{background:var(--sage-dark)}
.support-ok{background:#e4f7f2;color:#0d6b5c;padding:12px 14px;border-radius:8px;font-size:14px}
.support-err{background:#fdecea;color:#a33;padding:9px 12px;border-radius:8px;font-size:13px;margin-top:10px}
.support-page-form label{display:block;font-size:13px;font-weight:600;color:var(--navy-soft);margin:14px 0 5px}
.support-page-form textarea,.support-page-form input,.support-page-form select{width:100%;padding:11px 13px;border:1px solid #dcd4c6;border-radius:8px;font-family:inherit;font-size:14.5px;background:#fff}

/* Decorative vine side-columns — brand flourish carried over from the
   original theme's wp_footer injection. Desktop-only, behind all content,
   faded toward the centre. Pointer-inert. */
.filhome-vines{position:fixed;top:0;bottom:0;left:0;width:100%;pointer-events:none;z-index:-1;overflow:hidden}
.filhome-vine-col{position:absolute;top:0;bottom:0;width:300px;opacity:.30;background-repeat:repeat-y;background-size:300px auto}
.filhome-vine-col--left{left:0;background-position:left top;background-image:url('/assets/brand/bands/filhome-vine-left.webp');-webkit-mask-image:linear-gradient(to right,#000 55%,transparent 100%);mask-image:linear-gradient(to right,#000 55%,transparent 100%)}
.filhome-vine-col--right{right:0;background-position:right top;background-image:url('/assets/brand/bands/filhome-vine-right.webp');-webkit-mask-image:linear-gradient(to left,#000 55%,transparent 100%);mask-image:linear-gradient(to left,#000 55%,transparent 100%)}
@media (max-width:1200px){.filhome-vines{display:none}}

/* Header unread-messages badge */
.nav-badge{display:inline-block;background:var(--coral);color:#fff;font-size:11px;font-weight:700;border-radius:20px;padding:0 6px;margin-left:2px;vertical-align:middle}

/* Dashboard: extra panels (payout, ID, payments, details, settings) */
.dash-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:640px){.dash-2col{grid-template-columns:1fr}}
.kyc-pill{display:inline-block;padding:2px 10px;border-radius:20px;font-size:11px;font-weight:700}
.kyc-pill.verified{background:#d1fae5;color:#065f46}
.kyc-pill.pending{background:#fef3c7;color:#92400e}
.kyc-pill.rejected,.kyc-pill.none{background:#fee2e2;color:#991b1b}
.file-note{font-size:12px;color:#8a8a8a;margin-top:6px}

/* Themed login buttons (per-role login pages) */
.btn-submit.teal{background:var(--teal)}
.btn-submit.teal:hover{background:#329c8e}
.btn-submit.coral{background:var(--coral)}
.btn-submit.coral:hover{background:#d8956a}

/* Demo-mode ribbon */
.demo-ribbon{background:#fde68a;color:#78350f;text-align:center;font-size:12.5px;font-weight:600;padding:6px 12px;letter-spacing:.01em}

/* Browse grid/map view toggle */
.view-toggle{display:inline-flex;gap:0;border:1px solid var(--border);border-radius:9px;overflow:hidden;margin:0 0 20px}
.vt-btn{background:#fff;border:none;padding:8px 18px;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--navy-soft);cursor:pointer}
.vt-btn.active{background:var(--teal);color:#fff}

/* Notification bell + dropdown */
.bell-wrap{position:relative;display:inline-block}
.bell-btn{background:none;border:none;cursor:pointer;font-size:18px;position:relative;padding:4px 6px;line-height:1;color:var(--navy);font-family:inherit}
.notif-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(20,30,50,.12);width:320px;max-height:420px;overflow-y:auto;z-index:50}
.notif-item{display:block;padding:11px 14px;border-bottom:1px solid #f0ece3;text-decoration:none;color:var(--ink)}
.notif-item:hover{background:var(--cream)}
.notif-item.unread{background:#f3fbf9}
.notif-item b{display:block;color:var(--navy);font-size:13.5px}
.notif-item span{display:block;font-size:12.5px;color:#6b7684;margin:2px 0}
.notif-item time{font-size:11px;color:#9aa3b0}
.notif-empty{padding:20px 14px;text-align:center;color:#9aa3b0;font-size:13px}

/* Report-a-listing box */
.report-box{border:1px solid var(--border);border-radius:10px;background:#fff;padding:12px 16px}
.report-box summary{cursor:pointer;color:#6b7684;font-size:13.5px;font-weight:600}
.report-box[open] summary{color:var(--navy);margin-bottom:4px}

/* Landlord photo manager */
.photo-manager{display:flex;flex-direction:column;gap:12px;margin-top:6px}
.photo-row{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:10px}
.photo-row img{width:120px;height:90px;object-fit:cover;border-radius:8px;flex-shrink:0;background:#eee}
.photo-fields{flex:1}
.photo-del{display:flex;align-items:center;font-size:13px;color:#b91c1c;margin-top:8px}
.ld-photo-caption{font-size:13px;color:#6b7684;margin-top:6px;font-style:italic}

/* Referral share row */
.ref-link-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ref-link-row input{flex:1;min-width:200px;font-size:13px;background:var(--cream)}

/* Avatar menu (logged-in header) */
.avatar-wrap{position:relative;display:inline-block}
.avatar-btn{position:relative;width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;border:none;font-weight:700;font-size:15px;cursor:pointer;font-family:inherit}
.avatar-dot{position:absolute;top:0;right:0;width:10px;height:10px;background:var(--coral);border:2px solid var(--cream);border-radius:50%}
.avatar-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(20,30,50,.14);width:220px;overflow:hidden;z-index:60}
.avatar-name{padding:12px 16px;font-size:12px;color:#9aa3b0;border-bottom:1px solid var(--border);line-height:1.5}
.avatar-name b{color:var(--navy);font-size:14px}
.avatar-menu a{display:block;padding:11px 16px;color:var(--ink);text-decoration:none;font-size:14px;border-bottom:1px solid #f2efe8}
.avatar-menu a:hover{background:var(--cream)}
.avatar-signout{color:#b91c1c !important;font-weight:600}
.support-link.pill-btn{display:inline-flex;align-items:center;gap:4px}

/* Smooth page load: overlay stays until images are in, then fades out */
#page-loader{position:fixed;inset:0;background:var(--cream,#FAF7F2);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .45s ease}
#page-loader.hide{opacity:0;pointer-events:none}
.pl-spinner{width:44px;height:44px;border:4px solid rgba(31,58,95,.15);border-top-color:var(--teal,#3AB8A8);border-radius:50%;animation:pl-spin .8s linear infinite}
@keyframes pl-spin{to{transform:rotate(360deg)}}
body{animation:pageContentIn .5s ease}
@keyframes pageContentIn{from{opacity:.35}to{opacity:1}}

/* =====================================================================
   FILHOME.PH — Commercial UI refresh
   Dumaguete-first student rental platform, expansion-ready.
   ===================================================================== */
:root{
  --navy:#183A57;
  --navy-soft:#46647A;
  --teal:#2FAE9E;
  --teal-dark:#248C80;
  --cream:#F8F5EF;
  --cream-2:#F1EDE5;
  --coral:#E79B6E;
  --amber:#E6B257;
  --sage:#578B68;
  --sage-dark:#426E51;
  --ink:#15212D;
  --muted:#697782;
  --border:#E5DED2;
  --shadow:0 18px 48px rgba(24,58,87,.10);
  --shadow-soft:0 8px 24px rgba(24,58,87,.07);
  --radius-lg:20px;
}

html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink)}

/* --- Global header ---------------------------------------------------- */
header.site{
  min-height:72px;
  padding:14px clamp(18px,4vw,52px);
  position:sticky;
  top:0;
  z-index:120;
  background:rgba(248,245,239,.93);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(229,222,210,.78);
}
.brand-logo-full{height:42px;max-width:190px}
.navlinks{gap:10px}
.navlinks .nav-text{font-size:13.5px}
.pill-btn{border-color:rgba(24,58,87,.12);box-shadow:0 1px 0 rgba(255,255,255,.65) inset}
.pill-btn.teal{box-shadow:0 8px 20px rgba(47,174,158,.18)}
.bell-btn,.avatar-btn{transition:transform .16s ease,box-shadow .16s ease}
.bell-btn:hover,.avatar-btn:hover{transform:translateY(-1px)}
.avatar-btn{background:linear-gradient(145deg,var(--navy),#285E78);box-shadow:0 8px 18px rgba(24,58,87,.18)}

@media(max-width:760px){
  header.site{padding:10px 14px;min-height:62px}
  .brand-logo-full{height:34px;max-width:142px}
  .navlinks{gap:6px}
  .navlinks>.pill-btn.support-link{display:none}
  .navlinks>.pill-btn:not(.teal){display:none}
  .navlinks>.nav-text{display:none}
  .pill-btn{padding:8px 12px;font-size:12.5px}
  .avatar-btn{width:36px;height:36px}
}

/* --- Hero / public pages --------------------------------------------- */
.banner{
  border-radius:0;
  margin:0;
  padding:54px 24px;
  background:
    radial-gradient(circle at 78% 22%,rgba(58,184,168,.32),transparent 34%),
    linear-gradient(125deg,#173A58,#235D73 63%,#2B8E86);
}
.banner h1{font-size:clamp(30px,5vw,44px);letter-spacing:-.035em}
.banner p{font-size:15px}

.listing-card{
  border-radius:16px;
  border-color:rgba(24,58,87,.09);
  box-shadow:var(--shadow-soft);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.listing-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgba(47,174,158,.24)}
.listing-card .photo{height:170px}
.listing-card .badge{
  color:#fff;
  background:rgba(24,58,87,.88);
  backdrop-filter:blur(7px);
  border:1px solid rgba(255,255,255,.22);
}
.listing-card .body{padding:16px}
.listing-card h3{font-size:16px;line-height:1.3}
.listing-card .price{font-size:18px}

/* Real trust badge: only use this class when inspection approval exists. */
.filhome-verified{
  display:inline-flex;align-items:center;gap:6px;
  background:#E8F6F2;color:#176C61;border:1px solid #C6EADF;
  border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;
}
.filhome-verified:before{content:'✓';width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--teal);color:#fff;font-size:10px}
.student-verified{
  display:inline-flex;align-items:center;gap:6px;background:#EEF4FA;color:#2F5A78;border:1px solid #D3E1EC;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700
}
.student-verified:before{content:'✓';font-weight:900;color:var(--teal)}

/* --- Filhome footer --------------------------------------------------- */
footer.site.filhome-footer{margin-top:72px;padding:52px clamp(20px,5vw,64px) 24px;text-align:left;background:#153650;color:#D4DEE4}
.filhome-footer .f-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.45fr repeat(3,.75fr);gap:38px}
.filhome-footer .f-logo img{width:190px;height:auto;filter:brightness(0) invert(1)}
.filhome-footer .f-tag{font-size:13.5px;line-height:1.6;color:#C0CDD5;margin:14px 0 16px;max-width:36ch}
.filhome-footer .f-contact{display:flex;flex-direction:column;gap:4px;margin:0;font-size:12.5px;color:#AFC0CA}
.filhome-footer .f-contact a{color:#AFC0CA;text-decoration:none}
.filhome-footer .f-col{display:flex;flex-direction:column;gap:9px}
.filhome-footer .f-col b{font-family:'Lexend';font-size:12px;color:#fff;margin-bottom:3px}
.filhome-footer .f-col a{font-size:12.5px;color:#B9C8D1;text-decoration:none}
.filhome-footer .f-col a:hover{color:#fff}
.filhome-footer .f-staff{opacity:.65}
.filhome-footer .f-bottom{max-width:1180px;margin:34px auto 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.10);display:flex;justify-content:space-between;gap:16px;font-size:11px;color:#8FA4B1}
@media(max-width:850px){.filhome-footer .f-grid{grid-template-columns:1fr 1fr}.filhome-footer .f-intro{grid-column:1/-1}}
@media(max-width:520px){footer.site.filhome-footer{padding-top:38px}.filhome-footer .f-grid{grid-template-columns:1fr;gap:26px}.filhome-footer .f-intro{grid-column:auto}.filhome-footer .f-bottom{flex-direction:column}}

/* --- Auth ------------------------------------------------------------- */
.auth-card{border:1px solid rgba(24,58,87,.08);border-radius:22px;box-shadow:var(--shadow);margin-top:38px}
.auth-left{background:
  radial-gradient(circle at 20% 10%,rgba(232,168,124,.22),transparent 28%),
  linear-gradient(160deg,#173A58,#285E73)}
.auth-left.owner{background:linear-gradient(160deg,#173A58,#237C78)}
.auth-right{background:#fff}
.role-badge{background:#F4F7F8}
input,select,textarea{transition:border-color .15s ease,box-shadow .15s ease}
input:focus,select:focus,textarea:focus{border-color:var(--teal)!important;box-shadow:0 0 0 3px rgba(47,174,158,.10)}

/* --- Listing detail --------------------------------------------------- */
.listing-detail{max-width:1180px}
.ld-main-photo{border-radius:18px;box-shadow:var(--shadow-soft)}
.ld-grid{grid-template-columns:minmax(0,1fr) 360px}
.ld-bookbox,.ld-sidebar,.booking-card{border-radius:18px!important;box-shadow:var(--shadow-soft)!important;border:1px solid rgba(24,58,87,.09)!important}
.ld-section h2{letter-spacing:-.015em}

/* --- Dashboard / account command centre ------------------------------ */
.dash-wrap.portal-ready{max-width:1220px;padding:24px 24px 72px}
.portal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:8px 0 20px}
.portal-top h1{font-size:clamp(25px,4vw,34px)!important;letter-spacing:-.035em;margin:0!important}
.portal-top .portal-role{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--teal);font-weight:700;margin-bottom:5px}
.portal-top .portal-note{font-size:13px;color:var(--muted);margin-top:6px}
.portal-home-link{font-size:12.5px;text-decoration:none;color:var(--navy-soft);border:1px solid var(--border);padding:8px 12px;border-radius:10px;background:#fff}
.portal-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px;align-items:start}
.portal-side{position:sticky;top:92px;background:#fff;border:1px solid var(--border);border-radius:18px;padding:12px;box-shadow:var(--shadow-soft)}
.portal-nav-title{padding:8px 10px 10px;font:700 11px/1 'Lexend';text-transform:uppercase;letter-spacing:.08em;color:#9AA5AC}
.portal-nav{display:flex;flex-direction:column;gap:3px}
.portal-nav button,.portal-nav a{appearance:none;border:0;background:transparent;width:100%;text-align:left;padding:10px 11px;border-radius:10px;font:600 13px/1.25 'Inter';color:var(--navy-soft);cursor:pointer;text-decoration:none;display:flex;align-items:center;gap:9px}
.portal-nav button:hover,.portal-nav a:hover{background:#F5F2EC;color:var(--navy)}
.portal-nav button.active{background:#EAF7F4;color:#176C61}
.portal-nav .portal-icon{width:22px;text-align:center;opacity:.78}
.portal-content{min-width:0}
.portal-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}
.portal-stat{background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:0 5px 18px rgba(24,58,87,.045)}
.portal-stat b{display:block;font-family:'Lexend';font-size:24px;color:var(--navy);line-height:1.1;margin-bottom:5px}
.portal-stat span{font-size:11.5px;color:var(--muted)}
.portal-alert{display:flex;align-items:flex-start;gap:11px;background:#FFF8E9;border:1px solid #F0D99A;color:#775615;border-radius:14px;padding:13px 15px;margin-bottom:16px;font-size:13px}
.portal-alert.good{background:#EAF7F4;border-color:#C5E8DF;color:#176C61}
.portal-alert a{color:inherit;font-weight:700}
.portal-ready .dash-panel{border-radius:18px;padding:22px;border-color:rgba(24,58,87,.09);box-shadow:var(--shadow-soft);margin-bottom:18px}
.portal-ready .dash-panel h2{font-size:18px;letter-spacing:-.02em}
.portal-ready .dash-panel[hidden]{display:none!important}
.portal-ready table.dash{min-width:640px}
.portal-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.portal-ready .newform{max-width:760px}
.portal-ready .newform button{background:var(--navy)}
.portal-ready .newform button:hover{background:#285E73}
.portal-ready .dash-btn{background:var(--navy)}
.portal-ready .badge2.accepted,.portal-ready .badge2.awaiting_payment{background:#E8F3FA;color:#285E78}
.portal-ready .badge2.confirmed{background:#DDF4EA;color:#236A4D}

@media(max-width:900px){
  .portal-layout{grid-template-columns:1fr}
  .portal-side{position:sticky;top:62px;z-index:50;padding:8px;border-radius:14px;overflow-x:auto}
  .portal-nav-title{display:none}
  .portal-nav{flex-direction:row;min-width:max-content}
  .portal-nav button,.portal-nav a{width:auto;white-space:nowrap;padding:9px 12px}
  .portal-summary{grid-template-columns:1fr 1fr}
  .portal-ready .dash-panel{padding:18px}
}
@media(max-width:520px){
  .dash-wrap.portal-ready{padding:16px 12px 58px}
  .portal-top{margin-top:0}
  .portal-home-link{display:none}
  .portal-summary{grid-template-columns:1fr 1fr;gap:8px}
  .portal-stat{padding:13px}
  .portal-stat b{font-size:20px}
  .portal-ready .dash-panel{border-radius:15px;padding:15px}
}

/* --- ID verification journey ---------------------------------------- */
.verify-shell{max-width:920px;margin:42px auto 80px;padding:0 20px}
.verify-card{background:#fff;border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);display:grid;grid-template-columns:.9fr 1.1fr;overflow:hidden}
.verify-aside{background:linear-gradient(155deg,#173A58,#28766E);color:#fff;padding:38px}
.verify-aside img{width:154px;filter:brightness(0) invert(1);margin-bottom:26px}
.verify-aside h1{font-size:28px;line-height:1.15;margin:0 0 12px}
.verify-aside p{font-size:14px;color:#D9E6E7;line-height:1.65}
.verify-points{margin-top:24px;display:grid;gap:14px}
.verify-point{display:flex;gap:10px;font-size:13px;color:#DFECEC}
.verify-point b{color:#fff}
.verify-main{padding:38px}
.verify-step{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--teal);font-weight:700}
.verify-main h2{font-size:23px;color:var(--navy);margin:7px 0 8px}
.verify-main p{font-size:13.5px;color:var(--muted)}
.verify-upload{margin-top:22px;padding:18px;border:1px dashed #BFCBC9;border-radius:14px;background:#FAFCFB}
.verify-upload button{width:100%;background:var(--navy);color:#fff;border:0;border-radius:9px;padding:12px;font:600 14px 'Inter';cursor:pointer;margin-top:12px}
.verify-status{border-radius:14px;padding:14px 16px;margin-top:20px;font-size:13px}
.verify-status.pending{background:#FFF8E9;color:#775615;border:1px solid #F0D99A}
.verify-status.verified{background:#EAF7F4;color:#176C61;border:1px solid #C5E8DF}
@media(max-width:760px){.verify-card{grid-template-columns:1fr}.verify-aside,.verify-main{padding:26px}}

/* --- Rebranded decorative side foliage -------------------------------- */
.filhome-vines{position:fixed;top:0;bottom:0;left:0;width:100%;pointer-events:none;z-index:-1;overflow:hidden}
.filhome-vine-col{position:absolute;top:0;bottom:0;width:260px;opacity:.18;background-repeat:repeat-y;background-size:260px auto}
.filhome-vine-col--left{left:0;background-position:left top;background-image:url('/assets/brand/bands/filhome-vine-left.webp');-webkit-mask-image:linear-gradient(to right,#000 45%,transparent 100%);mask-image:linear-gradient(to right,#000 45%,transparent 100%)}
.filhome-vine-col--right{right:0;background-position:right top;background-image:url('/assets/brand/bands/filhome-vine-right.webp');-webkit-mask-image:linear-gradient(to left,#000 45%,transparent 100%);mask-image:linear-gradient(to left,#000 45%,transparent 100%)}
@media(max-width:1200px){.filhome-vines{display:none}}

/* Filhome v2 admin view-as banner */
.view-as-ribbon{position:sticky;top:0;z-index:1300;background:#17263d;color:#fff;padding:8px 18px;text-align:center;font-size:12px;box-shadow:0 3px 12px rgba(0,0,0,.12)}
.view-as-ribbon a{color:#9be5d8;font-weight:800;margin-left:8px}

.demo-listing-pill{display:inline-flex;vertical-align:middle;margin-left:6px;padding:2px 6px;border-radius:999px;background:#fff1d8;color:#915c08;font:800 9px ui-monospace,monospace;letter-spacing:.08em}.demo-listing-note{margin-top:9px;padding:8px 10px;border-radius:9px;background:#fff7e9;color:#8a5b09;font-size:11px;font-weight:650;display:inline-block}

/* ============================================================
   Filhome v3 — resilient listing imagery
   Hosts upload normal individual photos. Filhome normalises the
   presentation frame and can resize/orient large uploads for efficient storage.
   ============================================================ */

.listing-grid{
  align-items:stretch;
}

.listing-card{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.listing-card>a{
  min-width:0;
}

.listing-card .photo{
  width:100%;
  height:auto!important;
  aspect-ratio:4/3;
  overflow:hidden;
  position:relative;
  isolation:isolate;
  background:linear-gradient(135deg,#dfe7de,#cfe0dc);
}

.listing-card .photo.has-img{
  background:none!important;
}

.listing-cover-img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
  transform:translateZ(0);
}

.listing-card .body{
  display:flex;
  flex-direction:column;
  min-height:168px;
}

.listing-card h3{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  min-height:2.6em;
}

.listing-card .addr{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  min-height:2.6em;
}

/* Listing gallery: stable frames for portrait, landscape and odd-shaped
   uploads. Cards/thumbs crop consistently; the large gallery view preserves
   the full selected photo and the lightbox shows it at maximum size. */
.ld-gallery{
  overflow:visible;
}

.ld-main-photo{
  appearance:none;
  border:0;
  padding:0;
  width:100%;
  height:auto!important;
  aspect-ratio:16/10;
  max-height:min(62vh,620px);
  border-radius:16px;
  overflow:hidden;
  background:#e9ece9;
  position:relative;
  display:block;
  cursor:zoom-in;
  box-shadow:0 12px 30px rgba(24,58,87,.08);
}

.ld-main-photo img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
}

.ld-main-photo.noimg{
  cursor:default;
}

.ld-photo-expand{
  position:absolute;
  right:12px;
  bottom:12px;
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(24,58,87,.78);
  color:#fff;
  font-size:17px;
  border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(8px);
  pointer-events:none;
}

.ld-photo-caption{
  min-height:21px;
  padding:7px 2px 0;
  color:#6b7684;
  font-size:12.5px;
}

.ld-photo-caption.is-empty{
  visibility:hidden;
}

.ld-thumbs{
  grid-template-columns:repeat(auto-fit,minmax(92px,1fr))!important;
  gap:9px!important;
}

.ld-thumb{
  appearance:none;
  display:block;
  padding:0;
  width:100%;
  aspect-ratio:4/3;
  border:2px solid transparent;
  border-radius:10px;
  overflow:hidden;
  background:#e9ece9;
  cursor:pointer;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}

.ld-thumb:hover{
  border-color:rgba(47,174,158,.42);
}

.ld-thumb.active{
  border-color:var(--teal);
  box-shadow:0 0 0 2px rgba(47,174,158,.14);
}

.ld-thumb img,
.ld-thumbs img{
  display:block;
  width:100%!important;
  height:100%!important;
  max-width:none;
  object-fit:cover!important;
  object-position:center center;
  border-radius:0!important;
}

.listing-lightbox-open{
  overflow:hidden;
}

.ld-lightbox[hidden]{display:none!important}
.ld-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:clamp(18px,4vw,46px);
  background:rgba(9,21,31,.94);
  backdrop-filter:blur(12px);
}

.ld-lightbox img{
  display:block;
  max-width:min(94vw,1500px);
  max-height:82vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:12px;
  box-shadow:0 22px 70px rgba(0,0,0,.34);
}

.ld-lightbox-close{
  position:absolute;
  top:max(14px,env(safe-area-inset-top));
  right:max(14px,env(safe-area-inset-right));
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  background:rgba(255,255,255,.09);
  color:#fff;
  font-size:27px;
  line-height:1;
  cursor:pointer;
}

.ld-lightbox-caption{
  max-width:min(900px,90vw);
  color:rgba(255,255,255,.78);
  font-size:13px;
  text-align:center;
}

/* Host photo manager */
.photo-manager{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
}

.photo-row{
  display:grid!important;
  grid-template-columns:124px minmax(0,1fr)!important;
  align-items:start!important;
  gap:13px!important;
  margin:0!important;
  padding:12px!important;
  border:1px solid var(--border);
  border-radius:13px;
  background:#fff;
}

.photo-row img{
  display:block;
  width:124px!important;
  height:auto!important;
  aspect-ratio:4/3;
  object-fit:cover!important;
  object-position:center center;
  border-radius:9px!important;
  background:#ecefea;
}

.photo-fields{
  min-width:0;
}

.photo-upload-guide{
  margin-top:16px;
  padding:12px 14px;
  display:flex;
  flex-direction:column;
  gap:4px;
  border:1px solid #D9E9E5;
  border-radius:12px;
  background:#F4FAF8;
  color:#49645E;
  font-size:12.5px;
  line-height:1.5;
}

.photo-upload-guide strong{
  color:var(--navy);
  font-size:13px;
}

.photo-upload-preview{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:10px;
  margin:12px 0 4px;
}

.photo-upload-preview[hidden]{display:none!important}

.photo-upload-preview-item{
  min-width:0;
  border:1px solid var(--border);
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}

.photo-upload-preview-item img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center;
  background:#ecefea;
}

.photo-upload-preview-item span{
  display:block;
  padding:7px 8px;
  color:#6b7684;
  font-size:10.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

@media(max-width:700px){
  .ld-main-photo{
    aspect-ratio:4/3;
    max-height:none;
  }
  .ld-thumbs{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  .photo-manager{
    grid-template-columns:1fr;
  }
}

@media(max-width:460px){
  .photo-row{
    grid-template-columns:96px minmax(0,1fr)!important;
  }
  .photo-row img{
    width:96px!important;
  }
  .ld-thumbs{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

/* ============================================================
   Filhome v3.1 — adaptive real-world host photography
   ============================================================ */

/* The property page preserves the complete selected photo even when a host
   uploads portrait, ultrawide or slightly unusual phone ratios. A blurred
   copy fills the frame behind it so the layout still looks intentional. */
.ld-main-photo{
  background:#dde4df!important;
}

.ld-main-photo::before{
  content:"";
  position:absolute;
  inset:-24px;
  z-index:0;
  background-image:var(--gallery-image);
  background-size:cover;
  background-position:center;
  filter:blur(22px) saturate(.86);
  transform:scale(1.08);
  opacity:.34;
  pointer-events:none;
}

.ld-main-photo::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(16,38,48,.08));
  pointer-events:none;
}

.ld-main-photo>img{
  position:relative;
  z-index:1;
  object-fit:contain!important;
  object-position:center center!important;
  background:transparent!important;
}

.ld-main-photo .ld-photo-expand,
.ld-main-photo .badge{
  z-index:3;
}

/* Cards and thumbnails deliberately crop to one predictable ratio. They
   never stretch the source image, so grid alignment remains clean. */
.listing-cover-img,
.ld-thumb img,
.photo-row img,
.photo-upload-preview-item img{
  object-fit:cover!important;
  object-position:center center!important;
}

.photo-order-help{
  color:#8a9693;
  font-size:10.5px;
  font-weight:500;
}

.photo-upload-guide::after{
  content:"Cover cards use a neat 4:3 crop. Students can still open the complete original composition from the listing gallery.";
  display:block;
  margin-top:3px;
  color:#70817d;
  font-size:11px;
}

@media(max-width:700px){
  .ld-main-photo::before{
    inset:-16px;
    filter:blur(18px) saturate(.86);
  }
}

/* v5 compact gallery and location overview */
.ld-gallery{display:grid;grid-template-columns:minmax(0,1fr) 112px;grid-template-rows:clamp(220px,32vw,360px) auto;gap:10px;max-width:960px;margin:0 auto 28px}
.ld-gallery .ld-main-photo{grid-column:1;grid-row:1;height:100%!important;min-height:0;max-height:none;aspect-ratio:auto}
.ld-gallery:not(:has(.ld-thumbs)){grid-template-columns:minmax(0,1fr)}
.ld-gallery .ld-thumbs{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:8px!important;margin:0;height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 4px 2px 2px}
.ld-gallery .ld-thumb{flex:0 0 auto;aspect-ratio:4/3;width:100%;min-height:0}
.ld-photo-caption{grid-column:1/-1;grid-row:2;padding:0;min-height:0}.ld-photo-caption.is-empty{display:none}
.ld-location-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.ld-location-grid>.ld-section{min-width:0}.ld-location-grid:has(>.ld-section:only-child){grid-template-columns:1fr}
.ld-distance-scroll{max-height:310px;overflow:auto;overscroll-behavior:contain}
.ld-location-grid .ld-map{height:310px}.ld-dist .c-name{overflow-wrap:anywhere}.ld-dist td{padding:9px 5px;font-size:12px}
.home-journal{max-width:1120px;margin:64px auto;padding:0 24px}.journal-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.journal-heading h2{margin:8px 0;color:var(--navy)}.journal-heading p{color:#6b7684}.journal-heading a{color:var(--teal);white-space:nowrap;font-weight:600}.journal-kicker{font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--teal)}
.journal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.journal-card{display:flex;flex-direction:column;text-decoration:none;color:var(--navy);background:#fff;border:1px solid var(--border);border-radius:16px;padding:26px;transition:box-shadow .15s}.journal-card:hover{box-shadow:var(--shadow-soft)}.journal-card h3{font-size:20px;line-height:1.35}.journal-card p{font-size:14px;line-height:1.65;color:#6b7684;margin:0 0 24px}.journal-read{margin-top:auto;color:var(--teal);font-size:13px;font-weight:700}
.waitlist-panel .waitlist-role-buttons{display:flex;gap:8px;padding:5px;background:var(--cream);border-radius:12px;margin-bottom:22px}
.waitlist-panel .waitlist-role-buttons button{width:auto;flex:1;margin:0;padding:11px 8px;border:1px solid transparent;background:transparent;color:var(--navy);font-size:13px}
.waitlist-panel .waitlist-role-buttons button[aria-pressed=true]{background:var(--navy);color:white;box-shadow:0 3px 8px #071b2515}
.waitlist-panel .waitlist-role-buttons button:disabled{opacity:.4;cursor:not-allowed}.waitlist-panel label{display:block;font-size:12px;font-weight:600;margin:6px 0}.waitlist-panel label span{font-weight:400;color:#6b7684}.waitlist-panel button:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
@media(max-width:700px){.ld-gallery{grid-template-columns:minmax(0,1fr) 72px;grid-template-rows:clamp(200px,55vw,300px) auto;gap:7px}.ld-location-grid{grid-template-columns:1fr}.journal-grid{grid-template-columns:1fr}.journal-heading{display:block}.home-journal{margin:40px auto;padding:0 18px}}
.ld-col-main{min-width:0}
@media(max-width:980px){.ld-grid{grid-template-columns:minmax(0,1fr)}}
/* v6 full-width location overview, journal illustrations and moving property row */
.listing-detail>.ld-location-grid{width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin-bottom:20px}
.listing-detail>.ld-location-grid>.ld-section{width:100%}
.journal-image{display:block;height:auto;width:calc(100% + 52px);max-width:none;margin:-26px -26px 22px;aspect-ratio:16/9;object-fit:cover;border-radius:16px 16px 0 0}
.property-carousel{overflow:hidden;width:100%;padding:4px 0 18px}.property-track{display:flex;gap:20px;will-change:transform}.property-track>.listing-card{flex:0 0 300px;min-width:0;margin:0;text-align:left}.carousel-toggle{background:transparent;border:1px solid var(--border);border-radius:99px;padding:8px 15px;color:var(--navy);font:inherit;font-size:12px;cursor:pointer}
.property-carousel:focus-within{overflow-x:auto}.property-carousel:focus-within .property-track{transform:none!important}
@media(max-width:700px){.listing-detail>.ld-location-grid{grid-template-columns:1fr}.property-track>.listing-card{flex-basis:280px}}
@media(prefers-reduced-motion:reduce){.property-carousel{overflow-x:auto}.property-track{transform:none!important;will-change:auto}}
.referral-page{padding:40px 20px 70px}.referral-hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:40px;margin-bottom:32px}.referral-hero img{width:100%;border-radius:20px}.referral-hero h1{font-size:clamp(32px,5vw,54px);line-height:1.1}.ref-panel{padding:26px;border:1px solid #dce4de;background:white;border-radius:16px;margin:20px 0}.ref-form{display:grid;gap:14px}.ref-panel label{display:block;font-weight:600}.ref-panel input,.ref-panel select{display:block;width:100%;box-sizing:border-box;margin:7px 0 12px;padding:12px;border:1px solid #cdd8d1;border-radius:8px}.ref-stats{display:flex;flex-wrap:wrap;gap:12px}.ref-stats>div{flex:1;min-width:130px;padding:20px;background:#e8f0e9;border-radius:12px}.ref-stats span{display:block;font-size:13px}.ref-stats strong{display:block;font-size:25px;margin-top:8px}.ref-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.ref-table{overflow:auto}.ref-table table{width:100%;border-collapse:collapse;text-align:left}.ref-table th,.ref-table td{padding:12px 8px;border-bottom:1px solid #e5e9e5;font-size:14px}.ref-alert{padding:16px;background:#edf3e7;border-radius:10px}.ref-panel button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:700px){.referral-hero,.ref-columns{grid-template-columns:1fr}.referral-hero img{max-height:180px;object-fit:cover}.ref-panel{padding:18px}}

.property-carousel.is-static{overflow-x:auto}.property-carousel.is-static .property-track{transform:none!important}
.ref-panel .btn,.referral-page .btn{display:inline-block;padding:12px 20px;border:1px solid #2c746c;border-radius:9px;background:#fff;color:#245951;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.ref-panel .btn-primary,.referral-page .btn-primary{background:#2c746c;color:#fff}.ref-columns{align-items:start}.referral-page h1,.referral-page h2{color:var(--navy)}.ref-form label{margin:0}.ref-form input,.ref-form select{font:inherit}.ref-panel .btn:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.insp-hero{background:#153e46;color:#fff;padding:28px;border-radius:18px;margin-bottom:18px}.insp-hero h1{color:white;margin:8px 0;font-size:clamp(25px,5vw,38px)}.insp-kicker{font-size:11px;letter-spacing:.14em;font-weight:700}.insp-visit-heading{display:flex;justify-content:space-between;gap:16px;align-items:start}.insp-photo-form{display:grid;gap:14px;max-width:620px;background:#edf3ed;padding:20px;border-radius:12px}.insp-photo-form label{display:block;font-weight:600;font-size:13px}.insp-photo-form input,.insp-photo-form select{display:block;width:100%;box-sizing:border-box;margin-top:7px;padding:10px;border:1px solid #cad8d0;border-radius:8px;background:white}.insp-photo-form button{background:#28796d;color:white;border:0;border-radius:9px;padding:13px;font:inherit}.insp-photo-form img{max-width:100%;max-height:250px;object-fit:contain}.insp-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:15px;margin-top:20px}.insp-photo-grid figure{margin:0;border:1px solid #e1e8e1;border-radius:12px;overflow:hidden;background:white}.insp-photo-grid img{width:100%;height:155px;object-fit:cover}.insp-photo-grid figcaption{padding:12px;font-size:12px;overflow-wrap:anywhere}.insp-photo-grid small{display:block;color:#6a7773;margin-top:6px}.dash-panel summary{font-weight:700;cursor:pointer}.insp-camera{padding:12px;border:1px dashed #4f8c7d;border-radius:8px}@media(max-width:600px){.check-row{grid-template-columns:1fr}.check-row select{width:100%}.insp-visit-heading{display:block}.insp-hero{padding:20px}.dash-panel:has(.dash){overflow:auto}}

.header-primary{padding:7px 12px!important;font-size:12px!important;white-space:nowrap}.property-dialog{width:min(680px,calc(100% - 24px));max-height:90dvh;overflow:auto;border:1px solid #dfe7e5;border-radius:18px;padding:24px;background:#fffdf9;color:#183a47;box-shadow:0 24px 80px #183a4740}.property-dialog::backdrop{background:#12233d70}.property-dialog-head{display:flex;justify-content:space-between;gap:15px}.property-dialog-head h2{margin:0}.property-dialog-head p{font-size:13px;color:#65777c}.property-dialog-close{align-self:flex-start;border:0;border-radius:50%;padding:5px 12px;font-size:24px}.property-dialog .newform{margin:12px 0}.property-dialog label{display:block;margin:12px 0 5px}.property-dialog input,.property-dialog select{width:100%;padding:10px;border:1px solid #cedbd7;border-radius:7px}.property-dialog button[type=submit]{margin-top:16px;background:#087f74;color:white;padding:12px 18px;border:0;border-radius:8px}
