/* SrautoHub Property Manager – frontend */
.shp-wrap, .shp-wrap * { box-sizing: border-box; }
.shp-wrap {
	--shp-navy: #0b2a3a;
	--shp-blue: #1e6fd9;
	--shp-line: #e2e8ee;
	--shp-muted: #667a86;
	--shp-soft: #f3f8fb;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 20px;
	color: #19303c;
	line-height: 1.5;
}
.shp-wrap a { text-decoration: none; }
.shp-wrap img { max-width: 100%; }
.shp-i { width: 1.15em; height: 1.15em; flex: none; vertical-align: -0.2em; }
.shp-section { padding-top: 28px; padding-bottom: 28px; }
.shp-section-h { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
.shp-section-h h2 { margin: 0; font-size: 26px; line-height: 1.2; font-weight: 800; color: var(--shp-navy); }
.shp-section-h p { margin: 4px 0 0; color: var(--shp-muted); }
.shp-link { color: var(--shp-navy); font-weight: 600; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.shp-link:hover { color: var(--shp-accent); }
.shp-none { padding: 28px; text-align: center; color: var(--shp-muted); background: var(--shp-soft); border-radius: 12px; }

/* Buttons */
.shp-btn-primary, .shp-btn-outline-inline {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 12px 22px; border-radius: 9px; font-weight: 700; font-size: 15px; line-height: 1.2;
	cursor: pointer; border: 1.5px solid var(--shp-accent); font-family: inherit; transition: filter .15s, background .15s;
}
.shp-btn-primary { background: var(--shp-accent); color: #fff !important; }
.shp-btn-primary:hover { filter: brightness(.92); }
.shp-btn-outline-inline { background: #fff; color: var(--shp-navy) !important; border-color: #c9d6de; }
.shp-btn-outline-inline:hover { border-color: var(--shp-accent); color: var(--shp-accent) !important; }
.shp-btn-outline {
	display: block; text-align: center; padding: 10px 14px; border: 1.5px solid #cbd7df; border-radius: 8px;
	color: var(--shp-navy) !important; font-weight: 600; font-size: 14px; background: #fff; transition: border-color .15s, color .15s;
}
.shp-btn-outline:hover { border-color: var(--shp-accent); color: var(--shp-accent) !important; }

/* Property cards */
.shp-grid-p { display: grid; grid-template-columns: repeat(var(--shp-cols, 4), minmax(0, 1fr)); gap: 20px; }
.shp-card-p { background: #fff; border: 1px solid var(--shp-line); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .2s; }
.shp-card-p:hover { box-shadow: 0 10px 26px rgba(11,42,58,.1); }
.shp-card-img { position: relative; display: block; aspect-ratio: 4 / 3; background: #e8eeec; overflow: hidden; }
.shp-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.shp-badge, .shp-badge-inline { color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .3px; padding: 4px 9px; border-radius: 5px; }
.shp-badge { position: absolute; top: 10px; left: 10px; }
.shp-badge-inline { display: inline-block; margin-bottom: 8px; }
.is-sale { background: var(--shp-accent); }
.is-rent { background: var(--shp-blue); }
.shp-card-body { padding: 14px 14px 16px; display: flex; flex-direction: column; flex: 1; }
.shp-loc { display: flex; align-items: center; gap: 5px; color: var(--shp-muted); font-size: 12.5px; }
.shp-card-title { margin: 6px 0 4px; font-size: 16.5px; line-height: 1.3; font-weight: 700; }
.shp-card-title a { color: var(--shp-navy) !important; }
.shp-card-title a:hover { color: var(--shp-accent) !important; }
.shp-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; color: var(--shp-muted); font-size: 13px; min-height: 20px; }
.shp-price-row { display: flex; align-items: center; justify-content: space-between; margin: 10px 0 12px; }
.shp-price { font-size: 19px; font-weight: 800; color: var(--shp-accent); }
.shp-fav { background: none; border: 0; padding: 4px; cursor: pointer; color: #61747f; line-height: 0; border-radius: 50%; }
.shp-fav .shp-i { width: 22px; height: 22px; }
.shp-fav:hover { color: #e0245e; }
.shp-fav.is-on { color: #e0245e; }
.shp-fav.is-on .shp-i { fill: #e0245e; }
.shp-card-body .shp-btn-outline { margin-top: auto; }

/* Categories */
.shp-cats { display: grid; grid-template-columns: repeat(var(--shp-cols, 6), minmax(0, 1fr)); gap: 14px; }
.shp-cat { background: var(--shp-soft); border-radius: 12px; overflow: hidden; display: block; color: inherit !important; border: 1px solid transparent; transition: border-color .15s, transform .15s; }
.shp-cat:hover { border-color: var(--shp-accent); transform: translateY(-2px); }
.shp-cat-img { display: grid; place-items: center; height: 110px; background: linear-gradient(135deg, #dfeee8, #cfe3ee); color: #7fa393; overflow: hidden; }
.shp-cat-img img { width: 100%; height: 100%; object-fit: cover; }
.shp-cat-img .shp-i { width: 38px; height: 38px; }
.shp-cat-info { display: flex; gap: 9px; padding: 11px 12px 13px; align-items: flex-start; }
.shp-cat-ic { color: var(--shp-navy); margin-top: 1px; }
.shp-cat-info strong { display: block; font-size: 13.5px; color: var(--shp-navy); line-height: 1.25; }
.shp-cat-info small { display: block; font-size: 12px; color: var(--shp-muted); margin-top: 2px; line-height: 1.35; }

/* Search */
.shp-search { background: #fff; }
.shp-search-card { max-width: 380px; padding: 22px; border-radius: 14px; border: 1px solid var(--shp-line); box-shadow: 0 14px 36px rgba(11,42,58,.14); }
.shp-search-title { margin: 0 0 14px; font-size: 18px; font-weight: 800; color: var(--shp-navy); line-height: 1.25; }
.shp-tabs-btn { display: flex; gap: 8px; margin-bottom: 16px; }
.shp-tabs-btn button { flex: 1; padding: 9px 8px; border-radius: 8px; border: 1px solid var(--shp-line); background: #fff; color: var(--shp-navy); font-weight: 600; font-size: 14px; cursor: pointer; font-family: inherit; }
.shp-tabs-btn button.is-active { background: var(--shp-accent); border-color: var(--shp-accent); color: #fff; }
.shp-f { margin-bottom: 14px; }
.shp-f label { display: block; font-size: 12.5px; font-weight: 700; color: var(--shp-navy); margin-bottom: 5px; }
.shp-f select, .shp-f input { width: 100%; height: 44px; padding: 0 12px; border: 1px solid #cdd8df; border-radius: 8px; background-color: #fff; font-size: 14px; color: #19303c; font-family: inherit; }
.shp-f select:focus, .shp-f input:focus { outline: 2px solid color-mix(in srgb, var(--shp-accent) 30%, transparent); border-color: var(--shp-accent); }
.shp-search-btn { width: 100%; height: 46px; }
.shp-search-bar { display: grid; grid-template-columns: 1.4fr repeat(5, 1fr) auto; gap: 12px; align-items: end; padding: 18px; border: 1px solid var(--shp-line); border-radius: 14px; background: var(--shp-soft); margin: 24px 0 14px; }
.shp-search-bar .shp-f { margin: 0; }
.shp-search-bar .shp-search-btn { width: auto; padding: 0 22px; }

/* Listing */
.shp-count { color: var(--shp-muted); margin: 0 0 14px; font-size: 14px; }
.shp-pager { margin-top: 28px; text-align: center; }
.shp-pager .page-numbers { display: inline-block; min-width: 40px; padding: 9px 12px; margin: 0 3px; border: 1px solid var(--shp-line); border-radius: 8px; color: var(--shp-navy); font-weight: 600; }
.shp-pager .page-numbers.current { background: var(--shp-accent); color: #fff; border-color: var(--shp-accent); }
.shp-listing { padding-bottom: 40px; }

/* Services */
.shp-services { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.shp-service { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 26px 18px; border-radius: 12px; color: var(--shp-navy) !important; transition: transform .15s; }
.shp-service:hover { transform: translateY(-3px); }
.shp-service strong { font-size: 16px; margin-top: 6px; }
.shp-service small { color: var(--shp-muted); font-size: 13px; }
.shp-service-ic .shp-i { width: 30px; height: 30px; }
.shp-service.is-c1 { background: #e6f5ee; } .shp-service.is-c1 .shp-service-ic { color: #0f9d58; }
.shp-service.is-c2 { background: #e5f1fb; } .shp-service.is-c2 .shp-service-ic { color: #1e6fd9; }
.shp-service.is-c3 { background: #e7f6ec; } .shp-service.is-c3 .shp-service-ic { color: #129a54; }
.shp-service.is-c4 { background: #f6e9f8; } .shp-service.is-c4 .shp-service-ic { color: #6b3aa6; }

/* CTA */
.shp-cta { display: flex; align-items: center; justify-content: space-between; gap: 20px; background: #e8f3fb; border: 1px solid #d4e8f6; border-radius: 12px; padding: 22px 26px; flex-wrap: wrap; }
.shp-cta h3 { margin: 0 0 3px; font-size: 20px; font-weight: 800; color: var(--shp-navy); }
.shp-cta p { margin: 0; color: #46606e; }

/* Why choose */
.shp-why { display: grid; grid-template-columns: 1fr 1.1fr 1fr; gap: 28px; align-items: center; }
.shp-why h3 { margin: 0 0 12px; font-size: 22px; font-weight: 800; color: var(--shp-navy); }
.shp-why ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.shp-why li { display: flex; gap: 10px; align-items: center; font-weight: 500; }
.shp-why li .shp-i { background: var(--shp-accent); color: #fff; border-radius: 50%; padding: 3px; width: 22px; height: 22px; }
.shp-why-img { min-height: 170px; border-radius: 12px; background: #2d4a58 center / cover no-repeat; display: flex; align-items: center; padding: 22px; position: relative; overflow: hidden; }
.shp-why-img::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,42,58,.75), rgba(11,42,58,.25)); }
.shp-why-img span { position: relative; color: #fff; font-size: 22px; font-weight: 800; line-height: 1.25; max-width: 260px; }
.shp-why-about p { margin: 0 0 14px; color: #46606e; }

/* Detail page */
.shp-detail { padding-top: 14px; padding-bottom: 50px; }
.shp-d-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
.shp-loc-lg { font-size: 15px; }
.shp-d-price { font-size: 30px; font-weight: 800; color: var(--shp-accent); }
.shp-d-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 28px; align-items: start; }
.shp-gal-main { border-radius: 14px; overflow: hidden; background: #e8eeec; aspect-ratio: 16 / 10; }
.shp-gal-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.shp-gal-thumbs { display: flex; gap: 10px; margin-top: 10px; overflow-x: auto; padding-bottom: 4px; }
.shp-gal-thumbs button { flex: none; width: 96px; height: 70px; padding: 0; border: 2px solid transparent; border-radius: 9px; overflow: hidden; cursor: pointer; background: none; opacity: .75; }
.shp-gal-thumbs button.is-active { border-color: var(--shp-accent); opacity: 1; }
.shp-gal-thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.shp-block { margin-top: 28px; }
.shp-block h3 { margin: 0 0 12px; font-size: 20px; font-weight: 800; color: var(--shp-navy); }
.shp-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.shp-facts div { background: var(--shp-soft); border-radius: 10px; padding: 12px 14px; }
.shp-facts span { display: block; color: var(--shp-muted); font-size: 12.5px; }
.shp-facts strong { display: block; color: var(--shp-navy); font-size: 15px; margin-top: 2px; }
.shp-desc p { margin: 0 0 12px; }
.shp-features { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.shp-features li { display: flex; gap: 8px; align-items: center; }
.shp-features .shp-i { color: var(--shp-accent); }
.shp-d-side { position: sticky; top: 24px; }
.shp-side-card { border: 1px solid var(--shp-line); border-radius: 14px; padding: 22px; background: #fff; box-shadow: 0 10px 28px rgba(11,42,58,.08); }
.shp-side-price { font-size: 24px; font-weight: 800; color: var(--shp-accent); margin-bottom: 4px; }
.shp-side-card h4 { margin: 0 0 14px; font-size: 16px; color: var(--shp-navy); }
.shp-inq input, .shp-inq textarea, .shp-form input, .shp-form select, .shp-form textarea {
	width: 100%; border: 1px solid #cdd8df; border-radius: 8px; padding: 11px 12px; font-size: 14px; margin-bottom: 10px; font-family: inherit; background: #fff; color: #19303c;
}
.shp-inq input:focus, .shp-inq textarea:focus, .shp-form input:focus, .shp-form select:focus, .shp-form textarea:focus { outline: 2px solid color-mix(in srgb, var(--shp-accent) 30%, transparent); border-color: var(--shp-accent); }
.shp-block-btn { width: 100%; }
.shp-inq-result { margin-top: 10px; font-size: 14px; }
.shp-inq-result.is-ok { color: #0b6b3a; }
.shp-inq-result.is-err { color: #b02a2a; }
.shp-contact-btns { display: flex; gap: 10px; margin-top: 12px; }
.shp-contact-btns a { flex: 1; padding: 10px; }
.shp-share { display: flex; align-items: center; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--shp-line); font-size: 13px; flex-wrap: wrap; }
.shp-share span { color: var(--shp-muted); }
.shp-share a, .shp-share button { color: var(--shp-navy); background: none; border: 0; padding: 0; cursor: pointer; font: inherit; font-weight: 600; }
.shp-share a:hover, .shp-share button:hover { color: var(--shp-accent); }

/* Alerts */
.shp-alert { padding: 14px 16px; border-radius: 10px; margin: 18px 0; font-weight: 500; }
.shp-alert.is-ok { background: #e6f6ee; color: #0b6b3a; border: 1px solid #bfe6d1; }
.shp-alert.is-err { background: #fdecec; color: #a42828; border: 1px solid #f6cccc; }
.shp-alert.is-warn { background: #fff4dc; color: #8a5a00; border: 1px solid #f3dfae; }

/* Forms */
.shp-form-wrap { max-width: 860px; padding-top: 20px; padding-bottom: 50px; }
.shp-form h3 { margin: 26px 0 12px; font-size: 19px; font-weight: 800; color: var(--shp-navy); }
.shp-form label { display: block; font-weight: 600; font-size: 13.5px; margin-bottom: 5px; color: var(--shp-navy); }
.shp-form label small { font-weight: 400; color: var(--shp-muted); }
.shp-fgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 18px; }
.shp-fgrid .shp-span2 { grid-column: span 2; }
.shp-form .shp-inline { display: flex; gap: 8px; }
.shp-form .shp-inline select { width: 110px; flex: none; }
.shp-hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.shp-upload { border: 2px dashed #c5d3dc; border-radius: 12px; padding: 18px; background: var(--shp-soft); }
.shp-upload input[type=file] { border: 0; background: none; padding: 0; margin: 0; }
.shp-hint { color: var(--shp-muted); font-size: 13px; margin: 8px 0 0; }
.shp-previews { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.shp-previews img { width: 84px; height: 64px; object-fit: cover; border-radius: 8px; }
.shp-submit-btn { margin-top: 22px; }
.shp-login-box { text-align: center; padding: 38px 20px; border: 1px solid var(--shp-line); border-radius: 14px; background: var(--shp-soft); }
.shp-login-box h3 { margin: 0 0 6px; color: var(--shp-navy); }
.shp-login-box p { color: var(--shp-muted); margin: 0 0 16px; }

/* My properties */
.shp-my { padding-top: 24px; padding-bottom: 40px; }
.shp-my-list { display: grid; gap: 12px; }
.shp-my-row { display: flex; align-items: center; gap: 16px; padding: 14px; border: 1px solid var(--shp-line); border-radius: 12px; background: #fff; flex-wrap: wrap; }
.shp-my-row img { width: 84px; height: 64px; object-fit: cover; border-radius: 8px; }
.shp-my-info { flex: 1; min-width: 200px; display: flex; flex-direction: column; }
.shp-my-info span { color: var(--shp-muted); font-size: 13px; }
.shp-my-info .shp-reason { color: #a42828; }
.shp-status { padding: 4px 12px; border-radius: 20px; font-size: 12.5px; font-weight: 700; }
.shp-status.is-published { background: #e6f6ee; color: #0b6b3a; }
.shp-status.is-pending { background: #fff3dc; color: #9a6400; }
.shp-status.is-rejected { background: #fdecec; color: #a42828; }
.shp-status.is-draft { background: #eceff0; color: #4d5d63; }
.shp-status.is-sold { background: #e3effc; color: #1c5ba3; }
.shp-my-act { display: flex; gap: 14px; font-size: 13.5px; font-weight: 600; }
.shp-my-act a { color: var(--shp-navy); }
.shp-my-act a:hover { color: var(--shp-accent); }
.shp-my-act a.is-danger { color: #b02a2a; }

/* Responsive */
@media (max-width: 1100px) {
	.shp-grid-p { grid-template-columns: repeat(min(var(--shp-cols, 4), 3), minmax(0, 1fr)); }
	.shp-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.shp-search-bar { grid-template-columns: repeat(3, 1fr); }
	.shp-search-bar .shp-search-btn { grid-column: 1 / -1; width: 100%; height: 46px; }
	.shp-d-grid { grid-template-columns: 1fr; }
	.shp-d-side { position: static; }
	.shp-facts { grid-template-columns: repeat(2, 1fr); }
	.shp-why { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	.shp-grid-p { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.shp-services { grid-template-columns: repeat(2, 1fr); }
	.shp-search-bar { grid-template-columns: 1fr 1fr; }
	.shp-features { grid-template-columns: repeat(2, 1fr); }
	.shp-section-h h2 { font-size: 22px; }
}
@media (max-width: 520px) {
	.shp-grid-p { grid-template-columns: 1fr; }
	.shp-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.shp-fgrid { grid-template-columns: 1fr; }
	.shp-fgrid .shp-span2 { grid-column: auto; }
	.shp-search-card { max-width: 100%; }
	.shp-search-bar { grid-template-columns: 1fr; }
	.shp-d-price { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
	.shp-wrap * { transition: none !important; }
}
