/* ══════════════════════════════════════════
   portfolio.css — estilos exclusivos da
   página portfolio.php
══════════════════════════════════════════ */

/* ── Navbar sempre escura nesta página ── */
.pg-portfolio #nav { background:rgba(31,31,31,.97); }
.nav-ativo { color:var(--am) !important; }

/* ── Hero interno ── */
.port-hero {
  background:var(--preto);
  padding:100px 0 52px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.port-hero-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.port-hero-titulo {
  font-size:clamp(26px,3.5vw,42px);
  font-weight:700;
  color:var(--bco);
  margin:6px 0 8px;
  line-height:1.15;
}
.port-hero-sub {
  font-size:14px;
  color:rgba(255,255,255,.55);
  max-width:400px;
}

/* ── Filtros ── */
.port-filtros-sec {
  padding:20px 0;
  border-bottom:1px solid #ebebeb;
  position:sticky;
  top:60px;
  z-index:100;
  background:var(--bco);
  box-shadow:0 2px 8px rgba(0,0,0,.05);
}
.port-filtros {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.filtro-btn {
  font-family:'Poppins',sans-serif;
  font-size:12px;
  font-weight:600;
  color:var(--cinza);
  background:transparent;
  border:1.5px solid #e0e0e0;
  padding:7px 16px;
  border-radius:30px;
  cursor:pointer;
  transition:var(--t);
  letter-spacing:.2px;
}
.filtro-btn:hover {
  border-color:var(--am);
  color:var(--preto);
}
.filtro-btn.ativo {
  background:var(--am);
  border-color:var(--am);
  color:var(--preto);
}

/* ── Galeria principal ── */
.port-galeria { padding:52px 0 60px; }

.port-categoria {
  margin-bottom:52px;
  transition:var(--t);
}
.port-categoria.escondida { display:none; }

.port-cat-titulo {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:16px;
  font-weight:600;
  color:var(--preto);
  margin-bottom:18px;
  padding-bottom:12px;
  border-bottom:2px solid var(--am);
  width:fit-content;
}
.port-cat-titulo svg { color:var(--am); }

/* ── Masonry via Flex (igual Gaya) ── */
.port-cat-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-start;
}
.port-cat-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}
.port-item {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  cursor: pointer;
  background: #111;
  width: 100%;
}
.port-item img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transition: transform .45s ease, filter .35s ease;
  opacity: 0;
}
.port-item img.loaded {
  opacity: 1;
}
.port-item:hover img {
  transform: scale(1.04);
  filter: brightness(.75);
}

/* Sem aspect-ratio fixo — imagem define a altura naturalmente */
.port-item img {
  width:100%;
  height:auto;
  min-height:120px;
  object-fit:cover;
  object-position:top center;
  display:block;
  transition:transform .45s ease, filter .35s ease;
  filter:brightness(.95);
}
.port-item:hover img {
  transform:scale(1.04);
  filter:brightness(1);
}

.port-ov {
  position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(31,31,31,.75) 0%, transparent 55%);
  opacity:0;
  transition:opacity .3s ease;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  padding:14px 16px;
}
.port-item:hover .port-ov { opacity:1; }

.port-ov-titulo {
  font-size:12px;
  font-weight:600;
  color:var(--bco);
  line-height:1.3;
  max-width:80%;
}
.port-ov-zoom svg { color:rgba(255,255,255,.8); }

/* Estado vazio */
.port-vazio {
  text-align:center;
  padding:60px 0;
  color:var(--cinza);
}
.port-vazio svg { color:#ddd; margin-bottom:12px; }
.port-vazio p { font-size:14px; }

/* ── CTA final ── */
.port-cta {
  background:var(--preto);
  padding:52px 0;
}
.port-cta-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.port-cta h2 {
  font-size:clamp(20px,2.5vw,30px);
  font-weight:700;
  color:var(--bco);
  line-height:1.25;
}
.port-cta p {
  font-size:13px;
  color:rgba(255,255,255,.5);
  margin-top:6px;
}
.port-cta-btns {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
}

/* ── LIGHTBOX ── */
.lb-overlay {
  position:fixed; inset:0; z-index:9999;
  background:rgba(10,10,10,.96);
  display:none;
  align-items:center;
  justify-content:center;
  padding: 52px 60px 16px;
  box-sizing: border-box;
}
.lb-overlay.aberto { display:flex; }

.lb-conteudo {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  max-height: calc(100vh - 52px);
  overflow: visible;
}
.lb-titulo {
  display: none;
}

.lb-fechar {
  position:fixed; top:16px; right:20px;
  background:rgba(255,255,255,.1);
  border:none; border-radius:50%;
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:var(--t);
  z-index:10000;
}
.lb-fechar svg { color:var(--bco); }
.lb-fechar:hover { background:rgba(255,255,255,.2); }

.lb-nav {
  position:fixed;
  top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.1);
  border:none; border-radius:50%;
  width:48px; height:48px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:var(--t);
  z-index:10000;
}
.lb-nav svg  { color:var(--bco); }
.lb-nav:hover { background:var(--am); }
.lb-nav:hover svg { color:var(--preto); }
.lb-prev { left:16px; }
.lb-next { right:16px; }

/* ── Responsivo ── */
@media (max-width:768px) {
  .port-cat-col:nth-child(n+3) { display:none; }
  .port-cta-inner { flex-direction:column; text-align:center; }
  .port-cta-btns  { justify-content:center; }
  .port-hero-inner { flex-direction:column; text-align:center; }
}
@media (max-width:480px) {
  .port-cat-col:nth-child(n+2) { display:none; }
  .lb-nav { display:none; }
}

/* Badge categoria no lightbox */
.lb-badge-cat {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(0,0,0,.55);
  color: rgba(255,255,255,.9);
  font-family: 'Poppins', sans-serif;
  font-size: 11px;
  font-weight: 500;
  padding: 4px 10px;
  border-radius: 20px;
  pointer-events: none;
  backdrop-filter: blur(4px);
  letter-spacing: .3px;
}

/* ── LIGHTBOX — Assinatura ── */
.lb-img-wrap {
  position: relative;
  display: inline-block;
  line-height: 0;
}
.lb-img-wrap img {
  max-width: calc(100vw - 120px);
  max-height: calc(100vh - 140px);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 6px;
  display: block;
}
.lb-assinatura {
  position: absolute;
  bottom: 14px;
  right: 14px;
  pointer-events: none;
  opacity: .85;
}
.lb-logo {
  height: auto;
  width: auto;
  max-height: 80px;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,.7));
  display: block;
}

/* Estrelas abaixo da foto — sempre visíveis */
.lb-rating-bar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px 12px 0;
  width: 100%;
}
.lb-rating-bar .lb-stars,
.lb-rating-bar .lb-rating-info {
  pointer-events: all;
}
.lb-stars {
  display: flex;
  gap: 6px;
}
.lb-star {
  background: none;
  border: none;
  cursor: pointer;
  padding: 2px;
  transition: transform .15s;
}
.lb-star:hover { transform: scale(1.2); }
.lb-star svg {
  width: 30px;
  height: 30px;
  color: rgba(255,255,255,.75);
  transition: color .15s, fill .15s;
}
.lb-star.ativo svg,
.lb-star.hover svg {
  color: #FFC107;
  fill: #FFC107;
}
.lb-rating-info {
  font-size: 12px;
  color: rgba(255,255,255,.85);
  font-family: 'Poppins', sans-serif;
  margin: 0;
}
.lb-rating-info.votado {
  color: #FFC107;
}
.lb-cat-nome {
  font-size: 11px;
  color: rgba(255,255,255,.5);
  font-family: 'Poppins', sans-serif;
  margin: 0;
  letter-spacing: .4px;
  text-transform: uppercase;
}

@media (max-width: 768px) {
  .lb-overlay { padding: 48px 8px 8px; }
  .lb-img-wrap img {
    max-width: calc(100vw - 16px);
    max-height: calc(100vh - 80px);
  }
}

/* ── Estrelas no hover da galeria ── */
.port-ov-stars {
  display: flex;
  gap: 2px;
  align-items: center;
}
.port-ov-star {
  background: none;
  border: none;
  cursor: pointer;
  padding: 1px;
  line-height: 0;
  transition: transform .12s;
}
.port-ov-star:hover { transform: scale(1.25); }
.port-ov-star svg {
  width: 18px;
  height: 18px;
  color: rgba(255,255,255,.4);
  transition: color .12s, fill .12s;
  pointer-events: none;
}
.port-ov-star.ativo svg,
.port-ov-star.hover-on svg {
  color: #FFC107;
  fill: #FFC107;
}

.port-ov-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
