/* =========================================================================
   Montecitorionews24 - stili del tema
   Valori ripresi dal kit e dai template Elementor (colori, font, spaziature, punti di rottura 1200/880 px).
   ========================================================================= */

/* ---------- Font (stessi file usati finora, ora dentro il tema) ---------- */

@font-face { font-family: "Montserrat"; src: url("../fonts/montserrat-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Montserrat"; src: url("../fonts/montserrat-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Montserrat"; src: url("../fonts/montserrat-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Montserrat"; src: url("../fonts/montserrat-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Montserrat"; src: url("../fonts/montserrat-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Montserrat"; src: url("../fonts/montserrat-800.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Newsreader"; src: url("../fonts/newsreader-variable.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Newsreader"; src: url("../fonts/newsreader-italic-variable.woff2") format("woff2"); font-weight: 200 800; font-style: italic; font-display: swap; }

/* ---------- Variabili ---------- */

:root {
	/* Colori del kit (logo): rosso e blu li usa anche il CSS del plugin MN24 Home, che così resta allineato.
	   Il grigio del kit ha un nome diverso da --mn24-grey, il grigio più chiaro che il plugin usa per date e orari. */
	--mn24-red: #bc0000;
	--mn24-navy: #04142c;
	--mn24-black: #000;
	--mn24-grey-dark: #2c2c2c;
	--mn24-muted: #5f6368;
	--mn24-line: #e3e3e3;
	--mn24-footer-text: rgba(255, 255, 255, 0.72);

	--mn24-sans: "Montserrat", Arial, sans-serif;
	--mn24-serif: "Newsreader", Georgia, "Times New Roman", serif;

	/* Tipografia globale del kit */
	--mn24-fs-primary: clamp(1.875rem, 1.5461rem + 1.3158vw, 3.125rem);
	--mn24-fs-secondary: clamp(1.5625rem, 1.2336rem + 1.3158vw, 2.8125rem);
	--mn24-fs-text: clamp(1rem, 0.9671rem + 0.1316vw, 1.125rem);
	--mn24-fs-accent: clamp(1.125rem, 1.0921rem + 0.1316vw, 1.25rem);
	--mn24-fs-small: clamp(0.75rem, 0.6944rem + 0.2222vw, 0.875rem);
	--mn24-fs-article-title: clamp(1.25rem, 0.8333rem + 1.6667vw, 2.1875rem);
	--mn24-fs-article-text: clamp(0.875rem, 0.8194rem + 0.2222vw, 1rem);

	/* Larghezza dei contenuti: 1300 px, 1024 px sotto i 1200 px, 767 px sotto gli 880 px (come i contenitori Elementor) */
	--mn24-container: 1300px;
	--mn24-gutter: 20px;
}

@media (max-width: 1200px) {
	:root { --mn24-container: 1024px; }
}

@media (max-width: 880px) {
	:root {
		--mn24-container: 767px;
		--mn24-gutter: 12px;
	}
}

/* ---------- Base ---------- */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	max-width: 2000px;
	margin: 0 auto;
	font-family: var(--mn24-sans);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: #333;
	background: #fff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img,
svg,
video,
iframe {
	max-width: 100%;
}

img {
	height: auto;
	border: 0;
}

a {
	color: inherit;
	text-decoration: none;
}

h1, h2, h3, h4, h5, h6, p, ul, ol, figure {
	margin: 0;
}

button {
	font: inherit;
}

:focus-visible {
	outline: 2px solid var(--mn24-red);
	outline-offset: 2px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.mn24-skip {
	position: absolute;
	top: -100px;
	left: 16px;
	z-index: 10000;
	padding: 10px 16px;
	background: var(--mn24-navy);
	color: #fff;
	font-weight: 700;
}

.mn24-skip:focus {
	top: 16px;
}

.mn24-icon {
	display: inline-block;
	flex: none;
	width: 1em;
	height: 1em;
	vertical-align: middle;
}

.mn24-container {
	width: min(var(--mn24-container), 100% - 2 * var(--mn24-gutter));
	margin-inline: auto;
}

html.mn24-no-scroll {
	overflow: hidden;
}

/* ---------- Header ---------- */

.mn24-header {
	background: #fff;
}

.mn24-topbar-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 0 6px;
}

.mn24-topbar-row__links {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 18px;
}

.mn24-social {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mn24-social a {
	display: flex;
	font-size: 17px;
	line-height: 1;
	color: var(--mn24-navy);
	transition: color 0.3s;
}

.mn24-social a:hover {
	color: var(--mn24-red);
}

.mn24-live {
	display: inline-flex;
	align-items: center;
	padding-left: 16px;
	border-left: 1px solid var(--mn24-line);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--mn24-navy);
	transition: color 0.3s;
}

.mn24-live:hover {
	color: var(--mn24-red);
}

.mn24-live .mn24-icon {
	font-size: 9px;
	color: var(--mn24-red);
}

.mn24-live__dot {
	margin-right: 5px;
}

.mn24-live__icon {
	margin-left: 10px;
}

.mn24-masthead {
	display: flex;
	align-items: center;
	gap: 26px;
	padding: 20px 0 22px;
	border-bottom: 1px solid var(--mn24-line);
}

.mn24-masthead a {
	display: block;
	line-height: 0;
}

.mn24-logo--sigla {
	width: 150px;
}

.mn24-masthead__logo {
	min-width: 0;
	padding-left: 26px;
	border-left: 2px solid var(--mn24-navy);
}

.mn24-logo--esteso {
	width: 900px;
}

.mn24-nav {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	border-bottom: 3px solid var(--mn24-red);
}

.mn24-menu {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mn24-menu a {
	display: block;
	padding: 15px 16px;
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 0.4px;
	text-transform: uppercase;
	color: var(--mn24-navy);
	transition: color 0.3s;
}

.mn24-menu a:hover,
.mn24-menu .current-menu-item > a,
.mn24-menu .current-menu-ancestor > a {
	color: var(--mn24-red);
}

.mn24-nav__toggle {
	display: none;
}

.mn24-search-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	margin-right: 8px;
	padding: 0;
	border: 0;
	border-radius: 3px;
	background: rgba(0, 0, 0, 0.05);
	font-size: 15px;
	color: var(--mn24-navy);
	cursor: pointer;
	transition: color 0.3s, background-color 0.3s;
}

.mn24-search-toggle:hover {
	color: var(--mn24-red);
	background: rgba(0, 0, 0, 0.08);
}

@media (max-width: 1200px) {
	.mn24-masthead__logo {
		flex: 1 1 auto;
	}

	.mn24-logo--esteso {
		width: 100%;
	}

	.mn24-nav__toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		margin: 3px 0;
		padding: 0;
		border: 0;
		border-radius: 3px;
		background: rgba(0, 0, 0, 0.05);
		font-size: 24px;
		color: var(--mn24-navy);
		cursor: pointer;
	}

	.mn24-nav__icon-close,
	.mn24-nav__toggle[aria-expanded="true"] .mn24-nav__icon-open {
		display: none;
	}

	.mn24-nav__toggle[aria-expanded="true"] .mn24-nav__icon-close {
		display: inline-block;
	}

	.mn24-menu {
		position: absolute;
		top: calc(100% + 3px);
		right: 0;
		left: 0;
		z-index: 50;
		display: none;
		flex-direction: column;
		background: #fff;
		box-shadow: 0 12px 24px rgba(4, 20, 44, 0.12);
	}

	.mn24-menu.is-open {
		display: flex;
	}

	.mn24-menu a {
		padding: 13px 16px;
		border-bottom: 1px solid #f0f0f0;
	}
}

@media (max-width: 880px) {
	.mn24-topbar-row {
		flex-direction: column;
	}

	.mn24-topbar-row__date,
	.mn24-topbar-row__links {
		display: flex;
		justify-content: center;
		width: 100%;
	}

	.mn24-topbar-row .mn24-topbar {
		flex-wrap: wrap;
		justify-content: center;
		gap: 4px 16px;
		white-space: normal;
	}

	.mn24-masthead {
		padding: 12px 0;
	}

	.mn24-masthead__sigla {
		display: none !important;
	}

	.mn24-masthead__logo {
		padding-left: 0;
		border-left: 0;
	}
}

/* ---------- Ricerca a tutto schermo ---------- */

.mn24-search {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 5vw;
	background: rgba(4, 20, 44, 0.94);
}

.mn24-search[hidden] {
	display: none;
}

.mn24-search .mn24-searchform {
	display: flex;
	align-items: center;
	width: min(900px, 100%);
	border-bottom: 2px solid rgba(255, 255, 255, 0.5);
}

.mn24-search .mn24-searchform__input {
	flex: 1;
	min-width: 0;
	padding: 12px 0;
	border: 0;
	background: transparent;
	font: 700 clamp(1.5rem, 1rem + 2.5vw, 3.125rem) / 1.2 var(--mn24-sans);
	color: #fff;
	outline: none;
}

.mn24-search .mn24-searchform__input::placeholder {
	color: rgba(255, 255, 255, 0.55);
}

/* La "x" nativa del campo di ricerca è superflua: il pannello ha già il pulsante di chiusura. */
.mn24-searchform__input::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
}

.mn24-search .mn24-searchform__submit,
.mn24-search__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	background: none;
	color: #fff;
	cursor: pointer;
}

.mn24-search .mn24-searchform__submit {
	font-size: 28px;
}

.mn24-search__close {
	position: absolute;
	top: 20px;
	right: 20px;
	font-size: 26px;
}

/* ---------- Footer ---------- */

.mn24-footer {
	margin-top: 40px;
	padding: 44px 0 22px;
	border-top: 3px solid var(--mn24-red);
	background: var(--mn24-navy);
	color: var(--mn24-footer-text);
}

.mn24-footer__columns {
	display: grid;
	grid-template-columns: 40fr 28fr 28fr;
	align-items: start;
	gap: 32px;
	padding-bottom: 40px;
}

.mn24-footer__about {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-right: 40px;
}

.mn24-footer__logo {
	align-self: flex-start;
	line-height: 0;
}

.mn24-footer__logo .mn24-logo {
	width: 96px;
}

.mn24-footer__tagline {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: #fff;
}

.mn24-footer__text {
	font-size: 13px;
	line-height: 1.65;
}

.mn24-social--footer {
	gap: 18px;
	margin-top: 6px;
}

.mn24-social--footer a {
	color: #fff;
}

.mn24-social--footer a:hover {
	color: var(--mn24-red);
}

.mn24-footer__col {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

.mn24-footer__title {
	display: inline-block;
	padding-bottom: 6px;
	border-bottom: 2px solid var(--mn24-red);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	color: #fff;
}

.mn24-footer__menu,
.mn24-footer__links {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mn24-footer__menu {
	gap: 2px;
}

.mn24-footer__links {
	gap: 10px;
}

.mn24-footer__menu a,
.mn24-footer__links a {
	display: inline-block;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--mn24-footer-text);
	transition: color 0.3s, box-shadow 0.3s;
}

.mn24-footer__menu a {
	padding: 5px 0;
}

.mn24-footer__menu a:hover,
.mn24-footer__menu .current-menu-item > a,
.mn24-footer__links a:hover {
	color: #fff;
}

.mn24-footer__menu a:hover,
.mn24-footer__menu .current-menu-item > a {
	box-shadow: inset 0 -2px var(--mn24-red);
}

.mn24-footer__legal {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding-top: 18px;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	font-size: 12px;
	line-height: 1.4;
}

.mn24-top {
	font-weight: 600;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--mn24-footer-text);
	transition: color 0.3s;
}

.mn24-top:hover {
	color: #fff;
}

@media (max-width: 1200px) {
	.mn24-footer__columns {
		grid-template-columns: 1fr;
	}

	.mn24-footer__about {
		padding-right: 0;
	}
}

@media (max-width: 880px) {
	.mn24-footer {
		padding: 32px 0 20px;
	}

	.mn24-footer .mn24-container {
		width: min(var(--mn24-container), 100% - 32px);
	}

	.mn24-footer__legal {
		flex-direction: column;
	}
}

/* ---------- Elementi comuni ---------- */

/* Limite di righe con i puntini (titoli lunghi e sommari) */
.mn24-clamp {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
	overflow-wrap: anywhere;
}

.mn24-clamp--2 { -webkit-line-clamp: 2; line-clamp: 2; }
.mn24-clamp--3 { -webkit-line-clamp: 3; line-clamp: 3; }
.mn24-clamp--4 { -webkit-line-clamp: 4; line-clamp: 4; }

/* Titoli di sezione in rosso con filetto sotto il testo */
.mn24-section-title {
	font-size: 15px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	color: var(--mn24-red);
}

.mn24-section-title span {
	display: inline-block;
	padding-bottom: 6px;
	border-bottom: 2px solid var(--mn24-red);
}

.mn24-empty {
	font-size: 14px;
	color: var(--mn24-muted);
}

/* ---------- Card ---------- */

.mn24-card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.mn24-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	background: #eef0f3;
}

.mn24-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mn24-card__img--vuota {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #eef0f3;
}

.mn24-card__img--vuota img {
	width: 64px;
	height: auto;
	opacity: 0.35;
}

.mn24-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.mn24-card__cat {
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--mn24-red);
}

.mn24-card__title {
	font-family: var(--mn24-serif);
	font-weight: 700;
	line-height: 1.12;
	color: var(--mn24-navy);
}

.mn24-card__title a {
	color: inherit;
	transition: color 0.2s;
}

.mn24-card__title a:hover {
	color: var(--mn24-red);
}

.mn24-card__date {
	display: block;
	font-size: 12px;
	line-height: 1.2;
	color: var(--mn24-muted);
}

.mn24-card--verticale .mn24-card__media {
	height: 150px;
}

.mn24-card--verticale .mn24-card__title {
	font-size: 17px;
}

.mn24-card--orizzontale {
	display: grid;
	grid-template-columns: 40% minmax(0, 1fr);
	align-items: start;
	gap: 14px;
}

.mn24-card--orizzontale .mn24-card__media {
	height: 118px;
}

.mn24-card--orizzontale .mn24-card__body {
	gap: 6px;
}

.mn24-card--orizzontale .mn24-card__title {
	font-size: 18px;
}

.mn24-card--video,
.mn24-card--video .mn24-card__body {
	gap: 10px;
}

.mn24-card--video .mn24-card__media {
	height: 230px;
}

.mn24-card--video .mn24-card__title {
	font-size: 22px;
}

.mn24-play {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--mn24-red);
	font-size: 20px;
	color: #fff;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.mn24-play .mn24-icon {
	margin-left: 3px;
}

@media (max-width: 1200px) {
	.mn24-card--orizzontale .mn24-card__title {
		font-size: 17px;
	}

	.mn24-card--video .mn24-card__title {
		font-size: 20px;
	}

	/* Su tablet la colonna del video è larga quanto la pagina: una fascia alta 230 px taglierebbe troppo l'immagine. */
	.mn24-card--video .mn24-card__media {
		width: 100%;
		max-width: 560px;
		height: auto;
		aspect-ratio: 16 / 9;
	}
}

@media (max-width: 880px) {
	.mn24-card--verticale .mn24-card__title {
		font-size: 18px;
	}

	.mn24-card--video .mn24-card__media {
		max-width: none;
		height: 230px;
		aspect-ratio: auto;
	}
}

/* ---------- Apertura della home ---------- */

.mn24-hero {
	position: relative;
	z-index: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 470px;
	padding: 22px 22px 24px;
	overflow: hidden;
	background: var(--mn24-navy);
	color: #fff;
}

.mn24-hero__img {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mn24-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0.88) 100%);
}

.mn24-hero__cat {
	align-self: flex-start;
	padding: 6px 12px;
	background: var(--mn24-red);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.6px;
	text-transform: uppercase;
}

.mn24-hero__text {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.mn24-hero__title {
	font-family: var(--mn24-serif);
	font-size: 38px;
	font-weight: 700;
	line-height: 1.12;
}

.mn24-hero__excerpt {
	font-size: 16px;
	line-height: 1.4;
}

@media (max-width: 1200px) {
	.mn24-hero {
		min-height: 420px;
	}

	.mn24-hero__title {
		font-size: 30px;
	}
}

@media (max-width: 880px) {
	.mn24-hero {
		min-height: 360px;
	}

	.mn24-hero__title {
		font-size: 26px;
	}

	.mn24-hero__excerpt {
		display: none;
	}
}

/* ---------- Home ---------- */

.mn24-home-top {
	display: grid;
	grid-template-columns: 48fr 22fr 26fr;
	align-items: start;
	gap: 28px;
	padding: 24px 0;
}

.mn24-home-top__main {
	display: flex;
	flex-direction: column;
	gap: 24px;
	min-width: 0;
}

.mn24-home-top__evidenza {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.mn24-home-top__col {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
}

.mn24-home-sections {
	border-top: 1px solid var(--mn24-line);
}

.mn24-home-sections__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 24px;
	padding: 28px 0 40px;
}

@media (max-width: 1200px) {
	.mn24-home-top {
		grid-template-columns: minmax(0, 1fr);
	}

	.mn24-home-sections__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 880px) {
	.mn24-home-top {
		padding: 16px 0;
	}

	.mn24-home-top__evidenza,
	.mn24-home-sections__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.mn24-home-sections__grid {
		padding: 24px 0 32px;
	}
}

/* ---------- Video YouTube leggeri (miniatura, il lettore si carica al clic) ---------- */

.mn24-yt {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #000;
	cursor: pointer;
}

.mn24-yt__thumb,
.mn24-yt iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: cover;
}

.mn24-yt__play {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--mn24-red);
	font-size: 24px;
	color: #fff;
	transform: translate(-50%, -50%);
	cursor: pointer;
	transition: transform 0.2s;
}

.mn24-yt__play .mn24-icon {
	margin-left: 4px;
}

.mn24-yt:hover .mn24-yt__play {
	transform: translate(-50%, -50%) scale(1.08);
}

.mn24-yt--embed {
	margin: 0 0 0.9rem;
}

/* ---------- Articolo ---------- */

.mn24-narrow {
	width: min(1000px, 100% - 2 * var(--mn24-gutter));
	margin-inline: auto;
}

.mn24-article-hero {
	position: relative;
	z-index: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 500px;
	padding: 120px 0 80px;
	overflow: hidden;
	background: var(--mn24-grey-dark);
	color: #fff;
}

.mn24-article-hero__img {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mn24-article-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(245deg, rgba(0, 0, 0, 0) 45%, #000 100%);
}

.mn24-article-hero__inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: min(1000px, 100% - 2 * var(--mn24-gutter));
	margin-inline: auto;
}

.mn24-article-hero__title {
	width: 55%;
	font-size: var(--mn24-fs-article-title);
	font-weight: 700;
	line-height: 1.3;
	text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.mn24-article-hero__badges {
	display: flex;
	gap: 10px;
}

.mn24-badge {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 8px;
	padding: 10px 20px;
	border-radius: 30px;
	background: var(--mn24-red);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	text-transform: uppercase;
	color: #fff;
}

.mn24-badge .mn24-icon {
	font-size: 20px;
}

/* Variante Sostenibilità: contenuto largo quanto la pagina, breadcrumb, etichetta rettangolare */
.mn24-article-hero--sostenibilita {
	padding: 100px 0;
}

.mn24-article-hero--sostenibilita::after {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000 100%);
	opacity: 0.65;
}

.mn24-article-hero--sostenibilita .mn24-article-hero__inner {
	width: min(var(--mn24-container), 100% - 2 * var(--mn24-gutter));
}

.mn24-article-hero--sostenibilita .mn24-article-hero__title {
	width: auto;
	margin-top: 20px;
	text-shadow: none;
}

.mn24-article-hero--sostenibilita .mn24-badge {
	padding: 5px 10px;
	border-radius: 0;
	font-size: 16px;
	line-height: 1;
	box-shadow: 0 10px 5px rgba(0, 0, 0, 0.5);
}

.mn24-article-hero--sostenibilita .mn24-badge .mn24-icon {
	font-size: 18px;
}

.mn24-breadcrumb {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: #fff;
}

.mn24-breadcrumb a {
	color: #fff;
}

.mn24-breadcrumb a:hover {
	text-decoration: underline;
}

/* Autore, data e condivisione */
.mn24-article-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 26px 0;
}

.mn24-article-meta__author {
	display: flex;
	align-items: center;
	gap: 20px;
	min-width: 0;
}

.mn24-article-meta__avatar {
	flex: none;
	width: 51px;
	height: 51px;
	border-radius: 30px;
	object-fit: cover;
}

.mn24-article--sostenibilita .mn24-article-meta__avatar {
	border-radius: 0;
}

.mn24-article-meta__name {
	font-size: var(--mn24-fs-accent);
	font-weight: 600;
	line-height: 1;
	text-transform: uppercase;
	color: #000;
}

.mn24-article--sostenibilita .mn24-article-meta__name {
	font-weight: 700;
}

.mn24-article-meta__when,
.mn24-card-cat__date {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 14px;
	font-size: 16px;
	line-height: 1.5;
	color: var(--mn24-grey-dark);
}

.mn24-article-meta__when {
	margin-left: 14px;
}

.mn24-article-meta__when > span,
.mn24-card-cat__date > span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.mn24-article-meta__when .mn24-icon,
.mn24-card-cat__date .mn24-icon {
	font-size: 14px;
}

.mn24-share {
	display: flex;
	align-items: center;
	gap: 10px;
}

.mn24-share__btn,
.mn24-share__copy {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 45px;
	height: 45px;
	padding: 0;
	border: 0;
	background: #fff;
	font-size: 25px;
	color: var(--mn24-red);
	cursor: pointer;
	transition: opacity 0.2s;
}

.mn24-share__copy {
	font-size: 30px;
}

.mn24-share__btn:hover,
.mn24-share__copy:hover {
	opacity: 0.75;
}

.mn24-share__feedback {
	position: absolute;
	bottom: calc(100% + 6px);
	left: 50%;
	padding: 4px 8px;
	background: var(--mn24-navy);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	white-space: nowrap;
	color: #fff;
	transform: translateX(-50%);
	pointer-events: none;
}

.mn24-share--top {
	margin-right: 60px;
}

/* Testo dell'articolo (stili di base del tema Hello usato finora) */
.mn24-article-body {
	padding-bottom: 40px;
}

.mn24-rule {
	height: 0;
	margin: 0;
	border: 0;
	border-top: 1px solid #cacaca;
}

.mn24-article-video {
	width: 80%;
	margin: 20px auto 0;
	box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.5);
}

/* Testo di articoli e pagine: .mn24-content; nell'articolo il corpo è un po' più grande */
.mn24-content {
	line-height: 1.5;
	color: #000;
	overflow-wrap: break-word;
}

.mn24-article-content {
	margin-top: 20px;
	font-size: var(--mn24-fs-text);
}

.mn24-content::after {
	content: "";
	display: table;
	clear: both;
}

.mn24-content p,
.mn24-content ul,
.mn24-content ol,
.mn24-content blockquote,
.mn24-content figure,
.mn24-content table {
	margin: 0 0 0.9rem;
}

.mn24-content h1,
.mn24-content h2,
.mn24-content h3,
.mn24-content h4,
.mn24-content h5,
.mn24-content h6 {
	margin: 0.5rem 0 1rem;
	font-weight: 500;
	line-height: 1.2;
}

.mn24-content h1 { font-size: 2.5rem; }
.mn24-content h2 { font-size: 2rem; }
.mn24-content h3 { font-size: 1.75rem; }
.mn24-content h4 { font-size: 1.5rem; }
.mn24-content h5 { font-size: 1.25rem; }
.mn24-content h6 { font-size: 1rem; }

.mn24-content ul,
.mn24-content ol {
	padding-left: 1.5em;
}

.mn24-content a {
	color: var(--mn24-red);
	text-decoration: underline;
}

/* Gli elenchi del plugin MN24 Home dentro il testo (Ultime notizie) hanno già i loro stili: i link non vanno sottolineati */
.mn24-content :where(.mn24-news, .mn24-ultime) a {
	color: inherit;
	text-decoration: none;
}

.mn24-content blockquote {
	padding-left: 1em;
	border-left: 3px solid var(--mn24-red);
	font-style: italic;
}

.mn24-content img {
	max-width: 100%;
	height: auto;
}

.mn24-content .aligncenter {
	display: block;
	margin-inline: auto;
}

.mn24-content .alignleft {
	float: left;
	margin: 0 1em 1em 0;
}

.mn24-content .alignright {
	float: right;
	margin: 0 0 1em 1em;
}

.mn24-content .wp-caption {
	max-width: 100%;
}

.mn24-content .wp-caption-text {
	margin-top: 6px;
	font-size: 14px;
	color: var(--mn24-muted);
}

.mn24-content iframe {
	max-width: 100%;
}

/* Condivisione in fondo */
.mn24-article-share {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.mn24-article-share .mn24-rule {
	align-self: stretch;
}

.mn24-article-share__label {
	margin-top: -10px;
	font-size: var(--mn24-fs-text);
	line-height: 1.5;
	color: var(--mn24-grey-dark);
}

/* Articoli correlati */
.mn24-related {
	padding: 60px 0;
}

.mn24-tab {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px;
	background: var(--mn24-red);
	font-size: var(--mn24-fs-accent);
	font-weight: 600;
	line-height: 1.5;
	text-transform: uppercase;
	color: #fff;
}

.mn24-tab .mn24-icon {
	font-size: 20px;
}

/* ---------- Card delle categorie (correlati e archivi) ---------- */

.mn24-card-cat-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.mn24-related__grid {
	padding-top: 20px;
	border-top: 2px solid var(--mn24-red);
}

.mn24-card-cat {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 10px;
}

.mn24-card-cat__media {
	position: relative;
	display: block;
	height: 200px;
	overflow: hidden;
	background: #eef0f3;
}

.mn24-card-cat__media.mn24-yt {
	aspect-ratio: auto;
}

.mn24-card-cat__body {
	display: flex;
	flex-direction: column;
	padding-top: 20px;
}

.mn24-card-cat__cat {
	font-size: clamp(0.625rem, 0.5139rem + 0.4444vw, 0.875rem);
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
	color: var(--mn24-red);
}

.mn24-card-cat__title {
	margin-top: 20px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	text-transform: uppercase;
	color: #000;
	overflow-wrap: anywhere;
}

.mn24-card-cat__title a {
	color: inherit;
	transition: color 0.2s;
}

.mn24-card-cat__title a:hover {
	color: var(--mn24-red);
}

.mn24-card-cat__date {
	margin-top: 10px;
}

@media (max-width: 1200px) {
	.mn24-article-hero {
		justify-content: flex-start;
		min-height: 0;
	}

	.mn24-article-hero--standard .mn24-article-hero__title {
		align-self: center;
		text-align: center;
	}

	.mn24-article-hero--standard .mn24-article-hero__badges {
		justify-content: center;
	}

	.mn24-article-hero--standard .mn24-badge {
		align-self: center;
	}

	.mn24-article-hero--sostenibilita {
		justify-content: flex-end;
		min-height: 300px;
		padding: 100px 0 20px;
	}

	.mn24-article-meta__when,
	.mn24-share--top {
		display: none;
	}

	.mn24-card-cat-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.mn24-related {
		padding: 40px 0;
	}
}

@media (max-width: 880px) {
	/* Testata standard su mobile: titolo in basso sull'immagine, categoria in una fascia bianca in alto */
	.mn24-article-hero--standard {
		justify-content: flex-end;
		min-height: 400px;
		padding: 64px 0 0;
	}

	.mn24-article-hero--standard::after {
		background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000 100%);
		opacity: 0.79;
	}

	.mn24-article-hero--standard .mn24-article-hero__title {
		align-self: stretch;
		width: auto;
		margin: 20px 8px 40px;
		text-align: left;
	}

	.mn24-article-hero--standard .mn24-article-hero__badges {
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		padding: 10px;
		background: #fff;
	}

	.mn24-article-hero--standard .mn24-badge {
		justify-content: center;
		width: 50%;
		gap: 6px;
		padding: 10px 8px;
		font-size: 10px;
		line-height: 2.4;
	}

	.mn24-article-hero--standard .mn24-badge .mn24-icon {
		font-size: 10px;
	}

	.mn24-article-hero--sostenibilita {
		padding: 40px 0;
	}

	/* Su mobile l'articolo ha 20 px di margine laterale e l'autore centrato, come nel template Elementor */
	.mn24-narrow {
		width: calc(100% - 40px);
	}

	.mn24-article-meta {
		justify-content: center;
	}

	.mn24-article-video {
		width: 100%;
		margin: 20px 0 0;
	}

	.mn24-card-cat-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.mn24-related {
		padding: 20px 0;
	}

	.mn24-tab {
		display: flex;
	}
}

/* ---------- Archivi e risultati della ricerca ---------- */

/* Testata scura con lo sfondo "giornali" */
.mn24-archive-hero {
	position: relative;
	overflow: hidden;
	padding: 100px 0 250px;
	background: var(--mn24-grey-dark);
}

.mn24-archive-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("../img/bg-categoria.webp") center / cover no-repeat;
}

.mn24-archive-hero__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	width: min(800px, 100% - 2 * var(--mn24-gutter));
	margin-inline: auto;
	text-align: center;
}

.mn24-archive-hero__title {
	display: flex;
	align-items: center;
	gap: 8px;
	max-width: 100%;
	padding: 5px 20px;
	background: var(--mn24-red);
	box-shadow: 0 10px 5px rgba(0, 0, 0, 0.5);
	font-size: var(--mn24-fs-secondary);
	font-weight: 700;
	line-height: 1.5;
	color: #fff;
	overflow-wrap: anywhere;
}

.mn24-archive-hero__title .mn24-icon {
	font-size: 30px;
}

/* Mentre la testata esce dallo schermo lo sfondo si sfoca e si ingrandisce, con i valori dell'effetto Elementor:
   sfocatura da 0 a 10 px tra il 30% e il 70% del passaggio nello schermo, ingrandimento da 1 a 1,4 tra il 32% e l'80%.
   Solo CSS: dove le animazioni legate allo scorrimento non ci sono (o con "riduci movimento") lo sfondo resta fermo. */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.mn24-archive-hero {
			view-timeline-name: --mn24-archive-hero;
		}

		.mn24-archive-hero::before {
			animation: mn24-archive-hero-bg auto linear both;
			animation-timeline: --mn24-archive-hero;
		}
	}
}

@keyframes mn24-archive-hero-bg {
	0% { filter: blur(0); transform: scale(1); }
	30% { filter: blur(0); }
	32% { transform: scale(1); }
	70% { filter: blur(10px); }
	80% { transform: scale(1.4); }
	100% { filter: blur(10px); transform: scale(1.4); }
}

/* Riquadro bianco con le card, sovrapposto di 180 px alla testata. Sotto restano 80 px prima del footer
   (40 qui più i 40 del margine del footer). */
.mn24-archive {
	display: flow-root;
	padding-bottom: 40px;
}

.mn24-archive__box {
	position: relative;
	width: min(var(--mn24-container), 100%);
	margin: -180px auto 0;
	padding: 20px;
	background: #fff;
}

/* Righe tutte alte uguali, come nella griglia Elementor */
.mn24-archive__grid {
	grid-auto-rows: 1fr;
	gap: 30px;
}

.mn24-archive__empty {
	padding: 30px 0;
	font-size: 16px;
	text-align: center;
	color: #1f2124;
}

/* Numeri di pagina */
.mn24-pagination {
	margin-top: 20px;
	font-size: 16px;
	line-height: 1.5;
}

.mn24-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.mn24-pagination .page-numbers {
	min-width: 24px;
	padding: 0 3px;
	text-align: center;
	color: var(--mn24-red);
}

.mn24-pagination .page-numbers.current,
.mn24-pagination .page-numbers.dots {
	color: #333;
}

.mn24-pagination .prev,
.mn24-pagination .next {
	font-weight: 700;
}

.mn24-pagination a.page-numbers:hover {
	text-decoration: underline;
}

@media (max-width: 880px) {
	/* Su mobile l'icona va sopra il titolo */
	.mn24-archive-hero__title {
		flex-direction: column;
	}

	/* Una card per riga: ognuna alta quanto il suo contenuto, senza spazi vuoti */
	.mn24-archive__grid {
		grid-auto-rows: auto;
	}
}

/* ---------- Pagina 404 ---------- */

.mn24-404__text {
	max-width: 640px;
	margin: 20px auto 24px;
	font-size: 18px;
	line-height: 1.5;
	text-align: center;
	color: #000;
}

.mn24-404__text a {
	color: var(--mn24-red);
	text-decoration: underline;
}

/* Modulo di ricerca su fondo chiaro (quello dell'header è sul pannello scuro) */
.mn24-404 .mn24-searchform {
	display: flex;
	width: min(600px, 100%);
	margin: 0 auto;
}

.mn24-404 .mn24-searchform__input {
	flex: 1;
	min-width: 0;
	padding: 12px 16px;
	border: 1px solid #cacaca;
	border-right: 0;
	border-radius: 0;
	background: #fff;
	font: 400 16px / 1.5 var(--mn24-sans);
	color: #000;
}

.mn24-404 .mn24-searchform__submit {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 52px;
	padding: 0;
	border: 0;
	background: var(--mn24-red);
	font-size: 20px;
	color: #fff;
	cursor: pointer;
}

.mn24-404 .mn24-searchform__submit:hover {
	background: var(--mn24-navy);
}

.mn24-404__latest {
	margin-top: 50px;
}

/* ---------- Pagine ---------- */

.mn24-page__content {
	font-size: 16px;
}

/* Testo e colonna "Ultime notizie" nelle proporzioni della vecchia colonna Elementor (80 : 25).
   Il testo ha un margine: con Elementor toccava il bordo sinistro dello schermo. */
.mn24-page-layout {
	display: flex;
}

.mn24-page--sidebar {
	flex: 1 1 0;
	min-width: 0;
	padding: 40px;
}

/* La colonna ha l'aspetto della colonna "Ultime notizie" della home e la larghezza di quella Elementor (25 su 105) */
.mn24-page-aside {
	display: flex;
	flex: 0 0 calc(100% * 25 / 105);
	flex-direction: column;
	gap: 10px;
	min-width: 0;
	padding: 40px 40px 40px 20px;
}

/* Pagine a pagina piena. Il fondo tiene conto dei 40 px di margine del footer. */
.mn24-page--full {
	padding: 28px 0 8px;
}

/* Pagine di testo (Privacy, Cookie Policy, Mappa del sito): stessi margini del template Elementor della Privacy */
.mn24-page--testo {
	padding: 40px 0 0;
}

/* Titolo in cima alla pagina (Ultime notizie, Mappa del sito): blu, maiuscolo, filetto rosso sotto il testo */
.mn24-page__title,
.mn24-page--full .mn24-page__content > h1:first-child {
	width: fit-content;
	max-width: 100%;
	margin: 0 0 10px;
	padding-bottom: 6px;
	border-bottom: 2px solid var(--mn24-red);
	font-size: 17px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	color: var(--mn24-navy);
}

.mn24-page--full .mn24-page__content > h1:first-child + p {
	margin: 0 0 20px;
	font-size: 14px;
	color: var(--mn24-muted);
}

/* Mappa del sito */
.mn24-sitemap {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 30px 40px;
	margin-top: 20px;
}

.mn24-sitemap__title {
	margin-bottom: 12px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--mn24-line);
	font-size: 15px;
	font-weight: 800;
	text-transform: uppercase;
	color: var(--mn24-red);
}

.mn24-sitemap__list,
.mn24-sitemap__list ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.mn24-sitemap__list ul {
	padding-left: 16px;
}

.mn24-sitemap__list li {
	padding: 4px 0;
	font-size: 16px;
	line-height: 1.5;
	color: var(--mn24-muted);
}

.mn24-sitemap__list a {
	font-weight: 600;
	color: var(--mn24-navy);
}

.mn24-sitemap__list a:hover {
	color: var(--mn24-red);
	text-decoration: underline;
}

@media (max-width: 1200px) {
	.mn24-page--sidebar,
	.mn24-page-aside {
		padding: 20px;
	}

	.mn24-page--testo {
		padding-top: 20px;
	}
}

@media (max-width: 880px) {
	/* Colonna sotto il testo, a tutta larghezza */
	.mn24-page-layout {
		flex-direction: column;
	}

	.mn24-page--sidebar,
	.mn24-page-aside {
		flex: none;
	}

	.mn24-page-aside {
		padding-bottom: 0;
	}

	.mn24-page--full {
		padding-top: 20px;
	}
}

/* ---------- Template di ripiego (index.php) ---------- */

.mn24-fallback {
	padding: 40px 0;
}

.mn24-fallback__item {
	padding: 16px 0;
	border-bottom: 1px solid var(--mn24-line);
}

.mn24-fallback__title {
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--mn24-navy);
}

.mn24-fallback__date {
	margin-top: 4px;
	font-size: 0.875rem;
	color: var(--mn24-muted);
}
