/*
Theme Name: Armeria Laureti Maurizio
Description: Tema su misura per l'Armeria Laureti Maurizio di Contigliano. Verde bosco e ottone, Palatino, schede delle armi a griglia con zoom sulle foto.
Version: 1.1.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: armeria
*/

/* TeX Gyre Pagella (GUST Font License): copia libera del Palatino, usata dove il Palatino non è installato (Android, Linux). */
@font-face { font-family: "Armeria Pagella"; src: url("assets/fonts/pagella-regular.woff") format("woff"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Armeria Pagella"; src: url("assets/fonts/pagella-italic.woff") format("woff"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Armeria Pagella"; src: url("assets/fonts/pagella-bold.woff") format("woff"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Armeria Pagella"; src: url("assets/fonts/pagella-bolditalic.woff") format("woff"); font-weight: 700; font-style: italic; font-display: swap; }

:root {
	--fondo: #f1efe8;
	--carta: #fbfaf6;
	--inchiostro: #1a211c;
	--grigio: #596159;
	--linea: #d8d4c7;
	--bosco: #1c2a21;
	--bosco-2: #253629;
	--ottone: #a87a3c;
	--ottone-scuro: #85602a;
	--ottone-chiaro: #dfc08a;
	--su-scuro: #efeadd;
	--su-scuro-2: #bcbaae;
	--serif: "Palatino Linotype", Palatino, "Armeria Pagella", "Book Antiqua", Georgia, serif;
	--largo: 1320px;
	--gutter: clamp(16px, 4vw, 40px);
}

*, *::before, *::after { box-sizing: border-box; }
html { font-size: 125%; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--fondo);
	color: var(--inchiostro);
	font: 400 1.05rem/1.65 var(--serif);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--ottone); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 400; line-height: 1.12; text-wrap: balance; margin: 0; }
p { margin: 0; }
.wrap { max-width: var(--largo); margin-inline: auto; padding-inline: var(--gutter); }
.salta { position: absolute; left: -9999px; top: 0; background: var(--ottone); color: #16110a; padding: .6em 1em; z-index: 100; }
.salta:focus { left: 1rem; }

.occhiello {
	display: inline-block;
	font: 700 .7rem/1 var(--serif);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--ottone-scuro);
}
.scuro .occhiello, .hero .occhiello { color: var(--ottone-chiaro); }

.btn {
	display: inline-flex; align-items: center; gap: .6em;
	padding: .8em 1.4em;
	font: 700 .88rem/1 var(--serif);
	letter-spacing: .02em;
	text-decoration: none;
	border: 1px solid transparent;
	transition: background .2s, color .2s, border-color .2s;
}
.btn-ottone { background: var(--ottone); color: #16110a; }
.btn-ottone:hover { background: #c49554; }
.btn-chiaro { border-color: rgba(239, 234, 221, .45); color: var(--su-scuro); }
.btn-chiaro:hover { border-color: var(--su-scuro); background: rgba(239, 234, 221, .08); }
.btn-linea { border-color: var(--inchiostro); color: var(--inchiostro); }
.btn-linea:hover { background: var(--inchiostro); color: var(--fondo); }
.bottoni { display: flex; flex-wrap: wrap; gap: .7rem; }

/* ---------- Barra in alto ---------- */
.topbar { background: var(--bosco); color: var(--su-scuro-2); font-size: .8rem; }
.topbar .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1.5rem; padding-block: .5rem; }
.topbar b { color: var(--su-scuro); font-weight: 700; }
.topbar a { text-decoration: none; }
.stato-apertura { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0 .5em; }
.pallino { width: 7px; height: 7px; border-radius: 50%; background: var(--su-scuro-2); }
.aperto .pallino { background: #7fae6e; }
.chiuso .pallino { background: #c0685b; }

/* ---------- Testata e menu ---------- */
.testata {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--fondo) 94%, transparent);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--linea);
}
.admin-bar .testata { top: 32px; }
@media (max-width: 782px) { .admin-bar .testata { top: 0; } }
.testata .wrap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .8rem; }
.marchio { display: flex; align-items: center; gap: .8rem; text-decoration: none; line-height: 1; }
.marchio-logo { width: 2.6rem; height: 2.6rem; flex: none; }
.marchio-testi { display: flex; flex-direction: column; }
.marchio-nome { font: 700 1.05rem/1.1 var(--serif); letter-spacing: .1em; text-transform: uppercase; }
.marchio-sotto { font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--grigio); margin-top: .35rem; }

.menu-principale .menu, .menu-principale .sub-menu { list-style: none; margin: 0; padding: 0; }
.menu-principale .menu { display: flex; gap: 1.3rem; }
.menu-principale .menu > li > a { white-space: nowrap; }
.menu-principale li { position: relative; }
.menu-principale a { display: block; text-decoration: none; font-size: .85rem; padding-block: .35rem; }
.menu-principale .menu > li > a { border-bottom: 1px solid transparent; }
.menu-principale .menu > li > a:hover,
.menu-principale .current-menu-item > a,
.menu-principale .current-menu-ancestor > a { border-bottom-color: var(--ottone); }
.menu-principale .menu > li:nth-child(2) > a { color: var(--ottone-scuro); }
.menu-principale .sub-menu {
	position: absolute; left: -1rem; top: 100%;
	min-width: 15rem;
	background: var(--carta);
	border: 1px solid var(--linea);
	box-shadow: 0 12px 30px rgba(26, 33, 28, .12);
	padding: .5rem 0;
	opacity: 0; visibility: hidden; transform: translateY(4px);
	transition: opacity .15s, transform .15s, visibility .15s;
}
.menu-principale .sub-menu a { padding: .45rem 1rem; }
.menu-principale .sub-menu a:hover { background: var(--fondo); color: var(--ottone-scuro); }
.menu-principale .sub-menu .sub-menu { left: 100%; top: -.5rem; }
.menu-principale li:hover > .sub-menu,
.menu-principale li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.menu-principale .menu-item-has-children > a::after { content: " ▾"; font-size: .7em; color: var(--grigio); }
.menu-principale .sub-menu .menu-item-has-children > a::after { content: " ▸"; }
.sub-toggle { display: none; }

.menu-toggle {
	display: none; align-items: center; gap: .6em;
	background: none; border: 1px solid var(--linea); color: var(--inchiostro);
	font: 700 .85rem/1 var(--serif); padding: .65em .9em; cursor: pointer;
}
.menu-icona, .menu-icona::before, .menu-icona::after { display: block; width: 16px; height: 1.5px; background: currentColor; position: relative; }
.menu-icona::before, .menu-icona::after { content: ""; position: absolute; left: 0; }
.menu-icona::before { top: -5px; }
.menu-icona::after { top: 5px; }

@media (max-width: 1320px) {
	.menu-toggle { display: inline-flex; }
	.menu-principale {
		display: none;
		position: absolute; left: 0; right: 0; top: 100%;
		background: var(--fondo);
		border-bottom: 1px solid var(--linea);
		max-height: calc(100vh - 120px); overflow-y: auto;
		padding: .4rem var(--gutter) 1.2rem;
	}
	.menu-principale.aperto { display: block; }
	.menu-principale .menu { flex-direction: column; gap: 0; }
	.menu-principale .menu > li { border-bottom: 1px solid var(--linea); }
	.menu-principale a { padding-block: .8rem; font-size: 1rem; }
	.menu-principale .menu > li > a { border-bottom: 0; }
	.menu-principale .menu-item-has-children > a::after,
	.menu-principale .sub-menu .menu-item-has-children > a::after { content: none; }
	.menu-principale .menu-item-has-children { display: flex; flex-wrap: wrap; }
	.menu-principale .menu-item-has-children > a { flex: 1; }
	.sub-toggle {
		display: block; width: 48px; background: none; border: 0; border-left: 1px solid var(--linea);
		color: var(--inchiostro); font: 400 1.2rem/1 var(--serif); cursor: pointer;
	}
	.sub-toggle[aria-expanded="true"] { color: var(--ottone-scuro); }
	.menu-principale .sub-menu,
	.menu-principale .sub-menu .sub-menu {
		position: static; flex-basis: 100%; min-width: 0;
		opacity: 1; visibility: visible; transform: none;
		border: 0; box-shadow: none; background: none;
		padding: 0 0 .5rem 1rem; display: none;
	}
	.menu-principale .sub-menu.aperto { display: block; }
	.menu-principale .sub-menu a { padding: .55rem 0; }
	.menu-principale .sub-menu a:hover { background: none; }
}

/* ---------- Hero ---------- */
.hero { position: relative; background: var(--bosco); color: var(--su-scuro); overflow: hidden; }
.hero-foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 30% 60%; filter: saturate(1.25) contrast(1.06) brightness(1.04); }
.hero::after {
	content: ""; position: absolute; inset: 0;
	/* Velo scuro solo dietro al testo (a sinistra): il resto della foto resta pieno e luminoso */
	background:
		linear-gradient(90deg, rgba(10, 16, 11, .86) 0%, rgba(10, 16, 11, .72) 30%, rgba(10, 16, 11, .3) 50%, transparent 64%),
		linear-gradient(to top, rgba(10, 16, 11, .4) 0%, transparent 28%);
}
.hero h1, .hero-testo, .hero .occhiello, .hero-note { text-shadow: 0 1px 2px rgba(0, 0, 0, .55), 0 2px 18px rgba(0, 0, 0, .45); }
.hero .btn-chiaro { background: rgba(12, 17, 13, .35); border-color: rgba(255, 255, 255, .75); }
@media (max-width: 760px) {
	.hero-foto { object-position: 64% 60%; }
	.hero::after { background: linear-gradient(90deg, rgba(10, 16, 11, .7) 0%, rgba(10, 16, 11, .45) 60%, rgba(10, 16, 11, .25) 100%), linear-gradient(to top, rgba(10, 16, 11, .5) 0%, transparent 40%); }
}
.hero .wrap { position: relative; z-index: 1; padding-block: clamp(4.5rem, 11vw, 8.5rem); }
.hero h1 { font-size: clamp(2.3rem, 5.6vw, 4.4rem); max-width: 14ch; margin: 1.1rem 0 1.3rem; }
.hero h1 em { color: #e2c48f; }
.hero-testo { max-width: 44ch; font-size: 1.1rem; color: #f3efe4; }
.hero .bottoni { margin-top: 2rem; }
.hero-note { margin-top: 2.4rem; display: flex; flex-wrap: wrap; gap: .5rem 1.6rem; font-size: .82rem; color: #efeadd; }
.hero-note span::before { content: "◆"; color: var(--ottone); margin-right: .6em; font-size: .6rem; vertical-align: 2px; }

/* ---------- Servizi ---------- */
.servizi { border-bottom: 1px solid var(--linea); }
.servizi-griglia { display: grid; grid-template-columns: repeat(3, 1fr); padding-inline: 0; }
.servizio { display: flex; flex-direction: column; gap: .6rem; padding: 2rem 1.6rem 2.1rem; text-decoration: none; border-right: 1px solid var(--linea); transition: background .2s; }
.servizio:first-child { border-left: 1px solid var(--linea); }
.servizio:hover { background: var(--carta); }
.servizio-tag { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ottone-scuro); font-weight: 700; }
.servizio h2 { font-size: 1.45rem; }
.servizio p { color: var(--grigio); font-size: .93rem; }
.servizio-vai { margin-top: auto; padding-top: .6rem; font-size: .85rem; font-weight: 700; }
.servizio-vai::after { content: " →"; color: var(--ottone); }
@media (max-width: 860px) {
	.servizi-griglia { grid-template-columns: 1fr; padding-inline: var(--gutter); }
	.servizio { border-left: 1px solid var(--linea); border-bottom: 1px solid var(--linea); }
}
@media (max-width: 560px) {
	.servizi-griglia { grid-template-columns: 1fr; padding-inline: var(--gutter); }
	.servizio { border-left: 1px solid var(--linea); border-bottom: 1px solid var(--linea); }
}

/* ---------- Blocchi della homepage ---------- */
.blocco { padding-block: clamp(3.5rem, 8vw, 6rem); }
.scuro { background: var(--bosco); color: var(--su-scuro); }
.blocco-testa { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 2.2rem; }
.blocco-testa h2 { font-size: clamp(2rem, 4vw, 3rem); margin-top: .7rem; }
.blocco-testa p { max-width: 46ch; color: var(--grigio); }
.scuro .blocco-testa p, .scuro .vuoto { color: var(--su-scuro-2); }
.blocco-piede { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; font-size: .9rem; color: var(--su-scuro-2); }
.vuoto { font-size: 1.05rem; padding: 2rem; border: 1px dashed rgba(239, 234, 221, .3); }

/* Card delle armi (homepage) */
.griglia-armi { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.4rem; }
.griglia-offerte { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; }
@media (max-width: 1000px) { .griglia-armi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .griglia-offerte { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .griglia-armi, .griglia-offerte { grid-template-columns: 1fr; } }
.arma { display: flex; flex-direction: column; background: var(--carta); border: 1px solid var(--linea); }
.arma-foto { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--linea); }
.arma-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.arma:hover .arma-foto img { transform: scale(1.04); }
.arma-foto.vuota { display: grid; place-items: center; color: var(--grigio); font-size: .85rem; }
.arma-testo { padding: 1.1rem 1.2rem 1.3rem; display: flex; flex-direction: column; gap: .2rem; flex: 1; }
.arma-cat { font-size: .68rem; text-transform: uppercase; letter-spacing: .14em; color: var(--grigio); font-weight: 700; }
.arma h3 { font-size: 1.3rem; margin-block: .15rem .3rem; }
.arma-testo p { font-size: .9rem; color: var(--grigio); }
.arma-prezzo { margin-top: auto !important; padding-top: .8rem; display: flex; align-items: baseline; gap: .7rem; }
.arma-prezzo s { font-size: 1rem; }
.arma-prezzo b { font-size: 1.45rem; color: var(--ottone-scuro); }
.arma-offerta { background: var(--bosco-2); border-color: rgba(239, 234, 221, .1); color: var(--su-scuro); }
.arma-offerta .arma-cat { color: var(--ottone-chiaro); }
.arma-offerta .arma-testo p { color: var(--su-scuro-2); }
.arma-offerta .arma-prezzo b { color: #e2c48f; }

/* Storia */
.storia { background: var(--carta); border-block: 1px solid var(--linea); }
.storia-griglia { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.anno { font: 400 clamp(4.5rem, 12vw, 8.5rem)/.9 var(--serif); color: var(--ottone); letter-spacing: -.02em; }
.anno-nota { font-size: .9rem; color: var(--grigio); margin-top: 1rem; max-width: 30ch; }
.storia h2 { font-size: clamp(2rem, 4vw, 2.9rem); margin: .7rem 0 1.4rem; }
.storia blockquote { margin: 0; font: italic 400 1.2rem/1.6 var(--serif); max-width: 52ch; border-left: 2px solid var(--ottone); padding-left: 1.4rem; }
.firma { margin: 1.1rem 0 2rem; padding-left: 1.6rem; font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--grigio); }
@media (max-width: 800px) { .storia-griglia { grid-template-columns: 1fr; } }

/* Riparazioni */
.riparazioni-griglia { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.prima-dopo { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.prima-dopo a { position: relative; display: block; aspect-ratio: 1; overflow: hidden; }
.prima-dopo img { width: 100%; height: 100%; object-fit: cover; }
.etichetta { position: absolute; left: .6rem; top: .6rem; background: var(--bosco); color: var(--su-scuro); font-size: .66rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; padding: .5em .7em; }
.riparazioni h2 { font-size: clamp(2rem, 4vw, 2.9rem); margin: .7rem 0 1.2rem; }
.riparazioni p { color: var(--grigio); max-width: 48ch; }
.marchi { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.4rem 0; }
.marchi span { border: 1px solid var(--linea); padding: .55em .9em; font-size: .82rem; }
.marchi b { color: var(--ottone-scuro); }
.avviso { margin-top: 1.4rem; padding: 1rem 1.1rem; background: var(--carta); border: 1px solid var(--linea); font-size: .9rem; color: var(--inchiostro) !important; }
@media (max-width: 800px) { .riparazioni-griglia { grid-template-columns: 1fr; } }

/* Contatti */
.contatti-griglia { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1fr); gap: 1.4rem; }
@media (max-width: 1100px) { .contatti-griglia { grid-template-columns: 1fr 1fr; } .contatti-griglia > :first-child { grid-row: span 2; } }
.riquadro { background: var(--carta); border: 1px solid var(--linea); padding: 1.6rem 1.6rem 1.8rem; display: flex; flex-direction: column; gap: .9rem; }
.riquadro h3 { font-size: 1.4rem; }
.riquadro .bottoni { margin-top: auto; padding-top: .4rem; }
.etichetta-piccola { display: block; font-size: .8rem; color: var(--grigio); }
.numero { font-size: 1.6rem; text-decoration: none; }
.orari { width: 100%; border-collapse: collapse; font-size: .9rem; font-variant-numeric: tabular-nums; }
.orari td { padding: .45rem 0; border-bottom: 1px solid var(--linea); }
.orari td:last-child { text-align: right; white-space: nowrap; padding-left: 1rem; }
.orari tr.oggi td { color: var(--ottone-scuro); font-weight: 700; }
.mappa {
	display: grid; place-items: center; aspect-ratio: 16 / 10; text-decoration: none;
	background:
		linear-gradient(var(--linea) 1px, transparent 1px) 0 0 / 28px 28px,
		linear-gradient(90deg, var(--linea) 1px, transparent 1px) 0 0 / 28px 28px,
		var(--fondo);
	border: 1px solid var(--linea);
}
.mappa-pin { position: relative; background: var(--bosco); color: var(--su-scuro); font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: .6em .8em; }
.mappa-pin::after { content: ""; position: absolute; left: 50%; bottom: -7px; margin-left: -7px; border: 7px solid transparent; border-bottom: 0; border-top-color: var(--bosco); }
@media (max-width: 900px) { .contatti-griglia { grid-template-columns: 1fr; } }

/* ---------- Pagine interne ---------- */
.pagina-testata { background: var(--bosco); color: var(--su-scuro); padding-block: clamp(2.2rem, 5vw, 3.6rem); margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.pagina-testata h1 { font-size: clamp(2.1rem, 5vw, 3.4rem); }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .5em; font-size: .82rem; color: var(--su-scuro-2); margin-bottom: .9rem; }
.breadcrumb a { text-decoration: none; }
.breadcrumb a:hover { color: var(--ottone-chiaro); }
.pagina-nota { margin-top: .9rem; font-size: .88rem; color: var(--su-scuro-2); }
.pagina-nota a { color: var(--ottone-chiaro); }
.pagina { padding-bottom: clamp(3rem, 7vw, 5rem); }

.entry-content { max-width: 46rem; }
.entry-content > * + * { margin-top: 1.2rem; }
.entry-content > .alignwide, .entry-content > .alignfull, .is-catalogo .entry-content { max-width: none; }
.entry-content h2 { font-size: 1.9rem; margin-top: 2.4rem; }
.entry-content h3 { font-size: 1.45rem; margin-top: 2rem; }
.entry-content a { color: var(--ottone-scuro); }
.entry-content p:empty { display: none; }
.entry-content ul { padding-left: 1.2rem; }
.entry-content iframe { max-width: 100%; border: 1px solid var(--linea) !important; }
/* I paragrafi dei vecchi contenuti hanno dimensioni scritte a mano (23px, 35px, 42px…): le riportiamo alla scala del tema. */
.entry-content p[style*="font-size"], .entry-content .has-larger-font-size { font-size: 1.15rem !important; }
.entry-content .has-accent-color { color: var(--ottone-scuro) !important; }

/* Catalogo: ogni blocco "Media e testo" diventa una scheda della griglia */
.is-catalogo .entry-content { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); gap: 1.4rem; }
.is-catalogo .entry-content > * { grid-column: 1 / -1; margin: 0; }
.is-catalogo .entry-content > .wp-block-media-text {
	grid-column: auto;
	display: flex !important; flex-direction: column;
	background: var(--carta); border: 1px solid var(--linea);
	margin: 0; max-width: none;
}
.is-catalogo .wp-block-media-text__media { margin: 0; align-self: stretch; aspect-ratio: 4 / 3; overflow: hidden; background: var(--linea); cursor: zoom-in; position: relative; }
.is-catalogo .wp-block-media-text__media img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .5s; }
.is-catalogo .wp-block-media-text:hover .wp-block-media-text__media img { transform: scale(1.04); }
.is-catalogo .wp-block-media-text__content { align-self: stretch; padding: 1.1rem 1.2rem 1.3rem !important; display: flex; flex-direction: column; gap: .15rem; flex: 1; }
.is-catalogo .wp-block-media-text__content p { text-align: left !important; font-size: .92rem !important; color: var(--grigio); margin: 0; line-height: 1.5; }
.is-catalogo .wp-block-media-text__content p strong { font-weight: inherit; }
.is-catalogo .wp-block-media-text__content p:first-child { font-size: 1.3rem !important; color: var(--inchiostro); line-height: 1.2; }
.is-catalogo .wp-block-media-text__content p.is-modello,
.is-catalogo .wp-block-media-text__content p:first-child + p.is-modello { font-size: 1.05rem !important; color: var(--inchiostro); margin-bottom: .3rem; }
.is-catalogo .wp-block-media-text__content s,
.is-catalogo .wp-block-media-text__content del { color: var(--grigio); margin-right: .5em; }
.is-catalogo .wp-block-media-text__content p.is-prezzo { margin-top: auto; padding-top: .7rem; font-size: 1.4rem !important; color: var(--ottone-scuro); }

/* Lente sulle foto ingrandibili */
.zoom, .is-catalogo .wp-block-media-text__media, .entry-content .wp-block-gallery figure, .entry-content .wp-block-image { position: relative; cursor: zoom-in; }
.zoom::after, .is-catalogo .wp-block-media-text__media::after, .entry-content .wp-block-gallery figure figure::after, .entry-content .wp-block-gallery li figure::after, .entry-content .wp-block-image::after {
	content: ""; position: absolute; right: .6rem; bottom: .6rem; width: 34px; height: 34px; border-radius: 50%;
	background: rgba(12, 17, 13, .72) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23efeadd' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center / 18px no-repeat;
	opacity: .85; pointer-events: none; transition: opacity .2s;
}
.prima-dopo .zoom::after { z-index: 1; }

/* Gallerie (esempi di restauro) */
.entry-content .wp-block-gallery { margin-top: 1.4rem; }
.entry-content .blocks-gallery-grid { gap: .6rem; }
.entry-content .wp-block-gallery img { cursor: zoom-in; }

/* Categorie (sottopagine) */
.categorie { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 1.4rem; margin-top: 2rem; }
.categoria { display: flex; flex-direction: column; background: var(--carta); border: 1px solid var(--linea); text-decoration: none; transition: border-color .2s; }
.categoria:hover { border-color: var(--ottone); }
.categoria-foto { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bosco-2); }
.categoria-foto img { width: 100%; height: 100%; object-fit: cover; }
.categoria-testo { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 1rem 1.2rem 1.1rem; }
.categoria-nome { font-size: 1.3rem; }
.categoria-nome::after { content: " →"; color: var(--ottone); }
.categoria-conta { font-size: .8rem; color: var(--grigio); white-space: nowrap; }

/* ---------- Piè di pagina ---------- */
.piede { background: var(--bosco); color: var(--su-scuro-2); font-size: .88rem; }
.piede a { color: var(--su-scuro); }
.piede-griglia { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2rem; padding-block: 3rem 2rem; }
.piede .marchio-nome { color: var(--su-scuro); display: block; }
.piede .marchio-sotto { color: var(--su-scuro-2); display: block; }
.piede-testo { margin-top: 1rem; max-width: 30ch; }
.piede h2 { font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--ottone-chiaro); margin-bottom: .7rem; }
.piede-fondo { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding-block: 1.2rem 2rem; border-top: 1px solid rgba(239, 234, 221, .12); font-size: .8rem; }
.menu-piede { display: flex; gap: 1.2rem; list-style: none; margin: 0; padding: 0; }
@media (max-width: 900px) { .piede-griglia { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .piede-griglia { grid-template-columns: 1fr; } }

/* ---------- Visualizzatore foto con zoom ---------- */
.lb { position: fixed; inset: 0; z-index: 1000; background: rgba(8, 11, 9, .96); color: var(--su-scuro); display: flex; flex-direction: column; }
.lb[hidden] { display: none; }
.lb-scena { position: relative; flex: 1; overflow: hidden; touch-action: none; cursor: grab; }
.lb-scena.trascina { cursor: grabbing; }
.lb-scena img { position: absolute; left: 50%; top: 50%; max-width: none; height: auto; transform-origin: 0 0; user-select: none; -webkit-user-drag: none; }
.lb-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; padding: .7rem var(--gutter); }
.lb-didascalia { font-size: 1.05rem; line-height: 1.3; }
.lb-didascalia small { display: block; font-size: .75rem; color: var(--su-scuro-2); }
.lb-comandi { display: flex; flex-wrap: wrap; gap: .4rem; }
.lb button { background: rgba(239, 234, 221, .08); border: 1px solid rgba(239, 234, 221, .25); color: var(--su-scuro); font: 700 .9rem/1 var(--serif); min-width: 44px; height: 44px; padding: 0 .8rem; cursor: pointer; }
.lb button:hover { background: rgba(239, 234, 221, .18); }
.lb-pct { font-size: .8rem; line-height: 44px; color: var(--su-scuro-2); min-width: 3.4rem; text-align: center; font-variant-numeric: tabular-nums; }
.lb-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; font-size: 1.6rem !important; }
.lb-prec { left: 12px; }
.lb-succ { right: 12px; }
.lb-aiuto { position: absolute; left: 50%; bottom: 12px; transform: translateX(-50%); font-size: .75rem; color: var(--su-scuro-2); background: rgba(8, 11, 9, .7); padding: .5em .8em; pointer-events: none; white-space: nowrap; }
@media (max-width: 600px) { .lb-aiuto { display: none; } }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }

/* Paragrafo "avviso" (stile selezionabile nell'editor) */
.entry-content .is-style-avviso { padding: 1rem 1.2rem; background: var(--carta); border: 1px solid var(--linea); border-left: 3px solid var(--ottone); }

/* ---------- Pagina "Chi siamo": capitoli a tutto schermo ---------- */
.storia-pagina { background: #0c110d; }
.capitolo {
	position: relative; overflow: hidden;
	min-height: min(92vh, 60rem);
	display: flex; align-items: flex-end;
	color: var(--su-scuro); background: #0c110d;
}
.capitolo-foto { position: absolute; inset: 0; overflow: hidden; }
.capitolo-foto img {
	width: 100%; height: 100%; object-fit: cover; object-position: center 35%;
	filter: grayscale(1) sepia(.38) contrast(1.08) brightness(.78);
	transform: scale(1.08);
	transition: transform 9s cubic-bezier(.2, .6, .2, 1), filter 2s;
}
.capitolo.in-vista .capitolo-foto img { transform: scale(1); }
/* Sfumature: dal basso verso l'alto e dal lato del testo */
.capitolo::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		linear-gradient(to top, #0c110d 0%, rgba(12, 17, 13, .88) 22%, rgba(12, 17, 13, .35) 55%, rgba(12, 17, 13, .15) 100%),
		radial-gradient(ellipse at 50% 40%, transparent 40%, rgba(12, 17, 13, .55) 100%);
}
.lato-sinistra::before, .capitolo-apertura::before {
	background:
		linear-gradient(to top, #0c110d 0%, rgba(12, 17, 13, .55) 30%, transparent 70%),
		linear-gradient(90deg, rgba(12, 17, 13, .92) 0%, rgba(12, 17, 13, .7) 38%, rgba(12, 17, 13, .05) 75%);
}
.lato-destra::before {
	background:
		linear-gradient(to top, #0c110d 0%, rgba(12, 17, 13, .55) 30%, transparent 70%),
		linear-gradient(270deg, rgba(12, 17, 13, .92) 0%, rgba(12, 17, 13, .7) 38%, rgba(12, 17, 13, .05) 75%);
}
/* Bordo sfumato verso il capitolo successivo */
.capitolo::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 18%; z-index: 1; background: linear-gradient(#0c110d, transparent); pointer-events: none; }
.capitolo-apertura::after { content: none; }

.capitolo-contenuto { position: relative; z-index: 2; width: 100%; padding-block: clamp(4rem, 10vw, 7rem); display: flex; align-items: flex-end; gap: 3rem; }
.lato-destra .capitolo-contenuto { flex-direction: row-reverse; }
.capitolo-testo { max-width: 34rem; }
.capitolo-testo p { font-size: 1.15rem; line-height: 1.75; color: #ddd8ca; text-shadow: 0 1px 12px rgba(0, 0, 0, .5); }
.capitolo-testo p + p { margin-top: 1rem; }
.capitolo-testo h1 { font-size: clamp(2.6rem, 6vw, 5rem); margin: 1rem 0 1.4rem; }
.capitolo-testo h1 em { color: #e2c48f; }
.capitolo-testo h2 { font-size: clamp(2.1rem, 4.4vw, 3.6rem); margin: .6rem 0 1.4rem; }
.capitolo-anno {
	display: block;
	font-size: clamp(1rem, 2vw, 1.2rem); letter-spacing: .24em; text-transform: uppercase;
	color: var(--ottone-chiaro);
}
.capitolo:first-of-type + .capitolo .capitolo-anno { font-size: clamp(3.5rem, 9vw, 7rem); letter-spacing: -.01em; text-transform: none; line-height: .9; color: var(--ottone); }
.capitolo-firma { margin-top: 1.8rem !important; font-style: italic; font-size: 1.6rem !important; color: #e2c48f !important; }
.capitolo-apertura { min-height: min(96vh, 64rem); }
.capitolo-apertura .breadcrumb { margin-bottom: 1.4rem; }
.scorri { display: inline-flex; gap: .6em; margin-top: 2.2rem; font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; color: var(--ottone-chiaro); }
.scorri span { display: inline-block; animation: scorri 2.4s ease-in-out infinite; }
@keyframes scorri { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(5px); } }

/* Documento d'epoca appoggiato sulla foto */
.documento {
	flex: none; width: clamp(12rem, 22vw, 18rem); margin-left: auto;
	padding: .6rem .6rem 1.8rem; background: #efe9da;
	box-shadow: 0 25px 50px rgba(0, 0, 0, .55);
	transform: rotate(-4deg); transition: transform .4s;
}
.lato-destra .documento { margin-left: 0; margin-right: auto; transform: rotate(3deg); }
.documento:hover { transform: rotate(0) scale(1.03); }
.documento img { display: block; width: 100%; filter: sepia(.25); }
.documento::after { right: 1rem; bottom: 2.2rem; }

/* Comparsa del testo durante lo scorrimento (solo con JavaScript attivo) */
.js .capitolo-testo, .js .documento { opacity: 0; translate: 0 30px; transition: opacity 1.1s ease, translate 1.1s ease, transform .4s; }
.js .in-vista .capitolo-testo, .js .in-vista .documento { opacity: 1; translate: 0 0; }
.js .in-vista .documento { transition-delay: .35s; }

@media (max-width: 760px) {
	.capitolo { min-height: 0; }
	.capitolo-foto { position: relative; inset: auto; height: 62vh; }
	.capitolo { flex-direction: column; align-items: stretch; }
	.capitolo::before, .lato-sinistra::before, .lato-destra::before, .capitolo-apertura::before { content: none; }
	.capitolo-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, #0c110d 0%, rgba(12, 17, 13, .85) 25%, rgba(12, 17, 13, .2) 65%, rgba(12, 17, 13, .35) 100%); }
	.capitolo-contenuto, .lato-destra .capitolo-contenuto { flex-direction: column; align-items: flex-start; margin-top: -30vh; padding-block: 0 3.5rem; gap: 2rem; }
	.documento, .lato-destra .documento { margin: 0 auto; }
}

/* Album di famiglia */
.album { background: #0c110d; color: var(--su-scuro); padding-block: clamp(3rem, 7vw, 5.5rem) clamp(4rem, 8vw, 6rem); }
.album .blocco-testa h2 { font-size: clamp(2rem, 4vw, 3rem); margin-top: .7rem; }
.album .blocco-testa p { color: var(--su-scuro-2); }
.album .occhiello { color: var(--ottone-chiaro); }
.album .entry-content { max-width: none; }
.album .wp-block-gallery { display: block !important; columns: 4 12rem; column-gap: 1rem; }
.album .wp-block-gallery > figure.wp-block-image {
	width: 100% !important; margin: 0 0 1rem !important; break-inside: avoid;
	display: block !important; background: #efe9da; padding: .45rem .45rem 1.3rem;
	box-shadow: 0 10px 25px rgba(0, 0, 0, .4);
	transition: transform .3s;
}
.album .wp-block-gallery > figure.wp-block-image:nth-child(3n+1) { transform: rotate(-.8deg); }
.album .wp-block-gallery > figure.wp-block-image:nth-child(3n+2) { transform: rotate(.7deg); }
.album .wp-block-gallery > figure.wp-block-image:hover { transform: rotate(0) scale(1.03); z-index: 1; }
.album .wp-block-gallery.is-cropped figure.wp-block-image img { display: block; flex: none !important; width: 100% !important; height: auto !important; object-fit: contain !important; filter: sepia(.3); transition: filter .4s; }
.album .wp-block-gallery figure.wp-block-image:hover img { filter: none; }
.album .wp-block-gallery figure.wp-block-image::after { right: .9rem; bottom: 1.8rem; }

/* Testata più compatta sul telefono */
@media (max-width: 600px) {
	.topbar-contatti { display: none; }
	.marchio-nome { font-size: .8rem; letter-spacing: .06em; }
	.marchio-sotto { font-size: .6rem; }
	.marchio-logo { width: 2.2rem; height: 2.2rem; }
	.marchio { gap: .6rem; }
	.menu-toggle { padding: .55em .7em; }
}
