/* ====================================================== */
    /* DAFTAR UMKM PAGE */
    /* ====================================================== */

    #directory-page {
        position: relative;
        z-index: 3;
        background: #ffffff;
        min-height: 100vh;
        overflow: hidden;
    }

    .directory-banner-section {
        padding:
            132px 1.5rem 18px;
        background:
            linear-gradient(
                180deg,
                rgba(240,249,255,.78),
                #ffffff 76%
            );
    }

    .directory-banner {
        width: min(100%, 1280px);
        margin: 0 auto;
        overflow: hidden;
        border-radius: 30px;
        background: #ffffff;
        box-shadow:
            0 20px 55px rgba(15,23,42,.055);
    }

    .directory-banner img {
        width: 100%;
        height: auto;
        display: block;
    }


    /* ====================================================== */
    /* DIRECTORY HEADER */
    /* ====================================================== */

    .directory-main {
        padding:
            34px 1.5rem 96px;
        background: #ffffff;
    }

    .directory-container {
        width: min(1120px, 100%);
        margin: 0 auto;
    }

    .directory-heading {
        max-width: 760px;
        margin: 0 auto;
        text-align: center;
    }

    .directory-eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 7px;

        padding: 8px 13px;

        border-radius: 999px;
        border: 1px solid #bae6fd;

        background: #f0f9ff;
        color: #0369a1;

        font-size: 10px;
        font-weight: 800;

        letter-spacing: .11em;
        text-transform: uppercase;
    }

    .directory-heading h1 {
        margin-top: 20px;

        color: #0f172a;

        font-size:
            clamp(34px, 4.2vw, 52px);

        line-height: 1.08;
        letter-spacing: -.045em;

        font-weight: 800;
    }

    .directory-heading p {
        max-width: 680px;
        margin: 18px auto 0;

        color: #64748b;

        font-size: 14px;
        line-height: 1.85;
    }


    /* ====================================================== */
    /* SEARCH */
    /* ====================================================== */

    .directory-search {
        max-width: 640px;
        margin: 8px auto 0;

        display: flex;
        align-items: center;
        gap: 12px;

        min-height: 56px;

        padding: 7px 8px 7px 18px;

        border: 1px solid #e2e8f0;
        border-radius: 999px;

        background: #ffffff;

        box-shadow:
            0 14px 34px rgba(15,23,42,.08);

        transition:
            border-color .3s ease,
            box-shadow .3s ease,
            transform .3s cubic-bezier(.16,1,.3,1);
    }

    .directory-search:focus-within {
        border-color: #7dd3fc;
        box-shadow:
            0 16px 38px rgba(14,165,233,.12),
            0 0 0 4px rgba(14,165,233,.06);
        transform: translateY(-1px);
    }

    .directory-search svg {
        flex: none;
        color: #64748b;
    }

    .directory-search input {
        flex: 1;
        min-width: 0;

        border: 0;
        outline: 0;

        background: transparent;

        color: #0f172a;

        font-family: inherit;
        font-size: 13px;
    }

    .directory-search input::placeholder {
        color: #94a3b8;
    }


    /* ====================================================== */
    /* QUICK ACTION + FILTER */
    /* ====================================================== */

    .directory-quick-actions,
    .directory-filters {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        gap: 10px;
    }

    .directory-quick-actions {
        margin-top: 28px;
    }

    .directory-filters {
        margin-top: 28px;
    }

    .directory-chip {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;

        min-height: 38px;

        padding: 0 16px;

        border: 1px solid #e2e8f0;
        border-radius: 999px;

        background: #ffffff;
        color: #475569;

        font-size: 11px;
        font-weight: 650;

        cursor: pointer;

        transition:
            color .25s ease,
            border-color .25s ease,
            background .25s ease,
            transform .28s cubic-bezier(.16,1,.3,1),
            box-shadow .28s ease;
    }

    .directory-chip:hover {
        transform: translateY(-2px);
        border-color: #bae6fd;
        color: #0284c7;
    }

    .directory-chip.active {
        color: #ffffff;
        background: #0284c7;
        border-color: #0284c7;

        box-shadow:
            0 9px 20px rgba(2,132,199,.19);
    }


    /* ====================================================== */
    /* GRID */
    /* ====================================================== */

    .directory-grid {
        margin-top: 34px;

        display: grid;
        grid-template-columns:
            repeat(3, minmax(0,1fr));

        gap: 20px;
    }

    .directory-card {
        position: relative;

        display: flex;
        flex-direction: column;

        overflow: hidden;

        border: 1px solid #e2e8f0;
        border-radius: 25px;

        background: #ffffff;

        box-shadow:
            0 12px 32px rgba(15,23,42,.045);

        transition:
            transform .45s cubic-bezier(.16,1,.3,1),
            border-color .35s ease,
            box-shadow .45s ease;
    }

    .directory-card:hover {
        transform: translateY(-7px);

        border-color:
            rgba(125,211,252,.95);

        box-shadow:
            0 24px 55px rgba(14,165,233,.105);
    }


    /* ====================================================== */
    /* CARD MEDIA */
    /* ====================================================== */

    .directory-card-media {
        position: relative;

        height: 260px;

        margin: 12px 12px 0;

        overflow: hidden;

        border-radius: 19px;

        background:
            linear-gradient(
                135deg,
                #e0f2fe,
                #f0f9ff
            );
    }

    .directory-card-media img {
        position: absolute;
        inset: 0;

        z-index: 2;

        width: 100%;
        height: 100%;

        object-fit: cover;

        transition:
            transform .75s cubic-bezier(.16,1,.3,1);
    }

    .directory-card:hover
    .directory-card-media img {
        transform: scale(1.045);
    }

    .directory-media-fallback {
        position: absolute;
        inset: 0;

        z-index: 1;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        gap: 10px;

        color: #0284c7;

        background:
            radial-gradient(
                circle at 50% 20%,
                rgba(255,255,255,.95),
                transparent 32%
            ),
            linear-gradient(
                145deg,
                #e0f2fe,
                #f8fcff
            );
    }

    .directory-media-fallback span {
        color: #64748b;
        font-size: 11px;
        font-weight: 650;
    }


    /* ====================================================== */
    /* CARD BADGES */
    /* ====================================================== */

    .directory-badges {
        position: absolute;

        z-index: 5;

        top: 12px;
        left: 12px;
        right: 12px;

        display: flex;
        align-items: flex-start;
        justify-content: space-between;

        gap: 8px;
    }

    .directory-badge-stack {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }

    .directory-badge {
        display: inline-flex;
        align-items: center;
        gap: 5px;

        padding: 7px 9px;

        border-radius: 999px;

        font-size: 9px;
        line-height: 1;
        font-weight: 800;

        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);

        box-shadow:
            0 6px 18px rgba(15,23,42,.08);
    }

    .directory-badge.verified {
        color: #ffffff;
        background: rgba(3,105,161,.92);
    }

    .directory-badge.featured {
        color: #ffffff;
        background: rgba(245,158,11,.95);
    }

    .directory-badge.category {
        color: #075985;
        background: rgba(255,255,255,.92);
    }


    /* ====================================================== */
    /* CARD CONTENT */
    /* ====================================================== */

    .directory-card-content {
        padding: 18px 18px 17px;
    }

    .directory-location {
        display: flex;
        align-items: center;
        gap: 6px;

        color: #64748b;

        font-size: 10px;
        font-weight: 600;
    }

    .directory-card h3 {
        margin-top: 10px;

        color: #0f172a;

        font-size: 17px;
        line-height: 1.35;
        letter-spacing: -.025em;

        font-weight: 800;
    }

    .directory-card-description {
        margin-top: 8px;

        min-height: 42px;

        color: #64748b;

        font-size: 11px;
        line-height: 1.7;

        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;

        overflow: hidden;
    }

    .directory-card-footer {
        margin-top: 17px;
        padding-top: 14px;

        border-top: 1px solid #f1f5f9;

        display: flex;
        align-items: center;
        justify-content: space-between;

        gap: 10px;
    }

    .directory-type {
        color: #475569;

        font-size: 10px;
        font-weight: 700;
    }

    .directory-detail {
        display: inline-flex;
        align-items: center;
        gap: 6px;

        color: #0284c7;

        font-size: 10px;
        font-weight: 800;

        white-space: nowrap;

        transition:
            transform .3s cubic-bezier(.16,1,.3,1),
            color .25s ease;
    }

    .directory-detail:hover {
        transform: translateX(2px);
        color: #0369a1;
    }


    /* ====================================================== */
    /* EMPTY */
    /* ====================================================== */

    #directory-empty {
        display: none;

        margin-top: 32px;

        padding: 36px 20px;

        border: 1px dashed #bae6fd;
        border-radius: 24px;

        background: #f8fcff;

        text-align: center;

        color: #64748b;

        font-size: 12px;
        line-height: 1.7;
    }


    /* ====================================================== */
    /* SMALL CTA */
    /* ====================================================== */

    .directory-bottom-cta {
        margin-top: 42px;

        padding: 26px;

        border: 1px solid #e0f2fe;
        border-radius: 28px;

        display: flex;
        align-items: center;
        justify-content: space-between;

        gap: 24px;

        background:
            linear-gradient(
                135deg,
                #f0f9ff,
                #ffffff
            );
    }

    .directory-bottom-cta h2 {
        color: #0f172a;

        font-size: 19px;
        font-weight: 800;
        letter-spacing: -.025em;
    }

    .directory-bottom-cta p {
        margin-top: 7px;

        color: #64748b;

        font-size: 11px;
        line-height: 1.7;
    }

    .directory-register-link {
        flex: none;

        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;

        padding: 12px 18px;

        border-radius: 999px;

        background: #0284c7;
        color: #ffffff;

        font-size: 11px;
        font-weight: 800;

        box-shadow:
            0 10px 24px rgba(2,132,199,.18);

        transition:
            transform .3s cubic-bezier(.16,1,.3,1),
            background .25s ease;
    }

    .directory-register-link:hover {
        transform: translateY(-2px);
        background: #0369a1;
    }


    /* ====================================================== */
    /* RESPONSIVE */
    /* ====================================================== */

    @media (max-width: 900px) {

        .directory-grid {
            grid-template-columns:
                repeat(2, minmax(0,1fr));
        }

    }

    @media (max-width: 640px) {

        .directory-banner-section {
            padding:
                110px 12px 10px;
        }

        .directory-banner {
            border-radius: 20px;
        }

        .directory-main {
            padding:
                28px 14px 70px;
        }

        .directory-search {
            margin-top: 6px;
        }

        .directory-grid {
            grid-template-columns:
                1fr;
        }

        .directory-card-media {
            height: 230px;
        }

        .directory-bottom-cta {
            flex-direction: column;
            align-items: flex-start;
        }

    }
