/* Gallery */
.gallery { overflow: hidden; padding-bottom: 76px; background: #101a2b; color: #f5f8fc; }
.gallery__inner { width: calc(100% - 64px); max-width: 1320px; margin-inline: auto; }
.gallery__heading { padding: 72px 0 36px; background: radial-gradient(ellipse at 85% 0, rgba(40, 91, 100, .27), transparent 65%); }
.gallery__eyebrow { display: block; margin-bottom: 20px; color: #8cddcb; font-size: 12px; font-weight: 700; line-height: 1.5; letter-spacing: 2.5px; }
.gallery h1 { color: #fff; font-size: clamp(40px, 5vw, 70px); font-weight: 500; line-height: 1.1; letter-spacing: -2px; }
.gallery__heading p { max-width: 660px; margin: 24px 0 32px; color: #c3cedc; font-size: 18px; line-height: 1.75; }
.gallery__meta { display: flex; align-items: center; gap: 24px; padding-top: 22px; border-top: 1px solid rgba(120, 147, 172, .208); color: #aebed0; font-size: 14px; }
.gallery__meta > span:first-child { color: #8cddcb; font-weight: 700; }
.gallery__meta > span:last-child { margin-left: auto; }

.gallery__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.gallery__grid a { position: relative; display: block; overflow: hidden; border: 1px solid rgba(117, 138, 160, .19); border-radius: 15px; background: #22334a; }
.gallery__grid img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; transition: transform .6s cubic-bezier(.2, .7, .2, 1), filter .4s; }
.gallery__grid a::after {
  content: "↗";
  position: absolute;
  right: 18px;
  bottom: 18px;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #e5fff3;
  color: #153f3b;
  font: 24px/1 Arial, sans-serif;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .25s, transform .25s;
}
.gallery__grid a:hover img { transform: scale(1.045); filter: brightness(1.05); }
.gallery__grid a:hover::after, .gallery__grid a:focus-visible::after { opacity: 1; transform: none; }
.gallery__grid a:focus-visible { outline: 3px solid #8cddcb; outline-offset: -4px; }

/* Lightbox (created by main.js) */

@media (max-width: 1000px) { .gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .gallery { padding-bottom: 44px; }
  .gallery__inner { width: calc(100% - 36px); }
  .gallery__heading { padding: 44px 0 24px; }
  .gallery__heading p { font-size: 17px; }
  .gallery__meta { flex-wrap: wrap; gap: 12px 20px; }
  .gallery__meta > span:last-child { width: 100%; margin-left: 0; }
  .gallery__grid { grid-template-columns: 1fr; gap: 16px; }
  .gallery__grid a::after { opacity: 1; transform: none; }
}
