
.stdf-directory,
.stdf-single {
    --stdf-border: #d9d9d9;
    --stdf-muted: #666;
    --stdf-soft: #f5f5f3;
    --stdf-dark: #1b1b1b;
    --stdf-radius: 18px;
    max-width: 1120px;
    margin: 0 auto;
}

.stdf-directory * ,
.stdf-single * {
    box-sizing: border-box;
}

.stdf-hero {
    padding: clamp(24px, 5vw, 56px);
    border: 1px solid var(--stdf-border);
    border-radius: 28px;
    background: #fafaf8;
    margin-bottom: 28px;
}

.stdf-kicker {
    margin: 0 0 8px;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--stdf-muted);
}

.stdf-hero h2,
.stdf-single h2 {
    margin: 0 0 8px;
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: 1;
    letter-spacing: -0.03em;
}

.stdf-hero > p:not(.stdf-kicker) {
    margin-top: 12px;
    color: var(--stdf-muted);
}

.stdf-search-form {
    margin-top: 26px;
}

.stdf-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
}

.stdf-search-row input,
.stdf-filter-row select {
    width: 100%;
    border: 1px solid var(--stdf-border);
    border-radius: 12px;
    background: white;
    padding: 13px 14px;
    font: inherit;
}

.stdf-search-row button {
    border: 0;
    border-radius: 12px;
    padding: 0 22px;
    background: var(--stdf-dark);
    color: white;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.stdf-filter-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.stdf-filter-row label span {
    display: block;
    margin: 0 0 5px;
    color: var(--stdf-muted);
    font-size: .82rem;
}

.stdf-category-chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.stdf-category-chips a,
.stdf-badge {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--stdf-border);
    border-radius: 999px;
    padding: 7px 11px;
    background: white;
    color: var(--stdf-dark);
    text-decoration: none;
    font-size: .88rem;
}

.stdf-results-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin: 0 0 14px;
}

.stdf-results-head a,
.stdf-back {
    color: inherit;
}

.stdf-results {
    display: grid;
    gap: 14px;
}

.stdf-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    border: 1px solid var(--stdf-border);
    border-radius: var(--stdf-radius);
    padding: 22px;
    background: white;
}

.stdf-card-eyebrow {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    align-items: center;
    color: var(--stdf-muted);
    font-size: .88rem;
}

.stdf-card-title {
    margin: 6px 0 10px;
    font-size: clamp(1.25rem, 3vw, 1.7rem);
    line-height: 1.15;
}

.stdf-card-description {
    margin: 0 0 12px;
    color: var(--stdf-muted);
}

.stdf-community-placeholder,
.stdf-community-large {
    margin: 12px 0;
    padding: 10px 12px;
    border-radius: 12px;
    background: var(--stdf-soft);
}

.stdf-community-score {
    font-weight: 700;
}

.stdf-meta {
    display: flex;
    gap: 10px 16px;
    flex-wrap: wrap;
    color: var(--stdf-muted);
    font-size: .92rem;
}

.stdf-card-actions {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    min-width: 92px;
}

.stdf-action-link,
.stdf-primary-action,
.stdf-secondary-action {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 10px;
    padding: 10px 14px;
    text-decoration: none;
    font-weight: 700;
}

.stdf-action-link,
.stdf-secondary-action {
    border: 1px solid var(--stdf-border);
    color: var(--stdf-dark);
    background: white;
}

.stdf-view-link,
.stdf-primary-action {
    background: var(--stdf-dark);
    color: white;
    border: 1px solid var(--stdf-dark);
}

.stdf-empty {
    padding: 28px;
    border: 1px dashed var(--stdf-border);
    border-radius: var(--stdf-radius);
}

.stdf-single {
    padding-block: 20px 50px;
}

.stdf-single-location {
    color: var(--stdf-muted);
}

.stdf-community-large {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 24px 0;
    padding: 18px;
}

.stdf-community-large span {
    color: var(--stdf-muted);
}

.stdf-single-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
    gap: 34px;
}

.stdf-single-grid aside {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.stdf-info-box {
    border: 1px solid var(--stdf-border);
    border-radius: var(--stdf-radius);
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.stdf-info-box strong {
    font-size: 1.8rem;
}

@media (max-width: 720px) {
    .stdf-filter-row,
    .stdf-single-grid {
        grid-template-columns: 1fr;
    }

    .stdf-card {
        grid-template-columns: 1fr;
    }

    .stdf-card-actions {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
    }
}

@media (max-width: 520px) {
    .stdf-search-row {
        grid-template-columns: 1fr;
    }

    .stdf-search-row button {
        padding: 13px 18px;
    }

    .stdf-hero {
        border-radius: 20px;
        padding: 22px;
    }
}


/* v0.3.1 card refinements */
.stdf-card {
    grid-template-columns: minmax(0, 1fr) minmax(235px, 300px);
    align-items: stretch;
}

.stdf-card-description {
    font-size: 1rem;
    color: var(--stdf-dark);
    max-width: 720px;
}

.stdf-subcategories {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 12px;
}

.stdf-subcategories span {
    display: inline-flex;
    border: 1px solid var(--stdf-border);
    border-radius: 999px;
    padding: 4px 9px;
    color: var(--stdf-muted);
    font-size: .8rem;
    background: #fff;
}

.stdf-card-side {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 1fr auto;
    column-gap: 12px;
    align-items: end;
}

.stdf-hours {
    align-self: center;
    min-width: 0;
    color: var(--stdf-muted);
    font-size: .84rem;
}

.stdf-hours-label {
    display: block;
    margin-bottom: 2px;
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.stdf-hours strong {
    display: block;
    color: var(--stdf-dark);
    font-size: .9rem;
    line-height: 1.25;
}

.stdf-card-actions {
    grid-column: 2;
    grid-row: 1;
    flex-direction: column;
    align-self: center;
}

.stdf-community-mini {
    grid-column: 2;
    grid-row: 2;
    justify-self: end;
    margin-top: 10px;
    color: var(--stdf-muted);
    font-size: .72rem;
    white-space: nowrap;
}

@media (max-width: 760px) {
    .stdf-card {
        grid-template-columns: 1fr;
    }

    .stdf-card-side {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .stdf-card-actions {
        flex-direction: row;
    }
}

@media (max-width: 460px) {
    .stdf-card-side {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .stdf-card-actions,
    .stdf-community-mini {
        grid-column: 1;
    }

    .stdf-card-actions {
        grid-row: 2;
    }

    .stdf-community-mini {
        grid-row: 3;
        justify-self: start;
    }
}


/* v0.3.2 information hierarchy */
.stdf-card-eyebrow {
    color: var(--stdf-muted);
}

.stdf-card-eyebrow strong {
    color: var(--stdf-dark);
}

.stdf-location-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.stdf-address {
    margin-top: 7px;
    color: var(--stdf-muted);
    font-size: .9rem;
}

.stdf-card-side {
    grid-template-columns: minmax(115px, 1fr) auto;
    grid-template-rows: 1fr auto;
}

.stdf-hours {
    grid-column: 1;
    grid-row: 1;
    padding-right: 4px;
}

.stdf-card-actions {
    grid-column: 2;
    grid-row: 1;
}

.stdf-ratings-corner {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    margin-top: 12px;
}

.stdf-community-mini {
    margin: 0;
}

.stdf-google-mini {
    color: var(--stdf-muted);
    font-size: .76rem;
    white-space: nowrap;
}

.stdf-google-mini strong {
    color: var(--stdf-dark);
}

@media (max-width: 460px) {
    .stdf-card-side {
        grid-template-columns: 1fr auto;
    }

    .stdf-hours {
        grid-column: 1;
        grid-row: 1;
    }

    .stdf-card-actions {
        grid-column: 2;
        grid-row: 1;
    }

    .stdf-ratings-corner {
        grid-column: 1 / -1;
        grid-row: 2;
        align-items: flex-start;
    }
}


/* v0.3.3 business-mode icons */
.stdf-mode-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid var(--stdf-border);
    border-radius: 999px;
    color: var(--stdf-dark);
    background: #fff;
    cursor: help;
}

.stdf-mode-icon svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    display: block;
}


/* v0.3.4 address row */
.stdf-locality {
    margin-top: 12px;
}

.stdf-address-line {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 7px;
}

.stdf-address-line .stdf-address {
    margin-top: 0;
}

.stdf-card-actions {
    min-width: 74px;
}


/* v0.4.0 search / category navigation */.stdf-category-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.stdf-category-button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid var(--stdf-border);
    border-radius: 999px;
    padding: 8px 12px;
    background: #fff;
    color: var(--stdf-dark);
    text-decoration: none;
    font-size: .9rem;
    font-weight: 600;
}

.stdf-category-button span {
    color: var(--stdf-muted);
    font-size: .78rem;
}

.stdf-category-button.is-active {
    background: var(--stdf-dark);
    border-color: var(--stdf-dark);
    color: #fff;
}

.stdf-category-button.is-active span {
    color: rgba(255,255,255,.75);
}

.stdf-filter-row-secondary {
    margin-top: 16px;
}

.stdf-filter-row-secondary select:disabled {
    opacity: .55;
    cursor: not-allowed;
}

@media (max-width: 720px) {
    .stdf-filter-row-secondary {
        grid-template-columns: 1fr;
    }
}


/* v0.4.2 reserved quick-picks area */
.stdf-quick-links-placeholder {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    color: var(--stdf-muted);
    font-size: .88rem;
}

.stdf-quick-links-placeholder strong {
    display: inline-flex;
    align-items: center;
    border: 1px dashed var(--stdf-border);
    border-radius: 999px;
    padding: 6px 10px;
    color: var(--stdf-muted);
    font-weight: 600;
    background: transparent;
}


/* v0.5.0 simplified profile */
.stdf-profile {
    max-width: 1120px;
    margin: 0 auto;
    padding: 10px 0 48px;
}
.stdf-profile-header { margin-top: 20px; }
.stdf-profile-header h2 {
    margin: 8px 0 10px;
    font-size: clamp(2.2rem, 5vw, 4.5rem);
    line-height: 1;
    letter-spacing: -.035em;
}
.stdf-profile-description {
    max-width: 760px;
    margin: 0 0 14px;
    color: var(--stdf-muted);
    font-size: 1.05rem;
}
.stdf-offer-icons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 12px 0 18px;
}
.stdf-offer-icons > span {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    min-width: 68px;
    padding: 7px 9px;
    border: 1px solid var(--stdf-border);
    border-radius: 12px;
    background: #fff;
}
.stdf-offer-icons b { font-size: 1.05rem; line-height: 1; }
.stdf-offer-icons small { color: var(--stdf-muted); font-size: .68rem; }
.stdf-profile-locality { margin: 8px 0 2px; }
.stdf-profile-address { margin: 0; color: var(--stdf-muted); }

.stdf-profile-score-actions {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(180px, .7fr);
    gap: 14px;
    margin: 28px 0 18px;
}
.stdf-profile-community,
.stdf-profile-google {
    border: 1px solid var(--stdf-border);
    border-radius: 16px;
    padding: 18px;
    background: #fff;
}
.stdf-profile-community span,
.stdf-profile-google span {
    display: block;
    margin-bottom: 4px;
    color: var(--stdf-muted);
    font-size: .8rem;
}
.stdf-profile-community strong,
.stdf-profile-google strong { display: block; font-size: 1.25rem; }
.stdf-profile-google small { color: var(--stdf-muted); }

.stdf-profile-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
    gap: 26px;
    align-items: start;
    padding: 22px 0;
    border-top: 1px solid var(--stdf-border);
    border-bottom: 1px solid var(--stdf-border);
}
.stdf-profile-hours h3, .stdf-related h3 { margin-top: 0; }
.stdf-profile-hours p { margin-bottom: 0; color: var(--stdf-muted); }
.stdf-profile-actions { display: grid; gap: 9px; }
.stdf-profile-action {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border: 1px solid var(--stdf-dark);
    border-radius: 12px;
    padding: 10px 16px;
    color: var(--stdf-dark);
    background: #fff;
    text-decoration: none;
    font-weight: 700;
}
.stdf-profile-action.is-primary { background: var(--stdf-dark); color: #fff; }

.stdf-profile-awards { padding: 14px 0 0; }
.stdf-awards-placeholder {
    color: var(--stdf-muted);
    font-size: .8rem;
    font-style: italic;
}

.stdf-related {
    margin-top: 28px;
    padding-top: 26px;
    border-top: 1px solid var(--stdf-border);
}
.stdf-related-head p { margin-top: -8px; color: var(--stdf-muted); }
.stdf-related-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.stdf-related-card {
    border: 1px solid var(--stdf-border);
    border-radius: 14px;
    padding: 16px;
    background: #fff;
}
.stdf-related-card h4 { margin: 6px 0 8px; font-size: 1.05rem; }
.stdf-related-card p { margin: 0 0 10px; color: var(--stdf-muted); font-size: .9rem; }
.stdf-related-card a { color: inherit; font-weight: 700; }

@media (max-width: 720px) {
    .stdf-profile-score-actions,
    .stdf-profile-main,
    .stdf-related-grid {
        grid-template-columns: 1fr;
    }
}


/* v0.5.2 profile blocks */
.stdf-profile-block {
    border: 1px solid var(--stdf-border);
    border-radius: 18px;
    background: #fff;
    padding: 22px;
}

.stdf-profile-block + .stdf-profile-block {
    margin-top: 14px;
}

.stdf-profile-block-primary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(150px, 190px);
    gap: 24px;
    align-items: start;
}

.stdf-profile-name-section {
    margin-top: 8px;
    padding-bottom: 12px;
    border-bottom: 1px solid #ececec;
}

.stdf-profile-name-section h2 {
    margin: 0;
    font-size: clamp(2rem, 4vw, 3.6rem);
    line-height: 1;
    letter-spacing: -.03em;
}

.stdf-profile-description-section {
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f0;
}

.stdf-profile-description-section p {
    margin: 0;
    color: var(--stdf-muted);
}

.stdf-profile-address-section {
    padding-top: 12px;
}

.stdf-profile-locality {
    margin: 0 0 4px;
}

.stdf-profile-address {
    margin: 0;
    color: var(--stdf-muted);
}

.stdf-profile-primary-actions {
    display: grid;
    gap: 9px;
    align-self: center;
}

.stdf-profile-ratings-compact {
    display: flex;
    gap: 22px;
    flex-wrap: wrap;
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid #f0f0f0;
}

.stdf-profile-ratings-compact > div {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
}

.stdf-profile-ratings-compact span,
.stdf-profile-ratings-compact small {
    color: var(--stdf-muted);
    font-size: .74rem;
}

.stdf-profile-ratings-compact strong {
    font-size: .9rem;
}

.stdf-profile-block-secondary {
    display: grid;
    grid-template-columns: minmax(160px, 220px) minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.stdf-mode-strip {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.stdf-mode-strip > span {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    min-width: 84px;
    padding: 10px 12px;
    border: 1px solid var(--stdf-border);
    border-radius: 12px;
    background: #fafafa;
}

.stdf-mode-strip b {
    font-size: 1rem;
    line-height: 1;
}

.stdf-mode-strip small {
    color: var(--stdf-muted);
    font-size: .7rem;
    text-align: center;
}

.stdf-profile-block-secondary .stdf-profile-hours h3 {
    margin-top: 0;
}

@media (max-width: 720px) {
    .stdf-profile-block-primary,
    .stdf-profile-block-secondary {
        grid-template-columns: 1fr;
    }

    .stdf-profile-primary-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .stdf-profile-primary-actions {
        grid-template-columns: 1fr;
    }
}


/* v0.5.3 profile polish */
.stdf-profile-action {
    background: var(--stdf-dark);
    color: #fff;
    border-color: var(--stdf-dark);
}

.stdf-profile-action:hover,
.stdf-profile-action:focus {
    opacity: .9;
    color: #fff;
}

.stdf-profile-action.is-disabled {
    background: #ececec;
    border-color: #d7d7d7;
    color: #9a9a9a;
    cursor: default;
}

.stdf-mode-strip {
    gap: 8px;
}

.stdf-mode-strip > span {
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    border-radius: 0;
    align-items: flex-start;
}

.stdf-mode-strip b {
    font-size: .88rem;
}

.stdf-mode-strip small {
    font-size: .68rem;
    text-align: left;
}

.stdf-profile-block-secondary .stdf-profile-hours h3 {
    font-size: .95rem;
    margin-bottom: 6px;
}

.stdf-profile-block-secondary .stdf-profile-hours p {
    font-size: .9rem;
}

.stdf-related-topline {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.stdf-related-google {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    white-space: nowrap;
    font-size: .78rem;
}

.stdf-related-google strong {
    font-size: .82rem;
}

.stdf-related-google span {
    color: var(--stdf-muted);
}


/* v0.5.4 force profile button colors over theme/global styles */
.stdf-profile .stdf-profile-primary-actions .stdf-profile-action,
.stdf-profile .stdf-profile-primary-actions a.stdf-profile-action,
.stdf-profile .stdf-profile-primary-actions span.stdf-profile-action {
    background: var(--stdf-dark) !important;
    background-color: var(--stdf-dark) !important;
    color: #fff !important;
    border-color: var(--stdf-dark) !important;
    text-decoration: none !important;
}

.stdf-profile .stdf-profile-primary-actions .stdf-profile-action:visited,
.stdf-profile .stdf-profile-primary-actions .stdf-profile-action:hover,
.stdf-profile .stdf-profile-primary-actions .stdf-profile-action:focus,
.stdf-profile .stdf-profile-primary-actions .stdf-profile-action:active {
    background: var(--stdf-dark) !important;
    background-color: var(--stdf-dark) !important;
    color: #fff !important;
    border-color: var(--stdf-dark) !important;
}

.stdf-profile .stdf-profile-primary-actions .stdf-profile-action.is-disabled {
    background: #ececec !important;
    background-color: #ececec !important;
    color: #8a8a8a !important;
    border-color: #d7d7d7 !important;
}

.stdf-profile .stdf-mode-strip > span {
    color: #000 !important;
}

.stdf-profile .stdf-mode-strip b {
    font-size: 1.06rem;
    color: #000 !important;
    line-height: 1;
}

.stdf-profile .stdf-mode-strip small {
    display: none !important;
}


/* v0.5.5 definitive action + outline mode icon */
.stdf-profile .stdf-profile-primary-actions {
    position: relative;
    z-index: 2;
}

.stdf-profile .stdf-profile-primary-actions .stdf-profile-action {
    display: flex !important;
    width: 100% !important;
    min-height: 48px !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    border-radius: 10px !important;
    font-weight: 700 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.stdf-profile .stdf-mode-strip .stdf-mode-svg {
    display: inline-flex;
    width: 29px;
    height: 29px;
    padding: 0;
    margin: 0;
    color: #000 !important;
    background: transparent !important;
    border: 0 !important;
}

.stdf-profile .stdf-mode-strip .stdf-mode-svg svg {
    display: block;
    width: 29px;
    height: 29px;
    color: #000 !important;
    overflow: visible;
}


/* v0.5.6 address size */
.stdf-profile .stdf-profile-address {
    font-size: .88rem;
}


/* v0.6.0 community voting */
.stdf-vote-controls {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.stdf-vote-label {
    color: var(--stdf-muted);
    font-size: .78rem;
}

.stdf-vote-buttons {
    display: inline-flex;
    gap: 6px;
}

.stdf-vote-button {
    appearance: none;
    border: 1px solid var(--stdf-border);
    background: #fff;
    color: var(--stdf-dark);
    border-radius: 9px;
    min-width: 40px;
    height: 34px;
    padding: 4px 9px;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.stdf-vote-button:hover,
.stdf-vote-button:focus {
    border-color: var(--stdf-dark);
}

.stdf-vote-button.is-selected {
    background: var(--stdf-dark);
    color: #fff;
    border-color: var(--stdf-dark);
}

.stdf-vote-button:disabled {
    opacity: .6;
    cursor: wait;
}

.stdf-vote-feedback {
    color: var(--stdf-muted);
    font-size: .74rem;
}


/* v0.6.1 vote controls */
.stdf-vote-controls {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 9px;
    text-align: center;
}

.stdf-vote-label {
    display: block;
    width: 100%;
    font-size: .82rem;
    text-align: center;
}

.stdf-vote-buttons {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.stdf-vote-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 58px !important;
    height: 46px !important;
    min-width: 58px !important;
    padding: 0 !important;
    border: 1px solid var(--stdf-dark) !important;
    border-radius: 10px !important;
    background: var(--stdf-dark) !important;
    background-color: var(--stdf-dark) !important;
    color: #fff !important;
    cursor: pointer;
}

.stdf-vote-button svg {
    display: block;
    width: 24px;
    height: 24px;
    fill: currentColor;
}

.stdf-vote-button:hover,
.stdf-vote-button:focus {
    opacity: .9;
    background: var(--stdf-dark) !important;
    color: #fff !important;
}

.stdf-vote-button.is-selected {
    outline: 2px solid var(--stdf-dark);
    outline-offset: 2px;
}

.stdf-vote-feedback {
    min-height: 1em;
    text-align: center;
}


/* v0.7.0 Top Streatham */
.stdf-profile-awards {
    margin-top: 14px;
}

.stdf-top-strip {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.stdf-top-item {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 9px 12px;
    border: 1px solid var(--stdf-border);
    border-radius: 12px;
    background: #fff;
}

.stdf-top-item > strong {
    font-size: 1.15rem;
    line-height: 1;
    color: var(--stdf-dark);
}

.stdf-top-item > span {
    display: flex;
    flex-direction: column;
    font-size: .82rem;
    line-height: 1.1;
}

.stdf-top-item small {
    margin-top: 2px;
    color: var(--stdf-muted);
    font-size: .68rem;
    font-weight: 400;
}


/* v0.8.1 — align Directory with Streatham.org portal */
.stdf-directory,
.stdf-single,
.stdf-profile{
    max-width:none!important;
    width:100%;
    margin:0!important;
}

.stdf-directory{
    --stdf-radius:5px;
}

.stdf-hero{
    margin:0 0 22px!important;
    padding:34px 36px 30px!important;
    border:0!important;
    border-radius:6px!important;
    background:#171717!important;
    color:#fff!important;
}

.stdf-kicker{
    margin:0 0 7px!important;
    font-size:10px!important;
    line-height:1!important;
    font-weight:800!important;
    letter-spacing:.1em!important;
    color:rgba(255,255,255,.72)!important;
}

.stdf-hero h2{
    margin:0 0 12px!important;
    font-family:Georgia,"Times New Roman",serif!important;
    font-size:44px!important;
    line-height:.98!important;
    letter-spacing:-1.5px!important;
    color:#fff!important;
}

.stdf-hero > p:not(.stdf-kicker){
    max-width:680px;
    margin:0!important;
    font-size:14px!important;
    line-height:1.5!important;
    color:rgba(255,255,255,.82)!important;
}

.stdf-category-grid{
    margin-top:20px!important;
    gap:7px!important;
}

.stdf-category-button{
    border:1px solid rgba(255,255,255,.32)!important;
    background:transparent!important;
    color:#fff!important;
    padding:7px 10px!important;
    font-size:11px!important;
    font-weight:700!important;
}

.stdf-category-button span{
    color:rgba(255,255,255,.62)!important;
    font-size:9px!important;
}

.stdf-category-button.is-active{
    border-color:#fff!important;
    background:#fff!important;
    color:#171717!important;
}

.stdf-category-button.is-active span{
    color:#666!important;
}

.stdf-filter-row-secondary{
    margin-top:17px!important;
}

.stdf-filter-row label span{
    color:rgba(255,255,255,.74)!important;
    font-size:10px!important;
    font-weight:700;
}

.stdf-filter-row select{
    border:1px solid rgba(255,255,255,.25)!important;
    border-radius:4px!important;
    background:#fff!important;
    color:#171717!important;
    padding:10px 11px!important;
    font-size:12px!important;
}

.stdf-results-head{
    padding-bottom:10px;
    border-bottom:1px solid #e7e7e7;
    font-size:12px;
}

.stdf-card{
    border-radius:5px!important;
}

.stdf-profile{
    padding:0 0 24px!important;
}

@media(max-width:760px){
    .stdf-hero{
        padding:26px 22px 24px!important;
    }
    .stdf-hero h2{
        font-size:36px!important;
        letter-spacing:-1px!important;
    }
}
@media(max-width:520px){
    .stdf-hero{
        padding:23px 18px 21px!important;
        border-radius:6px!important;
    }
    .stdf-hero h2{
        font-size:32px!important;
    }
}


/* v0.8.2 — forced portal shell, independent of saved WP block templates */
body.stdf-forced-portal-shell{
    margin:0;
}

/* Business profile keeps the native Events/portal shell classes. Directory
   listing dimensions are intentionally NOT redefined here: the theme owns
   .stp-inner, .stp-content-shell, .ste-events-shell, .stp-main-column and
   .stp-side-column so Directory inherits the exact same column geometry. */
.stdf-forced-portal-shell .stp-directory-main{
    min-width:0;
}

/* v0.8.3 — independent filters, feature pills and profile separation */
.stdf-view-link{
    background:var(--stdf-dark,#1b1b1b)!important;
    color:#fff!important;
    border-color:var(--stdf-dark,#1b1b1b)!important;
}
.stdf-view-link:visited,
.stdf-view-link:hover,
.stdf-view-link:focus{
    color:#fff!important;
}

.stdf-filter-row-secondary{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto!important;
    align-items:end!important;
}
.stdf-reset-filters{
    display:inline-flex;
    min-height:39px;
    align-items:center;
    justify-content:center;
    padding:9px 14px;
    border:1px solid rgba(255,255,255,.38);
    border-radius:4px;
    color:#fff!important;
    text-decoration:none!important;
    font-size:12px;
    font-weight:800;
}
.stdf-reset-filters:hover{background:rgba(255,255,255,.1);}
.stdf-subcategory-select optgroup[label="Popular"]{
    font-weight:800;
}
.stdf-popular-option{
    font-weight:800;
}

.stdf-feature-filter{
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid rgba(255,255,255,.18);
}
.stdf-feature-label{
    display:block;
    margin-bottom:8px;
    color:rgba(255,255,255,.74);
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.stdf-feature-pills{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}
.stdf-feature-pills a{
    display:inline-flex;
    align-items:center;
    min-height:31px;
    padding:6px 10px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:999px;
    color:#fff!important;
    text-decoration:none!important;
    font-size:11px;
    font-weight:700;
}
.stdf-feature-pills a.is-active,
.stdf-feature-pills a:hover{
    background:#fff;
    color:#171717!important;
}

.stdf-profile-details-frame{
    margin-top:14px;
    padding:14px;
    border:1px solid var(--stdf-border,#e3e3e3);
    border-radius:8px;
    background:#fff;
}
.stdf-profile-details-frame .stdf-profile-block{
    border-radius:6px;
}
.stdf-profile-details-frame .stdf-profile-awards{
    margin-bottom:0;
}
.stdf-related{
    margin-top:24px!important;
}
.stdf-related-head{
    margin-bottom:12px;
}
.stdf-related-card{
    border:1px solid var(--stdf-border,#e3e3e3)!important;
    border-radius:7px!important;
    background:#fff!important;
    padding:16px!important;
}

@media(max-width:760px){
    .stdf-filter-row-secondary{
        grid-template-columns:1fr!important;
    }
    .stdf-reset-filters{
        width:100%;
    }
}


/* v0.8.4 — lazy listing batches */
.stdf-load-more-sentinel{
    min-height:64px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:16px;
    color:#666;
    font-size:12px;
    font-weight:700;
}
.stdf-load-more-sentinel.is-loading .stdf-load-more-text::after{
    content:' …';
}

/* v0.8.8 — full-width directory hero and promoted marker */
.stdf-card{
    position:relative;
}

.stdf-promoted-badge{
    position:absolute;
    top:12px;
    right:14px;
    z-index:2;
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:4px 8px;
    border-radius:4px;
    background:#171717;
    color:#fff;
    font-size:10px;
    line-height:1;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.stdf-card.is-promoted .stdf-card-side{
    padding-top:24px;
}

/* v0.8.9 — use the exact portal geometry used by Events / News / Articles.
   The hero is the full-width first row of the same .stp-inner container;
   the row below uses the theme's native .stp-content-shell + .ste-events-shell
   grid, including its main/sidebar widths, gap and responsive breakpoints. */
.stdf-forced-portal-shell .stp-directory-page{
    display:block!important;
}

.stdf-forced-portal-shell .stp-directory-hero-full{
    width:100%;
    margin:0 0 22px;
}

.stdf-forced-portal-shell .stp-directory-hero-full .stdf-directory,
.stdf-forced-portal-shell .stp-directory-hero-full .stdf-hero{
    width:100%;
    max-width:none;
}

.stdf-forced-portal-shell .stp-directory-below{
    /* no grid-template-columns / width / gap / padding overrides here */
    align-items:start;
}
