/*
Theme Name: Tono Architettura
Theme URI: https://tonostudio.it
Description: Tema su misura per il sito di Tono Architettura. Versione di prova.
Version: 0.7.8
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
Author: Tono Architettura
Text Domain: tono
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* ---------- Colori e misure ---------- */
:root {
	--tono-fondo: #f7f6f3;
	--tono-inchiostro: #1d1d1b;
	--tono-grigio: #62625e;
	--tono-linea: #dad9d5;
	--tono-footer-testo: #b5b4b0;
	--tono-margine: 48px;
	--tono-max: 1280px;
	--tono-sezione: 140px;
	--tono-font: 'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

@media screen and (max-width: 760px) {
	:root {
		--tono-margine: 20px;
		--tono-sezione: 64px;
	}
}

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

body.tono {
	margin: 0;
	background: var(--tono-fondo);
	color: var(--tono-inchiostro);
	font-family: var(--tono-font);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

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

a {
	color: inherit;
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

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

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

.tono-salta {
	position: absolute;
	left: -9999px;
	top: 8px;
	background: var(--tono-inchiostro);
	color: var(--tono-fondo);
	padding: 8px 12px;
	z-index: 100;
}

.tono-salta:focus {
	left: 8px;
}

.tono-wrap {
	max-width: var(--tono-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--tono-margine);
	padding-right: var(--tono-margine);
}

.tono-sezione {
	padding-top: var(--tono-sezione);
}

.tono-label {
	margin: 0;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tono-grigio);
}

.tono-label--scura {
	color: var(--tono-inchiostro);
}

.tono-link {
	align-self: flex-start;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--tono-inchiostro);
	padding-bottom: 4px;
}

.tono-link:hover {
	text-decoration: none;
	opacity: 0.7;
}

.tono-link-piccolo {
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* ---------- Header ---------- */
.tono-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 30px;
	padding-bottom: 30px;
}

.tono-header__logo {
	display: block;
}

/* Logo con la scritta "architettura | interior design" (dalla 0.7.8):
   si misura in larghezza; a 150 px la scritta è alta circa 10 px. */
.tono-logo {
	display: block;
	width: 150px;
	height: auto;
}

.tono-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 36px;
}

.tono-menu a {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.tono-menu .current-menu-item > a,
.tono-menu .current_page_item > a {
	border-bottom: 1px solid var(--tono-inchiostro);
}

.tono-header__bottone {
	display: none;
	width: 44px;
	height: 44px;
	border: 0;
	background: none;
	color: var(--tono-inchiostro);
	cursor: pointer;
	padding: 0;
	align-items: center;
	justify-content: center;
}

@media screen and (max-width: 760px) {
	.tono-header {
		padding-top: 18px;
		padding-bottom: 18px;
		position: relative;
	}

	.tono-logo {
		width: 130px;
	}

	.tono-header__bottone {
		display: flex;
	}

	.tono-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--tono-fondo);
		padding: 8px var(--tono-margine) 24px;
		border-bottom: 1px solid var(--tono-linea);
		z-index: 20;
	}

	.tono-menu-aperto .tono-nav {
		display: block;
	}

	.tono-menu {
		flex-direction: column;
		gap: 0;
	}

	.tono-menu a {
		display: block;
		padding: 14px 0;
		font-size: 14px;
	}
}

/* ---------- Griglie ---------- */
.tono-griglia12 {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 24px;
}

.tono-col-3 {
	grid-column: span 3;
	padding-top: 10px;
}

.tono-col-9 {
	grid-column: span 9;
}

.tono-pila {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.tono-griglia3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 48px 32px;
}

.tono-testata {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: space-between;
	align-items: baseline;
	border-bottom: 1px solid var(--tono-linea);
	padding-bottom: 16px;
	margin-bottom: 40px;
}

@media screen and (max-width: 760px) {
	.tono-griglia12 {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	.tono-col-3,
	.tono-col-9 {
		grid-column: auto;
		padding-top: 0;
	}

	.tono-griglia3 {
		grid-template-columns: minmax(0, 1fr);
		gap: 40px;
	}

	.tono-testata {
		margin-bottom: 24px;
	}
}

/* ---------- Home ---------- */
.tono-apertura figure {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.tono-apertura__didascalia {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 6px 32px;
}

.tono-apertura__crediti {
	margin-left: auto;
}

.tono-apertura__link:hover {
	text-decoration: none;
}

.tono-apertura__img {
	width: 100%;
	height: 640px;
	object-fit: cover;
}

.tono-motto {
	margin: 0 0 8px;
	font-size: 48px;
	line-height: 1.2;
	font-weight: 300;
	letter-spacing: -0.01em;
	max-width: 900px;
}

.tono-frase {
	margin: 0;
	font-size: 20px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--tono-grigio);
	max-width: 640px;
}

.tono-servizio h3 {
	margin: 0 0 14px;
	font-size: 19px;
	font-weight: 400;
	line-height: 1.35;
}

.tono-servizio p {
	margin: 0;
	font-size: 14px;
	line-height: 1.7;
	color: var(--tono-grigio);
}

@media screen and (max-width: 760px) {
	.tono-apertura__img {
		height: 300px;
	}

	.tono-motto {
		font-size: 30px;
	}

	.tono-frase {
		font-size: 17px;
	}
}

/* ---------- Schede progetto (home, altri progetti) ---------- */
.tono-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.tono-card:hover {
	text-decoration: none;
}

.tono-card__img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	display: block;
	background: var(--tono-linea);
}

.tono-card__testo {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.tono-card__titolo {
	font-size: 16px;
	font-weight: 500;
}

.tono-card:hover .tono-card__titolo {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---------- Archivio progetti (griglia) ---------- */
.tono-archivio {
	padding-top: 24px;
}

.tono-archivio__titolo {
	margin: 0 0 48px;
	font-size: 16px;
	font-weight: 400;
	color: var(--tono-grigio);
}

.tono-mosaico {
	--tono-passo: 24px;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--tono-passo);
	align-items: start;
}

/* Griglia rigorosa: riquadri quadrati, stessa distanza in orizzontale e in verticale. */
.tono-mosaico__img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.tono-mosaico__voce {
	position: relative;
	display: block;
}

.tono-mosaico__voce:hover {
	text-decoration: none;
}

.tono-mosaico__img--vuota {
	background: var(--tono-linea);
}

.tono-mosaico__didascalia {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 8px 0 0;
}

.tono-mosaico__titolo {
	font-size: 14px;
	font-weight: 500;
}

.tono-mosaico__meta > span + span::before {
	content: ' · ';
}

/* Con il mouse: al passaggio la foto sparisce e il riquadro prende il colore
   della pagina, con nome, categorie e luogo al centro. */
@media (hover: hover) and (min-width: 761px) {
	.tono-mosaico__img {
		transition: opacity 0.25s;
	}

	.tono-mosaico__didascalia {
		position: absolute;
		inset: 0;
		padding: 24px;
		align-items: center;
		justify-content: center;
		text-align: center;
		gap: 8px;
		opacity: 0;
		transition: opacity 0.25s;
	}

	.tono-mosaico__titolo {
		font-size: 18px;
		margin-bottom: 4px;
	}

	.tono-mosaico__meta {
		display: flex;
		flex-direction: column;
		gap: 6px;
	}

	.tono-mosaico__meta > span + span::before {
		content: none;
	}

	.tono-mosaico__voce:hover .tono-mosaico__img,
	.tono-mosaico__voce:focus-visible .tono-mosaico__img {
		opacity: 0;
	}

	.tono-mosaico__voce:hover .tono-mosaico__didascalia,
	.tono-mosaico__voce:focus-visible .tono-mosaico__didascalia {
		opacity: 1;
	}
}

@media screen and (max-width: 760px) {
	.tono-mosaico {
		--tono-passo: 12px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tono-mosaico__titolo {
		font-size: 13px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tono-mosaico__img,
	.tono-mosaico__didascalia {
		transition: none;
	}
}

/* ---------- Pagina progetto ---------- */
.tono-progetto__testa {
	padding-top: 48px;
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.tono-briciole {
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tono-grigio);
}

.tono-progetto__titolo {
	margin: 0;
	font-size: 52px;
	font-weight: 300;
	line-height: 1.1;
}

.tono-progetto__sottotitolo {
	margin: 0;
	font-size: 20px;
	line-height: 1.45;
}

.tono-progetto__apertura {
	margin: 0;
	font-size: 17px;
	line-height: 1.75;
	color: var(--tono-grigio);
}

.tono-progetto__copertina {
	padding-top: 48px;
}

.tono-progetto__copertina-img {
	width: 100%;
	height: 720px;
	object-fit: cover;
}

@media screen and (max-width: 760px) {
	.tono-progetto__testa {
		padding-top: 24px;
		gap: 16px;
	}

	.tono-progetto__titolo {
		font-size: 34px;
	}

	.tono-progetto__sottotitolo {
		font-size: 16px;
	}

	.tono-progetto__apertura {
		font-size: 15px;
	}

	.tono-progetto__copertina {
		padding-top: 28px;
	}

	.tono-progetto__copertina-img {
		height: 280px;
	}
}

/* Scheda dati e crediti */
.tono-dl {
	margin: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px 40px;
}

.tono-dl--scheda {
	padding-top: 56px;
}

.tono-dl--crediti {
	padding-top: 96px;
}

.tono-dl__voce {
	display: flex;
	flex-direction: column;
	gap: 6px;
	border-top: 1px solid var(--tono-linea);
	padding-top: 14px;
}

.tono-dl__voce--elenco {
	grid-column: 1 / -1;
}

.tono-elenco {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-template-rows: repeat(var(--tono-righe, 2), auto);
	grid-auto-flow: column;
	gap: 6px 40px;
}

.tono-dl__voce--larga {
	grid-column: span 2;
}

.tono-dl dt {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tono-grigio);
}

.tono-dl dd {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
}

.tono-dl dd a {
	border-bottom: 1px solid var(--tono-inchiostro);
}

.tono-dl dd a:hover {
	text-decoration: none;
	opacity: 0.7;
}

@media screen and (max-width: 760px) {
	.tono-dl,
	.tono-dl--crediti {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px 16px;
	}

	.tono-dl--scheda {
		padding-top: 32px;
	}

	.tono-dl--crediti {
		padding-top: 48px;
	}

	.tono-elenco {
		display: flex;
		flex-direction: column;
		gap: 4px;
	}
}

/* Contenuto scritto nell'editor: galleria in coppie, poi il racconto allineato alla griglia */
.tono-contenuto {
	padding-top: 72px;
}

.tono-contenuto > * {
	margin-top: 0;
	margin-bottom: 0;
}

.tono-contenuto > * + * {
	margin-top: 16px;
}

.tono-contenuto > h2,
.tono-contenuto > p,
.tono-contenuto > ul,
.tono-contenuto > ol,
.tono-contenuto > blockquote {
	margin-left: calc(25% + 6px);
	max-width: 720px;
}

.tono-contenuto > h2 {
	margin-top: 56px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tono-grigio);
}

.tono-contenuto > p,
.tono-contenuto > ul,
.tono-contenuto > ol {
	font-size: 17px;
	line-height: 1.85;
}

.tono-contenuto > .wp-block-gallery + h2,
.tono-contenuto > figure + h2 {
	margin-top: 112px;
}

.tono-contenuto .wp-block-gallery.has-nested-images {
	--wp--style--unstable-gallery-gap: 32px;
	gap: 32px;
}

.tono-contenuto .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
	width: calc(50% - 16px);
	flex-grow: 0;
}

.tono-contenuto .wp-block-gallery.has-nested-images figure.wp-block-image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

/* Foto orizzontali: a tutta larghezza (quanto due verticali affiancate), in 3:2.
   L'orientamento lo riconosce il tema dalla foto caricata; l'ordine è quello della galleria. */
body.tono .tono-contenuto .wp-block-gallery.has-nested-images figure.wp-block-image.tono-foto--verticale:not(#individual-image) {
	width: calc(50% - 16px);
	flex-grow: 0;
}

body.tono .tono-contenuto .wp-block-gallery.has-nested-images figure.wp-block-image.tono-foto--orizzontale:not(#individual-image) {
	width: 100%;
	flex-grow: 0;
}

body.tono .tono-contenuto .wp-block-gallery.has-nested-images figure.wp-block-image.tono-foto--orizzontale img {
	aspect-ratio: 3 / 2;
}

/* Foto inserita da sola (blocco Immagine fuori dalla galleria). */
.tono-contenuto > figure.wp-block-image.tono-foto {
	margin-left: 0;
	margin-right: 0;
}

.tono-contenuto > figure.wp-block-image.tono-foto img {
	width: 100%;
	object-fit: cover;
}

.tono-contenuto > figure.wp-block-image.tono-foto--orizzontale img {
	aspect-ratio: 3 / 2;
}

.tono-contenuto > figure.wp-block-image.tono-foto--verticale {
	width: calc(50% - 16px);
}

.tono-contenuto > figure.wp-block-image.tono-foto--verticale img {
	aspect-ratio: 4 / 5;
}

.tono-contenuto > .wp-block-gallery + .wp-block-gallery,
.tono-contenuto > .wp-block-gallery + figure.wp-block-image,
.tono-contenuto > figure.wp-block-image + .wp-block-gallery,
.tono-contenuto > figure.wp-block-image + figure.wp-block-image {
	margin-top: 32px;
}

/* Foto a tutto schermo: solo con il mouse (lo script aggiunge la classe). */
.tono-zoom-attivo .tono-contenuto figure.tono-foto img {
	cursor: zoom-in;
}

.tono-zoom {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--tono-fondo);
	opacity: 0;
	transition: opacity 0.2s;
}

.tono-zoom[hidden] {
	display: none;
}

.tono-zoom--aperto {
	opacity: 1;
}

.tono-zoom__img {
	max-width: calc(100vw - 176px);
	max-height: calc(100vh - 112px);
	width: auto;
	height: auto;
	object-fit: contain;
	cursor: zoom-out;
}

.tono-zoom__bottone {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--tono-inchiostro);
	font: inherit;
	cursor: pointer;
}

.tono-zoom__bottone svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.2;
}

.tono-zoom__bottone:hover {
	color: var(--tono-grigio);
}

.tono-zoom__bottone:focus-visible {
	outline: 1px solid var(--tono-inchiostro);
	outline-offset: -8px;
}

.tono-zoom__chiudi {
	top: 12px;
	right: 16px;
}

.tono-zoom__prec,
.tono-zoom__succ {
	top: 50%;
	margin-top: -28px;
}

.tono-zoom__prec {
	left: 16px;
}

.tono-zoom__succ {
	right: 16px;
}

.tono-zoom__conta {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 20px;
	text-align: center;
	pointer-events: none;
}

.tono-zoom-aperto {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.tono-zoom {
		transition: none;
	}
}

.tono-contenuto figcaption {
	display: none;
}

/* Video del progetto: a tutta larghezza */
.tono-contenuto .wp-block-video {
	margin-left: 0;
	margin-right: 0;
}

.tono-contenuto .wp-block-video video {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	background: var(--tono-linea);
}

.tono-contenuto > .wp-block-video + *,
.tono-contenuto > * + .wp-block-video {
	margin-top: 32px;
}

.tono-contenuto--pagina {
	padding-top: 32px;
}

.tono-contenuto--pagina > h2,
.tono-contenuto--pagina > p,
.tono-contenuto--pagina > ul,
.tono-contenuto--pagina > ol {
	margin-left: 0;
}

@media screen and (max-width: 760px) {
	.tono-contenuto {
		padding-top: 40px;
	}

	.tono-contenuto > h2,
	.tono-contenuto > p,
	.tono-contenuto > ul,
	.tono-contenuto > ol,
	.tono-contenuto > blockquote {
		margin-left: 0;
	}

	.tono-contenuto > p {
		font-size: 15px;
	}

	.tono-contenuto > h2 {
		margin-top: 40px;
	}

	.tono-contenuto > .wp-block-gallery + h2 {
		margin-top: 56px;
	}

	.tono-contenuto .wp-block-gallery.has-nested-images {
		gap: 12px;
	}

	.tono-contenuto > .wp-block-video + *,
	.tono-contenuto > * + .wp-block-video {
		margin-top: 12px;
	}

	.tono-contenuto .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
		width: calc(50% - 6px);
	}

	body.tono .tono-contenuto .wp-block-gallery.has-nested-images figure.wp-block-image.tono-foto--verticale:not(#individual-image),
	.tono-contenuto > figure.wp-block-image.tono-foto--verticale {
		width: calc(50% - 6px);
	}

	body.tono .tono-contenuto .wp-block-gallery.has-nested-images figure.wp-block-image.tono-foto--orizzontale:not(#individual-image) {
		width: 100%;
	}

	.tono-contenuto > .wp-block-gallery + .wp-block-gallery,
	.tono-contenuto > .wp-block-gallery + figure.wp-block-image,
	.tono-contenuto > figure.wp-block-image + .wp-block-gallery,
	.tono-contenuto > figure.wp-block-image + figure.wp-block-image {
		margin-top: 12px;
	}
}

/* ---------- Testo del progetto ("Il progetto") ---------- */
.tono-racconto {
	padding-top: 112px;
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 24px;
}

.tono-racconto__etichetta {
	grid-column: span 3;
	padding-top: 8px;
}

.tono-racconto__testo {
	grid-column: span 9;
	font-size: 17px;
	line-height: 1.85;
	text-align: justify;
	-webkit-hyphens: auto;
	hyphens: auto;
}

.tono-racconto__testo > * {
	margin: 0;
}

.tono-racconto__testo > * + * {
	margin-top: 18px;
}

.tono-racconto__testo h2,
.tono-racconto__testo h3 {
	margin-top: 40px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	text-align: left;
	color: var(--tono-grigio);
}

.tono-racconto__testo a {
	border-bottom: 1px solid var(--tono-inchiostro);
}

.tono-testata__link {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
}

.tono-briciole a,
.tono-archivio__titolo a {
	color: inherit;
}

@media screen and (max-width: 760px) {
	.tono-racconto {
		padding-top: 56px;
		display: flex;
		flex-direction: column;
		gap: 16px;
	}

	.tono-racconto__etichetta {
		padding-top: 0;
	}

	.tono-racconto__testo {
		font-size: 15px;
		text-align: left;
		-webkit-hyphens: manual;
		hyphens: manual;
	}
}

/* ---------- Pagine semplici ---------- */
.tono-pagina {
	padding-top: 48px;
}

.tono-pagina__titolo {
	margin: 0;
	font-size: 40px;
	font-weight: 300;
	line-height: 1.15;
}

/* ---------- Chi siamo (0.6.0) ---------- */
.tono-chi__testa {
	padding-top: 48px;
}
.tono-chi__testo > * {
	margin: 0;
}
/* Apertura: la frase di presentazione, in grande, sopra il ritratto. */
.tono-chi__testo--apertura > p {
	font-size: 30px;
	line-height: 1.4;
	font-weight: 300;
	letter-spacing: -0.005em;
	text-wrap: pretty;
}
/* Seguito: il resto del testo, sotto il ritratto, allineato alla foto. */
.tono-chi__seguito {
	margin-top: 56px;
}
.tono-chi__testo--seguito {
	grid-column: 4 / -1;
}
.tono-chi__testo--seguito > p {
	font-size: 17px;
	line-height: 1.85;
	text-align: justify;
	-webkit-hyphens: auto;
	hyphens: auto;
}
.tono-chi__testo--seguito > p + p {
	margin-top: 18px;
}
.tono-chi__testo a {
	border-bottom: 1px solid var(--tono-inchiostro);
}
.tono-chi__ritratto {
	margin-top: 56px;
	margin-bottom: 0;
}
.tono-chi__foto {
	grid-column: 4 / -1;
	grid-row: 1;
}
.tono-chi__img {
	width: 100%;
	height: auto;
}
.tono-chi__dida {
	grid-column: 1 / 4;
	grid-row: 1;
	align-self: end;
	line-height: 1.9;
}
/* Didascalia: un nome per riga su computer; su telefono di seguito, senza spezzare i nomi. */
.tono-chi__nome {
	display: block;
}
.tono-chi__virgola {
	display: none;
}
/* Pubblicazioni e premi: copertine intere, mai ritagliate, su un riquadro appena più scuro della pagina. */
.tono-pubblicazione {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.tono-pubblicazione > p {
	margin: 0;
}
.tono-pubblicazione__link {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 0;
}
a.tono-pubblicazione__link:hover {
	text-decoration: none;
}
.tono-pubblicazione__cornice {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	background: #eceae6;
}
.tono-pubblicazione__img {
	position: absolute;
	top: 12%;
	left: 12%;
	width: 76%;
	height: 76%;
	max-width: none;
	object-fit: contain;
}
.tono-pubblicazione__titolo {
	margin: 0;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
}
a.tono-pubblicazione__link:hover .tono-pubblicazione__titolo,
.tono-pubblicazione .tono-label a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}
@media screen and (max-width: 760px) {
	.tono-chi__testa {
		padding-top: 24px;
	}
	.tono-chi__testo--apertura > p {
		font-size: 22px;
	}
	.tono-chi__testo--seguito {
		grid-column: auto;
	}
	.tono-chi__testo--seguito > p {
		font-size: 15px;
	}
	.tono-chi__seguito {
		margin-top: 32px;
	}
	.tono-chi__ritratto {
		margin-top: 32px;
		gap: 12px;
	}
	.tono-chi__foto,
	.tono-chi__dida {
		grid-column: auto;
		grid-row: auto;
	}
	.tono-chi__nome {
		display: inline;
		white-space: nowrap;
	}
	.tono-chi__virgola {
		display: inline;
	}
	.tono-pubblicazioni {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 12px;
	}
	.tono-pubblicazione__titolo {
		font-size: 14px;
	}
}
/* Pagine da sfogliare (0.6.1): stessa finestra delle foto a tutto schermo, anche su telefono. */
a.tono-pubblicazione__link[data-tono-sfoglia] {
	cursor: zoom-in;
}
.tono-zoom--sfoglia .tono-zoom__img {
	cursor: default;
}
@media screen and (max-width: 760px) {
	.tono-zoom--sfoglia .tono-zoom__img {
		max-width: calc(100vw - 16px);
		max-height: calc(100vh - 150px);
	}
	.tono-zoom--sfoglia .tono-zoom__prec,
	.tono-zoom--sfoglia .tono-zoom__succ {
		top: auto;
		bottom: 8px;
		margin-top: 0;
	}
	.tono-zoom--sfoglia .tono-zoom__chiudi {
		top: 4px;
		right: 4px;
	}
}
/* ---------- Footer ---------- */
.tono-footer {
	background: var(--tono-inchiostro);
	color: var(--tono-fondo);
	margin-top: var(--tono-sezione);
}

.tono-footer__dentro {
	padding-top: 88px;
	padding-bottom: 40px;
	display: flex;
	flex-direction: column;
	gap: 64px;
}

.tono-footer .tono-logo {
	width: 170px;
	align-self: flex-start;
}

.tono-footer__colonne {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 48px;
	align-items: start;
}

.tono-footer__colonna {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.tono-footer__colonna--larga {
	grid-column: span 2;
}

.tono-footer__colonna p {
	margin: 0;
	font-size: 14px;
	line-height: 1.7;
	font-weight: 300;
	max-width: 440px;
}

.tono-footer__colonna p.tono-footer__etichetta {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tono-footer-testo);
}

.tono-footer__sede {
	display: block;
}
/* Sedi del footer (0.7.5): se un indirizzo non sta su una riga, tutti e due
   vanno su due righe (città sopra, via sotto). Lo decide assets/js/menu.js. */
.tono-footer__sedi--misura .tono-footer__sede {
	display: inline-block;
	white-space: nowrap;
}
.tono-footer__sedi--a-capo .tono-footer__trattino {
	display: none;
}
.tono-footer__sedi--a-capo .tono-footer__citta,
.tono-footer__sedi--a-capo .tono-footer__via {
	display: block;
}
.tono-footer__sedi--a-capo .tono-footer__sede + .tono-footer__sede {
	margin-top: 10px;
}

/* Tablet (0.7.5): footer su due colonne, la frase sopra e sotto Sedi e Contatti affiancate. */
@media screen and (min-width: 761px) and (max-width: 1023px) {
	.tono-footer__colonne {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.tono-footer__colonna--larga {
		grid-column: span 2;
	}
}

.tono-footer__fondo {
	border-top: 1px solid #3a3a38;
	padding-top: 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 32px;
	justify-content: space-between;
	font-size: 12px;
	color: var(--tono-footer-testo);
}

.tono-footer__fondo a {
	color: var(--tono-footer-testo);
}

@media screen and (max-width: 760px) {
	.tono-footer__dentro {
		padding-top: 56px;
		gap: 40px;
	}

	.tono-footer__colonne {
		grid-template-columns: minmax(0, 1fr);
		gap: 36px;
	}

	.tono-footer__colonna--larga {
		grid-column: auto;
	}
}

/* ---------- Ritocchi per il telefono (0.4.4) ---------- */
@media screen and (max-width: 760px) {
	/* Home: didascalia e credito della foto d'apertura uno sotto l'altro, a sinistra. */
	.tono-apertura__didascalia {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}

	.tono-apertura__crediti {
		margin-left: 0;
	}

	/* Footer: una partita IVA per riga. */
	.tono-footer__piva-voce {
		display: block;
	}

	.tono-footer__piva-punto {
		display: none;
	}

	/* Pagina progetto: frase d'apertura e testo giustificati. */
	.tono-progetto__apertura,
	.tono-racconto__testo {
		text-align: justify;
		-webkit-hyphens: auto;
		hyphens: auto;
	}

	.tono-racconto__testo h2,
	.tono-racconto__testo h3 {
		text-align: left;
	}
}

/* ---------- Nessuno scorrimento laterale (0.4.6) ---------- */
html,
body {
	max-width: 100%;
	overflow-x: hidden;
	overflow-x: clip;
}

/* ---------- Servizi (0.7.0) ---------- */
.tono-serv__ambito {
	padding-top: 96px;
}
/* 0.7.3 — La colonna di testo è alta quanto la foto (sempre 3:2): il titolo parte
   dal bordo superiore, l'elenco finisce sul bordo inferiore. La didascalia sta in
   una riga propria sotto la foto, così non entra nel conto dell'altezza. */
.tono-serv__riga {
	row-gap: 12px;
}
.tono-serv__figura {
	display: contents;
}
.tono-serv__foto {
	grid-column: 1 / 7;
	grid-row: 1;
}
.tono-serv__foto a {
	display: block;
}
.tono-serv__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	background: var(--tono-linea);
}
.tono-serv__figura figcaption {
	grid-column: 1 / 7;
	grid-row: 2;
}
.tono-serv__figura figcaption a {
	display: inline;
	color: var(--tono-inchiostro);
}
/* Le misure in "cqi" seguono la larghezza della colonna di testo (580 px a pagina
   piena): quando la finestra si stringe e la foto rimpicciolisce, il testo
   rimpicciolisce con lei, fino all'85%. Sotto quella soglia (finestra di circa
   1110 px) l'elenco torna a superare la foto. Un browser che non conosce "cqi"
   usa la misura fissa scritta nella riga precedente. */
.tono-serv__testo {
	grid-column: 7 / -1;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	container-type: inline-size;
}
.tono-serv__titolo {
	margin: -6px 0 14px;
	margin-bottom: clamp(12px, 2.414cqi, 14px);
	font-size: 30px;
	font-size: clamp(25.5px, 5.172cqi, 30px);
	line-height: 1.3;
	font-weight: 300;
	letter-spacing: -0.005em;
}
.tono-serv__paragrafo {
	margin: 0 0 14px;
	margin-bottom: clamp(12px, 2.414cqi, 14px);
	font-size: 17px;
	font-size: clamp(14.45px, 2.931cqi, 17px);
	line-height: 1.85;
	text-align: justify;
	-webkit-hyphens: auto;
	hyphens: auto;
}
.tono-serv__elenco {
	list-style: none;
	margin: auto 0 0;
	padding: 0;
	border-top: 1px solid var(--tono-linea);
}
.tono-serv__elenco li {
	padding: 8px 0;
	padding-block: clamp(6.8px, 1.379cqi, 8px);
	border-bottom: 1px solid var(--tono-linea);
	font-size: 14px;
	font-size: clamp(11.9px, 2.414cqi, 14px);
	line-height: 1.5;
	color: var(--tono-grigio);
}
.tono-serv__fasi {
	list-style: none;
	margin: 0;
	padding: 0;
}
.tono-serv__numero {
	display: block;
	margin-bottom: 14px;
}
.tono-serv__faq {
	margin-top: -40px;
}
.tono-serv__domanda {
	padding: 28px 0;
	border-bottom: 1px solid var(--tono-linea);
}
.tono-serv__domanda h3 {
	grid-column: 1 / 6;
	margin: 0;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.5;
}
.tono-serv__domanda p {
	grid-column: 7 / -1;
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
	color: var(--tono-grigio);
}
.tono-serv__chiusura a {
	border-bottom: 1px solid var(--tono-inchiostro);
}
.tono-serv__chiusura .tono-serv__contatti {
	display: inline-block;
	margin-top: 20px;
}
.tono-chi__testo .tono-serv__contatti {
	border-bottom: 0;
}
.tono-serv__chiusura a:hover {
	text-decoration: none;
	opacity: 0.7;
}
@media screen and (max-width: 760px) {
	.tono-serv__ambito {
		padding-top: 56px;
	}
	.tono-serv__foto,
	.tono-serv__figura figcaption,
	.tono-serv__testo,
	.tono-serv__domanda h3,
	.tono-serv__domanda p {
		grid-column: auto;
		grid-row: auto;
	}
	.tono-serv__testo {
		display: block;
		container-type: normal;
	}
	.tono-serv__paragrafo {
		margin-bottom: 20px;
	}
	.tono-serv__elenco {
		margin-top: 0;
	}
	.tono-serv__elenco li {
		padding: 10px 0;
		font-size: 14px;
	}
	.tono-serv__titolo {
		margin-top: 8px;
		font-size: 22px;
	}
	.tono-serv__paragrafo {
		font-size: 15px;
	}
	.tono-serv__faq {
		margin-top: -24px;
	}
	.tono-serv__domanda {
		padding: 20px 0;
		gap: 8px;
	}
}

/* ---------- Contatti (0.7.4) ---------- */
.tono-cont__elenco {
	margin-top: 72px;
}
.tono-cont__riga:first-child {
	border-top: 1px solid var(--tono-linea);
}
.tono-cont__riga {
	padding: 28px 0;
	border-bottom: 1px solid var(--tono-linea);
	align-items: baseline;
}
.tono-cont__etichetta {
	grid-column: 1 / 4;
}
.tono-cont__valore {
	grid-column: 4 / -1;
	margin: 0;
	font-size: 22px;
	line-height: 1.45;
	font-weight: 300;
}
.tono-cont__valore p {
	margin: 0;
}
.tono-cont__valore > a,
.tono-cont__valore p > a {
	border-bottom: 1px solid var(--tono-inchiostro);
}
.tono-cont__valore a:hover {
	text-decoration: none;
	opacity: 0.7;
}
.tono-cont__mappa {
	display: inline-block;
	margin-top: 10px;
	color: var(--tono-grigio);
}
@media screen and (max-width: 760px) {
	.tono-cont__elenco {
		margin-top: 40px;
	}
	.tono-cont__riga {
		padding: 20px 0;
		gap: 6px;
	}
	.tono-cont__etichetta,
	.tono-cont__valore {
		grid-column: auto;
	}
	.tono-cont__valore {
		font-size: 18px;
	}
}

/* ---------- Stampa e "Salva come PDF" ----------
   Serve a salvare le pagine in PDF con l'aspetto che hanno su computer
   (per farle rivedere a chi non ha accesso al sito).
   Le regole "da telefono" di questo file valgono solo sullo schermo
   (@media screen and …): in stampa si usa sempre l'impaginazione da computer,
   qualunque larghezza il browser attribuisca al foglio (0.7.2). Lo script assets/js/stampa.js, quando può,
   allunga il foglio fino a contenere tutta la pagina in un unico foglio. */
@media print {
	@page {
		size: 1440px 2036px;
		margin: 0;
	}

	html,
	body.tono {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}

	.tono-salta,
	.tono-zoom,
	#wpadminbar {
		display: none !important;
	}

	html {
		margin-top: 0 !important;
	}

	figure,
	img,
	video,
	.tono-footer {
		break-inside: avoid;
	}

	h1,
	h2,
	h3 {
		break-after: avoid;
	}
}
