body.jsdca-general-page {
    background:
        radial-gradient(circle at top left, rgba(214, 106, 163, 0.18), transparent 34%),
        linear-gradient(180deg, #fff8fb 0%, #fffaf3 44%, #fffefb 100%);
}

.jsdca-general-page .spn-header {
    background:
        linear-gradient(90deg, #6b224a 0%, #9b3b74 48%, #f1b45f 100%);
    box-shadow: 0 16px 34px rgba(92, 35, 68, 0.22);
}

.jsdca-general-main {
    padding-bottom: 4rem;
}

.jsdca-general-hero {
    background:
        linear-gradient(135deg, rgba(86, 24, 62, 0.96), rgba(168, 77, 129, 0.9));
    padding: 0;
    text-align: left;
}

.jsdca-general-hero-home {
    background:
        linear-gradient(120deg, rgba(90, 24, 67, 0.98), rgba(222, 154, 74, 0.88));
}

.jsdca-general-hero-inner {
    max-width: 1120px;
    margin: 0 auto;
    padding: 3.8rem 1.25rem 3.3rem;
}

.jsdca-general-kicker {
    color: #ffe1a8;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 0.95rem;
}

.jsdca-general-subhead {
    max-width: 48rem;
    color: rgba(255, 245, 239, 0.9);
    margin-top: 0.95rem;
}

.jsdca-general-copy {
    max-width: 1120px;
    margin: -1.8rem auto 0;
    padding: 0 1.25rem;
}

.jsdca-general-columns {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.2rem;
}

.jsdca-general-sheet {
    background: rgba(255, 252, 247, 0.96);
    border: 1px solid rgba(185, 87, 130, 0.18);
    border-radius: 18px;
    padding: 2rem 1.4rem 2.3rem;
    box-shadow: 0 18px 42px rgba(122, 58, 91, 0.09);
}

.jsdca-general-sheet h2 {
    color: #7a2f5a;
    font-size: 1.24rem;
    margin: 1.5rem 0 0.75rem;
}

.jsdca-general-sheet p,
.jsdca-general-sheet li {
    color: #38222d;
    line-height: 1.82;
}

.jsdca-general-sheet p + p,
.jsdca-general-sheet p + h2,
.jsdca-general-sheet h2 + p {
    margin-top: 0.85rem;
}

.jsdca-general-page .spn-footer {
    margin-top: 3rem;
    background: #341625;
}

@media (min-width: 768px) {
    .jsdca-general-hero-inner {
        padding-top: 4.5rem;
        padding-bottom: 3.8rem;
    }

    .jsdca-general-columns {
        grid-template-columns: minmax(0, 820px);
        justify-content: center;
    }

    .jsdca-general-sheet {
        padding: 2.6rem 2.5rem 2.9rem;
    }
}

.jsdca-directory-shell,
.spn-company-directory.jsdca-directory-shell,
.spn-company-directory-detail.jsdca-directory-shell {
    max-width: 1120px;
    margin: -1.8rem auto 0;
    padding: 0 1.25rem 3rem;
}

.jsdca-directory-shell .spn-company-directory-filters,
.jsdca-directory-shell .spn-company-directory-empty,
.jsdca-directory-shell .spn-company-directory-grid,
.jsdca-directory-shell .spn-company-directory-count,
.jsdca-directory-shell .spn-company-directory-pagination,
.jsdca-directory-shell .spn-company-directory-breadcrumb,
.jsdca-directory-shell .spn-company-directory-facts,
.jsdca-directory-shell .spn-company-directory-section,
.jsdca-directory-shell .spn-company-directory-back,
.jsdca-directory-shell .spn-company-directory-lead {
    background: rgba(255, 252, 247, 0.97);
    border: 1px solid rgba(185, 87, 130, 0.18);
    border-radius: 18px;
    box-shadow: 0 18px 42px rgba(122, 58, 91, 0.09);
}

.jsdca-directory-shell .spn-company-directory-filters,
.jsdca-directory-shell .spn-company-directory-empty,
.jsdca-directory-shell .spn-company-directory-count,
.jsdca-directory-shell .spn-company-directory-breadcrumb,
.jsdca-directory-shell .spn-company-directory-facts,
.jsdca-directory-shell .spn-company-directory-section,
.jsdca-directory-shell .spn-company-directory-back,
.jsdca-directory-shell .spn-company-directory-lead {
    padding: 1.15rem 1.2rem;
    margin-top: 1rem;
}

.jsdca-directory-shell .spn-company-directory-filters {
    display: grid;
    gap: 0.85rem;
}

.jsdca-directory-shell .spn-company-directory-filters label {
    display: grid;
    gap: 0.35rem;
    color: #38222d;
    font-weight: 600;
}

.jsdca-directory-shell .spn-company-directory-filters input,
.jsdca-directory-shell .spn-company-directory-filters select {
    border: 1px solid rgba(122, 47, 90, 0.22);
    border-radius: 10px;
    padding: 0.72rem 0.8rem;
    background: #fffdf9;
}

.jsdca-directory-shell .spn-company-directory-filters button,
.jsdca-directory-shell .spn-company-directory-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 0.78rem 1rem;
    border-radius: 999px;
    font-weight: 700;
}

.jsdca-directory-shell .spn-company-directory-filters button {
    border: 0;
    background: #8e2f65;
    color: #fff7f1;
}

.jsdca-directory-shell .spn-company-directory-reset {
    color: #8e2f65;
}

.jsdca-directory-shell .spn-company-directory-grid {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    margin-top: 1rem;
}

.jsdca-directory-shell .spn-company-card {
    background: linear-gradient(180deg, #fffaf6 0%, #fff 100%);
    border: 1px solid rgba(185, 87, 130, 0.16);
    border-radius: 16px;
    padding: 1.15rem;
}

.jsdca-directory-shell .spn-company-card h2,
.jsdca-directory-shell .spn-company-directory-section h2 {
    color: #7a2f5a;
}

.jsdca-directory-shell .spn-company-card-meta,
.jsdca-directory-shell .spn-company-directory-breadcrumb {
    color: #7d5b6a;
}

.jsdca-directory-shell .spn-company-card-links,
.jsdca-directory-shell .spn-company-directory-links,
.jsdca-directory-shell .spn-company-directory-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    padding-left: 0;
    list-style: none;
}

.jsdca-directory-shell .spn-company-directory-chip-list li,
.jsdca-directory-shell .spn-company-directory-links a {
    background: rgba(242, 215, 219, 0.55);
    border-radius: 999px;
    padding: 0.45rem 0.75rem;
}

.jsdca-directory-shell .spn-company-directory-facts {
    display: grid;
    gap: 0.8rem;
}

.jsdca-directory-shell .spn-company-directory-facts div {
    display: grid;
    gap: 0.2rem;
}

.jsdca-directory-shell .spn-company-directory-facts dt {
    font-weight: 700;
    color: #7a2f5a;
}

.jsdca-directory-shell .spn-company-directory-photo-grid {
    display: grid;
    gap: 0.8rem;
}

.jsdca-directory-shell .spn-company-directory-photo-grid img {
    width: 100%;
    border-radius: 14px;
}

.jsdca-directory-shell .spn-company-directory-pagination {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 1rem 0;
}

.jsdca-directory-shell .spn-company-directory-pagination a,
.jsdca-directory-shell .spn-company-directory-pagination .current {
    min-width: 2.2rem;
    text-align: center;
    border-radius: 999px;
    padding: 0.45rem 0.7rem;
    background: rgba(242, 215, 219, 0.7);
}

@media (min-width: 768px) {
    .jsdca-directory-shell .spn-company-directory-filters {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        align-items: end;
    }

    .jsdca-directory-shell .spn-company-directory-grid,
    .jsdca-directory-shell .spn-company-directory-photo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
