/* ===========================================================
   INTUS — Portfolio page. Filterable category gallery + lightbox.
   =========================================================== */
.pf-body{background:var(--black);color:var(--ink);min-height:100vh}

/* nav */
.pf-nav{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;
  padding:18px 40px;
  background:linear-gradient(180deg, rgba(7,10,8,.55) 0%, rgba(7,10,8,.26) 55%, rgba(7,10,8,0) 100%);
  -webkit-backdrop-filter:blur(10px) saturate(130%);backdrop-filter:blur(10px) saturate(130%);
  border-bottom:0}
.pf-brand{display:flex;flex-direction:column;line-height:1}
.pf-brand .nav__mark{font-size:1.2rem}
.pf-logo{height:52px;width:auto;display:block;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}
/* close / back-to-home button (corner) */
.pf-close{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(255,255,255,.4);color:#fff!important;font-size:1.1rem;line-height:1;
  transition:border-color .3s,background .3s,color .3s;flex:none}
.pf-close:hover{border-color:transparent;color:var(--bronze)!important;
  background:linear-gradient(150deg, rgba(154,123,63,.96) 0%, rgba(154,123,63,.82) 55%, rgba(154,123,63,.66) 100%)}
.pf-nav__links{display:flex;align-items:center;gap:28px}
.pf-nav__links a{font-size:.82rem;letter-spacing:.08em;color:#fff;transition:color .3s;
  text-shadow:0 1px 10px rgba(0,0,0,.55)}
.pf-nav__links a:hover,.pf-nav__links a.is-active{color:var(--gold-soft)}
.pf-cta{padding:11px 22px;border-radius:2px;font-weight:600;color:var(--bronze)!important;
  text-transform:uppercase;font-size:.72rem;letter-spacing:.1em;
  background:linear-gradient(150deg, rgba(154,123,63,.96) 0%, rgba(154,123,63,.82) 55%, rgba(154,123,63,.66) 100%);
  transition:filter .3s,color .3s}
.pf-cta:hover{filter:brightness(1.12);color:var(--bronze)!important}

/* hero */
.pf-hero{max-width:var(--maxw);margin:0 auto;padding:90px 40px 40px;text-align:center}
.pf-hero .eyebrow{justify-content:center}
.pf-title{font-family:var(--display);font-weight:500;font-size:clamp(2.6rem,6vw,4.6rem);color:var(--cream);letter-spacing:.01em;line-height:1.05;margin:8px 0 20px}
.pf-title em{font-family:var(--serif);font-style:italic;color:var(--gold-soft)}
.pf-lede{max-width:60ch;margin:0 auto;color:var(--cream-dim);font-weight:300;font-size:1.12rem}

/* filters */
.pf-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:var(--maxw);margin:0 auto;padding:18px 40px 8px}
.pf-filter{background:transparent;border:1px solid var(--line);color:var(--cream-dim);padding:10px 20px;border-radius:30px;
  font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:.3s;font-family:var(--sans);font-weight:600}
.pf-filter:hover{border-color:var(--neon);color:var(--cream)}
.pf-filter.is-active{background:var(--cream);color:var(--green-900);border-color:var(--cream)}

/* masonry-ish grid */
.pf-grid{max-width:var(--maxw);margin:0 auto;padding:30px 40px 80px;
  columns:3;column-gap:16px}
.pf-card{break-inside:avoid;margin-bottom:16px;position:relative;border-radius:6px;overflow:hidden;cursor:pointer;
  background:var(--charcoal);opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.pf-card.in{opacity:1;transform:none}
.pf-card img{width:100%;display:block;transition:transform .8s var(--ease)}
.pf-card:hover img{transform:scale(1.05)}
.pf-card::after{content:"";position:absolute;inset:0;opacity:0;transition:opacity .5s var(--ease);
  background:linear-gradient(150deg, rgba(154,123,63,.96) 0%, rgba(154,123,63,.82) 55%, rgba(154,123,63,.66) 100%)}
.pf-card:hover::after{opacity:1}
.pf-card__cap{position:absolute;left:18px;bottom:16px;z-index:2;opacity:0;transform:translateY(8px);transition:.4s var(--ease)}
.pf-card:hover .pf-card__cap{opacity:1;transform:none}
.pf-card__cap strong{display:block;font-family:var(--display);font-weight:500;font-size:1.05rem;color:var(--bronze)}
.pf-card__cap em{font-style:normal;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze);opacity:.85}

.pf-empty{text-align:center;color:var(--muted);padding:40px;font-style:italic;font-family:var(--serif);font-size:1.2rem}

/* footer */
.pf-footer{max-width:var(--maxw);margin:0 auto;padding:50px 40px;display:flex;justify-content:space-between;align-items:center;gap:30px;
  border-top:1px solid var(--line-soft);flex-wrap:wrap}
.pf-footer .nav__mark{font-size:1.3rem}
.pf-footer p{font-family:var(--serif);font-style:italic;color:var(--cream-dim);margin-top:8px}
.pf-footer__contact{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.pf-footer__contact a:not(.btn){color:var(--cream);border-bottom:1px solid var(--line);padding-bottom:2px}
.pf-footer__contact a:not(.btn):hover{color:var(--neon)}

/* lightbox */
.pf-lightbox{position:fixed;inset:0;z-index:100;background:rgba(7,10,8,.95);display:flex;align-items:center;justify-content:center}
.pf-lightbox[hidden]{display:none!important}
.pf-lb__img{max-width:90vw;max-height:84vh;border-radius:4px;box-shadow:0 30px 90px rgba(0,0,0,.6)}
.pf-lb__close{position:absolute;top:24px;right:30px;background:none;border:0;color:var(--cream);font-size:2.4rem;cursor:pointer;line-height:1}
.pf-lb__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(243,235,215,.08);border:1px solid var(--line);
  color:var(--cream);width:54px;height:54px;border-radius:50%;font-size:1.8rem;cursor:pointer;transition:.3s}
.pf-lb__nav:hover{background:var(--neon);color:var(--green-900);border-color:var(--neon)}
.pf-lb__prev{left:28px}.pf-lb__next{right:28px}
.pf-lb__cap{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:var(--cream-dim);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}

@media (max-width:1024px){ .pf-grid{columns:2} }
@media (max-width:680px){
  .pf-nav{padding:14px 18px}
  .pf-nav__links{gap:14px}
  .pf-nav__links a:not(.pf-cta):not(.pf-close){display:none}
  .pf-logo{height:42px}
  .pf-hero{padding:60px 22px 24px}
  .pf-grid{columns:1;padding:24px 18px 60px}
  .pf-filters{padding:14px 18px}
  .pf-lb__nav{width:44px;height:44px}
}
