/*
 * Pagina interna di Promontorio — page.php e inc/pagina.php.
 * Portata da proposte/proposta-1-pagina-a.html. Colori solo dai token --gg-* di style.css.
 * I selettori hanno due classi: le regole del kit di Elementor (.elementor-kit-N h1, a…)
 * ne hanno una più il tag, e a parità vincerebbe l'ordine di caricamento.
 */

.gg-pagina {
	background: var(--gg-paper);
	color: var(--gg-text);
	font-family: var(--gg-font-text);
}

/* ---- testata: fotografia, oppure la tinta della sezione ---- */
.gg-pagina .gg-pt {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: #16202A;
	min-height: clamp(260px, 34vh, 340px);
	display: grid;
	align-items: end;
}
.gg-pagina .gg-pt-foto {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	z-index: 0;
}
.gg-pagina .gg-pt-velo {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to top, rgba(14, 22, 28, .92) 0%, rgba(14, 22, 28, .7) 34%,
		rgba(14, 22, 28, .2) 72%, rgba(14, 22, 28, 0) 100%);
}
.gg-pagina .gg-pt-luogo {
	position: absolute;
	right: 16px;
	top: 16px;
	z-index: 3;
	font-size: 10.5px;
	letter-spacing: .08em;
	text-transform: uppercase;
	background: rgba(14, 22, 28, .55);
	color: #fff;
	padding: 4px 9px;
}
/* senza foto: la tinta della sezione, scelta nel menu (gal_gargano_tinta()).
   Pallida sotto il titolo, piena verso destra; il titolo nel tono più scuro */
.gg-pagina .gg-pt-mare {
	--gg-pt-pale: var(--gg-sea-pale);
	--gg-pt-full: var(--gg-sea);
	--gg-pt-ink: var(--gg-sea-deep);
}
.gg-pagina .gg-pt-terra {
	--gg-pt-pale: var(--gg-earth-pale);
	--gg-pt-full: var(--gg-earth);
	--gg-pt-ink: var(--gg-earth-deep);
}
.gg-pagina .gg-pt-sole {
	--gg-pt-pale: var(--gg-ochre-pale);
	--gg-pt-full: var(--gg-ochre);
	--gg-pt-ink: var(--gg-ochre-deep);
}
.gg-pagina .gg-pt-natura {
	--gg-pt-pale: var(--gg-green-pale);
	--gg-pt-full: var(--gg-green);
	--gg-pt-ink: var(--gg-green-deep);
}
.gg-pagina .gg-pt-oliva {
	--gg-pt-pale: var(--gg-olive-pale);
	--gg-pt-full: var(--gg-olive);
	--gg-pt-ink: var(--gg-olive-deep);
}
.gg-pagina .gg-pt-cielo {
	--gg-pt-pale: var(--gg-sky-pale);
	--gg-pt-full: var(--gg-sky-dawn);
	--gg-pt-ink: var(--gg-sky-deep);
}
.gg-pagina .gg-pt-tinta {
	background: linear-gradient(100deg, var(--gg-pt-pale) 0%, var(--gg-pt-pale) 62%, color-mix(in srgb, var(--gg-pt-full) 55%, #fff) 100%);
	color: var(--gg-pt-ink);
}
/* sul telefono il titolo arriva fino al bordo: il pieno resta sull'ultimo quarto,
   dove al massimo finisce la coda di una riga (scuro sul pieno: 3:1, solo testo grande) */
@media (max-width: 680px) {
	.gg-pagina .gg-pt-tinta {
		background: linear-gradient(100deg, var(--gg-pt-pale) 0%, var(--gg-pt-pale) 75%, color-mix(in srgb, var(--gg-pt-full) 55%, #fff) 100%);
	}
}
/* la riga dei quattro colori del marchio chiude la testata */
.gg-pagina .gg-pt-tinta::after {
	content: "";
	position: absolute;
	z-index: 2;
	left: 0;
	right: 0;
	bottom: 0;
	height: 6px;
	background: linear-gradient(90deg, var(--gg-earth) 0 25%, var(--gg-sun) 25% 50%,
		var(--gg-sand) 50% 75%, var(--gg-sea) 75%);
}
.gg-pagina .gg-pt-filigrana {
	position: absolute;
	z-index: 1;
	left: -.04em;
	bottom: -.22em;
	font-family: var(--gg-font-display);
	font-weight: 700;
	font-size: clamp(120px, 19vw, 250px);
	letter-spacing: -.05em;
	line-height: 1;
	text-transform: uppercase;
	color: var(--gg-pt-ink); /* c'è solo senza foto, cioè sulla tinta */
	opacity: .05;
	white-space: nowrap;
	pointer-events: none;
}
.gg-pagina .gg-pt .gg-wrap {
	position: relative;
	z-index: 2;
	width: 100%;
	padding-block: 0 38px;
}
.gg-pagina .gg-pt-titolo {
	margin: 0;
	color: #fff;
	font-family: var(--gg-font-display);
	font-size: clamp(38px, 5.4vw, 64px);
	font-weight: 200;
	letter-spacing: -.032em;
	line-height: 1.04;
	text-wrap: balance;
}

/* ---- fascia sabbia con le briciole ---- */
.gg-pagina .gg-pt-fascia {
	background: var(--gg-sand-light);
	border-bottom: 1px solid var(--gg-line);
}
.gg-pagina .gg-briciole ol {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 15px 0;
	font-family: var(--gg-font-display);
	font-size: 14.5px;
	letter-spacing: .05em;
	color: var(--gg-earth-deep); /* 7,7:1 sulla sabbia; il grigio tenue si fermava a 4,47 */
}
.gg-pagina .gg-briciole li + li::before {
	content: "›";
	margin-right: 8px;
	opacity: .6;
}
.gg-pagina .gg-briciole a {
	color: var(--gg-text);
	text-decoration: none;
	border-bottom: 1px solid var(--gg-sand);
}
.gg-pagina .gg-briciole a:hover {
	color: var(--gg-sea-dark);
	border-bottom-color: var(--gg-sea-dark);
}

/* ---- foglio: rimandi a sinistra, testo largo ---- */
.gg-pagina .gg-foglio {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	gap: clamp(32px, 4.5vw, 64px);
	padding-block: clamp(40px, 5vw, 64px) clamp(56px, 7vw, 90px);
}
/* colonna che segue lo scorrimento. Se è più alta dello schermo (i quindici comuni)
   il top diventa negativo: scorre finché si vede il fondo, box contatti compreso,
   e solo allora si ferma. --gg-alto-rimandi lo misura assets/js/pagina.js */
.gg-pagina .gg-rimandi {
	position: sticky;
	top: min(24px, calc(100vh - var(--gg-alto-rimandi, 0px) - 24px));
	align-self: start;
	display: grid;
	gap: 16px;
}
.gg-pagina .gg-box {
	background: var(--gg-white);
	border-top: 3px solid var(--gg-sun);
	padding: 18px 20px 10px;
	border: 1px solid var(--gg-line);
}
.gg-pagina .gg-indice {
	border-top-color: var(--gg-sand);
}
.gg-pagina .gg-box-titolo {
	margin: 0 0 6px;
	font-family: var(--gg-font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .16em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-box ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.gg-pagina .gg-box li + li {
	border-top: 1px solid var(--gg-line);
}
.gg-pagina .gg-box a {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 9px 0;
	font-family: var(--gg-font-display);
	font-size: 16.5px;
	line-height: 1.3;
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-box a::after {
	content: "›";
	color: var(--gg-earth);
}
.gg-pagina .gg-box a:hover {
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-box [aria-current="page"] {
	font-weight: 600;
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-indice a {
	font-size: 15.5px;
	color: var(--gg-text-soft);
}

/* ricerca: area widget «Archivio notizie», vestita come un box. Widget classico o blocco Cerca */
.gg-pagina .gg-archivio-widget .gg-widget {
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
	padding: 18px 20px 20px;
}
.gg-pagina .gg-archivio-widget :is(.gg-widget-titolo, .wp-block-search__label) {
	display: block;
	margin: 0 0 10px;
	font-family: var(--gg-font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .16em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-archivio-widget :is(.search-form, .wp-block-search__inside-wrapper) {
	display: flex;
	gap: 0;
	margin: 0;
}
.gg-pagina .gg-archivio-widget .search-form label {
	flex: 1;
	min-width: 0;
}
.gg-pagina .gg-archivio-widget input[type="search"] {
	width: 100%;
	min-width: 0;
	height: 44px;
	margin: 0;
	padding: 0 12px;
	border: 1px solid var(--gg-text-soft); /* 1.4.11: il bordo del campo deve staccare 3:1 */
	border-radius: 0;
	background: var(--gg-white);
	font: inherit;
	font-size: 16px; /* sotto i 16 px iOS ingrandisce la pagina al tocco */
	color: var(--gg-text);
}
.gg-pagina .gg-archivio-widget :is(.search-submit, .wp-block-search__button) {
	flex: none;
	height: 44px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--gg-sea-dark);
	border-radius: 0;
	background: var(--gg-sea-dark);
	font-family: var(--gg-font-display);
	font-size: 15px;
	font-weight: 600;
	color: var(--gg-white);
	cursor: pointer;
}
.gg-pagina .gg-archivio-widget :is(.search-submit, .wp-block-search__button):hover {
	background: var(--gg-text);
	border-color: var(--gg-text);
}
.gg-pagina .gg-archivio-widget :is(input, button):focus-visible {
	outline: 3px solid var(--gg-sun);
	outline-offset: 2px;
}
/* telefono: la colonna va in fondo (#18), ma la ricerca serve prima delle notizie.
   La colonna si scioglie nella griglia del foglio e solo la ricerca sale in cima;
   il resto torna in fondo nell'ordine del codice */
@media (max-width: 860px) {
	.gg-pagina.gg-archivio .gg-foglio:has(.gg-archivio-widget) {
		row-gap: 16px;
	}
	.gg-pagina.gg-archivio .gg-rimandi:has(.gg-archivio-widget) {
		display: contents;
	}
	.gg-pagina.gg-archivio .gg-rimandi:has(.gg-archivio-widget) > * {
		order: 2;
	}
	.gg-pagina.gg-archivio .gg-rimandi > .gg-archivio-widget {
		order: 0;
	}
	.gg-pagina.gg-archivio .gg-foglio:has(.gg-archivio-widget) > .gg-corpo {
		order: 1;
		margin-block: 16px;
	}
}

/* contatti: area widget «Pagine interne — box contatti» */
.gg-pagina .gg-aiuto {
	background: var(--gg-sea-pale);
	color: var(--gg-text);
	padding: 20px;
	font-size: 16px;
}
/* titolo del widget classico o blocco Titolo dei widget a blocchi */
.gg-pagina .gg-aiuto :is(.gg-widget-titolo, h2, h3) {
	margin: 0 0 8px;
	font-family: var(--gg-font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gg-sea-deep);
}
.gg-pagina .gg-aiuto p {
	margin: 0 0 10px;
}
.gg-pagina .gg-aiuto a {
	color: var(--gg-sea-deep);
	text-decoration: none;
	font-weight: 600;
}
.gg-pagina .gg-aiuto a:hover {
	color: var(--gg-text);
}
/* la mail su una riga: il widget ha un <wbr> dopo la chiocciola e in 260 px
   andava a capo a metà indirizzo. Il corpo segue la larghezza del box (32
   caratteri ≈ 19 volte il corpo), al massimo 15 px */
.gg-pagina .gg-aiuto {
	container-type: inline-size;
}
.gg-pagina .gg-aiuto a[href^="mailto:"] {
	white-space: nowrap;
	font-size: min(15px, 5.2cqi);
}

/* ---- in breve: dal riassunto della pagina, una riga per punto ---- */
.gg-pagina .gg-breve {
	background: var(--gg-sand-light);
	padding: 22px 26px;
	margin: 0 0 2.4em;
}
.gg-pagina .gg-breve .gg-box-titolo {
	margin-bottom: 10px;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-breve ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
	font-size: 15.5px;
}
.gg-pagina .gg-breve li {
	display: grid;
	grid-template-columns: 22px 1fr;
	gap: 10px;
}
.gg-pagina .gg-breve svg {
	width: 18px;
	height: 18px;
	margin-top: 3px;
	color: var(--gg-earth-dark);
}

/* ---- il testo ---- */
.gg-pagina .gg-testo {
	font-size: 18.5px;
	line-height: 1.7;
	/* un indirizzo scritto per esteso (https://drive.google.com/…, https://it.wikipedia.org/…) non ha spazi:
	   allargava la colonna e la pagina scorreva in orizzontale sul telefono (4 sentieri e 5 luoghi, 21/10).
	   «anywhere» spezza solo una parola che da sola non sta nella riga */
	overflow-wrap: anywhere;
}
.gg-pagina .gg-testo p {
	margin: 0 0 1.05em;
}
.gg-pagina .gg-testo h2,
.gg-pagina .gg-testo h3 {
	font-family: var(--gg-font-display);
	color: var(--gg-text);
	letter-spacing: -.02em;
	line-height: 1.2;
	text-wrap: balance;
	scroll-margin-top: 24px;
}
.gg-pagina .gg-testo h2 {
	font-size: clamp(26px, 2.6vw, 32px);
	font-weight: 600;
	margin: 2.1em 0 .75em;
}
.gg-pagina .gg-testo h3 {
	font-size: 21px;
	font-weight: 600;
	margin: 1.8em 0 .6em;
}
.gg-pagina .gg-testo > :first-child,
.gg-pagina .gg-testo h2:first-child {
	margin-top: 0;
}
.gg-pagina .gg-testo ul {
	list-style: none;
	margin: 0 0 1.25em;
	padding: 0;
}
.gg-pagina .gg-testo ul li {
	position: relative;
	padding-left: 26px;
	margin-bottom: .55em;
}
.gg-pagina .gg-testo ul li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: .62em;
	width: 8px;
	height: 8px;
	background: var(--gg-sand);
}
.gg-pagina .gg-testo li ul {
	margin: .6em 0 .2em;
}
.gg-pagina .gg-testo li li::before {
	background: none;
	border: 1.5px solid var(--gg-earth);
	border-radius: 50%;
	width: 7px;
	height: 7px;
}
.gg-pagina .gg-testo ol {
	margin: 0 0 1.25em;
	padding-left: 1.4em;
}
.gg-pagina .gg-testo a {
	color: var(--gg-sea-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}
/* il blocco Separatore: una riga sottile del tema, non quella grigia del browser */
.gg-pagina .gg-testo hr {
	border: 0;
	border-top: 1px solid var(--gg-line);
	margin: 2.4em 0;
	opacity: 1;
}
.gg-pagina .gg-testo table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 1.4em;
	font-size: 15px;
}
.gg-pagina .gg-testo th,
.gg-pagina .gg-testo td {
	border-bottom: 1px solid var(--gg-line);
	padding: 10px 12px 10px 0;
	text-align: left;
	vertical-align: top;
}

/* ---- pagina successiva ---- */
.gg-pagina .gg-seguente {
	margin-top: 56px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	border-top: 3px solid var(--gg-text);
	padding-top: 18px;
	font-family: var(--gg-font-display);
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-seguente small {
	display: block;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-seguente b {
	font-size: 22px;
	font-weight: 500;
}
.gg-pagina .gg-seguente svg {
	width: 30px;
	height: 30px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
}
.gg-pagina .gg-seguente:hover b {
	color: var(--gg-sea-dark);
}

@media (prefers-reduced-motion: no-preference) {
	html:has(.gg-pagina) {
		scroll-behavior: smooth;
	}
}

/* fisarmonica dei box (sotto 860 px, pagina.js): se un tablet passa a orizzontale e lo
   script non ha ancora tolto il pulsante, gli elenchi restano comunque visibili */
@media (min-width: 861px) {
	.gg-pagina .gg-box ul[hidden] { display: block; }
}

@media (max-width: 860px) {
	.gg-pagina .gg-foglio {
		grid-template-columns: 1fr;
	}
	/* #18: sul telefono prima il testo, la colonna in fondo (come già nella scheda bando).
	   Nel codice resta prima: per chi legge con la sintesi vocale è navigazione, come il menu */
	.gg-pagina .gg-rimandi {
		position: static;
		order: 2;
	}
	/* box a fisarmonica: il pulsante lo crea pagina.js, prende tutta la riga del titolo */
	.gg-pagina .gg-box-titolo:has(.gg-box-apri) {
		margin: -18px -20px -10px;
	}
	.gg-pagina .gg-box:has([aria-expanded="true"]) .gg-box-titolo {
		margin-bottom: 4px;
	}
	.gg-pagina .gg-box-apri {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		width: 100%;
		min-height: 48px;
		padding: 14px 20px;
		background: none;
		border: 0;
		font: inherit;
		letter-spacing: inherit;
		text-transform: inherit;
		color: inherit;
		text-align: left;
		cursor: pointer;
	}
	.gg-pagina .gg-box-apri::after {
		content: "";
		flex: none;
		width: 8px;
		height: 8px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: translateY(-2px) rotate(45deg);
	}
	.gg-pagina .gg-box-apri[aria-expanded="true"]::after {
		transform: translateY(2px) rotate(-135deg);
	}
	.gg-pagina .gg-box-apri:focus-visible {
		outline: 3px solid var(--gg-sea-dark);
		outline-offset: -3px;
	}
}

/* ============================================================
   ARCHIVIO — archive.php: categorie (notizie, Bandi e Avvisi),
   tag, date. Stessa cornice della pagina, al posto del testo
   l'elenco delle schede.
   ============================================================ */

/* numero di articoli accanto alla categoria, al posto della freccia */
.gg-pagina .gg-box .gg-conta {
	margin-left: auto;
	font-family: var(--gg-font-text);
	font-size: 12.5px;
	font-weight: 400;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-box a:has(.gg-conta)::after {
	content: none;
}

.gg-pagina .gg-elenco {
	display: grid;
	gap: 14px;
}
.gg-pagina .gg-scheda {
	position: relative;
	display: grid;
	gap: 8px;
	background: var(--gg-white);
	border-top: 3px solid var(--gg-sand);
	padding: 20px 24px 22px;
	border: 1px solid var(--gg-line);
}
.gg-pagina .gg-scheda-aperto {
	border-top-color: var(--gg-sun);
}
.gg-pagina .gg-scheda-riga {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	align-items: center;
	margin: 0;
	font-size: 14.5px;
	color: var(--gg-text-soft);
}
/* lo stato è scritto a parole, non solo col colore (WCAG 1.4.1) */
.gg-pagina .gg-stato {
	font-family: var(--gg-font-display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .11em;
	text-transform: uppercase;
	padding: 4px 9px;
}
.gg-pagina .gg-stato-aperto {
	background: var(--gg-sun);
	color: var(--gg-text);
}
.gg-pagina .gg-stato-chiuso {
	background: #EDE8DC;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-scheda-titolo {
	margin: 0;
	font-family: var(--gg-font-display);
	font-size: clamp(20px, 1.9vw, 23px);
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: -.01em;
}
.gg-pagina .gg-scheda-titolo a {
	color: var(--gg-text);
	text-decoration: none;
}
/* tutta la scheda è cliccabile, il link resta uno solo */
.gg-pagina .gg-scheda-titolo a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.gg-pagina .gg-scheda:hover .gg-scheda-titolo a {
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-scheda:focus-within {
	outline: 3px solid var(--gg-sea-dark);
	outline-offset: 2px;
}
.gg-pagina .gg-scheda-titolo a:focus-visible {
	outline: none;
}
.gg-pagina .gg-scheda-testo {
	margin: 0;
	font-size: 17px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-scheda-vai {
	font-family: var(--gg-font-display);
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--gg-sea-dark);
}
/* la stessa scheda come modello «Scheda» del Loop Grid, dentro una pagina: le classi
   stanno sugli involucri dei widget, e le regole del testo su h3, p e a pesano di più */
.gg-pagina .gg-scheda:has(.gg-stato-aperto) {
	border-top-color: var(--gg-sun);
}
.gg-pagina .gg-scheda .elementor-widget {
	position: static; /* il link del titolo copre tutta la scheda, non solo il widget */
}
.gg-pagina .gg-testo .gg-scheda p,
.gg-pagina .gg-testo .gg-scheda ul {
	margin: 0;
}
/* la data è un widget Informazioni articolo, cioè un elenco: niente quadratino del testo */
.gg-pagina .gg-testo .gg-scheda ul li {
	padding-left: 0;
	margin: 0;
}
.gg-pagina .gg-testo .gg-scheda ul li::before {
	content: none;
}
.gg-pagina .gg-testo .gg-scheda-titolo .elementor-heading-title {
	margin: 0;
	font-family: var(--gg-font-display);
	font-size: clamp(20px, 1.9vw, 23px);
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: -.01em;
}
.gg-pagina .gg-testo .gg-scheda-titolo a {
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-scheda-riga .elementor-icon-list-text,
.gg-pagina .gg-scheda-testo .elementor-widget-container {
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	line-height: 1.6;
}
/* i produttori (modello «Produttore» del Loop Grid, pagina Produttori del Gargano):
   una riga con la foto quadrata, i tipi di prodotto, il nome e due righe di presentazione.
   Tutta la riga è cliccabile, il link resta quello del nome */
.gg-pagina .gg-produttore {
	position: relative;
	display: grid;
	grid-template-columns: 112px 1fr;
	gap: 18px;
	padding: 16px 0;
	border-bottom: 1px solid var(--gg-line);
}
.gg-pagina .gg-produttore .elementor-widget {
	position: static;
}
.gg-pagina .gg-produttore-foto img {
	display: block;
	width: 112px;
	height: 112px;
	object-fit: cover;
	background: var(--gg-sand-light);
}
.gg-pagina .gg-produttore-corpo {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.gg-pagina .gg-testo .gg-produttore p {
	margin: 0;
}
.gg-pagina .gg-produttore-tipi {
	font-size: 12.5px;
	color: var(--gg-earth-dark);
}
/* nel modello «Sentiero» al posto dei tipi c'è la data, un widget Informazioni articolo:
   è un elenco, quindi niente quadratino del testo */
.gg-pagina .gg-testo .gg-produttore ul {
	margin: 0;
}
.gg-pagina .gg-testo .gg-produttore ul li {
	padding-left: 0;
	margin: 0;
}
.gg-pagina .gg-testo .gg-produttore ul li::before {
	content: none;
}
.gg-pagina .gg-produttore-tipi .elementor-icon-list-text {
	font-size: 12.5px;
	color: var(--gg-earth-dark);
}
/* i nomi negli articoli sono già in maiuscolo: maiuscoletto spaziato, non un titolo urlato */
.gg-pagina .gg-testo .gg-produttore-nome .elementor-heading-title {
	margin: 0;
	font-family: var(--gg-font-display);
	font-size: 14.5px;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 1.3;
	text-transform: uppercase;
}
.gg-pagina .gg-testo .gg-produttore-nome a {
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-produttore-nome a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.gg-pagina .gg-produttore:hover .gg-produttore-nome a {
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-produttore:focus-within {
	outline: 3px solid var(--gg-sea-dark);
	outline-offset: 2px;
}
.gg-pagina .gg-produttore-nome a:focus-visible {
	outline: none;
}
.gg-pagina .gg-produttore-testo .elementor-widget-container {
	font-size: 14px;
	line-height: 1.5;
	color: var(--gg-text-soft);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.gg-pagina .gg-testo .gg-produttore-vai .elementor-heading-title {
	margin: 4px 0 0;
	font-family: var(--gg-font-display);
	font-size: 13px;
	font-weight: 600;
	color: var(--gg-sea-dark);
}
/* il Loop Grid dei produttori: righe una sotto l'altra, la prima con il filo sopra */
.gg-pagina .gg-produttori .elementor-loop-container {
	gap: 0;
	border-top: 1px solid var(--gg-line);
	margin-bottom: 8px;
}
@media (max-width: 480px) {
	.gg-pagina .gg-produttore {
		grid-template-columns: 80px 1fr;
		gap: 14px;
	}
	.gg-pagina .gg-produttore-foto img {
		width: 80px;
		height: 80px;
	}
}

/* le guide da scaricare (pagina Guide e informazioni turistiche): una griglia di copertine,
   tutte nello stesso riquadro anche se orizzontali. Ogni scheda è fatta di widget Elementor
   (Immagine, Titolo con il link al PDF, Testo); tutta la scheda è cliccabile */
.gg-pagina .gg-guide {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 12px;
}
.gg-pagina .gg-guida {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 0 0 16px;
	background: var(--gg-white);
	border-top: 3px solid var(--gg-sand);
}
.gg-pagina .gg-guida .elementor-widget {
	position: static;
}
.gg-pagina .gg-guida:hover {
	box-shadow: 0 6px 18px rgba(46, 44, 40, .12);
}
.gg-pagina .gg-guida:focus-within {
	outline: 3px solid var(--gg-sea-dark);
	outline-offset: 2px;
}
.gg-pagina .gg-guida > .elementor-widget:not(.gg-guida-cop) {
	padding-inline: 16px;
}
.gg-pagina .gg-guida-cop .elementor-widget-container {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 5;
	padding: 16px;
	margin-bottom: 8px;
	background: var(--gg-sand-light);
}
.gg-pagina .gg-guida-cop img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
}
.gg-pagina .gg-testo .gg-guida-lingua {
	position: absolute;
	top: 12px;
	right: 12px;
	padding: 0 !important;
}
.gg-pagina .gg-testo .gg-guida-lingua .elementor-heading-title {
	margin: 0;
	padding: 2px 7px;
	background: var(--gg-white);
	font-family: var(--gg-font-display);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-testo .gg-guida-titolo .elementor-heading-title {
	margin: 0;
	font-family: var(--gg-font-display);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
}
.gg-pagina .gg-testo .gg-guida-titolo a {
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-guida-titolo a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.gg-pagina .gg-guida:hover .gg-guida-titolo a {
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-guida-titolo a:focus-visible {
	outline: none;
}
.gg-pagina .gg-testo .gg-guida-ed p {
	margin: 0;
	font-size: 13px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-guida-vai .elementor-heading-title {
	margin: 6px 0 0;
	font-family: var(--gg-font-display);
	font-size: 13px;
	font-weight: 600;
	color: var(--gg-sea-dark);
}
@media (max-width: 700px) {
	.gg-pagina .gg-guide {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* le tessere delle azioni (modello «Azione» del Loop Grid, pagina Azioni del PDA):
   «Azione 1» in grande e leggero, sotto il nome; tutta la tessera è cliccabile */
.gg-pagina .gg-tessera {
	position: relative;
	gap: 10px;
	height: 100%;
	min-height: 170px;
	background: var(--gg-white);
	border-top: 3px solid var(--gg-sand);
	padding: 20px 18px 22px;
}
.gg-pagina .gg-tessera:hover {
	border-top-color: var(--gg-sea-dark);
}
.gg-pagina .gg-tessera:focus-within {
	outline: 3px solid var(--gg-sea-dark);
	outline-offset: 2px;
}
.gg-pagina .gg-tessera .elementor-widget {
	position: static;
}
.gg-pagina .gg-testo .gg-tessera-n .elementor-heading-title {
	margin: 0;
	font-family: var(--gg-font-display);
	font-size: 26px;
	font-weight: 200;
	line-height: 1.1;
	letter-spacing: -.02em;
}
.gg-pagina .gg-testo .gg-tessera-n a {
	color: var(--gg-earth-deep);
	text-decoration: none;
}
.gg-pagina .gg-tessera-n a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.gg-pagina .gg-tessera-n a:focus-visible {
	outline: none;
}
.gg-pagina .gg-tessera-nome .elementor-widget-container {
	font-family: var(--gg-font-display);
	font-size: 15.5px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--gg-text);
}
.gg-pagina .gg-tessera:hover .gg-tessera-nome .elementor-widget-container {
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-testo .gg-tessera p {
	margin: 0;
}
.gg-pagina .gg-descrizione {
	margin-bottom: 28px;
}
.gg-pagina .gg-vuoto {
	margin: 0;
	font-size: 16.5px;
}

/* numeri di pagina: the_posts_pagination() */
.gg-pagina .pagination {
	margin-top: 34px;
}
.gg-pagina .pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	font-family: var(--gg-font-display);
	font-size: 14px;
}
.gg-pagina .pagination .page-numbers {
	min-width: 40px;
	height: 40px;
	display: grid;
	place-items: center;
	padding-inline: 10px;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .pagination .page-numbers.current {
	background: var(--gg-text);
	border-color: var(--gg-text);
	color: #fff;
}
.gg-pagina .pagination a.page-numbers:hover {
	border-color: var(--gg-sea-dark);
	color: var(--gg-sea-dark);
}
.gg-pagina .pagination .dots {
	background: none;
	border: 0;
}

/* pagine degli archivi degli articoli (#29, proposta C): frecce, conteggio e anni.
   Bandi e progetti tengono i numeri qui sopra */
.gg-pagina .gg-paginazione {
	display: grid;
	gap: 22px;
	margin-top: 44px;
	padding-top: 26px;
	border-top: 2px solid var(--gg-text);
	font-family: var(--gg-font-display);
}
.gg-pagina .gg-paginazione a {
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-paginazione a:focus-visible {
	outline: 3px solid var(--gg-sea-dark);
	outline-offset: 2px;
}
.gg-pagina .gg-pg-frecce {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.gg-pagina .gg-pg-freccia {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 46px;
	padding: 0 18px;
	border: 1px solid var(--gg-text);
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.gg-pagina a.gg-pg-freccia:hover {
	background: var(--gg-text);
	color: var(--gg-white);
}
.gg-pagina .gg-pg-spenta {
	opacity: .35;
}
.gg-pagina .gg-pg-conta {
	margin: 0;
	font-size: 13px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-pg-anni {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.gg-pagina .gg-pg-anni b {
	margin-right: 6px;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-pg-anni a {
	padding: 8px 13px;
	border: 1px solid var(--gg-line);
	font-size: 14.5px;
	font-weight: 600;
}
.gg-pagina .gg-pg-anni a:hover {
	border-color: var(--gg-sea-dark);
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-pg-anni a[aria-current] {
	background: var(--gg-text);
	border-color: var(--gg-text);
	color: var(--gg-white);
}
@media (max-width: 560px) {
	/* frecce agli estremi, il conteggio sotto */
	.gg-pagina .gg-pg-conta { order: 3; flex-basis: 100%; text-align: center; }
	.gg-pagina .gg-pg-freccia { padding: 0 14px; }
}

/* ============================================================
   ARTICOLO — single.php: bandi e notizie.
   ============================================================ */

/* pulsanti dei blocchi negli articoli vecchi: gli stili dei blocchi (riaccesi in
   Disable Gutenberg per gallerie e colonne) li fanno grigio scuro e .gg-testo a li
   colorava Mare: testo illeggibile. Qui prendono il pulsante del tema */
.gg-pagina .gg-testo .wp-block-button__link {
	display: inline-block;
	padding: 13px 24px;
	background: var(--gg-sea-dark);
	color: var(--gg-white);
	border-radius: 0;
	font-family: var(--gg-font-display);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none;
}
.gg-pagina .gg-testo .wp-block-button__link:hover {
	background: var(--gg-sea-deep);
	color: var(--gg-white);
}
.gg-pagina .gg-testo .wp-block-button__link:focus-visible {
	outline: 3px solid var(--gg-sun);
	outline-offset: 2px;
}

/* immagine in evidenza: al clic si ingrandisce (pagina.js) */
.gg-pagina .gg-zoom {
	display: block;
	cursor: zoom-in;
}
.gg-pagina .gg-zoom:focus-visible {
	outline: 3px solid var(--gg-sea-dark);
	outline-offset: 3px;
}
.gg-lightbox {
	max-width: none;
	max-height: none;
	padding: 0;
	border: 0;
	background: none;
	overflow: visible;
}
.gg-lightbox::backdrop {
	background: rgba(20, 18, 15, .88);
}
.gg-lightbox img {
	display: block;
	max-width: 92vw;
	max-height: 88vh;
	width: auto;
	height: auto;
	object-fit: contain;
}
.gg-lightbox-chiudi {
	position: fixed;
	top: 14px;
	right: 14px;
	width: 48px;
	height: 48px;
	border: 0;
	background: var(--gg-white);
	color: var(--gg-text);
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
}
.gg-lightbox-chiudi:focus-visible,
.gg-lightbox-vai:focus-visible {
	outline: 3px solid var(--gg-sun);
	outline-offset: 2px;
}
/* più immagini: ‹ › ai lati, contatore in basso */
.gg-lightbox-vai {
	position: fixed;
	top: 50%;
	width: 48px;
	height: 64px;
	margin-top: -32px;
	border: 0;
	background: var(--gg-white);
	color: var(--gg-text);
	font-size: 40px;
	line-height: 1;
	cursor: pointer;
}
/* Hello Elementor colora di #c36 i pulsanti in :hover e :focus */
.gg-lightbox :is(.gg-lightbox-chiudi, .gg-lightbox-vai) {
	border-radius: 0;
}
.gg-lightbox :is(.gg-lightbox-chiudi, .gg-lightbox-vai):is(:hover, :focus) {
	background: var(--gg-sun);
	color: var(--gg-text);
}
.gg-lightbox-prima { left: 14px; }
.gg-lightbox-dopo { right: 14px; }
.gg-lightbox-conta {
	position: fixed;
	bottom: 14px;
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
	padding: 4px 12px;
	background: var(--gg-white);
	color: var(--gg-text);
	font-size: 15px;
}
@media (max-width: 767px) {
	.gg-lightbox-vai { top: auto; bottom: 8px; margin-top: 0; height: 48px; }
	.gg-lightbox-conta { bottom: 18px; }
}

/* stato e data sopra il titolo; titoli dei bandi lunghi: corpo più piccolo */
.gg-pagina .gg-pt-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	align-items: center;
	margin: 0 0 14px;
	font-size: 13.5px;
	color: #E4DCCB;
}
.gg-pagina .gg-pt-lungo .gg-pt-titolo {
	font-size: clamp(28px, 3.6vw, 44px);
	font-weight: 300;
	line-height: 1.1;
	max-width: 26ch;
}

/* la locandina: intera, mai tagliata — è quasi sempre una grafica con scritte */
.gg-pagina .gg-locandina {
	margin: 0;
	background: var(--gg-white);
	padding: 8px;
}
.gg-pagina .gg-locandina img {
	display: block;
	width: 100%;
	height: auto;
}
.gg-pagina .gg-altri a {
	font-size: 14px;
	line-height: 1.35;
}

/* le sezioni del testo: il livello lo sceglie gal_gargano_indice(), h2 nelle pagine,
   h4 nei bandi costruiti con Elementor */
.gg-pagina .gg-testo .gg-sezione {
	font-family: var(--gg-font-display);
	font-size: clamp(21px, 2.3vw, 26px);
	font-weight: 600;
	letter-spacing: -.02em;
	line-height: 1.2;
	color: var(--gg-text);
	margin: 1.9em 0 .7em;
	padding-top: .9em;
	border-top: 1px solid var(--gg-line);
	scroll-margin-top: 24px;
}
/* il primo sottotitolo non ha il filo sopra. In un widget Titolo di Elementor l'h2 è
   sempre primo figlio del suo widget: lì conta che sia il primo widget della pagina */
.gg-pagina .gg-testo .gg-sezione:first-child:not(.elementor-heading-title),
.gg-pagina .gg-testo .elementor-widget-heading:first-child .gg-sezione {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}
.gg-pagina .gg-testo h4:not(.gg-sezione) {
	font-family: var(--gg-font-display);
	font-size: 17px;
	font-weight: 600;
	margin: 1.6em 0 .5em;
}

/* quello che arriva dall'editor: paragrafi vuoti, elenchi annidati senza testo */
.gg-pagina .gg-testo p:empty {
	display: none;
}
.gg-pagina .gg-testo li:has(> ul:only-child) {
	padding-left: 0;
}
.gg-pagina .gg-testo li:has(> ul:only-child)::before {
	content: none;
}

/* documenti da scaricare: gal_gargano_documenti() segna con .gg-doc i link a un file che
   occupano da soli una voce d'elenco o un paragrafo; il tipo di file si legge scritto */
.gg-pagina .gg-testo li:has(> .gg-doc) {
	padding-left: 0;
	margin-bottom: 6px;
}
.gg-pagina .gg-testo li:has(> .gg-doc)::before {
	content: none;
}
.gg-pagina .gg-testo .gg-doc {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
	border-left: 3px solid var(--gg-sand);
	padding: 14px 18px;
	font-size: 17px;
	line-height: 1.35;
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-testo .gg-doc:hover {
	border-left-color: var(--gg-sea-dark);
	color: var(--gg-sea-dark);
}
/* un pulsante Elementor nel testo tiene il colore del suo testo: senza questa regola
   `.gg-testo a` lo colorava come lo sfondo e l'etichetta spariva */
.gg-pagina .gg-testo a.elementor-button {
	color: var(--gg-white);
	text-decoration: none;
}
/* il pulsante Elementor che punta a un file prende la stessa riga; la classe ripetuta
   pareggia il peso del CSS che Elementor scrive per ogni widget (lessons.md) */
.gg-pagina .gg-testo .elementor-widget-button .elementor-button.elementor-button:is([href*=".pdf" i], [href*=".doc" i], [href*=".xls" i], [href*=".zip" i]) {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	width: 100%;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
	border-left: 3px solid var(--gg-sand);
	border-radius: 0;
	box-shadow: none;
	padding: 12px 16px;
	font-family: var(--gg-font-text);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: 0;
	text-transform: none;
	text-align: left;
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-testo .elementor-widget-button .elementor-button.elementor-button:is([href*=".pdf" i], [href*=".doc" i], [href*=".xls" i], [href*=".zip" i])::after {
	content: "↓";
	flex: none;
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-testo .elementor-widget-button .elementor-button.elementor-button:is([href*=".pdf" i], [href*=".doc" i], [href*=".xls" i], [href*=".zip" i]):hover {
	border-left-color: var(--gg-sea-dark);
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-testo .gg-doc-tipo {
	flex: none;
	font-family: var(--gg-font-display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	padding: 3px 7px;
	background: var(--gg-sand-light);
	color: var(--gg-earth-deep);
}

.gg-pagina .gg-torna {
	display: inline-block;
	margin-top: 44px;
	font-family: var(--gg-font-display);
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--gg-sea-dark);
	text-decoration: none;
	border-bottom: 2px solid currentColor;
	padding-bottom: 2px;
}

/* notizia: sotto l'immagine in evidenza, il ritorno alla sua categoria */
.gg-pagina .gg-torna-categoria {
	display: block;
	padding: 11px 16px;
	border: 1px solid var(--gg-sea-dark);
	font-family: var(--gg-font-display);
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: .08em;
	line-height: 1.4;
	text-align: center;
	text-transform: uppercase;
	color: var(--gg-sea-dark);
	text-decoration: none;
}
.gg-pagina .gg-torna-categoria:hover {
	background: var(--gg-sea-dark);
	color: var(--gg-white);
}
.gg-pagina .gg-torna-categoria:focus-visible {
	outline: 3px solid var(--gg-sun);
	outline-offset: 2px;
}

/* stato e data in testata, più evidenti della prima versione */
.gg-pagina .gg-pt-meta {
	font-size: 17px;
	gap: 10px 18px;
	margin-bottom: 18px;
}
.gg-pagina .gg-pt-meta .gg-stato {
	font-size: 14px;
	padding: 5px 11px;
}
.gg-pagina .gg-pt-meta b {
	color: #fff;
	font-weight: 600;
}

/* sulla tinta pallida titolo e data passano allo scuro della sezione */
.gg-pagina .gg-pt-tinta .gg-pt-titolo {
	color: var(--gg-pt-ink);
	font-weight: 300;
}
.gg-pagina .gg-pt-tinta .gg-pt-meta {
	color: var(--gg-text);
}
.gg-pagina .gg-pt-tinta .gg-pt-meta b {
	color: var(--gg-pt-ink);
}
/* «Chiuso» ha il fondo quasi uguale alla tinta terra: in testata va su bianco */
.gg-pagina .gg-pt-tinta .gg-stato-chiuso {
	background: var(--gg-white);
}
.gg-pagina .gg-pt-tinta + .gg-pt-fascia {
	background: var(--gg-white);
}

/* «Dettaglio del bando»: in cima alla colonna del bando, su fondo pieno per staccarsi
   dai box bianchi. Sulla sabbia il grigio tenue non passa l'AA (4,47:1): etichette scure */
.gg-pagina .gg-dati {
	background: var(--gg-sand-light);
	border-top: 3px solid var(--gg-sand);
	padding: 18px 20px 12px;
}
.gg-pagina .gg-dati .gg-box-titolo {
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-dati dl {
	display: grid;
	margin: 0;
}
.gg-pagina .gg-dati dl > div {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 9px 0;
}
.gg-pagina .gg-dati dl > div + div {
	border-top: 1px solid var(--gg-sand);
}
.gg-pagina .gg-dati dt {
	font-size: 14.5px;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-dati dd {
	margin: 0;
	font-family: var(--gg-font-display);
	font-size: 16.5px;
	font-weight: 500;
	text-align: right;
	color: var(--gg-text);
}
.gg-pagina .gg-dati dd a {
	color: var(--gg-sea-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}
/* nel bando la tinta è il cielo, come la testata */
.gg-pagina.gg-bando .gg-dati {
	background: var(--gg-sky-pale);
	border-top-color: var(--gg-sky-deep);
}
.gg-pagina.gg-bando .gg-dati :is(.gg-box-titolo, dt) {
	color: var(--gg-sky-deep);
}
.gg-pagina.gg-bando .gg-dati dl > div + div {
	border-top-color: color-mix(in srgb, var(--gg-sky-deep) 18%, transparent);
}
.gg-pagina .gg-dati dd.gg-interventi {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 6px;
}

/* ============================================================
   MODELLO «LARGA, SENZA COLONNA» E PAGINA CONTATTI
   Il corpo è un modello Elementor (template/elementor/build-contatti.py): la
   redazione cambia numeri, ruoli e orari a vista. Qui solo l'aspetto, sulle
   classi del modello. Le regole puntano all'elemento vero dentro l'involucro
   del widget (.elementor-heading-title, .elementor-button…): vedi lessons.md.
   ============================================================ */
.gg-pagina .gg-foglio-larga {
	grid-template-columns: minmax(0, 1fr);
}
.gg-pagina .gg-contatti.e-con {
	gap: clamp(40px, 5vw, 60px);
}
.gg-pagina .gg-contatti .gg-blocco.e-con {
	gap: 0;
}
.gg-pagina .gg-testo .gg-contatti .gg-eti .elementor-heading-title {
	font-family: var(--gg-font-display);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .16em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gg-earth-deep);
	margin: 0 0 14px;
}
.gg-pagina .gg-contatti p {
	margin: 0;
}

/* le tre azioni: Box con icona, tutto il riquadro cliccabile */
.gg-pagina .gg-azioni.e-con {
	gap: 16px;
}
.gg-pagina .gg-azioni > .gg-azione {
	flex: 1 1 0;
}
.gg-pagina .gg-azione .elementor-widget-container {
	height: 100%;
	background: var(--gg-white);
	border-top: 3px solid var(--gg-sun);
	padding: 20px 22px;
	transition: box-shadow .2s;
}
.gg-pagina .gg-azione:hover .elementor-widget-container {
	box-shadow: 0 8px 22px rgba(78, 67, 53, .12);
}
/* Elementor sul telefono porta l'icona sopra il testo (posizione «top» di default):
   qui resta accanto, con una classe in più per vincere sulla sua regola */
.gg-pagina .gg-contatti .gg-azione .elementor-icon-box-wrapper {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 14px;
	text-align: left;
}
.gg-pagina .gg-azione .elementor-icon-box-icon {
	margin: 0;
	line-height: 0;
}
/* il colore dell'icona Elementor lo scrive col proprio CSS di pagina, caricato dopo: qui una classe in più */
.gg-pagina .gg-contatti .gg-azione .elementor-icon,
.gg-pagina .gg-contatti .gg-azione .elementor-icon i {
	font-size: 30px;
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-contatti .gg-azione .elementor-icon svg {
	width: 30px;
	height: 30px;
	fill: var(--gg-sea-dark);
}
.gg-pagina .gg-testo .gg-azione .elementor-icon-box-title {
	margin: 0;
	font-family: var(--gg-font-display);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .14em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-azione a {
	color: inherit;
	text-decoration: none;
}
.gg-pagina .gg-azione .elementor-icon-box-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.gg-pagina .gg-azione .elementor-icon-box-description {
	margin: 0;
	font-family: var(--gg-font-display);
	font-size: 16px; /* a 18 l'indirizzo email non sta in un terzo di riga e va a capo a metà */
	font-weight: 500;
	line-height: 1.3;
	color: var(--gg-text);
	overflow-wrap: anywhere;
}

/* chi scrivere e orari, affiancati */
.gg-pagina .gg-due.e-con {
	gap: clamp(32px, 4.5vw, 64px);
}
.gg-pagina .gg-due > .e-con:first-child { flex: 1.35 1 0; }
.gg-pagina .gg-due > .e-con:last-child { flex: 1 1 0; }
.gg-pagina .gg-rubrica.e-con {
	gap: 0;
	border-top: 1px solid var(--gg-line);
}
/* una riga: chi e a cosa serve a sinistra, l'indirizzo a destra */
.gg-pagina .gg-contatti .gg-voce.e-con {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 2px 20px;
	align-items: center;
	padding: 14px 0;
	border-bottom: 1px solid var(--gg-line);
}
.gg-pagina .gg-voce > .gg-chi { grid-column: 1; }
.gg-pagina .gg-voce > .gg-nota-voce { grid-column: 1; grid-row: 2; }
.gg-pagina .gg-voce > .gg-mail { grid-column: 2; grid-row: 1 / span 2; }
.gg-pagina .gg-testo .gg-chi .elementor-heading-title {
	margin: 0;
	font-family: var(--gg-font-display);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.35;
	color: var(--gg-text);
}
.gg-pagina .gg-nota-voce {
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-mail .elementor-heading-title {
	margin: 0;
	font-family: var(--gg-font-text);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.4;
	overflow-wrap: anywhere;
}
.gg-pagina .gg-testo .gg-mail a {
	color: var(--gg-sea-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.gg-pagina .gg-orari table {
	margin: 0;
	border: 0;
}
/* via righe a zebra e griglia di Hello Elementor: restano solo i filetti orizzontali */
.gg-pagina .gg-orari th,
.gg-pagina .gg-orari td {
	border: 0;
	border-bottom: 1px solid var(--gg-line);
	background: none;
	padding: 10px 12px 10px 0;
}
.gg-pagina .gg-orari thead th {
	font-family: var(--gg-font-display);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-orari tbody th {
	font-family: var(--gg-font-display);
	font-weight: 500;
}
.gg-pagina .gg-orari .gg-nota {
	margin-top: 10px;
	font-size: 13.5px;
	color: var(--gg-text-soft);
}

/* la newsletter sopra la sede: il modulo è in style.css (.gg-iscrizione); qui solo
   ciò che le regole generiche di .gg-testo (titoli scuri, link Mare) coprirebbero */
.gg-pagina .gg-testo .gg-iscrizione h2 {
	color: var(--gg-white);
	font-size: clamp(21px, 2.8vw, 29px);
	font-weight: 300;
	margin: 0 0 .5em;
}
.gg-pagina .gg-testo .gg-iscrizione p { color: #CFE9EC; margin: 0; }
.gg-pagina .gg-testo .gg-iscrizione .gg-nota p { font-size: 13px; margin-top: 18px; }
.gg-pagina .gg-testo .gg-iscrizione a { color: var(--gg-white); }

/* la sede: indirizzo e mappa su sabbia */
.gg-pagina .gg-sede.e-con {
	gap: clamp(24px, 3.5vw, 44px);
	align-items: center;
	background: var(--gg-sand-light);
	padding: clamp(22px, 3vw, 34px);
}
.gg-pagina .gg-sede > .e-con { flex: 1 1 0; }
.gg-pagina .gg-sede > .gg-mappa { flex: 1.5 1 0; }
.gg-pagina .gg-indirizzo {
	font-size: 17px;
	line-height: 1.55;
}
.gg-pagina .gg-testo .gg-vai .elementor-button {
	margin-top: 14px;
	background: none;
	border: 0;
	border-bottom: 2px solid currentColor;
	border-radius: 0;
	padding: 0 0 2px;
	font-family: var(--gg-font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--gg-sea-dark);
	text-decoration: none;
}
.gg-pagina .gg-vai .elementor-button-text::after {
	content: " ↗";
}
.gg-pagina .gg-ente {
	margin-top: 18px;
	font-size: 13.5px;
	color: var(--gg-text-soft);
}

/* la mappa del Gargano con la sede ([gg-mappa-sede]); colori di resa cartografica come in home */
.gg-pagina .gg-mappa-sede {
	margin: 0;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
}
.gg-pagina .gg-mappa-sede svg {
	display: block;
	width: 100%;
	height: auto;
}
.gg-pagina .gg-mappa-sede .nome {
	font-family: var(--gg-font-text);
	font-size: 11px;
	font-weight: 500;
	fill: #3C4043;
	paint-order: stroke;
	stroke: #FFFFFF;
	stroke-width: 3;
	stroke-linejoin: round;
}
.gg-pagina .gg-mappa-sede .acqua text {
	font-family: var(--gg-font-text);
	font-size: 11.5px;
	font-style: italic;
	fill: #14558A;
	letter-spacing: .06em;
	paint-order: stroke;
	stroke: #AADAFF;
	stroke-width: 3;
}
.gg-pagina .gg-mappa-sede .parco {
	font-family: var(--gg-font-text);
	font-size: 11px;
	fill: #2E6B36;
	paint-order: stroke;
	stroke: #CDE8C6;
	stroke-width: 3;
}
.gg-pagina .gg-mappa-sede .misura {
	font-family: var(--gg-font-text);
	font-size: 11px;
	fill: #5F6368;
}
.gg-pagina .gg-mappa-sede .pin { fill: #A79A86; }
.gg-pagina .gg-mappa-sede .strade .casing { stroke: #E6C97A; stroke-width: 7; }
.gg-pagina .gg-mappa-sede .strade .casing2 { stroke: #DFDCD4; stroke-width: 6; }
.gg-pagina .gg-mappa-sede .strade .grande { stroke: #FBD85D; stroke-width: 4.5; }
.gg-pagina .gg-mappa-sede .strade .minore { stroke: #FFFFFF; stroke-width: 3.5; }
.gg-pagina .gg-mappa-sede .sede circle {
	fill: rgba(248, 173, 3, .32);
	stroke: var(--gg-sun);
	stroke-width: 2;
}
.gg-pagina .gg-mappa-sede .sede use { fill: var(--gg-earth-deep); }

.gg-pagina .gg-foglio-larga .post-views {
	margin-top: 28px;
}

@media (max-width: 860px) {
	.gg-pagina .gg-azioni.e-con,
	.gg-pagina .gg-due.e-con,
	.gg-pagina .gg-sede.e-con { flex-direction: column; align-items: stretch; }
	.gg-pagina .gg-azioni > .gg-azione,
	.gg-pagina .gg-due > .e-con,
	.gg-pagina .gg-sede > * { flex: none; width: 100%; }
}
@media (max-width: 560px) {
	/* sul telefono la mappa intera scende a ~280 px e i nomi diventano illeggibili:
	   si inquadra la zona della sede a grandezza piena. Sede a (351,301) su 640×440 */
	.gg-pagina .gg-mappa-sede {
		position: relative;
		aspect-ratio: 5 / 4;
		overflow: hidden;
	}
	.gg-pagina .gg-mappa-sede svg {
		position: absolute;
		width: 180%;
		max-width: none;
		left: -48.8%;
		top: -55.8%;
	}
	/* la scala dei 10 km resta tagliata a metà e, ingrandita, non è più vera */
	.gg-pagina .gg-mappa-sede .ui { display: none; }
	.gg-pagina .gg-sede.e-con { padding: 18px; }
	.gg-pagina .gg-contatti .gg-voce.e-con { grid-template-columns: 1fr; }
	.gg-pagina .gg-voce > .gg-mail { grid-column: 1; grid-row: auto; }
}

/* ============================================================
   BANDI — single-bando.php e archive-bando.php (plugin gal-gargano-bandi).
   Portati da proposte/build_bandi.py (scheda sul modello CSR Puglia, archivio a box).
   ============================================================ */

/* testo nascosto per gli screen reader (numero dei documenti) */
.gg-pagina .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* interventi: «Famiglia · CODICE», link alla lista filtrata */
.gg-pagina .gg-interventi {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.gg-pagina .gg-intervento {
	position: relative;
	z-index: 1; /* sopra il link che copre tutta la scheda */
	padding: 3px 10px;
	border: 1px solid currentColor;
	background: var(--gg-white);
	color: var(--gg-pt-ink, var(--gg-sky-deep));
	font-family: var(--gg-font-display);
	font-size: .82em;
	font-weight: 500;
	text-decoration: none;
}
.gg-pagina .gg-intervento b {
	font-weight: 700;
}
.gg-pagina .gg-intervento:hover,
.gg-pagina .gg-intervento:focus-visible {
	background: var(--gg-pt-ink, var(--gg-sky-deep));
	color: var(--gg-white);
}
.gg-pagina .gg-scheda .gg-intervento {
	color: var(--gg-sky-deep);
	font-size: 13px;
	padding: 2px 8px;
}

/* ---- scheda: colonna laterale larga, documenti e notizie ---- */
.gg-pagina.gg-bando .gg-foglio {
	grid-template-columns: 400px minmax(0, 1fr);
}
.gg-pagina.gg-bando .gg-rimandi {
	position: static;
	gap: 34px;
	min-width: 0;
}
.gg-pagina .gg-lato-titolo {
	margin: 0 0 12px;
	font-family: var(--gg-font-display);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -.01em;
	color: var(--gg-text);
}
.gg-pagina .gg-documenti {
	display: grid;
	gap: 8px;
}
.gg-pagina .gg-documenti .gg-lato-titolo {
	margin-bottom: 4px;
}
.gg-pagina .gg-cartella {
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
}
.gg-pagina .gg-cartella[open] {
	border-color: var(--gg-sand);
}
.gg-pagina .gg-cartella summary {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 15px 16px;
	cursor: pointer;
	list-style: none;
	font-family: var(--gg-font-display);
	font-size: 17px;
	font-weight: 600;
	color: var(--gg-text);
}
.gg-pagina .gg-cartella summary::-webkit-details-marker {
	display: none;
}
.gg-pagina .gg-cartella summary::after {
	content: "";
	flex: none;
	width: 9px;
	height: 9px;
	margin: 0 4px 4px 0;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform .2s;
}
.gg-pagina .gg-cartella[open] summary::after {
	margin: 4px 4px 0 0;
	transform: rotate(-135deg);
}
.gg-pagina .gg-cartella summary:hover {
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-cartella summary:focus-visible {
	outline: 3px solid var(--gg-sea-dark);
	outline-offset: 2px;
}
.gg-pagina .gg-cartella summary svg {
	flex: none;
	width: 22px;
	height: 22px;
	color: var(--gg-ochre);
}
.gg-pagina .gg-cartella-nome {
	flex: 1;
}
.gg-pagina .gg-cartella-conta {
	min-width: 26px;
	padding: 2px 7px;
	text-align: center;
	font-size: 13px;
	background: var(--gg-sky-pale);
	color: var(--gg-sky-deep);
}
.gg-pagina .gg-cartella ul {
	display: grid;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0 12px 12px;
}
/* «Link utili» del bando (gal_gargano_bando_link): sezione a parte sotto i documenti,
   le righe uguali a quelle dei documenti; nell'etichetta il sito di destinazione */
.gg-pagina .gg-link-bando ul {
	display: grid;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.gg-pagina :is(.gg-cartella, .gg-link-bando) .gg-doc {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 11px 12px;
	background: var(--gg-sand-light);
	border-left: 3px solid var(--gg-sand);
	font-size: 15.5px;
	line-height: 1.35;
	color: var(--gg-text);
	text-decoration: none;
}
/* i nomi di file senza spazi (DAG_n._38_del_04.06.2025_…) vanno a capo invece di allargare la colonna */
.gg-pagina :is(.gg-cartella, .gg-link-bando) .gg-doc > span:first-child {
	min-width: 0;
	overflow-wrap: anywhere;
}
.gg-pagina :is(.gg-cartella, .gg-link-bando) .gg-doc:hover {
	border-left-color: var(--gg-sea-dark);
	color: var(--gg-sea-dark);
}
.gg-pagina :is(.gg-cartella, .gg-link-bando) .gg-doc-tipo {
	flex: none;
	padding: 3px 7px;
	background: var(--gg-white);
	color: var(--gg-sky-deep);
	font-family: var(--gg-font-display);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .1em;
}
.gg-pagina .gg-cartella-vuota {
	margin: 0;
	padding: 0 16px 16px 50px;
	font-size: 15px;
	color: var(--gg-text-soft);
}
/* notizie correlate: sotto l'avviso legale, riquadri con l'immagine in evidenza */
.gg-pagina .gg-notizie {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 16px;
	margin-top: 2.6em;
}
.gg-pagina .gg-notizie .gg-lato-titolo {
	grid-column: 1 / -1;
	margin: 0;
}
.gg-pagina .gg-notizie .gg-scheda {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 0 0 18px;
}
.gg-pagina .gg-notizie .gg-scheda > :not(.gg-scheda-foto) {
	margin-inline: 18px;
}
.gg-pagina .gg-notizie .gg-scheda > :first-child:not(.gg-scheda-foto) {
	margin-top: 16px;
}
.gg-pagina .gg-scheda-foto {
	margin: 0 0 6px;
	background: var(--gg-sand-light);
}
/* le proporzioni sull'immagine: sulla cornice vincerebbe l'altezza della foto */
.gg-pagina .gg-scheda-foto img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	object-position: 50% 0;
}
.gg-pagina .gg-notizie .gg-scheda-titolo {
	font-size: 18px;
}
.gg-pagina .gg-notizie .gg-scheda-vai {
	margin-top: auto;
}

/* dotazione, contatti del GAL, avviso legale */
.gg-pagina .gg-dotazione {
	display: flex;
	align-items: center;
	gap: 20px;
	margin: 2.2em 0 0;
	padding: 22px 26px;
	background: var(--gg-sky-pale);
	border-left: 4px solid var(--gg-sun);
}
.gg-pagina .gg-dotazione svg {
	flex: none;
	width: 44px;
	height: 44px;
	color: var(--gg-sky-deep);
}
.gg-pagina .gg-dotazione small {
	display: block;
	font-family: var(--gg-font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gg-sky-deep);
}
.gg-pagina .gg-dotazione strong {
	display: block;
	font-family: var(--gg-font-display);
	font-size: clamp(28px, 3vw, 38px);
	font-weight: 600;
	letter-spacing: -.02em;
	line-height: 1.15;
	color: var(--gg-text);
}
.gg-pagina .gg-dotazione span {
	display: block;
	font-size: 15.5px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-bando-contatti {
	margin-top: 16px;
	padding: 22px 26px;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
	border-left: 4px solid var(--gg-sky-deep);
	font-size: 17px;
}
.gg-pagina .gg-bando-contatti :is(.gg-widget-titolo, h2, h3) {
	margin: 0 0 8px;
	font-family: var(--gg-font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-bando-contatti p {
	margin: 0 0 8px;
}
.gg-pagina .gg-bando-contatti a {
	color: var(--gg-sea-dark);
	font-weight: 600;
	text-decoration: none;
}
.gg-pagina .gg-bando-contatti a:hover {
	text-decoration: underline;
}
.gg-pagina .gg-legale {
	margin-top: 2.4em;
	padding-top: 20px;
	border-top: 1px solid var(--gg-line);
	font-size: 15px;
	line-height: 1.6;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-legale h2 {
	margin: 0 0 6px;
	font-family: var(--gg-font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-legale p {
	margin: 0;
}

/* ---- archivio: ricerca, linguette, box tre per riga ---- */
.gg-pagina .gg-cerca {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(180px, 260px) auto;
	align-items: end;
	gap: 10px;
	margin: 0 0 22px;
	padding: 20px 22px;
	background: var(--gg-sky-pale);
	border-top: 3px solid var(--gg-sky-deep);
}
.gg-pagina .gg-cerca label {
	display: block;
	margin: 0 0 6px;
	font-family: var(--gg-font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--gg-sky-deep);
}
.gg-pagina .gg-cerca :is(input, select) {
	width: 100%;
	height: 50px;
	padding: 0 14px;
	border: 1px solid var(--gg-sky-deep);
	border-radius: 0;
	background: var(--gg-white);
	font: inherit;
	font-size: 17px;
	color: var(--gg-text);
}
.gg-pagina .gg-cerca :is(input, select, button):focus-visible {
	outline: 3px solid var(--gg-sea-dark);
	outline-offset: 2px;
}
.gg-pagina .gg-cerca button {
	height: 50px;
	padding: 0 26px;
	border: 0;
	border-radius: 0;
	background: var(--gg-sky-deep);
	color: var(--gg-white);
	cursor: pointer;
	font-family: var(--gg-font-display);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.gg-pagina .gg-cerca button:hover {
	background: var(--gg-text);
}
.gg-pagina .gg-linguette {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0 0 26px;
	padding: 0;
	border-bottom: 2px solid var(--gg-line);
}
.gg-pagina .gg-linguette a {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: -2px;
	padding: 12px 20px;
	border-bottom: 3px solid transparent;
	font-family: var(--gg-font-display);
	font-size: 16.5px;
	font-weight: 500;
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-linguette a:hover {
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-linguette [aria-current] {
	border-bottom-color: var(--gg-sky-deep);
	color: var(--gg-sky-deep);
	font-weight: 600;
}
.gg-pagina .gg-linguette .gg-conta {
	padding: 2px 8px;
	background: var(--gg-sky-pale);
	color: var(--gg-sky-deep);
	font-size: 13px;
	font-weight: 600;
}
.gg-pagina .gg-gruppo {
	margin: 34px 0 12px;
	font-family: var(--gg-font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina nav + .gg-gruppo {
	margin-top: 0;
}
.gg-pagina.gg-bandi .gg-elenco {
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 18px;
}
.gg-pagina.gg-bandi .gg-scheda {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 22px 22px 20px;
}
.gg-pagina.gg-bandi .gg-scheda-riga {
	gap: 8px;
}
.gg-pagina.gg-bandi .gg-scheda-riga > time,
.gg-pagina.gg-bandi .gg-scheda-scade {
	flex-basis: 100%;
}
/* bando aperto: al posto della data di pubblicazione, quando chiude */
.gg-pagina .gg-scheda-scade {
	font-weight: 600;
	color: var(--gg-text);
}
.gg-pagina .gg-scheda-piede {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px 20px;
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--gg-line);
}
.gg-pagina .gg-scheda-soldi {
	font-family: var(--gg-font-display);
	font-size: 15.5px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-scheda-soldi b {
	font-size: 18px;
	font-weight: 600;
	color: var(--gg-text);
}

@media (max-width: 1100px) {
	.gg-pagina.gg-bando .gg-foglio {
		grid-template-columns: 340px minmax(0, 1fr);
	}
}
/* telefono: una colonna; nella scheda i documenti vengono dopo il testo e le notizie
   correlate in fondo, dopo i documenti (richiesta del GAL del 28/10). Il testo si scioglie
   nella griglia del foglio così le notizie possono scendere sotto la colonna; il codice
   non cambia, il desktop nemmeno */
@media (max-width: 860px) {
	.gg-pagina.gg-bando .gg-foglio {
		grid-template-columns: 1fr;
		row-gap: 0;
	}
	.gg-pagina.gg-bando .gg-corpo {
		display: contents;
	}
	.gg-pagina.gg-bando .gg-corpo > * {
		order: 1;
	}
	.gg-pagina.gg-bando .gg-rimandi {
		order: 2;
		margin-top: 44px;
	}
	.gg-pagina.gg-bando .gg-corpo > :is(.gg-notizie, .gg-torna) {
		order: 3;
	}
	.gg-pagina.gg-bando .gg-torna {
		justify-self: start;
	}
}
@media (max-width: 760px) {
	.gg-pagina .gg-cerca {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Progetti (archive-progetto.php, single-progetto.php, inc/progetti.php):
   gli stessi pezzi dei bandi, nei toni terra della voce Progetti del menu.
   ========================================================================== */
.gg-pagina.gg-progetti .gg-cerca {
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	background: var(--gg-earth-pale);
	border-top-color: var(--gg-earth-deep);
}
.gg-pagina.gg-progetti .gg-cerca label {
	color: var(--gg-earth-deep);
}
.gg-pagina.gg-progetti .gg-cerca :is(input, select) {
	border-color: var(--gg-earth-deep);
}
.gg-pagina.gg-progetti .gg-cerca button {
	grid-column: 1;
	justify-self: start;
	background: var(--gg-earth-deep);
}
.gg-pagina.gg-progetti .gg-cerca button:hover {
	background: var(--gg-text);
}
.gg-pagina .gg-cerca-azzera {
	align-self: center;
	font-family: var(--gg-font-display);
	font-size: 15px;
	font-weight: 600;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-trovati {
	margin: 0 0 12px;
	font-family: var(--gg-font-display);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--gg-earth-deep);
}
.gg-pagina.gg-progetti .gg-elenco,
.gg-pagina .gg-altri .gg-elenco {
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 18px;
	margin-top: 22px;
}
.gg-pagina .gg-scheda-progetto {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 0 0 18px;
	border-top: 1px solid var(--gg-line);
}
.gg-pagina .gg-scheda-progetto > :not(.gg-scheda-foto) {
	margin-inline: 18px;
}
.gg-pagina .gg-scheda-progetto .gg-scheda-titolo {
	font-size: 19px;
}
.gg-pagina .gg-scheda-progetto .gg-scheda-piede {
	font-size: 15px;
	color: var(--gg-text-soft);
}
/* Archivio progetti sul telefono (Marco, 29/10): due per riga, come le notizie. Ogni
   progetto in una scheda con bordo; in mezza colonna comune e contributo vanno uno sotto
   l'altro e la cifra resta intera su una riga. Solo l'archivio: i «progetti vicini» in
   fondo alla scheda (.gg-altri) restano com'erano. */
@media (max-width: 600px) {
	.gg-pagina.gg-progetti .gg-elenco.gg-elenco { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.gg-pagina.gg-progetti .gg-scheda-progetto {
		gap: 6px;
		padding: 0 0 12px;
		border: 1px solid var(--gg-line);
		background: var(--gg-white);
	}
	.gg-pagina.gg-progetti .gg-scheda-progetto > :not(.gg-scheda-foto) { margin-inline: 10px; }
	.gg-pagina.gg-progetti .gg-scheda-progetto .gg-scheda-foto { margin: 0 0 4px; }
	.gg-pagina.gg-progetti .gg-scheda-progetto .gg-scheda-foto img { aspect-ratio: 4 / 3; }
	.gg-pagina.gg-progetti .gg-scheda-progetto .gg-scheda-riga { gap: 4px 6px; }
	.gg-pagina.gg-progetti .gg-scheda-progetto .gg-programmazione { font-size: 10px; padding: 3px 6px; letter-spacing: .06em; }
	.gg-pagina.gg-progetti .gg-scheda-progetto .gg-intervento { font-size: 11px; padding: 2px 6px; line-height: 1.3; }
	.gg-pagina.gg-progetti .gg-scheda-progetto .gg-scheda-titolo {
		font-size: 14.5px;
		line-height: 1.3;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		overflow: hidden;
	}
	.gg-pagina.gg-progetti .gg-scheda-progetto .gg-scheda-piede {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
		padding-top: 8px;
		font-size: 12.5px;
	}
	.gg-pagina.gg-progetti .gg-scheda-progetto .gg-scheda-soldi { font-size: 12px; }
	.gg-pagina.gg-progetti .gg-scheda-progetto .gg-scheda-soldi b { display: block; font-size: 14px; white-space: nowrap; }
}
/* archivio News (#29, proposta C): mosaico a tre colonne, la prima della prima pagina
   larga due posti e alta due righe. Schede senza cornice: foto, data, titolo */
.gg-pagina .gg-mosaico {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 22px;
}
.gg-pagina .gg-mosaico .gg-scheda {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 0;
	background: none;
	border: 0;
}
.gg-pagina .gg-mosaico .gg-scheda-foto {
	margin: 0 0 6px;
}
.gg-pagina .gg-mosaico .gg-scheda-foto img,
.gg-pagina .gg-mosaico .gg-senza-foto {
	aspect-ratio: 4 / 3;
}
.gg-pagina .gg-mosaico .gg-scheda-riga {
	font-size: 12.5px;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.gg-pagina .gg-mosaico .gg-scheda-titolo {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
}
.gg-pagina .gg-mosaico .gg-prima {
	grid-column: span 2;
	grid-row: span 2;
}
.gg-pagina .gg-mosaico .gg-prima .gg-scheda-foto img,
.gg-pagina .gg-mosaico .gg-prima .gg-senza-foto {
	aspect-ratio: 16 / 10;
}
.gg-pagina .gg-mosaico .gg-prima .gg-scheda-titolo {
	font-size: clamp(22px, 2.2vw, 27px);
	line-height: 1.25;
}
.gg-pagina .gg-mosaico .gg-prima .gg-scheda-testo {
	font-size: 15.5px;
	line-height: 1.55;
}
@media (max-width: 980px) {
	.gg-pagina .gg-mosaico { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gg-pagina .gg-mosaico .gg-prima { grid-row: auto; }
}
@media (max-width: 560px) {
	.gg-pagina .gg-mosaico { grid-template-columns: 1fr; }
	.gg-pagina .gg-mosaico .gg-prima { grid-column: auto; }
}
/* Archivi delle notizie sul telefono (Marco, 29/10): in colonna unica le schede erano
   anonime e attaccate — una locandina alta uno schermo dopo l'altra, senza cornice, col
   riassunto che ripeteva il titolo. Ora la prima resta grande, le altre due per riga in
   una scheda con bordo; immagine quadrata (sono quasi tutte locandine), niente riassunto,
   titolo fino a quattro righe. Lo stato va sull'immagine: su una riga sua spingeva giù la
   data e le schede affiancate non partivano alla stessa altezza. Vale anche per la ricerca. */
@media (max-width: 600px) {
	.gg-pagina .gg-mosaico.gg-mosaico { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.gg-pagina .gg-mosaico .gg-prima.gg-prima { grid-column: 1 / -1; }
	.gg-pagina .gg-mosaico .gg-scheda {
		gap: 6px;
		padding: 0 0 12px;
		background: var(--gg-white);
		border: 1px solid var(--gg-line);
	}
	.gg-pagina .gg-mosaico .gg-scheda > :not(.gg-scheda-foto) { padding-inline: 10px; }
	.gg-pagina .gg-mosaico .gg-scheda-foto { margin: 0 0 4px; }
	.gg-pagina .gg-mosaico .gg-scheda-foto img,
	.gg-pagina .gg-mosaico .gg-senza-foto { aspect-ratio: 1 / 1; }
	.gg-pagina .gg-mosaico .gg-scheda-riga { font-size: 10.5px; letter-spacing: .06em; gap: 4px 8px; }
	.gg-pagina .gg-mosaico .gg-scheda-riga .gg-stato {
		position: absolute;
		top: 8px;
		left: 8px;
		z-index: 1;
		font-size: 10px;
		padding: 3px 6px;
		box-shadow: 0 1px 2px rgba(0, 0, 0, .15);
	}
	.gg-pagina .gg-mosaico .gg-scheda-titolo {
		font-size: 14.5px;
		line-height: 1.3;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 4;
		overflow: hidden;
	}
	.gg-pagina .gg-mosaico .gg-scheda-testo { display: none; }
	.gg-pagina .gg-mosaico .gg-prima { padding-bottom: 16px; }
	.gg-pagina .gg-mosaico .gg-prima > :not(.gg-scheda-foto) { padding-inline: 14px; }
	.gg-pagina .gg-mosaico .gg-prima .gg-scheda-foto img,
	.gg-pagina .gg-mosaico .gg-prima .gg-senza-foto { aspect-ratio: 16 / 10; }
	.gg-pagina .gg-mosaico .gg-prima .gg-scheda-titolo { font-size: 18px; -webkit-line-clamp: 5; }
	.gg-pagina .gg-mosaico .gg-prima .gg-scheda-riga { font-size: 11.5px; }
}

/* riquadri con la foto delle pagine figlie ([gg-figlie], [gg-comuni], #28): quattro per
   riga, il nome in bianco in alto su una sfumatura scura. Nei comuni sopra c'è la mappa */
.gg-pagina .gg-comuni .gg-mappa-progetti {
	margin-bottom: 34px;
}
.gg-pagina .gg-testo .gg-riquadri,
.gg-pagina .gg-riquadri {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
/* più forte degli elenchi del testo (.gg-testo ul li: rientro e icona) */
.gg-pagina .gg-testo .gg-riquadri li,
.gg-pagina .gg-riquadri li {
	margin: 0;
	padding: 0;
}
.gg-pagina .gg-testo .gg-riquadri li::before {
	content: none;
}
.gg-pagina .gg-riquadro.gg-senza-foto {
	aspect-ratio: 1;
}
.gg-pagina .gg-testo a.gg-riquadro,
.gg-pagina .gg-riquadro {
	position: relative;
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	background-color: var(--gg-sand-light);
	text-decoration: none;
}
.gg-pagina .gg-riquadro img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.gg-pagina .gg-riquadro::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	/* scura fin sotto la terza riga del nome: su una foto bianca (la cacioricotta) il bianco
	   del testo regge 3:1, testo grande in grassetto (WCAG 1.4.3) */
	background: linear-gradient(180deg, rgba(20, 18, 15, .8) 0%, rgba(20, 18, 15, .72) 30%, rgba(20, 18, 15, .2) 60%, rgba(20, 18, 15, 0) 80%);
}
.gg-pagina .gg-riquadro span {
	position: absolute;
	z-index: 2;
	top: 18px;
	left: 20px;
	right: 20px;
	font-family: var(--gg-font-display);
	font-size: clamp(19px, 1.9vw, 25px);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -.01em;
	color: var(--gg-white);
	text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
}
.gg-pagina .gg-riquadro:hover img {
	transform: scale(1.05);
}
.gg-pagina .gg-riquadro:focus-visible {
	outline: 3px solid var(--gg-sea-dark);
	outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
	.gg-pagina .gg-riquadro img { transition: none; }
}
@media (max-width: 980px) {
	.gg-pagina .gg-testo .gg-riquadri, .gg-pagina .gg-riquadri { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.gg-pagina .gg-testo .gg-riquadri, .gg-pagina .gg-riquadri { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.gg-pagina .gg-riquadro span { top: 12px; left: 12px; right: 12px; font-size: 19px; } /* 19 px in grassetto: «testo grande» */
}

/* produttori ([gg-produttori], #28, proposta B): i pulsanti dei tipi sopra i riquadri,
   i tipi del produttore in basso sul riquadro (sotto i 640 px si tolgono: c'è il filtro) */
.gg-pagina .gg-filtri-tipo {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 24px;
}
.gg-pagina .gg-filtri-tipo[hidden],
.gg-pagina .gg-elenco-produttori .gg-riquadri li[hidden] {
	display: none;
}
.gg-pagina .gg-filtri-tipo button {
	padding: 9px 14px;
	font-family: var(--gg-font-display);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .02em;
	line-height: 1.3;
	text-align: left;
	color: var(--gg-text);
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
	border-radius: 0;
	cursor: pointer;
}
.gg-pagina .gg-filtri-tipo button b {
	margin-left: 6px;
	font-weight: 400;
	color: var(--gg-text-soft);
}
/* più forte del reset di Hello sui pulsanti (fondo magenta al passaggio) */
.gg-pagina .gg-filtri-tipo button:is(:hover, :focus) {
	color: var(--gg-sea-dark);
	background: var(--gg-white);
	border-color: var(--gg-sea-dark);
}
.gg-pagina .gg-filtri-tipo button:focus-visible {
	outline: 3px solid var(--gg-sea-dark);
	outline-offset: 2px;
}
.gg-pagina .gg-filtri-tipo button[aria-pressed="true"],
.gg-pagina .gg-filtri-tipo button[aria-pressed="true"]:is(:hover, :focus) {
	color: var(--gg-white);
	background: var(--gg-text);
	border-color: var(--gg-text);
}
.gg-pagina .gg-filtri-tipo button[aria-pressed="true"] b {
	color: var(--gg-white);
}
.gg-pagina .gg-riquadro .gg-riquadro-tipi {
	position: absolute;
	z-index: 2;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 22px 18px 14px;
	font-size: 13px;
	line-height: 1.4;
	letter-spacing: .02em;
	color: var(--gg-white);
	background: linear-gradient(0deg, rgba(20, 18, 15, .85), rgba(20, 18, 15, 0));
}
@media (max-width: 640px) {
	.gg-pagina .gg-filtri-tipo { display: none; }
	.gg-pagina .gg-riquadro .gg-riquadro-tipi { display: none; }
}

/* senza foto: l'incisione del promontorio su sabbia, come le notizie della home */
.gg-pagina .gg-senza-foto {
	aspect-ratio: 16 / 10;
	background: var(--gg-sand-light) url(../img/incisione.svg) center 40% / 56% auto no-repeat;
}
.gg-pagina .gg-programmazione {
	font-family: var(--gg-font-display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .11em;
	padding: 4px 9px;
	background: var(--gg-earth-pale);
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-pt-tinta .gg-programmazione {
	background: var(--gg-white);
}

/* scheda del progetto (proposta B del 15/10): la foto fa da testata, titolo a
   sinistra e mappa a destra; sotto, testo a sinistra e colonna larga a destra */
.gg-pagina .gg-p-testa {
	position: relative;
	overflow: hidden;
	background: var(--gg-earth-deep);
	color: var(--gg-white);
}
.gg-pagina .gg-p-sfondo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .35;
}
/* senza foto: il fondo terra con l'incisione, come le schede senza immagine */
.gg-pagina .gg-p-testa-tinta {
	background: var(--gg-earth-deep) url(../img/incisione.svg) 6% 80% / 300px auto no-repeat;
}
.gg-pagina .gg-p-testa .gg-wrap {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 440px;
	gap: 32px;
	align-items: end;
	padding-block: 56px 40px;
}
.gg-pagina .gg-p-testa .gg-pt-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	margin: 0;
	color: var(--gg-white);
}
.gg-pagina .gg-p-testa .gg-pt-meta b {
	color: var(--gg-white);
}
.gg-pagina .gg-p-testa .gg-programmazione,
.gg-pagina .gg-p-testa .gg-intervento {
	background: var(--gg-white);
}
.gg-pagina .gg-p-testa .gg-intervento b {
	color: var(--gg-sky-deep);
}
.gg-pagina .gg-p-testa h1 {
	margin: 14px 0 0;
	font-family: var(--gg-font-display);
	font-size: clamp(34px, 4.4vw, 56px);
	font-weight: 300;
	line-height: 1.1;
	color: var(--gg-white);
}
.gg-pagina .gg-p-testa .gg-mappa-progetti {
	margin: 0;
}
.gg-pagina .gg-p-testa .gg-mappa-tela {
	height: 280px;
	border: 0;
}
.gg-pagina.gg-progetto .gg-foglio {
	grid-template-columns: minmax(0, 1fr) 420px;
}
.gg-pagina.gg-progetto .gg-rimandi {
	position: static;
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.gg-pagina .gg-p-importi {
	display: grid;
	gap: 1px;
	background: var(--gg-line);
}
.gg-pagina .gg-p-importi > div {
	padding: 16px 20px;
	background: var(--gg-earth-pale);
}
.gg-pagina .gg-p-importi span {
	display: block;
	font-family: var(--gg-font-display);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-p-importi b {
	display: block;
	font-family: var(--gg-font-display);
	font-size: 26px;
	font-weight: 600;
	color: var(--gg-text);
}
.gg-pagina .gg-p-importi small {
	font-size: 14.5px;
	/* come le note di .gg-dati: text-soft sul terra pallido resta sotto l'AA */
	color: var(--gg-text);
}
.gg-pagina.gg-progetto .gg-dati {
	background: var(--gg-earth-pale);
	border-top-color: var(--gg-earth-deep);
}
.gg-pagina.gg-progetto .gg-dati :is(.gg-box-titolo, dt) {
	color: var(--gg-earth-deep);
}
.gg-pagina.gg-progetto .gg-dati dd small {
	display: block;
	font-size: 14.5px;
	/* text-soft sul fondo terra pallido fa 4,37:1, sotto l'AA */
	color: var(--gg-text);
}
.gg-pagina .gg-galleria {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 10px;
	margin: 2em 0 0;
}
.gg-pagina .gg-galleria a {
	display: block;
	cursor: zoom-in;
}
.gg-pagina .gg-galleria a:focus-visible {
	outline: 3px solid var(--gg-sea-dark);
	outline-offset: 3px;
}
.gg-pagina .gg-galleria img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.gg-pagina .gg-altri {
	margin-top: 3em;
}

@media (max-width: 1100px) {
	.gg-pagina.gg-progetti .gg-cerca {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 980px) {
	.gg-pagina .gg-p-testa .gg-wrap,
	.gg-pagina.gg-progetto .gg-foglio {
		grid-template-columns: 1fr;
	}
	.gg-pagina .gg-p-testa .gg-wrap {
		padding-block: 40px 28px;
	}
	.gg-pagina .gg-p-testa .gg-mappa-tela {
		height: 220px;
	}
}
@media (max-width: 760px) {
	.gg-pagina.gg-progetti .gg-cerca {
		grid-template-columns: 1fr;
	}
}

/* ---- organigramma (Staff tecnico, build-staff.py): direzione in alto, le persone sotto ----
   Tutto widget Elementor (Titolo, Editor di testo); qui fondo, linee e colori.
   Le schede prendono a turno i colori del marchio: una scheda duplicata si colora da sola */
.gg-pagina .gg-organigramma.e-con {
	gap: 0;
}
.gg-pagina .gg-testo .gg-organigramma .elementor-widget {
	margin: 0;
}
.gg-pagina .gg-testo .gg-organigramma p,
.gg-pagina .gg-testo .gg-organigramma .elementor-heading-title {
	margin: 0;
}
.gg-pagina .gg-org-capo.e-con {
	width: min(100%, 440px);
	margin-inline: auto;
	padding: 26px 28px;
	gap: 6px;
	background: var(--gg-sea-deep);
	text-align: center;
}
.gg-pagina .gg-testo .gg-organigramma .gg-org-ruolo .elementor-heading-title {
	font-family: var(--gg-font-text);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-testo .gg-organigramma .gg-org-nome .elementor-heading-title {
	font-family: var(--gg-font-display);
	font-size: 19px;
	font-weight: 500;
	line-height: 1.2;
	color: var(--gg-text);
}
.gg-pagina .gg-testo .gg-organigramma .gg-org-cosa {
	font-size: 15px;
	line-height: 1.45;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-organigramma .gg-org-mail {
	margin-top: auto;
	padding-top: 6px;
}
.gg-pagina .gg-testo .gg-organigramma .gg-org-mail a {
	font-size: 15px;
	font-weight: 600;
	color: var(--gg-sea-dark);
	text-decoration: underline;
}
/* la direzione: chiaro su scuro */
.gg-pagina .gg-testo .gg-org-capo .gg-org-ruolo .elementor-heading-title { color: var(--gg-sea-pale); }
.gg-pagina .gg-testo .gg-org-capo .gg-org-nome .elementor-heading-title { font-size: 28px; color: var(--gg-white); }
.gg-pagina .gg-testo .gg-org-capo .gg-org-cosa { font-size: 16px; color: #D6E7EA; }
.gg-pagina .gg-testo .gg-org-capo .gg-org-mail a { color: var(--gg-white); }

/* le linee: una scende dalla direzione, una barra orizzontale scende su ogni scheda */
.gg-pagina .gg-org-staff.e-con {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	padding-top: 56px;
}
.gg-pagina .gg-org-staff::before,
.gg-pagina .gg-org-staff::after {
	content: "";
	position: absolute;
	top: 0;
	border: 0 solid var(--gg-earth);
}
/* width: il ::before di un contenitore Elementor è lo strato dello sfondo, largo 100%:
   da metà colonna sbordava di mezza pagina (sul telefono la pagina scorreva di lato) */
.gg-pagina .gg-org-staff::before {
	left: 50%;
	right: auto;
	width: 0;
	height: 28px;
	border-left-width: 2px;
}
.gg-pagina .gg-org-staff::after {
	left: 12.5%;
	right: 12.5%;
	top: 28px;
	height: 28px;
	border-width: 2px 2px 0;
}
.gg-pagina .gg-org-nodo.e-con {
	--c: var(--gg-earth);
	gap: 6px;
	padding: 20px 18px 18px;
	background: var(--gg-sand-light);
	border-top: 6px solid var(--c);
}
/* staff: la colonna è l'area — il suo nome sotto la barra colorata — e ogni persona è un
   riquadro a sé, uno sotto l'altro. La colonna non ha fondo: niente riquadri alti e vuoti
   accanto a quella con più persone. Il nome dell'area tiene due righe, così i riquadri
   partono tutti alla stessa altezza */
.gg-pagina .gg-org-staff.e-con:has(.gg-org-persona) {
	align-items: start;
}
.gg-pagina .gg-org-nodo.e-con:has(> .gg-org-persona) {
	gap: 10px;
	padding: 0;
	background: none;
	border-top: 0;
}
.gg-pagina .gg-org-nodo.e-con:has(> .gg-org-persona) > .gg-org-ruolo {
	box-sizing: border-box;
	min-height: calc(2.8em + 18px);
	padding: 10px 0 2px;
	border-top: 6px solid var(--c);
}
.gg-pagina .gg-org-persona.e-con {
	gap: 4px;
	flex-grow: 0;
	padding: 16px 18px;
	background: var(--gg-sand-light);
	border-left: 3px solid var(--c);
}
.gg-pagina .gg-testo .gg-organigramma .gg-org-incarico .elementor-heading-title {
	font-family: var(--gg-font-text);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-org-nodo:nth-child(4n+2) { --c: var(--gg-sun); }
.gg-pagina .gg-org-nodo:nth-child(4n+3) { --c: var(--gg-sand); }
.gg-pagina .gg-org-nodo:nth-child(4n+4) { --c: var(--gg-olive); }
.gg-pagina .gg-testo .gg-org-piede {
	margin-top: 34px;
	padding-top: 20px;
	border-top: 1px solid var(--gg-line);
	text-align: center;
	font-size: 16px;
}
@media (max-width: 860px) {
	.gg-pagina .gg-org-staff.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gg-pagina .gg-org-staff::after { left: 25%; right: 25%; }
}
@media (max-width: 520px) {
	.gg-pagina .gg-org-staff.e-con { grid-template-columns: 1fr; padding-top: 28px; }
	.gg-pagina .gg-org-staff::after { display: none; }
	.gg-pagina .gg-org-nodo.e-con:has(> .gg-org-persona) > .gg-org-ruolo { min-height: 0; }
}

/* ---- Soci (build-soci.py): tre contatori, poi i soci a gruppi ----
   Contatore, Titolo, Elenco icone di Elementor; qui solo l'aspetto. I gruppi prendono
   a turno i colori del marchio: un gruppo duplicato si colora da solo */
.gg-pagina .gg-soci.e-con {
	gap: 0;
}
.gg-pagina .gg-soci-numeri.e-con {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1px;
	margin-bottom: 30px;
	background: var(--gg-line);
	border: 1px solid var(--gg-line);
}
.gg-pagina .gg-soci-numero {
	padding: 20px 22px;
	background: var(--gg-white);
}
.gg-pagina .gg-soci-numero .elementor-counter {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
}
.gg-pagina .gg-soci-numero .elementor-counter-number-wrapper {
	order: 0;
	justify-content: flex-start;
	font-family: var(--gg-font-display);
	font-size: 52px;
	font-weight: 300;
	line-height: 1;
	letter-spacing: -.03em;
	color: var(--gg-sea-deep);
}
.gg-pagina .gg-soci-numero .elementor-counter-title {
	order: 1;
	justify-content: flex-start;
	text-align: left;
	font-family: var(--gg-font-text);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.35;
	color: var(--gg-text-soft);
}
/* sul telefono un contatore per riga, il numero accanto alla descrizione */
@media (max-width: 520px) {
	.gg-pagina .gg-soci-numeri.e-con { grid-template-columns: 1fr; }
	.gg-pagina .gg-soci-numero { padding: 14px 18px; }
	.gg-pagina .gg-soci-numero .elementor-counter { flex-direction: row; align-items: center; gap: 16px; }
	.gg-pagina .gg-soci-numero .elementor-counter-number-wrapper { flex: 0 0 64px; font-size: 40px; }
}
.gg-pagina .gg-testo .gg-soci-intro {
	max-width: 60ch;
	margin-bottom: 28px;
	font-size: 19px;
	line-height: 1.55;
}
.gg-pagina .gg-soci-gruppi.e-con {
	display: block;
	columns: 2 300px;
	column-gap: 20px;
}
.gg-pagina .gg-soci-gruppo.e-con {
	--c: var(--gg-sea);
	break-inside: avoid;
	gap: 8px;
	margin: 0 0 20px;
	padding: 18px 20px 12px;
	background: var(--gg-sand-light);
	border-top: 5px solid var(--c);
}
.gg-pagina .gg-soci-gruppo:nth-child(5n+2) { --c: var(--gg-earth); }
.gg-pagina .gg-soci-gruppo:nth-child(5n+3) { --c: var(--gg-sun); }
.gg-pagina .gg-soci-gruppo:nth-child(5n+4) { --c: var(--gg-sand); }
.gg-pagina .gg-soci-gruppo:nth-child(5n+5) { --c: var(--gg-olive); }
/* il titolo del gruppo è un h2 (fa l'indice), ma qui senza filo e spazi da sezione */
.gg-pagina .gg-testo .gg-soci-gruppo .gg-sezione {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 17px;
	line-height: 1.3;
}
.gg-pagina .gg-testo .gg-soci-elenco ul.elementor-icon-list-items {
	margin: 0;
}
.gg-pagina .gg-testo .gg-soci-elenco li.elementor-icon-list-item {
	margin: 0;
	padding: 7px 0 7px 18px;
	border-bottom: 1px solid var(--gg-line);
	font-size: 15.5px;
	line-height: 1.4;
}
.gg-pagina .gg-testo .gg-soci-elenco li.elementor-icon-list-item:last-child {
	border-bottom: 0;
}
.gg-pagina .gg-testo .gg-soci-elenco li.elementor-icon-list-item::before {
	left: 0;
	top: 14px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--c);
}
.gg-pagina .gg-soci-elenco .elementor-icon-list-icon {
	display: none;
}
.gg-pagina .gg-testo .gg-soci-elenco a {
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-testo .gg-soci-elenco a .elementor-icon-list-text::after {
	content: " ›";
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-testo .gg-soci-elenco a:hover .elementor-icon-list-text {
	text-decoration: underline;
}

/* ---- Mission (build-mission.py): tre capitoli numerati, la frase chiave in evidenza,
   le attività in tessere, le altre in un Interruttore. Il testo è quello dello statuto,
   tutto in widget; i numeri dei capitoli e delle tessere sono contatori CSS ---- */
.gg-pagina .gg-mission.e-con {
	gap: 0;
	counter-reset: gg-cap;
}
.gg-pagina .gg-mi-cap.e-con {
	counter-increment: gg-cap;
	position: relative;
	gap: 0;
	padding: 34px 0 34px 96px;
	border-top: 1px solid var(--gg-line);
}
.gg-pagina .gg-mi-cap.e-con:first-child {
	padding-top: 0;
	border-top: 0;
}
.gg-pagina .gg-mi-cap::before {
	content: counter(gg-cap, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 30px;
	/* il ::before dei contenitori Elementor è lo sfondo sovrapposto: misure e fusione sue */
	width: auto;
	height: auto;
	opacity: 1;
	mix-blend-mode: normal;
	border: 0;
	font-family: var(--gg-font-display);
	font-size: 64px;
	font-weight: 200;
	line-height: 1;
	letter-spacing: -.04em;
	color: var(--gg-sand);
}
.gg-pagina .gg-mi-cap:first-child::before {
	top: -4px;
}
.gg-pagina .gg-testo .gg-mi-titolo .gg-sezione {
	margin: 0 0 14px;
	padding: 0;
	border: 0;
	font-family: var(--gg-font-text);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .14em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-testo .gg-mi-lead p {
	margin: 0 0 18px;
	font-family: var(--gg-font-display);
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 300;
	line-height: 1.35;
	letter-spacing: -.01em;
	color: var(--gg-sea-deep);
}
.gg-pagina .gg-testo .gg-mi-tessere ol {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: gg-tessera;
}
.gg-pagina .gg-testo .gg-mi-tessere li {
	counter-increment: gg-tessera;
	position: relative;
	margin: 0;
	padding: 16px 18px 16px 54px;
	background: var(--gg-sand-light);
	font-size: 15.5px;
	line-height: 1.5;
}
.gg-pagina .gg-testo .gg-mi-tessere li::before {
	content: counter(gg-tessera, decimal-leading-zero);
	position: absolute;
	left: 16px;
	top: 16px;
	font-family: var(--gg-font-display);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
	color: var(--gg-sea-dark);
}
/* le altre attività: l'Interruttore di Elementor, chiuso */
.gg-pagina .gg-mi-inoltre {
	margin-top: 22px;
}
.gg-pagina .gg-mi-inoltre .elementor-tab-title {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 20px;
	border: 1px solid var(--gg-line);
	background: var(--gg-white);
	cursor: pointer;
}
.gg-pagina .gg-mi-inoltre .elementor-toggle-icon {
	order: 2;
	margin-left: auto;
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-testo .gg-mi-inoltre .elementor-toggle-title {
	font-family: var(--gg-font-display);
	font-size: 17px;
	font-weight: 600;
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-mi-inoltre .elementor-tab-content {
	padding: 14px 20px 6px;
	border: 1px solid var(--gg-line);
	border-top: 0;
}
@media (max-width: 760px) {
	.gg-pagina .gg-mi-cap.e-con { padding-left: 0; }
	.gg-pagina .gg-mi-cap::before,
	.gg-pagina .gg-mi-cap:first-child::before { position: static; margin-bottom: 8px; font-size: 44px; }
	.gg-pagina .gg-testo .gg-mi-tessere ol { grid-template-columns: 1fr; }
}

/* ---- Chi siamo (build-chi-siamo.py): la frase d'apertura in evidenza, quattro contatori
   (aspetto dei Soci, `gg-soci-numeri`), i due compiti mare e terra, i soci in un riquadro,
   lo statuto in una scheda. Tutto widget; qui solo l'aspetto ---- */
.gg-pagina .gg-chisiamo.e-con,
.gg-pagina .gg-cs-sez.e-con {
	gap: 0;
}
.gg-pagina .gg-cs-sez.e-con {
	margin-bottom: 40px;
}
.gg-pagina .gg-testo .gg-cs-lead p {
	margin: 0 0 18px;
	font-family: var(--gg-font-display);
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 300;
	line-height: 1.35;
	letter-spacing: -.01em;
	color: var(--gg-sea-deep);
}
.gg-pagina .gg-cs-numeri.e-con {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 12px 0 40px;
}
.gg-pagina .gg-cs-numeri .elementor-counter-number-wrapper {
	font-size: 46px;
}
.gg-pagina .gg-testo .gg-cs-titolo .gg-sezione {
	margin: 0 0 14px;
	padding: 0 0 10px;
	border: 0;
	border-bottom: 2px solid var(--gg-text);
	font-weight: 500;
}
.gg-pagina .gg-testo .gg-cs-compiti ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 18px 0 0;
	padding: 0;
}
.gg-pagina .gg-testo .gg-cs-compiti li {
	margin: 0;
	padding: 22px;
	background: var(--gg-sea-deep);
	color: var(--gg-white);
	font-size: 16px;
	line-height: 1.55;
}
.gg-pagina .gg-testo .gg-cs-compiti li:nth-child(2n) {
	background: var(--gg-earth-deep);
}
.gg-pagina .gg-testo .gg-cs-compiti li::before {
	display: none;
}
.gg-pagina .gg-cs-soci.e-con {
	gap: 0;
	padding: 24px 26px;
	background: var(--gg-sand-light);
	border-left: 5px solid var(--gg-olive);
}
.gg-pagina .gg-testo .gg-cs-bottone .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 6px;
	padding: 12px 20px;
	border-radius: 0;
	background: var(--gg-sea-deep);
	font-family: var(--gg-font-text);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
}
.gg-pagina .gg-cs-bottone .elementor-button-text::after {
	content: " ›";
	font-size: 20px;
	line-height: .7;
}
.gg-pagina .gg-cs-doc.e-con {
	padding: 22px 24px;
	border: 1px solid var(--gg-line);
	border-top: 5px solid var(--gg-sea);
}
.gg-pagina .gg-testo .gg-cs-doc .gg-sezione {
	border-bottom: 0;
	padding-bottom: 0;
}
.gg-pagina .gg-cs-doc p:last-child {
	margin-bottom: 0;
}
@media (max-width: 860px) {
	.gg-pagina .gg-cs-numeri.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gg-pagina .gg-testo .gg-cs-compiti ul { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
	.gg-pagina .gg-cs-numeri.e-con { grid-template-columns: 1fr; }
	.gg-pagina .gg-cs-numeri .elementor-counter-number-wrapper { flex-basis: 110px; font-size: 40px; }
}
/* Chi siamo sul telefono (29/10), stesso ritmo della home: 20 px dai bordi e meno vuoto
   fra le sezioni. I riquadri (in breve, soci, statuto) avevano 26 px di padding sopra i 24
   della pagina: il testo partiva a 50 px e i quindici comuni andavano a capo a ogni nome.
   Le cifre: numero accanto al testo in una colonna stretta, il 49% alto mezzo schermo;
   ora cifra sopra e testo sotto, centrati, come le cifre della copertina.
   Il margine di `.gg-foglio` vale per tutte le pagine interne del tema. */
@media (max-width: 600px) {
	.gg-pagina .gg-foglio.gg-foglio { padding: 24px 20px 44px; }
	/* «In breve» come riassunto in tre punti: titolo centrato, voci separate da un filetto.
	   Vale per ogni pagina che ha il riquadro */
	.gg-pagina .gg-breve { padding: 18px 18px 8px; margin-bottom: 28px; }
	.gg-pagina .gg-breve .gg-box-titolo { text-align: center; margin-bottom: 6px; }
	.gg-pagina .gg-breve li {
		margin: 0;
		padding: 12px 0;
		border-top: 1px solid rgba(46, 44, 40, .12);
	}
	.gg-pagina .gg-breve li:first-child { border-top: 0; }
	/* l'apertura in blu a 22 px era un muro di 14 righe: 19 px, a sinistra (variante A) */
	.gg-pagina .gg-testo .gg-cs-lead p { font-size: 19px; line-height: 1.45; margin-bottom: 22px; }
	.gg-pagina .gg-cs-sez.e-con { margin-bottom: 28px; }
	.gg-pagina .gg-cs-numeri.e-con { margin: 4px 0 28px; }
	.gg-pagina .gg-cs-numeri .gg-soci-numero { padding: 14px 16px; }
	.gg-pagina .gg-cs-numeri .gg-soci-numero .elementor-counter {
		flex-direction: column;
		align-items: center;
		gap: 4px;
		text-align: center;
	}
	.gg-pagina .gg-cs-numeri .elementor-counter-number-wrapper {
		flex-basis: auto;
		font-size: 36px;
		justify-content: center;
	}
	.gg-pagina .gg-cs-numeri .elementor-counter-title {
		font-size: 14.5px;
		justify-content: center;
		text-align: center;
	}
	.gg-pagina .gg-testo .gg-cs-compiti li { padding: 18px; }
	.gg-pagina .gg-cs-doc.e-con { padding: 18px; }
	/* Marco, 29/10: titoli e sottotitoli centrati e con più aria; il testo lungo resta a
	   sinistra. La riga sotto il titolo diventa un filetto corto, centrato col titolo.
	   Solo dentro `.gg-chisiamo`: LEADER 2014-2022 riusa le classi gg-cs-* e lì il testo
	   dopo il titolo è il corpo della pagina, che Marco vuole a sinistra */
	.gg-pagina .gg-chisiamo .gg-cs-sez.e-con { margin-bottom: 48px; }
	.gg-pagina .gg-testo .gg-chisiamo .gg-cs-titolo .gg-sezione {
		text-align: center;
		border-bottom: 0;
		padding-bottom: 0;
		margin-bottom: 14px;
	}
	.gg-pagina .gg-testo .gg-chisiamo .gg-cs-titolo .gg-sezione::after {
		content: "";
		display: block;
		width: 44px;
		height: 3px;
		margin: 12px auto 0;
		background: var(--gg-sun);
	}
	.gg-pagina .gg-chisiamo .gg-cs-titolo + .elementor-widget-text-editor { text-align: center; }
	.gg-pagina .gg-chisiamo .gg-cs-titolo + .elementor-widget-text-editor p { margin-bottom: 18px; }
	/* il filetto laterale dei soci faceva pensare a una citazione: sul telefono banda in
	   alto, come lo statuto, così sono due schede dello stesso tipo */
	.gg-pagina .gg-chisiamo .gg-cs-soci.e-con {
		border-left: 0;
		border-top: 5px solid var(--gg-olive);
		padding: 18px;
	}
	.gg-pagina .gg-chisiamo .gg-cs-bottone { align-self: center; text-align: center; }
	.gg-pagina .gg-chisiamo .gg-cs-bottone .elementor-button-wrapper { text-align: center; }
	.gg-pagina .gg-chisiamo .gg-cs-doc.e-con { text-align: center; }
	.gg-pagina .gg-testo:has(.gg-chisiamo) .post-views { justify-content: center; text-align: center; }
}

/* ---- Scheda comune (build-comune.py, modello «Scheda comune»): apertura, cifre, luoghi in schede,
   il sentiero con le tappe, sapori e feste, la mappa (gg-mappa-osm, come Contatti). Tutto widget;
   le schede senza foto prendono un numero dal contatore, una scheda duplicata si numera da sola ---- */
.gg-pagina .gg-comune.e-con {
	gap: 0;
}
.gg-pagina .gg-testo .gg-co-lead p {
	margin: 0 0 18px;
	font-family: var(--gg-font-display);
	font-size: clamp(21px, 2.2vw, 26px);
	font-weight: 300;
	line-height: 1.4;
	letter-spacing: -.01em;
	color: var(--gg-sea-deep);
}
.gg-pagina .gg-co-cifre.e-con {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	margin: 18px 0 12px;
	background: var(--gg-line);
	border: 1px solid var(--gg-line);
}
.gg-pagina .gg-co-cifra.e-con,
.gg-pagina .gg-co-dato.e-con {
	gap: 6px;
}
/* i Titoli in <p> della scheda non prendono il margine dei paragrafi del testo */
.gg-pagina .gg-testo .gg-comune p.elementor-heading-title {
	margin: 0;
}
.gg-pagina .gg-co-cifra.e-con {
	padding: 18px 20px;
	background: var(--gg-white);
}
.gg-pagina .gg-testo .gg-co-valore .elementor-heading-title {
	font-family: var(--gg-font-display);
	font-size: 34px;
	font-weight: 300;
	line-height: 1.05;
	letter-spacing: -.02em;
	color: var(--gg-sea-deep);
}
.gg-pagina .gg-co-valore small {
	margin-left: 2px;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0;
}
.gg-pagina .gg-testo .gg-co-etichetta .elementor-heading-title {
	font-family: var(--gg-font-text);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.35;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-co-sito p {
	font-size: 15px;
}
.gg-pagina .gg-co-foto img {
	width: 100%;
	height: auto;
	aspect-ratio: 21 / 9;
	object-fit: cover;
	margin-top: 14px;
}
/* i luoghi: due colonne di schede, foto o numero a sinistra */
.gg-pagina .gg-co-luoghi.e-con,
.gg-pagina .gg-co-sapori.e-con {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	counter-reset: gg-luogo;
}
.gg-pagina .gg-co-luogo.e-con {
	counter-increment: gg-luogo;
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	grid-auto-rows: min-content;
	align-content: start;
	gap: 4px 16px;
	padding: 16px;
	background: var(--gg-sand-light);
}
.gg-pagina .gg-co-luogo > .elementor-widget:not(.elementor-widget-image) {
	grid-column: 2;
}
.gg-pagina .gg-co-luogo > .elementor-widget-image,
.gg-pagina .gg-co-luogo:not(:has(> .elementor-widget-image))::after {
	grid-column: 1;
	grid-row: 1 / span 3;
	width: 112px;
	height: 112px;
}
.gg-pagina .gg-co-luogo > .elementor-widget-image img {
	width: 112px;
	height: 112px;
	object-fit: cover;
}
.gg-pagina .gg-co-luogo:not(:has(> .elementor-widget-image))::after {
	content: counter(gg-luogo, decimal-leading-zero);
	display: grid;
	place-items: center;
	background: var(--gg-sea-pale);
	font-family: var(--gg-font-display);
	font-size: 40px;
	font-weight: 200;
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-testo .gg-co-tipo .elementor-heading-title {
	font-family: var(--gg-font-text);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .12em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-testo .gg-co-nome .elementor-heading-title {
	font-family: var(--gg-font-display);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--gg-text);
}
.gg-pagina .gg-testo .gg-co-nome a {
	color: inherit;
	text-decoration: none;
}
.gg-pagina .gg-testo .gg-co-nome a::after {
	content: " ›";
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-testo .gg-co-nome-grande .elementor-heading-title {
	font-size: 20px;
}
.gg-pagina .gg-testo :is(.gg-co-luogo, .gg-co-sapore) p {
	margin: 0;
	font-size: 15.5px;
	line-height: 1.55;
}
/* il sentiero: foto a sinistra, dati e tappe a destra */
.gg-pagina .gg-co-sentiero.e-con {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: 28px;
	align-items: start;
}
.gg-pagina .gg-co-sentiero-foto img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}
.gg-pagina .gg-co-sentiero-testo.e-con {
	gap: 14px;
}
.gg-pagina .gg-co-dati.e-con {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 28px;
}
/* Elementor dà ai contenitori figli width:100%: affiancati, prendono la loro misura */
.gg-pagina .gg-co-dato.e-con {
	width: auto;
}
.gg-pagina .gg-testo .gg-co-dato .gg-co-valore .elementor-heading-title {
	font-size: 28px;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-testo .gg-co-sentiero-testo p {
	margin: 0;
}
.gg-pagina .gg-testo .gg-co-tappe ol {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: gg-tappa;
}
.gg-pagina .gg-testo .gg-co-tappe li {
	counter-increment: gg-tappa;
	position: relative;
	margin: 0;
	padding: 0 0 16px 40px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-co-tappe li strong {
	font-size: 16px;
	color: var(--gg-text);
}
.gg-pagina .gg-testo .gg-co-tappe li::before {
	content: counter(gg-tappa);
	position: absolute;
	left: 0;
	top: 0;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--gg-earth-deep);
	font-family: var(--gg-font-text);
	font-size: 13px;
	font-weight: 600;
	line-height: 26px;
	text-align: center;
	color: var(--gg-white);
}
.gg-pagina .gg-testo .gg-co-tappe li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 12px;
	top: 28px;
	bottom: 2px;
	width: 2px;
	background: var(--gg-sand);
}
.gg-pagina .gg-co-galleria {
	margin-top: 20px;
}
/* il secondo sentiero si stacca dalla galleria del primo (Marco, 16/10: «sembrano appiccicati») */
.gg-pagina .gg-co-galleria + .gg-co-sentiero,
.gg-pagina .gg-co-sentiero + .gg-co-sentiero {
	margin-top: 56px;
	padding-top: 44px;
	border-top: 1px solid var(--gg-line);
}
/* aria prima di ogni sezione: la fine di un blocco non tocca il titolo del successivo */
.gg-pagina .gg-comune > .elementor-widget-heading:has(h2) {
	margin-top: 64px;
}
.gg-pagina .gg-testo .gg-comune > .elementor-widget-heading .gg-sezione {
	margin-top: 0;
}
.gg-pagina .gg-co-galleria .gallery {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
}
.gg-pagina .gg-co-galleria .gallery-item {
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.gg-pagina .gg-co-galleria img {
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	border: 0 !important;
}
.gg-pagina .gg-testo .gg-co-h3 .elementor-heading-title {
	margin: 30px 0 8px;
	font-size: 19px;
}
/* sapori e feste: foto in alto, filetto sole (prodotti) o terra (feste) */
.gg-pagina .gg-co-sapore.e-con {
	gap: 6px;
	padding: 0 0 18px;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
	border-top: 4px solid var(--gg-sun);
}
.gg-pagina .gg-co-sapore:nth-child(n+3) {
	border-top-color: var(--gg-earth);
}
.gg-pagina .gg-co-sapore > .elementor-widget:not(.elementor-widget-image) {
	padding: 0 18px;
}
.gg-pagina .gg-co-sapore > .elementor-widget-image {
	margin-bottom: 8px;
}
.gg-pagina .gg-co-sapore img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.gg-pagina .gg-comune .gg-mappa-osm {
	margin-top: 4px;
}
@media (max-width: 860px) {
	.gg-pagina .gg-co-cifre.e-con,
	.gg-pagina .gg-co-galleria .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gg-pagina .gg-co-luoghi.e-con,
	.gg-pagina .gg-co-sapori.e-con,
	.gg-pagina .gg-co-sentiero.e-con { grid-template-columns: 1fr; }
	.gg-pagina .gg-co-sentiero-foto img { aspect-ratio: 16 / 9; }
}
@media (max-width: 520px) {
	.gg-pagina .gg-co-luogo.e-con { grid-template-columns: 80px minmax(0, 1fr); }
	.gg-pagina .gg-co-luogo > .elementor-widget-image,
	.gg-pagina .gg-co-luogo > .elementor-widget-image img,
	.gg-pagina .gg-co-luogo:not(:has(> .elementor-widget-image))::after { width: 80px; height: 80px; }
	.gg-pagina .gg-co-luogo:not(:has(> .elementor-widget-image))::after { font-size: 30px; }
}

/* testate senza foto né dati (Contatti, Chi siamo) sul telefono: metà altezza (Marco, 16/10).
   Bandi e progetti hanno la testata alta quanto il loro contenuto e restano com'erano */
@media (max-width: 680px) {
	.gg-pagina .gg-pt:not(.gg-pt-lungo) {
		min-height: 120px;
	}
	.gg-pagina .gg-pt:not(.gg-pt-lungo) .gg-pt-filigrana {
		font-size: 96px;
	}
}

/* ---- Scheda prodotto (build-prodotto.py, proposta B «calendario»): etichetta, apertura, il calendario
   dell'anno, dove si produce, la foto, il testo del GAL in sezioni, tre prodotti collegati. Il calendario
   è fatto di contenitori gg-pr-riga con tre Titoli (nome, nota, mesi a parole): le barre le aggiunge
   pagina.js leggendo i mesi; senza script resta il testo ---- */
.gg-pagina .gg-prodotto.e-con {
	gap: 0;
}
.gg-pagina .gg-testo .gg-prodotto p.elementor-heading-title {
	margin: 0;
}
.gg-pagina .gg-testo .gg-pr-etichetta .elementor-heading-title {
	margin: 0 0 10px;
	font-family: var(--gg-font-text);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-testo .gg-pr-lead p {
	margin: 0 0 8px;
	font-family: var(--gg-font-display);
	font-size: clamp(20px, 2.1vw, 25px);
	font-weight: 300;
	line-height: 1.45;
	color: var(--gg-sea-deep);
}
/* il calendario: nome e nota a sinistra, dodici caselle a destra */
/* il calendario scorre da solo sugli schermi stretti: contain fa sì che le sue righe larghe
   non allarghino la colonna del testo */
.gg-pagina .gg-pr-anno.e-con {
	contain: inline-size;
	gap: 6px;
	padding: 18px 20px 16px;
	overflow-x: auto;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
}
.gg-pagina .gg-pr-anno > *,
.gg-pagina .gg-pr-mesi-testa {
	min-width: 560px;
}
.gg-pagina .gg-pr-riga.e-con,
.gg-pagina .gg-pr-mesi-testa {
	display: grid;
	grid-template-columns: 190px minmax(0, 1fr);
	grid-auto-rows: min-content;
	align-items: center;
	gap: 0 14px;
}
.gg-pagina .gg-pr-riga > .elementor-widget {
	grid-column: 1;
}
.gg-pagina .gg-pr-barre,
.gg-pagina .gg-pr-mesi-testa > div {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 3px;
}
.gg-pagina .gg-pr-barre {
	grid-column: 2;
	grid-row: 1 / span 3;
}
.gg-pagina .gg-pr-barre i {
	height: 22px;
	background: var(--gg-sand-light);
}
.gg-pagina .gg-pr-barre i.gg-pr-si {
	background: var(--gg-sun);
}
.gg-pagina .gg-pr-riga:not(.gg-pr-festa) + .gg-pr-riga:not(.gg-pr-festa) .gg-pr-barre i.gg-pr-si {
	background: var(--gg-earth);
}
.gg-pagina .gg-pr-riga:not(.gg-pr-festa) + .gg-pr-riga:not(.gg-pr-festa) + .gg-pr-riga:not(.gg-pr-festa) .gg-pr-barre i.gg-pr-si {
	background: var(--gg-olive);
}
.gg-pagina .gg-pr-festa .gg-pr-barre i.gg-pr-si {
	background: var(--gg-sea-deep);
}
.gg-pagina .gg-pr-mesi-testa span {
	font-family: var(--gg-font-text);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .06em;
	text-align: center;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-pr-riga-nome .elementor-heading-title {
	font-family: var(--gg-font-text);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--gg-text);
}
.gg-pagina .gg-testo :is(.gg-pr-riga-nota, .gg-pr-riga-mesi) .elementor-heading-title {
	font-family: var(--gg-font-text);
	font-size: 12.5px;
	font-weight: 400;
	line-height: 1.35;
	color: var(--gg-text-soft);
}
/* con le barre disegnate i mesi scritti restano solo per chi usa lo screen reader */
.gg-pagina .gg-pr-disegnata .gg-pr-riga-mesi {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
/* Sul telefono il calendario non scorre più di lato (Marco, 29/10): largo 600 px in 332
   costringeva a trascinarlo, e nome e mesi non si vedevano insieme. Ogni riga va in
   colonna — nome e nota sopra, dodici caselle sotto a tutta larghezza — e la testata
   dei mesi perde la colonna dei nomi; le sigle rimpiccioliscono per stare in 24 px. */
@media (max-width: 600px) {
	.gg-pagina .gg-pr-anno.e-con { overflow-x: visible; padding: 14px 14px 12px; gap: 12px; }
	.gg-pagina .gg-pr-anno > *,
	.gg-pagina .gg-pr-mesi-testa { min-width: 0; }
	.gg-pagina .gg-pr-riga.e-con,
	.gg-pagina .gg-pr-mesi-testa { grid-template-columns: minmax(0, 1fr); gap: 2px 0; }
	.gg-pagina .gg-pr-mesi-testa > span:first-child { display: none; }
	.gg-pagina .gg-pr-barre { grid-column: 1; grid-row: auto; margin-top: 6px; }
	.gg-pagina .gg-pr-barre,
	.gg-pagina .gg-pr-mesi-testa > div { gap: 2px; }
	.gg-pagina .gg-pr-barre i { height: 18px; }
	.gg-pagina .gg-pr-mesi-testa span { font-size: 9.5px; letter-spacing: 0; }
}
.gg-pagina .gg-testo .gg-pr-dove p {
	margin: 14px 0 0;
	font-size: 15.5px;
}
.gg-pagina .gg-testo .gg-pr-dove a {
	font-weight: 600;
}
.gg-pagina .gg-pr-foto img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	margin: 26px 0 4px;
}
/* dallo stesso territorio: tre riquadri con foto e nome */
.gg-pagina .gg-pr-altri.e-con {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.gg-pagina .gg-pr-altro.e-con {
	gap: 0;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
}
.gg-pagina .gg-pr-altro img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.gg-pagina .gg-testo .gg-pr-altro .gg-pr-nome .elementor-heading-title {
	padding: 12px 14px 14px;
	font-family: var(--gg-font-display);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
}
.gg-pagina .gg-testo .gg-pr-nome a::after {
	content: " ›";
	color: var(--gg-sea-dark);
}
@media (max-width: 860px) {
	.gg-pagina .gg-pr-altri.e-con { grid-template-columns: 1fr; }
}

/* ---- Scheda produttore (build-produttore.py, proposta C «sul territorio»): la foto larga col logo
   appoggiato, etichetta, apertura, «Dove si trova» (mappa gg-mappa-osm e contatti affiancati), la storia,
   la galleria (gg-co-galleria), prodotti tipici e produttori vicini (gg-pr-altri della scheda prodotto).
   Senza foto d'apertura (gg-pd-senza-foto) il logo sta da solo in testa ---- */
.gg-pagina .gg-scheda-produttore.e-con {
	gap: 0;
}
.gg-pagina .gg-testo .gg-scheda-produttore p.elementor-heading-title {
	margin: 0;
}
.gg-pagina .gg-scheda-produttore > .elementor-widget-heading:has(h2) {
	margin-top: 48px;
}
.gg-pagina .gg-pd-apertura.e-con {
	position: relative;
	gap: 0;
	margin-bottom: 14px;
}
.gg-pagina .gg-pd-copertina img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 2 / 1;
	object-fit: cover;
}
.gg-pagina .gg-pd-apertura .gg-pd-logo.gg-pd-logo {
	position: absolute;
	left: 18px;
	bottom: -30px;
	width: 108px;
	max-width: none;
}
.gg-pagina .gg-pd-apertura.gg-pd-senza-foto .gg-pd-logo.gg-pd-logo {
	position: static;
	width: 150px;
}
.gg-pagina .gg-pd-logo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: contain;
	padding: 10px;
	background: var(--gg-white);
	box-sizing: border-box;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .12);
}
.gg-pagina .gg-pd-senza-foto .gg-pd-logo img {
	box-shadow: none;
	border: 1px solid var(--gg-line);
}
.gg-pagina .gg-pd-apertura:not(.gg-pd-senza-foto) + .gg-pd-etichetta {
	min-height: 36px;
	margin-left: 144px;
}
.gg-pagina .gg-testo .gg-pd-etichetta p {
	margin: 0 0 14px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--gg-earth-deep);
}
.gg-pagina .gg-testo .gg-pd-lead p {
	margin: 0;
	font-family: var(--gg-font-display);
	font-size: clamp(20px, 2.1vw, 24px);
	font-weight: 300;
	line-height: 1.45;
	color: var(--gg-sea-deep);
}
/* dove si trova: la mappa a sinistra, i contatti a destra, un solo riquadro */
.gg-pagina .gg-pd-dove.e-con {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: 0;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
}
.gg-pagina .gg-pd-dove .gg-mappa-osm .gg-mappa-tela {
	height: 100%;
	min-height: 360px;
	border: 0;
}
.gg-pagina .gg-pd-contatti.e-con {
	gap: 0;
	padding: 8px 20px;
}
.gg-pagina .gg-pd-contatto.e-con {
	gap: 2px;
	padding: 9px 0;
	border-bottom: 1px solid var(--gg-line);
}
.gg-pagina .gg-pd-contatto.e-con:last-child {
	border-bottom: 0;
}
.gg-pagina .gg-testo .gg-pd-voce .elementor-heading-title {
	font-family: var(--gg-font-text);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-pd-valore p {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
	overflow-wrap: anywhere;
}
/* nelle schede in fondo: il comune o «Prodotto tipico» sopra il nome */
.gg-pagina .gg-testo .gg-pr-altro .gg-pd-sopra .elementor-heading-title {
	padding: 12px 14px 0;
	font-family: var(--gg-font-text);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-pr-altro .gg-pd-sopra + .gg-pr-nome .elementor-heading-title {
	padding-top: 4px;
}
.gg-pagina .gg-testo .gg-pd-avviso p {
	margin: 34px 0 0;
	padding-top: 16px;
	font-size: 15px;
	border-top: 1px solid var(--gg-line);
}
@media (max-width: 860px) {
	.gg-pagina .gg-pd-dove.e-con { grid-template-columns: 1fr; }
	.gg-pagina .gg-pd-dove .gg-mappa-osm .gg-mappa-tela { min-height: 340px; }
}
@media (max-width: 560px) {
	.gg-pagina .gg-pd-apertura .gg-pd-logo.gg-pd-logo { width: 80px; left: 12px; bottom: -24px; }
	.gg-pagina .gg-pd-apertura:not(.gg-pd-senza-foto) + .gg-pd-etichetta { margin-left: 104px; }
}

/* ---- Luoghi di interesse ([gg-luoghi], proposta C «atlante»): la mappa ferma a sinistra,
   a destra i luoghi per comune con la miniatura e la prima frase ---- */
.gg-pagina .gg-luoghi {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}
.gg-pagina .gg-luoghi .gg-mappa-progetti {
	position: sticky;
	top: 20px;
	margin: 0;
}
.gg-pagina .gg-luoghi .gg-mappa-tela {
	height: calc(100vh - 40px);
	max-height: 720px;
}
.gg-pagina .gg-testo .gg-luoghi-elenco h2 {
	margin: 30px 0 8px;
	font-size: 21px;
}
.gg-pagina .gg-testo .gg-luoghi-elenco h2:first-child {
	margin-top: 0;
}
.gg-pagina .gg-testo .gg-luoghi-elenco h2 a {
	color: inherit;
	text-decoration: none;
}
.gg-pagina .gg-testo .gg-luoghi-righe {
	margin: 0;
	padding: 0;
	list-style: none;
}
.gg-pagina .gg-testo .gg-luoghi-righe li {
	margin: 0;
	padding: 0;
}
.gg-pagina .gg-testo .gg-luoghi-righe li::before {
	content: none;
}
.gg-pagina .gg-testo a.gg-luogo {
	display: grid;
	grid-template-columns: 104px minmax(0, 1fr);
	gap: 14px;
	padding: 10px 0;
	border-bottom: 1px solid var(--gg-line);
	color: inherit;
	text-decoration: none;
}
.gg-pagina .gg-luogo img {
	display: block;
	width: 104px;
	height: 72px;
	object-fit: cover;
}
/* senza immagine in evidenza la colonna della foto resta vuota: il testo non si sposta */
.gg-pagina .gg-luogo > span:first-child {
	grid-column: 2;
}
.gg-pagina .gg-luogo b {
	display: block;
	font: 600 16.5px/1.3 var(--gg-font-display);
	color: var(--gg-text);
}
.gg-pagina .gg-luogo b::after {
	content: " ›";
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-luogo small {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-top: 3px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-luogo:hover b,
.gg-pagina .gg-luogo:focus-visible b {
	color: var(--gg-sea-dark);
}
/* il rimando ai paesaggi rurali, in fondo */
.gg-pagina .gg-testo .gg-lu-rimando p {
	margin: 36px 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--gg-line);
	font-size: 15.5px;
}
@media (max-width: 900px) {
	.gg-pagina .gg-luoghi { grid-template-columns: 1fr; }
	.gg-pagina .gg-luoghi .gg-mappa-progetti { position: static; }
	.gg-pagina .gg-luoghi .gg-mappa-tela { height: 360px; }
}

/* ---- Paesaggio rurale (pagine figlie di Luoghi di interesse, build-paesaggio.py): due frasi,
   il testo intero nell'Interruttore, la mappa e l'elenco breve di [gg-paesaggio], i collegamenti ---- */
.gg-pagina .gg-testo .gg-pa-dove p {
	margin: 0 0 14px;
	font-size: 15px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-pa-dove a {
	font-weight: 600;
}
.gg-pagina .gg-testo .gg-pa-breve p {
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.55;
}
.gg-pagina .gg-pa-tutto {
	margin: 6px 0 24px;
}
.gg-pagina .gg-pa-tutto .elementor-tab-title {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}
.gg-pagina .gg-testo .gg-pa-tutto .elementor-toggle-title {
	font-weight: 600;
	color: var(--gg-sea-dark);
	text-decoration: none;
}
.gg-pagina .gg-pa-tutto .elementor-toggle-icon {
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-pa-tutto .elementor-tab-content {
	padding: 10px 0 0;
	font-size: 15.5px;
}
.gg-pagina .gg-mappa-paesaggio {
	position: relative;
}
.gg-pagina .gg-mappa-paesaggio .gg-mappa-tela {
	height: 480px;
}
.gg-pagina .gg-mappa-paesaggio .leaflet-popup-content p {
	margin: 6px 0 0;
	font-size: 14px;
	line-height: 1.45;
}
.gg-pagina .gg-testo .gg-paesaggio-legenda {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
	font-size: 13.5px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-paesaggio-legenda li {
	margin: 0;
	padding: 0;
}
.gg-pagina .gg-testo .gg-paesaggio-legenda li::before,
.gg-pagina .gg-paesaggio-gruppo h2::before {
	content: "";
	position: static; /* l'icona degli elenchi del testo è assoluta: copriva la prima lettera */
	display: inline-block;
	width: 11px;
	height: 11px;
	margin-right: 6px;
	border-radius: 50%;
	background: var(--c);
	vertical-align: -1px;
}
.gg-pagina .gg-paesaggio-elenco {
	columns: 3 260px;
	column-gap: 32px;
	margin-top: 8px;
}
.gg-pagina .gg-paesaggio-elenco:focus {
	outline: none;
}
.gg-pagina .gg-paesaggio-gruppo {
	break-inside: avoid;
	padding-bottom: 6px;
}
.gg-pagina .gg-testo .gg-paesaggio-gruppo h2 {
	margin: 22px 0 4px;
	font-size: 16.5px;
}
.gg-pagina .gg-testo .gg-paesaggio-gruppo ul {
	margin: 0;
	padding: 0 0 0 19px;
	list-style: none;
}
.gg-pagina .gg-testo .gg-paesaggio-gruppo li {
	margin: 0;
	padding: 3px 0;
	font-size: 15px;
}
.gg-pagina .gg-testo .gg-paesaggio-gruppo li::before {
	content: none;
}
.gg-pagina .gg-paesaggio-gruppo summary {
	cursor: pointer;
}
.gg-pagina .gg-paesaggio-gruppo small {
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-paesaggio-gruppo details p {
	margin: 4px 0 6px;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-paesaggio-scheda {
	display: inline-block;
	margin-bottom: 6px;
	font-size: 14.5px;
	font-weight: 600;
}
.gg-pagina .gg-testo .gg-paesaggio-scheda::after {
	content: " ›";
}
.gg-pagina .gg-pa-sito.e-con {
	margin-top: 30px;
	padding: 20px 22px;
	background: var(--gg-sand-light);
}
.gg-pagina .gg-testo .gg-pa-sito h2 {
	margin: 0 0 10px;
	font-size: 18px;
}
.gg-pagina .gg-testo .gg-pa-sito ul {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 10px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gg-pagina .gg-testo .gg-pa-sito li {
	margin: 0;
	padding: 0;
	line-height: 1.35;
}
.gg-pagina .gg-testo .gg-pa-sito li::before {
	content: none;
}
.gg-pagina .gg-testo .gg-pa-sito li a {
	font-weight: 600;
}
.gg-pagina .gg-testo .gg-pa-fonte p {
	margin: 40px 0 0;
	padding-top: 14px;
	border-top: 1px solid var(--gg-line);
	font-size: 14px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-pa-sito small {
	font-size: 13px;
	color: var(--gg-text-soft);
}

/* ---- Scheda luogo (figlie di Luoghi di interesse, build-luogo.py, proposta B «nel comune»): il comune
   sopra, testo e foto alla sua misura vera, il riquadro del comune e i vicini di [gg-luogo] ---- */
.gg-pagina .gg-testo .gg-lg-sopra {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.gg-pagina .gg-testo .gg-lg-sopra a {
	text-decoration: none;
}
.gg-pagina .gg-lg-apri.e-con {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 28px;
	align-items: start;
}
.gg-pagina .gg-testo .gg-lg-testo p {
	font-size: 17.5px;
	line-height: 1.65;
}
.gg-pagina .gg-testo .gg-lg-testo p:first-child {
	margin-top: 0;
}
/* la foto non si allarga oltre la sua misura: quasi tutte sono sotto gli 800 px */
.gg-pagina .gg-lg-foto img {
	display: block;
	width: auto;
	max-width: min(100%, 420px);
	height: auto;
	border: 8px solid var(--gg-white);
	box-shadow: 0 1px 6px rgba(0, 0, 0, .18);
}
.gg-pagina .gg-lg-comune {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 24px;
	margin: 40px 0 0;
	padding: 26px;
	background: var(--gg-sand-light);
}
.gg-pagina .gg-lg-comune-foto img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.gg-pagina .gg-testo .gg-lg-comune h2 {
	margin: 0 0 6px;
	font-size: 22px;
}
.gg-pagina .gg-testo .gg-lg-comune h3 {
	margin: 20px 0 10px;
	font-size: 16px;
}
.gg-pagina .gg-testo .gg-lg-comune .gg-riquadri {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
}
.gg-pagina .gg-lg-comune .gg-riquadro span {
	font-size: 14.5px;
	top: 10px;
	left: 10px;
	right: 10px;
}
.gg-pagina .gg-testo .gg-lg-righe {
	margin: 0;
	padding: 0;
	list-style: none;
}
.gg-pagina .gg-testo .gg-lg-righe li {
	margin: 0;
	padding: 0;
}
.gg-pagina .gg-testo .gg-lg-righe li::before {
	content: none;
}
.gg-pagina .gg-testo a.gg-lg-riga {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr) auto;
	gap: 14px;
	align-items: center;
	padding: 10px 0;
	border-bottom: 1px solid var(--gg-line);
	color: inherit;
	text-decoration: none;
}
.gg-pagina .gg-lg-riga img {
	display: block;
	width: 96px;
	height: 66px;
	object-fit: cover;
}
.gg-pagina .gg-lg-riga b {
	display: block;
	font: 600 16.5px/1.3 var(--gg-font-display);
	color: var(--gg-text);
}
.gg-pagina .gg-lg-riga small {
	font-size: 14px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-lg-riga em {
	font-size: 14px;
	font-style: normal;
	font-weight: 600;
	white-space: nowrap;
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-lg-riga:hover b,
.gg-pagina .gg-lg-riga:focus-visible b {
	color: var(--gg-sea-dark);
}
@media (max-width: 760px) {
	.gg-pagina .gg-lg-apri.e-con,
	.gg-pagina .gg-lg-comune { grid-template-columns: 1fr; }
	.gg-pagina .gg-testo .gg-lg-comune .gg-riquadri { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gg-pagina .gg-lg-comune { padding: 20px; }
	.gg-pagina .gg-lg-comune-foto img { aspect-ratio: 16 / 7; }
	.gg-pagina .gg-testo a.gg-lg-riga { grid-template-columns: 72px minmax(0, 1fr); }
	.gg-pagina .gg-lg-riga img { width: 72px; height: 54px; }
	.gg-pagina .gg-lg-riga em { grid-column: 2; }
}

/* ---- Sentieri di incontro ([gg-sentieri], proposta C «atlante»): le cifre, la mappa ferma a sinistra,
   i sentieri a destra col loro colore sul bordo ---- */
.gg-pagina .gg-testo .gg-se-cifre {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	margin: 26px 0 8px;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--gg-line);
	border-bottom: 1px solid var(--gg-line);
}
.gg-pagina .gg-testo .gg-se-cifre li {
	margin: 0;
	padding: 16px 10px;
	font-size: 14px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-se-cifre li::before {
	content: none;
}
.gg-pagina .gg-se-cifre b {
	display: block;
	font: 600 34px/1.1 var(--gg-font-display);
	color: var(--gg-sea-deep);
}
.gg-pagina .gg-se-atlante {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}
.gg-pagina .gg-mappa-sentieri {
	position: sticky;
	top: 20px;
}
.gg-pagina .gg-mappa-sentieri .gg-mappa-tela {
	height: calc(100vh - 40px);
	max-height: 720px;
}
.gg-pagina .gg-testo .gg-se-righe {
	margin: 0;
	padding: 0;
	list-style: none;
}
.gg-pagina .gg-se-righe:focus {
	outline: none;
}
.gg-pagina .gg-testo .gg-se-righe li {
	margin: 0;
	padding: 0;
}
.gg-pagina .gg-testo .gg-se-righe li::before {
	content: none;
}
.gg-pagina .gg-testo a.gg-se-riga {
	display: grid;
	grid-template-columns: 104px minmax(0, 1fr);
	gap: 14px;
	padding: 11px 0 11px 12px;
	border-bottom: 1px solid var(--gg-line);
	border-left: 5px solid var(--c);
	color: inherit;
	text-decoration: none;
}
.gg-pagina .gg-se-riga img {
	display: block;
	width: 104px;
	height: 72px;
	object-fit: cover;
}
.gg-pagina .gg-se-riga b {
	display: block;
	font: 600 16.5px/1.3 var(--gg-font-display);
	color: var(--gg-text);
}
.gg-pagina .gg-se-riga small {
	display: block;
	margin-top: 3px;
	font-size: 14px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-se-riga:hover b,
.gg-pagina .gg-se-riga:focus-visible b {
	color: var(--gg-sea-dark);
}
@media (max-width: 900px) {
	.gg-pagina .gg-se-atlante { grid-template-columns: 1fr; }
	.gg-pagina .gg-mappa-sentieri { position: static; }
	.gg-pagina .gg-mappa-sentieri .gg-mappa-tela { height: 380px; }
}
@media (max-width: 760px) {
	.gg-pagina .gg-testo .gg-se-cifre { grid-template-columns: 1fr 1fr; }
}

/* ---- Scheda sentiero (articoli di Sentieri di incontro, build-sentiero.py, proposta A): comuni e cifre,
   mappa e profilo di [gg-sentiero], testo, file, luoghi in riquadri, foto, progetto ---- */
.gg-pagina .gg-testo .gg-sn-dove {
	margin: 0 0 12px;
	font-weight: 600;
}
.gg-pagina .gg-testo .gg-sn-cifre {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--gg-line);
	border-bottom: 1px solid var(--gg-line);
}
.gg-pagina .gg-testo .gg-sn-cifre li {
	margin: 0;
	padding: 14px 10px;
	font-size: 14px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-sn-cifre li::before {
	content: none;
}
.gg-pagina .gg-sn-cifre b {
	display: block;
	font: 600 26px/1.15 var(--gg-font-display);
	color: var(--gg-sea-deep);
}
.gg-pagina .gg-mappa-sentiero {
	position: relative;
}
.gg-pagina .gg-mappa-sentiero .gg-mappa-tela {
	height: 440px;
}
.gg-pagina .gg-testo .gg-sn-profilo {
	margin: 18px 0 0;
}
.gg-pagina .gg-sn-profilo svg {
	display: block;
	width: 100%;
	height: auto;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
}
.gg-pagina .gg-sn-profilo text {
	font: 12px var(--gg-font-text);
	fill: var(--gg-text-soft);
}
.gg-pagina .gg-sn-profilo figcaption {
	margin-top: 6px;
	font-size: 13px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-sn-testo p {
	font-size: 17px;
	line-height: 1.65;
}
.gg-pagina .gg-testo .gg-sn-file ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.gg-pagina .gg-testo .gg-sn-file li {
	margin: 0;
	padding: 0;
}
.gg-pagina .gg-testo .gg-sn-file li::before {
	content: none;
}
.gg-pagina .gg-testo .gg-sn-file a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 0;
	border-bottom: 1px solid var(--gg-line);
	font-weight: 600;
}
.gg-pagina .gg-sn-file a::before {
	content: "↓";
	display: inline-grid;
	place-items: center;
	flex: none;
	width: 28px;
	height: 28px;
	background: var(--gg-sea-deep);
	color: var(--gg-white);
	font-weight: 700;
}
/* i luoghi in riquadri: tre per riga, la distanza in basso anche sul telefono */
.gg-pagina .gg-testo .gg-sn-luoghi {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.gg-pagina .gg-sn-luoghi .gg-riquadro {
	aspect-ratio: 4 / 3;
}
.gg-pagina .gg-sn-luoghi .gg-riquadro span {
	font-size: 16px;
}
.gg-pagina .gg-sn-foto .gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
}
.gg-pagina .gg-sn-foto .gallery-item {
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.gg-pagina .gg-sn-foto .gallery-item img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border: 0 !important;
}
.gg-pagina .gg-sn-foto .gallery br {
	display: none;
}
.gg-pagina .gg-testo .gg-sn-prog p {
	margin: 30px 0 0;
	padding: 18px 20px;
	background: var(--gg-sand-light);
	font-size: 15.5px;
}
@media (max-width: 760px) {
	.gg-pagina .gg-testo .gg-sn-cifre { grid-template-columns: 1fr 1fr; }
	.gg-pagina .gg-testo .gg-sn-luoghi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gg-pagina .gg-sn-luoghi .gg-riquadro .gg-riquadro-tipi { display: block; padding: 18px 10px 8px; font-size: 12px; }
	.gg-pagina .gg-sn-foto .gallery { grid-template-columns: 1fr 1fr; }
	.gg-pagina .gg-mappa-sentiero .gg-mappa-tela { height: 340px; }
}

/* Itinerari (9843): [gg-itinerari], tessere con foto, sottotitolo e comuni — proposta A del 21/10 */
.gg-pagina .gg-testo .gg-it-tessere {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}
.gg-pagina .gg-testo .gg-it-tessere li {
	margin: 0;
	padding: 0;
}
.gg-pagina .gg-testo .gg-it-tessere li::before {
	display: none;
}
.gg-pagina .gg-testo .gg-it-tessera {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid var(--gg-line);
	color: inherit;
	text-decoration: none;
}
.gg-pagina .gg-it-tessera img,
.gg-pagina .gg-it-vuota {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	background: var(--gg-sand-light);
}
.gg-pagina .gg-it-corpo {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 8px;
	padding: 16px 18px 18px;
}
.gg-pagina .gg-it-corpo b {
	font: 600 18px/1.3 var(--gg-font-display);
	color: var(--gg-text);
}
.gg-pagina .gg-it-corpo i {
	font-size: 15px;
	line-height: 1.45;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-it-corpo small {
	margin-top: auto;
	padding-top: 10px;
	border-top: 1px solid var(--gg-line);
	font-size: 13.5px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-it-tessera:hover b,
.gg-pagina .gg-it-tessera:focus-visible b {
	color: var(--gg-sea-dark);
}
@media (max-width: 1000px) {
	.gg-pagina .gg-testo .gg-it-tessere { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.gg-pagina .gg-testo .gg-it-tessere { grid-template-columns: 1fr; }
}
/* Sul telefono due per riga (Marco, 29/10). Sono nove: il primo resta grande a tutta
   larghezza, così gli altri otto vanno in coppia e nessuno resta solo in fondo */
@media (max-width: 600px) {
	.gg-pagina .gg-testo .gg-it-tessere.gg-it-tessere { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.gg-pagina .gg-testo .gg-it-tessere li:first-child { grid-column: 1 / -1; }
	.gg-pagina .gg-it-tessere li:not(:first-child) .gg-it-tessera img,
	.gg-pagina .gg-it-tessere li:not(:first-child) .gg-it-vuota { aspect-ratio: 4 / 3; }
	.gg-pagina .gg-it-tessere li:not(:first-child) .gg-it-corpo { gap: 6px; padding: 10px 10px 12px; }
	.gg-pagina .gg-it-tessere li:not(:first-child) .gg-it-corpo b { font-size: 14.5px; }
	.gg-pagina .gg-it-tessere li:not(:first-child) .gg-it-corpo i {
		font-size: 12.5px;
		line-height: 1.4;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		overflow: hidden;
	}
	.gg-pagina .gg-it-tessere li:not(:first-child) .gg-it-corpo small { font-size: 11.5px; padding-top: 8px; }
}

/* Scheda itinerario (9 figlie di 9843): proposta C «capitoli» del 21/10 — build-itinerario.py.
   Ogni paragrafo del GAL a sinistra, le tappe che nomina in riquadri a destra. */
.gg-pagina .gg-iq-apri.e-con {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 30px;
	align-items: center;
	margin-bottom: 26px;
}
.gg-pagina .gg-testo .gg-iq-sotto p {
	margin: 0;
	font: italic 400 22px/1.4 var(--gg-font-display);
	color: var(--gg-sea-deep);
}
.gg-pagina .gg-iq-foto img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.gg-pagina .gg-itinerario-scheda > .gg-iq-foto {
	margin: 26px 0;
}
.gg-pagina .gg-iq-cap.e-con {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 230px;
	gap: 30px;
	align-items: start;
	padding: 6px 0;
}
.gg-pagina .gg-iq-cap.e-con + .gg-iq-cap.e-con {
	padding-top: 18px;
	border-top: 1px solid var(--gg-line);
}
.gg-pagina .gg-testo .gg-iq-testo p:first-child {
	margin-top: 0;
}
.gg-pagina .gg-testo .gg-iq-testo a strong {
	font-weight: 600;
}
.gg-pagina .gg-iq-lato.e-con {
	display: grid;
	gap: 12px;
	margin-top: 6px;
}
.gg-pagina .gg-iq-tappa .elementor-image-box-wrapper {
	display: flex;
	align-items: stretch;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
	text-align: left;
}
.gg-pagina .gg-iq-tappa .elementor-image-box-img {
	flex: none;
	width: 84px !important;
	margin: 0 !important;
}
.gg-pagina .gg-iq-tappa .elementor-image-box-img img {
	display: block;
	width: 84px;
	height: 100%;
	min-height: 84px;
	object-fit: cover;
}
.gg-pagina .gg-iq-tappa .elementor-image-box-content {
	padding: 8px 12px;
}
.gg-pagina .gg-testo .gg-iq-tappa .elementor-image-box-title {
	margin: 0;
	font: 600 14.5px/1.3 var(--gg-font-display);
}
.gg-pagina .gg-testo .gg-iq-tappa .elementor-image-box-title a {
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-testo .gg-iq-tappa .elementor-image-box-title a:hover,
.gg-pagina .gg-testo .gg-iq-tappa .elementor-image-box-title a:focus-visible {
	color: var(--gg-sea-dark);
}
.gg-pagina .gg-testo .gg-iq-tappa .elementor-image-box-description {
	margin: 4px 0 0;
	font-size: 13.5px;
	line-height: 1.35;
	color: var(--gg-text-soft);
}
@media (max-width: 900px) {
	.gg-pagina .gg-iq-apri.e-con,
	.gg-pagina .gg-iq-cap.e-con { grid-template-columns: 1fr; }
	.gg-pagina .gg-iq-lato.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gg-pagina .gg-iq-lato.e-con:empty { display: none; }
}
@media (max-width: 480px) {
	.gg-pagina .gg-iq-lato.e-con { grid-template-columns: 1fr; }
	.gg-pagina .gg-testo .gg-iq-sotto p { font-size: 19px; }
}

/* ---- Link utili (build-link-utili.py): quattro riquadri per bisogno, il primo largo ----
   Titolo ed Elenco icone di Elementor; qui solo l'aspetto. Il dominio sotto il nome
   (.gg-lu-dominio) lo scrive pagina.js dal link. Colori dei riquadri a turno */
.gg-pagina .gg-lu.e-con {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}
.gg-pagina .gg-lu-gruppo.e-con {
	--c: var(--gg-sea-dark);
	gap: 6px;
	padding: 20px 22px 8px;
	background: var(--gg-white);
	border: 1px solid var(--gg-line);
	border-top: 5px solid var(--c);
}
.gg-pagina .gg-lu-gruppo:nth-child(4n+1) { --c: var(--gg-sun); }
.gg-pagina .gg-lu-gruppo:nth-child(4n+3) { --c: var(--gg-olive); }
.gg-pagina .gg-lu-gruppo:nth-child(4n+4) { --c: var(--gg-earth); }
/* il primo riquadro, quello dei bandi, prende tutta la riga e mette le voci su due colonne */
.gg-pagina .gg-lu-gruppo.e-con:first-child {
	grid-column: 1 / -1;
	background: var(--gg-sand-light);
}
.gg-pagina .gg-testo .gg-lu-gruppo:first-child ul.elementor-icon-list-items {
	columns: 2 260px;
	column-gap: 28px;
}
.gg-pagina .gg-testo .gg-lu-gruppo:first-child li.elementor-icon-list-item {
	break-inside: avoid;
}
.gg-pagina .gg-testo .gg-lu-gruppo .gg-sezione {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 19px;
	line-height: 1.3;
}
.gg-pagina .gg-testo .gg-lu-elenco ul.elementor-icon-list-items {
	margin: 0;
}
.gg-pagina .gg-testo .gg-lu-elenco li.elementor-icon-list-item {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--gg-line);
}
.gg-pagina .gg-testo .gg-lu-elenco li.elementor-icon-list-item:last-child {
	border-bottom: 0;
}
.gg-pagina .gg-testo .gg-lu-elenco li.elementor-icon-list-item::before,
.gg-pagina .gg-lu-elenco .elementor-icon-list-icon {
	display: none;
}
.gg-pagina .gg-testo .gg-lu-elenco a {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 2px 16px;
	align-items: center;
	width: 100%;
	padding: 13px 0;
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-testo .gg-lu-elenco .elementor-icon-list-text {
	color: var(--gg-text); /* non il colore secondario globale di Elementor */
	font-family: var(--gg-font-display);
	font-size: 17px;
	font-weight: 500;
	line-height: 1.35;
}
.gg-pagina .gg-lu-dominio {
	grid-row: 2;
	font-size: 13.5px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-lu-elenco a::after {
	content: "↗" / "si apre in una nuova scheda";
	grid-column: 2;
	grid-row: 1 / 3;
	font-size: 18px;
	color: var(--gg-sea-dark);
	transition: transform .15s;
}
.gg-pagina .gg-testo .gg-lu-elenco a:hover .elementor-icon-list-text,
.gg-pagina .gg-testo .gg-lu-elenco a:focus-visible .elementor-icon-list-text {
	color: var(--gg-sea-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.gg-pagina .gg-testo .gg-lu-elenco a:hover::after {
	transform: translate(2px, -2px);
}
@media (max-width: 760px) {
	.gg-pagina .gg-lu.e-con { grid-template-columns: 1fr; }
}

/* [gg-risultati] — «LEADER 2014-2022», i progetti per intervento (#20, proposta B): totale, barra dei due fondi,
   una riga per intervento lunga quanto i suoi progetti. FEASR terra, FEAMP mare. */
.gg-risultati { --c: var(--gg-text-soft); }
.gg-risultati .gg-r-feasr { --c: var(--gg-earth-dark); }
.gg-risultati .gg-r-feamp { --c: var(--gg-sea-dark); }
.gg-pagina .gg-testo .gg-risultati p.gg-r-somma {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin: 0 0 10px;
}
.gg-risultati .gg-r-somma b {
	flex: none;
	font: 300 64px/1 var(--gg-font-display);
	letter-spacing: -.03em;
}
.gg-risultati .gg-r-somma span {
	font-size: 17px;
	color: var(--gg-text-soft);
}
.gg-risultati .gg-r-fondi {
	display: flex;
	height: 40px;
	margin: 0 0 6px;
	font: 600 14px/1 var(--gg-font-text);
	color: var(--gg-white);
}
.gg-risultati .gg-r-fondi span {
	display: flex;
	align-items: center;
	min-width: max-content;
	padding: 0 12px;
	background: var(--c);
	white-space: nowrap;
}
.gg-pagina .gg-testo .gg-risultati p.gg-r-legenda {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 18px;
	margin: 0 0 28px;
	font-size: 14px;
	color: var(--gg-text-soft);
}
.gg-risultati .gg-r-legenda i {
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-right: 6px;
	vertical-align: -1px;
	background: var(--c);
}
.gg-pagina .gg-testo .gg-risultati ul.gg-r-righe {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--gg-line);
}
.gg-pagina .gg-testo .gg-risultati .gg-r-righe li {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--gg-line);
}
.gg-pagina .gg-testo .gg-risultati .gg-r-righe li::before { display: none; }
.gg-pagina .gg-testo .gg-risultati .gg-r-righe a {
	display: grid;
	grid-template-columns: minmax(0, 15em) minmax(0, 1fr);
	gap: 8px 18px;
	align-items: center;
	padding: 11px 4px;
	color: var(--gg-text);
	text-decoration: none;
}
.gg-pagina .gg-testo .gg-risultati .gg-r-righe a:hover { background: var(--gg-sand-light); }
.gg-pagina .gg-testo .gg-risultati .gg-r-righe a:hover strong { text-decoration: underline; }
.gg-risultati .gg-r-righe strong { font: 600 15.5px/1.3 var(--gg-font-display); }
.gg-risultati .gg-r-righe small {
	display: block;
	font: 400 13px/1.3 var(--gg-font-text);
	color: var(--gg-text-soft);
}
.gg-risultati .gg-r-barra {
	display: flex;
	align-items: center;
	gap: 10px;
}
.gg-risultati .gg-r-barra i {
	display: block;
	height: 22px;
	min-width: 4px;
	background: var(--c);
}
.gg-risultati .gg-r-barra b {
	font: 600 17px/1 var(--gg-font-display);
	white-space: nowrap;
}
@media (max-width: 640px) {
	.gg-pagina .gg-testo .gg-risultati .gg-r-righe a { grid-template-columns: 1fr; }
}
.gg-pagina .gg-testo .gg-r-nota p {
	margin: 22px 0 0;
	font-size: 14.5px;
	color: var(--gg-text-soft);
}
.gg-pagina .gg-testo .gg-r-nota p + p { margin-top: 6px; }

/* [gg-articoli]: titoli lunghi (gli articoli RISULTATI), sotto la foto e in corpo di testo */
.gg-pagina .gg-testo .gg-riquadri-didascalia,
.gg-pagina .gg-riquadri-didascalia {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px 18px;
}
.gg-pagina .gg-testo .gg-riquadri-didascalia a.gg-riquadro,
.gg-pagina .gg-riquadri-didascalia .gg-riquadro {
	aspect-ratio: auto;
	overflow: visible;
	background: none;
	color: var(--gg-text);
}
.gg-pagina .gg-riquadri-didascalia .gg-riquadro::before { content: none; }
.gg-pagina .gg-riquadri-didascalia .gg-riquadro img,
.gg-pagina .gg-riquadri-didascalia .gg-riquadro.gg-senza-foto::after {
	aspect-ratio: 4 / 3;
	height: auto;
}
.gg-pagina .gg-riquadri-didascalia .gg-riquadro.gg-senza-foto::after {
	content: "";
	display: block;
	background: var(--gg-sand-light);
}
.gg-pagina .gg-riquadri-didascalia .gg-riquadro.gg-senza-foto { aspect-ratio: auto; }
.gg-pagina .gg-riquadri-didascalia .gg-riquadro span {
	position: static;
	display: block;
	margin-top: 10px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0;
	color: var(--gg-text);
	text-shadow: none;
	overflow-wrap: break-word;
	hyphens: auto;
}
.gg-pagina .gg-riquadri-didascalia .gg-riquadro:hover img { transform: none; opacity: .88; }
.gg-pagina .gg-riquadri-didascalia .gg-riquadro:hover span { color: var(--gg-sea-dark); text-decoration: underline; }
@media (max-width: 640px) {
	.gg-pagina .gg-testo .gg-riquadri-didascalia, .gg-pagina .gg-riquadri-didascalia { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 12px; }
	.gg-pagina .gg-riquadri-didascalia .gg-riquadro span { font-size: 14px; }
}
