/* Campaigns for All — stile base, sovrascrivibile dal tema tramite le variabili. */
:root {
	--c4all-accento: #b3261e;
	--c4all-testo: inherit;
	--c4all-tenue: #6b6b6b;
	--c4all-bordo: #e2e2e2;
	--c4all-sfondo: #fafafa;
	--c4all-ok: #1e7b34;
	--c4all-raggio: 6px;
}

.c4all-testata { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; margin-bottom: 1.5rem; }
.c4all-stato { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; padding: .2rem .6rem; border-radius: 999px; background: var(--c4all-sfondo); border: 1px solid var(--c4all-bordo); }
.c4all-proposta-form .c4all-step { display: grid; gap: .9rem; max-width: 42rem; }
.c4all-proposta-form fieldset { border: 1px solid var(--c4all-bordo); border-radius: var(--c4all-raggio); padding: .6rem .9rem; display: grid; gap: .35rem; }
.c4all-termini { display: flex; flex-wrap: wrap; gap: .35rem .5rem; align-items: center; }
.c4all-termine { font-size: .8rem; padding: .1rem .55rem; border-radius: 999px; border: 1px solid var(--c4all-bordo); text-decoration: none; color: inherit; }
.c4all-termine--cat { background: var(--c4all-sfondo); font-weight: 600; }
.c4all-termine:hover, .c4all-termine:focus-visible { border-color: var(--c4all-accento); }
.c4all-filtri--categorie { margin-top: -.5rem; }
.c4all-stato--da_approvare { border-style: dashed; }
.c4all-stato--attiva { background: var(--c4all-accento); border-color: var(--c4all-accento); color: #fff; }
.c4all-nav { display: flex; flex-wrap: wrap; gap: .25rem 1rem; font-size: .95rem; }

.c4all-modulo { margin: 2.5rem 0; padding-top: 1.5rem; border-top: 1px solid var(--c4all-bordo); }
.c4all-modulo__titolo { margin-top: 0; }
.c4all-sottotitolo { font-size: 1rem; margin: 1.5rem 0 .5rem; }

.c4all-progresso__barra { height: .75rem; background: var(--c4all-bordo); border-radius: 999px; overflow: hidden; }
.c4all-progresso__barra span { display: block; height: 100%; background: var(--c4all-accento); transition: width .6s ease; }
.c4all-progresso p { margin: .5rem 0 1rem; }

.c4all-auth, .c4all-profilo { max-width: 34rem; }
.c4all-step { display: grid; gap: .75rem; }
.c4all-step label { display: grid; gap: .25rem; font-weight: 500; }
.c4all-step input[type=email], .c4all-step input[type=text], .c4all-step select, .c4all-step textarea { width: 100%; padding: .6rem .7rem; border: 1px solid var(--c4all-bordo); border-radius: var(--c4all-raggio); font: inherit; }
.c4all-step input[name=codice] { font-size: 1.5rem; letter-spacing: .4em; text-align: center; max-width: 12rem; }
.c4all-riga { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
@media (max-width: 480px) { .c4all-riga { grid-template-columns: 1fr; } }
.c4all-step[hidden], .c4all-firmato[hidden], .c4all-auth[hidden] { display: none !important; }
.c4all-check { display: block !important; position: relative; padding-left: 1.75em; font-weight: 400 !important; line-height: 1.45; }
.c4all-check input { position: absolute; left: 0; top: .2em; margin: 0; width: 1.1em; height: 1.1em; }

.c4all-btn { display: inline-block; max-width: 100%; white-space: normal; text-align: center; min-height: 44px; padding: .7rem 1.2rem; border: 0; border-radius: var(--c4all-raggio); background: var(--c4all-accento); color: #fff; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; justify-self: start; }
.c4all-btn:disabled { opacity: .6; cursor: progress; }
.c4all-btn--secondario { background: transparent; color: var(--c4all-accento); border: 1px solid currentColor; }
.c4all-btn--link { background: none; color: var(--c4all-tenue); padding: 0; text-decoration: underline; font-weight: 400; }

.c4all-nota { color: var(--c4all-tenue); font-size: .9rem; margin: 0; }
.c4all-msg { min-height: 1.4em; margin: .75rem 0 0; }
.c4all-msg--errore, .c4all-avviso { color: var(--c4all-accento); }
.c4all-ok { color: var(--c4all-ok); font-weight: 600; }

/* Honeypot e widget ALTCHA invisibili (restano nel DOM e funzionanti). */
.c4all-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.c4all-altcha { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

.c4all-elenco, .c4all-consegne, .c4all-timeline, .c4all-corsi { list-style: none; padding: 0; margin: 0; }
.c4all-elenco li { padding: .35rem 0; border-bottom: 1px solid var(--c4all-bordo); display: flex; justify-content: space-between; gap: 1rem; }
.c4all-elenco span { color: var(--c4all-tenue); }
.c4all-consegne li { padding: .5rem .75rem; background: var(--c4all-sfondo); border-left: 3px solid var(--c4all-ok); margin-bottom: .5rem; }
.c4all-timeline li { padding: 0 0 1.25rem 1rem; border-left: 2px solid var(--c4all-bordo); }
.c4all-timeline time { font-size: .85rem; color: var(--c4all-tenue); }
.c4all-timeline h3 { margin: .2rem 0; font-size: 1.1rem; }
.c4all-corsi { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 1rem; }
.c4all-corso { border: 1px solid var(--c4all-bordo); border-radius: var(--c4all-raggio); padding: 1rem; }
.c4all-corso img { width: 100%; height: auto; border-radius: calc(var(--c4all-raggio) - 2px); }
.c4all-corso__stato { font-weight: 600; color: var(--c4all-accento); }

.c4all-filtri { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.c4all-filtri a { padding: .3rem .8rem; border: 1px solid var(--c4all-bordo); border-radius: 999px; text-decoration: none; }
.c4all-filtri a[aria-current] { background: var(--c4all-accento); border-color: var(--c4all-accento); color: #fff; }
.c4all-schede { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1.25rem; }
.c4all-scheda { border: 1px solid var(--c4all-bordo); border-radius: var(--c4all-raggio); padding: 1rem; display: flex; flex-direction: column; gap: .5rem; }
.c4all-scheda__link { text-decoration: none; color: inherit; display: grid; gap: .5rem; justify-items: start; }
.c4all-scheda img { width: 100%; height: auto; border-radius: calc(var(--c4all-raggio) - 2px); }
.c4all-scheda h3 { margin: 0; }
.c4all-scheda p { margin: 0; }

/* Layout a aree (blocchi) */
.c4all-layout { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); }
.c4all-area--sinistra .c4all-modulo:first-child, .c4all-area--laterale .c4all-modulo:first-child, .c4all-area--sezioni .c4all-modulo:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
.c4all-area--focus .c4all-modulo { border-top: 0; margin-top: 0; padding-top: 0; }

/* Sottoheader / sottofooter della campagna (aree Testata e Piede, ripetute nelle sottopagine) */
.c4all-subheader { padding-bottom: 1rem; border-bottom: 1px solid var(--c4all-bordo); margin-bottom: 1.5rem; }
.c4all-subheader .c4all-testata { margin-bottom: .75rem; }
.c4all-subfooter { margin-top: 2.5rem; padding: 1.5rem; background: var(--c4all-sfondo); border-radius: var(--c4all-raggio); display: grid; gap: 1rem; }
.c4all-nav a[aria-current] { font-weight: 700; text-decoration: none; border-bottom: 2px solid var(--c4all-accento); }
.c4all-azioni { display: flex; flex-wrap: wrap; gap: .75rem; }
.c4all-condividi { display: flex; flex-wrap: wrap; gap: .4rem 1rem; align-items: center; font-size: .95rem; }
.c4all-condividi span { color: var(--c4all-tenue); }
.c4all-pagina--sezione .c4all-sezione .c4all-modulo { border-top: 0; margin-top: 0; padding-top: 0; }

/* Menu della campagna nel sottoheader: su mobile scorre orizzontalmente */
.c4all-nav { display: flex; flex-wrap: nowrap; gap: .25rem 1.25rem; overflow-x: auto; scrollbar-width: thin; -webkit-overflow-scrolling: touch; padding: .5rem 0; white-space: nowrap; }
.c4all-nav a { text-decoration: none; padding: .25rem 0; }
.c4all-nav__voce--funzione { font-weight: 600; }

/* Responsive: input e pulsanti a misura di dito, niente zoom su iOS (font >= 16px) */
.c4all-step input[type=email], .c4all-step input[type=text], .c4all-step select, .c4all-step textarea { font-size: max(16px, 1em); min-height: 44px; box-sizing: border-box; }
.c4all-step input[name=codice] { max-width: 100%; }
.c4all-layout, .c4all-pagina { max-width: 100%; overflow-wrap: anywhere; }
.c4all-layout img, .c4all-pagina img { max-width: 100%; height: auto; }
@media (max-width: 599px) {
	.c4all-azioni .c4all-btn { width: 100%; }
	.c4all-modulo { margin: 1.75rem 0; }
	.c4all-subfooter { padding: 1rem; }
	.c4all-cards, .c4all-schede { grid-template-columns: 1fr; }
}

/* Layout a aree in base allo spazio REALE disponibile (container query), non alla finestra:
   funziona anche se il tema mette il contenuto in una colonna stretta.
   Header e footer a tutta larghezza; al centro una, due o tre colonne secondo le aree usate
   (un'area vuota non viene stampata, quindi :has() adatta la griglia da sola).
   Su schermi stretti: una colonna, con l'area centrale prima delle colonne laterali. */
.c4all-layout-wrap { container-type: inline-size; }
.c4all-layout:not(.c4all-layout--editor) {
	grid-template-areas: "testata" "focus" "principale" "sinistra" "laterale" "sezioni" "piede";
}
.c4all-layout .c4all-area--testata { grid-area: testata; }
.c4all-layout .c4all-area--focus { grid-area: focus; }
.c4all-layout .c4all-area--sinistra { grid-area: sinistra; }
.c4all-layout .c4all-area--principale { grid-area: principale; }
.c4all-layout .c4all-area--laterale { grid-area: laterale; }
.c4all-layout .c4all-area--sezioni { grid-area: sezioni; }
.c4all-layout .c4all-area--piede { grid-area: piede; }

@container (min-width: 760px) {
	.c4all-layout:not(.c4all-layout--editor) { align-items: start; column-gap: 2.5rem; }
	/* solo colonna destra */
	.c4all-layout:not(.c4all-layout--editor):has(.c4all-area--laterale) {
		grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr);
		grid-template-areas: "testata testata" "focus focus" "principale laterale" "sezioni sezioni" "piede piede";
	}
	/* solo colonna sinistra */
	.c4all-layout:not(.c4all-layout--editor):has(.c4all-area--sinistra):not(:has(.c4all-area--laterale)) {
		grid-template-columns: minmax(14rem, 1fr) minmax(0, 2.4fr);
		grid-template-areas: "testata testata" "focus focus" "sinistra principale" "sezioni sezioni" "piede piede";
	}
	/* entrambe, spazio medio: sinistra + centro, la colonna destra scende a tutta larghezza */
	.c4all-layout:not(.c4all-layout--editor):has(.c4all-area--sinistra):has(.c4all-area--laterale) {
		grid-template-columns: minmax(14rem, 1fr) minmax(0, 2.4fr);
		grid-template-areas: "testata testata" "focus focus" "sinistra principale" "laterale laterale" "sezioni sezioni" "piede piede";
	}
	.c4all-layout:has(.c4all-area--sinistra):has(.c4all-area--laterale) .c4all-area--laterale { position: static; }
	.c4all-layout .c4all-area--sinistra, .c4all-layout .c4all-area--laterale { position: sticky; top: 2rem; }
}
@container (min-width: 1000px) {
	/* tre colonne: sinistra | centro | destra */
	.c4all-layout:not(.c4all-layout--editor):has(.c4all-area--sinistra):has(.c4all-area--laterale) {
		grid-template-columns: minmax(13rem, 1fr) minmax(0, 2.4fr) minmax(15rem, 1fr);
		grid-template-areas: "testata testata testata" "focus focus focus" "sinistra principale laterale" "sezioni sezioni sezioni" "piede piede piede";
	}
	.c4all-layout:has(.c4all-area--sinistra):has(.c4all-area--laterale) .c4all-area--laterale { position: sticky; }
}

/* Identità campagna: logo accanto al nome nel sottoheader */
.c4all-identita { display: flex; align-items: center; gap: .75rem 1rem; text-decoration: none; color: inherit; margin-bottom: .75rem; }
.c4all-identita__logo { width: auto; max-height: 72px; max-width: 40%; object-fit: contain; flex: none; }
.c4all-identita__nome { margin: 0; font-size: clamp(1.6rem, 1rem + 3vw, 2.75rem); line-height: 1.1; }
@media (max-width: 599px) { .c4all-identita__logo { max-height: 52px; } }

/* Immagine in evidenza e descrizione breve nella panoramica */
.c4all-immagine { margin: 0 0 1.25rem; }
.c4all-immagine__img { display: block; width: 100%; height: auto; border-radius: var(--c4all-raggio); }
.c4all-descrizione { margin: 0 0 1.5rem; }
.c4all-descrizione__testo { font-size: 1.125rem; line-height: 1.55; margin: 0 0 .5rem; }
.c4all-descrizione__link { margin: 0; font-weight: 600; }

/* Temi classici: nella pagina campagna titolo, autore e data del tema non si mostrano (il nome sta nella testata). */
body.single-campagna .entry-header .entry-title,
body.single-campagna .entry-meta,
body.single-campagna .post-meta,
body.single-campagna .posted-on,
body.single-campagna .byline,
body.single-campagna .author-info { display: none; }

/* Blocksy: la sezione titolo/autore/data (hero) non si mostra nelle campagne. */
body.single-campagna .hero-section,
body.single-campagna .ct-hero-section { display: none; }
