/* =========================================================================
   Parlamento Post - 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 logo Parlamento Post, letti dagli SVG: rosso #C9002B e blu #061C46. Il blu è anche lo sfondo del logo quadrato,
	   che così si fonde con il footer. Li usa anche il CSS del plugin PP Home, che così resta allineato.
	   Il grigio del kit ha un nome diverso da --pp-grey, il grigio più chiaro che il plugin usa per date e orari. */
	--pp-red: #c9002b;
	--pp-navy: #061c46;
	--pp-black: #000;
	--pp-grey-dark: #2c2c2c;
	--pp-muted: #5f6368;
	--pp-line: #e3e3e3;
	--pp-footer-text: rgba(255, 255, 255, 0.72);

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

	/* Tipografia globale del kit */
	--pp-fs-primary: clamp(1.875rem, 1.5461rem + 1.3158vw, 3.125rem);
	--pp-fs-secondary: clamp(1.5625rem, 1.2336rem + 1.3158vw, 2.8125rem);
	--pp-fs-text: clamp(1rem, 0.9671rem + 0.1316vw, 1.125rem);
	--pp-fs-accent: clamp(1.125rem, 1.0921rem + 0.1316vw, 1.25rem);
	--pp-fs-small: clamp(0.75rem, 0.6944rem + 0.2222vw, 0.875rem);
	--pp-fs-article-title: clamp(1.25rem, 0.8333rem + 1.6667vw, 2.1875rem);
	--pp-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) */
	--pp-container: 1300px;
	--pp-gutter: 20px;
}

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

@media (max-width: 880px) {
	:root {
		--pp-container: 767px;
		--pp-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(--pp-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(--pp-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;
}

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

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

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

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

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

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

.pp-header {
	background: #fff;
}

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

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

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

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

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

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

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

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

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

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

.pp-masthead {
	display: flex;
	align-items: center;
	/* Il logo orizzontale ha già un margine vuoto sopra e sotto il disegno (circa l'11 % dell'altezza del file): niente padding. */
	padding: 0;
	border-bottom: 1px solid var(--pp-line);
}

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

.pp-masthead__logo {
	flex: 1 1 auto;
	min-width: 0;
	/* Taglia il vuoto che il file ha a destra del disegno. */
	overflow: hidden;
}

.pp-logo--esteso {
	/* Il disegno va da x=20 a x=1940 nel viewBox di 2000: ingrandendo il file di 2000/1920 (104,17 %) e spostandolo a sinistra
	   di 20/1920 (1,04 %), il logo occupa tutta la larghezza del contenuto, da bordo a bordo come il menu sotto. */
	width: 104.1667%;
	max-width: none;
	margin-left: -1.0417%;
}

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

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

.pp-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(--pp-navy);
	transition: color 0.3s;
}

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

.pp-nav__toggle {
	display: none;
}

.pp-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(--pp-navy);
	cursor: pointer;
	transition: color 0.3s, background-color 0.3s;
}

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

@media (max-width: 1200px) {
	.pp-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(--pp-navy);
		cursor: pointer;
	}

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

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

	.pp-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(6, 28, 70, 0.12);
	}

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

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

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

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

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

	.pp-masthead {
		padding: 8px 0 6px;
	}
}

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

.pp-search {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 5vw;
	background: rgba(6, 28, 70, 0.94);
}

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

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

.pp-search .pp-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(--pp-sans);
	color: #fff;
	outline: none;
}

.pp-search .pp-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. */
.pp-searchform__input::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
}

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

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

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

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

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

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

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

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

.pp-footer__logo .pp-logo {
	width: 120px;
}

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

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

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

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

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

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

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

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

.pp-footer__menu {
	gap: 2px;
}

.pp-footer__links {
	gap: 10px;
}

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

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

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

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

.pp-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;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Editoriale (sotto l'apertura): larga quanto due card orizzontali. L'altezza è quella delle altre card (118 px),
   così la sua riga resta allineata a quella delle card a destra. */
.pp-card--editoriale {
	display: grid;
	grid-template-columns: clamp(200px, 36%, 260px) minmax(0, 1fr);
	align-items: start;
	gap: 20px;
}

.pp-card--editoriale .pp-card__media {
	height: 118px;
}

.pp-card--editoriale .pp-card__body {
	gap: 6px;
}

.pp-card--editoriale .pp-card__title {
	font-size: 22px;
}

/* "In primo piano": un riquadro blu con l'etichetta rossa in alto, il video in 16:9 al centro e il titolo in basso.
   Su desktop il riquadro si allunga fino a dove finiscono le notizie Askanews: lo spazio che avanza si divide in parti
   uguali sopra e sotto il video (margini automatici), che resta così al centro. */
.pp-card--primo {
	gap: 14px;
	padding: 16px;
	background: var(--pp-navy);
	color: #fff;
}

.pp-card--primo .pp-yt {
	margin-block: auto;
}

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

.pp-primo__title {
	font-family: var(--pp-serif);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.12;
}

/* Video della settimana (fascia in basso): anteprima a sinistra, testo a destra */
.pp-card--video {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	align-items: center;
	gap: 40px;
}

.pp-card--video .pp-card__media {
	aspect-ratio: 16 / 9;
}

.pp-card--video .pp-card__body {
	gap: 12px;
}

.pp-card--video .pp-card__title {
	font-size: 34px;
	line-height: 1.1;
}

.pp-card--video .pp-play {
	width: 64px;
	height: 64px;
	font-size: 24px;
}

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

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

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

	.pp-card--editoriale .pp-card__title {
		font-size: 20px;
	}

	/* Su tablet la colonna del video è larga quanto la pagina: video e riquadro blu restano a 560 px. */
	.pp-card--primo {
		max-width: 560px;
	}

	.pp-primo__title {
		font-size: 22px;
	}

	.pp-card--video {
		gap: 28px;
	}

	.pp-card--video .pp-card__title {
		font-size: 28px;
	}
}

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

	.pp-card--editoriale {
		grid-template-columns: clamp(130px, 40%, 260px) minmax(0, 1fr);
		gap: 14px;
	}

	.pp-card--editoriale .pp-card__title {
		font-size: 18px;
	}
}

@media (max-width: 600px) {
	.pp-card--video {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	.pp-card--video .pp-card__title {
		font-size: 24px;
	}
}

/* Nella colonna stretta dell'editoriale sui telefoni autore e data vanno su due righe, senza spezzare l'anno */
@media (max-width: 480px) {
	.pp-card--editoriale .pp-card__byline .pp-card__date {
		display: block;
		margin-top: 2px;
	}

	.pp-card--editoriale .pp-card__author + .pp-card__date::before {
		content: none;
	}
}

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

.pp-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(--pp-navy);
	color: #fff;
}

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

.pp-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%);
}

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

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

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

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

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

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

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

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

	.pp-hero__excerpt {
		display: none;
	}
}

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

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

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

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

/* Quattro card nello spazio a destra, sotto le notizie Askanews e il video: due righe da due card. */
.pp-home-top__altre {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	min-width: 0;
}

@media (min-width: 1201px) {
	/* "In primo piano" arriva fino in fondo alla riga, dove finiscono le notizie Askanews (più alte del video 16:9):
	   il riquadro blu sotto il video assorbe lo spazio che avanza. */
	.pp-home-top__col--video {
		align-self: stretch;
	}

	.pp-card--primo {
		flex: 1 1 auto;
	}

	/* La colonna principale occupa tutta l'altezza: l'apertura si allunga e la riga delle due card sotto di lei
	   resta allineata alla seconda riga delle card a destra, la fine dell'apertura alla prima. */
	.pp-home-top--altre {
		grid-template-areas:
			"principale ultime video"
			"principale altre altre";
		row-gap: 24px;
	}

	.pp-home-top--altre .pp-home-top__main {
		grid-area: principale;
		align-self: stretch;
	}

	.pp-home-top--altre .pp-hero {
		flex: 1 1 auto;
	}

	.pp-home-top--altre .pp-home-top__col--ultime {
		grid-area: ultime;
	}

	.pp-home-top--altre .pp-home-top__col--video {
		grid-area: video;
	}

	.pp-home-top--altre .pp-home-top__altre {
		grid-area: altre;
	}
}

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

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

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

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

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

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

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

/* ---------- Video della settimana (tra la striscia delle sezioni e gli approfondimenti) ---------- */

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

.pp-home-video .pp-container {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 28px 0 36px;
}

/* ---------- Approfondimenti (in fondo alla home) ---------- */

/* Quattro articoli su due colonne: a sinistra categoria, titolo, anteprima e firma, a destra l'immagine grande. */
.pp-home-features {
	border-top: 1px solid var(--pp-line);
}

.pp-home-features__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 48px;
	padding: 0 0 24px;
}

.pp-card--approfondimento {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	align-items: start;
	gap: 24px;
	padding: 32px 0;
	border-top: 1px solid var(--pp-line);
}

.pp-card--approfondimento:nth-child(-n + 2) {
	border-top: 0;
}

.pp-card--approfondimento .pp-card__body {
	gap: 10px;
}

.pp-card--approfondimento .pp-card__title {
	font-size: 26px;
	line-height: 1.1;
}

.pp-card--approfondimento .pp-card__excerpt,
.pp-card--video .pp-card__excerpt {
	font-size: 15px;
	line-height: 1.5;
	color: var(--pp-muted);
}

.pp-card--video .pp-card__excerpt {
	font-size: 16px;
}

.pp-card__byline {
	font-size: 13px;
	line-height: 1.4;
	color: var(--pp-muted);
}

.pp-card__author {
	font-weight: 600;
	color: var(--pp-grey-dark);
}

.pp-card__byline .pp-card__date {
	display: inline;
	font-size: inherit;
}

.pp-card__author + .pp-card__date::before {
	content: "\00b7";
	margin: 0 5px 0 1px;
}

.pp-card--approfondimento .pp-card__media {
	aspect-ratio: 4 / 3;
}

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

	.pp-card--approfondimento:nth-child(2) {
		border-top: 1px solid var(--pp-line);
	}

	/* Una colonna sola: con l'immagine 4:3 a tutta larghezza ogni riga sarebbe alta oltre 400 px. */
	.pp-card--approfondimento .pp-card__media {
		aspect-ratio: 3 / 2;
	}
}

@media (max-width: 600px) {
	.pp-card--approfondimento {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
		padding: 24px 0;
	}

	.pp-card--approfondimento .pp-card__media {
		order: -1;
	}

	.pp-card--approfondimento .pp-card__title {
		font-size: 24px;
	}
}

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

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

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

.pp-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(--pp-red);
	font-size: 24px;
	color: #fff;
	transform: translate(-50%, -50%);
	cursor: pointer;
	transition: transform 0.2s;
}

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

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

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

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

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

.pp-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(--pp-grey-dark);
	color: #fff;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.pp-share__btn,
.pp-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(--pp-red);
	cursor: pointer;
	transition: opacity 0.2s;
}

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

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

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

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

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

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

.pp-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: .pp-content; nell'articolo il corpo è un po' più grande */
.pp-content {
	line-height: 1.5;
	color: #000;
	overflow-wrap: break-word;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.pp-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(--pp-red);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	.pp-tab {
		display: flex;
	}
}

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

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

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

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

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

.pp-archive-hero__title .pp-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) {
		.pp-archive-hero {
			view-timeline-name: --pp-archive-hero;
		}

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

@keyframes pp-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). */
.pp-archive {
	display: flow-root;
	padding-bottom: 40px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.pp-404 .pp-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(--pp-sans);
	color: #000;
}

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

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

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

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

.pp-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. */
.pp-page-layout {
	display: flex;
}

.pp-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) */
.pp-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. */
.pp-page--full {
	padding: 28px 0 8px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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