/* ---------- Banco de Imagens ---------- */
.banco-hero{padding:56px 0 32px;}
.banco-hero__lead{color:var(--ink-soft);font-size:1.05rem;max-width:62ch;margin-top:16px;}

.banco-search{padding-bottom:32px;}
.banco-search__bar{
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:999px;
  padding:14px 20px;
  box-shadow:var(--shadow-diffuse);
  transition:background-color .3s var(--ease), border-color .3s var(--ease);
}
.banco-search__icon{stroke:var(--muted);fill:none;stroke-width:2;stroke-linecap:round;width:20px;height:20px;flex:none;}
.banco-search__input{
  flex:1;
  border:none;
  outline:none;
  background:transparent;
  color:var(--ink);
  font-family:var(--font-body);
  font-size:1rem;
}
.banco-search__input::placeholder{color:var(--muted);}
.banco-search__input::-webkit-search-cancel-button{cursor:pointer;}

.banco-chips{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:20px;
}
.banco-chip{
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--ink-soft);
  font-size:.85rem;
  font-weight:600;
  padding:8px 16px;
  border-radius:999px;
  cursor:pointer;
  transition:background-color .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease), transform .2s var(--ease);
}
.banco-chip:hover{border-color:var(--accent);transform:translateY(-1px);}
.banco-chip.is-active{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);color:var(--btn-primary-text);}

.banco-search__count{margin-top:16px;font-size:.85rem;color:var(--muted);}

.banco-gallery{padding-bottom:96px;min-height:40vh;}
.banco-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:20px;
}

.banco-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease), background-color .3s var(--ease);
}
.banco-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-diffuse);border-color:var(--accent);}
.banco-card__img{
  aspect-ratio:4/3;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
}
.banco-card__img img{max-width:100%;max-height:100%;object-fit:contain;}
.banco-card--broken .banco-card__img{position:relative;}
.banco-card--broken .banco-card__img img{opacity:0;}
.banco-card--broken .banco-card__img::after{
  content:"Imagem indisponível";
  position:absolute;
  font-size:.78rem;
  color:var(--muted);
  text-align:center;
  padding:0 12px;
}
.banco-card__body{
  padding:16px 18px 6px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.banco-card__fabrica{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-dark);}
.banco-card__nome{font-weight:700;font-size:.98rem;color:var(--ink);line-height:1.3;}
.banco-card__ref{font-size:.8rem;color:var(--muted);}
.banco-card__link{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.82rem;
  font-weight:600;
  color:var(--ink-soft);
  padding:12px 18px 16px;
  margin-top:auto;
  transition:color .2s var(--ease);
}
.banco-card__link:hover{color:var(--accent);}

.banco-state{
  grid-column:1 / -1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:80px 20px;
  text-align:center;
  color:var(--ink-soft);
}
.banco-state span{color:var(--muted);font-size:.9rem;max-width:40ch;}
.banco-spinner{
  width:32px;
  height:32px;
  border-radius:50%;
  border:3px solid var(--border);
  border-top-color:var(--accent);
  animation:banco-spin .8s linear infinite;
  margin-bottom:8px;
}
@keyframes banco-spin{to{transform:rotate(360deg);}}

@media (max-width: 620px){
  .banco-grid{grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));gap:14px;}
  .banco-card__body{padding:12px 14px 4px;}
  .banco-card__link{padding:10px 14px 14px;}
}
