.service-gallery{max-width:1400px;margin:0 auto;padding:0 var(--spacing-md) var(--spacing-xl)}.gallery-container{width:100%}.gallery-header{text-align:center;margin-bottom:var(--spacing-xl);opacity:1!important;visibility:visible!important;transform:translateY(0)!important}.gallery-title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:700;letter-spacing:-.03em;margin-bottom:var(--spacing-xs);color:var(--color-text)}.gallery-subtitle{font-family:var(--font-body);font-size:1rem;color:var(--color-text-light);font-weight:500}.gallery-count{color:var(--color-text);font-weight:600}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md)}.gallery-item{position:relative;aspect-ratio:4 / 3;overflow:hidden;background:var(--color-secondary);cursor:pointer;border-radius:8px;transition:transform var(--transition-base),box-shadow var(--transition-base);opacity:1!important;visibility:visible!important;transform:scale(1)!important}.gallery-item:hover{box-shadow:0 8px 24px #00000026;z-index:10}.gallery-item-image{width:100%;height:100%;position:relative;overflow:hidden}.gallery-item-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--transition-base)}.gallery-item-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0000;display:flex;align-items:center;justify-content:center;transition:background var(--transition-base);pointer-events:none}.gallery-item:hover .gallery-item-overlay{background:#0000004d}.gallery-view-icon{font-size:2rem;opacity:0;transform:scale(.8);transition:opacity var(--transition-base),transform var(--transition-base)}.gallery-item:hover .gallery-view-icon{opacity:1;transform:scale(1)}.gallery-placeholder{width:100%;height:100%;border:2px dashed;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.5rem;font-weight:600;opacity:.5;transition:all var(--transition-base)}.gallery-item:hover .gallery-placeholder{opacity:.8;transform:scale(1.05)}.gallery-placeholder{position:absolute;top:0;left:0;width:100%;height:100%}.gallery-load-more{display:flex;justify-content:center;gap:var(--spacing-sm);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);opacity:1!important;visibility:visible!important}.load-more-button,.load-all-button{font-family:var(--font-body);font-size:.95rem;font-weight:500;padding:.9rem 2.5rem;border:1px solid rgba(0,0,0,.2);background:var(--color-white);color:var(--color-text);cursor:pointer;letter-spacing:.05em;transition:all var(--transition-base)}.load-more-button:hover{background:var(--color-black);color:var(--color-white);border-color:var(--color-black)}.load-all-button{background:transparent;border-color:#0000001a}.load-all-button:hover{background:var(--color-secondary);border-color:var(--color-text)}.gallery-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;z-index:10000;display:flex;align-items:center;justify-content:center;padding:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.gallery-modal-content{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;pointer-events:none}.gallery-modal-image-wrapper{display:flex;align-items:center;justify-content:center;max-width:min(90vw,1200px);max-height:82vh;pointer-events:auto}.gallery-modal-image{max-width:min(90vw,1200px);max-height:82vh;width:auto;height:auto;object-fit:contain;display:block;border-radius:4px}.gallery-modal-close{position:fixed;top:32px;right:32px;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:1.5rem;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s cubic-bezier(.4,0,.2,1),border-color .3s,transform .3s;line-height:1;padding:0;z-index:10003;font-weight:300;pointer-events:auto}.gallery-modal-close:before{content:"×";display:flex;align-items:center;justify-content:center;width:100%;height:100%}.gallery-modal-close:hover{background:#ffffff40;border-color:#fff6;transform:scale(1.05) rotate(90deg)}.gallery-modal-prev,.gallery-modal-next{position:fixed;top:50%;transform:translateY(-50%);background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);color:#fff;width:56px;height:56px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s cubic-bezier(.4,0,.2,1),border-color .3s,transform .3s;padding:0;z-index:10002;pointer-events:auto}.gallery-modal-prev:before,.gallery-modal-next:before{content:"";width:10px;height:10px;border-top:2px solid white;border-right:2px solid white;display:block;transition:all .3s ease}.gallery-modal-prev:before{transform:rotate(-135deg);margin-right:2px}.gallery-modal-next:before{transform:rotate(45deg);margin-left:2px}.gallery-modal-prev{left:clamp(24px,7vw,120px)}.gallery-modal-next{right:clamp(24px,7vw,120px)}.gallery-modal-prev:hover,.gallery-modal-next:hover{background:#ffffff40;border-color:#fff6;transform:translateY(-50%) scale(1.08)}.gallery-modal-prev:hover:before,.gallery-modal-next:hover:before{border-color:#ffffffe6}.gallery-modal-info{position:fixed;left:50%;bottom:40px;transform:translate(-50%);margin-top:0;color:#fff;font-family:var(--font-body);font-size:1rem;font-weight:600;text-align:center;z-index:10002;pointer-events:none;text-shadow:0 2px 8px rgba(0,0,0,.7);background:#00000073;padding:8px 16px;border-radius:20px}@media (max-width: 768px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-sm)}.gallery-load-more{flex-direction:column;align-items:center}.load-more-button,.load-all-button{width:100%;max-width:300px}.gallery-modal-image-wrapper,.gallery-modal-image{max-width:92vw;max-height:78vh}.gallery-modal-close{top:20px;right:20px;width:44px;height:44px}.gallery-modal-close:active{transform:scale(.95) rotate(90deg);background:#fff3}.gallery-modal-prev,.gallery-modal-next{width:52px;height:52px}.gallery-modal-prev:before,.gallery-modal-next:before{width:9px;height:9px}.gallery-modal-prev{left:clamp(16px,5vw,48px)}.gallery-modal-next{right:clamp(16px,5vw,48px)}.gallery-modal-prev:active,.gallery-modal-next:active{transform:translateY(-50%) scale(.95);background:#fff3}.gallery-modal-info{bottom:24px;font-size:.95rem}}
