/* CS2G — stili specifici non esprimibili in theme.json */

/* Accessibilità: contorno di messa a fuoco sempre visibile per chi naviga da tastiera. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 2px;
}

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

/* Codice dello schema, stile targhetta. */
.cs2g-codice {
	display: inline-block;
	font-family: var(--wp--preset--font-family--mono);
	letter-spacing: 0.08em;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--paper);
	padding: 0.35rem 0.6rem;
	margin: 0 0 1rem;
}

.cs2g-footer-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.6rem;
}

.cs2g-footer-list a {
	color: #bac4d8;
}

/* ─── Registro pubblico ─── */

.cs2g-contatori {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--paper);
	padding: 1.75rem 2rem;
	margin: 2rem 0;
}

.cs2g-contatori strong {
	display: block;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 2rem;
	font-weight: 500;
}

.cs2g-contatori strong.v { color: #9fd08c; }
.cs2g-contatori strong.s { color: #f3b04d; }
.cs2g-contatori strong.r { color: #e88c86; }

.cs2g-contatori span {
	display: block;
	font-size: 0.875rem;
	color: #aeb9ce;
	margin-top: 0.25rem;
}

.cs2g-filtri {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: flex-end;
	background: var(--wp--preset--color--ground);
	border: 1px solid var(--wp--preset--color--rule);
	padding: 1.25rem;
	margin-bottom: 1.5rem;
}

.cs2g-filtri .campo { flex: 1 1 180px; }
.cs2g-filtri .campo-largo { flex: 2 1 280px; }
.cs2g-filtri .campo-azione { flex: 0 0 auto; }

.cs2g-filtri label {
	display: block;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--wp--preset--color--muted);
	margin-bottom: 0.4rem;
}

.cs2g-filtri input,
.cs2g-filtri select {
	width: 100%;
	padding: 0.75rem;
	font-size: 1rem;
	font-family: inherit;
	border: 1px solid #c3c9d6;
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--navy);
}

.cs2g-riepilogo {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 0.75rem;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
}

.cs2g-tabella {
	width: 100%;
	border-collapse: collapse;
}

.cs2g-tabella th {
	text-align: left;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	border-top: 2px solid var(--wp--preset--color--navy);
	border-bottom: 1px solid var(--wp--preset--color--rule);
	padding: 0.8rem 0.75rem 0.8rem 0;
}

.cs2g-tabella td {
	padding: 1.1rem 0.75rem 1.1rem 0;
	border-bottom: 1px solid #e4e7ed;
	vertical-align: top;
}

.cs2g-tabella .mono {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.875rem;
	color: var(--wp--preset--color--blue);
}

.cs2g-tabella .luogo {
	display: block;
	font-size: 0.8125rem;
	color: #6b7488;
}

.cs2g-stato {
	display: inline-block;
	padding: 0.3rem 0.7rem;
	font-size: 0.8125rem;
	font-weight: 700;
	white-space: nowrap;
}

.cs2g-stato.is-valido   { background: #e3efdc; color: #34602a; }
.cs2g-stato.is-sospeso  { background: #fbebcf; color: #7a4e07; }
.cs2g-stato.is-revocato { background: #f7e0de; color: #8a241d; }
.cs2g-stato.is-ridotto  { background: #e6eaf2; color: #33405c; }
.cs2g-stato.is-scaduto  { background: #eaecf0; color: #4c5870; }

.cs2g-pagine { margin-top: 1.75rem; }

.cs2g-pagine .page-numbers {
	display: inline-block;
	padding: 0.7rem 1rem;
	border: 1px solid #c3c9d6;
	margin-right: 0.4rem;
	color: var(--wp--preset--color--navy);
}

.cs2g-pagine .page-numbers.current {
	background: var(--wp--preset--color--blue);
	border-color: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--paper);
	font-weight: 600;
}

.cs2g-nota {
	margin-top: 1.5rem;
	font-size: 0.875rem;
	color: #6b7488;
}

/* ─── Scheda del certificato ─── */

.cs2g-scheda .numero {
	font-family: var(--wp--preset--font-family--mono);
	color: var(--wp--preset--color--blue);
	margin-bottom: 0.5rem;
}

.cs2g-scheda .impresa { margin: 0 0 0.5rem; }

.cs2g-scheda .luogo { color: var(--wp--preset--color--muted); }

.cs2g-scheda .pastiglie { display: flex; gap: 0.75rem; flex-wrap: wrap; }

.cs2g-scheda .cs2g-schema {
	display: inline-block;
	padding: 0.3rem 0.7rem;
	border: 1px solid var(--wp--preset--color--rule);
	font-size: 0.8125rem;
}

.cs2g-dati {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 2.5rem;
	margin: 2rem 0;
}

.cs2g-dati > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	border-top: 1px solid #e4e7ed;
	padding: 0.8rem 0;
}

.cs2g-dati dt { color: var(--wp--preset--color--muted); margin: 0; }
.cs2g-dati dd { margin: 0; font-weight: 600; text-align: right; }

/* ─── Telefono ─── */

@media (max-width: 781px) {
	.cs2g-contatori { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cs2g-dati { grid-template-columns: 1fr; }

	/* La tabella diventa una scheda per certificato: sette colonne non entrano in uno schermo stretto. */
	.cs2g-tabella thead { display: none; }
	.cs2g-tabella, .cs2g-tabella tbody, .cs2g-tabella tr, .cs2g-tabella td { display: block; width: 100%; }

	.cs2g-tabella tr {
		background: var(--wp--preset--color--paper);
		border: 1px solid var(--wp--preset--color--rule);
		padding: 1rem;
		margin-bottom: 0.75rem;
	}

	.cs2g-tabella td {
		border: 0;
		padding: 0.2rem 0;
	}

	.cs2g-tabella td::before {
		content: attr(data-label) " ";
		color: #6b7488;
		font-size: 0.8125rem;
	}
}

/* Riquadro con bordo: classe invece di attributo di blocco, per non far fallire la validazione. */
.cs2g-box {
	border: 1px solid var(--wp--preset--color--rule);
}


/* ─── Testata ─── */
.cs2g-topbar { padding-block: 0.55rem; font-size: 0.8125rem; }
.cs2g-topbar a { color: #c7cedc; }
.cs2g-header { padding-block: 1rem; border-bottom: 1px solid var(--wp--preset--color--rule); }
.cs2g-header .wp-block-site-logo img { max-height: 54px; width: auto; }
.cs2g-header .wp-block-navigation { font-size: 0.9375rem; gap: 1.6rem; }

/* ─── Sezioni ─── */
.cs2g-section { padding-block: 4.5rem; }
.cs2g-section > .alignwide + .alignwide { margin-top: 1rem; }
.cs2g-section h2.alignwide { margin-bottom: 0.75rem; }

.cs2g-eyebrow {
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 700;
	margin-bottom: 0.9rem;
}

.cs2g-scuro { color: var(--wp--preset--color--paper); }
.cs2g-scuro h1, .cs2g-scuro h2, .cs2g-scuro h3 { color: var(--wp--preset--color--paper); }
.cs2g-scuro .cs2g-eyebrow { color: #8fa6d8; }
.cs2g-scuro .cs2g-card { background: #182747; border-color: #2e3d5c; }
.cs2g-scuro .cs2g-card h3 { color: var(--wp--preset--color--paper); }
.cs2g-scuro .cs2g-card p { color: #aeb9ce; }
.cs2g-scuro a { color: var(--wp--preset--color--paper); }

/* ─── Schede ─── */
.cs2g-card {
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--rule);
	padding: 1.6rem 1.5rem;
	height: 100%;
	box-sizing: border-box;
}
.cs2g-card h3 { margin-top: 0; margin-bottom: 0.6rem; }
.cs2g-card p { margin-bottom: 0.6rem; }
.cs2g-card p:last-child { margin-bottom: 0; }
.cs2g-section .wp-block-columns { margin-top: 2rem; align-items: stretch; }

/* ─── Fascia dei numeri ─── */
.cs2g-numeri { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--paper); }
.cs2g-numeri-inner {
	max-width: 1280px;
	margin-inline: auto;
	padding: 2.5rem 2rem;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
}
.cs2g-numeri strong {
	display: block;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.9rem;
	font-weight: 500;
}
.cs2g-numeri span { display: block; font-size: 0.875rem; color: #aeb9ce; margin-top: 0.25rem; }

/* ─── Settori illustrati ─── */
.cs2g-settori {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 1.5rem;
	margin: 2.5rem 0 1.5rem;
	color: var(--wp--preset--color--blue);
}
.cs2g-settore { text-align: center; }
.cs2g-settore svg { display: block; margin: 0 auto 0.9rem; }
.cs2g-settore span {
	display: block;
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
}

/* ─── Passi dell'iter ─── */
.cs2g-passo {
	border-top: 1px solid var(--wp--preset--color--rule);
	padding-top: 1.2rem;
	margin-top: 1.2rem;
}
.cs2g-passo .cs2g-num { font-family: var(--wp--preset--font-family--mono); margin-bottom: 0.3rem; }
.cs2g-passo h3 { margin: 0 0 0.4rem; }
.cs2g-passo p { margin-bottom: 0.4rem; }
.cs2g-nota-passo { color: #6b7488; }

/* ─── Telefono ─── */
@media (max-width: 781px) {
	.cs2g-numeri-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cs2g-settori { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cs2g-section { padding-block: 3rem; }
	.cs2g-header .wp-block-site-logo img { max-height: 42px; }
}


/* ─── Correzioni 1.0.4 ─── */

/* Piè di pagina: i link devono staccare dal fondo blu, anche quelli legali. */
.wp-block-template-part footer a,
footer.wp-block-template-part a { color: #cfd7e6; }
.cs2g-legali { color: #96a2bc; }
.cs2g-legali a { color: #cfd7e6; text-decoration: underline; text-underline-offset: 2px; }

/* Pulsante verso il marchio: verde, perché rimanda a Garanzia Italia. */
.cs2g-bottone-gi .wp-block-button__link { background-color: var(--wp--preset--color--gi-green); }
.cs2g-bottone-gi .wp-block-button__link:hover { background-color: #44702f; }

/* Elenco dei requisiti della clausola 8 */
.cs2g-requisiti {
	max-width: 1280px;
	margin-inline: auto;
	list-style: none;
	padding: 0;
}
.cs2g-requisiti li {
	border-bottom: 1px solid var(--wp--preset--color--rule);
	padding: 0.8rem 0 0.8rem 1.6rem;
	position: relative;
	color: var(--wp--preset--color--muted);
}
.cs2g-requisiti li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.35rem;
	width: 0.6rem;
	height: 1px;
	background: var(--wp--preset--color--blue);
}

/* Le dieci clausole */
.cs2g-clausole {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1.2rem;
	margin-top: 2rem;
}
.cs2g-clausola {
	border-top: 1px solid #c3c9d6;
	padding-top: 0.9rem;
}
.cs2g-clausola.is-chiave { border-top: 3px solid var(--wp--preset--color--blue); }
.cs2g-clausola .n {
	display: block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.8125rem;
	color: var(--wp--preset--color--blue);
	margin-bottom: 0.4rem;
}
.cs2g-clausola .t { display: block; font-size: 1rem; font-weight: 600; }
.cs2g-clausola.is-chiave .t { font-weight: 700; }
.cs2g-clausola .k { display: block; font-size: 0.8125rem; color: #6b7488; margin-top: 0.3rem; }

@media (max-width: 781px) {
	.cs2g-clausole { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* ─── Correzioni 1.0.5 ─── */

/*
 * Allineamento: nelle fasce a tutta larghezza i titoli erano larghi e i paragrafi no,
 * così ogni elemento partiva da un margine diverso. Questa regola li rimette in riga,
 * comprese le pagine già costruite prima della correzione.
 */
main .wp-block-group.alignfull > p,
main .wp-block-group.alignfull > h1,
main .wp-block-group.alignfull > h2,
main .wp-block-group.alignfull > h3,
main .wp-block-group.alignfull > ul,
main .wp-block-group.alignfull > ol,
main .wp-block-group.alignfull > .wp-block-buttons {
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}

/* Schede: stessa altezza su tutta la riga, qualunque sia la lunghezza del testo. */
.wp-block-columns { align-items: stretch; }
.wp-block-column { display: flex; flex-direction: column; }
.wp-block-column > .wp-block-group,
.wp-block-column > .cs2g-card,
.wp-block-column > .cs2g-box {
	flex: 1 1 auto;
	height: auto;
}

/* Testo di apertura: era troppo grande e occupava sei righe per una frase. */
.has-large-font-size { line-height: 1.5; }

/* Il riquadro dell'accreditamento deve pesare quanto l'informazione che contiene. */
.cs2g-card { padding: 1.9rem 1.8rem; }

/* Testata: logo a sinistra con presenza, menu a destra. */
.cs2g-header .wp-block-site-logo img { max-height: 76px; }
.cs2g-header .wp-block-group { width: 100%; }

@media (max-width: 781px) {
	.cs2g-header .wp-block-site-logo img { max-height: 48px; }
	.wp-block-column { display: block; }
}


/* ─── Correzioni 1.0.6 ─── */

/*
 * Il registro su pagina a larghezza piena arrivava al bordo dello schermo e il numero
 * di certificato sembrava tagliato. Gli diamo una larghezza propria e dei margini.
 */
.cs2g-registro {
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 2rem;
	box-sizing: border-box;
}

@media (max-width: 781px) {
	.cs2g-registro { padding-inline: 1.25rem; }
}


/* ─── Correzioni 1.0.7 ─── */

/* I blocchi HTML (settori, numeri) restavano nella colonna stretta: ora seguono
 * la stessa larghezza di titoli e paragrafi. */
main .wp-block-group.alignfull > .wp-block-html,
main .wp-block-group.alignfull > figure,
main .wp-block-group.alignfull > .wp-block-columns {
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}
main .wp-block-group.alignfull > .wp-block-html > .cs2g-numeri {
	max-width: none;
}

/* Settori: più aria tra le icone e allineamento con il testo sopra. */
.cs2g-settori {
	gap: 2.5rem 2rem;
	margin-top: 3rem;
}
.cs2g-settore svg { margin-bottom: 1.1rem; }

/* Marchio Garanzia Italia nel blocco di raccordo. */
.cs2g-marchio-gi { margin-bottom: 1.5rem; }
.cs2g-marchio-gi img { width: 150px; height: auto; }
