/* 24H Portfolio Feed: black bg, purple #9956ff accent only, Antonio headings, Montserrat body */
:root{--pff-purple:#9956ff;--pff-gap:12px;--pff-r:14px;--pff-top:0px}
.et_pb_section.pff-sec{background:#000!important;padding:0!important}
.et_pb_section.pff-sec .et_pb_row{width:100%!important;max-width:none!important;padding:0!important;margin:0!important}
.et_pb_section.pff-sec .et_pb_column,.et_pb_section.pff-sec .et_pb_code,.et_pb_section.pff-sec .et_pb_code_inner{margin:0!important;padding:0!important}
.et_pb_section.pff-sec-feed{overflow:visible!important}
.pff,.pff-hero,.pff-cta{font-family:'Montserrat',sans-serif;color:#fff}
.pff *{box-sizing:border-box}
.pff-hero{text-align:center;padding:150px 24px 90px;background:radial-gradient(ellipse 70% 60% at 50% 0,rgba(153,86,255,.22),transparent 70%),#000}
.pff-h1,.pff-h2{font-family:'Antonio',sans-serif;font-weight:700;text-transform:uppercase;color:#fff;margin:0;padding:0;line-height:1.05}
.pff-h1{font-size:clamp(46px,8vw,96px)}
.pff-h2{font-size:clamp(34px,5vw,64px)}
.pff-lead{font-size:clamp(16px,1.6vw,20px);line-height:1.55;max-width:680px;margin:22px auto 34px;color:rgba(255,255,255,.88);padding:0}
a.pff-btn,button.pff-btn{display:inline-block;appearance:none;cursor:pointer;text-decoration:none;background:var(--pff-purple);color:#fff;border:2px solid var(--pff-purple);border-radius:8px;padding:16px 34px;font:700 13px/1.2 'Montserrat',sans-serif;letter-spacing:.09em;text-transform:uppercase;transition:transform .2s,box-shadow .2s,background .2s}
a.pff-btn:hover,button.pff-btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(153,86,255,.38);color:#fff}
a.pff-btn.pff-btn-line,button.pff-btn.pff-btn-line{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
a.pff-btn.pff-btn-line:hover,button.pff-btn.pff-btn-line:hover{border-color:var(--pff-purple);background:var(--pff-purple)}
.pff a:focus-visible,.pff button:focus-visible,.pff-fab:focus-visible,.pff-cta a:focus-visible,.pff-hero a:focus-visible,.pff-pop button:focus-visible,.pff-pop a:focus-visible{outline:2px solid #fff;outline-offset:3px;box-shadow:0 0 0 5px var(--pff-purple)}

/* sticky filter bar */
.pff-bar{position:sticky;top:var(--pff-top);z-index:50;background:rgba(0,0,0,.94);border-bottom:1px solid rgba(255,255,255,.1);backdrop-filter:blur(6px)}
.pff-bar-in{max-width:1680px;margin:0 auto;padding:12px 32px;display:flex;flex-direction:column;gap:10px}
.pff-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 0}
.pff-chips::-webkit-scrollbar{display:none}
.pff-chip{flex:0 0 auto;appearance:none;cursor:pointer;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:9px 15px;font:600 11.5px/1.2 'Montserrat',sans-serif;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;transition:background .2s,border-color .2s}
.pff-chip:hover{border-color:var(--pff-purple)}
.pff-chip.is-on{background:var(--pff-purple);border-color:var(--pff-purple)}
.pff-types{display:inline-flex;align-self:flex-start;border:1px solid rgba(255,255,255,.3);border-radius:999px;overflow:hidden}
.pff-type{appearance:none;cursor:pointer;background:transparent;color:rgba(255,255,255,.85);border:0;padding:8px 18px;font:600 11.5px/1.2 'Montserrat',sans-serif;letter-spacing:.06em;text-transform:uppercase;transition:background .2s}
.pff-type+.pff-type{border-left:1px solid rgba(255,255,255,.2)}
.pff-type:hover{background:rgba(153,86,255,.35)}
.pff-type.is-on{background:var(--pff-purple);color:#fff}

@media(min-width:768px){
 .pff-bar-in{align-items:center;gap:14px;padding:16px 32px}
 .pff-chip{font-size:13.8px;padding:11px 18px}
 .pff-types{align-self:center}
 .pff-type{font-size:13.8px;padding:10px 22px}
}
/* industries: stacked, centred rows on tablet/desktop (no sideways scroll); phones keep the swipe row */
.pff-chipwrap{position:relative;width:100%;max-width:1500px;margin:0 auto}
.pff-arr{display:none!important}
@media(min-width:768px){
 .pff-chips{flex-wrap:wrap;justify-content:center;overflow:visible;gap:10px}
}
/* masonry: JS builds equal-width columns; each card keeps its own aspect ratio */
.pff-wrap{max-width:1680px;margin:0 auto;padding:36px 32px 24px}
.pff-grid{display:flex;gap:var(--pff-gap);align-items:flex-start}
.pff-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:var(--pff-gap)}
.pff-card{position:relative;display:block;width:100%;padding:0;margin:0;border:0;background:#141414;border-radius:var(--pff-r);overflow:hidden;cursor:pointer;color:#fff;text-align:left;transition:transform .25s ease,box-shadow .25s ease;-webkit-tap-highlight-color:transparent;contain:paint}
.pff-card:hover,.pff-card:focus-visible{transform:scale(1.03);box-shadow:0 0 0 2px var(--pff-purple),0 12px 32px rgba(153,86,255,.28);z-index:3}
.pff-media{position:relative;display:block;width:100%}
.pff-media img,.pff-media video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:0;opacity:0;transition:opacity .35s}
.pff-media img.is-in{opacity:1}
.pff-media video.pff-pv{opacity:0}
.pff-media video.pff-pv.is-in{opacity:1}
.pff-tag{position:absolute;left:8px;bottom:8px;max-width:calc(100% - 16px);background:rgba(0,0,0,.74);color:#fff;font:700 9.5px/1 'Montserrat',sans-serif;letter-spacing:.07em;text-transform:uppercase;padding:5px 7px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:2}
.pff-ico{position:absolute;right:8px;top:8px;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.74);border:1px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:2;transition:background .2s,border-color .2s}
.pff-ico svg{width:12px;height:12px;fill:#fff;display:block}
.pff-card:hover .pff-ico{background:var(--pff-purple);border-color:var(--pff-purple)}
.pff-empty{text-align:center;color:rgba(255,255,255,.7);padding:60px 0}
.pff-more{text-align:center;padding:36px 0 8px}
.pff-more[hidden]{display:none}
.pff-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.pff-cta{text-align:center;padding:110px 24px 120px;background:radial-gradient(ellipse 60% 70% at 50% 100%,rgba(153,86,255,.25),transparent 70%),#000}

/* mobile sticky Book a Call */
.pff-fab{display:none}
@media(max-width:767px){
 .pff-fab{display:block;position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:90;text-align:center;text-decoration:none;background:var(--pff-purple);color:#fff;border-radius:10px;padding:16px;font:700 13px/1.2 'Montserrat',sans-serif;letter-spacing:.09em;text-transform:uppercase;box-shadow:0 8px 28px rgba(0,0,0,.6);transition:transform .25s,opacity .25s}
 .pff-fab.is-off{transform:translateY(140%);opacity:0;pointer-events:none}
 .pff-bar-in{padding:10px 16px}
 .pff-wrap{padding:22px 12px 24px}
 :root{--pff-gap:8px;--pff-r:12px}
 .pff-hero{padding:110px 20px 60px}
 .pff-cta{padding:80px 20px 130px}
}
@media(prefers-reduced-motion:reduce){.pff-card,.pff-media img,a.pff-btn{transition:none}.pff-card:hover{transform:none}}

/* popup viewer */
.pff-pop{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:56px 64px 24px;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.pff-pop.is-open{opacity:1;visibility:visible}
.pff-pop-in{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:100%;max-height:100%;min-height:0}
.pff-stage{display:flex;align-items:center;justify-content:center;min-height:0;max-width:100%;touch-action:pan-y}
.pff-stage img,.pff-stage video{display:block;max-width:min(92vw,1100px);max-height:calc(100vh - 190px);width:auto;height:auto;border-radius:10px;background:#111;object-fit:contain}
.pff-stage{position:relative}
.pff-spin{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:#9956ff;animation:pffspin .8s linear infinite;pointer-events:none;z-index:2}
@keyframes pffspin{to{transform:rotate(360deg)}}
.pff-cap{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center;max-width:min(92vw,900px);text-align:center}
.pff-cap p{margin:0;padding:0;font:500 14px/1.4 'Montserrat',sans-serif;color:rgba(255,255,255,.9)}
.pff-cap .pff-btn{padding:12px 22px;font-size:12px}
.pff-x,.pff-nav{position:absolute;appearance:none;cursor:pointer;border:1px solid rgba(255,255,255,.4);background:rgba(0,0,0,.6);color:#fff;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s;padding:0}
.pff-x:hover,.pff-nav:hover{background:var(--pff-purple);border-color:var(--pff-purple)}
.pff-x{top:12px;right:14px}
.pff-nav{top:50%;margin-top:-22px}
.pff-prev{left:12px}.pff-next{right:12px}
.pff-x svg,.pff-nav svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pff-count{position:absolute;top:22px;left:20px;font:600 11px/1 'Montserrat',sans-serif;letter-spacing:.08em;color:rgba(255,255,255,.65)}
body.pff-lock{overflow:hidden}
@media(max-width:767px){
 .pff-pop{padding:56px 10px 14px}
 .pff-stage img,.pff-stage video{max-width:96vw;max-height:calc(100vh - 210px)}
 .pff-nav{top:auto;bottom:16px;margin:0;width:40px;height:40px}
 .pff-prev{left:12px}.pff-next{right:12px}
 .pff-cap{padding:0 48px}
}
