/* ==========================================================================
   Schede Film – frontend
   Layout: copertina a tutta larghezza, locandina che sale sulla copertina,
   titolo grande, tab con tabella, gallery su fascia scura, loghi, fascia finale.
   ========================================================================== */

.sfilm {
	--sfilm-sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--sfilm-serif: "Spectral", Georgia, "Times New Roman", serif;
	--sfilm-ink: #141414;
	--sfilm-black: #000;
	--sfilm-muted: #5c5c5c;
	--sfilm-line: #b4b4b4;
	--sfilm-dark: #1d1c21;
	--sfilm-bg: #fff;
	--sfilm-side: clamp(240px, 34%, 400px);
	--sfilm-gap: clamp(32px, 6vw, 96px);
	--sfilm-overlap: clamp(80px, 9vw, 150px);
	--sfilm-space: clamp(56px, 8vw, 120px);

	background: var(--sfilm-bg);
	color: var(--sfilm-ink);
	font-family: var(--sfilm-serif);
	font-size: clamp(17px, 1.15vw, 19px);
	font-weight: 400;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
}

.sfilm *,
.sfilm *::before,
.sfilm *::after { box-sizing: border-box; }

.sfilm img { display: block; max-width: 100%; height: auto; }

.sfilm a { color: inherit; }

.sfilm :focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.sfilm-container {
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: clamp(20px, 4vw, 40px);
}

/* Larghezza piena (template del plugin o shortcode con larghezza_piena="si") */
.sfilm-template,
body:has(.sfilm--bleed) { overflow-x: clip; }

.sfilm-template .sfilm-main { width: 100%; max-width: none; flex: 1 1 100%; margin: 0; padding: 0; }

.sfilm-template .sfilm-full,
.sfilm--bleed .sfilm-full {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* --- Copertina ---------------------------------------------------------- */

.sfilm-hero {
	position: relative;
	height: clamp(300px, 38vw, 580px);
	overflow: hidden;
	background: var(--sfilm-dark);
	color: #fff;
}

.sfilm .sfilm-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}

.sfilm-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to top, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, 0) 50%),
		linear-gradient(to bottom, rgba(0, 0, 0, .3) 0%, rgba(0, 0, 0, 0) 30%);
	pointer-events: none;
}

.sfilm-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: var(--sfilm-side) 1fr;
	column-gap: var(--sfilm-gap);
	align-items: end;
	height: 100%;
	padding-bottom: clamp(16px, 2vw, 28px);
}

.sfilm .sfilm-hero__meta {
	grid-column: 2;
	justify-self: end;
	margin: 0;
	color: #fff;
	font-family: var(--sfilm-serif);
	font-size: clamp(15px, 1.3vw, 20px);
	line-height: 1.45;
	text-shadow: 0 1px 10px rgba(0, 0, 0, .45);
}

/* --- Locandina, pulsanti, titolo ---------------------------------------- */

.sfilm-intro {
	display: grid;
	grid-template-columns: var(--sfilm-side) 1fr;
	column-gap: var(--sfilm-gap);
	align-items: start;
	padding-bottom: var(--sfilm-space);
}

.sfilm-intro__side {
	position: relative;
	z-index: 2;
	margin-top: calc(var(--sfilm-overlap) * -1);
}

.sfilm .sfilm-poster {
	margin: 0;
	padding: 0;
	background: #d9d9d9;
}

.sfilm .sfilm-poster__img { width: 100%; }

.sfilm-actions {
	display: grid;
	gap: clamp(10px, 1.2vw, 14px);
	margin-top: clamp(14px, 2vw, 24px);
}

.sfilm .sfilm-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: clamp(48px, 4.4vw, 62px);
	margin: 0;
	padding: 12px 20px;
	border: 1px solid var(--sfilm-black);
	border-radius: 0;
	background: var(--sfilm-black);
	box-shadow: none;
	color: #fff;
	font-family: var(--sfilm-sans);
	font-size: clamp(14px, 1.1vw, 17px);
	font-weight: 400;
	letter-spacing: .04em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}

.sfilm .sfilm-btn:hover,
.sfilm .sfilm-btn:focus-visible {
	background: #fff;
	color: var(--sfilm-black);
}

.sfilm-intro__main { padding-top: clamp(28px, 3.5vw, 48px); }

.sfilm .sfilm-title {
	margin: 0 0 .45em;
	color: var(--sfilm-black);
	font-family: var(--sfilm-sans);
	font-size: clamp(44px, 6.6vw, 96px);
	font-weight: 500;
	letter-spacing: -.01em;
	line-height: .98;
	text-transform: uppercase;
	overflow-wrap: anywhere;
	hyphens: auto;
}

.sfilm-synopsis { max-width: 34em; }

.sfilm-synopsis p { margin: 0 0 1em; }

.sfilm-synopsis p:last-child { margin-bottom: 0; }

.sfilm blockquote.sfilm-quote {
	max-width: 34em;
	margin: 1.2em 0 0;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font-family: var(--sfilm-serif);
	font-size: 1em;
	font-style: italic;
	quotes: none;
}

.sfilm blockquote.sfilm-quote::before,
.sfilm blockquote.sfilm-quote::after { content: none; }

.sfilm-quote p { margin: 0; }

/* --- Tab ---------------------------------------------------------------- */

.sfilm-info { padding-bottom: var(--sfilm-space); }

.sfilm-tabs {
	display: flex;
	gap: clamp(24px, 3.6vw, 48px);
	border-bottom: 1px solid var(--sfilm-line);
	overflow-x: auto;
	scrollbar-width: none;
}

.sfilm-tabs::-webkit-scrollbar { display: none; }

.sfilm .sfilm-tab {
	flex: none;
	margin: 0 0 -1px;
	padding: 0 0 14px;
	border: 0;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--sfilm-ink);
	font-family: var(--sfilm-sans);
	font-size: clamp(13px, 1.05vw, 16px);
	font-weight: 500;
	letter-spacing: .18em;
	line-height: 1.3;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
}

.sfilm .sfilm-tab:hover { border-bottom-color: var(--sfilm-line); }

.sfilm .sfilm-tab[aria-selected="true"],
.sfilm .sfilm-tab.is-static { border-bottom-color: var(--sfilm-black); cursor: default; }

.sfilm-panel { padding-top: clamp(28px, 3.5vw, 44px); }

.sfilm-panel[hidden] { display: none; }

.sfilm .sfilm-table { max-width: 640px; margin: 0; padding: 0; }

.sfilm-table__row {
	display: grid;
	grid-template-columns: minmax(110px, 34%) 1fr;
	column-gap: clamp(16px, 3vw, 32px);
}

.sfilm .sfilm-table dt,
.sfilm .sfilm-table dd {
	margin: 0;
	padding: clamp(12px, 1.4vw, 18px) 0 clamp(10px, 1.2vw, 14px);
	border-bottom: 1px solid var(--sfilm-line);
	font-family: var(--sfilm-sans);
	font-size: clamp(14px, 1.05vw, 16px);
	letter-spacing: .14em;
	line-height: 1.45;
}

.sfilm .sfilm-table dt { color: var(--sfilm-muted); font-weight: 400; }

.sfilm .sfilm-table dd { color: var(--sfilm-ink); font-weight: 500; }

.sfilm .sfilm-table dd a { text-decoration: underline; text-underline-offset: 3px; }

/* Proiezioni */
.sfilm .sfilm-screenings { max-width: 900px; margin: 0; padding: 0; list-style: none; }

.sfilm .sfilm-screening {
	display: grid;
	grid-template-columns: minmax(150px, 30%) 1fr auto;
	column-gap: clamp(16px, 3vw, 32px);
	align-items: baseline;
	margin: 0;
	padding: clamp(12px, 1.4vw, 18px) 0;
	border-bottom: 1px solid var(--sfilm-line);
	font-family: var(--sfilm-sans);
	font-size: clamp(14px, 1.05vw, 16px);
	letter-spacing: .08em;
	line-height: 1.45;
}

.sfilm-screening__date { color: var(--sfilm-muted); }

.sfilm-screening__place { font-weight: 500; }

.sfilm-screening__city { display: block; color: var(--sfilm-muted); font-weight: 400; }

.sfilm .sfilm-screening__link {
	font-size: .85em;
	letter-spacing: .12em;
	text-decoration: underline;
	text-transform: uppercase;
	text-underline-offset: 3px;
	white-space: nowrap;
}

/* --- Gallery ------------------------------------------------------------ */

.sfilm-gallery {
	--sfilm-band-start: clamp(22px, 3vw, 40px);
	padding: 0 clamp(12px, 2.5vw, 24px) var(--sfilm-space);
	background: linear-gradient(to bottom, transparent 0, transparent var(--sfilm-band-start), var(--sfilm-dark) var(--sfilm-band-start));
}

.sfilm-gallery__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(8px, 1.2vw, 14px);
	max-width: 1600px;
	margin-inline: auto;
}

.sfilm .sfilm-gallery__item {
	display: block;
	aspect-ratio: 2.35 / 1;
	overflow: hidden;
	background: #2b2a30;
}

.sfilm .sfilm-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}

.sfilm .sfilm-gallery__item:hover img { transform: scale(1.03); }

/* --- Festival e premi --------------------------------------------------- */

.sfilm-awards {
	padding-block: var(--sfilm-space);
	text-align: center;
}

.sfilm .sfilm-section-title {
	margin: 0 0 clamp(20px, 2.5vw, 32px);
	color: var(--sfilm-black);
	font-family: var(--sfilm-sans);
	font-size: clamp(26px, 2.6vw, 38px);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.2;
	text-transform: none;
}

.sfilm .sfilm-awards__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: clamp(16px, 3vw, 44px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.sfilm .sfilm-awards__item { margin: 0; }

.sfilm .sfilm-awards__item img {
	width: auto;
	max-width: 180px;
	height: clamp(56px, 6vw, 92px);
	object-fit: contain;
}

/* --- Fascia finale ------------------------------------------------------ */

.sfilm-cta {
	padding-block: var(--sfilm-space);
	background: var(--sfilm-dark);
	color: #fff;
	text-align: center;
}

.sfilm .sfilm-cta__title {
	margin: 0 0 .55em;
	color: #fff;
	font-family: var(--sfilm-sans);
	font-size: clamp(36px, 4.6vw, 68px);
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.08;
	text-transform: uppercase;
}

.sfilm .sfilm-cta__text {
	max-width: 60em;
	margin: 0 auto;
	color: rgba(255, 255, 255, .85);
	font-size: clamp(13px, .95vw, 15px);
	line-height: 1.6;
}

.sfilm .sfilm-btn--light {
	display: inline-flex;
	width: auto;
	margin-top: 28px;
	padding-inline: 36px;
	border-color: #fff;
	background: #fff;
	color: var(--sfilm-black);
}

.sfilm .sfilm-btn--light:hover,
.sfilm .sfilm-btn--light:focus-visible { background: transparent; color: #fff; }

/* --- Regista ------------------------------------------------------------ */

.sfilm-regista__head {
	display: grid;
	grid-template-columns: var(--sfilm-side) 1fr;
	column-gap: var(--sfilm-gap);
	align-items: start;
	padding-block: var(--sfilm-space);
}

.sfilm-regista__head--nophoto { grid-template-columns: 1fr; }

.sfilm .sfilm-regista__photo { margin: 0; background: #d9d9d9; }

.sfilm .sfilm-regista__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }

.sfilm .sfilm-regista__meta {
	margin: -.6em 0 1.4em;
	color: var(--sfilm-muted);
	font-family: var(--sfilm-sans);
	font-size: clamp(14px, 1.05vw, 16px);
	letter-spacing: .14em;
}

.sfilm-link { text-decoration: underline; text-underline-offset: 3px; }

.sfilm-filmography { padding-bottom: var(--sfilm-space); }

.sfilm-filmography .sfilm-cards { padding-top: clamp(28px, 3.5vw, 44px); }

/* --- Griglie (archivi e shortcode) -------------------------------------- */

.sfilm-archive { padding-block: var(--sfilm-space); }

.sfilm .sfilm-archive__title { font-size: clamp(40px, 5vw, 72px); margin-bottom: .6em; }

.sfilm-cards {
	display: grid;
	grid-template-columns: repeat(var(--sfilm-cols, 4), minmax(0, 1fr));
	gap: clamp(28px, 3vw, 44px) clamp(16px, 2vw, 28px);
}

.sfilm .sfilm-card { display: block; color: inherit; text-decoration: none; }

.sfilm .sfilm-card__media {
	display: block;
	aspect-ratio: 2 / 3;
	overflow: hidden;
	background: #e4e4e4;
}

.sfilm .sfilm-card--regista .sfilm-card__media { aspect-ratio: 4 / 5; }

.sfilm .sfilm-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}

.sfilm .sfilm-card:hover .sfilm-card__media img { transform: scale(1.03); }

.sfilm .sfilm-card__title {
	display: block;
	margin-top: 14px;
	font-family: var(--sfilm-sans);
	font-size: clamp(15px, 1.2vw, 18px);
	font-weight: 500;
	letter-spacing: .02em;
	line-height: 1.25;
	text-transform: uppercase;
}

.sfilm .sfilm-card__meta {
	display: block;
	margin-top: 4px;
	color: var(--sfilm-muted);
	font-size: .9em;
	line-height: 1.4;
}

.sfilm-pagination { margin-top: var(--sfilm-space); font-family: var(--sfilm-sans); }

/* --- Pulsante bordato (su sfondi scuri) -------------------------------- */

.sfilm .sfilm-btn--outline {
	display: inline-flex;
	width: auto;
	padding-inline: 32px;
	border-color: rgba(255, 255, 255, .8);
	background: transparent;
	color: #fff;
}

.sfilm .sfilm-btn--outline:hover,
.sfilm .sfilm-btn--outline:focus-visible { border-color: #fff; background: #fff; color: var(--sfilm-black); }

.sfilm-admin-hint { padding: 12px 16px; border: 1px dashed #999; font: 14px/1.4 sans-serif; }

/* --- Slider home -------------------------------------------------------- */

.sfilm-slider {
	position: relative;
	height: var(--sfilm-slider-h, 88vh);
	min-height: 420px;
	overflow: hidden;
	background: var(--sfilm-dark);
	color: #fff;
}

.sfilm-slider__track { position: absolute; inset: 0; }

.sfilm-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .9s ease, visibility 0s linear .9s;
}

.sfilm-slide.is-active { z-index: 1; opacity: 1; visibility: visible; transition: opacity .9s ease; }

.sfilm .sfilm-slide__img {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
	transform: scale(1.04);
	transition: transform 7s ease-out;
}

.sfilm-slide.is-active .sfilm-slide__img { transform: scale(1); }

.sfilm-slide__shade {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to top, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, 0) 55%),
		rgba(0, 0, 0, var(--sfilm-shade, .35));
}

.sfilm-slide__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: flex-start;
	height: 100%;
	padding-bottom: clamp(88px, 11vh, 140px);
}

.sfilm-slide--centro .sfilm-slide__content { justify-content: center; align-items: center; padding-bottom: 0; text-align: center; }

.sfilm-slide--destra .sfilm-slide__content { align-items: flex-end; text-align: right; }

.sfilm .sfilm-slide__label {
	margin: 0 0 14px;
	font-family: var(--sfilm-serif);
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.4;
}

.sfilm .sfilm-slide__title {
	max-width: 12ch;
	margin: 0;
	color: #fff;
	font-family: var(--sfilm-sans);
	font-size: clamp(48px, 8.5vw, 132px);
	font-weight: 500;
	letter-spacing: -.01em;
	line-height: .94;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.sfilm .sfilm-slide__text {
	max-width: 34em;
	margin: 18px 0 0;
	font-family: var(--sfilm-serif);
	font-size: clamp(16px, 1.3vw, 20px);
	line-height: 1.55;
	opacity: .92;
}

.sfilm-slide__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: clamp(22px, 3vw, 36px); }

.sfilm-slide--centro .sfilm-slide__actions { justify-content: center; }

.sfilm-slide--destra .sfilm-slide__actions { justify-content: flex-end; }

/* Testo che entra con la slide: l'unico movimento della pagina */
.sfilm-slide__content > * { opacity: 0; transform: translateY(14px); transition: opacity .7s ease, transform .7s ease; }

.sfilm-slide.is-active .sfilm-slide__content > * { opacity: 1; transform: none; }

.sfilm-slide.is-active .sfilm-slide__content > :nth-child(2) { transition-delay: .1s; }

.sfilm-slide.is-active .sfilm-slide__content > :nth-child(3) { transition-delay: .2s; }

.sfilm-slide.is-active .sfilm-slide__content > :nth-child(4) { transition-delay: .3s; }

.sfilm-slider__controls {
	position: absolute;
	right: 0;
	bottom: clamp(24px, 4vh, 40px);
	left: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.sfilm-slider__dots { display: flex; gap: 10px; }

.sfilm .sfilm-slider__dot {
	position: relative;
	width: clamp(36px, 4vw, 64px);
	height: 24px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	cursor: pointer;
}

.sfilm-slider__dot::before,
.sfilm-slider__dot span {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	height: 2px;
	margin-top: -1px;
}

.sfilm-slider__dot::before { right: 0; background: rgba(255, 255, 255, .35); }

.sfilm-slider__dot span { width: 0; background: #fff; }

.sfilm-slider__dot[aria-current="true"] span { width: 100%; }

.sfilm-slider.is-playing .sfilm-slider__dot[aria-current="true"] span { animation: sfilm-progress var(--sfilm-autoplay, 6s) linear forwards; }

@keyframes sfilm-progress { from { width: 0; } to { width: 100%; } }

.sfilm-slider__buttons { display: flex; gap: 8px; margin-left: auto; }

.sfilm .sfilm-slider__btn {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: #fff;
	font: 400 18px/1 var(--sfilm-sans);
	cursor: pointer;
	transition: background-color .2s, color .2s;
}

.sfilm .sfilm-slider__btn:hover,
.sfilm .sfilm-slider__btn:focus-visible { background: #fff; color: var(--sfilm-black); }

/* Icona pausa / play disegnata in CSS */
.sfilm-slider__pause span { position: relative; width: 10px; height: 12px; border-right: 3px solid currentColor; border-left: 3px solid currentColor; }

.sfilm-slider__pause.is-paused span { width: 0; height: 0; border-top: 6px solid transparent; border-right: 0; border-bottom: 6px solid transparent; border-left: 10px solid currentColor; }

/* --- Carosello ---------------------------------------------------------- */

.sfilm-carousel {
	--sfilm-band: clamp(36px, 5vw, 72px);
	--sfilm-pad: clamp(20px, 4vw, 64px);
	padding-bottom: clamp(36px, 5vw, 72px);
	overflow: hidden;
	background: linear-gradient(to bottom, var(--sfilm-bg) 0, var(--sfilm-bg) var(--sfilm-band), var(--sfilm-dark) var(--sfilm-band));
	color: #fff;
}

.sfilm-carousel__inner { display: grid; grid-template-columns: minmax(220px, 27%) minmax(0, 1fr); }

.sfilm-carousel__side { padding: calc(var(--sfilm-band) + clamp(40px, 5vw, 80px)) clamp(20px, 3vw, 48px) 24px var(--sfilm-pad); }

.sfilm .sfilm-carousel__eyebrow {
	display: inline-block;
	margin: 0 0 14px;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: rgba(255, 255, 255, .78);
	font: 500 11px/1.4 var(--sfilm-sans);
	letter-spacing: .22em;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
}

.sfilm .sfilm-carousel__eyebrow:hover,
.sfilm .sfilm-carousel__eyebrow[aria-pressed="true"] { color: #fff; }

.sfilm .sfilm-carousel__title {
	margin: 0 0 .7em;
	color: #fff;
	font-family: var(--sfilm-sans);
	font-size: clamp(34px, 3.8vw, 58px);
	font-weight: 400;
	letter-spacing: .02em;
	line-height: 1;
	text-transform: uppercase;
}

.sfilm .sfilm-carousel__filters { margin: 0; padding: 0; list-style: none; }

.sfilm .sfilm-carousel__filters li { margin: 0; }

.sfilm .sfilm-carousel__filters button {
	margin: 0;
	padding: 3px 0;
	border: 0;
	border-bottom: 1px solid transparent;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: rgba(255, 255, 255, .82);
	font: 400 clamp(14px, 1.15vw, 17px)/1.5 var(--sfilm-sans);
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
}

.sfilm .sfilm-carousel__filters button:hover { color: #fff; }

.sfilm .sfilm-carousel__filters button[aria-pressed="true"] { border-bottom-color: #fff; color: #fff; }

.sfilm-carousel__main { min-width: 0; }

.sfilm-carousel__viewport {
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	cursor: grab;
}

.sfilm-carousel__viewport::-webkit-scrollbar { display: none; }

.sfilm-carousel__viewport.is-dragging { cursor: grabbing; scroll-snap-type: none; }

.sfilm-carousel__viewport.is-dragging a { pointer-events: none; }

.sfilm .sfilm-carousel__track {
	display: flex;
	gap: clamp(10px, 1.2vw, 16px);
	width: max-content;
	margin: 0;
	padding: 0 var(--sfilm-pad) 0 0;
	list-style: none;
}

.sfilm .sfilm-carousel__item { flex: none; width: clamp(170px, 19vw, 290px); margin: 0; scroll-snap-align: start; }

.sfilm .sfilm-carousel__item[hidden] { display: none; }

.sfilm .sfilm-poster-card { position: relative; display: block; color: #fff; text-decoration: none; }

.sfilm-poster-card__media { display: block; aspect-ratio: 2 / 3; overflow: hidden; background: #2b2a30; }

.sfilm .sfilm-poster-card__media img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; -webkit-user-drag: none; }

.sfilm-poster-card__info {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 4px;
	padding: 18px;
	background: linear-gradient(to top, rgba(0, 0, 0, .82), rgba(0, 0, 0, 0) 60%);
	opacity: 0;
	transition: opacity .25s ease;
}

.sfilm-poster-card:hover .sfilm-poster-card__info,
.sfilm-poster-card:focus-visible .sfilm-poster-card__info { opacity: 1; }

.sfilm-poster-card__title { font: 500 clamp(16px, 1.3vw, 20px)/1.1 var(--sfilm-sans); text-transform: uppercase; }

.sfilm-poster-card__meta { font: 400 14px/1.4 var(--sfilm-serif); opacity: .85; }

.sfilm-carousel__empty { margin: 0; padding: 60px 0; font-family: var(--sfilm-serif); opacity: .8; }

.sfilm-carousel__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-top: clamp(24px, 3vw, 40px);
	padding-right: var(--sfilm-pad);
}

.sfilm-carousel__nav { display: flex; gap: 8px; }

.sfilm .sfilm-carousel__nav button {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .4);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: #fff;
	font: 400 16px/1 var(--sfilm-sans);
	cursor: pointer;
	transition: background-color .2s, color .2s, opacity .2s;
}

.sfilm .sfilm-carousel__nav button:hover:not(:disabled) { background: #fff; color: var(--sfilm-black); }

.sfilm .sfilm-carousel__nav button:disabled { opacity: .3; cursor: default; }

.sfilm .sfilm-carousel__links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px clamp(20px, 2.5vw, 36px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.sfilm .sfilm-carousel__links li { margin: 0; }

.sfilm .sfilm-carousel__links a {
	color: rgba(255, 255, 255, .85);
	font: 500 11px/1.4 var(--sfilm-sans);
	letter-spacing: .2em;
	text-decoration: none;
	text-transform: uppercase;
}

.sfilm .sfilm-carousel__links a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }

/* --- Elenco ------------------------------------------------------------- */

.sfilm-list { border-top: 1px solid var(--sfilm-line); }

.sfilm-list__item {
	display: grid;
	grid-template-columns: clamp(90px, 11vw, 150px) minmax(0, 1fr);
	gap: clamp(20px, 3vw, 40px);
	align-items: start;
	padding: clamp(20px, 2.5vw, 32px) 0;
	border-bottom: 1px solid var(--sfilm-line);
}

.sfilm .sfilm-list__poster { display: block; aspect-ratio: 2 / 3; overflow: hidden; background: #e4e4e4; }

.sfilm .sfilm-list__poster img { width: 100%; height: 100%; object-fit: cover; }

.sfilm .sfilm-list__title {
	margin: 0 0 6px;
	font-family: var(--sfilm-sans);
	font-size: clamp(24px, 2.6vw, 38px);
	font-weight: 500;
	line-height: 1.02;
	text-transform: uppercase;
}

.sfilm .sfilm-list__title a { text-decoration: none; }

.sfilm .sfilm-list__title a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; }

.sfilm .sfilm-list__meta { margin: 0 0 12px; color: var(--sfilm-muted); font-family: var(--sfilm-sans); font-size: 15px; letter-spacing: .1em; }

.sfilm .sfilm-list__text { max-width: 40em; margin: 0; }

/* --- Copertine ---------------------------------------------------------- */

.sfilm-covers {
	display: grid;
	grid-template-columns: repeat(var(--sfilm-cols, 2), minmax(0, 1fr));
	gap: clamp(12px, 1.6vw, 20px);
}

.sfilm .sfilm-cover-card { position: relative; display: block; overflow: hidden; color: #fff; text-decoration: none; }

.sfilm-cover-card__media { display: block; aspect-ratio: 2.35 / 1; background: var(--sfilm-dark); }

.sfilm .sfilm-cover-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }

.sfilm .sfilm-cover-card:hover img { transform: scale(1.03); }

.sfilm-cover-card__info {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 4px;
	padding: clamp(16px, 2vw, 28px);
	background: linear-gradient(to top, rgba(0, 0, 0, .7), rgba(0, 0, 0, 0) 60%);
}

.sfilm-cover-card__title { font: 500 clamp(22px, 2.4vw, 36px)/1 var(--sfilm-sans); text-transform: uppercase; }

.sfilm-cover-card__meta { font: 400 clamp(14px, 1.1vw, 17px)/1.4 var(--sfilm-serif); opacity: .9; }

/* --- Lightbox (aggiunta al body, fuori da .sfilm) ----------------------- */

html.sfilm-lock { overflow: hidden; }

.sfilm-lightbox {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(56px, 6vw, 80px) clamp(12px, 6vw, 90px);
	background: rgba(12, 12, 14, .95);
	animation: sfilm-fade .2s ease;
}

.sfilm-lightbox[hidden],
.sfilm-lightbox [hidden] { display: none !important; }

.sfilm-lightbox__stage {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.sfilm-lightbox__img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	object-fit: contain;
}

.sfilm-lightbox__video {
	width: min(100%, calc((100vh - 160px) * 16 / 9));
	aspect-ratio: 16 / 9;
	background: #000;
}

.sfilm-lightbox__video iframe { display: block; width: 100%; height: 100%; border: 0; }

.sfilm-lightbox button {
	position: absolute;
	z-index: 2;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: #fff;
	font-family: Arial, sans-serif;
	line-height: 1;
	cursor: pointer;
	opacity: .8;
}

.sfilm-lightbox button:hover,
.sfilm-lightbox button:focus-visible { opacity: 1; outline: 2px solid #fff; outline-offset: 2px; }

.sfilm-lightbox__close { top: 12px; right: 16px; width: 48px; height: 48px; font-size: 40px; }

.sfilm-lightbox__nav { top: 50%; width: 52px; height: 80px; font-size: 60px; transform: translateY(-50%); }

.sfilm-lightbox__prev { left: 6px; }

.sfilm-lightbox__next { right: 6px; }

.sfilm-lightbox__caption {
	position: absolute;
	right: 0;
	bottom: 16px;
	left: 0;
	margin: 0;
	padding: 0 20px;
	color: #d6d6d6;
	font-family: Georgia, serif;
	font-size: 15px;
	text-align: center;
}

@keyframes sfilm-fade { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
	.sfilm *,
	.sfilm-lightbox { animation: none !important; transition: none !important; }

	.sfilm .sfilm-slide__img { transform: none; }

	.sfilm-slide__content > * { opacity: 1; transform: none; }
}

/* --- Responsive --------------------------------------------------------- */

@media (max-width: 900px) {
	.sfilm { --sfilm-overlap: 56px; }

	.sfilm-hero { height: clamp(240px, 60vw, 420px); }

	.sfilm-hero__inner {
		grid-template-columns: 1fr;
		padding-bottom: calc(var(--sfilm-overlap) + 16px);
	}

	.sfilm .sfilm-hero__meta { grid-column: 1; }

	.sfilm-intro { grid-template-columns: 1fr; }

	.sfilm-intro__side {
		display: grid;
		grid-template-columns: minmax(0, 44%) 1fr;
		gap: 16px;
		align-items: end;
	}

	.sfilm-intro__side .sfilm-actions { margin-top: 0; }

	.sfilm-intro__side .sfilm-actions:only-child { grid-column: 1 / -1; }

	.sfilm-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.sfilm-regista__head { grid-template-columns: 1fr; row-gap: 32px; }

	.sfilm .sfilm-regista__photo { max-width: 340px; }

	.sfilm-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.sfilm-slider { height: var(--sfilm-slider-h-m, 75vh); }

	.sfilm-slider__controls { bottom: 20px; }

	.sfilm-carousel { --sfilm-band: 0px; padding-top: 40px; }

	.sfilm-carousel__inner { grid-template-columns: 1fr; }

	.sfilm-carousel__side { padding: 0 var(--sfilm-pad) 28px; }

	.sfilm .sfilm-carousel__filters { display: flex; flex-wrap: wrap; gap: 4px 20px; }

	.sfilm-carousel__viewport { padding-left: var(--sfilm-pad); scroll-padding-left: var(--sfilm-pad); }

	.sfilm .sfilm-carousel__item { width: clamp(150px, 42vw, 240px); }

	.sfilm-carousel__foot { padding-left: var(--sfilm-pad); }

	.sfilm-covers { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
	.sfilm-table__row { grid-template-columns: 40% 1fr; }

	.sfilm .sfilm-table dt,
	.sfilm .sfilm-table dd { letter-spacing: .08em; }

	.sfilm .sfilm-screening { grid-template-columns: 1fr; row-gap: 4px; }

	.sfilm-gallery__grid { grid-template-columns: 1fr; }

	.sfilm-lightbox__nav { display: none; }

	.sfilm .sfilm-slider__btn[data-dir] { display: none; }

	.sfilm-slide__actions .sfilm-btn { flex: 1 1 auto; }

	.sfilm-carousel__foot { flex-direction: column; align-items: flex-start; }

	.sfilm-list__item { grid-template-columns: 84px minmax(0, 1fr); }
}

.sfilm-carousel__nav[hidden] { display: none; }
