/* Portfolio nacional. Tokens vindos do design system (--ds-*). */
.pf-hero .ds-hero__bg img{object-fit:cover;width:100%;height:100%}
.pf-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.6rem 0 0}
.pf-filters--sub{margin-top:.6rem}
.pf-chip{font:inherit;font-size:.86rem;font-weight:600;cursor:pointer;border:1px solid var(--ds-line,#d9d2c4);
  background:#fff;color:var(--ds-ink,#14213d);border-radius:999px;padding:.5rem .95rem;line-height:1.1;
  display:inline-flex;align-items:center;gap:.4rem;transition:background .15s,border-color .15s,color .15s}
.pf-chip span{font-weight:500;opacity:.55;font-size:.78em}
.pf-chip:hover{border-color:var(--ds-gold,#c9a227)}
.pf-chip.is-on{background:var(--ds-night,#14213d);border-color:var(--ds-night,#14213d);color:#fff}
.pf-chip.is-on span{opacity:.7}
.pf-chip--sm{padding:.38rem .8rem;font-size:.8rem}
.pf-count{margin:1.1rem 0 .2rem;font-size:.86rem;color:var(--ds-ink-soft,#5b6478)}
.pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.1rem;margin-top:1rem}
.pf-item{margin:0;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(20,33,61,.08),0 8px 24px rgba(20,33,61,.06);
  cursor:zoom-in;transition:transform .18s,box-shadow .18s}
.pf-item:hover,.pf-item:focus-visible{transform:translateY(-3px);box-shadow:0 2px 4px rgba(20,33,61,.1),0 14px 34px rgba(20,33,61,.13);outline:none}
.pf-item picture{display:block}
.pf-item img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#eee}
.pf-item figcaption{padding:.7rem .85rem .85rem;display:flex;flex-direction:column;gap:.15rem}
.pf-item figcaption strong{font-size:.92rem;color:var(--ds-ink,#14213d);font-weight:600}
.pf-item figcaption span{font-size:.78rem;color:var(--ds-ink-soft,#5b6478)}
.pf-item[hidden]{display:none}
.pf-empty{margin-top:1.4rem;font-size:.95rem;color:var(--ds-ink-soft,#5b6478)}
.pf-cities{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.35rem .9rem}
.pf-cities li{font-size:.9rem;opacity:.9;padding-left:1rem;position:relative}
.pf-cities li:before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--ds-gold,#c9a227)}
/* Ampliada */
.pf-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(9,14,28,.94);display:flex;align-items:center;justify-content:center;padding:2.5rem 1rem}
.pf-lightbox figure{margin:0;max-width:min(1400px,94vw);text-align:center}
.pf-lightbox img{max-width:100%;max-height:78vh;height:auto;border-radius:10px;display:block;margin:0 auto}
.pf-lightbox figcaption{color:#f2f0ea;font-size:.92rem;margin-top:.9rem}
.pf-close,.pf-prev,.pf-next{position:absolute;background:rgba(255,255,255,.1);color:#fff;border:0;border-radius:50%;
  width:46px;height:46px;font-size:1.7rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.pf-close{top:1rem;right:1rem;font-size:2rem}
.pf-prev{left:1rem;top:50%;transform:translateY(-50%)}
.pf-next{right:1rem;top:50%;transform:translateY(-50%)}
.pf-close:hover,.pf-prev:hover,.pf-next:hover{background:rgba(255,255,255,.22)}
@media (max-width:640px){
  .pf-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem}
  .pf-item figcaption{padding:.55rem .6rem .7rem}
  .pf-item figcaption strong{font-size:.82rem}
  .pf-prev,.pf-next{width:38px;height:38px}
}
/* Faixa reaproveitada em estado, metro e servico */
.pf-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.9rem;margin-top:1.4rem}
.pf-strip .pf-item img{aspect-ratio:4/3}
