/* Houses For Sale Platform */

.hfsg-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.hfsg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.hfsg-card { border: 1px solid #e3e6ea; border-radius: 10px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.hfsg-card img { width: 100%; height: 180px; object-fit: cover; display: block; }
.hfsg-card-body { padding: 14px 16px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.hfsg-card h3 { font-size: 1.05rem; margin: 0; }
.hfsg-card h3 a { text-decoration: none; color: inherit; }
.hfsg-price { font-weight: 700; color: #0b6e4f; }
.hfsg-meta { font-size: 0.9rem; color: #5b6470; margin: 0 0 auto; }

.hfsg-reveal, .hfsg-form button, .hfsg-modal button[type="submit"], .hfsg-modal .button,
.hfsg-listing .hfsg-reveal {
	background: #0b6e4f; color: #fff; border: 0; border-radius: 6px; padding: 10px 16px;
	font-size: 0.95rem; cursor: pointer; text-decoration: none; display: inline-block; margin-top: 8px;
}
.hfsg-reveal:hover, .hfsg-form button:hover, .hfsg-modal button[type="submit"]:hover { opacity: 0.9; }
.hfsg-modal button[type="submit"]:disabled { opacity: 0.6; cursor: wait; }

.hfsg-listing { max-width: 960px; }
.hfsg-facts { border-collapse: collapse; margin: 16px 0; width: 100%; max-width: 480px; }
.hfsg-facts th, .hfsg-facts td { text-align: left; padding: 6px 8px; border-bottom: 1px solid #e3e6ea; }
.hfsg-facts th { color: #5b6470; font-weight: 500; width: 45%; }
.hfsg-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin: 16px 0; }
.hfsg-gallery img { width: 100%; height: auto; border-radius: 8px; }
.hfsg-sidebar { background: #f6f8fa; border-radius: 10px; padding: 16px; margin-top: 20px; }
.hfsg-verified { color: #0b6e4f; font-weight: 600; margin-bottom: 6px; }
.hfsg-badges { list-style: none; padding: 0; margin: 0; }
.hfsg-badges li { margin-bottom: 10px; font-size: 0.92rem; }

.hfsg-ad { margin: 20px 0; text-align: center; }
.hfsg-ad-label { display: block; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; color: #8a929c; margin-bottom: 4px; }
.hfsg-sponsored img { max-width: 100%; height: auto; border-radius: 8px; }

.hfsg-modal { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.55); display: flex; align-items: center; justify-content: center; padding: 16px; z-index: 99999; }
.hfsg-modal[hidden] { display: none; }
.hfsg-modal-inner { background: #fff; border-radius: 12px; max-width: 480px; width: 100%; max-height: 92vh; overflow-y: auto; padding: 24px; position: relative; }
.hfsg-modal-inner h2 { margin-top: 0; font-size: 1.3rem; }
.hfsg-close { position: absolute; right: 12px; top: 8px; background: none; border: 0; font-size: 28px; cursor: pointer; line-height: 1; }
.hfsg-modal form label, .hfsg-form label { display: block; margin-bottom: 12px; font-size: 0.92rem; }
.hfsg-modal input, .hfsg-modal select, .hfsg-form input, .hfsg-form select, .hfsg-form textarea {
	display: block; width: 100%; box-sizing: border-box; padding: 9px 10px; margin-top: 4px;
	border: 1px solid #cfd5dc; border-radius: 6px; font-size: 0.95rem;
}
.hfsg-form fieldset { border: 1px solid #e3e6ea; border-radius: 8px; padding: 12px 14px; margin: 16px 0; }
.hfsg-form legend { font-weight: 600; padding: 0 6px; }
.hfsg-form h3 { margin-top: 24px; }
.hfsg-help { color: #5b6470; font-size: 0.92rem; }
.hfsg-consent { font-size: 0.85rem !important; color: #3a4350; }
.hfsg-consent input { display: inline !important; width: auto !important; margin-right: 6px; }
.hfsg-error { color: #b32d2e; min-height: 1em; margin: 8px 0 0; }
.hfsg-reveal-result .hfsg-phone { font-size: 1.4rem; color: #0b6e4f; }
.hfsg-reveal-result a.button + a.button { margin-left: 8px; }

.hfsg-notice { padding: 12px 16px; border-radius: 8px; margin: 16px 0; }
.hfsg-notice ul { margin: 0; padding-left: 18px; }
.hfsg-success { background: #e7f6ee; color: #0b6e4f; }
.hfsg-error-notice, .hfsg-notice.hfsg-error { background: #fbeaea; color: #8a1f1f; }

.hfsg-table { width: 100%; border-collapse: collapse; margin: 12px 0; }
.hfsg-table th, .hfsg-table td { text-align: left; padding: 8px; border-bottom: 1px solid #e3e6ea; vertical-align: middle; }
.hfsg-inline, .hfsg-inline-form { display: inline; }
.hfsg-link { background: none; border: 0; color: #0b6e4f; cursor: pointer; padding: 0; text-decoration: underline; }
.hfsg-thumbs label { display: inline-block; margin: 0 10px 10px 0; font-size: 0.85rem; }
.hfsg-thumbs img { border-radius: 6px; }
.hfsg-box { background: #f6f8fa; border-radius: 10px; padding: 16px 20px; margin: 16px 0; }
