.gallery figure{cursor:zoom-in;isolation:isolate;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s}
.gallery figure::after{content:'AMPLIAR  ↗';position:absolute;z-index:3;right:18px;top:18px;padding:10px 13px;background:rgba(8,29,27,.82);border:1px solid rgba(216,180,107,.65);color:#e3c27d;font:600 8px Montserrat,sans-serif;letter-spacing:1.7px;opacity:0;transform:translateY(-8px);transition:.35s;backdrop-filter:blur(8px)}
.gallery figure:hover{transform:translateY(-7px);box-shadow:0 22px 42px rgba(5,20,18,.28)}
.gallery figure:hover::after{opacity:1;transform:translateY(0)}
.gallery figure:hover img{transform:scale(1.09) rotate(.25deg);filter:saturate(1.08) contrast(1.04)}
.lightbox{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:40px;background:rgba(3,14,13,.94);backdrop-filter:blur(16px);opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.lightbox.open{opacity:1;visibility:visible}
.lightbox-stage{position:relative;max-width:min(1180px,88vw);max-height:86vh;transform:scale(.94);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.lightbox.open .lightbox-stage{transform:scale(1)}
.lightbox-image{display:block;max-width:100%;max-height:78vh;object-fit:contain;box-shadow:0 30px 90px #000}
.lightbox-caption{text-align:center;margin-top:17px;color:#e9d7ad;font:500 22px 'Cormorant Garamond',serif}
.lightbox-close,.lightbox-nav{position:absolute;border:1px solid rgba(216,180,107,.45);background:rgba(8,29,27,.85);color:#e3c27d;cursor:pointer;transition:.25s}
.lightbox-close{right:22px;top:18px;width:48px;height:48px;font-size:25px}
.lightbox-nav{top:50%;transform:translateY(-50%);width:52px;height:60px;font-size:28px}
.lightbox-prev{left:20px}
.lightbox-next{right:20px}
.lightbox-close:hover,.lightbox-nav:hover{background:#d8b46b;color:#081d1b}
.lightbox-counter{position:absolute;left:25px;top:28px;color:#d8b46b;font-size:9px;letter-spacing:2px}
@media(max-width:700px){.gallery figure::after{opacity:1;transform:none;top:12px;right:12px}
.lightbox{padding:65px 14px}
.lightbox-stage{max-width:96vw}
.lightbox-image{max-height:70vh}
.lightbox-nav{top:auto;bottom:18px;transform:none}
.lightbox-prev{left:calc(50% - 62px)}
.lightbox-next{right:calc(50% - 62px)}
.lightbox-close{top:12px;right:12px}
.lightbox-counter{top:28px;left:18px}
}
body.lightbox-lock{overflow:hidden}

/* Galeria de trabalhos: oito fotos reais, em quadros verticais completos. */
.cases-gallery {
  height: auto;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: none;
  grid-auto-rows: auto;
  align-items: stretch;
  gap: 24px;
}
.cases-gallery figure {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--dark);
}
.case-photo { aspect-ratio: 3 / 4; overflow: hidden; background: #102925; }
.cases-gallery .case-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.cases-gallery figure:hover img { transform: scale(1.025); filter: none; }
.cases-gallery figcaption {
  position: static;
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 20px 18px;
  background: var(--dark);
}
.cases-gallery figcaption span { flex: 0 0 auto; font-size: 12px; line-height: 1.5; }
.cases-gallery figcaption b { margin: 0; font-size: 23px; line-height: 1.2; }
.cases-gallery figure::after { top: 12px; right: 12px; font-size: 12px; letter-spacing: .08em; }
.cases-gallery figure:focus-visible::after { opacity: 1; transform: none; }
.cases .head p { font-size: 16px; }
@media (max-width: 1100px) {
  .cases-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
}
@media (max-width: 560px) {
  .cases-gallery { grid-template-columns: minmax(0, 1fr); max-width: 420px; margin-inline: auto; gap: 26px; }
  .cases-gallery figcaption { padding: 20px; }
}
