/* Portfolio listing + map section only — loaded on /portfolio */
.portfolio-listing,
.portfolio-listing .port-search-section,
.portfolio-listing .portfolio-search-column,
.portfolio-listing .portfolio-map-section {
    max-width: 100%;
    overflow-x: clip
}

.portfolio-listing .container-fluid {
    padding-left: calc(var(--bs-gutter-x, 1.5rem) * .5);
    padding-right: calc(var(--bs-gutter-x, 1.5rem) * .5)
}

.port-search-section .col-lg-10 {
    text-align: left
}

/* 4 rows of chips, scroll horizontally — tight spacing */
.portfolio-category-panel {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    margin: 0;
    padding: 0 0 8px;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    scrollbar-color: var(--primary) #e8e8e8
}

.portfolio-category-panel::-webkit-scrollbar {
    height: 5px
}

.portfolio-category-panel::-webkit-scrollbar-thumb {
    background: var(--primary);
    border-radius: 3px
}

.portfolio-category-panel__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    grid-template-rows: repeat(4, auto);
    gap: 6px 8px;
    width: max-content;
    max-width: none;
    padding: 0;
    margin: 0
}

.portfolio-category-panel__track .search-btn-portfolio {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 7px 12px !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    white-space: nowrap;
    scroll-snap-align: start;
    box-shadow: none
}

.portfolio-category-panel__track .search-btn-portfolio.active {
    color: var(--white) !important;
    background-color: var(--primary) !important;
    border-color: var(--primary) !important
}

@media screen and (min-width: 768px) {
    .portfolio-category-panel__track {
        gap: 7px 10px
    }

    .portfolio-category-panel__track .search-btn-portfolio {
        font-size: 13px !important;
        padding: 8px 14px !important
    }
}

#dvMap {
    width: 100%;
    max-width: 100%
}

@media screen and (max-width:991px) {
    .port-desc-section h3 {
        font-size: 18px;
        line-height: 1.45;
        padding: 0 4px
    }

    .portfolio-search-column {
        padding-left: 0;
        padding-right: 0
    }

    .portfolio-search-column .row {
        margin-left: 0;
        margin-right: 0
    }

    .portfolio-search-column .row>[class*="col-"] {
        padding-left: calc(var(--bs-gutter-x, 1.5rem) * .5);
        padding-right: calc(var(--bs-gutter-x, 1.5rem) * .5)
    }
}

@media screen and (max-width:575px) {
    .portfolio-category-panel__track {
        grid-template-rows: repeat(3, auto);
        gap: 5px 6px
    }

    .portfolio-category-panel__track .search-btn-portfolio {
        font-size: 11px !important;
        padding: 6px 10px !important
    }
}
