.subhero { min-height: 306px; position: relative; color: #fff; background: linear-gradient(90deg, rgba(1,16,28,.75), rgba(2,25,40,.25)), url("../img/hero-city.png") center 47%/cover no-repeat; }
.subhero.tall { min-height: 385px; }
.subhero.slim { min-height: 245px; }
.subhero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,10,20,.05),rgba(0,10,20,.25)); pointer-events:none; }
.subhero > * { position:relative; z-index:2; }
.page-nav .nav-links a.current { color:#ff4b52; position:relative; }
.page-nav .nav-links a.current::after { content:""; position:absolute; left:0; right:0; bottom:-12px; height:2px; background:var(--primary); }
.inner-hero-copy { padding-top:55px; }
.inner-hero-copy h1 { margin:0 0 7px; font-size:36px; line-height:1.2; letter-spacing:-1px; }
.inner-hero-copy p { max-width:640px; margin:0; font-size:17px; font-weight:500; }
.inner-hero-copy .eyebrow { margin-bottom:8px; font-size:13px; font-weight:700; }
.inner-main { padding:26px 0 38px; }
.overlap-main { position:relative; z-index:4; margin-top:-38px; }
.crumbs { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin-bottom:18px; color:#737a80; font-size:12px; }
.crumbs a:hover { color:var(--primary); }
.crumbs span::before { content:'›'; margin-right:9px; color:#a7acb0; }
.surface { background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 4px 18px rgba(22,32,42,.05); }
.panel { background:#fff; border:1px solid var(--line); border-radius:10px; }
.panel-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:15px; }
.panel-title h2, .panel-title h3 { margin:0; font-size:18px; }
.red-link { border:0; background:transparent; padding:0; color:var(--primary); font-size:12px; font-weight:600; }
.btn { min-height:43px; border:1px solid #d8dde1; border-radius:7px; padding:0 17px; background:#fff; color:#242a2f; display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:600; font-size:13px; }
.btn.primary { border-color:var(--primary); background:var(--primary); color:#fff; }
.btn.primary:hover { background:var(--primary-dark); }
.btn.outline-red { border-color:var(--primary); color:var(--primary); }
.btn.block { width:100%; }
.btn.small { min-height:34px; padding-inline:12px; font-size:11px; }
.tag { display:inline-flex; align-items:center; min-height:24px; border-radius:4px; padding:0 8px; background:#f1f3f4; color:#444c52; font-size:10px; font-weight:600; }
.tag.red { background:var(--primary); color:#fff; }
.tag.green { background:#1a9b55; color:#fff; }
.tag.yellow { background:#ffb310; color:#fff; }
.tag.blue { background:#e9f2ff; color:#1766cd; }
.field { display:block; min-width:0; }
.field > span { display:block; margin-bottom:7px; font-size:12px; font-weight:700; }
.field input, .field select, .field textarea { width:100%; min-width:0; border:1px solid #dce1e4; border-radius:7px; background:#fff; color:#30373d; outline:none; padding:0 12px; font:inherit; font-size:13px; }
.field input, .field select { height:44px; }
.field textarea { min-height:105px; padding-top:12px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:#ef7277; box-shadow:0 0 0 3px rgba(237,28,36,.08); }

/* Shared catalog search */
.catalog-search { position:absolute; z-index:5; left:50%; bottom:16px; transform:translateX(-50%); width:calc(var(--page) - clamp(0px,5vw,80px)); border:1px solid rgba(227,230,232,.9); border-radius:12px; background:#fff; color:var(--ink); box-shadow:0 15px 34px rgba(0,9,18,.24); }
.catalog-filter-row { display:grid; grid-template-columns:.78fr 1fr 1fr .78fr .95fr auto; gap:12px; align-items:end; padding:16px 18px; }
.catalog-filter-row .field > span { font-size:12px; }
.catalog-search-actions { display:flex; gap:8px; }
.catalog-search-actions .btn { padding-inline:14px; }
.catalog-search-actions svg { width:19px; height:19px; }
.chip-row { display:flex; flex-wrap:wrap; gap:8px; }
.chip { min-height:29px; border:1px solid var(--line); border-radius:6px; padding:0 13px; background:#fff; color:#545c62; display:inline-flex; align-items:center; justify-content:center; font-size:10px; line-height:1.25; }
.chip.active { border-color:#ff989c; background:#fff5f5; color:var(--primary); }

/* Listing pages */
.result-bar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.result-bar h1 { margin:0; font-size:25px; }
.result-bar h1 strong { color:var(--primary); }
.view-tools { display:flex; align-items:center; gap:10px; }
.view-tools select { height:42px; border:1px solid var(--line); border-radius:7px; padding:0 12px; background:#fff; }
.view-toggle-btn { white-space:nowrap; }
.view-toggle-btn svg { width:19px; height:19px; flex:0 0 19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.catalog-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:24px; align-items:start; }
.filter-sidebar { padding:16px; position:sticky; top:12px; }
.filter-block { padding:13px 0; border-bottom:1px solid #edf0f2; }
.filter-block:first-child { padding-top:0; }
.filter-block h3 { margin:0 0 11px; font-size:13px; }
.check-list { display:grid; gap:7px; }
.check-list label { display:flex; justify-content:space-between; gap:9px; color:#4d555b; font-size:11px; }
.check-list label span:first-child { display:flex; align-items:center; gap:8px; }
.check-list input { accent-color:var(--primary); }
.range-fields { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.range-fields input { width:100%; height:36px; border:1px solid var(--line); border-radius:6px; padding:0 9px; font-size:10px; }
.room-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.room-grid button { min-height:31px; border:1px solid var(--line); border-radius:6px; background:#fff; font-size:10px; }
.room-grid button.active { border-color:var(--primary); color:var(--primary); }
.listing-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.listing-card { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:9px; background:#fff; transition:transform .2s,box-shadow .2s; }
.listing-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); }
.listing-photo { height:195px; position:relative; background-size:cover; background-position:center; }
.listing-photo .heart { top:6px; right:7px; }
.listing-copy { padding:12px; }
.listing-copy h3 { margin:0 0 6px; font-size:14px; }
.listing-copy p { margin:0 0 8px; color:var(--muted); font-size:11px; }
.listing-copy strong { display:block; font-size:17px; }
.listing-meta { display:flex; gap:12px; margin-top:10px; padding-top:9px; border-top:1px solid #edf0f1; color:#5f676d; font-size:10px; }
.pagination { display:flex; justify-content:center; gap:8px; margin-top:22px; }
.pagination a { width:39px; height:39px; display:grid; place-items:center; border:1px solid var(--line); border-radius:7px; font-size:12px; }
.pagination a.current { border-color:var(--primary); background:var(--primary); color:#fff; }

/* CSS/SVG map */
.map-layout { display:grid; grid-template-columns:340px minmax(0,1fr); gap:12px; }
.map-list { display:grid; gap:9px; max-height:815px; overflow:auto; padding-right:4px; }
.map-list-card { display:grid; grid-template-columns:145px 1fr; min-height:115px; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; }
.map-list-card .mini-photo { position:relative; background-size:cover; background-position:center; }
.map-list-card .mini-copy { padding:10px; }
.map-list-card h3 { margin:0 0 4px; font-size:12px; }
.map-list-card p { margin:0 0 7px; color:var(--muted); font-size:9px; }
.map-list-card strong { font-size:14px; }
.fake-map { min-height:815px; position:relative; overflow:hidden; border:1px solid #dfe5e8; border-radius:10px; background-color:#edf2e9; background-image:linear-gradient(26deg,transparent 47%,rgba(255,255,255,.9) 48%,rgba(255,255,255,.9) 51%,transparent 52%),linear-gradient(112deg,transparent 46%,rgba(255,255,255,.82) 47%,rgba(255,255,255,.82) 50%,transparent 51%),repeating-linear-gradient(0deg,transparent 0 42px,rgba(195,205,192,.26) 43px 45px),repeating-linear-gradient(90deg,transparent 0 62px,rgba(195,205,192,.23) 63px 65px); }
.fake-map::before { content:""; position:absolute; inset:-10%; background:repeating-radial-gradient(ellipse at 52% 48%,transparent 0 38px,rgba(255,255,255,.7) 39px 42px,transparent 43px 70px); opacity:.6; transform:rotate(-12deg); }
.map-city { position:absolute; left:46%; top:43%; font-size:23px; font-weight:700; color:#36434a; }
.district { position:absolute; color:#68757d; font-size:11px; font-weight:700; text-transform:uppercase; text-align:center; }
.map-price, .map-count { position:absolute; transform:translate(-50%,-50%); min-width:48px; height:32px; display:grid; place-items:center; padding:0 8px; border-radius:16px; background:#fff; color:var(--primary); font-size:10px; font-weight:700; box-shadow:0 4px 11px rgba(33,44,54,.15); }
.map-count { min-width:34px; width:34px; background:#ffb21a; color:#fff; }
.map-controls { position:absolute; right:16px; top:18px; display:grid; gap:7px; }
.map-controls button { width:42px; height:42px; border:1px solid #d8dde0; border-radius:7px; background:#fff; font-size:20px; box-shadow:0 3px 8px rgba(0,0,0,.08); }

/* Agencies directory */
.found-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.found-heading h1 { margin:0; font-size:21px; }
.found-heading strong { color:var(--primary); }
.premium-agencies { padding:14px; margin-bottom:18px; border-color:#ffe2a6; background:#fffdf8; }
.agency-row { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.directory-agency, .premium-agency { padding:15px; }
.premium-agency { background:#fff; }
.agency-top { display:grid; grid-template-columns:68px 1fr; gap:13px; align-items:center; }
.agency-mark { width:68px; height:55px; display:grid; place-items:center; border-radius:7px; background:#f7f9fb; color:#0a58bf; font-weight:800; font-size:18px; line-height:1; text-align:center; }
.agency-mark.gold { color:#f2a500; font-size:26px; }
.agency-mark.dark { color:#17314d; }
.agency-mark.red { color:#b41325; }
.agency-mark.green { color:#16822c; }
.agency-top h3 { margin:0 0 4px; font-size:13px; }
.agency-top p { margin:0; color:var(--muted); font-size:9px; }
.agency-stats { display:flex; justify-content:space-between; gap:8px; margin-top:12px; padding-top:10px; border-top:1px solid #edf0f1; color:#5d656b; font-size:10px; }
.agency-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.agency-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; }
.directory-agency .agency-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
.agency-cta { display:grid; grid-template-columns:245px 1fr; min-height:185px; margin-top:20px; overflow:hidden; background:linear-gradient(90deg,#edf7ff,#fff); }
.agency-cta-photo { background:url("../img/property-office.png") center/cover; }
.agency-cta-copy { padding:24px; }
.agency-cta-copy h2 { margin:0 0 5px; font-size:21px; }
.benefits { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:22px; }
.benefit { padding-left:15px; border-left:1px solid #d7e4ee; }
.benefit b { display:block; color:#1162c7; font-size:13px; }
.benefit p { margin:4px 0 0; color:#5c666e; font-size:9px; }

/* Agency profile */
.agency-hero-info { padding-top:45px; }
.agency-hero-info h1 { margin:0 0 5px; font-size:36px; }
.agency-hero-info p { margin:0 0 18px; font-size:17px; }
.hero-facts { display:flex; gap:30px; flex-wrap:wrap; font-size:12px; }
.agency-profile-card { display:grid; grid-template-columns:170px 1fr 320px; gap:24px; align-items:center; padding:24px; }
.agency-profile-logo { height:150px; display:grid; place-items:center; border:1px solid var(--line); border-radius:9px; color:#1259b7; font-size:48px; font-weight:800; }
.agency-profile-copy h2 { margin:0 0 4px; font-size:27px; }
.agency-profile-copy p { margin:0 0 12px; color:#5f666b; font-size:12px; max-width:610px; }
.trust-tags { display:flex; flex-wrap:wrap; gap:8px; }
.agency-contact-actions { display:grid; gap:9px; }
.profile-tabs { display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); }
.profile-tabs button { min-height:58px; border:0; border-right:1px solid var(--line); background:#fff; font-size:13px; }
.profile-tabs button.active { color:var(--primary); box-shadow:inset 0 -3px var(--primary); }
.agency-content { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:20px; margin-top:16px; }
.agency-main-column { display:grid; gap:16px; }
.agency-listings-panel, .team-panel, .about-agency, .agency-side-card { padding:16px; }
.agency-listing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.compact-listing .listing-photo { height:145px; }
.compact-listing .listing-copy { padding:9px; }
.compact-listing .listing-copy h3 { font-size:11px; }
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.team-card { overflow:hidden; border:1px solid var(--line); border-radius:8px; }
.team-photo { height:145px; background-size:cover; background-position:center 24%; }
.team-copy { padding:9px; }
.team-copy h3 { margin:0; font-size:11px; }
.team-copy p { margin:3px 0; color:var(--muted); font-size:9px; }
.agency-sidebar { display:grid; gap:14px; align-content:start; }
.agency-side-card h3 { margin:0 0 12px; font-size:15px; }
.info-list { display:grid; gap:9px; color:#50585e; font-size:10px; }
.rating-score { font-size:22px; font-weight:700; }
.stars { color:#ffaf00; letter-spacing:2px; }
.rating-line { display:grid; grid-template-columns:12px 1fr 22px; gap:7px; align-items:center; margin-top:7px; font-size:9px; }
.rating-bar { height:4px; border-radius:3px; background:#eceff1; overflow:hidden; }
.rating-bar i { display:block; height:100%; background:#ffac00; }
.about-agency { display:grid; grid-template-columns:1.2fr repeat(3,1fr); gap:18px; }
.about-agency > div + div { padding-left:18px; border-left:1px solid var(--line); }
.about-agency h3 { margin:0 0 8px; font-size:14px; }
.about-agency p, .about-agency li { color:#5a6268; font-size:10px; }

/* Listing detail */
.detail-surface { padding:22px; }
.detail-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.detail-title-row h1 { margin:0 0 8px; font-size:28px; }
.detail-title-row p { margin:0; color:#4c555b; font-size:11px; }
.detail-top-actions { display:flex; gap:12px; }
.detail-tags { display:flex; gap:8px; margin:14px 0; }
.detail-layout { display:grid; grid-template-columns:minmax(0,1.65fr) 340px; gap:24px; align-items:start; }
.detail-layout > *, .add-layout > *, .dashboard-layout > *, .contact-main-grid > *, .agency-content > * { min-width:0; }
.detail-main-photo { height:420px; border-radius:10px; background:url("../img/property-apartment.png") center/cover; }
.gallery-thumbs { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-top:10px; }
.gallery-thumb { height:72px; border:2px solid transparent; border-radius:7px; background-size:cover; background-position:center; }
.gallery-thumb.active { border-color:var(--primary); }
.detail-price { display:flex; align-items:baseline; gap:14px; margin:16px 0 12px; }
.detail-price strong { font-size:29px; }
.detail-price span { color:#6d757b; }
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.feature { min-height:73px; padding:13px 15px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.feature:nth-child(3n) { border-right:0; }
.feature span { display:block; color:#6d747a; font-size:10px; }
.feature b { display:block; margin-top:4px; font-size:13px; }
.seller-card { padding:20px; position:sticky; top:14px; }
.seller-brand { display:grid; grid-template-columns:58px 1fr; align-items:center; gap:12px; margin-bottom:15px; }
.seller-brand .agency-mark { width:58px; height:50px; }
.seller-brand h3 { margin:0 0 3px; font-size:15px; }
.seller-stats { display:grid; gap:11px; margin-top:15px; padding-top:15px; border-top:1px solid var(--line); color:#626a70; font-size:10px; }
.info-map-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:16px; margin-top:16px; }
.description-panel, .location-panel { padding:16px; }
.description-panel h2, .location-panel h2 { margin:0 0 9px; font-size:16px; }
.description-panel p { color:#3f474d; font-size:11px; }
.mini-map { height:145px; position:relative; overflow:hidden; border-radius:8px; background-color:#edf2e9; background-image:linear-gradient(25deg,transparent 47%,#fff 48% 52%,transparent 53%),linear-gradient(110deg,transparent 46%,rgba(255,255,255,.85) 47% 51%,transparent 52%),repeating-linear-gradient(0deg,transparent 0 37px,rgba(193,203,190,.3) 38px 40px); }
.pin { position:absolute; left:50%; top:50%; width:27px; height:27px; border-radius:50% 50% 50% 0; transform:translate(-50%,-60%) rotate(-45deg); background:var(--primary); box-shadow:0 4px 10px rgba(0,0,0,.2); }
.pin::after { content:""; position:absolute; width:9px; height:9px; left:9px; top:9px; border-radius:50%; background:#fff; }
.related-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.related-grid .listing-photo { height:135px; }
.related-grid .listing-copy { padding:9px; }

/* Add listing */
.wizard-shell { padding:26px; }
.stepper { display:grid; grid-template-columns:repeat(5,1fr); margin-bottom:24px; }
.step { display:flex; align-items:center; gap:8px; color:#7b8287; font-size:11px; }
.step:not(:last-child)::after { content:""; flex:1; height:1px; background:#e0e4e7; margin-left:8px; }
.step i { width:31px; height:31px; display:grid; place-items:center; border:1px solid #d7dce0; border-radius:50%; font-style:normal; }
.step.active { color:#2d3338; font-weight:700; }
.step.active i { border-color:var(--primary); background:var(--primary); color:#fff; }
.add-layout { display:grid; grid-template-columns:minmax(0,1.8fr) 330px; gap:28px; align-items:start; }
.add-form { display:grid; gap:19px; }
.form-section h2 { margin:0 0 12px; font-size:14px; }
.property-types { display:grid; grid-template-columns:repeat(5,1fr); gap:9px; }
.type-button { min-height:74px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:11px; }
.type-button b { display:block; margin-bottom:5px; font-size:25px; line-height:1; }
.type-button.selected { border-color:var(--primary); color:var(--primary); background:#fff8f8; }
.radio-row, .check-grid { display:flex; flex-wrap:wrap; gap:22px; }
.radio-row label, .check-grid label { font-size:11px; }
.radio-row input, .check-grid input { accent-color:var(--primary); }
.form-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.form-grid-4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.form-map { height:125px; }
.upload-row { display:grid; grid-template-columns:1.3fr repeat(3,.6fr) .6fr; gap:9px; }
.upload-box { min-height:92px; display:grid; place-items:center; border:1px dashed #cbd2d7; border-radius:8px; color:#727a80; background-size:cover; background-position:center; font-size:10px; text-align:center; }
.add-sidebar { display:grid; gap:15px; position:sticky; top:12px; }
.preview-card, .notice-card, .tariff-card { padding:16px; }
.preview-card h3, .tariff-card h3 { margin:0 0 12px; font-size:13px; }
.preview-photo { height:175px; position:relative; border-radius:7px; background:url("../img/property-apartment.png") center/cover; }
.preview-card h4 { margin:11px 0 4px; font-size:14px; }
.preview-card p { margin:0 0 7px; color:#676f75; font-size:10px; }
.tariff-option { display:grid; grid-template-columns:1fr 20px; gap:10px; padding:13px; margin-top:9px; border:1px solid var(--line); border-radius:8px; }
.tariff-option.active { border-color:var(--primary); background:#fffafa; }
.tariff-option h4 { margin:0 0 3px; font-size:12px; }
.tariff-option p { margin:0; color:#777e83; font-size:9px; }
.notice-card { background:#fffaf0; border-color:#f2d9a4; }
.notice-card h3 { margin:0 0 5px; font-size:12px; }
.notice-card p { margin:0; color:#656d72; font-size:9px; }

/* Contact */
.contact-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:-52px; position:relative; z-index:5; }
.contact-card { min-height:102px; padding:17px; display:grid; grid-template-columns:48px 1fr; gap:12px; align-items:center; }
.contact-icon { width:45px; height:45px; display:grid; place-items:center; border-radius:50%; background:#fff0f1; color:var(--primary); font-size:21px; }
.contact-card h3 { margin:0 0 4px; font-size:13px; }
.contact-card p { margin:0; color:#20262b; font-size:11px; font-weight:600; }
.contact-card small { color:#747b81; font-size:9px; }
.contact-main-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:18px; margin-top:22px; }
.contact-form { padding:20px; }
.contact-form h2 { margin:0 0 16px; font-size:18px; }
.contact-form-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; }
.contact-form-grid .full { grid-column:1/-1; }
.contact-map { min-height:420px; position:relative; }
.office-bubble { position:absolute; z-index:2; top:15px; left:15px; max-width:240px; padding:15px; background:#fff; border-radius:8px; box-shadow:0 6px 20px rgba(0,0,0,.12); }
.office-bubble h3 { margin:0 0 6px; font-size:14px; }
.office-bubble p { margin:0 0 8px; font-size:10px; }
.support-section { margin-top:24px; }
.support-section h2, .faq-section h2 { margin:0 0 13px; font-size:18px; }
.support-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.support-card { padding:15px; }
.support-card h3 { margin:0 0 5px; font-size:12px; }
.support-card p { min-height:31px; margin:0 0 12px; color:#6a7278; font-size:9px; }
.support-card strong { display:block; margin-bottom:5px; font-size:15px; }
.support-card a { color:#667078; font-size:11px; }
.faq-section { margin-top:22px; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px 22px; }
.faq-item { border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.faq-button { width:100%; min-height:48px; padding:0 15px; border:0; background:#fff; display:flex; align-items:center; justify-content:space-between; text-align:left; font-weight:700; font-size:11px; }
.faq-answer { display:none; padding:0 15px 13px; color:#626a70; font-size:10px; }
.faq-item.open .faq-answer { display:block; }
.faq-item.open .faq-button span:last-child { transform:rotate(45deg); }

/* Profile */
.profile-hero { min-height:250px; }
.profile-main { padding:24px 0 38px; }
.profile-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.profile-title p { margin:0 0 3px; color:var(--primary); font-size:11px; }
.profile-title h1 { margin:0; font-size:34px; }
.dashboard-layout { display:grid; grid-template-columns:230px minmax(0,1fr); gap:20px; align-items:start; }
.profile-sidebar { overflow:hidden; position:sticky; top:12px; }
.profile-user { padding:20px; text-align:center; }
.avatar { width:90px; height:90px; margin:0 auto 10px; border-radius:50%; background:url("../img/agent-male.png") center 23%/cover; position:relative; }
.avatar::after { content:""; position:absolute; right:5px; top:5px; width:12px; height:12px; border:2px solid #fff; border-radius:50%; background:#27a745; z-index:2; }
.profile-user h2 { margin:0 0 4px; font-size:17px; }
.profile-user p { margin:0; color:#596168; font-size:10px; }
.verified { display:grid; gap:7px; margin-top:15px; padding-top:13px; border-top:1px solid var(--line); }
.verified span { padding:7px; border-radius:6px; background:#f6f8f9; color:#596168; font-size:9px; }
.profile-menu { display:grid; padding:0 0 12px; }
.profile-menu a { min-height:46px; padding:0 18px; display:flex; align-items:center; gap:12px; color:#465058; font-size:11px; border-left:3px solid transparent; }
.profile-menu a.active { border-left-color:var(--primary); background:#fff0f1; color:var(--primary); }
.profile-menu a.logout { margin-top:9px; border-top:1px solid var(--line); color:var(--primary); }
.dashboard-main { min-width:0; }
.stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
.stat-card { min-width:0; min-height:115px; padding:15px; display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:10px; }
.stat-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:50%; background:#edf6ff; color:#1672eb; font-size:22px; }
.stat-card:nth-child(1) .stat-icon { background:#e9f8ee; color:#17a552; }
.stat-card:nth-child(2) .stat-icon { background:#fff0f1; color:var(--primary); }
.stat-card:nth-child(4) .stat-icon { background:#f6ecff; color:#943cff; }
.stat-card strong { font-size:25px; }
.stat-card p { margin:2px 0 0; color:#5e666c; font-size:10px; }
.dashboard-listings { display:grid; gap:10px; }
.dashboard-listing { display:grid; grid-template-columns:220px minmax(0,1fr) 145px; gap:15px; min-height:145px; padding:10px; }
.dashboard-photo { position:relative; border-radius:7px; background-size:cover; background-position:center; }
.dashboard-copy h3 { margin:5px 0 4px; font-size:16px; }
.dashboard-copy p { margin:0 0 8px; color:#6b7379; font-size:10px; }
.dashboard-copy strong { display:block; font-size:18px; }
.dashboard-meta { display:flex; gap:20px; margin-top:15px; color:#687076; font-size:9px; }
.dashboard-actions { display:grid; align-content:center; gap:7px; }
.bottom-dashboard { display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; margin-top:18px; }
.dash-panel { padding:15px; min-height:220px; }
.dash-panel h3 { margin:0 0 13px; font-size:14px; }
.message { display:grid; grid-template-columns:35px 1fr auto; gap:9px; align-items:center; padding:9px 0; border-bottom:1px solid #edf0f1; }
.message .mini-avatar { width:34px; height:34px; border-radius:50%; background-size:cover; background-position:center 20%; }
.message b { display:block; font-size:10px; }
.message p, .message time { margin:2px 0 0; color:#70777d; font-size:9px; }
.saved-search { display:grid; grid-template-columns:34px 1fr 20px; gap:9px; align-items:center; padding:9px 0; border-bottom:1px solid #edf0f1; }
.saved-search i { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:#fff0f1; color:var(--primary); font-style:normal; }
.saved-search b { display:block; font-size:10px; }
.saved-search p { margin:2px 0 0; color:#737a80; font-size:9px; }
.completion { display:grid; grid-template-columns:90px 1fr; gap:12px; align-items:center; }
.progress-ring { width:80px; height:80px; display:grid; place-items:center; border-radius:50%; background:conic-gradient(#1cad47 0 85%,#e8ecef 85%); position:relative; }
.progress-ring::before { content:""; position:absolute; inset:8px; border-radius:50%; background:#fff; }
.progress-ring b { position:relative; z-index:1; font-size:18px; }

@media (max-width:960px) {
  .catalog-search { width:var(--page); }
  .listing-grid { grid-template-columns:repeat(2,1fr); }
  .agency-row { grid-template-columns:repeat(2,1fr); }
  .agency-profile-card { grid-template-columns:140px 1fr 250px; }
  .detail-layout { grid-template-columns:minmax(0,1fr) 300px; }
  .property-types { grid-template-columns:repeat(3,1fr); }
  .support-grid { grid-template-columns:repeat(2,1fr); }
  .stat-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:900px) {
  .subhero.tall { min-height:470px; }
  .catalog-filter-row { grid-template-columns:repeat(2,1fr); }
  .catalog-search-actions { grid-column:1/-1; }
  .catalog-search-actions .btn { flex:1; }
  .catalog-layout, .map-layout, .agency-content, .detail-layout, .add-layout, .contact-main-grid, .dashboard-layout { grid-template-columns:1fr; }
  .filter-sidebar, .seller-card, .add-sidebar, .profile-sidebar { position:static; }
  .filter-sidebar { display:none; }
  .map-list { max-height:none; grid-template-columns:repeat(2,1fr); }
  .fake-map { min-height:600px; }
  .agency-profile-card { grid-template-columns:120px 1fr; }
  .agency-contact-actions { grid-column:1/-1; grid-template-columns:1fr 1fr; }
  .agency-grid { grid-template-columns:repeat(2,1fr); }
  .about-agency { grid-template-columns:1fr 1fr; }
  .about-agency > div + div { border-left:0; padding-left:0; }
  .related-grid { grid-template-columns:repeat(3,1fr); overflow-x:auto; }
  .related-grid .listing-card { min-width:220px; }
  .info-map-grid { grid-template-columns:1fr; }
  .contact-cards { grid-template-columns:repeat(2,1fr); }
  .dashboard-layout { grid-template-columns:1fr; }
  .profile-sidebar { display:grid; grid-template-columns:220px 1fr; }
  .profile-menu { grid-template-columns:repeat(3,1fr); padding:12px; }
  .profile-menu a { min-height:40px; border-left:0; border-radius:6px; }
  .profile-menu a.active { border-left:0; }
}

@media (max-width:680px) {
  .subhero { min-height:330px; background-position:58% center; }
  .subhero.tall { min-height:720px; }
  .subhero.slim { min-height:205px; }
  .inner-hero-copy { padding-top:40px; }
  .inner-hero-copy h1, .agency-hero-info h1 { font-size:28px; }
  .catalog-search { bottom:12px; }
  .catalog-filter-row { grid-template-columns:1fr; max-height:none; overflow:visible; }
  .catalog-search-actions { grid-column:auto; }
  .result-bar, .found-heading, .profile-title { align-items:flex-start; flex-direction:column; }
  .view-tools { width:100%; overflow-x:auto; }
  .listing-grid, .agency-grid, .agency-row, .team-grid { grid-template-columns:1fr; }
  .listing-photo { height:230px; }
  .map-list { grid-template-columns:1fr; }
  .fake-map { min-height:520px; }
  .agency-cta { grid-template-columns:1fr; }
  .agency-cta-photo { min-height:170px; }
  .benefits { grid-template-columns:1fr 1fr; }
  .agency-profile-card { grid-template-columns:1fr; }
  .agency-profile-logo { height:110px; }
  .agency-contact-actions { grid-template-columns:1fr; }
  .profile-tabs { overflow-x:auto; grid-template-columns:repeat(5,minmax(120px,1fr)); }
  .agency-listing-grid { grid-template-columns:1fr; }
  .about-agency { grid-template-columns:1fr; }
  .detail-surface { padding:14px; }
  .detail-title-row { flex-direction:column; }
  .detail-main-photo { height:285px; }
  .gallery-thumbs { grid-template-columns:repeat(6,90px); overflow-x:auto; }
  .feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .feature:nth-child(3n) { border-right:1px solid var(--line); }
  .feature:nth-child(2n) { border-right:0; }
  .related-grid { grid-template-columns:repeat(5,230px); }
  .wizard-shell { padding:14px; }
  .stepper { grid-template-columns:repeat(5,80px); overflow-x:auto; }
  .step::after { display:none; }
  .step { flex-direction:column; text-align:center; }
  .property-types { grid-template-columns:repeat(2,1fr); }
  .form-grid-3, .form-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .upload-row { grid-template-columns:1fr 1fr; }
  .upload-row .upload-box:first-child { grid-column:1/-1; }
  .contact-cards { grid-template-columns:1fr; margin-top:-30px; }
  .contact-form-grid { grid-template-columns:1fr; }
  .contact-form-grid .full { grid-column:auto; }
  .support-grid, .faq-grid { grid-template-columns:1fr; }
  .profile-title h1 { font-size:28px; }
  .profile-sidebar { display:block; }
  .profile-menu { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-listing { grid-template-columns:1fr; }
  .dashboard-photo { min-height:200px; }
  .dashboard-actions { grid-template-columns:1fr 1fr; }
  .bottom-dashboard { grid-template-columns:1fr; }
}

@media (max-width:420px) {
  .form-grid-3, .form-grid-4, .stat-grid { grid-template-columns:1fr; }
  .benefits { grid-template-columns:1fr; }
  .contact-card { grid-template-columns:40px 1fr; }
  .map-list-card { grid-template-columns:120px 1fr; }
}
