.gallery-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
    padding: 20px 0;
}

.gallery-item {
    width: calc(33.333% - 20px); 
    max-width: 380px;
    box-sizing: border-box;
}


.gallery-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%; 
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}


.gallery-card:hover {
    transform: translateY(-10px);
}


.gallery-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}


.fallback-image {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 200px;
    background-color: #f2f2f2;
    color: #888;
    font-size: 16px;
}


.card-body {
    padding: 15px;
    flex-grow: 1; 
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-align: center;
}


.gallery-title {
    display: -webkit-box;
    -webkit-line-clamp: 2; 
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: bold;
    font-size: 18px;
    color: #333;
    margin-bottom: 10px;
}

.btn-gallery {
    padding: 10px 20px;
    font-size: 14px;
    border-radius: 5px;
    background-color: #af410de5;    
    color: white;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 0.3s ease;
}

.btn-gallery:hover {
    background-color: #ffffffe5; 
    color: black;
    border-radius: 5px;
    border: 1px solid #af410de5; 
}

.btn-gallery {
    transition: all 0.3s ease;
}

@media (max-width: 1200px) {
    .gallery-container .col-lg-4 {
        flex: 0 0 33.3333%; 
    }
}

@media (max-width: 992px) {
    .gallery-item {
        width: calc(50% - 20px); 
    }
}

@media (max-width: 768px) {
    .gallery-item {
        width: 100%;
    }
}


/* ------------------------------------- */

/* Gallery Container */
.custom-gallery-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
    padding: 20px 0;
}

.custom-gallery-item {
    width: calc(33.333% - 20px);
    max-width: 380px;
    box-sizing: border-box;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
}

.custom-gallery-item:hover {
    transform: translateY(-5px);
}

.custom-gallery-image {
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}

.fallback-image {
    height: 220px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #eee;
    color: #777;
    font-size: 16px;
}

/* Lightbox Modal */
.lightbox-modal {
    display: none; /* Hidden by default */
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    justify-content: center;
    align-items: center;
    padding: 20px;
}

.lightbox-image {
    max-width: 90%;
    max-height: 90%;
    margin: auto;
    border-radius: 10px;
}

.lightbox-navigation {
    position: absolute;
    top: 50%;
    width: 100%;
    display: flex;
    justify-content: space-between;
    font-size: 30px;
    color: #fff;
    padding: 0 20px;
    transform: translateY(-50%);
}

.prev-lightbox, .next-lightbox {
    cursor: pointer;
    padding: 10px;
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 50%;
    user-select: none;
}

.close-lightbox {
    position: absolute;
    top: 20px;
    right: 30px;
    font-size: 40px;
    color: #fff;
    cursor: pointer;
    user-select: none;
}

/* Responsive */
@media (max-width: 992px) {
    .custom-gallery-item {
        width: calc(50% - 20px);
    }
}

@media (max-width: 768px) {
    .custom-gallery-item {
        width: 100%;
    }
}



/* Site Map css */

/* Sitemap list */
        .sitemap-list {
            list-style: none;
            padding-left: 1rem;
            margin: 0;
        }

        /* Sitemap item */
        .sitemap-item {
            margin: 10px 0;
            display: flex;
            align-items: center;
            user-select: none;
            position: relative;
            padding-left: 4px;
            border-radius: 10px;
            transition: background-color 0.3s ease;
        }

        .sitemap-item:hover {
            background-color: rgba(176, 78, 53, 0.07);
        }

        /* Focus */
        .sitemap-item:focus-within {
            outline: none;
            background-color: rgba(176, 78, 53, 0.15);
            /* optional to keep subtle bg on focus */
        }

        /* Links */
        .sitemap-link {
            font-weight: 600;
            font-size: 1.05rem;
            color: rgb(176, 78, 53);
            text-decoration: none;
            padding: 8px 14px;
            border-radius: 14px;
            width: 100%;
            transition:
                background 0.4s ease,
                box-shadow 0.3s ease,
                color 0.3s ease,
                transform 0.25s ease;
            user-select: text;
            background: linear-gradient(135deg, transparent 0%, transparent 50%, rgba(176, 78, 53, 0.12) 100%);
            position: relative;
            display: inline-block;
        }

        .sitemap-link:hover,
        .sitemap-link:focus {
            color: #a84f07;
            background: linear-gradient(135deg, rgba(176, 78, 53, 0.3) 0%, rgba(176, 78, 53, 0.5) 50%, rgba(176, 78, 53, 0.3) 100%);
            box-shadow: 0 8px 18px rgba(176, 78, 53, 0.5);
            text-decoration: none;
            outline: none;
            transform: translateX(6px);
            z-index: 10;
        }

        /* Toggle button */
        .toggle-btn {
            background: transparent;
            border: none;
            cursor: pointer;
            margin-right: 12px;
            color: rgb(176, 78, 53);
            display: inline-flex;
            align-items: center;
            transition: color 0.3s ease, transform 0.3s ease;
            flex-shrink: 0;
            padding: 0;
            width: 24px;
            height: 24px;
            border-radius: 6px;
        }

        .toggle-btn:hover,
        .toggle-btn:focus {
            outline: none;
            box-shadow: none;
            color: #a84f07;
            transform: scale(1.2) rotate(10deg);
            box-shadow: 0 0 10px rgba(176, 78, 53, 0.7);
        }

        /* Toggle icon */
        .toggle-icon {
            stroke-linejoin: round;
            stroke-linecap: round;
            stroke-width: 3;
            transition: transform 0.3s ease, stroke 0.3s ease;
        }

        /* Expanded state */
        .sitemap-item.expanded>.toggle-btn .toggle-icon {
            transform: rotate(180deg);
            stroke: #a84f07;
        }

        /* Spacer */
        .spacer {
            display: inline-block;
            width: 24px;
            margin-right: 12px;
        }

        /* Collapsible submenu */
        .collapsible {
            max-height: 0;
            overflow: hidden;
            opacity: 0;
            transform-origin: top;
            transition:
                max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.35s ease,
                transform 0.35s ease;
            padding-left: 1.8rem;
            border-left: 3px solid rgba(176, 78, 53, 0.3);
            margin-top: 6px;
            border-radius: 0 0 8px 8px;
            user-select: none;
        }

        .sitemap-item.expanded>.collapsible {
            max-height: 1500px;
            opacity: 1;
            transform: scaleY(1);
        }

        /* Responsive */
        @media (max-width: 600px) {
            .container {
                padding: 20px 25px;
                max-width: 100%;
            }

            .sitemap-link {
                font-size: 1rem;
            }

            .toggle-btn {
                width: 20px;
                height: 20px;
            }

            .spacer {
                width: 20px;
                margin-right: 8px;
            }
        }

        /* Dark mode */
        @media (prefers-color-scheme: dark) {
            body {
                background: #121212;
                color: #ddd;
            }

            .container {
                background: #1e1e1e;
                box-shadow: 0 12px 40px rgba(176, 78, 53, 0.7);
            }

            .sitemap-link {
                color: rgba(176, 78, 53, 0.85);
                background: linear-gradient(135deg, transparent 0%, transparent 50%, rgba(176, 78, 53, 0.15) 100%);
            }

            .sitemap-link:hover,
            .sitemap-link:focus {
                background: linear-gradient(135deg, rgba(176, 78, 53, 0.7) 0%, rgba(176, 78, 53, 0.85) 50%, rgba(176, 78, 53, 0.7) 100%);
                box-shadow: 0 10px 30px rgba(176, 78, 53, 0.9);
                color: #f5f5f5;
            }

            .collapsible {
                border-left-color: rgba(176, 78, 53, 0.5);
            }

            .toggle-btn {
                color: rgba(176, 78, 53, 0.7);
            }

            .sitemap-item.expanded>.toggle-btn {
                color: rgb(176, 78, 53);
            }
        }