/*
Theme Name: Antonio Bevacqua
Theme URI: https://antonio.bevacqua.eu/
Author: Antonio Bevacqua
Author URI: https://antonio.bevacqua.eu/
Description: Tema a blocchi personale di Antonio Bevacqua (brand kit Antonio Bevacqua - Ntonai). Tre colori (rosso, crema, nero), Anton ospitato sul sito, nessun servizio esterno all'apertura delle pagine, nessun plugin richiesto. Video YouTube solo dopo il clic, riquadro dei cookie incluso.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.6.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: antonio-bevacqua
Tags: block-themes, full-site-editing, one-column, custom-colors
*/

/* Anton © The Anton Project Authors, SIL Open Font License 1.1 (assets/fonts/OFL.txt) */

:root {
	--ab-rosso: var(--wp--preset--color--rosso);
	--ab-crema: var(--wp--preset--color--crema);
	--ab-nero: var(--wp--preset--color--nero);
	--ab-anton: var(--wp--preset--font-family--anton);
	--ab-bordo: 3px solid var(--ab-nero);
}

html { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }
img { height: auto; }

/* Accessibilità: focus sempre visibile */
:where(a, button, input, .wp-element-button):focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

.skip-link.screen-reader-text:focus {
	background: var(--ab-crema);
	color: var(--ab-nero);
	font-family: var(--ab-anton);
	text-transform: uppercase;
}

/* Tutto ciò che usa Anton è maiuscolo */
.has-anton-font-family,
.ab-anton { font-family: var(--ab-anton) !important; text-transform: uppercase; font-weight: 400; letter-spacing: 0.02em; }

/* ---------- Tema "Notte": fondo nero, testo crema ---------- */
.has-nero-background-color { color: var(--ab-crema); }
.has-nero-background-color a:where(:not(.wp-element-button)) { color: var(--ab-crema); }
.has-nero-background-color .wp-element-button,
.has-nero-background-color .wp-block-button__link {
	background: var(--ab-crema);
	color: var(--ab-nero);
	border-color: var(--ab-crema);
}
.has-nero-background-color .is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--ab-crema);
	border-color: var(--ab-crema);
}

/* ---------- Fascia rossa: testo sempre crema ---------- */
.has-rosso-background-color { color: var(--ab-crema); }
.has-rosso-background-color a:where(:not(.wp-element-button)) { color: var(--ab-crema); }
.has-rosso-background-color .wp-block-button__link {
	background: var(--ab-nero);
	color: var(--ab-crema);
	border-color: var(--ab-nero);
}
.has-rosso-background-color .is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--ab-crema);
	border-color: var(--ab-crema);
}
.has-rosso-background-color .wp-block-button__link:hover {
	background: var(--ab-crema);
	color: var(--ab-nero);
	border-color: var(--ab-crema);
}

/* Bottone contorno su crema */
.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--ab-nero);
	border: var(--ab-bordo);
}
.wp-block-button .wp-block-button__link { border-width: 3px; border-style: solid; }

/* ---------- Testata ---------- */
.ab-testata { position: relative; z-index: 20; }
.ab-testata .ab-segno img { display: block; width: auto; height: 64px; }
.ab-testata .wp-block-navigation a { text-decoration: none; }
.ab-testata .wp-block-navigation a:hover,
.ab-testata .wp-block-navigation .current-menu-item > a { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; }
.ab-testata .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--ab-nero) !important;
	color: var(--ab-crema) !important;
	padding: 1.5rem;
}
.ab-testata .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-size: 2.25rem;
}
.ab-testata .wp-block-navigation__responsive-container-open svg,
.ab-testata .wp-block-navigation__responsive-container-close svg { width: 36px; height: 36px; }
@media (max-width: 600px) {
	.ab-testata .ab-segno img { height: 48px; }
}

/* ---------- Occhiello ---------- */
.ab-occhiello {
	font-family: var(--ab-anton);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 1.125rem;
	line-height: 1.2;
	margin: 0;
}
/* Rosso come testo solo su crema e da 18 px in su; su nero e su rosso torna crema */
.ab-occhiello.is-rosso { color: var(--ab-rosso); }
.has-nero-background-color .ab-occhiello.is-rosso,
.has-rosso-background-color .ab-occhiello.is-rosso { color: var(--ab-crema); }

/* ---------- Hero ---------- */
.ab-hero { position: relative; overflow: hidden; }
.ab-hero h1 { margin: 0; }
.ab-hero .ab-personaggio img { width: 100%; max-width: 520px; margin-inline: auto; display: block; }
.ab-hero .wp-block-columns { align-items: center !important; }
@media (max-width: 781px) {
	.ab-hero .ab-personaggio img { max-width: 240px; }
}

/* Le fasce a tutta larghezza si toccano: niente strisce tra una e l'altra */
main.wp-block-group > .alignfull,
main.wp-block-group > .alignfull + * { margin-block-start: 0; }

/* ---------- Schede ---------- */
.ab-scheda {
	border: var(--ab-bordo);
	height: 100%;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.ab-scheda > * { margin: 0 !important; }
.ab-scheda .ab-numero {
	font-family: var(--ab-anton);
	font-size: 3rem;
	line-height: 1;
}
.has-nero-background-color .ab-scheda { border-color: var(--ab-crema); }
.ab-scheda .ab-vai { margin-top: auto !important; font-family: var(--ab-anton); text-transform: uppercase; letter-spacing: 0.04em; }
.ab-scheda .ab-vai a { text-decoration: none; }
.ab-scheda .ab-vai a::after { content: " →"; }

.wp-block-columns.ab-griglia { gap: 1.25rem; }
.wp-block-columns.ab-griglia > .wp-block-column { display: flex; }

/* ---------- Articoli in lista ---------- */
.ab-lista .wp-block-post { border-top: var(--ab-bordo); padding-top: 1.25rem; }
.ab-lista .wp-block-post-title a { text-decoration: none; }
.ab-lista .wp-block-post-title a:hover { text-decoration: underline; text-decoration-thickness: 3px; }
.ab-lista .wp-block-post-featured-image img { aspect-ratio: 16/10; object-fit: cover; border: var(--ab-bordo); }
.ab-lista .wp-block-post-excerpt__more-link { font-family: var(--ab-anton); text-transform: uppercase; }

/* ---------- Articolo ---------- */
.ab-dicitura {
	margin-top: 3rem;
	padding-top: 0.75rem;
	border-top: 1px solid currentColor;
	font-size: 0.8125rem;
	line-height: 1.45;
	opacity: 0.7;
}
.wp-block-post-content a { text-decoration-thickness: 2px; text-underline-offset: 3px; }
.wp-block-post-content :where(h2, h3) { margin-top: 2.5rem; }
.wp-block-post-content img { border: var(--ab-bordo); }

/* Scheda prodotto Amazon */
.ab-prodotto { border: var(--ab-bordo); }
.ab-prodotto .ab-prodotto-testa { margin: 0; }
.ab-prodotto ul { padding-left: 1.2rem; }

/* ---------- Box Academy ---------- */
.ab-academy-box { border: var(--ab-bordo); }
.ab-academy-box .ab-academy-fascia { margin: 0; }

/* ---------- Prezzi ---------- */
.ab-prezzo .ab-cifra {
	font-family: var(--ab-anton);
	font-size: clamp(2.75rem, 7vw, 4rem);
	line-height: 1;
	margin: 0;
}

/* ---------- Brani (Musica) ---------- */
.ab-brani { list-style: none; padding: 0; margin: 0; counter-reset: brano; }
.ab-brani li {
	counter-increment: brano;
	display: grid;
	grid-template-columns: 3.5rem 1fr;
	gap: 0 1rem;
	padding: 1rem 0;
	border-top: 2px solid currentColor;
}
.ab-brani li::before {
	content: counter(brano, decimal-leading-zero);
	font-family: var(--ab-anton);
	font-size: 2rem;
	line-height: 1;
	grid-row: span 2;
}
.ab-brani strong { font-family: var(--ab-anton); font-weight: 400; text-transform: uppercase; font-size: 1.5rem; letter-spacing: 0.02em; line-height: 1.1; }
.ab-brani span { opacity: 0.85; }

/* ---------- Cause ---------- */
.ab-cause h3 { margin: 0; }
.ab-cause .wp-block-group { border-top: var(--ab-bordo); padding-top: 1rem; }

/* ---------- Piede ---------- */
.ab-piede a { text-decoration: none; }
.ab-piede a:hover { text-decoration: underline; }
.ab-piede .ab-segno img { width: 220px; height: auto; display: block; }
.ab-piede .ab-occhiello { opacity: 0.65; margin-bottom: 0.75rem; }
.ab-piede .ab-elenco { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.35rem; }
.ab-piede .ab-elenco li { font-family: var(--ab-anton); text-transform: uppercase; letter-spacing: 0.04em; font-size: 1.0625rem; }
.ab-piede .ab-legale { font-size: 0.875rem; line-height: 1.5; opacity: 0.9; }

/* Paginazione */
.wp-block-query-pagination { font-family: var(--ab-anton); text-transform: uppercase; }

/* Nessuna animazione per chi la disattiva */
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Testata, contenuto e piede attaccati */
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-block-post-content:empty { display: none; }
.ab-numero { text-transform: uppercase; }
.ab-brani { margin-top: 1.5rem !important; }

/* Profili: link grandi, la cosa più visibile dopo l'apertura */
.ab-profili { border-bottom: var(--ab-bordo); }
.ab-profili-elenco { list-style: none; margin: 0.75rem auto 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 2.5rem; }
.ab-profili-elenco a {
	font-family: var(--ab-anton);
	text-transform: uppercase;
	font-size: clamp(2rem, 6vw, 4rem);
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-decoration: none;
	color: var(--ab-nero);
}
.ab-profili-elenco a:hover { text-decoration: underline; text-decoration-thickness: 5px; text-underline-offset: 8px; }
.ab-profili-elenco a span { color: var(--ab-rosso); }
.wp-block-post-content h2 .ab-autore { display:block; font-family: var(--wp--preset--font-family--testo); text-transform: none; font-size: 1.0625rem; letter-spacing: 0; margin-top: .35rem; font-weight: 400; }

/* Piattaforme musicali */
.ab-piattaforme { display: flex; flex-wrap: wrap; gap: 0.35rem 1.1rem; margin-top: 0.35rem; }
.ab-brani .ab-piattaforme { grid-column: 2; }
.ab-piattaforme a { font-family: var(--ab-anton); text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.95rem; text-decoration: underline; text-underline-offset: 3px; }
.ab-piattaforme-grandi { margin-top: var(--wp--preset--spacing--30); gap: 0.6rem; }
.ab-piattaforme-grandi a { font-size: 1.05rem; text-decoration: none; border: 3px solid currentColor; padding: 0.55rem 1rem; }
.ab-piattaforme-grandi a:hover { background: var(--ab-crema); color: var(--ab-nero); }

/* Testi dei brani */
.ab-brani .ab-testo { grid-column: 2; margin-top: 0.6rem; }
.ab-testo summary { cursor: pointer; font-family: var(--ab-anton); text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.95rem; list-style: none; display: inline-block; border: 2px solid currentColor; padding: 0.3rem 0.8rem; }
.ab-testo summary::-webkit-details-marker { display: none; }
.ab-testo summary::after { content: " ↓"; }
.ab-testo[open] summary::after { content: " ↑"; }
.ab-testo-corpo { margin-top: 1rem; padding-left: 1rem; border-left: 3px solid var(--ab-rosso); font-size: 1.0625rem; line-height: 1.55; }
.ab-testo-corpo p { margin: 0 0 1.1em; }

/* Fogli dei testi (PDF) */
.ab-fogli-elenco { list-style: none; padding: 0; margin: var(--wp--preset--spacing--30) auto 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 1.5rem; }
.ab-fogli-elenco a { display: block; text-decoration: none; color: var(--ab-crema); }
.ab-fogli-elenco img { width: 100%; height: auto; display: block; border: 3px solid var(--ab-crema); transition: transform .15s; }
.ab-fogli-elenco a:hover img { transform: translateY(-4px); }
.ab-fogli-elenco span { display: block; margin-top: .6rem; font-family: var(--ab-anton); text-transform: uppercase; letter-spacing: .04em; }

/* ---------- Video YouTube: anteprima dal sito, YouTube solo dopo il clic ---------- */
.ab-video { margin: 0; }
.ab-video-schermo {
	position: relative;
	display: grid;
	aspect-ratio: 16 / 9;
	background: var(--ab-nero);
	border: var(--ab-bordo);
}
.has-nero-background-color .ab-video-schermo { border-color: var(--ab-crema); }
.ab-video-schermo > * { grid-area: 1 / 1; }
.ab-video-avvia {
	position: relative;
	display: block;
	min-height: 100%;
	color: var(--ab-crema);
	text-decoration: none;
	cursor: pointer;
	overflow: hidden;
}
.ab-video-avvia .ab-video-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0 !important; }
.ab-video-segnaposto {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: 0.9rem 1.1rem;
	background: var(--ab-nero);
	border-left: 10px solid var(--ab-rosso);
	color: var(--ab-crema);
	font-family: var(--ab-anton);
	text-transform: uppercase;
	font-size: clamp(1.25rem, 3.2vw, 2rem);
	line-height: 1.05;
	letter-spacing: 0.01em;
}
.ab-video-play {
	position: absolute;
	left: 50%;
	top: 50%;
	width: clamp(3.25rem, 9vw, 4.5rem);
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	background: var(--ab-rosso);
	border: 3px solid var(--ab-crema);
	transition: background-color .15s;
}
.ab-video-play::after {
	content: "";
	position: absolute;
	left: 54%;
	top: 50%;
	width: 38%;
	height: 44%;
	transform: translate(-50%, -50%);
	background: var(--ab-crema);
	clip-path: polygon(0 0, 100% 50%, 0 100%);
}
/* Senza copertina: titolo in alto, play in basso a destra */
.ab-video-segnaposto { align-items: flex-start; padding-right: 1.1rem; }
.ab-video-segnaposto ~ .ab-video-play { left: auto; top: auto; right: 1rem; bottom: 1rem; transform: none; }
.ab-video-avvia:hover .ab-video-play,
.ab-video-avvia:focus-visible .ab-video-play { background: var(--ab-nero); }
.ab-video-avvia:focus-visible { outline: 4px solid var(--ab-crema); outline-offset: -10px; }
.ab-video-iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Avviso prima di caricare YouTube */
.ab-video-avviso {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.75rem;
	padding: 1rem 1.1rem;
	background: var(--ab-nero);
	color: var(--ab-crema);
	font-size: 1rem;
	line-height: 1.4;
}
.ab-video-avviso p { margin: 0; }
.ab-video-avviso a { color: var(--ab-crema); }
.ab-video-scelte { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.ab-video-scelte button,
.ab-video-scelte a {
	font-family: var(--ab-anton);
	text-transform: uppercase;
	letter-spacing: 0.03em;
	font-size: 1rem;
	line-height: 1.1;
	padding: 0.65rem 1rem;
	min-height: 44px;
	border: 3px solid var(--ab-crema);
	background: var(--ab-crema);
	color: var(--ab-nero);
	text-decoration: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
}
.ab-video-scelte a { background: transparent; color: var(--ab-crema); }
.ab-video-scelte button:hover { background: transparent; color: var(--ab-crema); }
.ab-video-scelte a:hover { background: var(--ab-crema); color: var(--ab-nero); }
.ab-video-avviso :focus-visible { outline: 3px solid var(--ab-crema); outline-offset: 3px; }

.ab-video figcaption { margin-top: 0.75rem; display: flex; flex-direction: column; gap: 0.3rem; }
.ab-video-titolo { font-family: var(--ab-anton); text-transform: uppercase; font-size: 1.375rem; line-height: 1.1; letter-spacing: 0.01em; }
.ab-video-data { font-size: 0.9375rem; opacity: 0.85; }
.ab-video-yt { font-family: var(--ab-anton); text-transform: uppercase; letter-spacing: 0.04em; font-size: 1rem; text-underline-offset: 3px; }
.ab-video-griglia { gap: 2.5rem 1.5rem; }

/* Nell'editor */
.ab-video-editor .components-base-control,
.ab-video-editor-copertina { margin-top: 0.75rem; }
.ab-video-editor-copertina { display: flex; gap: 0.75rem; align-items: center; }

/* ---------- Riquadro dei cookie ---------- */
.ab-cookie {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1000;
	max-height: 85vh;
	overflow: auto;
	background: var(--ab-nero);
	color: var(--ab-crema);
	border-top: 6px solid var(--ab-rosso);
	padding: 1.1rem clamp(1rem, 4vw, 2.5rem) calc(1.1rem + env(safe-area-inset-bottom));
	font-family: var(--wp--preset--font-family--testo);
	box-shadow: 0 -6px 0 rgba(28, 26, 23, 0.15);
}
.ab-cookie[hidden] { display: none; }
.ab-cookie-dentro { position: relative; max-width: 1200px; margin: 0 auto; display: grid; gap: 0.6rem; padding-right: 3.5rem; }
.ab-cookie p { margin: 0; font-size: 1rem; line-height: 1.5; max-width: 60rem; }
.ab-cookie .ab-cookie-titolo { font-family: var(--ab-anton); text-transform: uppercase; font-size: 1.5rem; line-height: 1.1; letter-spacing: 0.02em; }
.ab-cookie-titolo:focus { outline: none; }
.ab-cookie-titolo:focus-visible { outline: 3px solid var(--ab-crema); outline-offset: 3px; }
.ab-cookie a { color: var(--ab-crema); text-decoration: underline; text-underline-offset: 3px; }
.ab-cookie-stato:empty { display: none; }
.ab-cookie-scelte { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.25rem; }
.ab-cookie-scelte button {
	flex: 1 1 9rem;
	max-width: 16rem;
	min-height: 48px;
	padding: 0.75rem 1.25rem;
	font-family: var(--ab-anton);
	text-transform: uppercase;
	letter-spacing: 0.03em;
	font-size: 1.125rem;
	line-height: 1.1;
	background: var(--ab-crema);
	color: var(--ab-nero);
	border: 3px solid var(--ab-crema);
	border-radius: 0;
	cursor: pointer;
}
.ab-cookie-scelte button:hover { background: transparent; color: var(--ab-crema); }
.ab-cookie-x {
	position: absolute;
	top: 0;
	right: 0;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	color: var(--ab-crema);
	border: 2px solid var(--ab-crema);
	border-radius: 0;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
}
.ab-cookie-x:hover { background: var(--ab-crema); color: var(--ab-nero); }
.ab-cookie :where(button, a):focus-visible { outline: 3px solid var(--ab-crema); outline-offset: 3px; }
@media (max-width: 480px) {
	.ab-cookie { padding-top: 0.9rem; }
	.ab-cookie p { font-size: 0.9375rem; line-height: 1.45; }
	.ab-cookie .ab-cookie-titolo { font-size: 1.25rem; }
	.ab-cookie-scelte button { flex: 1 1 0; max-width: none; min-width: 0; }
}

/* Pagina Video: sezioni larghe e griglia a più colonne */
.ab-video-griglia { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(19rem, 100%), 1fr)) !important; gap: 2rem 1.5rem !important; }

/* Cause: link alle pagine dedicate */
.ab-cause h3 a { text-decoration: none; }
.ab-cause h3 a:hover { text-decoration: underline; text-decoration-thickness: 3px; }
.ab-cause .ab-vai { font-family: var(--ab-anton); text-transform: uppercase; letter-spacing: 0.04em; }
.ab-cause .ab-vai a { text-decoration: none; }
.ab-cause .ab-vai a::after { content: " →"; }

/* Pagine tema (Palestina, Patriarcato): testi su due colonne */
.ab-testi-due { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr)); gap: 2rem; }
.ab-testi-due .ab-testo-corpo { margin-top: 0; }
.ab-libri { list-style: none; padding: 0; display: grid; gap: 1.25rem; }
.ab-libri li { border-top: var(--ab-bordo); padding-top: 0.9rem; }
.ab-libri strong { font-family: var(--ab-anton); font-weight: 400; text-transform: uppercase; font-size: 1.35rem; letter-spacing: 0.02em; display: block; line-height: 1.15; }
.wp-block-post-content .ab-fogli-elenco { margin-top: var(--wp--preset--spacing--40); grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }
.wp-block-post-content .ab-fogli-elenco a { color: var(--ab-nero); }
.wp-block-post-content .ab-fogli-elenco img { border-color: var(--ab-nero); }
.wp-block-post-content .ab-brani { margin-top: 1rem !important; }
.wp-block-post-content .ab-brani li { grid-template-columns: 1fr; }
.wp-block-post-content .ab-brani li::before { display: none; }
.wp-block-post-content .ab-brani .ab-piattaforme { grid-column: 1; }
.ab-testi-due h3 { margin-bottom: .75rem; }
