/* Photo gallery - matches the existing green palette and fonts */
.gallery-section { text-align: center; }

.gallery-intro {
    max-width: 620px;
    margin: 0 auto 2rem;
    font-size: 1.2rem;
    line-height: 1.6;
}

.gallery-tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: 1.5rem;
}

.gallery-tab {
    font-family: inherit;
    font-size: 1.15rem;
    padding: .55rem 1.4rem;
    border: 1px solid rgb(44, 51, 22);
    border-radius: 999px;
    background: transparent;
    color: rgb(44, 51, 22);
    cursor: pointer;
    transition: background .2s, color .2s;
}
.gallery-tab:hover { background: rgb(231, 241, 212); }
.gallery-tab.active { background: rgb(44, 51, 22); color: #fff; }

.gallery-toolbar {
    max-width: 1200px;
    margin: 0 auto 1rem;
    padding: 0 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.gallery-count { font-size: 1.1rem; color: rgb(44, 51, 22); }

.gallery-download-all {
    font-family: inherit;
    font-size: 1.05rem;
    padding: .5rem 1.1rem;
    border: none;
    border-radius: 4px;
    background: rgb(44, 51, 22);
    color: #fff;
    cursor: pointer;
}
.gallery-download-all:disabled { opacity: .6; cursor: default; }
.gallery-download-all i { margin-right: .35rem; }

.gallery-status { min-height: 1.5rem; margin: 1rem 0; font-size: 1.1rem; }

.gallery-grid {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .6rem;
}

.gallery-item {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: rgb(231, 241, 212);
    border-radius: 3px;
}
.gallery-open {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: none;
    cursor: zoom-in;
}
.gallery-open img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s ease;
}
.gallery-open:hover img { transform: scale(1.04); }

.gallery-item-download {
    position: absolute;
    right: .5rem;
    bottom: .5rem;
    width: 2.4rem;
    height: 2.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(44, 51, 22, .85);
    color: #fff;
    text-decoration: none;
}
.gallery-item-download:hover { background: rgb(44, 51, 22); }

.gallery-open:focus-visible,
.gallery-item-download:focus-visible,
.gallery-tab:focus-visible,
.gallery-download-all:focus-visible,
.lightbox-btn:focus-visible,
.lightbox-download:focus-visible {
    outline: 3px solid rgb(231, 241, 212);
    outline-offset: 2px;
}

/* Lightbox */
.lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: rgba(20, 24, 10, .95);
}
.lightbox.open { display: flex; }

.lightbox-figure {
    margin: 0;
    width: 100%;
    flex: 1;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3.5rem 4rem 0;
}
.lightbox-figure img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.lightbox-bar {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1rem;
    color: #fff;
    font-size: 1.1rem;
}
.lightbox-download {
    color: rgb(44, 51, 22);
    background: rgb(231, 241, 212);
    padding: .45rem 1.1rem;
    border-radius: 4px;
    text-decoration: none;
}
.lightbox-download i { margin-right: .35rem; }

.lightbox-btn {
    position: absolute;
    width: 3rem;
    height: 3rem;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 1.2rem;
    cursor: pointer;
}
.lightbox-btn:hover { background: rgba(255, 255, 255, .25); }
.lightbox-close { top: 1rem; right: 1rem; }
.lightbox-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 1rem; top: 50%; transform: translateY(-50%); }

@media (max-width: 600px) {
    .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: .35rem; padding: 0 .5rem; }
    .gallery-toolbar { flex-direction: column; }
    .lightbox-figure { padding: 3.5rem .5rem 0; }
    .lightbox-prev, .lightbox-next { top: auto; bottom: 4.5rem; transform: none; }
    .lightbox-prev { left: .75rem; }
    .lightbox-next { right: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
    .gallery-open img, .gallery-tab { transition: none; }
}

/* Thank-you note */
.thank-you-text {
    margin-top: 1.5rem;
    font-size: 1.25rem;
    line-height: 1.7;
}
.thank-you-signature {
    margin-top: 1.5rem;
    font-family: 'Great Vibes', cursive;
    font-size: 2rem;
    line-height: 1.3;
}
