.gallery-section{background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);padding:8rem 0;position:relative;overflow:hidden}.gallery-section::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 30%,rgba(25,118,210,0.05) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(25,118,210,0.03) 0%,transparent 50%);pointer-events:none}.gallery-container{max-width:1400px;margin:0 auto;padding:0 2rem;position:relative;z-index:1}.gallery-section h2{font-size:3.5rem;font-weight:900;color:var(--primary-dark);text-align:center;margin-bottom:1.5rem;line-height:1.2;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gallery-section p{font-size:1.25rem;color:var(--text-main);text-align:center;margin-bottom:3rem;opacity:0.8;max-width:600px;margin-left:auto;margin-right:auto}.gallery-filters{display:flex;justify-content:center;gap:1rem;margin-bottom:4rem;flex-wrap:wrap}.filter-btn{padding:0.75rem 1.5rem;border:2px solid rgba(25,118,210,0.2);background:white;color:var(--primary);border-radius:50px;font-weight:600;font-size:0.95rem;cursor:pointer;transition:all 0.3s ease;position:relative;overflow:hidden}.filter-btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.4),transparent);transition:left 0.5s ease}.filter-btn:hover::before{left:100%}.filter-btn:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 8px 25px rgba(25,118,210,0.15)}.filter-btn.active{background:var(--primary);color:white;border-color:var(--primary);box-shadow:0 4px 15px rgba(25,118,210,0.3)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem;margin-bottom:2rem}.gallery-item{position:relative;border-radius:20px;overflow:hidden;background:white;box-shadow:0 8px 25px rgba(0,0,0,0.1);transition:transform 0.18s ease,box-shadow 0.18s ease;cursor:pointer;height:280px;opacity:1;transform:none;contain:paint}.gallery-item::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,rgba(25,118,210,0.1) 0%,transparent 100%);opacity:0;transition:opacity 0.3s ease;z-index:1}.gallery-item:hover::before{opacity:1}.gallery-item:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(0,0,0,0.12)}.gallery-item img{width:100%;height:100%;display:block;object-fit:cover;transition:transform 0.18s ease}.gallery-item:hover img{transform:scale(1.04)}.gallery-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,0.8));color:white;padding:2rem 1.5rem 1.5rem 1.5rem;transform:translateY(100%);transition:transform 0.3s ease;z-index:2}.gallery-item:hover .gallery-overlay{transform:translateY(0)}.gallery-overlay i{font-size:1.5rem;margin-bottom:0.5rem;display:block;color:var(--primary-light)}.gallery-overlay span{font-size:1.1rem;font-weight:600;display:block;line-height:1.3}.gallery-item.hidden{display:none}.gallery-item.animate-in{animation:galleryItemIn 0.4s cubic-bezier(0.25,0.46,0.45,0.94) forwards}@keyframes galleryItemIn{from{opacity:0;transform:translateY(20px) scale(0.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:768px){.gallery-section{padding:6rem 0}.gallery-section h2{font-size:2.8rem}.gallery-section p{font-size:1.1rem;margin-bottom:2.5rem}.gallery-filters{margin-bottom:3rem}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.gallery-item{height:250px}}@media (max-width:450px){.gallery-section{padding:4rem 0}.gallery-container{padding:0 1rem}.gallery-section h2{font-size:2.2rem}.gallery-section p{font-size:1rem}.gallery-filters{gap:0.5rem;margin-bottom:2rem}.filter-btn{padding:0.7rem 1rem;font-size:0.9rem}.gallery-grid{grid-template-columns:1fr;gap:1rem}.gallery-item{height:220px}}.gallery-item,.gallery-item.animate-in{opacity:1!important;transform:none!important;animation:none!important}.gallery-item{content-visibility:visible!important;contain:paint!important;transition:transform 0.18s ease,box-shadow 0.18s ease!important}.gallery-item:hover{transform:translateY(-3px)!important}.gallery-item img{transition:transform 0.18s ease!important}
