/* Modern two-image catalog gallery */
.project-gallery { position: relative; margin: 0 auto; }
.project-gallery-viewport { overflow: hidden; border-radius: 18px; background: #f4f4f4; box-shadow: 0 18px 45px rgba(0,0,0,.12); }
.project-gallery-track { display: flex; transition: transform .45s cubic-bezier(.22,.61,.36,1); }
.project-gallery-spread { min-width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 14px; box-sizing: border-box; }
.project-gallery-item { position: relative; display: block; overflow: hidden; min-height: 260px; border-radius: 12px; background: #ddd; cursor: zoom-in; }
.project-gallery-item::after { content: '＋'; position: absolute; right: 14px; bottom: 12px; width: 34px; height: 34px; border-radius: 50%; color: #fff; background: rgba(0,0,0,.58); text-align: center; line-height: 32px; font-size: 22px; opacity: 0; transform: translateY(6px); transition: .25s ease; }
.project-gallery-item:hover::after, .project-gallery-item:focus-visible::after { opacity: 1; transform: translateY(0); }
.project-gallery-item img { display: block; width: 100%; height: 360px; object-fit: cover; transition: transform .45s ease; }
.project-gallery-item:hover img, .project-gallery-item:focus-visible img { transform: scale(1.045); }
.project-gallery-controls { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 18px; }
.project-gallery-button { border: 0; width: 42px; height: 42px; border-radius: 50%; color: #fff; background: #222; font-size: 24px; line-height: 1; transition: background .2s, transform .2s; }
.project-gallery-button:hover, .project-gallery-button:focus-visible { background: #c59d5f; transform: translateY(-2px); outline: none; }
.project-gallery-counter { min-width: 74px; color: #777; text-align: center; font-size: 13px; letter-spacing: .08em; }
.project-gallery-modal { position: fixed; z-index: 9999; inset: 0; display: none; align-items: center; justify-content: center; padding: 30px; background: rgba(10,10,12,.94); }
.project-gallery-modal.is-open { display: flex; }
.project-gallery-modal img { max-width: min(92vw, 1400px); max-height: 84vh; object-fit: contain; border-radius: 8px; box-shadow: 0 20px 70px rgba(0,0,0,.5); }
.project-gallery-modal-button { position: fixed; border: 0; color: #fff; background: rgba(255,255,255,.12); width: 48px; height: 48px; border-radius: 50%; font-size: 28px; line-height: 1; transition: background .2s; }
.project-gallery-modal-button:hover, .project-gallery-modal-button:focus-visible { background: #c59d5f; outline: none; }
.project-gallery-modal-close { top: 22px; right: 24px; }
.project-gallery-modal-prev { left: 24px; }
.project-gallery-modal-next { right: 24px; }
.project-gallery-modal-caption { position: fixed; bottom: 22px; left: 0; right: 0; color: rgba(255,255,255,.8); text-align: center; font-size: 13px; }
body.gallery-modal-open { overflow: hidden; }
@media (max-width: 767px) {
  .project-gallery-spread { grid-template-columns: 1fr; gap: 10px; padding: 10px; }
  .project-gallery-item { min-height: 0; }
  .project-gallery-item img { height: 260px; }
  .project-gallery-modal { padding: 16px; }
  .project-gallery-modal-prev { left: 10px; }
  .project-gallery-modal-next { right: 10px; }
}