
.gallery-page {
    background: var(--color-surface);
    color: var(--color-on-surface);
}

.gallery-page-hero {
    padding: var(--spacing-4xl) var(--spacing-xl) var(--spacing-3xl);
    text-align: center;
}

.gallery-page-inner {
    width: min(var(--content-max-width), calc(100% - 2 * var(--spacing-xl)));
    margin-inline: auto;
}

.gallery-page-hero .hero-subtitle {
    margin: var(--spacing-md) auto 0;
}

.eyebrow {
    display: inline-block;
    margin-bottom: var(--spacing-sm);
    color: var(--color-accent-text);
    font-weight: var(--font-weight-medium);
}

.gallery-page-grid-section {
    padding: 0 var(--spacing-xl) var(--spacing-4xl);
}

.gallery-page-grid-section .section-title {
    margin-bottom: var(--spacing-xl);
}

.gallery-page-grid {
    display: grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap: var(--spacing-md);
}

.gallery-page-grid figure {
    margin: 0;
    overflow: hidden;
    border-radius: var(--border-radius-card);
    background: var(--color-surface-elevated);
    box-shadow: var(--shadow-level-1);
}

.gallery-page-grid img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
}

.gallery-page-grid figcaption {
    padding: var(--spacing-sm) var(--spacing-md);
    font-weight: var(--font-weight-medium);
}

.gallery-story {
    padding: 0 var(--spacing-xl) var(--spacing-4xl);
}

.gallery-story-card {
    padding: var(--spacing-2xl);
    border-radius: var(--border-radius-xl);
    background: var(--color-surface-elevated);
    text-align: center;
}

.gallery-story-card p {
    max-width: 48rem;
    margin: var(--spacing-md) auto var(--spacing-lg);
}

@media (max-width: 991px) {
    .gallery-page-grid {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .gallery-page-hero {
        padding: var(--spacing-3xl) var(--spacing-lg) var(--spacing-2xl)
    }

    .gallery-page-grid-section, .gallery-story {
        padding-left: var(--spacing-lg);
        padding-right: var(--spacing-lg)
    }

    .gallery-page-inner {
        width: 100%
    }

    .gallery-page-grid {
        grid-template-columns:1fr
    }

    .gallery-story-card {
        padding: var(--spacing-xl)
    }
}

.gallery-story-card {
    box-sizing: border-box;
}
