/* ==========================================================================
   MiSenKan · stili del tema
   Token dal file Figma MISENKAN (collezione "Web", modi Desktop / Laptop / Tablet / Mobile).
   Breakpoint WordPress: ≥1280 desktop · 782–1279 laptop · 600–781 tablet · <600 mobile.
   ========================================================================== */

/* 1. Token
   ------------------------------------------------------------------------ */
:root {
	/* Colore */
	--nero-950: #0B0B0B;      /* colore/sfondo/primario */
	--nero-900: #1E1E1E;      /* colore/sfondo/superficie, sfondo/campo */
	--nero-800: #2E2E2C;      /* colore/bordo/linea */
	--nero-700: #6B6863;      /* colore/bordo/controllo */
	--carta: #F2EEE6;         /* colore/testo/primario, stato/focus */
	--grigio-500: #8F8A82;    /* colore/testo/secondario */
	--inchiostro: #1D1D1B;    /* colore/testo/su-carta */
	--rosso-600: #B71918;     /* colore/accento/sigillo */
	--rosso-700: #931413;     /* colore/accento/premuto */
	--rosso-400: #E2504C;     /* colore/stato/errore */
	--bianco: #FFFFFF;

	/* Famiglie */
	--f-serif: "Cormorant Garamond", "Yuji Syuku", Georgia, "Times New Roman", serif;
	--f-maiuscolo: "Cinzel", "Cormorant Garamond", Georgia, serif;
	--f-sans: "Inter", "Yuji Syuku", system-ui, -apple-system, "Segoe UI", sans-serif;
	--f-kanji: "Yuji Syuku", "Hiragino Mincho ProN", "Yu Mincho", serif;

	/* Layout (Desktop 1440) */
	--margine: 120px;
	--contenitore: 1200px;
	--sezione: 120px;
	--gutter: 24px;
	--header-h: 96px;
	--controllo-h: 48px;
	--raggio: 2px;

	/* Corpi (Desktop) */
	--t-display: 88px;
	--t-1: 64px;
	--t-2: 44px;
	--t-3: 28px;
	--t-citazione: 32px;
	--t-lead: 24px;
	--t-corpo: 17px;
	--t-piccolo: 14px;
	--t-didascalia: 12px;
	--t-occhiello: 13px;
	--t-nav: 14px;
	--t-nav-grande: 24px;
	--t-kanji: 120px;
}

/* Laptop 782–1279 */
@media (max-width: 1279px) {
	:root {
		--margine: 48px;
		--contenitore: 928px;
		--sezione: 96px;
		--t-display: 72px;
		--t-1: 56px;
		--t-2: 40px;
		--t-3: 26px;
		--t-citazione: 30px;
		--t-lead: 22px;
		--t-kanji: 110px;
	}
}

/* Tablet 600–781 */
@media (max-width: 781px) {
	:root {
		--margine: 40px;
		--contenitore: 688px;
		--sezione: 80px;
		--header-h: 72px;
		--t-display: 60px;
		--t-1: 48px;
		--t-2: 36px;
		--t-3: 24px;
		--t-citazione: 28px;
		--t-lead: 21px;
		--t-corpo: 16px;
		--t-kanji: 96px;
	}
}

/* Mobile <600 */
@media (max-width: 599px) {
	:root {
		--margine: 20px;
		--contenitore: 560px;
		--sezione: 64px;
		--gutter: 16px;
		--t-display: 46px;
		--t-1: 38px;
		--t-2: 30px;
		--t-3: 22px;
		--t-citazione: 24px;
		--t-lead: 19px;
		--t-kanji: 72px;
	}
}

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 16px);
}

body {
	margin: 0;
	background: var(--nero-950);
	color: var(--carta);
	font-family: var(--f-sans);
	font-size: var(--t-corpo);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

body.menu-aperto-attivo {
	overflow: hidden;
}

img,
svg,
iframe {
	display: block;
	max-width: 100%;
}

img {
	height: auto;
}

h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote, fieldset {
	margin: 0;
}

ul,
ol {
	padding: 0;
	list-style: none;
}

a {
	color: inherit;
	text-decoration-color: var(--rosso-600);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

a:hover {
	color: var(--carta);
}

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

::selection {
	background: var(--rosso-600);
	color: var(--bianco);
}

.screen-reader-text {
	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-al-contenuto {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 200;
	padding: 12px 16px;
	background: var(--carta);
	color: var(--inchiostro);
	font-weight: 600;
	transform: translateY(-200%);
}

.salta-al-contenuto:focus {
	transform: none;
}

.contenitore {
	width: min(100% - 2 * var(--margine), var(--contenitore));
	margin-inline: auto;
}

@media (max-width: 599px) {
	.contenitore {
		width: calc(100% - 2 * var(--margine));
	}
}

.contenitore--stretto {
	max-width: 760px;
}

/* 3. Tipografia (stili di testo "Web/…")
   ------------------------------------------------------------------------ */
.display {
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: var(--t-display);
	line-height: 1.05;
	letter-spacing: -0.01em;
}

.titolo-1 {
	font-family: var(--f-serif);
	font-weight: 400;
	font-size: var(--t-1);
	line-height: 1.1;
}

.titolo-2 {
	font-family: var(--f-serif);
	font-weight: 400;
	font-size: var(--t-2);
	line-height: 1.15;
}

.titolo-3 {
	font-family: var(--f-serif);
	font-weight: 500;
	font-size: var(--t-3);
	line-height: 1.25;
}

.lead {
	font-family: var(--f-serif);
	font-weight: 400;
	font-size: var(--t-lead);
	line-height: 1.45;
}

.corpo {
	font-size: var(--t-corpo);
	line-height: 1.65;
}

.corpo-piccolo {
	font-size: var(--t-piccolo);
	line-height: 1.6;
}

.didascalia {
	font-size: var(--t-didascalia);
	line-height: 1.5;
	color: var(--grigio-500);
}

.occhiello {
	font-family: var(--f-maiuscolo);
	font-weight: 400;
	font-size: var(--t-occhiello);
	line-height: 1.4;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--rosso-600);
}

.testo-secondario {
	color: var(--grigio-500);
}

.kanji {
	font-family: var(--f-kanji);
	font-weight: 400;
	line-height: 1;
}

.kanji--verticale {
	writing-mode: vertical-rl;
	text-orientation: upright;
	letter-spacing: 0.04em;
}

/* 4. Bottoni (componente "Bottone": Primario, Secondario, Testo)
   ------------------------------------------------------------------------ */
.bottone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: var(--controllo-h);
	padding: 0 28px;
	border: 1px solid transparent;
	border-radius: var(--raggio);
	font-family: var(--f-maiuscolo);
	font-weight: 700;
	font-size: 14px;
	line-height: 1;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.bottone span {
	padding-top: 1px; /* Cinzel ha le maiuscole alte: centratura ottica */
}

.bottone--primario {
	background: var(--rosso-600);
	color: var(--bianco);
}

.bottone--primario:hover,
.bottone--primario:active {
	background: var(--rosso-700);
	color: var(--bianco);
}

.bottone--secondario {
	border-color: var(--carta);
	color: var(--carta);
	background: transparent;
}

.bottone--secondario:hover {
	background: var(--carta);
	color: var(--inchiostro);
}

.bottone--testo {
	min-height: 0;
	padding: 0;
	color: var(--carta);
	background: none;
}

.bottone--testo .svg {
	width: 16px;
	height: 16px;
	color: var(--rosso-600);
	transition: transform 0.2s ease;
}

.bottone--testo:hover .svg {
	transform: translateX(4px);
}

.gruppo-bottoni {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

@media (max-width: 599px) {
	.bottone {
		white-space: normal;
		text-align: center;
	}
	.gruppo-bottoni .bottone {
		flex: 1 1 100%;
	}
}

/* 5. Header e menu
   ------------------------------------------------------------------------ */
.sito-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--nero-950);
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s ease;
}

.admin-bar .sito-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .sito-header {
		top: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar .sito-header {
		top: 0;
	}
}

.sito-header.is-scorrimento {
	border-bottom-color: var(--nero-800);
}

.sito-header__riga {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	height: var(--header-h);
}

.sito-header__marchio {
	display: block;
	flex: none;
}

.sito-header__marchio .svg {
	width: 129px;
	height: auto;
}

/* Le voci restano sempre a distanza dal marchio: il margine minimo si somma al gap della riga. */
.sito-header__nav {
	margin-left: auto;
	padding-left: var(--header-respiro, 32px);
}

.menu-principale {
	display: flex;
	align-items: center;
	gap: 32px;
}

.menu-principale a {
	position: relative;
	display: block;
	white-space: nowrap;
	padding: 8px 0;
	font-family: var(--f-maiuscolo);
	font-size: var(--t-nav);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--grigio-500);
	transition: color 0.2s ease;
}

.menu-principale a:hover,
.menu-principale .current-menu-item:not(.menu-item-type-custom) > a {
	color: var(--carta);
}

.menu-principale .current-menu-item:not(.menu-item-type-custom) > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 2px;
	background: var(--rosso-600);
}

.sito-header__azioni {
	display: flex;
	align-items: center;
	gap: 16px;
}

.sito-header__menu,
.menu-aperto__chiudi {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-right: -8px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--carta);
	cursor: pointer;
}

.sito-header__menu .svg,
.menu-aperto__chiudi .svg {
	width: 28px;
	height: 28px;
}

/* Sotto 1440 px si stringono prima gli spazi tra le voci e il padding orizzontale
   del bottone, così le voci restano sempre ad almeno 48 px dal marchio. */
@media (max-width: 1439px) {
	.sito-header__riga {
		gap: 24px;
	}
	.menu-principale {
		gap: 28px;
	}
	.sito-header__azioni {
		gap: 12px;
	}
	.sito-header__azioni > .bottone {
		padding-inline: 20px;
	}
}

@media (max-width: 1279px) {
	.sito-header__riga {
		gap: 20px;
	}
	.menu-principale {
		gap: 24px;
	}
	.menu-principale a {
		font-size: 13px;
		letter-spacing: 0.1em;
	}
	.sito-header__azioni {
		gap: 8px;
	}
	.sito-header__azioni > .bottone {
		padding-inline: 18px;
		font-size: 12px;
		letter-spacing: 0.1em;
	}
}

/* Sotto 1024 px il contenitore si restringe con la finestra: menu ad apertura come su tablet. */
@media (max-width: 1023px) {
	.sito-header__nav {
		display: none;
	}
	.sito-header__menu {
		display: inline-flex;
	}
}

@media (max-width: 781px) {
	.sito-header__nav,
	.sito-header__azioni > .bottone {
		display: none;
	}
	.sito-header__menu,
	.menu-aperto__chiudi {
		display: inline-flex;
	}
	.sito-header__marchio .svg {
		width: 112px;
	}
}

/* Menu aperto (componente "Menu aperto") */
.menu-aperto {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	background: var(--nero-950);
	opacity: 0;
	transition: opacity 0.2s ease;
}

.menu-aperto[hidden] {
	display: none;
}

.menu-aperto.is-aperto {
	opacity: 1;
}

.admin-bar .menu-aperto {
	top: 46px;
}

.menu-aperto__testa {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: var(--header-h);
	flex: none;
}

.menu-aperto__nav {
	margin-top: 24px;
}

.menu-aperto__lista li {
	border-bottom: 1px solid var(--nero-800);
}

.menu-aperto__lista a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 0 18px 16px;
	border-left: 3px solid transparent;
	font-family: var(--f-maiuscolo);
	font-size: var(--t-nav-grande);
	line-height: 1.2;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--grigio-500);
}

.menu-aperto__lista a:hover,
.menu-aperto__lista .current-menu-item:not(.menu-item-type-custom) > a {
	color: var(--carta);
}

.menu-aperto__lista .current-menu-item:not(.menu-item-type-custom) > a {
	border-left-color: var(--rosso-600);
}

.menu-aperto__lista .svg {
	flex: none;
	width: 16px;
	height: 16px;
	color: var(--rosso-600);
}

.menu-aperto__piede {
	display: grid;
	gap: 20px;
	margin-top: auto;
	padding-top: 48px;
	padding-bottom: 32px;
}

.menu-aperto__piede > .bottone {
	width: 100%;
}

.menu-aperto__info {
	font-size: var(--t-piccolo);
	color: var(--grigio-500);
}

.menu-aperto__social {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.menu-aperto__sigillo {
	width: 32px;
	height: 32px;
}

/* 6. Sezioni comuni
   ------------------------------------------------------------------------ */
.sezione {
	padding-block: var(--sezione);
}

.sezione--superficie {
	background: var(--nero-900);
}

.sezione--primario {
	background: var(--nero-950);
}

.sezione--senza-alto {
	padding-top: 0;
}

.titolo-sezione {
	margin-bottom: 32px;
}

.titolo-sezione .occhiello {
	margin-bottom: 16px;
}

.filetto {
	display: block;
	width: 40px;
	height: 2px;
	margin-top: 20px;
	background: var(--rosso-600);
}

.titolo-sezione--centro {
	text-align: center;
	margin-bottom: 56px;
}

.titolo-sezione--centro .filetto {
	margin-inline: auto;
}

.foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Due colonne: testo e foto */
.due-colonne {
	display: grid;
	grid-template-columns: minmax(0, 600px) 520px;
	justify-content: space-between;
	align-items: center;
	gap: var(--gutter);
}

.due-colonne--foto-testo {
	grid-template-columns: 520px minmax(0, 600px);
}

.due-colonne__testo > * + * {
	margin-top: 24px;
}

.due-colonne__testo > .titolo-sezione + * {
	margin-top: 0;
}

.due-colonne__testo > .bottone {
	margin-top: 32px;
}

.due-colonne__foto .foto {
	display: block;
	aspect-ratio: 520 / 620;
	overflow: hidden;
	background: var(--nero-900);
}

@media (max-width: 1279px) {
	.due-colonne {
		grid-template-columns: minmax(0, 480px) 400px;
	}
	.due-colonne--foto-testo {
		grid-template-columns: 400px minmax(0, 432px);
	}
	.due-colonne__foto .foto {
		aspect-ratio: 400 / 500;
	}
}

@media (max-width: 781px) {
	.due-colonne,
	.due-colonne--foto-testo {
		grid-template-columns: minmax(0, 1fr);
		gap: 48px;
	}
	.due-colonne__foto {
		order: -1;
	}
	.due-colonne__foto .foto {
		aspect-ratio: 688 / 500;
	}
}

@media (max-width: 599px) {
	.due-colonne,
	.due-colonne--foto-testo {
		gap: 40px;
	}
	.due-colonne__foto .foto {
		aspect-ratio: 350 / 400;
	}
}

/* 7. Homepage
   ------------------------------------------------------------------------ */
.hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 800px;
	overflow: hidden;
	isolation: isolate;
}

.hero__foto {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.hero__foto img {
	object-position: 60% 50%;
}

.hero__velatura {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(11, 11, 11, 0.92) 0%, rgba(11, 11, 11, 0.72) 38%, rgba(11, 11, 11, 0.25) 70%, rgba(11, 11, 11, 0.35) 100%),
		linear-gradient(0deg, rgba(11, 11, 11, 0.6) 0%, rgba(11, 11, 11, 0) 30%);
}

.hero__contenuto {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 48px;
	padding-block: 96px;
}

.hero__testo {
	max-width: 620px;
}

.hero__testo .occhiello {
	margin-bottom: 24px;
}

.hero__testo .lead {
	max-width: 520px;
	margin-top: 32px;
}

.hero__testo .gruppo-bottoni {
	margin-top: 40px;
}

.hero__kanji {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	margin-right: 40px;
}

.hero__kanji .kanji {
	font-size: var(--t-kanji);
	color: var(--carta);
}

.hero__sigillo {
	width: 36px;
	height: 36px;
}

@media (max-width: 1279px) {
	.hero {
		min-height: 700px;
	}
	.hero__kanji {
		margin-right: 0;
	}
}

@media (max-width: 781px) {
	.hero {
		min-height: 720px;
		align-items: flex-end;
	}
	.hero__velatura {
		background: linear-gradient(0deg, rgba(11, 11, 11, 0.95) 0%, rgba(11, 11, 11, 0.75) 45%, rgba(11, 11, 11, 0.25) 100%);
	}
	.hero__contenuto {
		position: static;
		padding-block: 330px 64px;
	}
	.hero__kanji {
		position: absolute;
		top: 40px;
		right: var(--margine);
		gap: 16px;
	}
	.hero__kanji .kanji {
		font-size: calc(var(--t-kanji) * 0.75);
	}
	.hero__sigillo {
		width: 28px;
		height: 28px;
	}
}

@media (max-width: 599px) {
	.hero {
		min-height: 740px;
	}
	.hero__contenuto {
		padding-block: 260px 48px;
	}
	.hero__kanji {
		top: 28px;
	}
	.hero__testo .lead {
		margin-top: 24px;
	}
	.hero__testo .gruppo-bottoni {
		margin-top: 32px;
	}
}

/* Barra informazioni */
.informazioni {
	background: var(--nero-900);
	padding-block: 48px;
}

.informazioni__griglia {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--gutter);
}

.informazioni .occhiello {
	margin-bottom: 8px;
}

.informazioni .titolo-3 {
	font-weight: 400;
	max-width: 340px;
}

@media (max-width: 599px) {
	.informazioni__griglia {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}
}

/* Carte disciplina */
.carte {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--gutter);
}

.carta {
	display: flex;
	flex-direction: column;
	padding: 32px;
	background: var(--nero-900);
	border: 1px solid var(--nero-800);
	border-radius: var(--raggio);
}

.carta__kanji {
	margin-bottom: 20px;
	font-size: 48px;
	color: var(--rosso-600);
}

.carta .occhiello {
	margin-bottom: 12px;
}

.carta .titolo-3 {
	margin-bottom: 16px;
	font-weight: 400;
}

.carta .bottone {
	align-self: flex-start;
	margin-top: auto;
	padding-top: 28px;
}

@media (max-width: 1279px) {
	.carta {
		padding: 28px 24px;
	}
}

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

/* Citazione */
.citazione {
	position: relative;
	overflow: hidden;
	padding-block: var(--sezione);
	background: var(--nero-900);
	isolation: isolate;
}

.citazione__kanji {
	position: absolute;
	top: 50%;
	right: -4%;
	z-index: -1;
	font-size: 360px;
	color: var(--carta);
	opacity: 0.045;
	white-space: nowrap;
	transform: translateY(-50%);
}

.citazione__testo .occhiello {
	margin-bottom: 32px;
}

.citazione blockquote {
	max-width: 860px;
}

.citazione .corpo {
	max-width: 620px;
	margin-top: 32px;
}

@media (max-width: 781px) {
	.citazione__kanji {
		font-size: 240px;
		top: auto;
		bottom: -40px;
		transform: none;
	}
}

/* Numeri brevi (teaser Maestro) */
.numeri-brevi {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--gutter);
}

.numeri-brevi > div {
	padding-top: 20px;
	border-top: 1px solid var(--nero-700);
}

.numeri-brevi dt {
	color: var(--rosso-600);
	font-weight: 300;
}

.numeri-brevi dd {
	margin-top: 8px;
	font-size: 11px;
}

/* Invito */
.invito {
	padding-block: var(--sezione);
	background: var(--nero-900);
	text-align: center;
}

.invito__contenuto {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.invito__sigillo {
	width: 48px;
	height: 48px;
	margin-bottom: 32px;
}

.invito .corpo {
	max-width: 520px;
	margin-top: 20px;
}

.invito .bottone {
	margin-top: 40px;
}

/* 8. Il Maestro
   ------------------------------------------------------------------------ */
.pagina-hero .display {
	margin-top: 20px;
}

.pagina-hero .due-colonne__testo > .lead {
	margin-top: 32px;
}

.pagina-hero--corta {
	padding-bottom: calc(var(--sezione) * 0.6);
}

.pagina-hero__lead {
	max-width: 640px;
	margin-top: 32px;
}

.pagina-hero .gruppo-bottoni {
	margin-top: 40px;
}

.numeri {
	padding-block: 56px;
	background: var(--nero-900);
}

.numeri__griglia {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--gutter);
}

.numeri dt {
	color: var(--rosso-600);
	font-weight: 300;
}

.numeri dd {
	display: grid;
	gap: 6px;
	margin-top: 12px;
}

.numeri dd .occhiello {
	color: var(--carta);
	font-size: 12px;
}

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

/* Percorso */
.percorso {
	display: grid;
	grid-template-columns: minmax(0, 660px) 440px;
	justify-content: space-between;
	align-items: start;
	gap: 48px;
}

.timeline {
	border-bottom: 1px solid var(--nero-800);
}

.timeline__tappa {
	display: grid;
	grid-template-columns: 160px minmax(0, 1fr);
	gap: var(--gutter);
	padding-block: 18px;
	border-top: 1px solid var(--nero-800);
}

.timeline__anno {
	padding-top: 4px;
	color: var(--carta);
}

.timeline__tappa--oggi .timeline__anno {
	color: var(--rosso-600);
}

.percorso__foto .foto {
	display: block;
	aspect-ratio: 440 / 560;
	overflow: hidden;
}

.percorso__foto figcaption {
	margin-top: 12px;
}

@media (max-width: 1279px) {
	.percorso {
		grid-template-columns: minmax(0, 1fr) 320px;
	}
	.percorso__foto .foto {
		aspect-ratio: 320 / 420;
	}
	.timeline__tappa {
		grid-template-columns: 120px minmax(0, 1fr);
	}
}

@media (max-width: 781px) {
	.percorso {
		grid-template-columns: minmax(0, 1fr);
	}
	.percorso__foto .foto {
		aspect-ratio: 688 / 619;
	}
}

@media (max-width: 599px) {
	.timeline__tappa {
		grid-template-columns: minmax(0, 1fr);
		gap: 4px;
	}
	.percorso__foto .foto {
		aspect-ratio: 350 / 420;
	}
}

/* Linea di trasmissione */
.linea__intro {
	max-width: 640px;
	margin: -24px auto 0;
	text-align: center;
}

.linea {
	margin-top: 56px;
}

.linea .occhiello {
	margin-bottom: 16px;
}

.linea__catena {
	display: flex;
	align-items: stretch;
	gap: 56px;
}

.linea__nodo {
	position: relative;
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	min-width: 0;
	padding: 20px 24px;
	background: var(--nero-950);
	border: 1px solid var(--nero-800);
	border-radius: var(--raggio);
}

.linea__catena--3 .linea__nodo {
	flex: 0 1 calc((100% - 112px) / 3);
}

.linea__nodo + .linea__nodo::before,
.linea__nodo + .linea__nodo::after {
	content: "";
	position: absolute;
	top: 50%;
	background: var(--grigio-500);
}

.linea__nodo + .linea__nodo::before {
	left: -44px;
	width: 32px;
	height: 1px;
}

.linea__nodo + .linea__nodo::after {
	left: -19px;
	width: 7px;
	height: 7px;
	margin-top: -3px;
	background: none;
	border-top: 1px solid var(--grigio-500);
	border-right: 1px solid var(--grigio-500);
	transform: rotate(45deg);
}

.linea__nodo--attuale {
	background: var(--rosso-600);
	border-color: var(--rosso-600);
}

.linea__nodo--attuale .titolo-3,
.linea__nodo--attuale .didascalia {
	color: var(--bianco);
}

.linea__nodo .titolo-3 {
	font-weight: 400;
}

@media (max-width: 1279px) {
	.linea__catena {
		gap: 40px;
	}
	.linea__catena--3 .linea__nodo {
		flex-basis: calc((100% - 80px) / 3);
	}
	.linea__nodo {
		padding: 16px 18px;
	}
	.linea__nodo + .linea__nodo::before {
		left: -32px;
		width: 24px;
	}
	.linea__nodo + .linea__nodo::after {
		left: -15px;
	}
}

@media (max-width: 781px) {
	.linea__catena {
		flex-direction: column;
		gap: 32px;
	}
	.linea__catena--3 .linea__nodo,
	.linea__nodo {
		flex-basis: auto;
	}
	.linea__nodo + .linea__nodo::before {
		top: -26px;
		left: 32px;
		width: 1px;
		height: 20px;
	}
	.linea__nodo + .linea__nodo::after {
		top: -13px;
		left: 29px;
		margin-top: 0;
		transform: rotate(135deg);
	}
}

/* Fujimura */
.fujimura {
	display: grid;
	grid-template-columns: auto minmax(0, 760px);
	justify-content: start;
	align-items: center;
	gap: 120px;
	padding-left: 40px;
}

.fujimura__kanji {
	font-size: calc(var(--t-kanji) * 1.35);
	color: var(--rosso-600);
}

.fujimura__testo .lead {
	color: var(--carta);
}

.fujimura__testo .bottone {
	margin-top: 32px;
}

@media (max-width: 1279px) {
	.fujimura {
		gap: 64px;
		padding-left: 0;
	}
}

@media (max-width: 599px) {
	.fujimura {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}
	.fujimura__kanji {
		writing-mode: horizontal-tb;
		font-size: var(--t-kanji);
	}
}

/* 9. Contatti e modulo
   ------------------------------------------------------------------------ */
.contatti {
	display: grid;
	grid-template-columns: minmax(0, 690px) 418px;
	justify-content: space-between;
	align-items: start;
	gap: 64px;
}

.contatti__modulo > .titolo-3 {
	margin-bottom: 32px;
}

@media (max-width: 1279px) {
	.contatti {
		grid-template-columns: minmax(0, 1fr) 320px;
		gap: 48px;
	}
}

@media (max-width: 781px) {
	.contatti {
		grid-template-columns: minmax(0, 1fr);
		gap: 64px;
	}
}

.modulo {
	display: grid;
	gap: 32px;
}

.modulo__griglia {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px var(--gutter);
}

@media (max-width: 599px) {
	.modulo__griglia {
		grid-template-columns: minmax(0, 1fr);
	}
}

.modulo__esca {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.campo {
	display: grid;
	gap: 8px;
	align-content: start;
	min-width: 0;
}

.campo__etichetta {
	padding: 0;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--carta);
}

.campo__facoltativo {
	font-weight: 400;
	color: var(--grigio-500);
}

.campo__controllo {
	width: 100%;
	min-height: var(--controllo-h);
	padding: 0 16px;
	border: 1px solid var(--nero-700);
	border-radius: var(--raggio);
	background: var(--nero-900);
	color: var(--carta);
	font-family: var(--f-sans);
	font-size: 16px;
	line-height: 1.4;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	appearance: none;
	-webkit-appearance: none;
}

.campo__controllo::placeholder {
	color: var(--grigio-500);
	opacity: 1;
}

.campo__controllo:hover {
	border-color: var(--grigio-500);
}

.campo__controllo:focus {
	outline: none;
	border-color: var(--carta);
	box-shadow: inset 0 0 0 0.5px var(--carta);
}

.campo__controllo--area {
	min-height: 136px;
	padding: 14px 16px;
	resize: vertical;
}

.campo__select {
	position: relative;
}

.campo__select select {
	padding-right: 48px;
	cursor: pointer;
}

.campo__select select:invalid,
.campo__select select option[value=""] {
	color: var(--grigio-500);
}

.campo__select option {
	color: var(--carta);
	background: var(--nero-900);
}

.campo__select .svg {
	position: absolute;
	top: 50%;
	right: 14px;
	width: 20px;
	height: 20px;
	color: var(--carta);
	pointer-events: none;
	transform: translateY(-50%);
}

.campo__aiuto {
	font-size: 12px;
	line-height: 1.5;
	color: var(--grigio-500);
}

.campo__errore {
	font-size: 12px;
	line-height: 1.5;
	color: var(--rosso-400);
}

.campo--errore .campo__controllo {
	border-color: var(--rosso-400);
	box-shadow: inset 0 0 0 0.5px var(--rosso-400);
}

.campo--errore .campo__aiuto {
	display: none;
}

.campo--gruppo {
	padding: 0;
	border: 0;
	min-width: 0;
}

.campo--gruppo legend {
	margin-bottom: 14px;
}

.scelte {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 32px;
}

/* Checkbox (componente "Checkbox") */
.scelta {
	position: relative;
	display: inline-flex;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
}

.scelta__input,
.interruttore__input {
	position: absolute;
	top: 0;
	left: 0;
	width: 20px;
	height: 20px;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.scelta__casella {
	display: grid;
	place-items: center;
	flex: none;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	background: var(--nero-900);
	border: 1.5px solid var(--nero-700);
	border-radius: var(--raggio);
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.scelta__casella .svg {
	width: 20px;
	height: 20px;
	color: var(--bianco);
	opacity: 0;
}

.scelta:hover .scelta__casella {
	border-color: var(--grigio-500);
}

.scelta__input:checked + .scelta__casella {
	background: var(--rosso-600);
	border-color: var(--rosso-600);
}

.scelta__input:checked + .scelta__casella .svg {
	opacity: 1;
}

.scelta__input:focus-visible + .scelta__casella,
.interruttore__input:focus-visible + .interruttore__binario {
	outline: 2px solid var(--carta);
	outline-offset: 3px;
}

.campo--errore .scelta__casella {
	border-color: var(--rosso-400);
}

.scelta a {
	color: var(--carta);
	text-decoration: underline;
	text-decoration-color: var(--rosso-600);
}

/* Switch (componente "Switch") */
.modulo__consensi {
	display: grid;
	gap: 20px;
	padding-top: 28px;
	border-top: 1px solid var(--nero-700);
}

.interruttore {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	cursor: pointer;
}

.interruttore__input {
	width: 44px;
	height: 24px;
}

.interruttore__binario {
	display: flex;
	align-items: center;
	flex: none;
	width: 44px;
	height: 24px;
	padding: 0 3px;
	background: var(--nero-800);
	border: 1px solid var(--nero-700);
	border-radius: 999px;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.interruttore__pomello {
	width: 18px;
	height: 18px;
	margin-left: -1px;
	background: var(--carta);
	border-radius: 50%;
	transition: transform 0.2s ease;
}

.interruttore__input:checked + .interruttore__binario {
	background: var(--rosso-600);
	border-color: var(--rosso-600);
}

.interruttore__input:checked + .interruttore__binario .interruttore__pomello {
	transform: translateX(20px);
}

.modulo__invio {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
}

@media (max-width: 599px) {
	.modulo__invio .bottone {
		width: 100%;
	}
}

/* Avvisi del modulo */
.avviso {
	display: flex;
	gap: 12px;
	margin-bottom: 32px;
	padding: 18px 20px;
	background: var(--nero-900);
	border-left: 3px solid var(--rosso-400);
	font-size: var(--t-piccolo);
	line-height: 1.6;
}

.avviso:focus {
	outline: none;
}

.avviso--ok {
	border-left-color: var(--rosso-600);
}

.avviso .svg {
	flex: none;
	width: 20px;
	height: 20px;
	color: var(--rosso-600);
}

.avviso ul {
	margin-top: 8px;
	padding-left: 18px;
	list-style: disc;
}

.avviso a {
	color: var(--carta);
}

/* Pannello informazioni */
.contatti__info {
	background: var(--nero-900);
	border-radius: var(--raggio);
	overflow: hidden;
}

.info-blocco {
	display: grid;
	gap: 6px;
	padding: 28px 24px;
	border-bottom: 1px solid var(--nero-800);
}

.info-blocco .occhiello {
	margin-bottom: 4px;
}

.info-blocco .titolo-3 {
	font-weight: 400;
	overflow-wrap: anywhere;
}

.info-blocco .titolo-3 a {
	text-decoration: none;
}

.info-blocco a:hover {
	text-decoration: underline;
	text-decoration-color: var(--rosso-600);
}

/* Componente mappa */
.mappa {
	position: relative;
	height: var(--mappa-altezza, 280px);
	background: var(--nero-900);
}

.mappa iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

.mappa--bn iframe {
	filter: grayscale(1) contrast(1.05);
}

.mappa--vuota {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 24px;
	border: 1px dashed var(--nero-700);
	text-align: center;
}

.mappa__luogo {
	font-family: var(--f-serif);
	font-size: 20px;
	line-height: 1.3;
}

.mappa__avviso {
	max-width: 320px;
	font-size: 12px;
	line-height: 1.5;
	color: var(--grigio-500);
}

.mappa__avviso a {
	color: var(--carta);
}

/* FAQ */
.faq {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 48px;
}

.faq > div {
	padding-block: 28px;
	border-top: 1px solid var(--nero-800);
}

.faq dt {
	margin-bottom: 10px;
	font-weight: 400;
}

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

/* 10. Footer
   ------------------------------------------------------------------------ */
.sito-footer {
	padding-top: 72px;
	background: var(--nero-950);
	border-top: 1px solid var(--nero-800);
}

.sito-footer__colonne {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 40px var(--gutter);
}

.sito-footer__marchio {
	display: grid;
	gap: 20px;
	justify-items: start;
}

.sito-footer__marchio .svg-marchio-orizzontale-negativo {
	width: 129px;
	height: auto;
}

.sito-footer__colonna .occhiello {
	margin-bottom: 14px;
}

.sito-footer__colonna a {
	text-decoration: none;
}

.sito-footer__colonna a:hover {
	text-decoration: underline;
	text-decoration-color: var(--rosso-600);
}

.social {
	display: flex;
	gap: 12px;
}

.social__link {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--nero-700);
	border-radius: var(--raggio);
	color: var(--carta);
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.social__link:hover {
	border-color: var(--carta);
}

.social__link .svg {
	width: 18px;
	height: 18px;
}

.sito-footer__fondo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px 32px;
	margin-top: 56px;
	padding-block: 28px 40px;
	border-top: 1px solid var(--nero-800);
}

.sito-footer__copy {
	font-size: 12px;
	color: var(--grigio-500);
}

.sito-footer__destra {
	display: flex;
	align-items: center;
	gap: 24px;
}

.sito-footer__legale {
	display: flex;
	gap: 24px;
}

.sito-footer__legale a {
	font-size: 12px;
	color: var(--grigio-500);
	text-decoration: none;
}

.sito-footer__legale a:hover {
	color: var(--carta);
}

.sito-footer__separatore {
	width: 1px;
	height: 20px;
	background: var(--nero-700);
}

.sito-footer__firma {
	width: 112px;
	height: auto;
}

.sito-footer__sigillo {
	width: 22px;
	height: 22px;
}

@media (max-width: 1279px) {
	.sito-footer__colonne {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.sito-footer__marchio {
		grid-column: 1 / -1;
	}
}

@media (max-width: 781px) {
	.sito-footer {
		padding-top: 56px;
	}
	.sito-footer__colonne {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}
	.sito-footer__fondo {
		flex-direction: column-reverse;
		align-items: flex-start;
		margin-top: 40px;
	}
	.sito-footer__destra {
		flex-wrap: wrap;
		gap: 16px 20px;
	}
}

/* 11. Pagine generiche
   ------------------------------------------------------------------------ */
.pagina-generica__testa {
	margin-bottom: 48px;
}

.contenuto-editor > * + * {
	margin-top: 1.2em;
}

.contenuto-editor h2,
.contenuto-editor h3 {
	font-family: var(--f-serif);
	font-weight: 400;
	line-height: 1.2;
	margin-top: 1.8em;
}

.contenuto-editor h2 {
	font-size: var(--t-3);
}

.contenuto-editor ul,
.contenuto-editor ol {
	padding-left: 1.2em;
	list-style: revert;
}

.contenuto-editor a {
	text-decoration: underline;
	text-decoration-color: var(--rosso-600);
}

.articolo + .articolo {
	margin-top: 48px;
	padding-top: 48px;
	border-top: 1px solid var(--nero-800);
}

/* 12. Movimento ridotto
   ------------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
	}
}

/* 13. Pagina d'attesa (conto alla rovescia)
   ------------------------------------------------------------------------ */
.avviso-admin {
	padding: 10px var(--margine);
	background: var(--rosso-700);
	color: var(--bianco);
	font-size: 13px;
	text-align: center;
}

.avviso-admin a {
	color: var(--bianco);
	text-decoration: underline;
}

.attesa {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100svh;
}

.admin-bar .attesa {
	min-height: calc(100svh - 32px);
}

.attesa__contenuto {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding-block: 96px 64px;
	text-align: center;
}

.attesa__sigillo {
	width: 96px;
	height: 96px;
	margin-bottom: 48px;
}

.attesa__titolo {
	margin-top: 16px;
}

.conto {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	width: min(100%, 880px);
	margin-top: 56px;
	border-block: 1px solid var(--nero-800);
}

.conto__unita {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding-block: 32px 28px;
}

.conto__unita + .conto__unita {
	border-left: 1px solid var(--nero-800);
}

.conto__numero {
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: calc(var(--t-display) * 1.36);
	line-height: 1;
	font-variant-numeric: lining-nums tabular-nums;
	color: var(--carta);
}

.conto__etichetta {
	color: var(--grigio-500);
}

.conto.is-finito .conto__numero {
	color: var(--rosso-600);
}

.attesa__data {
	margin-top: 28px;
	color: var(--carta);
}

.attesa__testo {
	max-width: 520px;
	margin-top: 24px;
}

.attesa__contatti {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	margin-top: 40px;
}

.attesa__contatti a {
	text-decoration: none;
}

.attesa__piede {
	border-top: 1px solid var(--nero-800);
}

.attesa__piede-riga {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	padding-block: 24px;
}

.attesa__marchio {
	width: 100px;
	height: auto;
}

@media (max-width: 781px) {
	.attesa__sigillo {
		width: 80px;
		height: 80px;
		margin-bottom: 40px;
	}
	.conto__numero {
		font-size: calc(var(--t-display) * 1.2);
	}
}

@media (max-width: 599px) {
	.attesa__contenuto {
		padding-block: 64px 48px;
	}
	.attesa__sigillo {
		width: 64px;
		height: 64px;
		margin-bottom: 32px;
	}
	.conto {
		margin-top: 40px;
	}
	.conto__unita {
		gap: 8px;
		padding-block: 24px 20px;
	}
	.conto__numero {
		font-size: 44px;
	}
	.conto__etichetta {
		font-size: 10px;
		letter-spacing: 0.14em;
	}
	.attesa__piede-riga {
		flex-direction: column;
		text-align: center;
	}
}

/* 14. Pagine a blocchi (pattern Home, Il Maestro, Contatti)
   Le sezioni sono blocchi Gruppo con le stesse classi dei componenti:
   qui solo ciò che cambia rispetto al markup dei template PHP.
   ------------------------------------------------------------------------ */
/* Bottone: stili Primario, Secondario, Testo con freccia */
.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.wp-block-buttons > .wp-block-button {
	display: flex;
}

.wp-block-button > .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: var(--controllo-h);
	padding: 1px 28px 0;
	border: 1px solid transparent;
	border-radius: var(--raggio);
	background: var(--rosso-600);
	color: var(--bianco);
	font-family: var(--f-maiuscolo);
	font-weight: 700;
	font-size: 14px;
	line-height: 1;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.wp-block-button > .wp-block-button__link:hover,
.wp-block-button > .wp-block-button__link:active {
	background: var(--rosso-700);
	color: var(--bianco);
}

.wp-block-button.is-style-secondario > .wp-block-button__link {
	border-color: var(--carta);
	color: var(--carta);
	background: transparent;
}

.wp-block-button.is-style-secondario > .wp-block-button__link:hover {
	background: var(--carta);
	color: var(--inchiostro);
}

.wp-block-button.is-style-testo > .wp-block-button__link {
	min-height: 0;
	padding: 0;
	color: var(--carta);
	background: none;
}

.wp-block-button.is-style-testo > .wp-block-button__link::after {
	content: "";
	width: 16px;
	height: 16px;
	background: var(--rosso-600);
	-webkit-mask: url("../svg/icona-freccia.svg") center / contain no-repeat;
	mask: url("../svg/icona-freccia.svg") center / contain no-repeat;
	transition: transform 0.2s ease;
}

.wp-block-button.is-style-testo > .wp-block-button__link:hover::after {
	transform: translateX(4px);
}

.due-colonne__testo > .wp-block-buttons {
	margin-top: 32px;
}

.carta > .wp-block-buttons {
	margin-top: auto;
	padding-top: 28px;
}

.invito .wp-block-buttons {
	justify-content: center;
	margin-top: 40px;
}

.fujimura__testo .wp-block-buttons {
	margin-top: 32px;
}

@media (max-width: 599px) {
	.wp-block-button > .wp-block-button__link {
		white-space: normal;
		text-align: center;
	}
	.gruppo-bottoni > .wp-block-button,
	.gruppo-bottoni > .wp-block-button > .wp-block-button__link {
		flex: 1 1 100%;
		width: 100%;
	}
}

/* Titolo di sezione: il filetto rosso è disegnato dal CSS */
.con-filetto::after {
	content: "";
	display: block;
	width: 40px;
	height: 2px;
	margin-top: 20px;
	background: var(--rosso-600);
}

.titolo-sezione--centro.con-filetto::after {
	margin-inline: auto;
}

/* Numeri (Home e Il Maestro) */
.numeri-brevi .numeri__valore,
.numeri .numeri__valore {
	color: var(--rosso-600);
	font-weight: 300;
}

.numeri-brevi .numeri__etichetta {
	margin-top: 8px;
	font-size: 11px;
}

.numeri__dettagli {
	display: grid;
	gap: 6px;
	margin-top: 12px;
}

.numeri__dettagli .occhiello {
	color: var(--carta);
	font-size: 12px;
}

/* Percorso: in ogni voce il grassetto è l'anno */
.timeline__tappa {
	font-size: var(--t-corpo);
	line-height: 1.65;
	color: var(--grigio-500);
}

.timeline__tappa > strong {
	padding-top: 4px;
	font-family: var(--f-maiuscolo);
	font-weight: 400;
	font-size: var(--t-occhiello);
	line-height: 1.4;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--carta);
}

.timeline__tappa--oggi > strong {
	color: var(--rosso-600);
}

.percorso__foto .didascalia {
	margin-top: 12px;
}

/* Linea di trasmissione: in ogni voce il grassetto è il nome */
.linea__nodo {
	font-size: var(--t-didascalia);
	line-height: 1.5;
	color: var(--grigio-500);
}

.linea__nodo > strong {
	font-family: var(--f-serif);
	font-weight: 400;
	font-size: var(--t-3);
	line-height: 1.25;
	color: var(--carta);
}

.linea__nodo--attuale,
.linea__nodo--attuale > strong {
	color: var(--bianco);
}

/* Domande frequenti */
.faq .titolo-3 {
	margin-bottom: 10px;
	font-weight: 400;
}

/* 15. Calendario (pagina Calendario, shortcode [misenkan_calendario])
   ------------------------------------------------------------------------ */
.calendario {
	display: grid;
	gap: 56px;
	margin-top: 40px;
}

.calendario__sede {
	padding-top: 32px;
	border-top: 1px solid var(--nero-800);
}

.calendario__testa {
	display: grid;
	gap: 8px;
	margin-bottom: 24px;
}

.calendario__testa .titolo-3 {
	font-weight: 400;
}

.calendario__date {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.calendario__data {
	display: grid;
}

.calendario__voce {
	display: grid;
	gap: 2px;
	padding: 14px 16px;
	color: var(--carta);
	background: var(--nero-900);
	border: 1px solid var(--nero-800);
	border-radius: var(--raggio);
	text-decoration: none;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.calendario__scelte {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.calendario__scelta {
	display: grid;
	cursor: pointer;
}

.calendario__radio {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}

.calendario__stato {
	color: var(--grigio-500);
	transition: color 0.2s ease;
}

.calendario__presa {
	display: none;
}

.calendario__scelta:hover .calendario__voce {
	border-color: var(--nero-700);
}

.calendario__radio:focus-visible + .calendario__voce {
	outline: 2px solid var(--carta);
	outline-offset: 2px;
}

.calendario__radio:checked + .calendario__voce {
	border-color: var(--rosso-600);
	box-shadow: inset 0 0 0 1px var(--rosso-600);
}

.calendario__radio:checked + .calendario__voce .calendario__stato {
	color: var(--carta);
}

.calendario__radio:checked + .calendario__voce .calendario__libera {
	display: none;
}

.calendario__radio:checked + .calendario__voce .calendario__presa {
	display: inline;
}

/* Bottone in attesa prima di passare a Contatti */
.calendario__azione .bottone.is-attesa {
	pointer-events: none;
	background: var(--carta);
	color: var(--inchiostro);
}

.calendario__azione .bottone.is-attesa::before {
	content: "";
	width: 14px;
	height: 14px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: misenkan-giro 0.7s linear infinite;
}

@keyframes misenkan-giro {
	to {
		transform: rotate(360deg);
	}
}

.calendario__data.is-escluso .calendario__giorno {
	color: var(--grigio-500);
	text-decoration: line-through;
}

.calendario__azione {
	margin-top: 24px;
}

.campo__controllo:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.contenuto-editor .calendario__date {
	padding-left: 0;
	list-style: none;
}

.contenuto-editor .calendario__testa .titolo-3 {
	margin-top: 0;
}

.contenuto-editor .calendario__azione a {
	text-decoration: none;
}

.informazioni__sede .corpo-piccolo {
	margin-top: 6px;
}


/* Più mappe in Contatti, una per sede */
.mappe {
	display: grid;
}

.mappe__sede {
	display: grid;
	gap: 16px;
	margin: 0;
}

.mappe__sede + .mappe__sede {
	border-top: 1px solid var(--nero-800);
}

.mappe__sede figcaption {
	padding: 24px 24px 0;
}

/* 17. La storia del Mugai Ryu (pagine/storia-del-mugai-ryu.php)
   ------------------------------------------------------------------------ */
.storia-hero {
	align-items: start;
}

.storia__kanji-colonna {
	display: flex;
	justify-content: flex-end;
}

.storia__kanji {
	font-size: calc(var(--t-kanji) * 1.5);
	color: var(--rosso-600);
}

.indice__gruppo {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid var(--nero-800);
}

.indice {
	display: grid;
	gap: 4px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: indice;
}

.indice li {
	counter-increment: indice;
}

.indice a {
	display: inline-flex;
	gap: 16px;
	padding: 6px 0;
	color: var(--carta);
	text-decoration: none;
	transition: color 0.2s ease;
}

.indice a::before {
	content: counter(indice, decimal-leading-zero);
	min-width: 1.6em;
	font-family: var(--f-maiuscolo);
	font-size: var(--t-occhiello);
	line-height: 1.9;
	color: var(--rosso-600);
}

.indice a:hover {
	color: var(--grigio-500);
}

.capitolo {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
	gap: 96px;
	align-items: start;
}

.capitolo__testa {
	position: sticky;
	top: calc(var(--header-h) + 32px);
}

.capitolo__numero {
	margin-bottom: 16px;
	font-family: var(--f-serif);
	font-weight: 300;
	font-size: var(--t-1);
	line-height: 1;
	color: var(--rosso-600);
}

.capitolo__testo {
	max-width: 720px;
}

.capitolo__testo > * + * {
	margin-top: 24px;
}

.capitolo__testo > .lead {
	color: var(--carta);
}

.capitolo__testo > .wp-block-buttons {
	margin-top: 40px;
}

/* Poesia di Tsuji Gettan */
.poesia {
	margin-block: 40px;
	padding: 32px 0 32px 32px;
	border-left: 2px solid var(--rosso-600);
}

.poesia__versi {
	display: grid;
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.poesia__versi li {
	display: grid;
	gap: 6px;
	color: var(--grigio-500);
}

.poesia__versi em {
	font-family: var(--f-serif);
	font-size: var(--t-lead);
	line-height: 1.3;
	color: var(--carta);
}

/* Kanji del verso, sopra la lettura e la traduzione (come in Figma). */
.poesia__kanji {
	font-family: var(--f-kanji);
	font-size: 30px;
	line-height: 1.3;
	letter-spacing: 0.12em;
	color: var(--rosso-600);
}

@media (max-width: 599px) {
	.poesia__kanji {
		font-size: 26px;
	}
}

/* I sedici Soke */
.soke {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 32px;
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: soke;
}

.soke li {
	display: grid;
	grid-template-columns: 2.2em 1fr;
	padding: 14px 0;
	border-bottom: 1px solid var(--nero-800);
	font-size: var(--t-piccolo);
	color: var(--grigio-500);
	counter-increment: soke;
}

.soke li::before {
	content: counter(soke);
	grid-row: span 2;
	font-family: var(--f-maiuscolo);
	color: var(--rosso-600);
}

.soke strong {
	font-family: var(--f-serif);
	font-weight: 500;
	font-size: var(--t-corpo);
	color: var(--carta);
}

/* Le due scuole del M° Fujimura */
.scuole {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-block: 40px;
}

.scuola {
	display: grid;
	align-content: start;
	gap: 8px;
	padding: 28px;
	background: var(--nero-950);
	border: 1px solid var(--nero-800);
	border-radius: var(--raggio);
}

.scuola .titolo-3 {
	font-weight: 400;
}

.scuola__kanji {
	margin-bottom: 8px;
	font-family: var(--f-kanji);
	font-size: 20px;
	color: var(--rosso-600);
}

@media (max-width: 1279px) {
	.capitolo {
		gap: 56px;
	}
}

@media (max-width: 781px) {
	.storia-hero {
		grid-template-columns: 1fr;
	}
	.storia__kanji-colonna {
		display: none;
	}
	.capitolo {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.capitolo__testa {
		position: static;
	}
	.soke,
	.scuole {
		grid-template-columns: 1fr;
	}
	.poesia {
		padding-left: 20px;
	}
}

/* 16. Versione chiara (html[data-tema="chiaro"], vedi inc/tema.php)
   I nomi dei colori restano quelli della versione scura: qui cambiano i valori.
   ------------------------------------------------------------------------ */
:root[data-tema="chiaro"] {
	--nero-950: #F4F0E8;      /* sfondo/primario: carta */
	--nero-900: #FBF9F4;      /* superficie, campi */
	--nero-800: #DCD6CA;      /* bordo/linea */
	--nero-700: #8F8A82;      /* bordo/controllo */
	--carta: #1D1D1B;         /* testo/primario: inchiostro */
	--grigio-500: #5F5B55;    /* testo/secondario */
	--inchiostro: #F4F0E8;    /* testo su superficie scura */
	--rosso-400: #B71918;     /* errore, leggibile su chiaro */
	color-scheme: light;
}

/* Le foto in apertura, la pagina d'attesa e il footer restano scuri. */
:root[data-tema="chiaro"] .hero,
:root[data-tema="chiaro"] .pagina-attesa,
:root[data-tema="chiaro"] .sito-footer {
	--nero-950: #0B0B0B;
	--nero-900: #1E1E1E;
	--nero-800: #2E2E2C;
	--nero-700: #6B6863;
	--carta: #F2EEE6;
	--grigio-500: #8F8A82;
	--inchiostro: #1D1D1B;
	--rosso-400: #E2504C;
	color-scheme: dark;
	color: var(--carta);
}

/* Il marchio (SVG in linea, chiaro) diventa color inchiostro. */
:root[data-tema="chiaro"] .sito-header [fill="#F2EEE6"],
:root[data-tema="chiaro"] .menu-aperto [fill="#F2EEE6"] {
	fill: var(--carta);
}

/* Passaggio morbido solo quando si usa l'interruttore. */
.is-cambio-tema,
.is-cambio-tema *,
.is-cambio-tema *::before,
.is-cambio-tema *::after {
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, fill 0.3s ease !important;
}

.interruttore-tema {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--grigio-500);
	cursor: pointer;
	transition: color 0.2s ease;
}

.interruttore-tema[hidden] {
	display: none;
}

.interruttore-tema:hover {
	color: var(--carta);
}

.interruttore-tema .svg {
	width: 22px;
	height: 22px;
}

/* Nella versione scura si mostra il sole (passa al chiaro), nella chiara la luna. */
.interruttore-tema__luna,
:root[data-tema="chiaro"] .interruttore-tema__sole {
	display: none;
}

:root[data-tema="chiaro"] .interruttore-tema__luna {
	display: block;
}
