.cabo-sb {
    position: sticky;
    top: var(--cabo-header-h);
    z-index: 900;
    background: var(--cabo-paper);
    border-bottom: 1px solid var(--cabo-line);
}

/* The header shrinks once the page scrolls (.is-scrolled: 64px -> 56px); the bar
   follows it so no gap opens between them. Same timing as the header. */
.cabo-sb:not(.sb--home) {
    transition: top var(--cabo-dur) var(--cabo-ease);
}

body:has(.cabo-header.is-scrolled) .cabo-sb:not(.sb--home) {
    top: var(--cabo-header-scrolled-h);
}

.cabo-sb__inner {
    padding-block: var(--cabo-space-3);
}

.cabo-sb__title {
    margin: 0 0 var(--cabo-space-2);
    font-size: var(--cabo-text-label);
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--cabo-muted);
}

.cabo-sb__row {
    display: flex;
    align-items: stretch;
    gap: var(--cabo-space-3);
    position: relative;
}

.cabo-sb__search,
.cabo-sb .sb-search {
    position: relative;
    display: flex;
    flex: 1 1 320px;
    min-width: 0;
    height: 48px;
    align-items: center;
    padding-inline: var(--cabo-space-4);
    background: var(--cabo-white);
    border: 1px solid var(--cabo-line-strong);
    border-radius: var(--cabo-radius-1);
}

.cabo-sb__search svg,
.cabo-sb__search-icon {
    flex: none;
    width: 18px;
    height: 18px;
    margin-right: var(--cabo-space-3);
    fill: none;
    stroke: var(--cabo-muted);
    stroke-width: 1.5;
}

.cabo-sb__search input {
    flex: 1;
    width: 100%;
    height: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: var(--cabo-text-body);
    color: var(--cabo-ink);
}

.cabo-sb__search input::placeholder {
    color: var(--cabo-faint);
}

.cabo-sb__search:focus-within,
.cabo-sb .sb-search:focus-within {
    border-color: var(--cabo-ink);
    outline: 2px solid var(--cabo-ink);
    outline-offset: 2px;
}

.cabo-sb__filters,
.cabo-sb .sb-filters {
    display: flex;
    flex: none;
    height: 48px;
    background: var(--cabo-white);
    border: 1px solid var(--cabo-line-strong);
    border-radius: var(--cabo-radius-1);
}

.cabo-sb__filter,
.cabo-sb .sb-filter {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--cabo-space-2);
    height: 100%;
    padding-inline: 18px;
    margin: 0;
    border: 0;
    border-left: 1px solid var(--cabo-line);
    border-radius: 0;
    background: transparent;
    color: var(--cabo-ink);
    font-size: var(--cabo-text-ui);
    letter-spacing: .1em;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: none;
}

.cabo-sb__filter:first-child,
.cabo-sb .sb-filter:first-child {
    border-left: 0;
}

.cabo-sb__filter:hover,
.cabo-sb .sb-filter:hover {
    background: var(--cabo-sand);
    color: var(--cabo-ink);
}

.cabo-sb__filter:focus-visible,
.cabo-sb .sb-filter:focus-visible {
    outline: 2px solid var(--cabo-ink);
    outline-offset: -2px;
    z-index: 2;
}

.cabo-sb__filter[aria-expanded="true"],
.cabo-sb .sb-filter[aria-expanded="true"] {
    background: var(--cabo-sand);
    color: var(--cabo-ink);
}

.cabo-sb__filter.is-set::after,
.cabo-sb .sb-filter.is-set::after {
    content: "";
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 9px;
    height: 1px;
    background: var(--cabo-gold);
}

.cabo-sb__filter svg,
.cabo-sb__filter-chevron {
    display: inline-block;
    vertical-align: middle;
    width: 10px;
    height: 10px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-sb__filter[aria-expanded="true"] svg,
.cabo-sb__filter[aria-expanded="true"] .cabo-sb__filter-chevron {
    transform: rotate(180deg);
}

.cabo-sb [hidden],
.cabo-sb *[hidden],
.cabo-sb .cabo-sb__meta [hidden],
.cabo-sb .cabo-sb__chips-wrap[hidden],
.cabo-sb .sb-chips-wrap[hidden],
.cabo-sb .cabo-sb__panel[hidden],
.cabo-sb .sb-pop[hidden],
.cabo-sb .sb-suggest[hidden],
.cabo-sb .cabo-sb-suggest[hidden] {
    display: none;
}

.cabo-sb__panel,
.cabo-sb .sb-pop {
    position: absolute;
    top: calc(100% + 8px);
    z-index: 950;
    padding: var(--cabo-space-5);
    background: var(--cabo-white);
    border: 1px solid var(--cabo-line);
    border-radius: var(--cabo-radius-1);
    box-shadow: var(--cabo-shadow-float);
    color: var(--cabo-ink);
}

.cabo-sb__panel--price,
.cabo-sb .sb-pop--price {
    width: 380px;
}

.cabo-sb__panel--type,
.cabo-sb .sb-pop--type {
    width: 460px;
}

.cabo-sb__type-cols,
.cabo-sb .sb-pop__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--cabo-space-5);
}

.cabo-sb__panel--beds,
.cabo-sb__panel--baths,
.cabo-sb .sb-pop--beds,
.cabo-sb .sb-pop--baths {
    width: max-content;
}

.cabo-sb__panel--more,
.cabo-sb .sb-pop--more {
    right: 0;
    width: 760px;
}

.cabo-sb-suggest,
.cabo-sb .sb-suggest {
    left: 0;
    width: 520px;
    max-width: calc(100vw - 32px);
    max-height: 480px;
    overflow-y: auto;
    padding: var(--cabo-space-3) 0;
    z-index: 1000;
}

.cabo-sb-suggest__group,
.cabo-sb .sb-suggest__group {
    padding: var(--cabo-space-2) var(--cabo-space-5) 4px;
    font-size: var(--cabo-text-label);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--cabo-muted);
}

.cabo-sb-suggest__item,
.cabo-sb .sb-suggest__item {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--cabo-space-4);
    padding: 9px var(--cabo-space-5);
    font-size: var(--cabo-text-small);
    color: var(--cabo-ink);
    cursor: pointer;
    user-select: none;
}

.cabo-sb-suggest__item.is-active,
.cabo-sb .sb-suggest__item.is-active {
    background: var(--cabo-sand);
}

.cabo-sb-suggest__item small,
.cabo-sb .sb-suggest__item small {
    font-size: var(--cabo-text-ui);
    color: var(--cabo-muted);
    white-space: nowrap;
}

.cabo-sb-suggest__item b,
.cabo-sb .sb-suggest__item b {
    font-weight: 500;
}

.cabo-sb__label,
.cabo-sb .sb-pop__label,
.cabo-sb__panel legend {
    display: block;
    margin: 0 0 var(--cabo-space-2);
    padding: 0;
    border: 0;
    font-size: var(--cabo-text-label);
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--cabo-muted);
}

.cabo-sb__range,
.cabo-sb .sb-range {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: var(--cabo-space-2);
    align-items: center;
}

.cabo-sb__range span,
.cabo-sb__range-separator {
    font-size: var(--cabo-text-small);
    color: var(--cabo-muted);
    text-align: center;
}

.cabo-sb__range input,
.cabo-sb__more-grid select,
.cabo-sb .sb-input,
.cabo-sb .sb-select {
    width: 100%;
    height: 44px;
    padding-inline: 12px;
    background: var(--cabo-white);
    border: 1px solid var(--cabo-line-strong);
    border-radius: var(--cabo-radius-1);
    color: var(--cabo-ink);
    font-size: var(--cabo-text-body);
    box-sizing: border-box;
}

.cabo-sb__quick,
.cabo-sb .sb-quick {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cabo-space-2);
    margin-top: var(--cabo-space-4);
}

.cabo-sb__quick button,
.cabo-sb .sb-quick button {
    height: 32px;
    padding: 0 12px;
    background: var(--cabo-paper);
    border: 1px solid var(--cabo-line);
    border-radius: var(--cabo-radius-round);
    cursor: pointer;
    font-size: var(--cabo-text-ui);
    color: var(--cabo-ink);
    box-shadow: none;
    transition: background-color var(--cabo-dur-fast) var(--cabo-ease), color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-sb__quick button:hover:not(.is-active),
.cabo-sb .sb-quick button:hover:not(.is-active) {
    background: var(--cabo-sand);
}

.cabo-sb__quick button.is-active,
.cabo-sb .sb-quick button.is-active {
    background: var(--cabo-ink);
    border-color: var(--cabo-ink);
    color: var(--cabo-white);
}

.cabo-sb__segments,
.cabo-sb .sb-seg {
    display: inline-flex;
    border: 1px solid var(--cabo-line-strong);
    border-radius: var(--cabo-radius-1);
    overflow: hidden;
}

.cabo-sb__segments button,
.cabo-sb .sb-seg button {
    min-width: 52px;
    height: 44px;
    padding: 0 12px;
    background: var(--cabo-white);
    border: 0;
    border-left: 1px solid var(--cabo-line);
    border-radius: 0;
    cursor: pointer;
    font-size: var(--cabo-text-small);
    color: var(--cabo-ink);
    box-shadow: none;
    transition: background-color var(--cabo-dur-fast) var(--cabo-ease), color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-sb__segments button:first-child,
.cabo-sb .sb-seg button:first-child {
    border-left: 0;
}

.cabo-sb__segments button:hover:not(.is-active),
.cabo-sb .sb-seg button:hover:not(.is-active) {
    background: var(--cabo-sand);
}

.cabo-sb__segments button.is-active,
.cabo-sb .sb-seg button.is-active {
    background: var(--cabo-ink);
    border-color: var(--cabo-ink);
    color: var(--cabo-white);
}

.cabo-sb__checks,
.cabo-sb .sb-checks {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cabo-sb__checks label,
.cabo-sb .sb-check {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: var(--cabo-text-small);
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    color: var(--cabo-ink);
    cursor: pointer;
}

.cabo-sb__checks input,
.cabo-sb .sb-check input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--cabo-ink);
}

.cabo-sb__more-grid,
.cabo-sb .sb-pop__grid {
    display: flex;
    flex-direction: column;
    gap: var(--cabo-space-5);
}

.cabo-sb__more-row-selects {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--cabo-space-5);
}

.cabo-sb__more-row-ranges {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--cabo-space-5);
}

.cabo-sb__features,
.cabo-sb .sb-pop__features {
    margin-top: var(--cabo-space-5);
    padding-top: var(--cabo-space-5);
    border-top: 1px solid var(--cabo-line);
}

.cabo-sb__features .sb-checks,
.cabo-sb .sb-pop__features .sb-checks {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.cabo-sb__panel-actions,
.cabo-sb .sb-pop__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--cabo-space-4);
    margin-top: var(--cabo-space-5);
    padding-top: var(--cabo-space-4);
    border-top: 1px solid var(--cabo-line);
}

.sb-link {
    display: inline-block;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-size: var(--cabo-text-ui);
    color: var(--cabo-muted);
    text-decoration: underline;
    text-underline-offset: 3px;
    box-shadow: none;
}

.sb-link:hover {
    color: var(--cabo-ink);
}

.sb-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    min-height: 40px;
    padding: 0 var(--cabo-space-5);
    background: var(--cabo-ink);
    border: 1px solid var(--cabo-ink);
    border-radius: var(--cabo-radius-1);
    font-size: var(--cabo-text-ui);
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--cabo-white);
    cursor: pointer;
    box-shadow: none;
}

.sb-primary:hover {
    background: var(--cabo-ink-hover);
    border-color: var(--cabo-ink-hover);
    color: var(--cabo-white);
}

.cabo-sb__meta,
.cabo-sb .sb__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 32px;
    margin-top: var(--cabo-space-3);
}

.cabo-sb__chips-wrap,
.cabo-sb .sb-chips-wrap {
    display: inline-flex;
    align-items: center;
    gap: var(--cabo-space-3);
    min-width: 0;
    max-width: 100%;
}

.cabo-sb__chips,
.cabo-sb .sb-chips {
    display: inline-flex;
    align-items: center;
    gap: var(--cabo-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
    min-width: 0;
}

.cabo-sb__chip-item {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cabo-sb__chip,
.cabo-sb .sb-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 30px;
    padding: 0 10px 0 12px;
    background: var(--cabo-sand);
    border: 1px solid var(--cabo-line);
    border-radius: var(--cabo-radius-round);
    cursor: pointer;
    font-size: var(--cabo-text-ui);
    color: var(--cabo-ink);
    white-space: nowrap;
    text-decoration: none;
    transition: background-color var(--cabo-dur-fast) var(--cabo-ease), border-color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-sb__chip:hover,
.cabo-sb .sb-chip:hover {
    background: var(--cabo-stone);
    border-color: var(--cabo-line-strong);
}

.cabo-sb__chip svg,
.cabo-sb .sb-chip svg {
    width: 9px;
    height: 9px;
    stroke: var(--cabo-muted);
    stroke-width: 1.6;
    fill: none;
}

.cabo-sb__chip:hover svg,
.cabo-sb .sb-chip:hover svg {
    stroke: var(--cabo-ink);
}

.cabo-sb__chip--more,
.cabo-sb .sb-chip--more {
    background: transparent;
    padding: 0 12px;
}

.cabo-sb__chip--more:hover,
.cabo-sb .sb-chip--more:hover {
    background: var(--cabo-sand);
}

.cabo-sb__clear,
.cabo-sb .sb-clear {
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-size: var(--cabo-text-ui);
    color: var(--cabo-muted);
    text-decoration: underline;
    white-space: nowrap;
}

.cabo-sb__clear:hover,
.cabo-sb .sb-clear:hover {
    color: var(--cabo-ink);
}

.cabo-sb__chip:focus-visible,
.cabo-sb .sb-chip:focus-visible,
.cabo-sb__clear:focus-visible,
.cabo-sb .sb-clear:focus-visible {
    outline: 2px solid var(--cabo-ink);
    outline-offset: 2px;
}

.cabo-sb__chip-item--more {
    position: relative;
}

.cabo-sb__chips-panel,
.cabo-sb .sb-pop--chips {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    background: var(--cabo-white);
    border: 1px solid var(--cabo-line-strong);
    border-radius: var(--cabo-radius-1);
    box-shadow: var(--cabo-shadow-float);
    padding: var(--cabo-space-3);
    z-index: 50;
    min-width: 180px;
    max-width: 320px;
}

.cabo-sb__chips-panel-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--cabo-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.cabo-sb__tools,
.cabo-sb .sb__tools {
    display: flex;
    align-items: center;
    gap: var(--cabo-space-5);
    margin-left: auto;
}

.cabo-sb .cabo-results-count,
.cabo-sb .sb-count {
    margin: 0;
    font-size: var(--cabo-text-small);
    color: var(--cabo-muted);
    white-space: nowrap;
}

.cabo-sb .cabo-results-count strong,
.cabo-sb .sb-count strong {
    font-weight: 500;
    color: var(--cabo-ink);
}

.cabo-sb__sort,
.cabo-sb .sb-tool {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
    font-size: var(--cabo-text-ui);
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    color: var(--cabo-ink);
    white-space: nowrap;
}

.cabo-sb__sort span,
.cabo-sb .sb-tool span {
    color: var(--cabo-muted);
}

.cabo-sb .cabo-sb__save-search.sb-tool {
    padding: 0 var(--cabo-space-3);
    border: var(--cabo-border);
    border-radius: var(--cabo-radius-round);
    background: var(--cabo-white);
    transition: background var(--cabo-dur-fast) var(--cabo-ease), border-color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-sb .cabo-sb__save-search.sb-tool span {
    color: var(--cabo-ink);
}

.cabo-sb .cabo-sb__save-search.sb-tool:hover,
.cabo-sb .cabo-sb__save-search.sb-tool:focus-visible {
    background: var(--cabo-sand);
    border-color: var(--cabo-ink);
}

.cabo-sb__sort select,
.cabo-sb select#cabo-results-sort {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0 16px 0 0;
    margin: 0;
    height: 32px;
    width: auto;
    min-width: 0;
    field-sizing: content;
    font-size: var(--cabo-text-ui);
    font-weight: 400;
    color: var(--cabo-ink);
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12' fill='none' stroke='%231a1a1a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 10px 6px;
}

.cabo-sb__sort select:focus-visible {
    outline: 2px solid var(--cabo-ink);
    outline-offset: 2px;
}

.cabo-sb .cabo-view-toggle,
.cabo-sb .sb-views {
    display: inline-flex;
    align-items: center;
    height: 32px;
    background: var(--cabo-white);
    border: 1px solid var(--cabo-line-strong);
    border-radius: var(--cabo-radius-1);
    overflow: hidden;
    padding: 0;
    margin: 0;
}

.cabo-sb .cabo-view-toggle__button,
.cabo-sb .sb-view {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 32px;
    min-height: 32px;
    padding: 0 14px;
    margin: 0;
    background: var(--cabo-white);
    border: 0;
    border-left: 1px solid var(--cabo-line);
    border-radius: 0;
    cursor: pointer;
    font-size: var(--cabo-text-label);
    line-height: 1;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--cabo-ink);
    white-space: nowrap;
    box-shadow: none;
    transition: background-color var(--cabo-dur-fast) var(--cabo-ease), color var(--cabo-dur-fast) var(--cabo-ease);
}

.cabo-sb .cabo-view-toggle__button:first-child,
.cabo-sb .sb-view:first-child {
    border-left: 0;
}

.cabo-sb .cabo-view-toggle__button:hover,
.cabo-sb .sb-view:hover {
    background: var(--cabo-sand);
    color: var(--cabo-ink);
}

.cabo-sb .cabo-view-toggle__button.is-active,
.cabo-sb .sb-view.is-active {
    background: var(--cabo-ink);
    color: var(--cabo-white);
}

.cabo-sb .cabo-view-toggle__button:focus-visible,
.cabo-sb .sb-view:focus-visible {
    outline: 2px solid var(--cabo-ink);
    outline-offset: 2px;
}

/* The results start right under the bar. */
.cabo-sb + .cabo-archive__results {
    padding-top: var(--cabo-space-2);
}

.cabo-sb-intro {
    max-width: var(--cabo-measure-prose);
    margin-block: var(--cabo-space-8) var(--cabo-space-7);
}

.cabo-sb-intro h2 {
    margin: 0 0 var(--cabo-space-3);
    font-size: var(--cabo-text-h3);
    font-weight: 500;
}

.cabo-sb-intro p {
    margin: 0;
    color: var(--cabo-muted);
}

@media (max-width: 1100px) {
    .cabo-sb__filter {
        padding-inline: 13px;
        letter-spacing: .06em;
    }

    .cabo-sb__panel--more {
        width: min(760px, calc(100vw - 48px));
    }
}

@media (min-width: 768px) {
    .cabo-sb .cabo-sb-sheet,
    .cabo-sb .cabo-sb-sheet[hidden],
    .cabo-sb-sheet,
    .cabo-sb-sheet[hidden] {
        display: contents;
    }

    .cabo-sb .sb-sheet__head,
    .cabo-sb .sb-sheet__foot,
    .sb-sheet__head,
    .sb-sheet__foot {
        display: none;
    }

    .cabo-sb .sb-sheet__body,
    .sb-sheet__body {
        display: contents;
    }

    .cabo-sb .cabo-sb-m-actions,
    .cabo-sb .sb-m-actions,
    .cabo-sb-m-actions,
    .sb-m-actions {
        display: none;
    }

    .cabo-sb .cabo-sb-m-sort-menu,
    .cabo-sb-m-sort-menu {
        display: none;
    }

    .cabo-sb .cabo-sb__mobile-count,
    .cabo-sb__mobile-count {
        display: none;
    }
}

@keyframes cabo-sb-hide {
    from, to {
        display: none;
    }
}

@media (max-width: 767px) {
    .cabo-sb {
        position: sticky;
        top: var(--cabo-header-h, 56px);
        z-index: 900;
        background: var(--cabo-paper);
        border-bottom: 1px solid var(--cabo-line);
        box-sizing: border-box;
    }

    .cabo-sb__inner {
        padding-top: 6px;
        padding-bottom: 6px;
    }

    .cabo-sb__title {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        gap: var(--cabo-space-3);
        margin: 0 0 6px;
        font-size: var(--cabo-text-label);
        line-height: 1.2;
        letter-spacing: .14em;
        text-transform: uppercase;
        color: var(--cabo-muted);
    }

    .cabo-sb__mobile-count {
        display: inline-block;
        font-size: var(--cabo-text-ui);
        letter-spacing: 0;
        text-transform: none;
        color: var(--cabo-muted);
        font-weight: 400;
    }

    .cabo-sb__mobile-count strong {
        color: var(--cabo-ink);
        font-weight: 500;
    }

    .cabo-sb__row {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        margin: 0;
    }

    .cabo-sb__search,
    .cabo-sb .sb-search {
        flex: 1 1 100%;
        width: 100%;
        height: 44px;
        min-height: 44px;
        padding-inline: var(--cabo-space-3);
        margin: 0;
        box-sizing: border-box;
    }

    .cabo-sb__search input,
    .cabo-sb .sb-search input {
        height: 44px;
        min-height: 44px;
        font-size: var(--cabo-text-body);
    }

    .cabo-sb-suggest,
    .cabo-sb .sb-suggest {
        left: 0;
        right: 0;
        width: 100%;
        max-width: 100%;
        max-height: calc(100vh - 120px);
        max-height: calc(100dvh - 120px);
        box-sizing: border-box;
        box-shadow: var(--cabo-shadow-float);
    }

    .cabo-sb-suggest__item,
    .cabo-sb .sb-suggest__item {
        min-height: 44px;
        padding-top: 10px;
        padding-bottom: 10px;
        padding-inline: var(--cabo-space-4);
        align-items: center;
        box-sizing: border-box;
    }

    .cabo-sb .cabo-sb__filters,
    .cabo-sb .sb-filters,
    .cabo-sb__filters {
        display: none;
    }

    .cabo-sb-m-actions,
    .sb-m-actions {
        display: grid;
        grid-template-columns: 1.3fr 1fr 1fr;
        gap: 6px;
        width: 100%;
        margin: 0;
        box-sizing: border-box;
    }

    .sb-m-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        height: 44px;
        min-height: 44px;
        padding: 0 8px;
        background: var(--cabo-white);
        border: 1px solid var(--cabo-line-strong);
        border-radius: var(--cabo-radius-1);
        cursor: pointer;
        font-size: var(--cabo-text-label);
        letter-spacing: .1em;
        text-transform: uppercase;
        color: var(--cabo-ink);
        box-sizing: border-box;
        touch-action: manipulation;
        white-space: nowrap;
    }

    .sb-m-btn--primary {
        background: var(--cabo-ink);
        border-color: var(--cabo-ink);
        color: var(--cabo-white);
    }

    .sb-m-btn svg {
        width: 14px;
        height: 14px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.5;
        flex: none;
    }

    .cabo-sb-m-sort-wrap {
        position: relative;
        width: 100%;
    }

    .cabo-sb-m-sort-wrap .sb-m-btn {
        width: 100%;
    }

    .cabo-sb-m-sort-menu {
        position: absolute;
        top: calc(100% + 4px);
        left: 0;
        right: 0;
        min-width: 190px;
        background: var(--cabo-white);
        border: 1px solid var(--cabo-line);
        border-radius: var(--cabo-radius-1);
        box-shadow: var(--cabo-shadow-float);
        z-index: 1000;
        padding: var(--cabo-space-2) 0;
    }

    .cabo-sb-m-sort-option {
        display: flex;
        align-items: center;
        width: 100%;
        height: 44px;
        min-height: 44px;
        padding: 0 var(--cabo-space-3);
        background: transparent;
        border: 0;
        font-size: var(--cabo-text-ui);
        color: var(--cabo-ink);
        cursor: pointer;
        text-align: left;
    }

    .cabo-sb-m-sort-option.is-active {
        background: var(--cabo-sand);
        font-weight: 600;
    }

    .cabo-sb__meta {
        margin-top: 6px;
        margin-bottom: 0;
        padding: 0;
        overflow: hidden;
        width: 100%;
        display: block;
    }

    .cabo-sb .cabo-sb__meta.is-empty,
    .cabo-sb .sb__meta.is-empty,
    .cabo-sb .cabo-sb__meta:empty,
    .cabo-sb .sb__meta:empty,
    .cabo-sb__meta.is-empty,
    .cabo-sb__meta:empty {
        display: none;
    }

    .cabo-sb__chips-wrap {
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .cabo-sb__chips-wrap::-webkit-scrollbar {
        display: none;
    }

    .cabo-sb__chips,
    .cabo-sb .sb-chips {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        gap: 6px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .cabo-sb__chips::-webkit-scrollbar {
        display: none;
    }

    .cabo-sb__chip,
    .cabo-sb .sb-chip {
        flex: 0 0 auto;
        height: 44px;
        min-height: 44px;
        padding: 0 14px;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        border-radius: var(--cabo-radius-1);
        font-size: var(--cabo-text-label);
        box-sizing: border-box;
    }

    .cabo-sb .js-sb-more-toggle,
    .cabo-sb .sb-chip--more,
    .cabo-sb .js-sb-chips-panel {
        display: none;
    }

    .cabo-sb .cabo-sb__clear,
    .cabo-sb .sb-clear,
    .cabo-sb__clear {
        display: none;
    }

    .cabo-sb .cabo-sb__tools,
    .cabo-sb .sb-nav,
    .cabo-sb__tools {
        display: none;
        animation: cabo-sb-hide 0.001s linear infinite;
    }

    .cabo-sb-sheet {
        display: none;
    }

    .cabo-sb .cabo-sb-sheet.is-open,
    .cabo-sb-sheet.is-open {
        position: fixed;
        inset: 0;
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        z-index: 2000;
        display: flex;
        flex-direction: column;
        background: var(--cabo-white);
        color: var(--cabo-ink);
        box-sizing: border-box;
    }

    .cabo-sb .sb-sheet__head,
    .sb-sheet__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 56px;
        min-height: 56px;
        padding: 0 var(--cabo-gutter);
        border-bottom: 1px solid var(--cabo-line);
        flex: none;
    }

    /* A paragraph, not a heading: on a single listing the bar comes before the page's
       H1, and a heading here would start the page's outline at the wrong level. */
    .cabo-sb .sb-sheet__head .sb-sheet__title,
    .sb-sheet__head .sb-sheet__title {
        margin: 0;
        font-weight: 500;
        font-size: var(--cabo-text-h4);
        color: var(--cabo-ink);
    }

    .cabo-sb .sb-sheet__close,
    .sb-sheet__close {
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: none;
        border: 0;
        color: var(--cabo-ink);
        cursor: pointer;
        padding: 0;
        margin-right: -10px;
    }

    .cabo-sb .sb-sheet__close svg,
    .sb-sheet__close svg {
        width: 16px;
        height: 16px;
        stroke: currentColor;
    }

    .cabo-sb .sb-sheet__body,
    .sb-sheet__body {
        flex: 1 1 auto;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: 0 var(--cabo-gutter);
    }

    .cabo-sb .cabo-sb-sheet .cabo-sb__panel,
    .cabo-sb .cabo-sb-sheet .sb-pop,
    .cabo-sb-sheet .cabo-sb__panel,
    .cabo-sb-sheet .sb-pop {
        display: block;
        position: static;
        top: auto;
        left: auto;
        right: auto;
        width: 100%;
        box-shadow: none;
        border: 0;
        padding: 0;
        background: transparent;
    }

    .cabo-sb .cabo-sb-sheet .cabo-sb__panel-actions,
    .cabo-sb .cabo-sb-sheet .sb-pop__foot,
    .cabo-sb-sheet .cabo-sb__panel-actions,
    .cabo-sb-sheet .sb-pop__foot {
        display: none;
    }

    .cabo-sb .cabo-sb-sheet .sb-sheet__sec,
    .cabo-sb--home .cabo-sb-sheet .sb-sheet__sec,
    .cabo-sb-sheet .sb-sheet__sec,
    .cabo-sb .sb-sheet__sec,
    .sb-sheet__sec {
        padding: var(--cabo-space-4) 0;
        border-bottom: 1px solid var(--cabo-line);
        margin: 0;
    }

    .cabo-sb .cabo-sb-sheet .cabo-sb__panel--more .sb-sheet__sec:last-child,
    .cabo-sb-sheet .cabo-sb__panel--more .sb-sheet__sec:last-child {
        border-bottom: 0;
    }

    .cabo-sb .cabo-sb__type-cols,
    .cabo-sb .sb-pop__cols,
    .cabo-sb__type-cols {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .cabo-sb .cabo-sb__more-grid,
    .cabo-sb .sb-pop__grid,
    .cabo-sb__more-grid {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .cabo-sb .cabo-sb__more-row-selects,
    .cabo-sb .cabo-sb__more-row-ranges,
    .cabo-sb__more-row-selects,
    .cabo-sb__more-row-ranges {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .cabo-sb .cabo-sb-sheet .cabo-sb__features,
    .cabo-sb .cabo-sb-sheet .sb-pop__features,
    .cabo-sb-sheet .cabo-sb__features,
    .cabo-sb-sheet .sb-pop__features {
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }

    .cabo-sb-sheet .cabo-sb__range {
        gap: var(--cabo-space-2);
    }

    .cabo-sb .cabo-sb-sheet .cabo-sb__range input,
    .cabo-sb-sheet .cabo-sb__range input {
        height: 44px;
        min-height: 44px;
        font-size: var(--cabo-text-body);
    }

    .cabo-sb .sb-sheet .sb-seg,
    .cabo-sb .cabo-sb-sheet .cabo-sb__segments,
    .cabo-sb .cabo-sb-sheet .cabo-sb__segmented,
    .sb-sheet .sb-seg,
    .cabo-sb-sheet .cabo-sb__segments,
    .cabo-sb-sheet .cabo-sb__segmented {
        display: flex;
        width: 100%;
    }

    .cabo-sb .sb-sheet .sb-seg button,
    .cabo-sb .cabo-sb-sheet .cabo-sb__segments button,
    .cabo-sb .cabo-sb-sheet .cabo-sb__segmented button,
    .sb-sheet .sb-seg button,
    .cabo-sb-sheet .cabo-sb__segments button,
    .cabo-sb-sheet .cabo-sb__segmented button {
        flex: 1;
        min-width: 0;
        height: 44px;
        min-height: 44px;
        padding: 0;
        font-size: var(--cabo-text-small);
    }

    .cabo-sb .sb-sheet .sb-checks,
    .cabo-sb .cabo-sb-sheet .cabo-sb__checks,
    .cabo-sb .cabo-sb-sheet .cabo-sb__options,
    .sb-sheet .sb-checks,
    .cabo-sb-sheet .cabo-sb__checks,
    .cabo-sb-sheet .cabo-sb__options {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--cabo-space-2);
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .cabo-sb .sb-sheet .sb-check,
    .cabo-sb .cabo-sb-sheet .cabo-sb__checks label,
    .cabo-sb .cabo-sb-sheet .cabo-sb__options label,
    .sb-sheet .sb-check,
    .cabo-sb-sheet .cabo-sb__checks label,
    .cabo-sb-sheet .cabo-sb__options label {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        cursor: pointer;
    }

    .cabo-sb .cabo-sb-sheet select.cabo-sb__select,
    .cabo-sb .cabo-sb-sheet select.sb-select,
    .cabo-sb-sheet select.cabo-sb__select,
    .cabo-sb-sheet select.sb-select {
        width: 100%;
        height: 44px;
        min-height: 44px;
        font-size: var(--cabo-text-body);
    }

    .cabo-sb .sb-sheet__foot,
    .sb-sheet__foot {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--cabo-space-4);
        padding: var(--cabo-space-3) var(--cabo-gutter);
        border-top: 1px solid var(--cabo-line);
        background: var(--cabo-white);
        flex: none;
    }

    .cabo-sb .sb-sheet__foot .sb-link,
    .sb-sheet__foot .sb-link {
        height: 44px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 16px;
        cursor: pointer;
        background: none;
        border: 0;
        font-size: var(--cabo-text-small);
        color: var(--cabo-muted);
        text-decoration: underline;
    }

    .cabo-sb .sb-sheet__foot .sb-primary,
    .sb-sheet__foot .sb-primary {
        height: 44px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 20px;
        background: var(--cabo-ink);
        color: var(--cabo-white);
        border: 1px solid var(--cabo-ink);
        border-radius: var(--cabo-radius-1);
        cursor: pointer;
        font-size: var(--cabo-text-small);
        font-weight: 500;
    }

    .cabo-archive .cabo-archive__results,
    .cabo-archive__results {
        padding-top: 12px;
    }
}

html.cabo-sheet-open,
html.cabo-sheet-open body,
body.cabo-sheet-open,
.cabo-sheet-open,
.cabo-sheet-open body {
    overflow: hidden;
    touch-action: none;
}

.cabo-sheet-open .cabo-sb,
.cabo-sb:has(.cabo-sb-sheet.is-open) {
    z-index: 2100;
}

/* Fieldsets group the radios for assistive tech; they carry no box of their own. */
.cabo-sb fieldset {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.cabo-sb fieldset > legend {
    float: left;
    width: 100%;
}

.cabo-sb fieldset > legend + * {
    clear: both;
}

/* The suggestion list sits inside the search field's label, so it must not inherit
   the label's uppercase, tracked style. Rows are normal text; only the group headings
   keep the small label style. */
.cabo-sb-suggest,
.cabo-sb .sb-suggest {
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}

.cabo-sb-suggest__item,
.cabo-sb .sb-suggest__item,
.cabo-sb-suggest__item small,
.cabo-sb .sb-suggest__item small {
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}

.cabo-sb-suggest__item b,
.cabo-sb .sb-suggest__item b {
    font-weight: 500;
}

.cabo-sb-suggest__group,
.cabo-sb .sb-suggest__group {
    font-size: var(--cabo-text-label);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--cabo-muted);
}

/* Single listing search bar layout */
.sb--single .sb__meta,
.cabo-sb--single .cabo-sb__meta {
    gap: var(--cabo-space-4);
    display: flex;
    align-items: center;
}

.sb-back,
.cabo-sb__back {
    flex: none;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    font-size: var(--cabo-text-ui);
    color: var(--cabo-ink);
    white-space: nowrap;
}

.sb-back svg,
.sb-nav svg,
.cabo-sb__back svg {
    width: 12px;
    height: 12px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
}

.sb-nav,
.cabo-sb__tools.sb-nav {
    display: flex;
    align-items: center;
    gap: var(--cabo-space-4);
    margin-left: auto;
    flex: none;
}

.sb-nav .sb-tool,
.cabo-sb-nav .sb-tool {
    text-decoration: none;
    cursor: pointer;
}

.cabo-property-detail-page .cabo-sb a[hidden],
.cabo-archive .cabo-sb a[hidden],
.cabo-home .cabo-sb a[hidden],
.cabo-sb .cabo-sb__inner .cabo-sb__meta .cabo-sb__tools a[hidden],
.cabo-sb .cabo-sb__inner .cabo-sb__meta .cabo-sb__tools .sb-tool[hidden],
.cabo-sb .sb-tool[hidden],
.cabo-sb .sb-nav .sb-tool[hidden],
.cabo-sb .cabo-sb-nav .sb-tool[hidden],
.sb-nav .sb-tool[hidden],
.cabo-sb-nav .sb-tool[hidden] {
    display: none;
}

@media (max-width: 767px) {
    .cabo-sb.sb--single .cabo-sb__search,
    .cabo-sb.cabo-sb--single .cabo-sb__search,
    .cabo-sb.sb--single .cabo-sb__meta,
    .cabo-sb.cabo-sb--single .cabo-sb__meta,
    .cabo-sb.sb--single .cabo-sb__title,
    .cabo-sb.cabo-sb--single .cabo-sb__title,
    .sb--single .cabo-sb__search,
    .cabo-sb--single .cabo-sb__search,
    .sb--single .cabo-sb__meta,
    .cabo-sb--single .cabo-sb__meta,
    .sb--single .cabo-sb__title,
    .cabo-sb--single .cabo-sb__title {
        display: none;
    }

    .cabo-sb.sb--single .cabo-sb-m-actions,
    .cabo-sb.cabo-sb--single .cabo-sb-m-actions,
    .cabo-sb.sb--single .sb-m-actions,
    .cabo-sb.cabo-sb--single .sb-m-actions,
    .sb--single .cabo-sb-m-actions,
    .cabo-sb--single .cabo-sb-m-actions,
    .sb--single .sb-m-actions,
    .cabo-sb--single .sb-m-actions {
        display: grid;
        grid-template-columns: 1.2fr 1.2fr 0.8fr;
        gap: 6px;
        width: 100%;
        margin: 0;
        box-sizing: border-box;
    }

    .sb--single a.sb-m-btn,
    .cabo-sb--single a.sb-m-btn {
        text-decoration: none;
    }
}

/* ---------- Homepage hero search (same control, plus a Search button) ---------- */
.sb-home-card,
.cabo-sb--home {
    position: relative;
    top: auto;
    z-index: 2;
    padding: var(--cabo-space-4);
    background: var(--cabo-white);
    border: 1px solid var(--cabo-line);
    border-radius: var(--cabo-radius-0);
    box-shadow: none;
    width: min(1120px, 100%);
    margin-inline: auto;
    box-sizing: border-box;
}

.cabo-sb--home .cabo-sb__inner,
.cabo-sb--home .cabo-sb__inner--home {
    padding-block: 0;
    width: 100%;
}

.cabo-sb--home .sb__row,
.cabo-sb--home .cabo-sb__row {
    gap: var(--cabo-space-3);
    align-items: stretch;
}

.cabo-sb--home .sb-search,
.cabo-sb--home .cabo-sb__search,
.cabo-sb--home .sb-filters,
.cabo-sb--home .cabo-sb__filters {
    height: 56px;
}

.cabo-sb--home .cabo-sb__filter,
.cabo-sb--home .sb-filter {
    height: 56px;
}

.sb-home-go,
.cabo-sb-home-go {
    flex: none;
    height: 56px;
    padding: 0 32px;
}

.cabo-sb--home .cabo-sb__more-baths {
    margin-top: var(--cabo-space-3);
}

.cabo-sb.cabo-sb--home .cabo-sb__meta,
.cabo-sb.cabo-sb--home .sb__meta,
.cabo-sb--home .cabo-sb__meta,
.cabo-sb--home .sb__meta {
    display: none;
}

@media (max-width: 767px) {
    .sb-home-card,
    .cabo-sb--home {
        padding: var(--cabo-space-3);
    }

    .cabo-sb--home .sb-search,
    .cabo-sb--home .cabo-sb__search {
        height: 48px;
    }

    .cabo-sb .sb-m-actions--home,
    .cabo-sb .cabo-sb-m-actions--home,
    .sb-m-actions--home,
    .cabo-sb-m-actions--home {
        display: grid;
        grid-template-columns: 1fr 1.4fr;
        gap: 6px;
        width: 100%;
    }

    .cabo-sb--home .sb-m-btn {
        height: 48px;
        min-height: 48px;
    }

    .cabo-sb.cabo-sb--home .sb-home-go,
    .cabo-sb.cabo-sb--home .cabo-sb-home-go,
    .cabo-sb--home .sb-home-go,
    .cabo-sb--home .cabo-sb-home-go {
        display: none;
    }
}

/* Previous/Next keep their place in the row when there is no neighbour. */
.cabo-sb .cabo-sb-is-invisible {
    visibility: hidden;
}
