        * { margin: 0; padding: 0; box-sizing: border-box; }

        .full-gallery-btn-wrap {
            text-align: center;
            margin: 20px 0;
        }

        #openFullGallery {
            padding: 10px 20px;
            background: #2d9391;
            color: white;
            border: none;
            font-size: 18px;
            cursor: pointer;
            border-radius: 6px;
            transition: .25s;
        }
        #openFullGallery:hover {
            background: #2baab1;
        }

    /* Carousel wrapper */
        .carousel {
            width: 100%;
            max-width: 300px;
            margin: 20px auto 40px auto;
            position: relative;
        }

    /* Main slide area */
        .carousel-slides {
            position: relative;
            height: 100%;
        }
        .carousel-slides img {
            position: absolute;
            width: 100%;
            height: auto;
            object-fit: contain;
            opacity: 0;
            transition: opacity .7s ease-in-out;
        }
        .carousel-slides img.active { opacity: 1; }

    /* Buttons */
        .carousel-btn {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            width: 42px;
            height: 42px;
            border-radius: 50%;
            background: white;
            border: none;
            font-size: 26px;
            cursor: pointer;
            z-index: 20;
        }
        .prev { left: 10px; }
        .next { right: 10px; }

    /* Thumbnails */
        .carousel-thumbs {
            display: flex;
            gap: 8px;
            padding: 12px;
            overflow-x: auto;
            background: #f6f6f6;
            border-top: 1px solid #ddd;
        }
        .carousel-thumbs img {
            width: 90px;
            height: 60px;
            object-fit: cover;
            opacity: .6;
            border-radius: 4px;
            cursor: pointer;
            transition: opacity .2s, border .2s;
        }
        .carousel-thumbs img.active {
            opacity: 1;
            border: 2px solid #2d9391;
        }

    /* Progress bar */
        .carousel-progress {
            height: 4px;
            background: rgba(0,0,0,.1);
        }
        .carousel-progress-fill {
            height: 4px;
            background: #2d9391;
            width: 0%;
        }

    /* Lightbox */
        #lightbox {
            display: none;
            justify-content: center;
            align-items: center;
            flex-direction: column;

            position: fixed;
            top: 0; left: 0;
            width: 100%; height: 100%;
            background: rgba(0,0,0,.92);
            z-index: 9999;

            opacity: 0;
            transform: scale(.95);
            transition: opacity .35s ease, transform .35s ease;
        }
        #lightbox.show {
            opacity: 1;
            transform: scale(1);
        }
        #lightbox img {
            width: 80%;
            max-height: 80%;
            object-fit: contain;
        }
        /* Lightbox base */
        #lightbox {
            display: none;
            justify-content: center;
            align-items: center;
            flex-direction: column;
            padding: 30px 20px;              /* helps center nicely on small screens */

            position: fixed;
            top: 0; left: 0;
            width: 100%; height: 100%;
            background: rgba(0,0,0,.92);
            z-index: 9999;

            opacity: 0;
            transform: scale(.95);
            transition: opacity .35s ease, transform .35s ease;
        }

        #lightbox.show {
            opacity: 1;
            transform: scale(1);
        }

        /* Default lightbox image */
        #lightbox img {
            display: block;
            margin: 0 auto;
            width: auto;                     /* IMPORTANT */
            max-width: 85vw;
            max-height: 75vh;
            object-fit: contain;
        }

        /* "View Full Gallery" mode: smaller + centered */
        #lightbox.full-gallery img {
            max-width: 65vw;
            max-height: 60vh;
        }

        /* Caption stays centered */
        #lightbox-caption {
            margin-top: 15px;
            color: white;
            font-size: 20px;
            text-align: center;
            max-width: 85vw;
        }
        #lightbox-caption {
            margin-top: 15px;
            color: white;
            font-size: 20px;
            text-align: center;
            max-width: 80%;
        }
        #lightbox-close {
            position: absolute;
            top: 20px;
            right: 40px;
            font-size: 50px;
            color: #2d9391;
            cursor: pointer;
        }

    /* Lightbox nav arrows */
        .lightbox-nav {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            background: none;
            font-size: 50px;
            color: #2d9391;
            border: none;
            cursor: pointer;
            padding: 15px;
            z-index: 10000;
        }
        #lightbox-prev { left: 40px; }
        #lightbox-next { right: 40px; }
