/* ── Variabili ── */
:root{
  --n950:#101d34;--n900:#14233f;--n800:#1a2a47;--n700:#213357;--n600:#2b3d63;
  --o:#ea5d1b;--ob:#f46e26;--cr:#f2eee6;--mu:#fff;--w:#fff;
  --maxw:1240px;
}

/* ── Hero ── */
.pf-hero{position:relative;padding:72px 0 56px;overflow:hidden;background:var(--n800)}
.pf-hero::before{content:"";position:absolute;top:-160px;right:-100px;
  width:480px;height:480px;border-radius:50%;
  background:radial-gradient(circle,rgba(234,93,27,.2),transparent 64%);pointer-events:none}
.pf-hero .inner{max-width:var(--maxw);margin:0 auto;padding:0 28px;position:relative;z-index:2}
.pf-eyebrow{display:inline-flex;align-items:center;gap:.7rem;font-weight:700;
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--o);margin-bottom:18px}
.pf-eyebrow::before{content:"";width:34px;height:2px;background:var(--o)}
.pf-hero h1{font-size:clamp(2.8rem,6vw,5.2rem);font-weight:900;text-transform:uppercase;
  line-height:.94;color:var(--o);margin:0}
.pf-hero h1 .w{display:block;overflow:hidden}
.pf-hero h1 .w>span{display:block;transform:translateY(110%);
  animation:pf-rise .9s cubic-bezier(.16,1,.3,1) forwards}
.pf-hero h1 .w:nth-child(2)>span{animation-delay:.1s}
@keyframes pf-rise{to{transform:translateY(0)}}
.pf-hero p.lead{margin-top:20px;font-size:1.1rem;color:var(--mu);max-width:42em;
  opacity:0;animation:pf-fade .8s ease .5s forwards}
@keyframes pf-fade{to{opacity:1}}

/* ── Filtri ── */
.pf-filters{background:var(--n900);padding:24px 0;
  border-bottom:1px solid rgba(255,255,255,.06)}
.pf-filters .inner{max-width:var(--maxw);margin:0 auto;padding:0 28px;
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px}
.pf-tabs{display:flex;flex-wrap:wrap;gap:8px}
.pf-tab{white-space:nowrap;border:1.5px solid rgba(255,255,255,.12);
  background:transparent;color:var(--mu);font-weight:600;font-size:.84rem;
  padding:.55em 1.1em;border-radius:999px;cursor:pointer;transition:.22s}
.pf-tab:hover{border-color:rgba(234,93,27,.5);color:#fff}
.pf-tab.active{background:var(--o);border-color:var(--o);color:#fff}
.pf-count{font-size:.82rem;color:var(--mu);white-space:nowrap;margin-left:auto}
.pf-count b{color:var(--o);font-style:italic}

/* ── Griglia ── */
.pf-main{background:var(--n800);padding:44px 0 90px}
.pf-main .inner{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}

/* ── Card progetto ── */
.pf-card{background:var(--n900);border:1px solid rgba(255,255,255,.06);
  border-radius:20px;overflow:hidden;display:flex;flex-direction:column;
  text-decoration:none;
  opacity:0;transform:translateY(28px);
  transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1),
             border-color .35s,box-shadow .35s}
.pf-card.in{opacity:1;transform:none}
.pf-card:hover{transform:translateY(-7px)!important;border-color:rgba(234,93,27,.4);
  box-shadow:0 28px 56px -24px rgba(0,0,0,.6)}
.pf-card[data-d="1"]{transition-delay:.06s}
.pf-card[data-d="2"]{transition-delay:.12s}
.pf-card[data-d="3"]{transition-delay:.18s}

/* Immagine */
.pf-img{position:relative;aspect-ratio:4/3;overflow:hidden;
  background:linear-gradient(150deg,var(--n700),var(--n950))}
.pf-img img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .55s cubic-bezier(.16,1,.3,1)}
.pf-card:hover .pf-img img{transform:scale(1.06)}
.pf-cat{position:absolute;top:12px;left:12px;font-size:.64rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.1em;
  background:rgba(16,29,52,.82);color:var(--cr);
  padding:.32em .72em;border-radius:999px;backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.1);z-index:2}
.pf-img .ph{display:grid;place-items:center;height:100%;
  color:var(--mu);font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;text-align:center;gap:.4rem}
.pf-img .ph .big{font-size:2.4rem;color:var(--o)}

/* Hover overlay */
.pf-overlay{position:absolute;inset:0;background:linear-gradient(
  to top,rgba(10,18,33,.88),rgba(10,18,33,.1) 55%,transparent);
  display:flex;align-items:flex-end;padding:18px;
  opacity:0;transition:opacity .3s;z-index:3}
.pf-card:hover .pf-overlay{opacity:1}

/* Testo */
.pf-body{padding:20px 20px 22px;flex:1;display:flex;flex-direction:column;gap:6px}
.pf-body h3{font-weight:800;font-size:1.05rem;color:#fff;line-height:1.2;margin:0}
.pf-body .sub{font-size:.86rem;color:var(--mu);line-height:1.45}
.pf-body .pf-btn{margin-top:14px;display:inline-flex;align-items:center;gap:.5em;
  font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;
  text-decoration:none;color:var(--o);transition:gap .2s}
.pf-body .pf-btn:hover{gap:.8em}
.pf-body .pf-btn .arr{display:grid;place-items:center;width:22px;height:22px;
  border-radius:50%;background:rgba(234,93,27,.15);font-size:.9em}

/* Featured: card grande (col span 2) */
.pf-card.featured{grid-column:span 2}
.pf-card.featured .pf-img{aspect-ratio:16/9}
.pf-card.featured .pf-body h3{font-size:1.25rem}

/* Empty state */
.pf-empty{grid-column:1/-1;text-align:center;padding:60px 0;color:var(--mu)}

/* ── CTA finale ── */
.pf-cta{background:var(--cr);padding:80px 0;color:var(--n900)}
.pf-cta .inner{max-width:var(--maxw);margin:0 auto;padding:0 28px;
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.pf-cta h2{font-size:clamp(1.8rem,3.4vw,2.8rem);font-weight:900;
  text-transform:uppercase;color:var(--n900)}
.pf-cta h2 .o{color:var(--o);font-style:italic}
.pf-cta p{margin-top:1rem;color:#000;font-size:1.05rem;max-width:28em}
.pf-cta .cta-btn{display:inline-flex;align-items:center;gap:.6em;font-weight:700;
  font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;
  text-decoration:none;color:#fff;background:var(--o);
  padding:.95em 1.6em;border-radius:999px;border:none;cursor:pointer;
  margin-top:26px;transition:background .25s,transform .25s,box-shadow .25s}
.pf-cta .cta-btn:hover{background:var(--ob);transform:translateY(-2px);
  box-shadow:0 12px 28px -10px rgba(234,93,27,.55)}
.pf-cta .cta-btn .arr{display:grid;place-items:center;width:1.7em;height:1.7em;
  border-radius:999px;background:rgba(255,255,255,.18);font-size:.85em}

/* ── FORM (nel CTA) ── */
.pf-cta form{background:#fff;border:1px solid #e4ddd0;border-radius:18px;
  padding:28px;display:flex;flex-direction:column;gap:16px;
  box-shadow:0 24px 60px -30px rgba(16,29,52,.28)}
.pf-cta .field{display:flex;flex-direction:column;gap:7px}
.pf-cta .field label{font-size:.78rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--n900)}
.pf-cta .field input,
.pf-cta .field select{width:100%;box-sizing:border-box;appearance:none;
  background:var(--cr);border:1.5px solid #e0d8ca;border-radius:10px;
  padding:.75em .9em;font-size:.95rem;color:var(--n900);
  font-family:inherit;transition:border-color .2s,box-shadow .2s}
.pf-cta .field input::placeholder{color:#a9a291}
.pf-cta .field input:focus,
.pf-cta .field select:focus{outline:none;border-color:var(--o);
  box-shadow:0 0 0 3px rgba(234,93,27,.15)}
.pf-cta .field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23213357' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .9em center;padding-right:2.4em}
.pf-cta .radios{display:flex;flex-wrap:wrap;gap:16px}
.pf-cta .radios label{display:inline-flex;align-items:center;gap:.45em;
  font-size:.92rem;font-weight:500;text-transform:none;letter-spacing:0;
  color:#000;cursor:pointer}
.pf-cta .radios input{width:auto;accent-color:var(--o);margin:0}
.pf-cta .two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pf-cta .form-note{margin:0;font-size:.8rem;color:#000;max-width:none}
.pf-cta form .hp-btn{display:inline-flex;align-items:center;justify-content:center;
  gap:.6em;font-weight:700;font-size:.82rem;text-transform:uppercase;
  letter-spacing:.12em;color:#fff;background:var(--o);
  padding:.95em 1.6em;border-radius:999px;border:none;cursor:pointer;
  transition:background .25s,transform .25s,box-shadow .25s}
.pf-cta form .hp-btn:hover{background:var(--ob);transform:translateY(-2px);
  box-shadow:0 12px 28px -10px rgba(234,93,27,.55)}
.pf-cta form .hp-btn .arw{display:grid;place-items:center;width:1.7em;height:1.7em;
  border-radius:999px;background:rgba(255,255,255,.18);font-size:.85em}

/* ── Responsive ── */
@media(max-width:980px){
  .pf-grid{grid-template-columns:1fr 1fr}
  .pf-card.featured{grid-column:span 2}
  .pf-cta .inner{grid-template-columns:1fr;gap:36px}
  .pf-filters .inner{flex-direction:column;align-items:stretch}
}
@media(max-width:560px){
  .pf-grid{grid-template-columns:1fr}
  .pf-card.featured{grid-column:span 1}
  .pf-card.featured .pf-img{aspect-ratio:4/3}
  .pf-main .inner,.pf-hero .inner,.pf-cta .inner{padding:0 18px}
  .pf-cta .two{grid-template-columns:1fr}
  .pf-tab{font-size:.78rem;padding:.5em .9em}
}

.pf-search{position:relative}
@media(max-width:980px){.pf-cta h2 .o{display:block}}
