.company-gallery { background: var(--dark); padding: 1rem 0 6rem; overflow: hidden; }
.gallery-heading { text-align: center; padding-bottom: 2.5rem; }
.gallery-heading .h2 { margin-bottom: .75rem; }
.gallery-heading .body-text { max-width: 42rem; margin: 0 auto; }
.gallery-viewport { width: 100%; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; touch-action: pan-x; cursor: grab; }
.gallery-viewport::-webkit-scrollbar { display: none; }
.gallery-viewport:active { cursor: grabbing; }
.gallery-track { display: flex; width: max-content; gap: 1rem; padding: .5rem 0 1rem; animation: galleryMarquee 55s linear infinite; will-change: transform; }
.gallery-viewport:hover .gallery-track, .gallery-viewport.is-dragging .gallery-track { animation-play-state: paused; }
.gallery-card { width: calc((100vw - 5rem) / 6); min-width: 210px; border: 1px solid rgba(198,165,92,.24); border-radius: 10px; overflow: hidden; background: #151515; box-shadow: 0 12px 30px rgba(0,0,0,.25); padding: 0; color: inherit; text-align: left; cursor: zoom-in; }
.gallery-card-media { display: block; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; background: #0d0d0d; }
.gallery-card img { width: 100%; height: 100%; display: block; object-fit: contain; transition: transform .45s ease; }
.gallery-card:hover img { transform: scale(1.045); }
.gallery-card-copy { display: flex; min-height: 74px; flex-direction: column; justify-content: center; gap: .3rem; padding: .85rem 1rem .95rem; border-top: 1px solid rgba(198,165,92,.16); }
.gallery-card-copy strong { color: #f4f0e8; font-family: 'Playfair Display', serif; font-size: 1rem; font-weight: 500; line-height: 1.25; }
.gallery-card-copy > span { color: #9ca3af; font-size: .76rem; line-height: 1.4; letter-spacing: .04em; }
.gallery-status { min-height: 1.5rem; color: #6b7280; text-align: center; font-size: .8rem; padding: 1rem; }
.gallery-more-wrap { display: flex; justify-content: center; padding: .5rem 1rem 0; }
.gallery-more-btn { min-height: 46px; padding: .75rem 1.5rem; border: 1px solid rgba(198,165,92,.65); background: transparent; color: var(--gold); font: 600 .72rem 'Inter', sans-serif; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; transition: background .25s ease, color .25s ease; }
.gallery-more-btn:hover { background: var(--gold); color: #090909; }
.gallery-more-btn[hidden], .gallery-all[hidden] { display: none; }
.gallery-all { width: min(1200px, calc(100% - 2rem)); margin: 2.5rem auto 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; scroll-margin-top: 6rem; }
.gallery-all .gallery-card { width: 100%; min-width: 0; }
.gallery-all .gallery-card:hover img { transform: scale(1.025); }
@keyframes galleryMarquee { to { transform: translateX(calc(-50% - .5rem)); } }
.gallery-lightbox { position: fixed; inset: 0; z-index: 12000; display: none; place-items: center; background: rgba(0,0,0,.94); padding: 1.5rem 5rem; }
.gallery-lightbox.is-open { display: grid; }
.gallery-lightbox figure { position: relative; width: min(460px, calc(92vh * .8), 82vw); aspect-ratio: 4 / 5; margin: 0; overflow: hidden; border: 1px solid rgba(198,165,92,.4); border-radius: 10px; background: #080808; box-shadow: 0 18px 60px #000; }
.gallery-lightbox img { width: 100%; height: 100%; display: block; object-fit: contain; }
.gallery-lightbox figcaption { position: absolute; right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; gap: .28rem; margin: 0; padding: 4.5rem 1.25rem 1.2rem; color: #d1d5db; text-align: left; background: linear-gradient(transparent, rgba(0,0,0,.92)); pointer-events: none; }
.gallery-lightbox figcaption strong { color: #fff; font-family: 'Playfair Display', serif; font-size: 1.2rem; font-weight: 500; }
.gallery-lightbox figcaption span { font-size: .8rem; line-height: 1.35; }
.gallery-lightbox-close, .gallery-lightbox-nav { position: absolute; border: 1px solid rgba(198,165,92,.4); background: rgba(0,0,0,.7); color: var(--gold); cursor: pointer; width: 48px; height: 48px; border-radius: 50%; font-size: 2rem; line-height: 1; }
.gallery-lightbox-close { top: 1.25rem; right: 1.25rem; }
.gallery-lightbox-prev { left: 1.25rem; top: 50%; }
.gallery-lightbox-next { right: 1.25rem; top: 50%; }
@media (max-width: 1024px) { .gallery-card { width: calc((100vw - 3rem) / 3); } .gallery-all { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .company-gallery { padding-bottom: 4rem; } .gallery-card { width: 62vw; min-width: 190px; } .gallery-all { width: min(100% - 1.5rem, 560px); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; } .gallery-all .gallery-card-copy { min-height: 62px; padding: .7rem .75rem; } .gallery-lightbox { padding: 4.25rem 1rem 5.25rem; } .gallery-lightbox figure { width: min(88vw, calc((100vh - 9.5rem) * .8)); } .gallery-lightbox-nav { top: auto; bottom: 1rem; } }
@media (prefers-reduced-motion: reduce) { .gallery-track { animation: none; } }
