:root {
    --max-blue: #13216e;
    --max-green: #2dce89;
    --max-muted: #626b91;
    --max-border: #dce2f3;
    --max-bg: #f7f9fc;
}

body.listing-site {
    padding-top: 90px;
    background: var(--max-bg);
    color: var(--max-blue);
}

.search-section {
    padding: 34px 0 28px;
}

.search-panel,
.surface-card {
    background: #fff;
    border-radius: 15px;
    box-shadow: 0 4px 24px rgba(19, 33, 110, .12);
}

.search-panel {
    padding: 25px;
}

.search-panel label {
    display: block;
    margin-bottom: 6px;
    color: #434e9e;
    font-size: 13px;
    font-weight: 500;
}

.search-panel input,
.search-panel select {
    width: 100%;
    height: 52px;
    padding: 0 15px;
    border: 1px solid var(--max-border);
    border-radius: 9px;
    background: #fff;
    color: var(--max-blue);
    font-family: "Jost", sans-serif;
}

.search-panel input:focus,
.search-panel select:focus {
    outline: 3px solid rgba(45, 206, 137, .2);
    border-color: var(--max-green);
}

.search-actions {
    display: flex;
    align-items: end;
    gap: 10px;
    height: 100%;
}

.search-actions .button {
    min-height: 52px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    white-space: nowrap;
}

.results-section {
    padding: 15px 0 70px;
}

.results-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 20px;
}

.results-toolbar h1 {
    margin: 0;
    font-size: clamp(20px, 3vw, 28px);
}

.view-switcher {
    display: inline-flex;
    padding: 4px;
    border: 1px solid var(--max-border);
    border-radius: 9px;
    background: #fff;
}

.view-switcher button {
    border: 0;
    border-radius: 7px;
    padding: 8px 13px;
    background: transparent;
    color: var(--max-blue);
    font-weight: 600;
}

.view-switcher button.active {
    background: var(--max-blue);
    color: #fff;
}

.results-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(340px, 1fr);
    gap: 24px;
    align-items: start;
}

.property-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.property-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid #edf0f7;
    border-radius: 13px;
    box-shadow: 0 4px 18px rgba(19, 33, 110, .09);
    transition: transform .2s ease, box-shadow .2s ease;
}

.property-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(19, 33, 110, .16);
}

.property-card__image {
    display: block;
    position: relative;
    background: #eef6f8;
}

.property-card__image img {
    width: 100%;
    height: 235px;
    display: block;
    object-fit: cover;
}

.property-card__price {
    position: absolute;
    top: 12px;
    right: 12px;
    padding: 8px 13px;
    border-radius: 6px;
    background: var(--max-blue);
    color: #fff;
    font-weight: 700;
}

.property-card__content {
    padding: 18px;
}

.property-card__content h2,
.property-card__content h3 {
    min-height: 52px;
    margin-bottom: 5px;
    font-size: 20px;
    line-height: 1.3;
}

.property-card__content h2 a,
.property-card__content h3 a {
    color: var(--max-blue);
    font-size: inherit;
    line-height: inherit;
}

.property-card__location,
.property-card__type {
    color: var(--max-muted);
    font-size: 14px;
}

.property-card__facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 7px;
    margin: 16px 0;
}

.property-card__fact {
    padding: 9px 4px;
    border-radius: 7px;
    background: #f7f8ff;
    text-align: center;
}

.property-card__fact span,
.property-card__fact strong {
    display: block;
}

.property-card__fact span {
    color: var(--max-muted);
    font-size: 11px;
}

.property-card__fact strong {
    font-size: 14px;
}

.property-card__link {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    color: #08764d;
    font-weight: 700;
}

.map-panel {
    position: sticky;
    top: 112px;
    overflow: hidden;
}

#results-map,
#property-map {
    width: 100%;
    height: 680px;
    background: #e8edf5;
}

.map-message {
    padding: 11px 15px;
    background: #fff9dc;
    color: #6f5c00;
    font-size: 13px;
}

.results-layout.view-list {
    display: block;
}

.results-layout.view-list .map-panel,
.results-layout.view-map .property-results-column {
    display: none;
}

.results-layout.view-list .property-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.results-layout.view-map {
    display: block;
}

.results-layout.view-map #results-map {
    height: 720px;
}

.pagination-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
    margin-top: 28px;
}

.pagination-nav a,
.pagination-nav span {
    min-width: 42px;
    padding: 9px 12px;
    border: 1px solid var(--max-border);
    border-radius: 7px;
    background: #fff;
    color: var(--max-blue);
    text-align: center;
}

.pagination-nav .current {
    border-color: var(--max-blue);
    background: var(--max-blue);
    color: #fff;
}

.compliance-note {
    margin-top: 35px;
    color: #747b9c;
    font-size: 12px;
    line-height: 1.5;
    text-align: center;
}

.cache-status {
    margin-top: 8px;
    color: #79809e;
    font-size: 12px;
}

.empty-results {
    padding: 70px 25px;
    text-align: center;
}

.leaflet-popup-content .popup-price {
    margin-bottom: 3px;
    color: var(--max-blue);
    font-size: 17px;
    font-weight: 700;
}

.leaflet-popup-content a {
    color: #08764d;
    font-weight: 700;
}

.detail-page {
    padding: 38px 0 75px;
}

.detail-back {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 20px;
    color: var(--max-blue);
    font-weight: 700;
}

.detail-gallery {
    overflow: hidden;
}

.detail-gallery__main {
    position: relative;
    background: #0b245e;
}

.detail-gallery__main img {
    width: 100%;
    height: min(58vw, 610px);
    min-height: 340px;
    display: block;
    object-fit: contain;
}

.detail-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: var(--max-blue);
}

.detail-gallery__thumbs {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 13px;
    background: #edf4f6;
}

.detail-gallery__thumbs button {
    flex: 0 0 auto;
    padding: 0;
    border: 3px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    background: transparent;
}

.detail-gallery__thumbs button.active {
    border-color: var(--max-green);
}

.detail-gallery__thumbs img {
    width: 105px;
    height: 76px;
    display: block;
    object-fit: cover;
}

.detail-content {
    padding: 30px;
}

.detail-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
}

.detail-price {
    margin-bottom: 5px;
    color: var(--max-blue);
    font-size: clamp(30px, 5vw, 46px);
}

.detail-address {
    color: var(--max-muted);
    font-size: 18px;
}

.detail-status {
    display: inline-block;
    padding: 7px 14px;
    border-radius: 20px;
    background: #ddf8eb;
    color: #08764d;
    font-weight: 700;
}

.detail-facts {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    margin: 28px 0;
}

.detail-fact {
    padding: 16px 9px;
    border: 1px solid #e4e8f6;
    border-radius: 9px;
    background: #f8f9ff;
    text-align: center;
}

.detail-fact span,
.detail-fact strong {
    display: block;
}

.detail-fact span {
    color: var(--max-muted);
    font-size: 12px;
}

.detail-fact strong {
    font-size: 17px;
}

.detail-description {
    color: #434e9e;
    line-height: 1.75;
    white-space: pre-line;
}

.detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr);
    gap: 25px;
    margin-top: 25px;
}

.detail-section {
    padding: 25px;
}

.detail-section h2 {
    margin-bottom: 17px;
    font-size: 24px;
}

.detail-attributes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 22px;
}

.detail-attribute {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid #edf0f6;
    color: var(--max-muted);
}

.detail-attribute strong {
    color: var(--max-blue);
    text-align: right;
}

.agent-card p {
    color: var(--max-muted);
}

.map-section {
    margin-top: 25px;
    overflow: hidden;
}

.map-section__heading {
    padding: 22px 25px 0;
}

.map-section #property-map,
.map-section iframe {
    width: 100%;
    height: 440px;
    border: 0;
}

.related-section {
    margin-top: 38px;
}

.related-section__heading {
    margin-bottom: 20px;
}

.related-section__heading h2 {
    margin-bottom: 4px;
    color: var(--max-blue);
    font-size: clamp(27px, 4vw, 36px);
}

.related-section__heading p {
    margin: 0;
    color: var(--max-muted);
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.related-card {
    display: flex;
    flex-direction: column;
}

.related-card .property-card__image img {
    height: 205px;
}

.related-card .property-card__content {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.related-card__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 14px;
    margin: 14px 0;
    color: var(--max-muted);
    font-size: 13px;
}

.related-card__facts strong {
    color: var(--max-blue);
}

.related-card .property-card__link {
    margin-top: auto;
}

.media-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.media-list a {
    display: flex;
    gap: 9px;
    align-items: center;
    color: #08764d;
    font-weight: 700;
}

@media (max-width: 991px) {
    .detail-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .detail-grid { grid-template-columns: 1fr; }
    .related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575px) {
    .detail-page { padding-top: 22px; }
    .detail-content, .detail-section { padding: 20px 17px; }
    .detail-heading { flex-direction: column; }
    .detail-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .detail-attributes { grid-template-columns: 1fr; }
    .detail-gallery__main img { height: 330px; min-height: 0; }
    .map-section #property-map, .map-section iframe { height: 350px; }
    .related-grid { grid-template-columns: 1fr; }
}

@media (max-width: 1199px) {
    .results-layout { grid-template-columns: minmax(0, 1.35fr) minmax(310px, .8fr); }
    .results-layout.view-list .property-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
    body.listing-site { padding-top: 84px; }
    .results-layout { display: block; }
    .map-panel { position: static; margin-top: 25px; }
    #results-map, #property-map { height: 440px; }
}

@media (max-width: 575px) {
    .search-panel { padding: 18px; border-radius: 0; }
    .search-section { padding-top: 20px; }
    .results-toolbar { align-items: flex-start; flex-direction: column; }
    .property-cards,
    .results-layout.view-list .property-cards { grid-template-columns: 1fr; }
    .property-card__image img { height: 250px; }
    .view-switcher { width: 100%; }
    .view-switcher button { flex: 1; }
}
