.gallery-page{background-color:#fdfbfb;min-height:100vh;padding-bottom:4rem}.gallery-page .gallery-loader{height:80vh;display:flex;justify-content:center;align-items:center}.gallery-page .gallery-loader .spinner{color:#800020;animation:spin 1s linear infinite}.gallery-page .gallery-hero{text-align:center;padding:6rem 1rem 4rem;background:linear-gradient(180deg,#fff,#fdfbfb)}.gallery-page .gallery-hero .hero-content{max-width:800px;margin:0 auto}.gallery-page .gallery-hero .hero-content h1{font-family:Playfair Display,serif;font-size:3.5rem;color:#800020;margin-bottom:1rem;font-weight:400;letter-spacing:-.5px}.gallery-page .gallery-hero .hero-content p{font-size:1.1rem;color:#666;margin-bottom:2rem;font-weight:300;letter-spacing:.5px}.gallery-page .gallery-hero .hero-content .separator{width:60px;height:2px;background-color:#800020;margin:0 auto;opacity:.6}.gallery-page .gallery-container{max-width:1400px;margin:0 auto;padding:0 1.5rem}.gallery-page .gallery-container .masonry-grid{column-count:4;column-gap:1.5rem}.gallery-page .gallery-container .masonry-grid .gallery-item{break-inside:avoid;margin-bottom:1.5rem;position:relative;cursor:pointer}.gallery-page .gallery-container .masonry-grid .gallery-item .image-wrapper{position:relative;border-radius:8px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.08);transition:transform .4s cubic-bezier(.25,.46,.45,.94)}.gallery-page .gallery-container .masonry-grid .gallery-item .image-wrapper .gallery-img{width:100%;height:auto;display:block;transition:transform .6s ease}.gallery-page .gallery-container .masonry-grid .gallery-item .image-wrapper .overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(128,0,32,.4);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;color:#fff;padding:1rem;text-align:center}.gallery-page .gallery-container .masonry-grid .gallery-item .image-wrapper .overlay .zoom-icon{transform:translateY(20px);transition:transform .3s ease}.gallery-page .gallery-container .masonry-grid .gallery-item .image-wrapper .overlay .img-title{margin-top:10px;font-size:1rem;font-weight:500;letter-spacing:1px;transform:translateY(20px);transition:transform .3s ease .1s}.gallery-page .gallery-container .masonry-grid .gallery-item:hover .image-wrapper{transform:translateY(-5px);box-shadow:0 10px 30px rgba(128,0,32,.15)}.gallery-page .gallery-container .masonry-grid .gallery-item:hover .image-wrapper .gallery-img{transform:scale(1.05)}.gallery-page .gallery-container .masonry-grid .gallery-item:hover .image-wrapper .overlay{opacity:1}.gallery-page .gallery-container .masonry-grid .gallery-item:hover .image-wrapper .overlay .img-title,.gallery-page .gallery-container .masonry-grid .gallery-item:hover .image-wrapper .overlay .zoom-icon{transform:translateY(0)}.gallery-page .gallery-container .empty-gallery{text-align:center;padding:4rem;color:#999;font-style:italic}.gallery-page .lightbox-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.95);z-index:9999;display:flex;justify-content:center;align-items:center;padding:2rem}.gallery-page .lightbox-overlay .lightbox-content{position:relative;max-width:90vw;max-height:90vh}.gallery-page .lightbox-overlay .lightbox-content .close-btn{position:absolute;top:-50px;right:0;background:none;border:none;color:#fff;cursor:pointer;opacity:.8;transition:opacity .2s}.gallery-page .lightbox-overlay .lightbox-content .close-btn:hover{opacity:1;transform:scale(1.1)}.gallery-page .lightbox-overlay .lightbox-content .lightbox-image-container{border-radius:4px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5)}.gallery-page .lightbox-overlay .lightbox-content .lightbox-image-container .lightbox-img{width:auto;height:auto;max-width:100%;max-height:80vh;object-fit:contain;display:block}.gallery-page .lightbox-overlay .lightbox-content .lightbox-caption{margin-top:1rem;text-align:center;color:#fff}.gallery-page .lightbox-overlay .lightbox-content .lightbox-caption h3{font-weight:400;letter-spacing:1px;font-size:1.1rem}@media(max-width:1200px){.gallery-page .gallery-container .masonry-grid{column-count:3}}@media(max-width:768px){.gallery-page .gallery-container .masonry-grid{column-count:2;column-gap:1rem}.gallery-page .gallery-hero .hero-content h1{font-size:2.5rem}}@media(max-width:480px){.gallery-page .gallery-container .masonry-grid{column-count:1}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}