.gallery-hero{position:relative;min-height:320px;display:flex;align-items:flex-end;overflow:hidden}.gallery-hero__bg{position:absolute;inset:0}.gallery-hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.gallery-hero__overlay{position:absolute;inset:0;background:linear-gradient(to top,#000c,#0000004d 60%,#0000001a)}.gallery-hero__content{position:relative;padding:var(--spacing-4xl) 0 var(--spacing-3xl);text-align:center}.gallery-hero__content h1{font-size:var(--font-size-5xl);font-weight:800;color:#fff;margin-bottom:var(--spacing-md)}.gallery-hero__subtitle{font-size:var(--font-size-xl);color:#ffffffd9}.gallery-filters{padding:var(--spacing-lg) 0;border-bottom:1px solid var(--color-border);position:sticky;top:64px;z-index:10;background:var(--color-bg);transition:top var(--transition-slow)}.gallery-filters--header-hidden{top:0}.gallery-filters__list{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;justify-content:center}.gallery-filters__btn{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-lg);font-family:inherit;font-size:var(--font-size-sm);font-weight:600;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-muted);cursor:pointer;transition:all var(--transition-fast);min-height:36px}.gallery-filters__btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.gallery-filters__btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.gallery-grid{columns:3;column-gap:var(--spacing-md)}.gallery-item{break-inside:avoid;margin-bottom:var(--spacing-md);border-radius:var(--radius-lg);overflow:hidden;position:relative;background:var(--color-border)}.gallery-item img{width:100%;height:auto;display:block;transition:transform var(--transition-slow)}.gallery-item:hover img{transform:scale(1.03)}.gallery-item__caption{position:absolute;bottom:0;left:0;right:0;padding:var(--spacing-lg);background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 100%);opacity:0;transition:opacity var(--transition-base)}.gallery-item:hover .gallery-item__caption{opacity:1}.gallery-item__caption p{font-size:var(--font-size-sm);color:#fff;line-height:1.4}.section-title{font-size:var(--font-size-3xl);font-weight:800;text-align:center;margin-bottom:var(--spacing-3xl)}.lightbox{display:none;position:fixed;inset:0;z-index:1000;background:#000000eb;align-items:center;justify-content:center;flex-direction:column}.lightbox--open{display:flex}.lightbox__content{display:flex;align-items:center;justify-content:center;max-width:90vw;max-height:80vh}.lightbox__img{max-width:90vw;max-height:80vh;object-fit:contain;border-radius:var(--radius);animation:lightbox-fade-in .2s ease}@keyframes lightbox-fade-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.lightbox__close{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);background:none;border:none;color:#fff;font-size:2.5rem;cursor:pointer;line-height:1;padding:var(--spacing-xs);opacity:.7;transition:opacity var(--transition-fast);z-index:1001}.lightbox__close:hover{opacity:1}.lightbox__prev,.lightbox__next{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:none;color:#fff;font-size:2.5rem;cursor:pointer;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);opacity:.7;transition:opacity var(--transition-fast),background var(--transition-fast);z-index:1001;line-height:1}.lightbox__prev{left:var(--spacing-lg)}.lightbox__next{right:var(--spacing-lg)}.lightbox__prev:hover,.lightbox__next:hover{opacity:1;background:#fff3}.lightbox__caption{color:#fffc;font-size:var(--font-size-sm);text-align:center;padding:var(--spacing-md) var(--spacing-xl);max-width:600px}@media(max-width:900px){.gallery-grid{columns:2}}@media(max-width:600px){.gallery-hero__content h1{font-size:var(--font-size-4xl)}.gallery-grid{columns:1}.gallery-filters{top:56px}.gallery-filters--header-hidden{top:0}.lightbox__prev,.lightbox__next{font-size:1.8rem;padding:var(--spacing-xs) var(--spacing-sm)}.lightbox__prev{left:var(--spacing-sm)}.lightbox__next{right:var(--spacing-sm)}}
