/* -- Filter tabs ------------------------------------------- */
    .lc-gallery-filters {
        display: flex;
        flex-wrap: wrap;
        gap: 6px 0;
        padding: 20px 15px 10px;
        max-width: 1500px;
        margin: 0 auto;
        border-bottom: 1px solid #ddd;
        margin-bottom: 24px;
    }

    .lc-filter-btn {
        background: none;
        border: none;
        font-family: 'Poppins', 'Montserrat', sans-serif;
        font-size: .88em;
        font-weight: 500;
        color: #555;
        padding: 4px 18px 4px 0;
        cursor: pointer;
        position: relative;
        transition: color .25s;
        white-space: nowrap;
    }

    .lc-filter-btn::after {
        content: "";
        position: absolute;
        right: 7px;
        top: 50%;
        transform: translateY(-50%);
        width: 1px;
        height: 12px;
        background-color: #ccc;
    }

    .lc-filter-btn:last-child::after {
        display: none;
    }

    .lc-filter-btn:hover {
        color: var(--accent-color);
    }

    .lc-filter-btn.active {
        color: var(--accent-color);
        font-weight: 700;
    }

    /* -- Grid -------------------------------------------------- */
    .lc-gallery-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
        max-width: 1500px;
        margin: 0 auto;
        padding: 0 15px 40px;
    }

    /* -- Project card ------------------------------------------ */
    .lc-project-card {
        position: relative;
        overflow: hidden;
        background: #111;
        cursor: pointer;
        aspect-ratio: 4 / 3;
        display: block;
    }

    .lc-project-card.lc-hidden {
        display: none;
    }

    .lc-project-card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: transform .5s ease, opacity .4s ease;
        opacity: .92;
    }

    .lc-project-card:hover img {
        transform: scale(1.05);
        opacity: .7;
    }

    /* Title overlay */
    .lc-project-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(to top, rgba(0, 0, 0, .72) 0%, rgba(0, 0, 0, .15) 50%, transparent 100%);
        display: flex;
        align-items: flex-end;
        padding: 18px 20px;
        pointer-events: none;
    }

    .lc-project-title {
        font-family: 'Montserrat', 'Poppins', sans-serif;
        font-size: .88em;
        font-weight: 600;
        color: #fff;
        line-height: 1.35em;
        letter-spacing: .01em;
        text-shadow: 0 1px 4px rgba(0, 0, 0, .5);
    }

    /* Category tag */
    .lc-project-tag {
        position: absolute;
        top: 12px;
        left: 12px;
        background: var(--accent-color);
        color: #fff;
        font-family: 'Poppins', sans-serif;
        font-size: .68em;
        font-weight: 600;
        letter-spacing: .08em;
        text-transform: uppercase;
        padding: 3px 9px;
        opacity: 0;
        transform: translateY(-6px);
        transition: opacity .3s, transform .3s;
    }

    .lc-project-card:hover .lc-project-tag {
        opacity: 1;
        transform: translateY(0);
    }

    /* View icon on hover */
    .lc-project-view-icon {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -46%);
        opacity: 0;
        transition: opacity .3s, transform .3s;
        pointer-events: none;
    }

    .lc-project-view-icon svg {
        stroke: #fff;
        fill: none;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
        width: 42px;
        height: 42px;
        filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .4));
    }

    .lc-project-card:hover .lc-project-view-icon {
        opacity: 1;
        transform: translate(-50%, -50%);
    }

    /* -- No results message ------------------------------------ */
    .lc-no-results {
        display: none;
        text-align: center;
        padding: 60px 15px;
        color: #888;
        font-size: .95em;
        grid-column: 1 / -1;
    }

    .lc-no-results.visible {
        display: block;
    }

    /* -- Lightbox ---------------------------------------------- */
    .lc-lightbox {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, .88);
        z-index: 9000;
        align-items: center;
        justify-content: center;
        padding: 20px;
        backdrop-filter: blur(4px);
    }

    .lc-lightbox.open {
        display: flex;
    }

    .lc-lightbox-inner {
        position: relative;
        max-width: 1100px;
        width: 100%;
        max-height: 90vh;
        display: flex;
        flex-direction: column;
        animation: lcLightboxIn .3s ease;
    }

    @keyframes lcLightboxIn {
        from {
            opacity: 0;
            transform: scale(.97);
        }

        to {
            opacity: 1;
            transform: scale(1);
        }
    }

    .lc-lightbox-img-wrapper {
        position: relative;
        background: #000;
        max-height: 75vh;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .lc-lightbox-img-wrapper img {
        width: 100%;
        height: 100%;
        max-height: 75vh;
        object-fit: contain;
        display: block;
    }

    .lc-lightbox-close {
        position: absolute;
        top: -40px;
        right: 0;
        background: none;
        border: none;
        cursor: pointer;
        padding: 4px;
        line-height: 1;
    }

    .lc-lightbox-close svg {
        stroke: #fff;
        fill: none;
        stroke-width: 2.5;
        stroke-linecap: round;
        width: 28px;
        height: 28px;
        transition: stroke .2s;
    }

    .lc-lightbox-close:hover svg {
        stroke: #aaa;
    }

    .lc-lightbox-caption {
        background: #111;
        padding: 14px 20px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
    }


    .lc-lightbox-title {
        font-family: 'Montserrat', sans-serif;
        font-size: .95em;
        font-weight: 600;
        color: #fff;
        margin-bottom: 2px;
    }

    .lc-lightbox-category {
        font-size: .72em;
        font-weight: 600;
        letter-spacing: .1em;
        text-transform: uppercase;
        color: var(--accent-color);
    }

    .lc-lightbox-nav {
        display: flex;
        gap: 8px;
        flex-shrink: 0;
    }

    .lc-lightbox-nav-btn {
        width: 38px;
        height: 38px;
        background: #222;
        border: 1px solid #333;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background .2s;
    }

    .lc-lightbox-nav-btn:hover {
        background: var(--accent-color);
    }

    .lc-lightbox-nav-btn svg {
        stroke: #fff;
        fill: none;
        stroke-width: 2.5;
        stroke-linecap: round;
        stroke-linejoin: round;
        width: 16px;
        height: 16px;
    }

    .lc-lightbox-nav-btn:disabled {
        opacity: .3;
        cursor: default;
    }

    .lc-lightbox-counter {
        font-size: .75em;
        color: #888;
        align-self: center;
        white-space: nowrap;
    }

    /* -- Responsive -------------------------------------------- */
    @media (max-width: 900px) {
        .lc-gallery-grid {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    @media (max-width: 540px) {
        .lc-gallery-grid {
            grid-template-columns: 1fr;
            gap: 8px;
        }

        .lc-filter-btn {
            font-size: .8em;
            padding-right: 14px;
        }

        .lc-lightbox-caption {
            flex-direction: column;
            align-items: flex-start;
            gap: 10px;
        }
    }