/* ============================================================
   Luis Taveras — Colorist
   portafolio.css  ·  estilos propios de la pagina Portafolio
   Reutiliza el sistema "Cinematic Noir" de styles.css (variables,
   nav, footer, .ba-slider, .reel-tag, .btn, etc.).
   ============================================================ */

/* ---------- ENCABEZADO DE PAGINA ---------- */
.pf-head{
  position:relative;
  padding:150px 0 56px;
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.pf-head .glow{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(60% 120% at 80% 10%,rgba(46,196,182,.10),transparent 60%),
    radial-gradient(50% 100% at 10% 30%,rgba(255,140,66,.08),transparent 60%);
}
.pf-head .wrap{position:relative;z-index:2}
.pf-head h1{
  font-family:"Archivo",sans-serif;font-weight:700;letter-spacing:-.03em;
  font-size:clamp(40px,7vw,84px);line-height:1;margin:18px 0 0;
}
.pf-head .intro{color:var(--ink-2);max-width:620px;margin-top:20px;font-size:clamp(16px,2vw,19px)}
.pf-head .nota{
  display:inline-flex;align-items:center;gap:9px;margin-top:22px;
  font-size:12px;color:var(--ink-3);letter-spacing:.02em;
  border:1px solid var(--line);border-radius:999px;padding:8px 14px;
}
.pf-head .nota::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--orange);flex:none}

/* ---------- BARRA DE FILTROS ---------- */
.pf-filters{
  display:flex;flex-wrap:wrap;gap:10px;margin-top:34px;
}
.pf-filters button{
  font-family:"Archivo",sans-serif;font-weight:500;font-size:13px;letter-spacing:.02em;
  color:var(--ink-2);background:none;cursor:pointer;
  border:1px solid var(--line);border-radius:999px;padding:10px 20px;
  transition:color .25s,border-color .25s,background .25s;
}
.pf-filters button:hover{color:var(--ink);border-color:var(--line-strong)}
.pf-filters button.active{background:var(--ink);color:#0a0a0c;border-color:var(--ink)}

/* ---------- GALERIA ---------- */
.pf-gallery{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;
  padding-top:56px;
}
.pf-item{
  position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;
  background:var(--bg-card);transition:border-color .3s,transform .3s,opacity .35s;
}
.pf-item:hover{border-color:var(--line-strong);transform:translateY(-4px)}
.pf-item.is-hidden{display:none}

/* media: cuadro estatico (con o sin slider antes/despues) */
.pf-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#0e0c12}

/* tarjeta estatica (sin slider): un solo plano gradado */
.pf-still{position:absolute;inset:0}
.pf-still img{width:100%;height:100%;object-fit:cover;opacity:.92;transition:transform .9s ease}
.pf-item:hover .pf-still img{transform:scale(1.05)}
.pf-still .grade{
  position:absolute;inset:0;mix-blend-mode:soft-light;
  background:linear-gradient(120deg,rgba(46,196,182,.30),rgba(255,140,66,.24));
}
.pf-still .ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,12,.55) 4%,transparent 55%)}

/* slider antes/despues dentro de la galeria: hereda .ba-slider de main.js */
.pf-media .ba{position:absolute;inset:0;border-radius:0;border:none;aspect-ratio:auto}

/* etiquetas sutiles dentro del media */
.pf-cat{
  position:absolute;left:14px;top:14px;z-index:6;
  font-family:"Archivo",sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--teal);
  background:rgba(10,10,12,.62);backdrop-filter:blur(4px);
  border:1px solid var(--line);border-radius:999px;padding:5px 11px;
}
.pf-ejemplo{
  position:absolute;right:14px;top:14px;z-index:6;
  font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);
  background:rgba(10,10,12,.55);backdrop-filter:blur(4px);
  border:1px solid var(--line);border-radius:999px;padding:5px 10px;
}
.pf-cliente{
  position:absolute;left:14px;bottom:14px;z-index:6;
}

/* cuerpo de la tarjeta */
.pf-body{padding:18px 20px 20px}
.pf-body h3{font-family:"Archivo",sans-serif;font-size:19px;font-weight:600;letter-spacing:-.01em}
.pf-body .sub{font-size:13px;color:var(--ink-3);margin-top:6px;line-height:1.5}
.pf-body .more{
  display:inline-flex;align-items:center;gap:8px;margin-top:14px;
  font-family:"Archivo",sans-serif;font-size:12px;letter-spacing:.04em;color:var(--ink-2);
  transition:color .25s,gap .25s;
}
.pf-body .more .arr{transition:transform .3s}
.pf-item:hover .pf-body .more{color:var(--teal)}
.pf-item:hover .pf-body .more .arr{transform:translateX(4px)}

/* mensaje cuando un filtro no tiene resultados */
.pf-empty{color:var(--ink-3);text-align:center;padding:60px 0;font-size:15px}

/* ---------- CTA FINAL ---------- */
.pf-cta{
  position:relative;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  background:var(--bg-soft);text-align:center;padding:64px 40px;
}
.pf-cta .glow{
  position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 130% at 50% 0%,rgba(46,196,182,.10),transparent 60%);
}
.pf-cta-inner{position:relative;z-index:2;max-width:620px;margin:0 auto}
.pf-cta h2{font-size:clamp(28px,3.8vw,44px);margin-bottom:16px}
.pf-cta p{color:var(--ink-2);margin-bottom:30px;font-size:16px}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1024px){
  .pf-gallery{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
  .pf-head{padding:120px 0 40px}
  .pf-gallery{grid-template-columns:1fr;padding-top:40px}
  .pf-filters{margin-top:26px}
  .pf-cta{padding:44px 24px}
}
