/* ============================================================
   Fracassini — News hub (sotto .fr-news; hero riusa .fr-pagina .phead)
   ============================================================ */
.fr-news .ngrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.fr-news .ncard{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .25s,box-shadow .25s,border-color .25s}
.fr-news .ncard:hover{transform:translateY(-5px);box-shadow:0 26px 46px -28px rgba(21,25,27,.4);border-color:var(--teal)}
.fr-news .ncard .ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--paper-2)}
.fr-news .ncard .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.fr-news .ncard:hover .ph img{transform:scale(1.05)}
.fr-news .ncard .ph .tag{position:absolute;left:0;top:0;background:var(--orange);color:#fff;font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px}
.fr-news .ncard .b{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;flex:1}
.fr-news .ncard .meta{display:flex;justify-content:space-between;gap:1rem;align-items:center;font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.7rem}
.fr-news .ncard .meta .src{color:var(--teal-deep);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:62%}
.fr-news .ncard .meta .date{color:var(--concrete);flex:none}
.fr-news .ncard h3{font-family:var(--display);font-weight:600;font-size:1.08rem;line-height:1.2;letter-spacing:-.01em;color:var(--ink);margin:0 0 .6rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fr-news .ncard .exc{color:#5B544C;font-size:.9rem;line-height:1.5;margin:0 0 1rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fr-news .ncard .go{margin-top:auto;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--orange);font-weight:600}
.fr-news .note{margin-top:2.4rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.06em;color:var(--concrete);text-align:center}
.fr-news .empty{color:var(--concrete);font-size:1.05rem}
@media(max-width:980px){.fr-news .ngrid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.fr-news .ngrid{grid-template-columns:1fr}}
