/*
Theme Name:   Statistica Sociale
Theme URI:    https://www.statisticasociale.it
Description:  Child theme di Kadence per il sito del Gruppo di Statistica Sociale (STAT-03/B). Design: flat, blu profondo + ambra, Source Serif 4 + Source Sans 3, accessibilità AA.
Author:       Gruppo di Statistica Sociale
Template:     kadence
Version:      0.2.25
Text Domain:  statisticasociale
*/

/* =========================================================
   Design tokens
   Palette dal piano approvato: blu profondo (serietà accademica)
   + accento caldo ambra per CTA/link, ampio uso di bianco.
   Contrasti verificati AA: #1D3557 su bianco 12.4:1,
   #B45309 su bianco 4.7:1, #3D4852 su bianco 9.2:1.
   ========================================================= */
:root {
	--ss-primary:       #1D3557; /* blu profondo */
	--ss-primary-dark:  #14263F;
	--ss-primary-tint:  #EDF2F7; /* fondo sezioni alternate */
	--ss-accent:        #B45309; /* ambra scura, AA su bianco */
	--ss-accent-dark:   #92400E;
	--ss-text:          #1A202C;
	--ss-muted:         #3D4852;
	--ss-border:        #E2E8F0;
	--ss-bg:            #FFFFFF;

	--ss-font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
	--ss-font-sans:  "Source Sans 3", -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* Aggancio alla palette di Kadence (i componenti del tema la ereditano) */
html body {
	--global-palette1: var(--ss-primary);      /* colore principale */
	--global-palette2: var(--ss-primary-dark); /* principale hover */
	--global-palette3: var(--ss-text);         /* titoli */
	--global-palette4: var(--ss-text);         /* testo */
	--global-palette5: var(--ss-muted);        /* testo secondario */
	--global-palette6: var(--ss-border);       /* bordi */
	--global-palette7: var(--ss-primary-tint); /* sfondo alternato */
	--global-palette8: #F7FAFC;                /* sfondo chiaro */
	--global-palette9: var(--ss-bg);           /* sfondo base */
}

/* =========================================================
   Tipografia: serif per i titoli (autorevolezza editoriale),
   sans per il corpo. Base 16px+, line-height 1.6.
   ========================================================= */
body {
	font-family: var(--ss-font-sans);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--ss-text);
}

h1, h2, h3, h4, h5, h6,
.site-title, .entry-title,
.entry-content h1.wp-block-heading,
.entry-content h2.wp-block-heading,
.entry-content h3.wp-block-heading,
.entry-content h4.wp-block-heading {
	font-family: var(--ss-font-serif);
	font-weight: 600;
	color: var(--ss-primary);
	line-height: 1.25;
}

h1, .entry-content h1.wp-block-heading { font-size: 2.35rem; }
h2, .entry-content h2.wp-block-heading { font-size: 1.625rem; margin-top: 2rem; }
h3, .entry-content h3.wp-block-heading { font-size: 1.25rem; }

/* La front page ha il proprio hero nel contenuto: niente banner-titolo "Home" */
.home.page .entry-hero,
.home.page .entry-header {
	display: none;
}

/* Lunghezza di riga leggibile per il contenuto testuale */
.entry-content > p,
.entry-content > ul,
.entry-content > ol {
	max-width: 72ch;
}

/* =========================================================
   Link e stati di focus (accessibilità AA)
   ========================================================= */
.entry-content a:not(.wp-block-button__link) {
	color: var(--ss-accent);
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color 150ms ease;
}
.entry-content a:not(.wp-block-button__link):hover { color: var(--ss-accent-dark); }

a:focus-visible,
button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 3px solid var(--ss-primary);
	outline-offset: 2px;
}

/* =========================================================
   Header e navigazione
   ========================================================= */
.site-title {
	font-weight: 700;
	letter-spacing: 0.01em;
}
.site-header .main-navigation a {
	font-family: var(--ss-font-sans);
	font-weight: 600;
	font-size: 0.95rem;
}

/* Voce di menu attiva ben riconoscibile (non solo colore) */
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
	color: var(--ss-accent);
	box-shadow: inset 0 -3px 0 var(--ss-accent);
}

/* =========================================================
   Bottoni (flat: colore pieno, hover con scurimento, no ombre)
   ========================================================= */
.entry-content .wp-block-button .wp-block-button__link,
button, .button, input[type="submit"] {
	background-color: var(--ss-accent);
	color: #fff;
	text-decoration: none;
	border-radius: 4px;
	font-family: var(--ss-font-sans);
	font-weight: 600;
	padding: 0.7em 1.5em;
	min-height: 44px;
	transition: background-color 150ms ease;
	cursor: pointer;
}
.entry-content .wp-block-button .wp-block-button__link:hover,
.entry-content .wp-block-button .wp-block-button__link:focus,
button:hover, .button:hover, input[type="submit"]:hover {
	background-color: var(--ss-accent-dark);
	color: #fff;
	text-decoration: none;
}

/* Sulla home il primo bottone è la CTA primaria (blu), gli altri secondari */
.home .entry-content .wp-block-buttons .wp-block-button:first-child .wp-block-button__link {
	background-color: var(--ss-primary);
}
.home .entry-content .wp-block-buttons .wp-block-button:first-child .wp-block-button__link:hover,
.home .entry-content .wp-block-buttons .wp-block-button:first-child .wp-block-button__link:focus {
	background-color: var(--ss-primary-dark);
}

/* =========================================================
   Card "ultime notizie" (blocco latest-posts in griglia)
   ========================================================= */
.wp-block-latest-posts.is-grid {
	gap: 1.25rem;
}
.wp-block-latest-posts.is-grid > li {
	border: 1px solid var(--ss-border);
	border-radius: 6px;
	padding: 1.25rem;
	margin: 0;
	background: var(--ss-bg);
	transition: border-color 150ms ease;
}
.wp-block-latest-posts.is-grid > li:hover {
	border-color: var(--ss-primary);
}
.wp-block-latest-posts > li > a {
	font-family: var(--ss-font-serif);
	font-weight: 600;
	font-size: 1.15rem;
	color: var(--ss-primary);
	text-decoration: none;
}
.wp-block-latest-posts > li > a:hover { text-decoration: underline; }
.wp-block-latest-posts .wp-block-latest-posts__post-date {
	color: var(--ss-muted);
	font-size: 0.85rem;
}

/* Card con immagine in evidenza: l'immagine fa da sfondo, il testo sta sopra
   una velatura scura (contrasto AA del bianco anche sulle foto chiare). */
.wp-block-latest-posts.is-grid > li:has(.wp-block-latest-posts__featured-image) {
	position: relative;
	overflow: hidden;
	min-height: 420px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	border: 0;
	background: var(--ss-primary-dark);
	box-shadow: 0 1px 3px rgba(20, 38, 63, .15);
	transition: transform 250ms ease, box-shadow 250ms ease;
}
.wp-block-latest-posts.is-grid > li:has(.wp-block-latest-posts__featured-image):hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 28px rgba(20, 38, 63, .28);
}
/* selettore "lungo" per battere quello di Kadence (content.min.css), che la rimette relative */
.wp-block-latest-posts.wp-block-latest-posts__list.is-grid > li > .wp-block-latest-posts__featured-image:not(.alignleft):not(.alignright) {
	position: absolute;
	inset: 0;
	margin: 0;
	height: auto;   /* Kadence usa height:0 + padding per il rapporto d'aspetto */
	padding: 0;
}
.wp-block-latest-posts.is-grid .wp-block-latest-posts__featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 600ms ease;
}
.wp-block-latest-posts.is-grid > li:hover .wp-block-latest-posts__featured-image img { transform: scale(1.06); }
.wp-block-latest-posts.is-grid .wp-block-latest-posts__featured-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(11, 31, 63, 0) 0%, rgba(11, 31, 63, .35) 30%, rgba(11, 31, 63, .85) 62%, rgba(11, 31, 63, .95) 100%);
}
.wp-block-latest-posts.is-grid > li:has(.wp-block-latest-posts__featured-image) > :not(.wp-block-latest-posts__featured-image) {
	position: relative;
	color: #fff;
}
.wp-block-latest-posts.is-grid > li:has(.wp-block-latest-posts__featured-image) > a { color: #fff; }
.wp-block-latest-posts.is-grid > li:has(.wp-block-latest-posts__featured-image) .wp-block-latest-posts__post-date { color: #F7B500; font-weight: 600; }
/* tutta la card è cliccabile (link "stirato" sul titolo) */
.wp-block-latest-posts.is-grid > li:has(.wp-block-latest-posts__featured-image) > a::after {
	content: "";
	position: absolute;
	inset: -100vh -100vw;
}
.wp-block-latest-posts.is-grid > li:has(.wp-block-latest-posts__featured-image) > a:focus-visible { outline: 2px solid #F7B500; outline-offset: 3px; }
.wp-block-latest-posts.is-grid > li:has(.wp-block-latest-posts__featured-image) .wp-block-latest-posts__post-excerpt { margin-top: .4rem; font-size: .95rem; }

/* Crediti delle foto in fondo alle news */
.ss-credito-foto { font-size: .85rem; color: var(--ss-muted); border-top: 1px solid var(--ss-border); padding-top: .75rem; }

/* =========================================================
   Colonne "Chi siamo" come card leggere
   ========================================================= */
.page .wp-block-columns .wp-block-column {
	border: 1px solid var(--ss-border);
	border-radius: 6px;
	padding: 1.25rem;
}
.page .wp-block-columns .wp-block-column h3 a {
	color: var(--ss-primary);
	text-decoration: none;
}
.page .wp-block-columns .wp-block-column h3 a:hover {
	color: var(--ss-accent);
}

/* =========================================================
   Footer sobrio su fondo blu
   ========================================================= */
.site-footer {
	background: var(--ss-primary);
	color: #E8EEF5;
}
.site-footer a { color: #FFD9A8; }

/* =========================================================
   Separatori e dettagli
   ========================================================= */
.wp-block-separator {
	border-color: var(--ss-border);
	max-width: 120px;
	margin: 2.5rem auto;
}

/* Riduzione del movimento per chi lo richiede */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

/* Testo a piena larghezza del contenitore su TUTTE le pagine
   (Kadence limita i paragrafi alla misura stretta ~770px) */
.entry-content > p,
.entry-content > h1,
.entry-content > h2,
.entry-content > h3,
.entry-content > ul,
.entry-content > ol {
	max-width: 100% !important;
}

/* Riquadro della definizione ("Cos'è la statistica sociale") */
.entry-content .ss-definizione {
	background: var(--ss-primary-tint);
	border-left: 4px solid var(--ss-accent);
	border-radius: 0 6px 6px 0;
	padding: 1.5rem 1.75rem;
	margin: 0 0 2rem;
}
.entry-content .ss-definizione p { max-width: 100% !important; }
.ss-definizione__testo {
	font-family: var(--ss-font-serif);
	font-size: 1.3rem;
	line-height: 1.5;
	color: var(--ss-primary);
	margin: 0 0 .75rem;
}
.ss-definizione__fonte {
	font-size: .95rem;
	color: var(--ss-muted);
	margin: 0;
}
.ss-definizione__fonte::before { content: "— "; }

/* Elenchi lunghi su due colonne (una su mobile) */
.entry-content ul.ss-elenco-colonne {
	columns: 2 18rem;
	column-gap: 2.5rem;
}
.entry-content ul.ss-elenco-colonne li { break-inside: avoid; }

/* Schede dei gruppi tematici: blocchi Dettagli collassabili */
.entry-content details.ss-gruppo {
	border: 1px solid var(--ss-border);
	border-left: 4px solid var(--ss-accent);
	border-radius: 0 6px 6px 0;
	margin: 0 0 1rem;
	background: var(--ss-bg);
}
.entry-content details.ss-gruppo > summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: .2rem;
	padding: 1rem 3rem 1rem 1.25rem;
	position: relative;
}
.entry-content details.ss-gruppo > summary::-webkit-details-marker { display: none; }
.entry-content details.ss-gruppo > summary::after {
	content: "+";
	position: absolute;
	right: 1.25rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.5rem;
	line-height: 1;
	color: var(--ss-accent);
}
.entry-content details.ss-gruppo[open] > summary::after { content: "−"; }
.entry-content details.ss-gruppo > summary:hover,
.entry-content details.ss-gruppo[open] > summary { background: var(--ss-primary-tint); }
.entry-content details.ss-gruppo > summary:focus-visible { outline: 2px solid var(--ss-accent); outline-offset: 2px; }
/* Icona tematica a sinistra del titolo di ogni gruppo (scelta in base all'id del riquadro, IT/EN) */
.entry-content details.ss-gruppo > summary {
	display: grid;
	grid-template-columns: 56px 1fr;
	column-gap: 1rem;
	align-items: center;
}
.entry-content details.ss-gruppo > summary::before {
	content: "";
	grid-row: 1 / span 2;
	width: 56px;
	height: 56px;
	background: center / contain no-repeat;
	transition: transform 250ms ease;
}
.entry-content details.ss-gruppo > summary:hover::before { transform: scale(1.08) rotate(-3deg); }
#indicatori-sociali-benessere > summary::before,
#social-indicators-well-being > summary::before { background-image: url("tematiche/indicatori-benessere.svg"); }
#futures-studies > summary::before { background-image: url("tematiche/futures-studies.svg"); }
#science-mapping > summary::before { background-image: url("tematiche/science-mapping.svg"); }
#trasporti-turismo > summary::before,
#transport-tourism > summary::before { background-image: url("tematiche/trasporti-turismo.svg"); }
.ss-gruppo__titolo, .ss-gruppo__ref { grid-column: 2; }

.ss-gruppo__titolo {
	font-family: var(--ss-font-serif);
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--ss-primary);
}
.ss-gruppo__ref { font-size: .95rem; color: var(--ss-muted); }
.entry-content details.ss-gruppo > :not(summary) { margin-left: 1.25rem; margin-right: 1.25rem; }
.entry-content details.ss-gruppo > :last-child { margin-bottom: 1.25rem; }

/* Scheda di adesione ([ss_iscrizione_form]) */
.ss-iscrizione-form { max-width: 640px; }
.ss-iscrizione-form .ss-hp { position: absolute; left: -9999px; overflow: hidden; }
.ss-iscrizione-form fieldset {
	border: 1px solid var(--ss-border);
	border-radius: 6px;
	padding: .75rem 1.25rem 1rem;
	margin: 0 0 1.5rem;
}
.ss-iscrizione-form legend {
	font-family: var(--ss-font-serif);
	font-weight: 600;
	color: var(--ss-primary);
	padding: 0 .4rem;
}
.ss-iscrizione-form input[type="text"],
.ss-iscrizione-form input[type="email"],
.ss-iscrizione-form input[type="url"],
.ss-iscrizione-form select,
.ss-iscrizione-form textarea { width: 100%; }
.ss-iscrizione-form .ss-scelta {
	display: flex;
	gap: .6rem;
	align-items: flex-start;
	margin: .35rem 0;
}
.ss-iscrizione-form .ss-scelta input { margin-top: .35em; flex: none; }
/* Sottolineatura continua: senza, la "y" di "privacy" sembra fuori dal link */
.ss-iscrizione-form .ss-scelta a { text-decoration-skip-ink: none; }
.ss-iscrizione-form .ss-form-help,
.ss-iscrizione-form .ss-form-nota { font-size: .95rem; color: var(--ss-muted); margin-top: -.5rem; }
.ss-iscrizione-form .ss-form-nota { margin-top: 0; }
.ss-form-msg { padding: 1rem; border-radius: 4px; margin-bottom: 1rem; }
.ss-form-ok { border: 1px solid #2e7d32; background: #e8f5e9; }
.ss-form-errore { border: 1px solid #c62828; background: #ffebee; }

/* Logo nell'header accanto al nome del sito */
.site-branding img.custom-logo,
.brand img.custom-logo {
	max-height: 46px;
	width: auto;
}
.site-branding, .brand { display: flex; align-items: center; gap: 10px; }

/* Atlante: testata con il logo orizzontale (anche nel PDF) */
.ss-atlas-testata { margin: 0 0 1.5rem; }
.ss-atlas-testata img { display: block; width: 300px; max-width: 100%; height: auto; }

/* Stampa/PDF: nasconde pulsante download Atlante e chrome del sito */
@media print {
	.ss-atlas-pdf-btn,
	.ss-atlas-toggle,
	.ss-atlas-filter,
	header.site-header, #masthead,
	footer.site-footer, #colophon,
	.kadence-scroll-to-top { display: none !important; }
	.ss-atlas { break-inside: avoid; }
}

/* =========================================================
   Animazioni leggere: comparsa allo scorrimento (classe aggiunta
   via JS solo in Home, vedi functions.php). Niente movimento con
   "riduci movimento" del sistema.
   ========================================================= */
.ss-rivela { opacity: 0; transform: translateY(18px); transition: opacity 600ms ease, transform 600ms ease; }
.ss-rivela.ss-visibile { opacity: 1; transform: none; }
.home .entry-content > .wp-block-image:first-child img { animation: ss-entra 900ms ease both; }
@keyframes ss-entra { from { opacity: 0; transform: scale(.85) rotate(-8deg); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
	.ss-rivela { opacity: 1; transform: none; transition: none; }
	.home .entry-content > .wp-block-image:first-child img { animation: none; }
	.wp-block-latest-posts.is-grid > li,
	.wp-block-latest-posts.is-grid .wp-block-latest-posts__featured-image img,
	.entry-content details.ss-gruppo > summary::before { transition: none; transform: none !important; }
}

/* =========================================================
   Rubrica «Ma davvero?» ([ss_ma_davvero] in Home e pagina della curiosità)
   ========================================================= */
.ss-madavvero {
	position: relative;
	margin: 2.5rem 0 1rem;
	padding: 1.75rem 1.75rem 1.5rem 9.5rem;
	border-radius: 8px;
	background: linear-gradient(120deg, #FEF1E2 0%, #FFF8EC 60%, #E7F0FD 100%);
	border: 1px solid #F7D9B0;
	overflow: hidden;
}
.ss-madavvero::before {          /* punto interrogativo grande, decorativo */
	content: "?";
	position: absolute;
	left: 1.5rem;
	top: 50%;
	transform: translateY(-50%) rotate(-10deg);
	font-family: var(--ss-font-serif);
	font-size: 9rem;
	font-weight: 700;
	line-height: 1;
	color: #F58200;
	opacity: .9;
	transition: transform 400ms ease;
}
.ss-madavvero:hover::before { transform: translateY(-50%) rotate(6deg) scale(1.05); }
.entry-content .ss-madavvero__etichetta {
	margin: 0;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ss-accent);
}
.entry-content .ss-madavvero__dato {
	margin: .2rem 0 0;
	font-family: var(--ss-font-serif);
	font-size: 2.6rem;
	font-weight: 700;
	line-height: 1.1;
	color: #0B66E4;
}
.entry-content .ss-madavvero__titolo { margin: .2rem 0 .3rem; font-size: 1.3rem; }
.entry-content .ss-madavvero__titolo a { color: var(--ss-primary); text-decoration: none; }
.entry-content .ss-madavvero__titolo a:hover { text-decoration: underline; }
.entry-content .ss-madavvero__testo { margin: 0 0 .6rem; }
.entry-content .ss-madavvero__link { margin: 0; font-weight: 600; }
.entry-content .ss-madavvero__dato--pagina { font-size: 4rem; margin-bottom: 1rem; }
@media (max-width: 600px) {
	.ss-madavvero { padding: 1.5rem 1.25rem 1.25rem 5.5rem; }
	.ss-madavvero::before { font-size: 5rem; left: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
	.ss-madavvero::before { transition: none; }
}

/* =========================================================
   Riquadri collassabili (gruppi tematici e casi studio): animazione
   di apertura. Dove il browser lo consente (::details-content +
   interpolate-size) il riquadro si allunga in modo graduale; ovunque
   il contenuto entra con una breve dissolvenza dall'alto.
   ========================================================= */
.entry-content details.ss-gruppo { interpolate-size: allow-keywords; }
.entry-content details.ss-gruppo::details-content {
	block-size: 0;
	overflow: hidden;
	transition: block-size 380ms ease, content-visibility 380ms allow-discrete;
}
.entry-content details.ss-gruppo[open]::details-content { block-size: auto; }
.entry-content details.ss-gruppo[open] > :not(summary) { animation: ss-apri 380ms ease both; }
@keyframes ss-apri { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.entry-content details.ss-gruppo > summary::after { transition: transform 250ms ease; }
.entry-content details.ss-gruppo[open] > summary::after { transform: translateY(-50%) rotate(180deg); }

/* Casi studio (Esperienze di ricerca): stesso riquadro dei gruppi, bordo blu e fasi numerate */
.entry-content details.ss-caso { border-left-color: #0B66E4; scroll-margin-top: 6rem; counter-reset: ss-fase; }
.entry-content .ss-caso__scheda {
	font-size: .95rem;
	color: var(--ss-muted);
	padding: 1rem 0 1rem;
	border-bottom: 1px solid var(--ss-border);
}
.entry-content .ss-caso__fase {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 1.25rem 0 .4rem;
	font-size: 1.05rem;
	color: var(--ss-primary);
}
.entry-content .ss-caso__fase::before {    /* 1 → 2 → 3 nei colori del logo */
	counter-increment: ss-fase;
	content: counter(ss-fase);
	display: inline-grid;
	place-items: center;
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
	font-size: .85rem;
	color: #fff;
	background: #EE3A0C;
}
.entry-content .ss-caso h4:nth-of-type(2)::before { background: #F58200; }
.entry-content .ss-caso h4:nth-of-type(3)::before { background: #0B66E4; }

/* =========================================================
   Pagina Gruppi & Esperienze: indice, griglia dei gruppi, casi studio
   ========================================================= */
.entry-content .ss-indice {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin: 1.5rem 0 2.5rem;
}
.entry-content a.ss-indice__voce {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .3rem;
	padding: 1.25rem 3rem 1.25rem 1.5rem;
	border-radius: 8px;
	border: 1px solid #F7D9B0;
	background: linear-gradient(120deg, #FEF1E2, #FFF8EC);
	text-decoration: none;
	transition: transform 200ms ease, box-shadow 200ms ease;
}
.entry-content a.ss-indice__voce + a.ss-indice__voce { border-color: #C9DCF7; background: linear-gradient(120deg, #E7F0FD, #F3F8FE); }
.entry-content a.ss-indice__voce::after {
	content: "↓";
	position: absolute;
	right: 1.25rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.4rem;
	color: var(--ss-accent);
}
.entry-content a.ss-indice__voce:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(20, 38, 63, .12); }
.entry-content .ss-indice__titolo { font-family: var(--ss-font-serif); font-size: 1.3rem; font-weight: 600; color: var(--ss-primary); }
.entry-content .ss-indice__testo { color: var(--ss-muted); }
#gruppi-tematici, #esperienze-di-ricerca, #thematic-groups, #research-experiences { scroll-margin-top: 6rem; }

/* card: sintesi e invito ad aprire (+ / −) al posto del "+" a destra */
.entry-content .ss-gruppo__sintesi { grid-column: 2; margin-top: .35rem; color: var(--ss-text); }
.entry-content .ss-gruppo__apri { grid-column: 2; margin-top: .5rem; font-weight: 600; color: var(--ss-accent); }
.entry-content .ss-gruppo__apri::after { content: " +"; }
.entry-content details.ss-gruppo[open] .ss-gruppo__apri::after { content: " −"; }
/* casi studio: solo il segno + / − (niente testo) */
.entry-content .ss-caso .ss-gruppo__apri::after { content: "+"; font-size: 1.5rem; line-height: 1; }
.entry-content details.ss-caso[open] .ss-gruppo__apri::after { content: "−"; }
.entry-content .ss-griglia-gruppi details.ss-gruppo > summary::after,
.entry-content .ss-lista-casi details.ss-gruppo > summary::after { display: none; }
.entry-content .ss-griglia-gruppi details.ss-gruppo > summary,
.entry-content .ss-lista-casi details.ss-gruppo > summary { padding-right: 1.25rem; }

/* gruppi: griglia 2x2; la card aperta si allunga nella sua colonna (l'ordine non cambia).
   Kadence (tema classico) avvolge il gruppo in .wp-block-group__inner-container:
   con display: contents le card diventano figlie dirette della griglia. */
.entry-content .ss-griglia-gruppi > .wp-block-group__inner-container { display: contents; }
.entry-content .ss-griglia-gruppi {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	gap: 1rem;
}
.entry-content .ss-griglia-gruppi details.ss-gruppo { margin: 0; transition: box-shadow 200ms ease; }
.entry-content .ss-griglia-gruppi details.ss-gruppo:hover { box-shadow: 0 6px 18px rgba(20, 38, 63, .10); }
.entry-content .ss-griglia-gruppi details.ss-gruppo > summary { align-items: start; align-content: start; }

/* casi studio: testo a sinistra, immagine piccola a destra */
.entry-content .ss-lista-casi details.ss-caso > summary {
	grid-template-columns: 1fr 240px;
	column-gap: 1.5rem;
	padding: 1rem;
	align-items: start;
}
.entry-content .ss-lista-casi details.ss-caso > summary::before { display: none; }
.entry-content .ss-caso__foto {
	grid-column: 2;
	grid-row: 1 / span 4;
	width: 100%;
	height: 100%;
	min-height: 150px;
	max-height: 190px;
	object-fit: cover;
	border-radius: 6px;
	transition: transform 400ms ease;
}
.entry-content .ss-lista-casi details.ss-caso > summary:hover .ss-caso__foto { transform: scale(1.02); }
.entry-content .ss-lista-casi .ss-caso .ss-gruppo__ref,
.entry-content .ss-lista-casi .ss-caso .ss-gruppo__titolo,
.entry-content .ss-lista-casi .ss-caso .ss-gruppo__sintesi,
.entry-content .ss-lista-casi .ss-caso .ss-gruppo__apri { grid-column: 1; }
.entry-content .ss-lista-casi .ss-caso .ss-gruppo__ref {
	grid-row: 1;
	margin-top: .25rem;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #0B66E4;
}
.entry-content .ss-lista-casi .ss-caso .ss-gruppo__titolo { grid-row: 2; font-size: 1.3rem; }
.entry-content .ss-lista-casi .ss-caso .ss-gruppo__sintesi { grid-row: 3; }
.entry-content .ss-lista-casi .ss-caso .ss-gruppo__apri { grid-row: 4; }

/* grafico dentro un caso studio: riquadro a destra, il testo gli scorre accanto (come in un articolo) */
.entry-content .ss-caso__grafico { float: right; width: min(45%, 440px); margin: .25rem 0 1rem 1.75rem; }
.entry-content .ss-caso__grafico--largo { width: min(58%, 560px); }
.entry-content .ss-caso__grafico { clear: right; }   /* più figure nella stessa fase: una sotto l'altra, mai affiancate */
/* coppia di grafici sotto il testo, affiancati a metà colonna */
/* i contenuti dei riquadri hanno margini laterali di 1.25rem: 1.25 + metà + .75 + metà = 100% - 1.25rem */
.entry-content details.ss-caso > .ss-caso__grafico--coppia { float: left; clear: none; width: calc(50% - 1.625rem); margin: .75rem 0 1rem 1.25rem; }
.entry-content details.ss-caso > .ss-caso__grafico--coppia + .ss-caso__grafico--coppia { margin-left: .75rem; }
.entry-content .ss-caso__fase { clear: both; }
.entry-content details.ss-caso > :last-child { clear: both; }
.entry-content .ss-caso__grafico img { display: block; width: 100%; height: auto; border: 1px solid var(--ss-border); border-radius: 6px; }
.entry-content .ss-caso__grafico figcaption { margin-top: .4rem; font-size: .85rem; color: var(--ss-muted); }

@media (max-width: 760px) {
	.entry-content .ss-indice,
	.entry-content .ss-griglia-gruppi { grid-template-columns: 1fr; }
	.entry-content .ss-lista-casi details.ss-caso > summary { grid-template-columns: 1fr; }
	.entry-content .ss-caso__grafico { float: none; width: 100%; margin: 1rem 0; }
	.entry-content details.ss-caso > .ss-caso__grafico--coppia,
	.entry-content details.ss-caso > .ss-caso__grafico--coppia + .ss-caso__grafico--coppia { float: none; width: auto; margin: 1rem 1.25rem; }
	.entry-content .ss-caso__foto { grid-column: 1; grid-row: auto; min-height: 0; max-height: none; aspect-ratio: 12 / 5; margin-bottom: .75rem; }
	.entry-content .ss-lista-casi .ss-caso .ss-gruppo__ref,
	.entry-content .ss-lista-casi .ss-caso .ss-gruppo__titolo,
	.entry-content .ss-lista-casi .ss-caso .ss-gruppo__sintesi,
	.entry-content .ss-lista-casi .ss-caso .ss-gruppo__apri { grid-column: 1; grid-row: auto; }
}

@media (prefers-reduced-motion: reduce) {
	.entry-content details.ss-gruppo::details-content { transition: none; }
	.entry-content details.ss-gruppo[open] > :not(summary) { animation: none; }
	.entry-content details.ss-gruppo > summary::after { transition: none; }
	.entry-content .ss-indice__voce,
	.entry-content .ss-griglia-gruppi details.ss-gruppo,
	.entry-content .ss-caso__foto { transition: none; transform: none !important; }
}
