/* Nelb Elementor Pack . Rullino (Brand: Condiviso)
   Galleria a striscia di negativo. Desktop: strisce che vanno a capo ogni
   N fotogrammi, decisi dal server, testa sulla prima e coda sull'ultima.
   Mobile: pellicola verticale continua, perforazioni ai lati.
   Niente JavaScript: tutto layout deterministico. */

.elementor-widget-nelb_film_roll{min-width:0;width:100%;max-width:100%}
.nelb-filmroll{width:100%;max-width:100%}

.nfr-sheet{display:flex;flex-direction:column;gap:28px;width:100%}

.nfr-film{display:flex;align-items:stretch;width:100%;background:#0a0a0a;border-top:1px solid #1e1e1e;border-bottom:1px solid #1e1e1e;overflow-x:auto;scrollbar-width:none}
.nfr-film::-webkit-scrollbar{display:none}

.nfr-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}

/* perforazioni: i fori mostrano lo sfondo pagina e seguono il brand */
.nfr-holes{height:32px;flex:0 0 32px;background-image:radial-gradient(ellipse 7px 5px at 20px 16px, var(--nfr-hole,#101010) 97%, transparent 100%);background-size:40px 32px;background-repeat:repeat-x}

/* righe giustificate: ogni fotogramma pesa quanto le sue proporzioni,
   la striscia riempie esattamente la larghezza e le foto non possono mai
   uscire dai bordi della pellicola. Il tetto di altezza evita foto giganti
   quando la striscia ha poche foto: oltre il tetto, resta pellicola vuota. */
.nfr-frames{display:flex;gap:18px;padding:6px 24px 30px;min-width:0}
.nfr-frame{position:relative;display:block;text-decoration:none;min-width:0;flex:var(--ar,1.5) 1 0;aspect-ratio:var(--ar,1.5);max-height:var(--nfr-maxh,420px);max-width:calc(var(--nfr-maxh,420px) * var(--ar,1.5))}
.nfr-frame img{display:block;width:100%;height:100%;object-fit:cover}
.nfr-fill{flex:var(--ar,1.5) 1 0;min-width:0}
.nfr-num{position:absolute;left:0;bottom:-24px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#c9861e;white-space:nowrap}

/* testa e coda: segmenti piatti di pellicola, perforazioni che corrono,
   nome del rullino, Start e End, giunzione tratteggiata */
.nfr-end{flex:0 0 auto;display:flex;flex-direction:column;background:#0a0a0a}
.nfr-endmid{flex:1;display:flex;flex-direction:column;justify-content:center;gap:9px;padding:0 26px}
.nfr-end.nfr-lead{min-width:170px;border-right:1px dashed #262626}
.nfr-end.nfr-lead .nfr-endmid{align-items:flex-start}
.nfr-end.nfr-tail{min-width:140px;border-left:1px dashed #262626}
.nfr-end .nfr-roll{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:13px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:#f2f2f2}
.nfr-end .nfr-tag{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:#c9861e}
.nfr-end .nfr-arrow{color:#5f5f5f;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.1em}

@media (max-width:767px){
	/* pellicola verticale continua: le strisce impilate si fondono in un
	   rullino solo, con le colonne dei fori che proseguono senza stacchi */
	.nfr-sheet{gap:0}
	.nfr-film{flex-direction:column;min-width:0;border-top:0;border-bottom:0;border-left:1px solid #1e1e1e;border-right:1px solid #1e1e1e;overflow:visible}
	.nfr-body{flex-direction:row}
	.nfr-holes{width:30px;flex:0 0 30px;height:auto;background-image:radial-gradient(ellipse 5px 7px at 15px 20px, var(--nfr-hole,#101010) 97%, transparent 100%);background-size:30px 40px;background-repeat:repeat-y}
	.nfr-frames{flex:1 1 auto;flex-direction:column;gap:36px;padding:18px 10px;min-width:0}
	.nfr-frame{flex:0 0 auto;max-height:none;max-width:none}
	.nfr-fill{display:none}
	.nfr-frame img{width:100%;height:100%}
	.nfr-num{bottom:-22px}
	.nfr-end{min-width:0}
	.nfr-end > .nfr-holes{display:none}
	.nfr-endmid{flex-direction:row;align-items:center;justify-content:center;gap:14px;padding:16px 12px}
}
