/*
Theme Name: KuriUland TT5
Theme URI: https://kuriuland.it/
Description: Tema child di Twenty Twenty-Five con il layout KuriUland: header e footer neri, contenitore bianco su fondo colorato, mosaico in evidenza, pagine categoria colorate, guide città e banner newsletter.
Author: KuriU
Template: twentytwentyfive
Version: 0.1.84
Requires at least: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: kuriuland-tt5
*/

:root {
	--nero: #181818;
	--testo: #111;
	--testo-2: #2b2b2b;
	--grigio: #6b6b6b;
	--tinta: #fdf1ea;
	/* Sfondo della pagina dietro al contenitore e "carta" del contenitore (dalla palette di riferimento). */
	--fondo: #ee7433;
	--carta: #f7f6f2;
	--arancio: #e75d10;
	--cat: var(--arancio);
	--serif: Lora, Georgia, serif;
	/* Solo due font: Lora (titoli e testi in serif) e Inter (tutto il resto). --flex e --big restano come nomi per non toccare le regole. */
	--sans: Inter, -apple-system, "Segoe UI", sans-serif;
	--flex: Inter, -apple-system, "Segoe UI", sans-serif;
	--big: Inter, -apple-system, "Segoe UI", sans-serif;
	--logo: Inter, -apple-system, sans-serif;
	/* Altezza dell'header sticky (88 + 1 + 52) e barra di amministrazione di WordPress (solo da loggati) */
	--kl-head-h: 141px;
	--kl-adminbar: var(--wp-admin--admin-bar--height, 0px);
	/* Colonne laterali sticky: 170px sotto il bordo alto, più la barra admin quando c'è */
	--kl-side-top: calc(170px + var(--kl-adminbar));
}
@media (max-width: 800px) { :root { --kl-head-h: 116px; } }

/* I link alle ancore (#sezione) si fermano sotto l'header sticky, non dietro */
html { scroll-padding-top: calc(var(--kl-head-h) + var(--kl-adminbar) + 16px); }
/* Scorrimento morbido, ma non per chi ha chiesto meno animazioni nel sistema */
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

/* Fondo della "tela" nero come header e footer: nel rimbalzo dello scroll (Mac, telefono) oltre l'inizio e la fine
   della pagina si vede questo, non l'arancio del body. Il body resta arancio (o del colore della categoria). */
html { background: var(--nero); }
body { background: var(--fondo); color: var(--testo); }
body.kl-cat, body.single-post { background: var(--cat); }
/* Articolo senza un colore di categoria: il fondo del sito, non l'arancio dei pulsanti. */
body.single-post:not([class*="kl-c-"]) { background: var(--fondo); }
img { max-width: 100%; height: auto; }
/* Focus: nessun contorno rettangolare in tutto il sito (né dopo il clic né da tastiera; copre anche quello
   di WordPress). Per chi naviga con Tab restano segnali più discreti:
   - link di testo: sottolineatura arancio;
   - pulsanti e campi: alone arancio morbido che segue la forma (pillola, angoli tondi);
   - link su immagini (card, copertine): l'immagine si scurisce un po'. */
*:focus, *:focus-visible { outline: none !important; }
a:focus-visible { text-decoration-line: underline !important; text-decoration-color: var(--arancio) !important; text-decoration-thickness: 2px !important; text-underline-offset: 4px; }
button:focus-visible, input[type=submit]:focus-visible, .wp-element-button:focus-visible, .wp-block-button__link:focus-visible,
select:focus-visible, .wp-social-link a:focus-visible { box-shadow: 0 0 0 3px #fff, 0 0 0 5px rgba(231, 93, 16, .55) !important; text-decoration-line: none !important; }
a:focus-visible img { filter: brightness(.82); transition: filter .15s; }

/* Struttura: header, contenitore bianco, footer -------------------------------- */
.wp-site-blocks > * { margin-block: 0; }
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 20; }
.wp-site-blocks > .kl-pagina {
	box-sizing: border-box;
	max-width: 1080px;
	margin: 56px auto 0;
	padding: 32px 32px 0;
	background: var(--carta);
	display: flow-root;
}
.kl-pagina > *,
.kl-pagina .kl-sez > *,
.kl-pagina .kl-band > *,
.kl-pagina .kl-scuro > *,
.kl-pagina .kl-apertura > *,
.kl-pagina .kl-tile-txt > *,
.kl-pagina .kl-guide-band > *,
.kl-pagina .kl-gb-txt > *,
.kl-pagina .kl-week > *,
.kl-pagina .kl-week-h > *,
.kl-pagina .kl-ev > *,
.kl-pagina .kl-giorno > *,
.kl-pagina .kl-taccuino > *,
.kl-pagina .kl-tac-h > *,
.kl-pagina .kl-side > *,
.kl-pagina .kl-side-g > *,
.kl-pagina .kl-nl .wp-block-column > *,
.kl-pagina .kl-art-h > *,
.kl-pagina .wp-block-query > *,
.kl-pagina .wp-block-post-template > li > * { margin-block: 0; }

/* Header ---------------------------------------------------------------------- */
.kl-head { background: var(--nero); color: #fff; }
.kl-head-top, .kl-head-bot { box-sizing: border-box; max-width: 1080px; margin: 0 auto; gap: 20px; }
.kl-head > * { margin-block: 0 !important; }
.kl-head-top { height: 88px; align-items: center !important; }
.kl-head-top > * { margin-block: 0 !important; }
.kl-head-line { border-top: 1px solid #2e2e2e; }
.kl-head-bot { height: 52px; }
.kl-logo { margin: 0; line-height: 0; flex: none; }
.kl-logo a { display: block; color: #fff; text-decoration: none; }
.kl-logo-img { display: block; width: auto; max-width: none; height: 24px; }
.kl-logo-foot .kl-logo-img { height: 34px; }
/* header: logo con payoff, la scritta resta larga come il logo semplice */
.kl-logo-pay .kl-logo-img { height: 46px; }
.kl-servizio, .kl-menu { font-family: var(--sans); font-size: 14px; font-weight: 500; }
.kl-servizio .wp-block-navigation__container, .kl-menu .wp-block-navigation__container { gap: 32px; }
.kl-head .wp-block-navigation-item__content { color: #fff; text-decoration: none; transition: color .2s; }
.kl-head .wp-block-navigation-item__content:hover { color: var(--arancio); }
.kl-menu .current-menu-item > .wp-block-navigation-item__content { color: var(--arancio); font-weight: 700; }
.kl-menu .wp-block-navigation__submenu-icon { display: none; }
.kl-menu .wp-block-navigation .has-child .wp-block-navigation__submenu-container,
.kl-menu.wp-block-navigation .has-child .wp-block-navigation__submenu-container {
	background: var(--nero); color: #fff; border: 0; border-radius: 0 0 10px 10px; padding: 8px 0; min-width: 170px; top: calc(100% + 14px); left: -14px;
}
.kl-menu .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.kl-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 6px 14px; }
.kl-cerca { width: 192px; }
.kl-cerca .wp-block-search__inside-wrapper { height: 38px; padding: 0 6px 0 14px; border: 1px solid #3a3a3f; border-radius: 20px; background: #232327; }
.kl-cerca .wp-block-search__input { border: 0; background: none; color: #fff; font: 500 14px var(--sans); padding: 0; outline: 0; }
.kl-cerca .wp-block-search__input::placeholder { color: #fff; opacity: 1; }
.kl-cerca .wp-block-search__button { background: none; color: #fff; padding: 0; margin: 0; }
.kl-cerca .wp-block-search__button svg { width: 20px; height: 20px; fill: #fff; }
.kl-cerca .wp-block-search__inside-wrapper { transition: border-color .2s, background-color .2s; }
.kl-cerca .wp-block-search__inside-wrapper:focus-within { border-color: var(--arancio); background: #2a2a2f; }
.kl-cerca .wp-block-search__button:hover svg { fill: var(--arancio); }

/* Barra di ricerca nella pagina (stessa forma di quella dell'header, versione chiara) */
.kl-cerca-pag { width: min(560px, 100%); margin-top: 10px !important; }
.kl-cerca-pag .wp-block-search__inside-wrapper {
	box-sizing: border-box; height: 58px; padding: 6px 6px 6px 26px; align-items: center;
	border: 1px solid #e2e2e2; border-radius: 999px; background: #f5f5f5;
	transition: border-color .2s, background-color .2s, box-shadow .2s;
}
.kl-cerca-pag .wp-block-search__inside-wrapper:hover { border-color: #cfcfcf; }
.kl-cerca-pag .wp-block-search__inside-wrapper:focus-within { border-color: var(--arancio); background: #fff; box-shadow: 0 0 0 4px rgba(231, 93, 16, .15); }
.kl-cerca-pag .wp-block-search__input { min-width: 0; height: 100%; border: 0; background: none; padding: 0; outline: 0; color: var(--testo); font: 500 17px var(--sans); }
.kl-cerca-pag .wp-block-search__input::placeholder { color: #8a8a8a; opacity: 1; }
.kl-cerca-pag .wp-block-search__input::-webkit-search-cancel-button { cursor: pointer; filter: grayscale(1) opacity(.55); }
.kl-cerca .wp-block-search__input::-webkit-search-cancel-button { display: none; }

/* Ricerca: quando si sceglie un suggerimento salvato, Chrome (e Safari/Firefox) colorano il campo
   di azzurro con testo nero. Il campo resta del colore della barra: --kl-cerca-bg segue lo stato della barra. */
.kl-cerca .wp-block-search__inside-wrapper { --kl-cerca-bg: #232327; }
.kl-cerca .wp-block-search__inside-wrapper:focus-within { --kl-cerca-bg: #2a2a2f; }
.kl-cerca-pag .wp-block-search__inside-wrapper { --kl-cerca-bg: #f5f5f5; }
.kl-cerca-pag .wp-block-search__inside-wrapper:focus-within { --kl-cerca-bg: #fff; }
.kl-cerca .wp-block-search__input:-webkit-autofill,
.kl-cerca .wp-block-search__input:-webkit-autofill:hover,
.kl-cerca .wp-block-search__input:-webkit-autofill:focus,
.kl-cerca-pag .wp-block-search__input:-webkit-autofill,
.kl-cerca-pag .wp-block-search__input:-webkit-autofill:hover,
.kl-cerca-pag .wp-block-search__input:-webkit-autofill:focus {
	-webkit-box-shadow: 0 0 0 60px var(--kl-cerca-bg) inset;
	box-shadow: 0 0 0 60px var(--kl-cerca-bg) inset;
	-webkit-text-fill-color: #fff;
	caret-color: #fff;
	filter: none;
	transition: background-color 0s 600000s, color 0s 600000s;
}
.kl-cerca-pag .wp-block-search__input:-webkit-autofill,
.kl-cerca-pag .wp-block-search__input:-webkit-autofill:hover,
.kl-cerca-pag .wp-block-search__input:-webkit-autofill:focus { -webkit-text-fill-color: var(--testo); caret-color: var(--testo); }
.kl-cerca-pag .wp-block-search__button {
	flex: none; display: grid; place-items: center; width: 46px; height: 46px; margin: 0 0 0 10px; padding: 0;
	border: 0; border-radius: 50%; background: var(--arancio); color: #fff; cursor: pointer; transition: background-color .2s, transform .2s;
}
.kl-cerca-pag .wp-block-search__button:hover { background: var(--nero); }
.kl-cerca-pag .wp-block-search__button:active { transform: scale(.94); }
.kl-cerca-pag .wp-block-search__button svg { width: 22px; height: 22px; fill: currentColor; }
.kl-risultati { margin: 0; font: 500 14px var(--sans); color: var(--grigio); }
.kl-vuoto { display: grid; gap: 10px; justify-items: center; text-align: center; padding: 8px 6px 24px; }
.kl-vuoto > * { margin: 0 !important; }
.kl-vuoto p { font: 400 15px/1.6 var(--sans); color: var(--testo-2); }
.kl-vuoto .kl-vuoto-t { font: 700 20px/1.3 var(--sans); color: var(--testo); }
.kl-vuoto .kl-indice { margin-top: 6px !important; }
/* Ricerca senza risultati: la colonna laterale sparisce e il messaggio torna a tutta larghezza, centrato. */
.kl-ult:has(.kl-vuoto) > .kl-side { display: none; }
.kl-ult:has(.kl-vuoto) > .wp-block-column:first-child { flex-basis: 100% !important; }

/* Menu mobile (hamburger) ------------------------------------------------------ */
.kl-burger { display: none; flex: none; width: 44px; height: 44px; padding: 10px 6px; margin-right: -6px; background: none; border: 0; cursor: pointer; flex-direction: column; justify-content: space-between; }
.kl-burger span { display: block; height: 3px; border-radius: 2px; background: #fff; }
.kl-mnav { display: none; }
.kl-burger, .kl-mnav-x, .kl-mnav-menu button { -webkit-tap-highlight-color: transparent; }
.kl-burger:focus, .kl-mnav-x:focus, .kl-mnav-menu button:focus { outline: none; box-shadow: none; }
.kl-burger:focus-visible, .kl-mnav-x:focus-visible, .kl-mnav-menu button:focus-visible { outline: 2px solid var(--arancio); outline-offset: 2px; }
@media (max-width: 800px) {
	.kl-burger { display: flex; }
	.kl-head-line { display: none; }
	.kl-mnav {
		display: flex; flex-direction: column; position: fixed; z-index: 100; left: 0; right: 0; bottom: 0;
		top: var(--wp-admin--admin-bar--height, 0px); background: var(--nero); color: #fff;
		visibility: hidden; opacity: 0; transform: translateX(100%); transition: transform .3s ease, opacity .3s ease, visibility 0s linear .3s;
	}
	.kl-mnav-open .kl-mnav { visibility: visible; opacity: 1; transform: none; transition: transform .3s ease, opacity .3s ease; }
	.kl-mnav-open, .kl-mnav-open body { overflow: hidden; }
	.kl-mnav-top { flex: none; height: 64px; margin: 0 !important; padding: 0 18px; box-sizing: border-box; background: var(--nero); }
	.kl-mnav-x { display: grid; place-items: center; width: 44px; height: 44px; margin-right: -6px; padding: 0; background: none; border: 0; color: #fff; cursor: pointer; }
	.kl-mnav-in { flex: 1; margin: 0 !important; background: var(--nero); overflow-y: auto; overscroll-behavior: contain; padding: 18px 18px 40px; scrollbar-width: none; }
	.kl-mnav-in::-webkit-scrollbar { display: none; }
	.kl-mnav-in > * { margin-block: 0; }
	.kl-mnav .kl-mnav-cerca { display: block !important; width: 100%; margin-bottom: 8px; }
	.kl-mnav-cerca .wp-block-search__inside-wrapper { height: 52px; padding: 0 16px 0 22px; border-radius: 28px; background: transparent; --kl-cerca-bg: var(--nero); }
	.kl-mnav-cerca .wp-block-search__input { font-size: 17px; }
	.kl-mnav-menu { font-family: var(--sans); font-size: 18px; font-weight: 500; }
	.kl-mnav-menu .wp-block-navigation__container { gap: 0; width: 100%; }
	.kl-mnav-menu .wp-block-navigation-item { width: 100%; }
	.kl-mnav-menu .wp-block-navigation-item__content { display: block; width: 100%; padding: 13px 22px; color: #fff; text-decoration: none; }
	.kl-mnav-menu .wp-block-navigation-item__content:hover, .kl-mnav-menu .current-menu-item > .wp-block-navigation-item__content { color: var(--arancio); }
	.kl-mnav-cat { padding-bottom: 14px; margin-bottom: 14px; border: 0; border-bottom: 1px solid #555; }
	.kl-mnav-serv, .kl-mnav-menu .wp-block-navigation__container, .kl-mnav-menu .wp-block-navigation-item { border: 0; }
	/* Sottomenu (es. Guide) già predisposti: si aprono a tocco dentro il pannello */
	.kl-mnav-menu .wp-block-navigation-submenu__toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 13px 22px; background: none; border: 0; color: #fff; font: inherit; text-align: left; cursor: pointer; }
	.kl-mnav-menu .wp-block-navigation-submenu__toggle::after { content: ""; width: 9px; height: 9px; margin-right: 4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-3px); transition: transform .2s; }
	.kl-mnav-menu .wp-block-navigation-submenu__toggle[aria-expanded="true"] { color: var(--arancio); }
	.kl-mnav-menu .wp-block-navigation-submenu__toggle[aria-expanded="true"]::after { transform: rotate(-135deg) translateY(-3px); }
	.kl-mnav-menu .wp-block-navigation__submenu-icon { display: none; }
	.kl-mnav-menu .has-child { flex-direction: column; align-items: stretch; }
	.kl-mnav-menu .has-child .wp-block-navigation__submenu-container { position: static !important; display: none; visibility: visible !important; opacity: 1 !important; width: 100% !important; height: auto !important; min-width: 0 !important; overflow: visible !important; margin: 0 !important; padding: 0 0 6px !important; list-style: none; background: none !important; border: 0 !important; box-shadow: none !important; }
	.kl-mnav-menu .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container { display: flex; flex-direction: column; }
	.kl-mnav-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 9px 22px 9px 40px; font-size: 16px; color: #cfcfcf; }
	.kl-mnav-seguici { margin-top: 22px !important; padding: 0 22px; font-family: var(--flex); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #9a9a9a; }
	.kl-mnav .kl-mnav-social { padding: 12px 22px 0; }
}
@media (max-width: 800px) and (prefers-reduced-motion: reduce) {
	.kl-mnav, .kl-mnav-open .kl-mnav { transition: none; }
}

/* Elementi comuni -------------------------------------------------------------- */
.kl-pagina .wp-block-post-template { list-style: none; margin: 0; padding: 0; display: grid; }
.kl-pagina .wp-block-post-template > li { margin: 0; min-width: 0; }
.kl-img { margin: 0; aspect-ratio: 16/10; border-radius: 10px; overflow: hidden; background: #ddd; }
/* Card degli articoli: immagine sempre in 16/10, in ogni elenco e a ogni larghezza dello schermo
   (.kl-pagina alza la priorità sopra il CSS del plugin dei contenuti in evidenza).
   Fanno eccezione i riquadri con il testo sopra la foto (mosaico, guide, slider, quartieri). */
.kl-pagina .kl-img { aspect-ratio: 16/10; }
.kl-img a, .kl-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kl-badge { margin: 0; font-size: 0; line-height: 0; }
.kl-badge a, .kl-badge-s {
	display: inline-block; width: max-content; font-family: var(--flex); font-size: 12px; line-height: 14px; font-weight: 400;
	color: #fff; background: var(--arancio); border-radius: 32px; padding: 4px 8px; text-decoration: none;
}
.kl-badge a:hover { color: #fff; filter: brightness(1.15); }
.kl-pagina .kl-t { margin: 0; font-family: var(--serif); font-weight: 700; font-size: 20px; line-height: 1.25; letter-spacing: 0; color: var(--nero); }
.kl-t a { color: inherit; text-decoration: none; }
.kl-pagina li:hover .kl-t a { color: var(--arancio); }
.kl-ex p { margin: 0; font-family: var(--serif); font-weight: 600; font-size: 16px; line-height: 1.4; color: var(--testo-2); }
.kl-k { margin: 0; font-family: var(--flex); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--arancio); }

/* card */
.kl-g4 li, .kl-g3 li, .kl-ult-g li, .kl-duo li:first-child { display: grid; gap: 8px; align-content: start; }
.kl-g4 .wp-block-post-template { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px 20px; }
.kl-g3 .wp-block-post-template { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 20px; }
.kl-ult-g .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 22px; }

/* apertura */
.kl-apertura { display: grid; gap: 14px; justify-items: center; text-align: center; padding: 40px 6px 56px; }
/* .sv-titolo (pagine di servizio) usa le stesse misure: tutti gli h1 di pagina sono uguali. */
.kl-pagina .kl-titolo, .kl-pagina .sv-titolo { margin: 0; font-family: var(--big); font-weight: 900; text-transform: uppercase; font-size: 80px; line-height: 1; letter-spacing: -3px; color: var(--arancio); text-wrap: balance; }
body.kl-cat .kl-titolo { color: var(--cat); }
.kl-titolo-s { font-size: 48px !important; letter-spacing: -1.5px !important; }
/* Home: h1 per motori di ricerca e lettori di schermo, nascosto alla vista.
   Senza il titolo grande, il mosaico prende un po' d'aria dall'header. */
.kl-pagina .kl-h1-home { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
/* Il mosaico parte subito, al bordo alto del contenitore bianco (l'apertura a tutta larghezza riempie il vuoto). */
.kl-pagina .kl-h1-home + .kl-mosaico { margin-top: 0; }
.kl-lead, .kl-lead p { margin: 0; max-width: 62ch; font-family: var(--serif); font-weight: 600; font-size: 16px; line-height: 1.6; color: var(--testo-2); }
.kl-indice { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; font-size: 0; }
.kl-indice a { font-family: var(--flex); font-size: 13px; line-height: 1.2; text-decoration: none; background: var(--arancio); color: #fff; padding: 6px 14px; border-radius: 32px; }
.kl-indice a:hover { background: var(--nero); color: #fff; }
.kl-pagina .kl-indice a:hover { background: var(--nero); } /* vince anche sui colori delle categorie */

/* sezioni */
/* Più aria tra una sezione e l'altra (e tra titolo di sezione e articoli). */
.kl-sez { padding: 0 6px 96px; display: grid; gap: 24px; }
.kl-sez-t { gap: 8px 16px; align-items: baseline; }
.kl-sez-t h2, .kl-pagina .kl-sez-t h2 { margin: 0; font-family: var(--serif); font-weight: 700; font-size: 32px; line-height: 1.15; color: var(--nero); }
.kl-tutti { margin: 0; font-size: 14px; font-weight: 700; }
.kl-tutti a { display: inline-flex; gap: 6px; color: var(--nero); text-decoration: none; }
.kl-tutti a span { color: var(--cat); transition: transform .2s; }
.kl-tutti a:hover { color: var(--cat); }
.kl-tutti a:hover span { transform: translateX(3px); }
.kl-tutti-end { justify-self: end; }
/* "Tutti gli articoli" sta sempre in alto a destra, accanto al titolo della sezione, uguale in tutte le sezioni. */
.kl-sez-t { justify-content: space-between; }
.kl-sez-centro .kl-sez-t { justify-content: center; text-align: center; }

.kl-cat-h { gap: 8px 16px; padding-bottom: 12px; border-bottom: 1px solid var(--nero); }
.kl-pagina .kl-cat-h h2 { margin: 0; font-family: var(--big); font-weight: 900; text-transform: uppercase; font-size: 48px; line-height: .95; letter-spacing: -2px; color: var(--cat); }

/* duo: un articolo grande + tre righe.
   Misure fisse (tre righe da 150px): il blocco ha sempre la stessa altezza, qualunque sia la lunghezza dei titoli.
   A sinistra la foto si prende lo spazio che resta sopra categoria, titolo (max 2 righe) e sottotitolo (max 2 righe). */
.kl-duo .wp-block-post-template { grid-template-columns: minmax(0, 1.13fr) minmax(0, 1fr); grid-template-rows: repeat(3, 150px); gap: 20px 28px; }
.kl-duo li { overflow: hidden; }
.kl-duo li:first-child { grid-row: 1 / 4; display: flex; flex-direction: column; gap: 8px; min-height: 0; }
.kl-duo li:first-child .kl-img { aspect-ratio: auto; flex: 1 1 auto; min-height: 0; }
.kl-pagina .kl-duo li:first-child .kl-t { font-size: 32px; line-height: 1.15; }
.kl-pagina .kl-duo li:first-child .kl-t, .kl-pagina .kl-duo li:first-child .kl-ex p {
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; overflow-wrap: break-word;
}
.kl-pagina .kl-duo li:first-child .kl-t a { display: inline; }
.kl-duo li:first-child > :not(.kl-img) { flex: none; }
.kl-duo li:not(:first-child) { display: grid; grid-template-columns: 44% minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 8px 16px; align-items: start; }
.kl-duo li:not(:first-child) .kl-img { grid-row: 1 / 3; height: 100%; aspect-ratio: auto; }
/* Stesso peso del titolo grande a sinistra (700): cambia solo la grandezza. */
.kl-pagina .kl-duo li:not(:first-child) .kl-t {
	font-weight: 700; font-size: 21px; line-height: 1.2;
	/* Al massimo 4 righe con "…" (stanno nei 150px della riga): le foto a destra non si allungano e le tre righe restano regolari. */
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; overflow-wrap: break-word;
}
.kl-pagina .kl-duo li:not(:first-child) .kl-t a { display: inline; }
.kl-duo li:not(:first-child) .kl-ex { display: none; }

/* riquadri con foto (mosaico, guide, slider, quartieri) */
.kl-mosaico li, .kl-gb-tiles li, .kl-slider li, .kl-zone li {
	position: relative; isolation: isolate; overflow: hidden; border-radius: 10px; background: #333;
	display: flex; flex-direction: column; justify-content: flex-end; padding: 20px; color: #fff;
}
.kl-mosaico li .kl-img, .kl-gb-tiles li .kl-img, .kl-slider li .kl-img, .kl-zone li .kl-img {
	position: absolute; inset: 0; z-index: -2; aspect-ratio: auto; border-radius: 0; height: 100%;
}
.kl-mosaico li .kl-img img, .kl-gb-tiles li .kl-img img, .kl-zone li .kl-img img { transition: transform .6s; }
.kl-mosaico li:hover .kl-img img, .kl-gb-tiles li:hover .kl-img img, .kl-zone li:hover .kl-img img { transform: scale(1.05); }
.kl-mosaico li::after, .kl-gb-tiles li::after, .kl-slider li::after, .kl-zone li::after {
	content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.82) 100%);
}
.kl-tile-txt { display: grid; gap: 8px; }
.kl-pagina .kl-tile-txt .kl-t { color: #fff; font-size: 24px; line-height: 1.15; text-wrap: balance; }
.kl-pagina li:hover .kl-tile-txt .kl-t a { color: #fff; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.kl-tile-txt .kl-t a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.kl-tile-txt .kl-ex p { color: #f1f1f1; }
.kl-tile-txt .kl-badge, .kl-tile-txt .kl-badge-s { position: relative; z-index: 2; }

.kl-mosaico { margin-bottom: 88px; }
.kl-mosaico .wp-block-post-template { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 240px; grid-auto-flow: dense; gap: 14px; }
.kl-mosaico li:nth-child(6n+1) { grid-column: span 2; grid-row: span 2; padding: 32px; }
.kl-mosaico li:nth-child(6n+3) { grid-row: span 2; }
.kl-mosaico li:nth-child(6n+5), .kl-mosaico li:nth-child(6n+6) { grid-column: span 2; }
.kl-pagina .kl-mosaico li:nth-child(6n+1) .kl-t { font-size: 32px; line-height: 1.2; }
.kl-mosaico li:nth-child(6n+2) .kl-ex, .kl-mosaico li:nth-child(6n+4) .kl-ex { display: none; }

/* Mosaico della home (5 articoli): apertura a tutta larghezza, un riquadro grande, uno largo e due piccoli.
   ┌───────────────────────┐
   │       apertura        │
   ├───────────┬───────────┤
   │           │     3     │
   │     2     ├─────┬─────┤
   │           │  4  │  5  │
   └───────────┴─────┴─────┘
   Niente sottotitoli; i titoli troppo lunghi finiscono con "…" (l'etichetta della categoria resta sempre visibile). */
/* --kl-pad: margine interno del riquadro; etichetta "IN EVIDENZA", categoria e titolo partono tutti da lì (stessa linea a sinistra). */
.kl-mosaico.kl-mosaico-home li:nth-child(n) { grid-column: span 1; grid-row: span 1; --kl-pad: 20px; padding: var(--kl-pad); }
.kl-mosaico.kl-mosaico-home li:nth-child(1) { grid-column: 1 / -1; grid-row: span 2; --kl-pad: 32px; }
.kl-mosaico.kl-mosaico-home li:nth-child(2) { grid-column: span 2; grid-row: span 2; --kl-pad: 32px; }
.kl-mosaico.kl-mosaico-home li:nth-child(3) { grid-column: span 2; }
.kl-mosaico-home .kl-tile-txt .kl-t {
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3;
	overflow: hidden; overflow-wrap: break-word; text-wrap: pretty;
}
/* WordPress mette il link del titolo inline-block: così il taglio con "…" non scatta. Torna in linea. */
.kl-pagina .kl-mosaico-home .kl-tile-txt .kl-t a { display: inline; }
.kl-pagina .kl-mosaico-home li .kl-tile-txt .kl-t { font-size: 22px; line-height: 1.2; }
/* Titoli mai più grandi di "Ultimi articoli" (32px). */
.kl-pagina .kl-mosaico-home li:nth-child(2) .kl-tile-txt .kl-t { font-size: 28px; line-height: 1.18; -webkit-line-clamp: 4; line-clamp: 4; }
.kl-pagina .kl-mosaico-home li:nth-child(1) .kl-tile-txt { max-width: 780px; }
.kl-pagina .kl-mosaico-home li:nth-child(1) .kl-tile-txt .kl-t { font-size: 32px; line-height: 1.15; }
.kl-mosaico-home li:nth-child(1)::after { background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.85) 100%), linear-gradient(90deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,0) 60%); }
/* Sottotitolo solo sull'apertura (max 2 righe); negli altri riquadri niente. */
.kl-mosaico-home li:nth-child(n+2) .kl-ex { display: none; }
.kl-pagina .kl-mosaico-home li:nth-child(1) .kl-ex { display: block; max-width: 680px; }
.kl-pagina .kl-mosaico-home li:nth-child(1) .kl-ex p {
	font-size: 18px; line-height: 1.4; color: #f1f1f1;
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
}

/* Etichetta "In evidenza" su tutti i riquadri del mosaico: pillola nera come header e footer, testo bianco,
   stesso font e grandezza delle etichette delle categorie (12px, peso 400, 4px 8px). */
.kl-hot {
	position: absolute; top: var(--kl-pad, 16px); left: var(--kl-pad, 16px); z-index: 2; pointer-events: none;
	padding: 4px 8px; border-radius: 32px; background: var(--nero); color: #fff;
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); /* filo chiaro: resta leggibile anche sulle foto scure */
	font-family: var(--flex); font-size: 12px; line-height: 14px; font-weight: 400;
	display: inline-flex; align-items: center; gap: 6px;
}
/* Puntino arancio fermo prima del testo: richiama i bollini delle dirette, ma senza pulsare (non è una live). */
.kl-hot::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--fondo); }

/* fascia guide (home) */
.kl-guide-band { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 32px; align-items: center; background: var(--tinta); border-radius: 12px; padding: 32px; margin: 0 0 56px; }
.kl-gb-txt { display: grid; gap: 10px; justify-items: start; }
.kl-pagina .kl-gb-txt h2 { font-size: 32px; }
.kl-gb-txt > p:not(.kl-k) { font-family: var(--serif); font-weight: 600; font-size: 16px; line-height: 1.5; color: var(--testo-2); margin-bottom: 8px; }
.kl-gb-txt .kl-hashtag { margin-bottom: 12px; }
.kl-btn-or .wp-block-button__link { background: var(--arancio); padding: 11px 20px; }
.kl-btn-or .wp-block-button__link:hover { background: var(--nero); }
.kl-gb-tiles .wp-block-post-template { grid-template-columns: 1.3fr 1fr; grid-template-rows: 1fr 1fr; gap: 12px; height: 360px; }
.kl-gb-tiles li { padding: 16px; }
.kl-gb-tiles li:first-child { grid-row: span 2; }
.kl-pagina .kl-gb-tiles .kl-tile-txt .kl-t { font-size: 20px; }
.kl-pagina .kl-gb-tiles li:first-child .kl-tile-txt .kl-t { font-size: 26px; }

/* hashtag città */
.kl-hashtag { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 18px; }
.kl-hashtag li { margin: 0; }
.kl-hashtag a, .kl-presto { font-family: var(--big); font-weight: 900; font-size: 24px; line-height: 1.2; letter-spacing: -.6px; color: var(--nero); text-decoration: none; }
.kl-hashtag strong { font-weight: 300; color: var(--arancio); margin-right: 2px; }
.kl-hashtag a:hover { color: var(--arancio); }
.kl-altre, .kl-presto-l { justify-content: center; gap: 14px 44px; margin-top: 22px; }
.kl-altre a, .kl-presto { display: inline-flex; align-items: baseline; font-size: 34px; letter-spacing: -1px; transition: color .2s, transform .2s; }
.kl-altre a:hover { transform: translateY(-2px); }
.kl-presto { color: #e2e2e2; cursor: default; user-select: none; }
.kl-presto strong { color: #f6d3bf; }

/* fasce colorate (food, eventi) */
.kl-band { border-radius: 12px; padding: 32px; margin: 0 0 56px; display: grid; gap: 24px; }
.kl-band-food { background: #f4eef2; }
.kl-band-ev { background: #f8eef3; }
.kl-band .kl-pagina li:hover .kl-t a, .kl-band li:hover .kl-t a { color: var(--cat); }
.kl-evlist .wp-block-post-template { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); column-gap: 32px; counter-reset: kl-n; align-items: start; }
.kl-evlist li:first-child { grid-row: 1 / span 5; display: grid; gap: 10px; }
.kl-pagina .kl-evlist li:first-child .kl-t { font-size: 32px; line-height: 1.15; }
.kl-evlist li:not(:first-child) { grid-column: 2; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 6px 12px; padding: 14px 0; counter-increment: kl-n; align-content: start; }
.kl-evlist li:nth-child(2) { padding-top: 0; }
.kl-evlist li:nth-child(n+3) { border-top: 1px solid #e7cfdb; }
.kl-evlist li:not(:first-child)::before { content: "0" counter(kl-n); grid-row: 1 / 3; font-family: var(--big); font-weight: 900; font-size: 32px; line-height: 1; letter-spacing: -1.5px; color: #d9aac1; }
.kl-evlist li:not(:first-child) .kl-img, .kl-evlist li:not(:first-child) .kl-ex { display: none; }
.kl-evlist li:not(:first-child) .kl-badge, .kl-evlist li:not(:first-child) .kl-t { grid-column: 2; }

/* categoria: colonna laterale e paginazione */
.kl-ult { gap: 36px; }
.kl-side { position: sticky; top: var(--kl-side-top); display: grid; gap: 28px; align-self: flex-start; }
.kl-side-g { display: grid; gap: 12px; }
.kl-pagina .kl-side-g h3 { font-family: var(--serif); font-weight: 700; font-size: 20px; }
.kl-side-g h3 a { color: var(--nero); text-decoration: none; }
.kl-side-g .kl-hashtag { gap: 4px 16px; }
.kl-side-g .kl-hashtag a { font-size: 22px; }
.kl-pagina .kl-pagi { margin-top: 40px; gap: 6px; font-size: 14px; }
.kl-pagi a, .kl-pagi span.page-numbers { display: grid; place-items: center; min-width: 36px; height: 36px; padding: 0 12px; border-radius: 32px; text-decoration: none; color: var(--nero); box-sizing: border-box; }
.kl-pagi .current { background: var(--cat); color: #fff; }
.kl-pagi a.page-numbers:hover { background: #f2f2f2; }
.kl-pagi .wp-block-query-pagination-previous, .kl-pagi .wp-block-query-pagination-next { background: var(--nero); color: #fff; display: inline-flex; align-items: center; gap: 4px; }
.kl-pagi .wp-block-query-pagination-previous:hover, .kl-pagi .wp-block-query-pagination-next:hover { background: var(--cat); color: #fff; }
.kl-pagi .wp-block-query-pagination-numbers { display: flex; gap: 6px; }
/* Tutto su una riga e niente "Successiv/a" spezzato (Firefox restringeva il pulsante): i pulsanti non si
   restringono e il testo non va a capo. */
.kl-pagina .kl-pagi { flex-wrap: nowrap !important; align-items: center; }
.kl-pagi > *, .kl-pagi .wp-block-query-pagination-numbers > * { flex: none; white-space: nowrap; }
.kl-pagi .wp-block-query-pagination-previous, .kl-pagi .wp-block-query-pagination-next { line-height: 1; }
.kl-pagi .wp-block-query-pagination-previous-arrow, .kl-pagi .wp-block-query-pagination-next-arrow { margin: 0; }
/* Telefono: "Precedente" e "Successiva" diventano cerchi con la sola freccia (il testo resta per i lettori di schermo)
   e si vedono solo prima e ultima pagina, la pagina attuale e le due vicine: così sta tutto su una riga. */
@media (max-width: 600px) {
	.kl-pagina .kl-pagi, .kl-pagi .wp-block-query-pagination-numbers { gap: 4px; }
	.kl-pagi a, .kl-pagi span.page-numbers { min-width: 34px; height: 34px; padding: 0 8px; }
	.kl-pagi .wp-block-query-pagination-previous, .kl-pagi .wp-block-query-pagination-next { width: 34px; padding: 0; justify-content: center; font-size: 0; gap: 0; }
	.kl-pagi .wp-block-query-pagination-previous-arrow, .kl-pagi .wp-block-query-pagination-next-arrow { font-size: 18px; }
	.kl-pagi .wp-block-query-pagination-numbers > .page-numbers:not(:first-child):not(:last-child):not(.current):not(.dots):not(.current + *):not(:has(+ .current)) { display: none; }
}

/* guida città: slider, agenda, quartieri, fuori porta */
.kl-slider { position: relative; margin-bottom: 48px; }
.kl-slider .wp-block-post-template { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: 10px; gap: 0; }
.kl-slider .wp-block-post-template::-webkit-scrollbar { display: none; }
.kl-slider li { flex: 0 0 100%; aspect-ratio: 16/9; max-height: 620px; scroll-snap-align: start; border-radius: 0; padding: 0 48px 52px; }
.kl-slider .kl-tile-txt { max-width: 640px; }
.kl-pagina .kl-slider .kl-tile-txt .kl-t { font-size: 32px; line-height: 1.2; }
.kl-slider::before { content: "Questo weekend"; position: absolute; top: 14px; left: 14px; z-index: 3; background: rgba(41,41,41,.8); color: #fff; font-family: var(--flex); font-size: 13px; line-height: 15px; padding: 6px 14px; border-radius: 32px; }
.kl-freccia { position: absolute; top: 50%; translate: 0 -50%; z-index: 3; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(24,24,24,.55); color: #fff; font-size: 22px; line-height: 1; cursor: pointer; }
.kl-freccia.sx { left: 14px; } .kl-freccia.dx { right: 14px; }
.kl-punti { position: absolute; bottom: 20px; left: 50%; translate: -50% 0; z-index: 3; display: flex; gap: 6px; }
.kl-punti button { width: 8px; height: 4px; border: 0; border-radius: 4px; background: #fff; opacity: .8; cursor: pointer; padding: 0; transition: width .3s; }
.kl-punti button.on { width: 30px; background: var(--arancio); opacity: 1; }
.kl-citta-body > *, .kl-citta-body { margin-block: 0; }

.kl-week { background: #fff; border: 1px solid #fff; border-radius: 12px; padding: 28px 30px; margin: 0 0 56px; display: grid; gap: 24px; }
.kl-week-top { gap: 16px 32px; }
.kl-week-h { display: grid; gap: 6px; max-width: 560px; }
.kl-pagina .kl-data { margin: 0; font-family: var(--big); font-weight: 300; text-transform: uppercase; font-size: 40px; line-height: 1; letter-spacing: -.02em; color: var(--arancio); }
.kl-pagina .kl-week h2 { font-family: var(--serif); font-size: 32px; line-height: 1.15; }
.kl-week-h p:last-child { font-family: var(--serif); font-weight: 600; font-size: 16px; line-height: 1.45; color: var(--nero); }
.kl-week .wp-block-buttons { gap: 8px; }
.kl-week .is-style-outline .wp-block-button__link { background: transparent; color: var(--nero); border: 2px solid var(--nero); padding: 8px 16px; }
.kl-week .is-style-outline .wp-block-button__link:hover { background: var(--nero); color: #fff; }
.kl-agenda { gap: 28px; border-top: 2px solid var(--nero); padding-top: 22px; margin: 0; }
.kl-giorno { display: grid; gap: 16px; align-content: start; }
.kl-pagina .kl-g-nome { font-family: var(--serif); font-weight: 700; font-size: 26px; line-height: 1.05; letter-spacing: -.5px; }
.kl-g-nome span { color: var(--arancio); }
.kl-ev { display: grid; gap: 3px; padding-left: 14px; border-left: 5px solid var(--c, var(--arancio)); border-radius: 2px; }
.kl-pagina .kl-ev h4 { font-family: var(--big); font-weight: 700; font-size: 18px; line-height: 1.2; letter-spacing: -.2px; }
.kl-ev .kl-dove { font-style: italic; font-size: 14px; line-height: 1.3; color: var(--testo-2); }
.kl-ev p { font-size: 14px; line-height: 1.4; color: var(--testo-2); }
.kl-ev-life { --c: #e75d10; } .kl-ev-food { --c: #563047; } .kl-ev-arte { --c: #029999; } .kl-ev-cult { --c: #185762; }

.kl-zone .wp-block-post-template { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.kl-zone li { aspect-ratio: 3/4; padding: 14px; }
.kl-pagina .kl-zone .kl-tile-txt .kl-t { font-size: 19px; line-height: 1.2; }

.kl-scuro { background: var(--nero); border-radius: 12px; padding: 28px 24px; margin: 0 0 56px; display: grid; gap: 18px; }
.kl-pagina .kl-scuro .kl-sez-t h2, .kl-pagina .kl-scuro .kl-t { color: #fff; }
.kl-scuro .kl-ex p { color: #cfcfcf; }

/* pagina Guide: taccuino */
.kl-taccuino { margin: 4px 6px 56px; padding-top: 22px; border-top: 3px solid var(--nero); display: grid; gap: 28px; }
.kl-tac-h { display: grid; gap: 6px; max-width: 720px; }
.kl-pagina .kl-tac-h h2 { font-size: 32px; }
.kl-tac-s { font-family: var(--serif); font-weight: 600; font-style: italic; font-size: 16px; line-height: 1.45; color: var(--testo-2); }
.kl-tac-c { margin: 0; font-size: 0; }
.kl-tac-c a { font-family: var(--flex); font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--arancio); text-decoration: none; }
.kl-tac-c .wp-block-post-terms__separator { display: none; }
.kl-tac-c a + a, .kl-tac-c a:nth-of-type(n+2) { display: none; }
.kl-taccuino-q .wp-block-post-template { grid-template-columns: repeat(21, minmax(0, 1fr)); column-gap: 20px; counter-reset: kl-n; align-items: start; }
.kl-taccuino-q li { display: grid; gap: 8px; align-content: start; }
.kl-taccuino-q li:first-child { grid-column: 1 / 13; grid-row: 1 / 7; gap: 10px; padding-right: 16px; }
.kl-pagina .kl-taccuino-q li:first-child .kl-t { font-size: 32px; line-height: 1.12; text-wrap: balance; }
.kl-taccuino-q li:nth-child(n+2):nth-child(-n+7) { grid-column: 13 / 22; grid-template-columns: 52px minmax(0, 1fr); gap: 5px 12px; padding: 16px 0; counter-increment: kl-n; }
.kl-taccuino-q li:nth-child(2) { padding-top: 0; }
.kl-taccuino-q li:nth-child(n+3):nth-child(-n+7) { border-top: 1px solid #e6e6e6; }
.kl-taccuino-q li:nth-child(n+2):nth-child(-n+7)::before { content: "0" counter(kl-n); grid-row: 1 / 3; font-family: var(--big); font-weight: 900; font-size: 34px; line-height: 1; letter-spacing: -1.5px; color: #dcdcdc; }
.kl-taccuino-q li:nth-child(n+2):nth-child(-n+7) > * { grid-column: 2; }
.kl-taccuino-q li:nth-child(n+2):nth-child(-n+7) .kl-img, .kl-taccuino-q li:nth-child(n+2) .kl-ex { display: none; }
.kl-taccuino-q li:nth-child(n+8) { grid-column: span 7; margin-top: 26px; padding-top: 26px; border-top: 1px solid #e6e6e6; }
.kl-taccuino-q li:hover .kl-t a { color: var(--arancio); }
.kl-pg-guide { margin: 0; }

/* articolo (struttura come kuriuland.it) --------------------------------------- */
.kl-foto { position: relative; margin: 0 0 22px !important; overflow: hidden; background: #ddd; aspect-ratio: 900/492; }
.kl-foto img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; } /* foto quadrate o verticali: si tiene la parte alta (volti), non il centro */
.kl-foto figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 16px 8px; text-align: right; font-family: var(--serif); font-size: 14px; line-height: 1.5; color: #fff; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.55)); text-shadow: 0 1px 2px rgba(0,0,0,.4); }
.kl-art-cols { gap: 24px !important; margin: 0 0 40px !important; align-items: flex-start !important; }
.kl-art-main { padding: 0 6px; }
.kl-art-main > * { margin-block: 0; }
/* Immagini con didascalia classica ([caption]): WordPress scrive la larghezza fissa (es. 1280px)
   nell'attributo style, che le faceva uscire dalla colonna. Restano dentro e si ridimensionano. */
.wp-caption { max-width: 100% !important; box-sizing: border-box; }
.wp-caption img { max-width: 100%; height: auto; }
.kl-pagina .kl-art-t { margin: 0 0 12px; font-family: var(--serif); font-weight: 700; font-size: 32px; line-height: 1.2; letter-spacing: 0; color: var(--nero); }
.kl-art-lead p { margin: 0 0 12px; font-family: var(--serif); font-weight: 600; font-size: 20px; line-height: 1.35; color: var(--nero); }
.kl-meta { display: grid; gap: 14px; margin: 0 0 24px !important; }
.kl-meta p { margin: 0; }
.kl-acura { font-family: var(--serif); font-weight: 600; font-size: 16px; color: var(--nero); }
.kl-acura a { color: inherit; text-decoration: none; }
.kl-acura em { text-decoration: underline; text-underline-offset: 3px; }
.kl-acura a:hover em { color: var(--arancio); }
.kl-pubbl { font-family: var(--flex); font-size: 16px; line-height: 1.6; color: var(--nero); }
.kl-pubbl span { display: block; }
.kl-art-body { font-family: var(--sans); font-size: 16px; line-height: 1.6; color: #000; }
.kl-art-body > * + * { margin-top: 1em; }
.kl-art-body > :first-child { margin-top: 0; }
.kl-art-body h2 { font-family: var(--sans); font-weight: 700; font-size: 26px; line-height: 1.125; color: #000; margin-top: 1.5em; }
.kl-art-body h3 { font-family: var(--sans); font-weight: 700; font-size: 20px; line-height: 1.25; color: #000; margin-top: 1.3em; }
.kl-art-body a { color: #0074db; text-decoration: none; }
.kl-art-body a:hover { text-decoration: underline; }
.kl-art-body .wp-block-image { margin-top: 1.6em; margin-bottom: 1.6em; }
.kl-art-body .wp-block-image img { width: 100%; height: auto; }
.kl-art-body figcaption, .kl-art-body .wp-element-caption { margin-top: 8px; font-family: var(--serif); font-size: 14px; line-height: 1.5; color: var(--grigio); text-align: left; }
.kl-art-body ul, .kl-art-body ol { padding-left: 1.2em; }

/* Testo dell'articolo: HTML scritto a mano o incollato (editor classico) ------------------
   Le regole valgono sia per i blocchi (figure.wp-block-table, .wp-block-quote, .wp-block-code)
   sia per l'HTML senza classi (<table>, <blockquote>, <pre>). Documentazione: "Correzioni del testo dell'articolo (23/10/2026)". */

/* A capo delle parole. Il blocco Colonne di WordPress mette word-break: break-word su .wp-block-column
   e il testo dell'articolo (dentro .kl-art-main) lo eredita: nelle tabelle le celle si stringevano
   spezzando le parole a metà ("Leggibilit/à"). Si va a capo tra le parole; una parola più lunga
   della riga si spezza solo nel testo normale, non nelle tabelle (che invece scorrono). */
.kl-art-body { word-break: normal; overflow-wrap: break-word; }

/* Titolo H1 scritto nel testo: functions.php lo trasforma in H2; questa regola è la riserva. */
.kl-art-body h1 { font-family: var(--sans); font-weight: 700; font-size: 26px; line-height: 1.125; color: #000; margin-top: 1.5em; }

/* Tabelle. Le tabelle HTML vengono chiuse da functions.php in <div class="kl-tab">: il contenitore
   scorre in orizzontale se la tabella è più larga della colonna (telefono, celle con testi senza spazi). */
.kl-art-body .kl-tab, .kl-art-body .wp-block-table { margin: 1.6em 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.kl-art-body table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.kl-art-body table th, .kl-art-body table td { padding: 10px 12px; border: 0; border-bottom: 1px solid #e2e2e2; text-align: left; vertical-align: top; overflow-wrap: normal; }
.kl-art-body table th { font-weight: 700; color: var(--nero); }
.kl-art-body table thead th, .kl-art-body table thead td { border-bottom: 2px solid var(--nero); }
.kl-art-body table tbody tr:nth-child(even) { background: rgba(0,0,0,.035); }
.kl-art-body .wp-block-table figcaption { margin-top: 8px; }

/* Citazioni (blocco Citazione o <blockquote> scritto a mano). */
.kl-art-body blockquote, .kl-art-body .wp-block-quote { margin: 1.6em 0; padding: 4px 0 4px 20px; border-left: 5px solid var(--arancio); font-style: italic; }
.kl-art-body blockquote > * { margin: 0; }
.kl-art-body blockquote > * + * { margin-top: .6em; }
.kl-art-body blockquote cite, .kl-art-body blockquote footer { display: block; font-style: normal; font-size: 14px; color: var(--grigio); }

/* Codice: in riga (<code>) e su più righe (<pre>, blocco Codice). Il blocco su più righe
   non va mai a capo da solo: se è più largo della colonna scorre in orizzontale. */
.kl-art-body code, .kl-art-body kbd { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-size: .9em; padding: .1em .35em; border-radius: 4px; background: rgba(0,0,0,.06); }
.kl-art-body pre { margin: 1.6em 0; padding: 16px 18px; overflow-x: auto; border-radius: 8px; background: var(--nero); color: #f2f2f2; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-size: 14px; line-height: 1.6; white-space: pre; word-break: normal; overflow-wrap: normal; tab-size: 4; }
.kl-art-body pre code { padding: 0; background: none; border-radius: 0; font-size: inherit; color: inherit; }

/* Contenuti che scorrono (tabelle, codice): con la tastiera si raggiungono e si scorrono con le frecce
   (kuriuland.js aggiunge tabindex="0" solo quando servono). */
.kl-art-body [data-kl-scorre]:focus-visible { outline: 2px solid var(--arancio); outline-offset: 2px; }

/* Video e mappe incorporati: mai più larghi della colonna (il bordo dell'iframe è compreso nella larghezza). */
.kl-art-body iframe { max-width: 100%; box-sizing: border-box; }

/* Mappe (OpenStreetMap, Google Maps): kuriuland.js le copre con un velo trasparente, così la rotellina
   e il dito scorrono la pagina invece di spostare la mappa. Un clic (o Invio) attiva la mappa;
   uscendo con il mouse torna ferma. */
.kl-art-body .kl-mappa { position: relative; display: block; }
.kl-art-body .kl-mappa iframe { display: block; width: 100%; }
.kl-mappa-attiva { position: absolute; inset: 0; z-index: 1; display: flex; align-items: flex-start; justify-content: center; padding: 12px; border: 0; background: transparent; cursor: pointer; }
.kl-mappa-attiva span { padding: 6px 12px; border-radius: 20px; background: rgba(24,24,24,.82); color: #fff; font: 600 13px/1.3 var(--sans); opacity: 0; transition: opacity .2s; }
.kl-mappa-attiva:hover span, .kl-mappa-attiva:focus-visible span { opacity: 1; }
.kl-mappa-attiva:focus-visible { outline: 2px solid var(--arancio); outline-offset: -2px; }
.kl-mappa.kl-mappa-on .kl-mappa-attiva { display: none; }
@media (hover: none) { .kl-mappa-attiva span { opacity: 1; } }

/* scheda redattore (in fondo all'articolo e in cima alla pagina redattore) */
.kl-red-card { display: flex; gap: 16px; align-items: center; margin: 40px 0 8px; padding: 16px; background: #fff; border: 1px solid #000; border-radius: 18px; box-shadow: 0 4px 4px rgba(0,0,0,.15); font-family: var(--serif); color: #000; }
.kl-red-img { flex: none; width: 136px; }
.kl-red-img img { display: block; width: 136px; height: 136px; border-radius: 50%; border: 5px solid #e65d10; box-sizing: border-box; object-fit: cover; }
.kl-red-desc { min-width: 0; flex: 1; }
.kl-red-desc > * { margin: 0; }
.kl-pagina .kl-red-name { margin: 0; font-family: var(--serif); font-weight: 700; font-size: 18px; line-height: 1.55; letter-spacing: 0; color: #000; }
.kl-red-role { font-size: 14px; line-height: 1.6; margin-bottom: 14px !important; }
.kl-red-bio p { margin: 0; font-size: 16px; line-height: 1.6; }
.kl-red-card-head .kl-red-bio p { font-size: 14px; }
.kl-red-more { margin-top: 10px !important; text-align: right; }
.kl-red-more a { font-weight: 500; font-size: 16px; color: #000; text-decoration: underline; text-underline-offset: 3px; }
.kl-red-more a:hover { color: var(--arancio); }

/* colonna laterale dell'articolo: pubblicità + articoli correlati */
.kl-art-side { position: sticky; top: var(--kl-side-top); display: grid; gap: 12px; align-content: start; align-self: flex-start; }
.kl-art-side > * { margin: 0 !important; }
.kl-art-side .kl-side-g { gap: 14px; }
.kl-pagina .kl-art-side .kl-side-g h3 { font-family: var(--serif); font-weight: 600; font-size: 20px; }
.kl-correlati .wp-block-post-template { gap: 22px; }
.kl-correlati li { display: grid; gap: 8px; align-content: start; }
.kl-correlati .kl-ex p { font-size: 16px; }

/* "Ti potrebbe interessare anche..." */
.kl-sez-interessa { gap: 12px; }
.kl-pagina .kl-sez-interessa > h2 { font-family: var(--serif); font-weight: 600; font-size: 20px; line-height: 1.2; }
.kl-interessa .wp-block-post-template { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.kl-interessa li { display: grid; gap: 8px; align-content: start; }

/* pagina redattore */
.kl-red-cols { gap: 12px !important; padding: 24px 0 0; align-items: flex-start !important; margin: 0 0 56px !important; }
.kl-red-main > * { margin-block: 0; }
.kl-red-card-head { margin: 0 0 40px; }
.kl-red-t { gap: 12px 36px; margin-bottom: 24px !important; }
.kl-pagina .kl-red-t h2 { margin: 0; font-family: var(--serif); font-weight: 700; font-size: 32px; line-height: 1.6; }
.kl-filtri { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.kl-filtri select { appearance: none; -webkit-appearance: none; width: 200px; height: 38px; padding: 6px 40px 6px 15px; border: 1px solid #ccc; border-radius: 18px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right 12px center / 24px; font: 400 14px var(--sans); color: #333; cursor: pointer; }
.kl-filtri select:focus-visible { outline: 2px solid var(--arancio); outline-offset: 2px; }
.kl-red-g .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.kl-red-g li { display: grid; gap: 8px; align-content: start; }
.kl-pag { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 30px 0 0; font-family: var(--sans); font-size: 14px; }
.kl-pag-n { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #d2d2d2; color: #fff; text-decoration: none; }
.kl-pag-n.on { background: #d75d21; }
.kl-pag a.kl-pag-n:hover { background: var(--nero); color: #fff; }
.kl-pag-dots { font-size: 20px; color: #666; }
.kl-pag-nav { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: 5px; color: #2b2b2b; text-decoration: none; }
.kl-pag-nav:first-child svg { transform: scaleX(-1); }
.kl-pag-nav.off { color: #ccc; }
.kl-pag a.kl-pag-nav:hover { color: var(--arancio); }
.kl-red-side { display: grid; gap: 12px; position: sticky; top: var(--kl-side-top); }
.kl-red-side > * { margin: 0 !important; }
.kl-red-main .kl-pagina-vuota { margin-top: 20px; }
.kl-pg-body { padding: 0 6px 48px; }

/* newsletter ------------------------------------------------------------------- */
.kl-pagina .kl-nl {
	margin: 0 6px 56px; border-radius: 12px; padding: 48px 44px; min-height: 300px; box-sizing: border-box; display: flex; align-items: center;
	background: linear-gradient(90deg, rgba(12,10,10,.78) 0%, rgba(12,10,10,.55) 50%, rgba(12,10,10,.45) 100%),
		url("https://kuriu-wordpress-media-bucket.s3.eu-west-1.amazonaws.com/wp-content/magazine/2025/01/24091337/76c5d61bb5ede77b06d34f8481f8c4ea.png") center/cover no-repeat;
}
.kl-nl-cols { width: 100%; gap: 24px 56px; margin: 0; }
.kl-nl .kl-k { color: #ffb07f; margin-bottom: 6px; }
.kl-pagina .kl-nl h2 { margin: 0; font-family: var(--serif); font-weight: 700; font-size: 34px; line-height: 1.15; color: #fff; }
.kl-nl .kl-s { margin-top: 10px; font-family: var(--serif); font-weight: 600; font-size: 16px; line-height: 1.5; color: #f1f1f1; }
.kl-nl-form { display: grid; gap: 12px; }
.kl-nl-row { display: flex; gap: 8px; }
.kl-nl-row input, .kl-nl-row button { box-sizing: border-box; }
.kl-nl-row input { flex: 1; min-width: 0; height: 48px; padding: 0 18px; border-radius: 32px; border: 0; background: #fff; color: var(--nero); font: 500 15px var(--sans); box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.kl-nl-row input::placeholder { color: #9a9a9a; }
.kl-nl-row button { height: 48px; padding: 0 24px; border: 0; border-radius: 32px; background: var(--arancio); color: #fff; font: 700 15px var(--sans); cursor: pointer; white-space: nowrap; }
.kl-nl-row button:hover { background: #fff; color: var(--nero); }
.kl-nl-priv { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; line-height: 1.4; color: #ececec; }
.kl-nl-priv input { margin-top: 2px; accent-color: var(--arancio); }
.kl-nl-priv a { color: #fff; }
.kl-nl-ok { display: none; margin: 0; font-weight: 700; font-size: 18px; color: #fff; }
.kl-nl-form.ok .kl-nl-row, .kl-nl-form.ok .kl-nl-priv { display: none; }
.kl-nl-form.ok .kl-nl-ok { display: block; }
.kl-nl-trap { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kl-nl-err { margin: 0; font-size: 13px; font-weight: 600; line-height: 1.4; color: #ffb07f; }
.kl-nl-err[hidden] { display: none; }
.kl-nl-form.ok .kl-nl-err { display: none; }
.kl-nl-form.busy button { opacity: .6; cursor: progress; }
/* Spazio "fine-pagina" (sempre subito sotto la newsletter): il banner interno occupa la stessa larghezza
   della newsletter (rientro di 6px per lato) e ne riprende gli angoli, invece di restare centrato alla
   sua larghezza naturale. I banner esterni (Google ecc.) mantengono le loro misure. */
.kl-pagina .kl-pub--fine-pagina { padding-inline: 6px; }
.kl-pub--fine-pagina .kl-pub-in:has(> .kl-pub-int) { justify-items: stretch; }
.kl-pub--fine-pagina .kl-pub-int { width: 100%; border-radius: 12px; overflow: hidden; }
.kl-pub--fine-pagina .kl-pub-int picture { display: block; }
.kl-pub--fine-pagina .kl-pub-int img { width: 100%; }

/* Footer ----------------------------------------------------------------------- */
.kl-foot { background: var(--nero); color: #fff; font-size: 14px; }
.kl-foot > * { margin-block: 0 !important; }
.kl-foot-top, .kl-foot-in, .kl-foot-legal > p { box-sizing: border-box; max-width: 1080px; margin-left: auto !important; margin-right: auto !important; }
.kl-foot-top { gap: 20px; align-items: center; padding: 56px 0 40px; }
.kl-foot-in { position: relative; display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 32px; padding: 36px 0 56px; }
.kl-senza-guide .kl-foot-in { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; }
.kl-foot-in::before { content: ""; position: absolute; top: 0; left: 0; right: 0; border-top: 1px solid #2e2e2e; }
.kl-foot-in > .wp-block-column > * { margin-block: 0; }
.kl-foot h2, .kl-foot h3 { margin: 0 0 16px !important; font-family: var(--sans); font-weight: 700; font-size: 14px; line-height: 1.4; color: #fff; }
.kl-foot-in ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.kl-foot-in li { margin: 0; line-height: 1.4; }
.kl-foot-in ul a, .kl-contatti, .kl-contatti a { color: #bdbdbd; text-decoration: none; transition: color .2s; }
.kl-foot-in ul a:hover, .kl-contatti a:hover { color: var(--arancio); }
.kl-contatti { margin: 0 0 12px !important; line-height: 1.6; }
.kl-foot-legal { border-top: 1px solid #2e2e2e; }
.kl-foot-legal > p { margin: 0 auto; padding: 22px 0 28px; font-size: 11px; line-height: 1.7; color: #8a8a8a; }
.kl-social { gap: 10px; }
.kl-social .wp-social-link { margin: 0; }
.kl-social.wp-block-social-links .wp-social-link a { padding: 7px; }
.kl-social .wp-social-link svg { width: 20px; height: 20px; }
.kl-social .wp-social-link-tiktok { box-shadow: inset 0 0 0 1px #3a3a3a; }
/* Pulsante "Torna su": nero come l'header sopra le pagine (che hanno il fondo arancio o del colore della categoria),
   arancio quando passa sopra il footer nero (classe kl-su-footer, messa da kuriuland.js). */
.kl-su { position: fixed; right: 24px; bottom: 24px; z-index: 9; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--nero); color: #fff; text-decoration: none; font-size: 18px; box-shadow: 0 4px 14px rgba(0,0,0,.25); transition: background-color .2s; }
.kl-su:hover { background: var(--arancio); color: #fff; }
.kl-su.kl-su-footer { background: var(--arancio); }
.kl-su.kl-su-footer:hover { background: #fff; color: var(--nero); }
/* Con il pulsante delle preferenze cookie di iubenda (38×38, fisso in basso a destra a 16px dai bordi) il "Torna su"
   sale sopra di lui, centrato sulla stessa colonna, invece di coprirlo. Se iubenda non c'è, resta dov'è. */
body:has(.iubenda-tp-btn[data-tp-float="bottom-right"]) .kl-su { right: 13px; bottom: 66px; }
/* Il bordo bianco dopo il clic era il contorno di focus di WordPress (:focus, colore del testo):
   resta solo per chi naviga con la tastiera (:focus-visible), non dopo il clic col mouse. */
.kl-su:focus { outline: none; }
.kl-su:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* Responsive ------------------------------------------------------------------- */
@media (max-width: 1110px) and (min-width: 801px) {
	.kl-head-top, .kl-head-bot, .kl-foot-top, .kl-foot-in, .kl-foot-legal > p { padding-left: 12px; padding-right: 12px; }
	.kl-foot-in::before { left: 12px; right: 12px; }
}
@media (max-width: 1024px) {
	.kl-pagina .kl-titolo, .kl-pagina .sv-titolo { font-size: 60px; }
}
@media (max-width: 900px) {
	.kl-g4 .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kl-guide-band, .kl-evlist .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
	.kl-evlist li:first-child { grid-row: auto; margin-bottom: 20px; }
	.kl-evlist li:not(:first-child) { grid-column: 1; }
	.kl-ult { flex-wrap: wrap !important; }
	.kl-ult > .wp-block-column { flex-basis: 100% !important; }
	.kl-side { position: static; }
	.kl-art-cols, .kl-red-cols { flex-wrap: wrap !important; }
	.kl-art-cols > .wp-block-column, .kl-red-cols > .wp-block-column { flex-basis: 100% !important; }
	.kl-red-side, .kl-art-side { position: static; }
	.kl-interessa .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
	.wp-site-blocks > .kl-pagina { margin-top: 0; padding: 18px 18px 0; }
	.kl-head-top { height: 64px; padding: 0 18px; }
	.kl-servizio, .kl-cerca { display: none !important; }
	.kl-logo-img { height: 18px; }
	.kl-cerca-pag .wp-block-search__inside-wrapper { height: 52px; padding-left: 20px; }
	.kl-cerca-pag .wp-block-search__button { width: 40px; height: 40px; }
	.kl-cerca-pag .wp-block-search__input { font-size: 16px; }
	.kl-logo-foot .kl-logo-img { height: 30px; }
	.kl-logo-pay .kl-logo-img { height: 35px; }
	.kl-head-bot { padding: 0; }
	.kl-menu { padding: 0 18px; overflow-x: auto; white-space: nowrap; scrollbar-width: none; height: 100%; max-width: 100%; }
	.kl-menu .wp-block-navigation__container { gap: 24px; flex-wrap: nowrap; }
	.kl-menu .wp-block-navigation__submenu-container { display: none !important; }
	.kl-foot-top, .kl-foot-in, .kl-foot-legal > p { padding-left: 18px; padding-right: 18px; }
	.kl-foot-in::before { left: 18px; right: 18px; }
	.kl-foot-top { padding-top: 40px; padding-bottom: 28px; }
	.kl-foot-in { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; padding-top: 28px; padding-bottom: 40px; }
	.kl-foot-legal > p { padding-bottom: 84px; }
}
@media (max-width: 600px) {
	.kl-pagina .kl-titolo, .kl-pagina .sv-titolo { font-size: 40px; letter-spacing: -2px; }
	.kl-g3 .wp-block-post-template, .kl-ult-g .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
	.kl-duo .wp-block-post-template { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
	.kl-duo li:first-child { grid-row: auto; display: grid; }
	.kl-duo li:first-child .kl-img { aspect-ratio: 16/10; }
	.kl-duo li { overflow: visible; }
	.kl-pagina .kl-duo li:first-child .kl-t { font-size: 24px; }
	.kl-pagina .kl-duo li:not(:first-child) .kl-t { font-size: 18px; }
	.kl-duo li:not(:first-child) .kl-img { height: auto; aspect-ratio: 6/5; min-height: 0; }
	.kl-mosaico .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 200px; gap: 10px; }
	.kl-mosaico { margin-bottom: 56px; }
	.kl-sez { padding-bottom: 64px; gap: 20px; }
	.kl-pagina .kl-h1-home + .kl-mosaico { margin-top: 20px; }
	.kl-mosaico li { padding: 14px; }
	.kl-mosaico li:nth-child(6n+1) { padding: 20px; }
	.kl-mosaico li:nth-child(6n+3) { grid-row: span 1; }
	.kl-mosaico li:nth-child(6n+6) { grid-column: span 1; }
	.kl-pagina .kl-mosaico .kl-tile-txt .kl-t { font-size: 17px; }
	.kl-pagina .kl-mosaico li:nth-child(6n+1) .kl-tile-txt .kl-t { font-size: 24px; }
	.kl-mosaico .kl-ex { display: none; }
	/* home: apertura grande in alto, poi tutti gli altri riquadri orizzontali a tutta larghezza.
	   Titoli al massimo su 3 righe, così la categoria resta staccata da "IN EVIDENZA". */
	.kl-mosaico.kl-mosaico-home li:nth-child(n) { grid-column: 1 / -1; grid-row: span 1; --kl-pad: 16px; padding: 44px var(--kl-pad) var(--kl-pad); }
	.kl-mosaico.kl-mosaico-home li:nth-child(1) { grid-row: span 2; padding: var(--kl-pad); }
	.kl-pagina .kl-mosaico-home li:nth-child(n) .kl-tile-txt .kl-t { font-size: 20px; line-height: 1.18; -webkit-line-clamp: 3; line-clamp: 3; }
	.kl-pagina .kl-mosaico-home li:nth-child(1) .kl-tile-txt .kl-t { font-size: 25px; }
	.kl-pagina .kl-mosaico-home li:nth-child(1) .kl-ex p { font-size: 15px; }
	.kl-hot { top: 14px; left: var(--kl-pad, 14px); }
	.kl-band, .kl-guide-band { padding: 22px; }
	.kl-pagina .kl-cat-h h2 { font-size: 34px; letter-spacing: -1.4px; }
	.kl-gb-tiles .wp-block-post-template { height: 300px; }
	.kl-pagina .kl-evlist li:first-child .kl-t { font-size: 24px; }
	.kl-slider li { aspect-ratio: 3/4; padding: 0 20px 44px; }
	.kl-pagina .kl-slider .kl-tile-txt .kl-t { font-size: 24px; }
	.kl-week { padding: 22px; }
	.kl-pagina .kl-data { font-size: 32px; }
	.kl-zone .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kl-hashtag.kl-altre, .kl-presto-l { gap: 10px 28px; }
	.kl-altre a, .kl-presto { font-size: 26px; letter-spacing: -.6px; }
	.kl-taccuino { margin-bottom: 36px; }
	.kl-pagina .kl-tac-h h2 { font-size: 26px; }
	.kl-taccuino-q .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
	.kl-taccuino-q li:first-child, .kl-taccuino-q li:nth-child(n+2):nth-child(-n+7), .kl-taccuino-q li:nth-child(n+8) { grid-column: 1; grid-row: auto; padding-right: 0; }
	.kl-taccuino-q li:first-child { margin-bottom: 22px; }
	.kl-pagina .kl-taccuino-q li:first-child .kl-t { font-size: 25px; }
	.kl-taccuino-q li:nth-child(n+2):nth-child(-n+7) { grid-template-columns: 42px minmax(0, 1fr); }
	.kl-taccuino-q li:nth-child(n+2):nth-child(-n+7)::before { font-size: 28px; }
	.kl-pagina .kl-taccuino-q .kl-t { font-size: 17px; }
	.kl-nl { padding: 30px 22px; min-height: 0; background: linear-gradient(180deg, rgba(12,10,10,.8), rgba(12,10,10,.6)), url("https://kuriu-wordpress-media-bucket.s3.eu-west-1.amazonaws.com/wp-content/magazine/2025/01/24091337/76c5d61bb5ede77b06d34f8481f8c4ea.png") center/cover no-repeat; }
	.kl-pagina .kl-nl { display: block; }
	.kl-nl-cols > .wp-block-column { flex-basis: 100% !important; min-width: 0; }
	.kl-pagina .kl-nl h2 { font-size: 24px; }
	.kl-nl-row { flex-direction: column; }
	.kl-nl-row input, .kl-nl-row button { flex: none; width: 100%; }

}
@media (max-width: 600px) {
	.kl-foto { margin: -18px -18px 18px !important; }
	.kl-pagina .kl-art-t { font-size: 26px; }
	.kl-art-lead p { font-size: 18px; }
	.kl-art-main { padding: 0; }
	.kl-art-body table { font-size: 14px; }
	.kl-art-body table th, .kl-art-body table td { padding: 8px 10px; }
	.kl-art-body pre { padding: 14px; font-size: 13px; }
	.kl-red-card { flex-direction: column; align-items: flex-start; }
	.kl-red-img, .kl-red-img img { width: 112px; height: 112px; }
	.kl-red-g .wp-block-post-template, .kl-interessa .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
	.kl-filtri { width: 100%; }
	.kl-filtri label { flex: 1; }
	.kl-filtri select { width: 100%; }
	.kl-pagina .kl-red-t h2 { font-size: 28px; }
	.kl-red-cols { padding-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.kl-slider .wp-block-post-template { scroll-behavior: auto; }
}

/* Pagine di servizio (templates page-servizio / page-servizio-larga) ----------- */
.kl-pagina .sv-apertura > *, .kl-pagina .sv-corpo > *, .kl-pagina .sv-side > *, .kl-pagina .sv-box > *,
.kl-pagina .sv-nota > *, .kl-pagina .sv-cta > *, .kl-pagina .sv-numeri > *, .kl-pagina .sv-largo > *,
.kl-pagina .mg-hero > *, .kl-pagina .mg-ultimo > *, .kl-pagina .mg-txt > *, .kl-pagina .mg-archivio > *,
.kl-pagina .mg-num > *, .kl-pagina .kl-scuro > *, .kl-pagina .kl-scuro > .wp-block-group > *, .kl-pagina .mg-canali > * { margin-block: 0; }

.sv-apertura { display: grid; justify-items: center; gap: 16px; text-align: center; padding: 48px 24px 0; margin: 0 0 64px !important; }
/* Separatore corto sotto l'apertura (al posto della riga a tutta larghezza). */
.sv-apertura::after { content: ""; width: 64px; height: 3px; margin-top: 22px; background: var(--nero); border-radius: 2px; }
.sv-lead, .sv-lead p { margin: 0; max-width: 60ch; font-family: var(--serif); font-weight: 600; font-size: 17px; line-height: 1.55; color: var(--testo-2); }

.sv-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 72px; align-items: start; padding: 0 24px 96px; }

/* testo della pagina */
.sv-testo { min-width: 0; max-width: 680px; font-family: var(--serif); font-size: 18px; line-height: 1.65; color: var(--testo); }
.sv-testo > * { margin-block: 0; }
.sv-testo > * + * { margin-top: 1.35em; }
.sv-testo > .sv-intro + * { margin-top: 1.6em; }
.sv-testo > h2 + *, .sv-testo > h3 + * { margin-top: .8em; }
.sv-testo h2 { margin-top: 2.6em; padding-top: 28px; border-top: 1px solid var(--nero); font-family: var(--serif); font-weight: 700; font-size: 28px; line-height: 1.15; color: var(--nero); }
.sv-testo > h2:first-child { margin-top: 0; }
.sv-testo h3 { margin-top: 1.6em; font-family: var(--serif); font-weight: 700; font-size: 20px; line-height: 1.25; color: var(--nero); }
.sv-testo a:not(.wp-block-button__link) { color: var(--arancio); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.sv-testo a:not(.wp-block-button__link):hover { color: var(--nero); }
.kl-pagina .sv-intro { font-weight: 600; font-size: 20px; line-height: 1.5; color: var(--nero); }
.sv-testo ul { list-style: none; padding: 0; display: grid; gap: 14px; }
.sv-testo ul li { position: relative; margin: 0; padding-left: 26px; }
.sv-testo ul li::before { content: ""; position: absolute; left: 4px; top: .62em; width: 9px; height: 9px; border-radius: 50%; background: var(--arancio); }
.sv-testo ol.sv-passi { list-style: none; padding: 0; counter-reset: kl-n; }
/* Numero in posizione assoluta (non griglia): il testo con link o grassetti resta un unico blocco. */
.sv-passi li { counter-increment: kl-n; position: relative; display: block; margin: 0; padding: 20px 0 20px 68px; border-top: 1px solid #e6e6e6; }
.sv-passi li:first-child { border-top: 0; padding-top: 4px; }
.sv-passi li::before { content: "0" counter(kl-n); position: absolute; left: 0; top: 20px; font-family: var(--big); font-weight: 900; font-size: 34px; line-height: 1; letter-spacing: -1.5px; color: #dcdcdc; }
.sv-passi li:first-child::before { top: 4px; }

/* riga dei numeri, nota, invito */
.sv-numeri { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid var(--nero); }
.sv-numeri p { padding: 18px 16px 16px 0; font-family: var(--flex); font-size: 12px; font-weight: 600; line-height: 1.35; letter-spacing: .1em; text-transform: uppercase; color: var(--testo-2); }
.sv-numeri p + p { padding-left: 18px; border-left: 1px solid #e6e6e6; }
.sv-numeri strong { display: block; margin-bottom: 6px; font-family: var(--big); font-weight: 900; font-size: 40px; line-height: 1; letter-spacing: -1.6px; text-transform: none; color: var(--arancio); }
.sv-nota { display: grid; gap: 10px; background: var(--tinta); border-radius: 12px; padding: 28px 32px; font-size: 16px; line-height: 1.55; }
.sv-cta { display: grid; gap: 16px; justify-items: start; background: var(--tinta); border-radius: 12px; padding: 32px; }
.sv-testo .sv-cta h2 { margin: 0; padding: 0; border: 0; font-size: 22px; }
.sv-cta p { font-size: 16px; line-height: 1.55; }

/* colonna laterale: box contatti */
.sv-side { position: sticky; top: var(--kl-side-top); display: grid; gap: 14px; }
/* Box contatti: stessa card dei redattori (.kl-red-card): bordo nero, angoli 18px, ombra, testo serif. */
.sv-box { display: grid; gap: 16px; background: #fff; color: #000; border: 1px solid #000; border-radius: 18px; box-shadow: 0 4px 4px rgba(0,0,0,.15); padding: 24px; font-family: var(--serif); }
.kl-pagina .sv-box h2, .kl-pagina .sv-box h3 { margin: 0; font-family: var(--serif); font-weight: 700; font-size: 18px; line-height: 1.55; letter-spacing: 0; color: #000; }
.kl-pagina .sv-box .sv-box-ruolo { margin: -16px 0 6px; font-size: 14px; line-height: 1.6; color: #000; }
.sv-voce { display: grid; gap: 2px; font-family: var(--serif); font-size: 16px; line-height: 1.6; color: #000; overflow-wrap: anywhere; }
.sv-voce strong { font-weight: 700; font-size: 14px; color: #000; }
.sv-voce a, .sv-box-btn a { color: #000; text-decoration: underline; text-underline-offset: 3px; justify-self: start; transition: color .2s; }
.sv-voce a:hover, .sv-box-btn a:hover { color: var(--arancio); }
.kl-pagina .sv-box .sv-box-btn { margin: 0; text-align: right; font-weight: 500; font-size: 16px; }
/* Contattaci: senza box laterale, una sola colonna centrata. */
.kl-pg-contattaci .sv-corpo { grid-template-columns: minmax(0, 1fr); }
.kl-pg-contattaci .sv-testo { width: 100%; max-width: none; } /* larga quanto testo + colonna delle altre pagine di servizio */
/* ...ma il testo tiene la stessa misura delle altre pagine (680px), così le righe non diventano lunghissime;
   centrato sotto il titolo; il modulo e la nota occupano tutta la larghezza. */
.kl-pg-contattaci .sv-testo > p { max-width: 680px; margin-inline: auto; text-align: center; text-wrap: balance; }

/* Contattaci: modulo Contact Form 7 ([kl_modulo_contatti]) in una card come quella dei redattori e dei contatti. */
.sv-testo .sv-form { margin-top: 40px; padding: 44px 48px; background: #fff; border: 1px solid #000; border-radius: 18px; box-shadow: 0 4px 4px rgba(0,0,0,.15); }
.sv-testo .sv-form + * { margin-top: 40px; }
.sv-form .wpcf7 { margin: 0; }
.sv-form .wpcf7-form { display: grid; gap: 24px; margin: 0; font-family: var(--serif); }
.sv-form .wpcf7-form > p, .sv-form .wpcf7-form > div { margin: 0; }
.sv-form .hidden-fields-container { display: none; }
.sv-form .screen-reader-response { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.sv-form .sv-riga { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.sv-form label { display: grid; gap: 8px; align-content: start; font-family: var(--serif); font-size: 14px; font-weight: 700; line-height: 1.4; color: #000; }
.sv-form .wpcf7-form-control-wrap { display: block; }
.sv-form input[type=text], .sv-form input[type=email], .sv-form input[type=tel], .sv-form textarea {
	box-sizing: border-box; width: 100%; min-width: 0; margin: 0; font: 400 16px/1.4 var(--sans); color: var(--nero); background: #fff;
	border: 1px solid #bdbdbd; border-radius: 26px; padding: 14px 20px; transition: border-color .2s, box-shadow .2s;
}
.sv-form textarea { display: block; border-radius: 18px; min-height: 220px; resize: vertical; line-height: 1.55; }
.sv-form input::placeholder, .sv-form textarea::placeholder { color: #9a9a9a; }
.sv-form input:hover, .sv-form textarea:hover { border-color: #000; }
.sv-form input:focus, .sv-form textarea:focus { border-color: var(--arancio); outline: none; box-shadow: 0 0 0 3px rgba(231,93,16,.15); }
.sv-form .sv-consenso { padding-top: 2px; }
.sv-form .wpcf7-acceptance label, .sv-form .wpcf7-list-item label { display: flex; gap: 10px; align-items: flex-start; font-family: var(--serif); font-weight: 400; font-size: 14px; line-height: 1.5; color: var(--testo-2); cursor: pointer; }
.sv-form .wpcf7-list-item { margin: 0; }
.sv-form input[type=checkbox] { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--arancio); }
.sv-form .wpcf7-acceptance a { color: #000; text-decoration: underline; text-underline-offset: 3px; }
.sv-form .wpcf7-acceptance a:hover { color: var(--arancio); }
.sv-form .sv-invio { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding-top: 4px; }
.sv-form .wpcf7-submit { border: 0; border-radius: 32px; padding: 15px 34px; background: var(--arancio-testo, var(--arancio)); color: #fff; font: 700 15px var(--sans); cursor: pointer; transition: background .2s; }
.sv-form .wpcf7-submit:hover, .sv-form .wpcf7-submit:focus-visible { background: var(--nero); }
.sv-form .wpcf7-submit:disabled { opacity: .5; cursor: not-allowed; }
.sv-form .wpcf7-spinner { order: 2; margin: 0; }
.sv-form .sv-nota-campi { order: 3; margin-left: auto; font-family: var(--serif); font-size: 13px; color: var(--grigio); }
/* errori e conferma */
.sv-form .wpcf7-not-valid { border-color: var(--arancio) !important; }
.sv-form .wpcf7-not-valid-tip { margin-top: 6px; padding-left: 18px; font: 500 13px var(--sans); color: var(--arancio-testo, var(--arancio)); }
.sv-form .wpcf7 form .wpcf7-response-output { margin: 0; padding: 14px 18px; border: 0; border-radius: 12px; background: var(--tinta); font: 500 14px/1.5 var(--sans); color: var(--nero); }
.sv-form .wpcf7 form.sent .wpcf7-response-output { background: #e9f5ec; color: #1d5b2d; }
.sv-form .wpcf7 form.init .wpcf7-response-output, .sv-form .wpcf7 form.resetting .wpcf7-response-output, .sv-form .wpcf7 form.submitting .wpcf7-response-output { display: none; }
.sv-form-assente p { margin: 0; font-family: var(--serif); font-size: 17px; }
.sv-form-assente p + p { margin-top: 8px; }

/* Magazine (template larga): ultimo numero, contenuti digitali, archivio dei numeri. */
.sv-largo { padding: 0 24px 96px; }
.kl-pagina .sv-largo > * { margin-block: 0; }
.kl-pagina .sv-largo > * + * { margin-top: 80px; }
.mg-cop { margin: 0; }
.mg-cop a { display: block; }
.mg-cop img { display: block; width: 100%; height: auto; aspect-ratio: 210/297; object-fit: cover; border-radius: 4px; background: #eee; }
/* apertura: banner scuro con le copertine (come su kuriuland.it), stesso fondo della newsletter */
.mg-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; min-height: 380px; padding: 48px 56px; box-sizing: border-box; border-radius: 18px; overflow: hidden;
	background: linear-gradient(90deg, rgba(12,10,10,.82) 0%, rgba(12,10,10,.6) 50%, rgba(12,10,10,.25) 100%),
		url("https://kuriu-wordpress-media-bucket.s3.eu-west-1.amazonaws.com/wp-content/magazine/2025/01/24091337/76c5d61bb5ede77b06d34f8481f8c4ea.png") center/cover no-repeat; }
.mg-hero-txt { display: grid; gap: 18px; justify-items: start; min-width: 0; }
.kl-pagina .mg-hero-txt > * { margin: 0; }
.kl-pagina .mg-hero h2 { font-family: var(--serif); font-weight: 700; font-size: 46px; line-height: 1.08; letter-spacing: -.5px; color: #fff; text-wrap: balance; }
.mg-hero-txt > p { max-width: 46ch; font-family: var(--serif); font-weight: 500; font-size: 18px; line-height: 1.55; color: #f1f1f1; }
.kl-pagina .mg-hero-img { margin: 0; justify-self: end; width: 100%; max-width: 460px; }
.mg-hero-img img { display: block; width: 100%; height: auto; filter: drop-shadow(0 18px 30px rgba(0,0,0,.45)); }
/* bottoni del magazine: grandi, a pillola */
.kl-pagina .mg-btn .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 14px 32px; border-radius: 32px; box-sizing: border-box; font: 600 17px/1.2 var(--sans); text-decoration: none; transition: background-color .2s, color .2s, border-color .2s; }
.kl-pagina .mg-btn:not(.is-style-outline) .wp-block-button__link { background: var(--arancio-testo, var(--arancio)); color: #fff; border: 2px solid transparent; }
.kl-pagina .mg-btn:not(.is-style-outline) .wp-block-button__link:hover { background: var(--nero); }
.kl-pagina .mg-btn.is-style-outline .wp-block-button__link { padding: 14px 30px; }
.kl-pagina .mg-btn-nero .wp-block-button__link { width: 100%; background: #000 !important; }
.kl-pagina .mg-btn-nero .wp-block-button__link:hover { background: var(--arancio-testo, var(--arancio)) !important; }
/* numeri precedenti: "Scarica" a tutta larghezza, "Leggi" come link di testo centrato sotto */
.kl-pagina .mg-num .mg-scarica { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 8px; margin-top: 6px; }
.mg-scarica > .wp-block-button { margin: 0; }
.mg-scarica > .mg-btn-nero { width: 100%; }
.kl-pagina .mg-scarica .mg-btn-nero .wp-block-button__link { width: 100%; }
/* "Leggi" / "Leggi online": link di testo arancio, non un secondo pulsante */
.kl-pagina .mg-btn-link .wp-block-button__link { padding: 6px 10px; background: none !important; border: 0; border-radius: 0; color: var(--arancio-testo, var(--arancio)); font: 600 17px/1.2 var(--sans); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: color .2s, text-decoration-color .2s; }
.kl-pagina .mg-btn-link .wp-block-button__link:hover, .kl-pagina .mg-btn-link .wp-block-button__link:focus-visible { color: var(--nero); text-decoration-color: currentColor; }
.mg-txt .wp-block-buttons { align-items: center; }
/* Focus dei pulsanti del magazine: niente rettangolo dopo il clic col mouse (era il contorno :focus di WordPress);
   per chi naviga con la tastiera resta un alone arancio morbido che segue la forma del pulsante. */
.kl-pagina .mg-btn .wp-block-button__link:focus, .kl-pagina .mg-btn-link .wp-block-button__link:focus { outline: none; }
.kl-pagina .mg-btn .wp-block-button__link:focus-visible, .kl-pagina .mg-btn-link .wp-block-button__link:focus-visible { outline: none; box-shadow: 0 0 0 3px #fff, 0 0 0 5px rgba(231, 93, 16, .55); }
.kl-pagina .mg-btn-link .wp-block-button__link:focus-visible { border-radius: 10px; }
/* ultimo numero */
.mg-ultimo { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 64px; align-items: center; background: var(--tinta); border-radius: 18px; padding: 56px 64px; }
.mg-ultimo .mg-cop img { box-shadow: 14px 16px 0 #f6d3bf, 0 16px 36px rgba(0,0,0,.22); }
.mg-txt { display: grid; gap: 16px; justify-items: start; min-width: 0; }
.kl-pagina .mg-txt h2 { font-family: var(--big); font-weight: 900; font-size: 56px; line-height: .95; letter-spacing: -2px; text-transform: uppercase; color: var(--nero); }
.mg-txt > p:not(.kl-k) { max-width: 58ch; font-family: var(--serif); font-size: 17px; line-height: 1.65; color: var(--testo-2); }
.mg-txt .wp-block-buttons { gap: 12px; margin-top: 8px; }
.kl-pagina .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--nero); border: 2px solid var(--nero); padding: 9px 20px; }
.kl-pagina .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--nero); color: #fff; }
/* contenuti digitali: card come quella dei redattori */
.mg-digitale { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 48px; align-items: center; padding: 44px 48px; background: #fff; border: 1px solid #000; border-radius: 18px; box-shadow: 0 4px 4px rgba(0,0,0,.15); }
.kl-pagina .mg-digitale-txt > * { margin-block: 0; }
.mg-digitale-txt { display: grid; gap: 12px; }
.kl-pagina .mg-digitale h2 { font-family: var(--serif); font-weight: 700; font-size: 30px; line-height: 1.2; color: #000; }
.mg-digitale-txt > p:not(.kl-k) { font-family: var(--serif); font-size: 17px; line-height: 1.6; color: var(--testo-2); }
.mg-canali { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
/* Canale: card con l'icona del servizio (blocco Icone social di WordPress) e i colori del brand; tutta la card è cliccabile. */
.mg-canale { --brand: var(--arancio); --brand-testo: var(--arancio-testo, var(--arancio)); --brand-fondo: var(--tinta);
	position: relative; display: grid; gap: 16px; align-content: start; padding: 24px; background: var(--brand-fondo); border: 1px solid transparent; border-radius: 12px; transition: border-color .2s, transform .2s; }
.mg-c-spotify { --brand: #1db954; --brand-testo: #11733a; --brand-fondo: #e9f7ee; }
.mg-c-youtube { --brand: #ff0000; --brand-testo: #c4161c; --brand-fondo: #fdeeee; }
.mg-canale:hover, .mg-canale:focus-within { border-color: var(--brand); transform: translateY(-2px); }
.kl-pagina .mg-canale > * { margin: 0; }
.mg-icona.wp-block-social-links { position: relative; z-index: 1; margin: 0; padding: 0; gap: 0; font-size: 26px; }
.mg-icona .wp-social-link { margin: 0; }
.mg-icona .wp-social-link a { padding: 10px; }
.mg-canale-t a { display: grid; gap: 8px; color: var(--nero); text-decoration: none; font-family: var(--serif); font-weight: 700; font-size: 20px; line-height: 1.25; }
.mg-canale-t a::after { content: ""; position: absolute; inset: 0; border-radius: 12px; }
.mg-canale-t a:hover, .mg-canale-t a:focus-visible { color: var(--nero); }
.mg-canale-t a:focus-visible { outline: none; }
.mg-canale:focus-within { outline: 2px solid var(--brand); outline-offset: 2px; }
.mg-canale-t span { color: var(--brand-testo); }
.mg-canale-t strong { font-family: var(--flex); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--brand-testo); }
/* archivio */
.kl-pagina .mg-titolo { font-family: var(--serif); font-weight: 700; font-size: 32px; line-height: 1.15; color: var(--nero); }
.kl-pagina .sv-largo > .mg-titolo + .mg-archivio { margin-top: 32px; }
.mg-archivio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 64px 40px; }
.mg-num { display: grid; gap: 12px; align-content: start; min-width: 0; }
.mg-num .mg-cop { margin-bottom: 6px; }
.mg-num .mg-cop img { box-shadow: 0 8px 20px rgba(0,0,0,.14); transition: transform .3s, box-shadow .3s; }
.mg-num:hover .mg-cop img { transform: translateY(-4px) rotate(-1deg); box-shadow: 0 14px 28px rgba(0,0,0,.2); }
.kl-pagina .mg-num h3 { font-family: var(--serif); font-weight: 700; font-size: 22px; line-height: 1.25; color: var(--nero); }
.mg-d { font-family: var(--serif); font-size: 16px; line-height: 1.55; color: var(--testo-2); }
.mg-link { display: flex; flex-wrap: wrap; gap: 6px 18px; font-family: var(--sans); font-size: 13px; font-weight: 700; }
.mg-link a { color: var(--nero); text-decoration: none; border-bottom: 2px solid var(--arancio); padding-bottom: 1px; }
.mg-link a:hover { color: var(--arancio); }

@media (max-width: 960px) {
	.sv-corpo { grid-template-columns: minmax(0, 1fr); gap: 56px; }
	.sv-side { position: static; max-width: 520px; }
	.mg-hero { padding: 40px; gap: 28px; }
	.kl-pagina .mg-hero h2 { font-size: 36px; }
	.mg-digitale { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.mg-ultimo { grid-template-columns: 220px minmax(0, 1fr); gap: 40px; padding: 44px 40px; }
}
@media (max-width: 800px) {
	.sv-apertura { padding: 28px 0 0; margin: 0 0 44px !important; }
	.sv-lead, .sv-lead p { font-size: 16px; }
	.sv-corpo { padding: 0 0 64px; }
	.sv-testo { font-size: 17px; }
	.kl-pagina .sv-intro { font-size: 18px; }
	.sv-testo h2 { font-size: 24px; margin-top: 2.2em; padding-top: 24px; }
	.sv-passi li { padding-left: 52px; }
	.sv-passi li::before { font-size: 28px; }
	.sv-numeri { grid-template-columns: minmax(0, 1fr); }
	.sv-numeri p + p { padding-left: 0; border-left: 0; border-top: 1px solid #e6e6e6; }
	.sv-form .sv-riga { grid-template-columns: minmax(0, 1fr); }
	.sv-testo .sv-form { padding: 28px 22px; }
	.sv-nota, .sv-cta { padding: 24px 22px; }
	.sv-form .sv-nota-campi { margin-left: 0; }
	.sv-largo { padding: 0; }
	.sv-largo { padding: 0 0 64px; }
	.kl-pagina .sv-largo > * + * { margin-top: 56px; }
	.mg-ultimo { grid-template-columns: minmax(0, 1fr); gap: 32px; padding: 32px 22px 34px; }
	.mg-ultimo .mg-cop { width: 62%; justify-self: center; }
	.kl-pagina .mg-txt h2 { font-size: 40px; }
	.mg-archivio { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 16px; }
	.mg-hero { grid-template-columns: minmax(0, 1fr); min-height: 0; padding: 32px 22px 28px; background-image: linear-gradient(180deg, rgba(12,10,10,.82), rgba(12,10,10,.55)), url("https://kuriu-wordpress-media-bucket.s3.eu-west-1.amazonaws.com/wp-content/magazine/2025/01/24091337/76c5d61bb5ede77b06d34f8481f8c4ea.png"); }
	.kl-pagina .mg-hero h2 { font-size: 30px; }
	.mg-hero-txt > p { font-size: 16px; }
	.kl-pagina .mg-hero-img { justify-self: center; max-width: 340px; }
	.kl-pagina .mg-btn .wp-block-button__link { min-height: 48px; padding: 12px 24px; font-size: 16px; }
	.mg-digitale { padding: 28px 22px; }
	.kl-pagina .mg-digitale h2 { font-size: 26px; }
	.mg-canali { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .mg-num .mg-cop img { transition: none; } .mg-num:hover .mg-cop img { transform: none; } }

/* Fonte preferita di Google (fine articolo) --------------------------------------- */
.kl-gfonte { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin: 32px 0 8px; padding: 22px 24px; background: var(--tinta); border-radius: 12px; }
.kl-gfonte-txt { display: grid; gap: 4px; flex: 1 1 320px; min-width: 0; }
.kl-gfonte-txt > p { margin: 0; }
.kl-gfonte-t { font-family: var(--serif); font-weight: 700; font-size: 20px; line-height: 1.25; color: var(--nero); text-wrap: balance; }
.kl-gfonte-s { font-family: var(--serif); font-weight: 600; font-size: 15px; line-height: 1.45; color: var(--testo-2); }
.kl-gfonte-btn { box-sizing: border-box; max-width: 100%; display: inline-flex; align-items: center; gap: 8px; flex: none; min-height: 44px; padding: 0 20px; border-radius: 32px; background: var(--nero); color: #fff; font: 700 14px var(--sans); text-decoration: none; transition: background .2s; }
.kl-gfonte-btn svg { color: #ffb07f; }
.kl-gfonte-btn:hover { background: var(--arancio-testo, #b94b0d); color: #fff; }
.kl-gfonte-btn:hover svg { color: #fff; }
@media (max-width: 800px) {
	.kl-gfonte { padding: 20px; }
	.kl-gfonte-btn { width: 100%; justify-content: center; }
}

/* Accessibilità: contrasto dei testi piccoli (WCAG 2.2 AA, 4.5:1) -------------- */
/* L'arancio del marchio (#e75d10) resta per titoli grandi, logo, fondi e dettagli; per i testi
   sotto i 18px e per i bottoni con testo bianco si usa la stessa tinta un po' più scura. */
:root { --arancio-testo: #b94b0d; }
.kl-k, .kl-tac-c a, .sv-testo a:not(.wp-block-button__link) { color: var(--arancio-testo); }
.kl-badge a, .kl-badge-s, .kl-indice a, .kl-btn-or .wp-block-button__link, .kl-nl-row button { background-color: var(--arancio-testo); }
.kl-badge a.b-viaggi { background-color: #027979; }
.kl-tutti a span { color: inherit; }
.kl-pagi span.page-numbers.current { background: var(--nero); color: #fff; }
/* etichette chiare su fondo scuro: già sopra 4.5:1 */
.kl-nl .kl-k, .kl-scuro .kl-k { color: #ffb07f; }

/* Titoli: stessa grafica con il livello giusto (h2) per una gerarchia senza salti */
.kl-pagina .kl-art-side .kl-side-g h2 { margin: 0; font-family: var(--serif); font-weight: 600; font-size: 20px; line-height: 1.15; color: var(--nero); }
