/* Keep the large HivePress header search hidden, as on fix246 before the redesign. */
body.fix246-lx--cards .hp-form--listing-search {
    display: none !important;
}

body.fix246-lx--cards .hp-page__header .hp-form--listing-search {
    margin-bottom: 1.5rem;
    padding: 0.55rem;
    border: 1px solid var(--fix246-lx-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(11, 22, 41, 0.055);
}

body.fix246-lx--cards .hp-form--listing-search :where(select, input:not([type="hidden"])) {
    min-height: 46px;
    border-color: #dce3eb;
    border-radius: 11px !important;
    background: #fbfcfe;
}

body.fix246-lx--cards .hp-form--listing-search button[type="submit"] {
    min-height: 46px;
    border-radius: 11px !important;
    box-shadow: none;
}

@media (min-width: 48.01rem) {
    body.fix246-lx--cards .hp-widget--listing-filter {
        padding: 1.2rem;
        border: 1px solid var(--fix246-lx-line);
        border-radius: var(--fix246-lx-radius);
        background: #fff;
        box-shadow: 0 8px 24px rgba(11, 22, 41, 0.05);
    }

    body.fix246-lx--cards .hp-widget--listing-filter .hp-form__field {
        margin-bottom: 1.15rem;
    }

    body.fix246-lx--cards .hp-widget--listing-filter .hp-form__label {
        margin-bottom: 0.55rem;
        color: var(--fix246-lx-ink);
        font-size: 0.88rem;
    }

    body.fix246-lx--cards .hp-widget--listing-filter :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, textarea),
    body.fix246-lx--cards .hp-widget--listing-filter .select2-selection {
        border-radius: 10px !important;
    }

    body.fix246-lx--cards .hp-widget--listing-filter button[type="submit"] {
        width: 100%;
        min-height: 44px;
        border-radius: 11px !important;
    }
}

body.fix246-lx--cards .hp-page__topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 46px;
    margin-bottom: 1rem;
    padding: 0.15rem 0.1rem 0.75rem;
    border-bottom: 1px solid var(--fix246-lx-line);
}

body.fix246-lx--cards .hp-result-count {
    color: var(--fix246-lx-muted);
    font-size: 0.82rem;
}

body.fix246-lx--cards .hp-form--listing-sort .hp-form__label {
    color: var(--fix246-lx-muted);
    font-size: 0.76rem;
}

body.fix246-lx--cards .hp-form--listing-sort select {
    border-radius: 9px !important;
    color: var(--fix246-lx-ink);
}

/* One calm, horizontal result per row. */
body.fix246-lx--cards .hp-page__content .hp-listings.hp-grid > .hp-row {
    display: block;
    margin-right: 0;
    margin-left: 0;
}

body.fix246-lx--cards .hp-page__content .hp-listings.hp-grid > .hp-row > .hp-grid__item {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 1rem;
    padding-right: 0;
    padding-left: 0;
}

body.fix246-lx--cards .hp-listing--view-block.fix246-lx-card {
    position: relative !important;
    display: grid;
    grid-template-columns: 164px minmax(0, 1fr);
    grid-template-rows: auto auto;
    grid-template-areas:
        "media content"
        "media footer";
    min-height: 156px;
    margin: 0;
    overflow: hidden !important;
    border: 1px solid var(--fix246-lx-line) !important;
    border-radius: var(--fix246-lx-radius) !important;
    background: var(--fix246-lx-card);
    box-shadow: 0 7px 22px rgba(11, 22, 41, 0.055) !important;
    transition: border-color 180ms ease, box-shadow 180ms ease;
}

body.fix246-lx--cards .hp-listing--view-block.fix246-lx-card:hover {
    border-color: #d4dce7 !important;
    box-shadow: var(--fix246-lx-shadow) !important;
}

body.fix246-lx--cards .fix246-lx-card > .hp-listing__header {
    position: relative;
    grid-area: media;
    min-width: 0;
    height: 100%;
    margin: 0;
    overflow: hidden;
    background: #f0f4f8;
}

body.fix246-lx--cards .fix246-lx-card > .hp-listing__content {
    grid-area: content;
    min-width: 0;
    padding: 1.05rem 1.15rem 0.45rem;
}

body.fix246-lx--cards .fix246-lx-card > .hp-listing__footer {
    grid-area: footer;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 0.5rem;
    min-width: 0;
    margin: 0;
    padding: 0.2rem 1.15rem 0.9rem;
    border: 0;
    background: transparent;
}

/* Service Offerings use provider identity as the visual anchor. */
body.fix246-lx--cards .fix246-lx-card--service > .hp-listing__header {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: linear-gradient(145deg, #f7fafc, #eef4f8);
}

/* Expanded availability can make a result card much taller. Keep the provider
   identity anchored near the top instead of letting it drift into the middle
   of a three-week calendar. */
body.fix246-lx--cards.fix246-availability-is-visible .fix246-lx-card--service > .hp-listing__header {
    align-items: flex-start;
    padding-top: 1.15rem;
}

/* The round identity area is always static. HivePress' native listing image
   block can contain a Slick carousel, so it must never be used inside it. */
body.fix246-lx--cards .fix246-lx-card--service > .hp-listing__header > .hp-listing__image {
    display: none !important;
}

body.fix246-lx--cards .fix246-lx-provider-media,
body.fix246-lx--cards .fix246-lx-provider-placeholder {
    width: 112px;
    height: 112px;
    min-width: 112px;
    min-height: 112px;
    margin: 0;
    overflow: hidden;
    border: 4px solid #fff;
    border-radius: 50% !important;
    background: #fff;
    box-shadow: 0 6px 18px rgba(11, 22, 41, 0.12);
}

body.fix246-lx--cards .fix246-lx-provider-media a,
body.fix246-lx--cards .fix246-lx-provider-placeholder a {
    display: block;
    width: 100%;
    height: 100%;
}

body.fix246-lx--cards .fix246-lx-provider-media img {
    display: block;
    box-sizing: border-box;
    width: 100% !important;
    height: 100% !important;
    margin: 0;
    padding: 0;
    object-fit: cover;
    object-position: center;
    border: 0;
    border-radius: 50%;
}

body.fix246-lx--cards .fix246-lx-provider-placeholder {
    background: linear-gradient(145deg, #104291, #17cd73);
}

body.fix246-lx--cards .fix246-lx-provider-placeholder a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    text-decoration: none;
}

body.fix246-lx--cards .fix246-lx-provider-placeholder span {
    font-family: Poppins, sans-serif;
    font-size: 1.65rem;
    letter-spacing: -0.04em;
    line-height: 1;
}

/* Job Requests remain deliberately rectangular and photo-led. */
body.fix246-lx--cards .fix246-lx-card--job > .hp-listing__header,
body.fix246-lx--cards .fix246-lx-card--job > .hp-listing__header > .hp-listing__image,
body.fix246-lx--cards .fix246-lx-card--job > .hp-listing__header > .hp-listing__image > a {
    display: block;
    width: 100%;
    height: 100%;
}

/* A Job Request card grows with its text. Propagate that resulting height
   through HivePress' optional Slick wrappers so the preview photo always
   fills the complete media column instead of leaving its grey background
   visible below a naturally sized image. */
body.fix246-lx--cards .fix246-lx-card--job > .hp-listing__header > .hp-listing__image {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

body.fix246-lx--cards .fix246-lx-card--job > .hp-listing__header > .hp-listing__image :where(
    .hp-listing__image-slider,
    .slick-list,
    .slick-track,
    .slick-slide,
    .slick-slide > div,
    a,
    picture
) {
    height: 100% !important;
}

body.fix246-lx--cards .fix246-lx-card--job > .hp-listing__header > .hp-listing__image > .hp-listing__image-slider {
    width: 100%;
    margin: 0;
}

body.fix246-lx--cards .fix246-lx-card--job > .hp-listing__header > .hp-listing__image :where(a, picture) {
    display: block;
}

body.fix246-lx--cards .fix246-lx-card--job > .hp-listing__header > .hp-listing__image img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    min-height: 156px;
    margin: 0;
    object-fit: cover;
}

body.fix246-lx--cards .fix246-lx-card--job > .hp-listing__header::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 32%;
    pointer-events: none;
    background: linear-gradient(transparent, rgba(11, 22, 41, 0.08));
}

/* Category/type labels are useful on the detail page, but redundant on result
   cards because the surrounding archive already supplies that context. */
body.fix246-lx--cards .fix246-lx-card .hp-listing__categories {
    display: none !important;
}

/* Card typography and compact metadata. */

body.fix246-lx--cards .fix246-lx-card .hp-listing__title {
    margin: 0;
    color: var(--fix246-lx-ink);
    font-size: 1.04rem;
    line-height: 1.35;
}

body.fix246-lx--cards .fix246-lx-card .hp-listing__created-date {
    display: none;
}

body.fix246-lx--cards .fix246-lx-card .hp-listing__details--primary:empty,
body.fix246-lx--cards .fix246-lx-card .hp-listing__attributes--ternary:empty {
    display: none;
}

body.fix246-lx--cards .fix246-lx-card .hp-listing__attributes--ternary {
    margin-top: 0.6rem;
    color: var(--fix246-lx-text);
    font-size: 0.79rem;
    line-height: 1.45;
}

body.fix246-lx--cards .fix246-lx-card .hp-listing__attributes--ternary b,
body.fix246-lx--cards .fix246-lx-card .hp-listing__attributes--ternary strong {
    color: var(--fix246-lx-ink) !important;
}

/* Keep the original Show availability feature functional on result cards. */
body.fix246-lx--cards .fix246-lx-card .hp-listing__attributes--primary {
    margin-top: 0.6rem;
}

body.fix246-lx--cards .fix246-lx-card :where(
    .hp-listing__attribute--accounttype,
    .hp-listing__attribute--accounttypejobrequest
) {
    display: none !important;
}

body.fix246-lx--cards .fix246-lx-card .fix246-availability-display {
    flex: 0 0 100%;
    order: -1;
    width: 100%;
    margin-top: 0.7rem;
    padding: 0.8rem;
    border-radius: 10px;
}

body.fix246-lx--cards .fix246-lx-card .fix246-availability-calendar {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 0;
}

body.fix246-lx--cards .fix246-lx-card .fix246-availability-card {
    min-width: 0;
}

/* Preserve and tidy the original sidebar Show/Hide availability controls. */
body.fix246-lx--cards .fix246-toggle-availability-display {
    border-radius: 10px !important;
}

body.fix246-lx--cards .fix246-toggle-availability-display:hover,
body.fix246-lx--cards .fix246-toggle-availability-display:focus,
body.fix246-lx--cards .fix246-toggle-availability-display:active {
    transform: none;
}

body.fix246-lx--cards .fix246-availability-legend {
    border-radius: 10px;
}

body.fix246-lx--cards .fix246-availability-legend__color {
    border-radius: 50% !important;
}

body.fix246-lx--cards .fix246-lx-card .hp-listing__actions--primary {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: auto;
}

body.fix246-lx--cards .fix246-lx-card .hp-listing__actions--primary > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin: 0;
    border: 1px solid var(--fix246-lx-line);
    border-radius: 50%;
    background: #fff;
    color: #657186;
    text-decoration: none;
    transition: color 160ms ease, border-color 160ms ease, background 160ms ease;
}

body.fix246-lx--cards .fix246-lx-card .hp-listing__actions--primary > a:hover {
    border-color: rgba(16, 66, 145, 0.25);
    background: rgba(16, 66, 145, 0.055);
    color: var(--fix246-lx-blue);
}

/* Replace the old diagonal ribbons and green borders with quiet status pills. */
body.fix246-lx--cards .hp-listing--view-block.fix246-business-listing,
body.fix246-lx--cards .hp-listing--view-block.fix246-business-listing.fix246-commercial-client-listing {
    overflow: hidden !important;
    border: 1px solid var(--fix246-lx-line) !important;
    box-shadow: 0 7px 22px rgba(11, 22, 41, 0.055) !important;
}

body.fix246-lx--cards .hp-listing--view-block.fix246-business-listing::before {
    content: "Business";
    position: absolute;
    z-index: 12;
    top: 14px;
    right: 14px;
    width: auto;
    padding: 0.34rem 0.58rem;
    border-radius: 999px;
    background: var(--fix246-lx-green);
    box-shadow: none;
    color: #fff;
    font-size: 0.62rem;
    letter-spacing: 0.035em;
    line-height: 1;
    text-transform: uppercase;
    transform: none;
}

body.fix246-lx--cards .hp-listing--view-block.fix246-business-listing.fix246-commercial-client-listing::before {
    content: "Commercial";
    background: var(--fix246-lx-blue);
}

body.fix246-lx--cards .hp-listing--view-block.fix246-business-listing > .hp-listing__content {
    padding-top: 3rem;
}

body.fix246-lx--cards .fix246-lx-card .hp-listing__featured-badge {
    top: 10px;
    right: auto;
    left: 10px;
    z-index: 8;
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(11, 22, 41, 0.13);
}

/* Advertising stays fully owned by Advertising Manager. This only gives it air. */
body.fix246-lx--cards .hp-page__sidebar > .widget_fix246_ad_widget {
    margin-top: 1.25rem;
}

body.fix246-lx--cards .hp-pagination {
    margin-top: 1.5rem;
}

body.fix246-lx--cards .hp-pagination :where(a, span) {
    border-radius: 10px;
}

@media (max-width: 48rem) {
    body.fix246-lx--cards .hp-page__header .hp-form--listing-search {
        padding: 0.45rem;
        border-radius: 14px;
    }

    body.fix246-lx--cards .hp-page__topbar {
        align-items: flex-start;
        margin-top: 0.8rem;
    }

    body.fix246-lx--cards .hp-listing--view-block.fix246-lx-card {
        grid-template-columns: 104px minmax(0, 1fr);
        min-height: 132px;
        border-radius: 15px !important;
    }

    body.fix246-lx--cards .fix246-lx-card > .hp-listing__content {
        padding: 0.8rem 0.85rem 0.3rem;
    }

    body.fix246-lx--cards .fix246-lx-card > .hp-listing__footer {
        padding: 0.15rem 0.85rem 0.65rem;
    }

    body.fix246-lx--cards .fix246-lx-provider-media,
    body.fix246-lx--cards .fix246-lx-provider-placeholder {
        width: 76px;
        height: 76px;
        min-width: 76px;
        min-height: 76px;
        border-width: 3px;
    }

    body.fix246-lx--cards .fix246-lx-card--job > .hp-listing__header > .hp-listing__image img {
        min-height: 132px;
    }

    body.fix246-lx--cards .fix246-lx-card .hp-listing__title {
        font-size: 0.94rem;
    }

    body.fix246-lx--cards .fix246-lx-provider-line {
        font-size: 0.73rem;
    }

    body.fix246-lx--cards .fix246-lx-provider-line span {
        display: none;
    }

    body.fix246-lx--cards .fix246-lx-card .hp-listing__attributes--ternary {
        margin-top: 0.4rem;
        font-size: 0.7rem;
    }

    body.fix246-lx--cards .fix246-lx-card .fix246-availability-display {
        padding: 0.5rem;
    }

    body.fix246-lx--cards .fix246-lx-card .fix246-availability-calendar {
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        gap: 0;
    }

    body.fix246-lx--cards .fix246-lx-card .hp-listing__actions--primary > a {
        width: 30px;
        height: 30px;
    }

    body.fix246-lx--cards .hp-listing--view-block.fix246-business-listing::before {
        top: 8px;
        right: 8px;
        padding: 0.28rem 0.45rem;
        font-size: 0.55rem;
    }

    body.fix246-lx--cards .hp-listing--view-block.fix246-business-listing > .hp-listing__content {
        padding-top: 2.55rem;
    }
}

@media (max-width: 25rem) {
    body.fix246-lx--cards .hp-listing--view-block.fix246-lx-card {
        grid-template-columns: 92px minmax(0, 1fr);
    }

    body.fix246-lx--cards .fix246-lx-provider-media,
    body.fix246-lx--cards .fix246-lx-provider-placeholder {
        width: 68px;
        height: 68px;
        min-width: 68px;
        min-height: 68px;
    }

    /* Give the seven-column calendar the full card width on narrow phones.
       Only the outer Availability presentation box is flattened; the calendar
       keeps its own border, background and internal cell structure. */
    body.fix246-lx--cards .fix246-lx-card .fix246-availability-display {
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }
}
