 /* ── Gallery grid ── */
    .gallery-grid {
      columns: 3 280px;
      column-gap: 1rem;
      padding: 0 1rem;
    }
 
    .gallery-item {
      break-inside: avoid;
      margin-bottom: 1rem;
      border-radius: var(--card-radius);
      overflow: hidden;
      cursor: pointer;
      position: relative;
      display: block;
    }
 
    .gallery-item img {
      width: 100%;
      display: block;
      transition: transform .5s cubic-bezier(.25,.46,.45,.94);
      border-radius: var(--card-radius);
    }
 
    .gallery-item .overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(28,28,30,.65) 0%, transparent 55%);
      opacity: 0;
      transition: opacity .35s ease;
      border-radius: var(--card-radius);
      display: flex;
      align-items: flex-end;
      padding: 1rem 1.1rem;
    }
 

 
    .gallery-item:hover img { transform: scale(1.04); }
    .gallery-item:hover .overlay { opacity: 1; }
    .gallery-item:hover .overlay-text { transform: translateY(0); }
 
    /* ── Lightbox ── */
    .lightbox-modal .modal-content {
      background: var(--charcoal);
      border: none;
      border-radius: 6px;
    }
 
    .lightbox-modal .modal-body {
      padding: 0;
      position: relative;
    }
 
    .lightbox-modal .modal-body img {
      width: 100%;
      max-height: 80vh;
      object-fit: contain;
      display: block;
      border-radius: 6px 6px 0 0;
    }
 
    .lightbox-modal .modal-footer {
      background: var(--charcoal);
      border: none;
      padding: 1rem 1.5rem;
      display: flex;
      justify-content: space-between;
      align-items: center;
      border-radius: 0 0 6px 6px;
    }
 
    .lightbox-modal .caption-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.15rem;
      color: #fff;
      font-weight: 300;
      margin: 0;
    }
 
    .lightbox-modal .caption-tag {
      font-size: .7rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--accent);
    }
 
    .lightbox-modal .btn-close {
      position: absolute;
      top: .8rem;
      right: .9rem;
      filter: invert(1);
      opacity: .7;
      z-index: 10;
    }
 