/* ==========================================================================
   AM Consulenze – stile del sito
   Tutti i colori passano da queste variabili: il tema scuro ridefinisce
   solo le variabili, mai i singoli componenti.
   ========================================================================== */

:root {
	--sfondo: #faf9f6;
	--sfondo-alt: #f1efe9;
	--superficie: #ffffff;
	--testo: #1a2130;
	--testo-forte: #0f1522;
	--testo-tenue: #4a5363;
	--testo-debole: #6b7280;
	--bordo: #e3e0d8;
	--bordo-forte: #cfcbc0;

	--primario: #1f3a5f;          /* blu istituzionale */
	--primario-hover: #284a77;
	--su-primario: #ffffff;
	--link: #1f4f8a;
	--accento: #8a6a2f;           /* ottone, per occhielli e dettagli */
	--focus: #2f6fd0;
	--successo: #1e6b45;
	--errore: #a3262a;

	--fascia: #1f3a5f;            /* blocchi CTA e piè di pagina */
	--su-fascia: #e9eef5;
	--su-fascia-tenue: #b9c5d6;

	--toni-0: #e6ecf4; --toni-0-testo: #1f3a5f;
	--toni-1: #efe7d8; --toni-1-testo: #6b4f1d;
	--toni-2: #e3eee8; --toni-2-testo: #1e5a3c;
	--toni-3: #ece6ef; --toni-3-testo: #4b3263;

	--ombra: 0 1px 2px rgba(15, 21, 34, .04), 0 4px 16px rgba(15, 21, 34, .06);
	--raggio: 10px;
	--raggio-piccolo: 6px;

	--font-testo: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--font-titoli: "Source Serif 4", Georgia, "Times New Roman", serif;

	--larghezza: 1180px;
	--larghezza-testo: 700px;
	--margine: clamp(16px, 4vw, 32px);
}

:root[data-theme="dark"] {
	--sfondo: #10151c;
	--sfondo-alt: #151c25;
	--superficie: #18202b;
	--testo: #e4e2dd;
	--testo-forte: #f5f3ef;
	--testo-tenue: #b9bec7;
	--testo-debole: #8f97a4;
	--bordo: #273140;
	--bordo-forte: #354152;

	--primario: #9fbde6;
	--primario-hover: #b8cff0;
	--su-primario: #0f1522;
	--link: #a9c6ee;
	--accento: #d4b47a;
	--focus: #8db4f0;
	--successo: #6fcf9b;
	--errore: #f08a8d;

	--fascia: #182434;
	--su-fascia: #e4e8ee;
	--su-fascia-tenue: #a9b4c4;

	--toni-0: #1c2a3c; --toni-0-testo: #b8cdea;
	--toni-1: #2b2519; --toni-1-testo: #e0c690;
	--toni-2: #1a2d25; --toni-2-testo: #9fd8b8;
	--toni-3: #261f2e; --toni-3-testo: #d2bde6;

	--ombra: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 16px rgba(0, 0, 0, .25);
	color-scheme: dark;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

body {
	margin: 0;
	background: var(--sfondo);
	color: var(--testo);
	font-family: var(--font-testo);
	font-size: 1rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img, svg, video { max-width: 100%; height: auto; }
img { display: block; }

a { color: var(--link); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }

:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 3px; }

h1, h2, h3, h4 {
	font-family: var(--font-titoli);
	color: var(--testo-forte);
	line-height: 1.2;
	font-weight: 650;
	letter-spacing: -.01em;
	margin: 0 0 .5em;
	text-wrap: balance;
}

p { margin: 0 0 1em; }

.sr-only {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.salta-contenuto {
	position: absolute; left: 8px; top: -60px; z-index: 100;
	background: var(--primario); color: var(--su-primario); padding: 10px 16px; border-radius: var(--raggio-piccolo);
}
.salta-contenuto:focus { top: 8px; }

.contenitore { width: 100%; max-width: var(--larghezza); margin-inline: auto; padding-inline: var(--margine); }
.contenitore--testo { max-width: calc(var(--larghezza-testo) + 2 * var(--margine)); }
.contenitore--stretto { max-width: calc(860px + 2 * var(--margine)); }
.contenitore--largo { max-width: calc(980px + 2 * var(--margine)); }

.icona { flex-shrink: 0; vertical-align: middle; }

/* --------------------------------------------------------------------------
   Pulsanti
   -------------------------------------------------------------------------- */

.pulsante {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	padding: .75em 1.25em;
	border: 1px solid var(--primario);
	border-radius: var(--raggio-piccolo);
	background: var(--primario);
	color: var(--su-primario);
	font: 600 .95rem/1.2 var(--font-testo);
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.pulsante:hover { background: var(--primario-hover); border-color: var(--primario-hover); color: var(--su-primario); }
.pulsante--piccolo { padding: .55em .95em; font-size: .875rem; }
.pulsante--grande { padding: .95em 1.5em; font-size: 1rem; }
.pulsante--secondario { background: transparent; color: var(--primario); }
.pulsante--secondario:hover { background: var(--sfondo-alt); color: var(--primario); }
.pulsante--chiaro { background: var(--su-fascia); border-color: var(--su-fascia); color: #14243a; }
.pulsante--chiaro:hover { background: #fff; border-color: #fff; color: #14243a; }

.pulsante-icona {
	display: inline-grid; place-items: center;
	width: 42px; height: 42px;
	border: 1px solid transparent; border-radius: 50%;
	background: transparent; color: var(--testo);
	cursor: pointer;
}
.pulsante-icona:hover { background: var(--sfondo-alt); border-color: var(--bordo); }

.link-freccia {
	display: inline-flex; align-items: center; gap: .35em;
	font-weight: 600; font-size: .95rem; text-decoration: none; color: var(--link);
}
.link-freccia:hover .icona { transform: translateX(3px); }
.link-freccia .icona { transition: transform .15s; }

/* --------------------------------------------------------------------------
   Testata
   -------------------------------------------------------------------------- */

.testata {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--sfondo) 92%, transparent);
	backdrop-filter: saturate(1.4) blur(10px);
	border-bottom: 1px solid var(--bordo);
}
.admin-bar .testata { top: 32px; }
@media (max-width: 782px) { .admin-bar .testata { top: 0; } }

.testata__riga { display: flex; align-items: center; gap: 24px; min-height: 76px; }

.marchio { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--testo-forte); }
.marchio__logo { width: 52px; height: 52px; }
.marchio__testo { display: flex; flex-direction: column; line-height: 1.15; }
.marchio__nome { font-family: var(--font-titoli); font-weight: 700; font-size: 1.3rem; letter-spacing: -.01em; }
.marchio__motto { font-size: .78rem; color: var(--testo-debole); letter-spacing: .02em; }
.marchio__logo--scuro { display: none; }
[data-theme="dark"] .marchio__logo--chiaro { display: none; }
[data-theme="dark"] .marchio__logo--scuro { display: block; }

.navigazione { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.navigazione__voci { display: flex; gap: 2px; list-style: none; margin: 0; padding: 0; }
.navigazione__voci a {
	display: block; padding: 8px 12px; border-radius: var(--raggio-piccolo);
	color: var(--testo); font-weight: 500; font-size: .95rem; text-decoration: none;
}
.navigazione__voci a:hover { background: var(--sfondo-alt); }
.navigazione__voci .current-menu-item > a,
.navigazione__voci .current_page_parent > a,
.navigazione__voci a[aria-current="page"] { color: var(--primario); box-shadow: inset 0 -2px 0 var(--accento); border-radius: 0; }
.navigazione__cta { margin-left: 8px; }

.testata__azioni { display: flex; gap: 2px; }
.testata__menu { display: none; }
.icona-tema--sole, .icona-chiudi { display: none; }
[data-theme="dark"] .icona-tema--sole { display: inline; }
[data-theme="dark"] .icona-tema--luna { display: none; }
.menu-aperto .icona-chiudi { display: inline; }
.menu-aperto .icona-menu { display: none; }

.ricerca-testata { border-top: 1px solid var(--bordo); padding: 16px 0; background: var(--sfondo); }

@media (max-width: 1080px) {
	.marchio__motto { display: none; }
	.testata__menu { display: inline-grid; }
	.testata__riga { gap: 12px; }
	.testata__azioni { margin-left: auto; }
	.navigazione {
		display: none;
		position: absolute; inset: 100% 0 auto 0;
		flex-direction: column; align-items: stretch; gap: 4px;
		padding: 12px var(--margine) 20px;
		background: var(--sfondo);
		border-bottom: 1px solid var(--bordo);
		box-shadow: var(--ombra);
		max-height: calc(100vh - 76px); overflow-y: auto;
	}
	.menu-aperto .navigazione { display: flex; }
	.navigazione__voci { flex-direction: column; }
	.navigazione__voci a { padding: 12px 8px; font-size: 1.05rem; border-bottom: 1px solid var(--bordo); border-radius: 0; }
	.navigazione__voci a[aria-current="page"] { box-shadow: none; }
	.navigazione__cta { margin: 12px 0 0; padding: .9em; }
}
@media (max-width: 420px) {
	.marchio__nome { font-size: 1.1rem; }
	.marchio__logo { width: 44px; height: 44px; }
}

/* --------------------------------------------------------------------------
   Modulo di ricerca
   -------------------------------------------------------------------------- */

.modulo-ricerca, .apertura__ricerca { display: flex; gap: 8px; max-width: 640px; }
.modulo-ricerca input, .apertura__ricerca input {
	flex: 1; min-width: 0;
	padding: .75em 1em;
	border: 1px solid var(--bordo-forte); border-radius: var(--raggio-piccolo);
	background: var(--superficie); color: var(--testo);
	font: inherit;
}
.modulo-ricerca input::placeholder, .apertura__ricerca input::placeholder { color: var(--testo-debole); }
@media (max-width: 480px) { .modulo-ricerca .pulsante span, .apertura__ricerca .pulsante span { display: none; } }

/* --------------------------------------------------------------------------
   Elementi comuni: occhiello, meta, intestazioni
   -------------------------------------------------------------------------- */

.occhiello {
	display: inline-block;
	color: var(--accento);
	font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
	text-decoration: none;
	margin-bottom: .6em;
}
a.occhiello:hover { text-decoration: underline; }

.meta { color: var(--testo-debole); font-size: .85rem; margin: 0; display: flex; flex-wrap: wrap; gap: .4em; }

.etichetta-sezione {
	font-family: var(--font-testo); font-size: .8rem; font-weight: 700;
	letter-spacing: .08em; text-transform: uppercase; color: var(--testo-debole);
	margin: 0 0 12px;
}

.intestazione-sezione {
	display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
	border-top: 2px solid var(--testo-forte);
	padding-top: 14px; margin-bottom: 24px;
}
.intestazione-sezione h2 { font-size: clamp(1.4rem, 2.5vw, 1.75rem); margin: 0; }

.intestazione-pagina { padding-block: clamp(32px, 6vw, 64px) clamp(20px, 3vw, 32px); }
.intestazione-pagina h1 { font-size: clamp(2rem, 4.5vw, 3rem); margin-bottom: .3em; }
.intestazione-pagina__desc { font-size: 1.15rem; color: var(--testo-tenue); max-width: 46em; }
.intestazione-pagina__desc p:last-child { margin: 0; }
.intestazione-pagina__ricerca { margin-top: 20px; }

.filtri-argomenti { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.filtri-argomenti a {
	padding: 6px 14px; border: 1px solid var(--bordo-forte); border-radius: 999px;
	color: var(--testo-tenue); font-size: .9rem; font-weight: 500; text-decoration: none;
	background: var(--superficie);
}
.filtri-argomenti a:hover { border-color: var(--primario); color: var(--primario); }
.filtri-argomenti a[aria-current="page"] { background: var(--primario); border-color: var(--primario); color: var(--su-primario); }

.vuoto { padding: 48px 0; color: var(--testo-tenue); font-size: 1.1rem; }
.avviso {
	padding: 16px 20px; border-radius: var(--raggio-piccolo);
	background: var(--sfondo-alt); border: 1px solid var(--bordo);
}

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

.apertura { padding-block: clamp(32px, 6vw, 72px) clamp(24px, 4vw, 40px); }
.apertura__titolo {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 600;
	max-width: 24em;
	margin-bottom: .8em;
}
.apertura__titolo span { color: var(--testo-tenue); font-weight: 400; }

.primo-piano { margin-bottom: clamp(48px, 7vw, 80px); }
.primo-piano__griglia { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 48px); }
.primo-piano__laterale { display: flex; flex-direction: column; border-left: 1px solid var(--bordo); padding-left: clamp(20px, 3vw, 40px); }
.primo-piano__laterale .scheda { border-bottom: 1px solid var(--bordo); padding-bottom: 18px; margin-bottom: 18px; }
.primo-piano__laterale .link-freccia { margin-top: auto; }
@media (max-width: 860px) {
	.primo-piano__griglia { grid-template-columns: 1fr; }
	.primo-piano__laterale { border-left: 0; padding-left: 0; border-top: 1px solid var(--bordo); padding-top: 24px; }
}

.sezione-argomento { margin-bottom: clamp(48px, 7vw, 72px); }
.sezione-faq { margin-block: clamp(48px, 7vw, 80px); }

/* --------------------------------------------------------------------------
   Schede articolo
   -------------------------------------------------------------------------- */

.griglia-schede { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: clamp(28px, 4vw, 40px) clamp(20px, 3vw, 32px); }

.scheda { display: flex; flex-direction: column; gap: 14px; position: relative; }
.scheda__media { display: block; border-radius: var(--raggio); overflow: hidden; aspect-ratio: 16 / 9; background: var(--sfondo-alt); text-decoration: none; }
.scheda__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.scheda:hover .scheda__media img { transform: scale(1.03); }
.scheda__corpo { display: flex; flex-direction: column; }
.scheda__titolo { font-size: 1.3rem; margin: 0 0 .45em; }
.scheda__titolo a { color: var(--testo-forte); text-decoration: none; }
.scheda__titolo a:hover { color: var(--link); text-decoration: underline; text-decoration-thickness: 1px; }
.scheda__titolo a::after { content: ""; position: absolute; inset: 0; } /* tutta la scheda cliccabile */
.scheda .occhiello { position: relative; z-index: 1; }
.scheda__estratto { color: var(--testo-tenue); font-size: .97rem; margin-bottom: .8em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

.scheda--grande .scheda__titolo { font-size: clamp(1.6rem, 3.2vw, 2.3rem); }
.scheda--grande .scheda__estratto { font-size: 1.1rem; -webkit-line-clamp: 4; }
.scheda--compatta { gap: 0; }
.scheda--compatta .scheda__titolo { font-size: 1.15rem; }
.scheda--compatta .occhiello { margin-bottom: .35em; }

.segnaposto {
	display: flex; align-items: flex-end; width: 100%; height: 100%; padding: 20px;
	background: var(--toni-0); color: var(--toni-0-testo);
	background-image:
		radial-gradient(circle at 85% 20%, color-mix(in srgb, currentColor 14%, transparent) 0 18%, transparent 18.5%),
		radial-gradient(circle at 85% 20%, transparent 0 26%, color-mix(in srgb, currentColor 10%, transparent) 26.5% 27.5%, transparent 28%);
}
.segnaposto--1 { background-color: var(--toni-1); color: var(--toni-1-testo); }
.segnaposto--2 { background-color: var(--toni-2); color: var(--toni-2-testo); }
.segnaposto--3 { background-color: var(--toni-3); color: var(--toni-3-testo); }
.segnaposto__testo { font-family: var(--font-titoli); font-size: 1.35rem; font-weight: 600; line-height: 1.15; max-width: 14em; }
.scheda--grande .segnaposto__testo { font-size: clamp(1.6rem, 3vw, 2.2rem); }

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

.articolo__testata { padding-block: clamp(32px, 6vw, 64px) 28px; }
.articolo__titolo { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.12; margin-bottom: .4em; }
.articolo__sommario { font-size: clamp(1.1rem, 2vw, 1.3rem); color: var(--testo-tenue); line-height: 1.5; margin-bottom: 1.4em; }
.articolo__firma { display: flex; align-items: center; gap: 12px; padding-top: 18px; border-top: 1px solid var(--bordo); }
.articolo__avatar { width: 40px; height: 40px; border-radius: 50%; background: #fff; border: 1px solid var(--bordo); padding: 2px; }
.articolo__autore { display: block; font-weight: 600; color: var(--testo-forte); }

.articolo__immagine { margin-block: 8px 40px; }
.articolo__immagine img { width: 100%; border-radius: var(--raggio); }
.articolo__immagine figcaption { font-size: .85rem; color: var(--testo-debole); margin-top: 8px; }

.articolo__piede { padding-bottom: 24px; }

.etichette { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 40px 0 32px; }
.etichette a {
	display: inline-block; padding: 4px 12px; border-radius: 999px;
	background: var(--sfondo-alt); color: var(--testo-tenue);
	font-size: .85rem; text-decoration: none;
}
.etichette a:hover { color: var(--link); background: var(--toni-0); }

.avviso-legale { font-size: .85rem; color: var(--testo-debole); margin-top: 32px; }

.correlati { padding-block: 48px 64px; border-top: 1px solid var(--bordo); margin-top: 24px; }

/* Testo degli articoli e delle pagine */
.testo-ricco {
	font-family: var(--font-titoli);
	font-size: clamp(1.08rem, 1.6vw, 1.18rem);
	line-height: 1.72;
	color: var(--testo);
	overflow-wrap: break-word;
}
.testo-ricco > * { margin-block: 0 1.15em; }
.testo-ricco h2 { font-size: 1.6em; margin-top: 1.8em; margin-bottom: .6em; }
.testo-ricco h3 { font-size: 1.3em; margin-top: 1.6em; margin-bottom: .5em; }
.testo-ricco h4 { font-size: 1.1em; margin-top: 1.4em; }
.testo-ricco strong { font-weight: 650; color: var(--testo-forte); }
.testo-ricco ul, .testo-ricco ol { padding-left: 1.4em; }
.testo-ricco li { margin-bottom: .4em; }
.testo-ricco li::marker { color: var(--accento); }
.testo-ricco blockquote, .testo-ricco .wp-block-quote {
	margin-inline: 0; padding: .2em 0 .2em 1.2em;
	border-left: 3px solid var(--accento);
	font-style: italic; color: var(--testo-tenue);
}
.testo-ricco blockquote cite { display: block; font-size: .85em; font-style: normal; margin-top: .5em; }
.testo-ricco hr, .testo-ricco .wp-block-separator { border: 0; border-top: 1px solid var(--bordo-forte); margin-block: 2.2em; opacity: 1; }
.testo-ricco img { border-radius: var(--raggio-piccolo); }
.testo-ricco figure { margin-inline: 0; }
.testo-ricco figcaption { font-family: var(--font-testo); font-size: .82rem; color: var(--testo-debole); margin-top: .5em; }
.testo-ricco table { width: 100%; border-collapse: collapse; font-family: var(--font-testo); font-size: .92rem; }
.testo-ricco th, .testo-ricco td { border: 1px solid var(--bordo); padding: .6em .8em; text-align: left; vertical-align: top; }
.testo-ricco th { background: var(--sfondo-alt); }
.testo-ricco .wp-block-table { overflow-x: auto; }
.testo-ricco .wp-block-file {
	display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
	padding: 14px 18px; border: 1px solid var(--bordo); border-radius: var(--raggio-piccolo);
	background: var(--superficie); font-family: var(--font-testo); font-size: .95rem;
}
.testo-ricco .wp-block-file__button {
	margin-left: auto; padding: .45em 1em; border-radius: var(--raggio-piccolo);
	background: var(--primario); color: var(--su-primario); text-decoration: none; font-weight: 600;
}
.testo-ricco .wp-block-embed iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border-radius: var(--raggio-piccolo); }

/* --------------------------------------------------------------------------
   Condivisione
   -------------------------------------------------------------------------- */

.condividi { padding: 24px 0; border-block: 1px solid var(--bordo); }
.condividi__titolo { font-weight: 600; margin-bottom: 12px; }
.condividi__lista { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.condividi__pulsante {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 14px; border: 1px solid var(--bordo-forte); border-radius: 999px;
	background: var(--superficie); color: var(--testo);
	font: 500 .88rem/1.2 var(--font-testo); text-decoration: none; cursor: pointer;
}
.condividi__pulsante:hover { border-color: var(--primario); color: var(--primario); }
.condividi__pulsante--whatsapp .icona { color: #1f9d55; }
.condividi__pulsante--facebook .icona { color: #1877f2; }
.condividi__pulsante--linkedin .icona { color: #0a66c2; }
.condividi__pulsante--telegram .icona { color: #229ed9; }
[data-theme="dark"] .condividi__pulsante .icona { color: currentColor; }

/* --------------------------------------------------------------------------
   Invito alla consulenza
   -------------------------------------------------------------------------- */

.cta--fascia { background: var(--fascia); color: var(--su-fascia); padding-block: clamp(36px, 6vw, 56px); margin-top: clamp(48px, 7vw, 80px); }
.cta--riquadro { margin-top: 32px; background: var(--sfondo-alt); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 24px 28px; }
.cta__interno { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap; }
.cta__titolo { font-family: var(--font-titoli); font-size: clamp(1.35rem, 2.6vw, 1.75rem); font-weight: 650; margin: 0 0 .3em; line-height: 1.25; }
.cta__testo { margin: 0; max-width: 40em; }
.cta--fascia .cta__titolo { color: #fff; }
.cta--fascia .cta__testo { color: var(--su-fascia-tenue); }
.cta--fascia .pulsante { background: var(--su-fascia); border-color: var(--su-fascia); color: #14243a; }
.cta--fascia .pulsante:hover { background: #fff; }
.cta--riquadro .cta__titolo { color: var(--testo-forte); font-size: 1.3rem; }
.cta--riquadro .cta__testo { color: var(--testo-tenue); }
.sezione-faq + .piede, .cta--fascia + .piede { margin-top: 0; }

/* --------------------------------------------------------------------------
   FAQ (fisarmonica)
   -------------------------------------------------------------------------- */

.fisarmonica { border-top: 1px solid var(--bordo); }
.fisarmonica__voce { border-bottom: 1px solid var(--bordo); }
.fisarmonica__voce summary {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 20px 4px; cursor: pointer; list-style: none;
	font-family: var(--font-titoli); font-size: 1.2rem; font-weight: 600; color: var(--testo-forte);
}
.fisarmonica__voce summary::-webkit-details-marker { display: none; }
.fisarmonica__voce summary .icona { color: var(--accento); transition: transform .2s; }
.fisarmonica__voce[open] summary .icona { transform: rotate(45deg); }
.fisarmonica__voce summary:hover { color: var(--link); }
.fisarmonica__testo { padding: 0 4px 20px; color: var(--testo-tenue); }
.fisarmonica__testo.testo-ricco { font-size: 1.08rem; }

/* --------------------------------------------------------------------------
   Documenti e strumenti
   -------------------------------------------------------------------------- */

.elenco-risorse { list-style: none; padding: 0; margin: 0 0 40px; border-top: 1px solid var(--bordo); }
.risorsa { display: flex; align-items: flex-start; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--bordo); }
.risorsa__icona { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--raggio-piccolo); background: var(--toni-0); color: var(--toni-0-testo); flex-shrink: 0; }
.risorsa__testo { flex: 1; min-width: 0; }
.risorsa__testo p { margin: .2em 0 0; color: var(--testo-tenue); }
.risorsa__titolo { font-size: 1.2rem; margin: 0; }
.risorsa__titolo a { color: var(--testo-forte); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.risorsa__titolo a:hover { color: var(--link); text-decoration: underline; }
.risorsa .pulsante { align-self: center; }
@media (max-width: 600px) {
	.risorsa { flex-wrap: wrap; }
	.risorsa .pulsante { margin-left: 60px; }
}
.gruppo-risorse h2 { font-size: 1.5rem; margin-top: 8px; }

/* --------------------------------------------------------------------------
   Paginazione
   -------------------------------------------------------------------------- */

.paginazione { margin-top: 48px; }
.paginazione .nav-links { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.paginazione .page-numbers {
	display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 12px;
	border: 1px solid var(--bordo); border-radius: var(--raggio-piccolo);
	color: var(--testo); text-decoration: none; background: var(--superficie);
}
.paginazione .page-numbers.current { background: var(--primario); border-color: var(--primario); color: var(--su-primario); }
.paginazione a.page-numbers:hover { border-color: var(--primario); }

/* --------------------------------------------------------------------------
   Piè di pagina
   -------------------------------------------------------------------------- */

.piede { background: var(--fascia); color: var(--su-fascia-tenue); padding-top: clamp(48px, 7vw, 72px); font-size: .95rem; }
.piede a { color: var(--su-fascia); text-decoration: none; }
.piede a:hover { text-decoration: underline; }
.piede__griglia { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 40px; padding-bottom: 48px; }
.piede__studio p { margin: 16px 0 20px; max-width: 26em; }
.marchio--piede { color: #fff; }
.marchio--piede .marchio__logo { width: 56px; height: 56px; }
.piede .pulsante--chiaro { color: #14243a; }
.piede__titolo { font-family: var(--font-testo); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; margin: 0 0 16px; }
.piede__lista { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.piede__fondo { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding-block: 24px 32px; border-top: 1px solid color-mix(in srgb, var(--su-fascia) 18%, transparent); font-size: .85rem; }
.piede__fondo p { margin: 0; }
.piede__legali { display: flex; gap: 20px; list-style: none; padding: 0; margin: 0; }
@media (max-width: 900px) { .piede__griglia { grid-template-columns: 1fr 1fr; } .piede__studio { grid-column: 1 / -1; } }
@media (max-width: 520px) { .piede__griglia { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Pagine con modulo
   -------------------------------------------------------------------------- */

.pagina--modulo .testo-ricco { font-size: 1.08rem; margin-bottom: 32px; }

/* --------------------------------------------------------------------------
   Moduli (richiesta consulenza, affiliazione, area documenti)
   -------------------------------------------------------------------------- */

.modulo { display: grid; gap: 28px; margin-bottom: 48px; }
.modulo__gruppo { border: 0; padding: 0; margin: 0; display: grid; gap: 20px; }
.modulo__gruppo legend {
	font-family: var(--font-titoli); font-size: 1.35rem; font-weight: 650; color: var(--testo-forte);
	padding: 0 0 12px; margin-bottom: 4px; width: 100%; border-bottom: 1px solid var(--bordo);
}
.modulo__griglia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.modulo__griglia[hidden], .modulo__campo[hidden] { display: none; }
@media (max-width: 640px) { .modulo__griglia { grid-template-columns: 1fr; } }
.modulo__campo { display: grid; gap: 6px; align-content: start; }
.modulo__campo--largo { grid-column: 1 / -1; }
.modulo__campo label, .modulo__domanda { font-weight: 600; color: var(--testo-forte); margin: 0; }
.modulo__obbligatorio { color: var(--errore); }
.modulo__facoltativo { font-weight: 400; color: var(--testo-debole); font-size: .9em; }

.modulo input[type="text"], .modulo input[type="email"], .modulo input[type="tel"], .modulo input[type="url"],
.modulo select, .modulo textarea {
	width: 100%;
	padding: .75em .9em;
	border: 1px solid var(--bordo-forte);
	border-radius: var(--raggio-piccolo);
	background: var(--superficie);
	color: var(--testo);
	font: inherit;
	font-size: 1rem;
	min-height: 48px;
}
.modulo textarea { resize: vertical; min-height: 140px; line-height: 1.5; }
.modulo input:focus, .modulo select:focus, .modulo textarea:focus { outline: 3px solid color-mix(in srgb, var(--focus) 40%, transparent); border-color: var(--focus); }
.modulo input[type="file"] {
	padding: 18px; border: 2px dashed var(--bordo-forte); border-radius: var(--raggio);
	background: var(--sfondo-alt); color: var(--testo); font: inherit; width: 100%; cursor: pointer;
}
.modulo input[type="file"]::file-selector-button {
	margin-right: 14px; padding: .55em 1em; border: 1px solid var(--primario); border-radius: var(--raggio-piccolo);
	background: var(--primario); color: var(--su-primario); font: 600 .9rem var(--font-testo); cursor: pointer;
}
.modulo__aiuto { color: var(--testo-debole); font-size: .88rem; margin: 0; }
.modulo__errore { color: var(--errore); font-size: .9rem; font-weight: 600; margin: 0; }
.modulo__campo--errore input, .modulo__campo--errore select, .modulo__campo--errore textarea { border-color: var(--errore); }

.modulo__scelte { display: flex; gap: 24px; }
.modulo__scelte label, .modulo__consenso label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; cursor: pointer; }
.modulo input[type="radio"], .modulo input[type="checkbox"] { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--primario); flex-shrink: 0; }
.modulo__consenso { padding: 16px 18px; border-radius: var(--raggio-piccolo); background: var(--sfondo-alt); font-size: .95rem; }

.modulo__azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.modulo__nota { margin: 0; color: var(--testo-debole); font-size: .88rem; }
.modulo [data-invio]:disabled { opacity: .7; cursor: progress; }

.modulo__trappola { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.modulo__avviso { padding: 18px 20px; border-radius: var(--raggio); border: 1px solid var(--bordo); background: var(--sfondo-alt); margin-bottom: 24px; }
.modulo__avviso p:last-child, .modulo__avviso ul:last-child { margin-bottom: 0; }
.modulo__avviso--errore { border-color: var(--errore); background: color-mix(in srgb, var(--errore) 8%, var(--superficie)); }
.modulo__avviso--errore ul { margin: 0; padding-left: 1.2em; }
.modulo__avviso--successo { border-color: var(--successo); background: color-mix(in srgb, var(--successo) 9%, var(--superficie)); }
.modulo__avviso-titolo { font-family: var(--font-titoli); font-size: 1.3rem; font-weight: 650; color: var(--testo-forte); }

/* Area documenti */
.area-documenti section { margin-bottom: 40px; }
.area-documenti h2 { font-size: 1.4rem; }
.area-documenti__richiesta { padding: 20px 22px; border-left: 3px solid var(--accento); background: var(--sfondo-alt); border-radius: var(--raggio-piccolo); }
.area-documenti__richiesta h2 { font-size: 1.15rem; margin-bottom: .2em; }
.area-documenti__testo { margin-top: 12px; }
.stato-pratica { display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--toni-0); color: var(--toni-0-testo); font-size: .9rem; margin: 0; }
.stato-pratica--chiusa { background: var(--sfondo-alt); color: var(--testo-tenue); }
.elenco-file { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--bordo); }
.elenco-file li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; padding: 14px 0; border-bottom: 1px solid var(--bordo); }
.elenco-file__nome { font-weight: 600; flex: 1 1 260px; word-break: break-word; }
.elenco-file form { margin: 0; }
.pulsante-testo { background: none; border: 0; padding: 4px; color: var(--errore); font: inherit; font-size: .9rem; text-decoration: underline; cursor: pointer; }
