/**
 * OPIFICIO DELLA BADANTE — "Storie" (blog)
 * Indice (home.php / category.php) + articolo singolo (single.php) + stili
 * per l'output di Gutenberg dentro .entry-content.
 *
 * Dipende da style.css (token --odb-*, topbar, footer, .odb-wrap).
 * Prefissi BEM di pagina: .odb-blog (indice/archivio), .odb-blog-card,
 * .odb-blog-feature, .odb-article (singolo), .odb-related.
 *
 * NB per chi edita: il CHROME (header archivio, hero articolo, meta, correlati)
 * è markup del TEMA. Il CORPO dell'articolo è ciò che il cliente scrive in
 * Gutenberg → il tema lo stampa dentro .entry-content e i blocchi ereditano gli
 * stili della sezione 3. Il cliente usa i blocchi standard, senza toccare classi.
 */

/* ============================================================
   1 · INDICE / ARCHIVIO  (home.php, category.php)
   ============================================================ */
.odb-blog__head {
	padding-top: clamp(110px, 14vh, 160px);
	padding-bottom: clamp(40px, 6vh, 72px);
	border-bottom: 1px solid var(--odb-hair);
}
.odb-blog__head-inner {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
}
.odb-blog__eyebrow {
	font-family: var(--odb-font-mono);
	font-size: .7rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--odb-ink-soft);
	margin: 0 0 clamp(20px, 3vh, 34px);
}
.odb-blog__title {
	margin: 0;
	font-family: var(--odb-font-display);
	font-weight: 500;
	font-style: italic;
	font-size: clamp(2.8rem, 8vw, 7rem);
	letter-spacing: -0.01em;
	line-height: .9;
}
.odb-blog__desc {
	font-family: var(--odb-font-mono);
	font-size: .84rem;
	line-height: 1.6;
	color: var(--odb-ink-soft);
	max-width: 34ch;
	margin: 0;
	text-wrap: pretty;
	text-align: right;
}

/* filtro categorie (link reali per tassonomia) */
.odb-blog__filter {
	display: flex;
	align-items: center;
	gap: 0;
	overflow-x: auto;
	scrollbar-width: none;
	border-bottom: 1px solid var(--odb-hair);
	margin-bottom: clamp(40px, 6vh, 72px);
}
.odb-blog__filter::-webkit-scrollbar { display: none; }
.odb-blog__filter a {
	font-family: var(--odb-font-mono);
	font-size: .72rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--odb-ink-soft);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	padding: 18px 22px 16px;
	white-space: nowrap;
	transition: color .3s var(--odb-ease), border-color .3s var(--odb-ease);
	margin-bottom: -1px;
}
.odb-blog__filter a:hover { color: var(--odb-ink); }
.odb-blog__filter a.is-on {
	color: var(--odb-ink);
	border-bottom-color: var(--odb-ink);
}

/* ---- griglia post ---- */
.odb-blog__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(24px, 3vw, 48px);
	padding-bottom: clamp(70px, 11vh, 130px);
	align-items: center;
}
@media (max-width: 900px) { .odb-blog__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .odb-blog__grid { grid-template-columns: 1fr; } }

/* ---- card articolo (usata in griglia + correlati) ---- */
.odb-blog-card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
}
.odb-blog-card:hover { color: inherit; }
.odb-blog-card__cover {
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	/* forma organica sul CONTENITORE: così lo zoom in hover avviene dentro la
	   maschera arrotondata e i bordi non vengono tagliati dritti. */
	border-radius: 63% 37% 54% 46% / 58% 49% 51% 42%;
}
/* forme + proporzioni cicliche (come le foto in home) */
.odb-blog-card:nth-child(3n+1) .odb-blog-card__cover { aspect-ratio: 3 / 2; }
.odb-blog-card:nth-child(3n+2) .odb-blog-card__cover { aspect-ratio: 4 / 5; border-radius: 71% 29% 57% 43% / 61% 47% 53% 39%; }
.odb-blog-card:nth-child(3n+3) .odb-blog-card__cover { aspect-ratio: 1 / 1; border-radius: 36% 64% 33% 67% / 63% 38% 62% 37%; }
.odb-blog-card__cover img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(.08) contrast(1.02);
	transition: transform .6s var(--odb-ease);
}
.odb-blog-card:hover .odb-blog-card__cover img { transform: scale(1.04); }
.odb-blog-card__title {
	font-family: var(--odb-font-display);
	font-weight: 600;
	font-size: clamp(1.35rem, 2.4vw, 1.9rem);
	line-height: 1.08;
	letter-spacing: -0.01em;
	margin: 18px 0 12px;
	text-wrap: pretty;
	transition: color .25s var(--odb-ease);
}
.odb-blog-card:hover .odb-blog-card__title { color: var(--odb-wine); }
.odb-blog-card__excerpt {
	font-family: var(--odb-font-sans);
	font-size: .86rem;
	line-height: 1.62;
	color: var(--odb-ink-soft);
	margin: 0 0 16px;
	max-width: 40ch;
}
.odb-blog-card__meta {
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--odb-hair-soft);
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--odb-font-mono);
	font-size: .68rem;
	letter-spacing: .06em;
	color: var(--odb-ink-soft);
}
.odb-blog-card__meta .odb-dot {
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: var(--odb-hair);
	flex: none;
}
.odb-blog-card__meta .odb-blog-card__cat-inline { color: var(--odb-ink); }

/* ---- post in evidenza (prima riga dell'indice, largo) ---- */
.odb-blog-feature {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: clamp(28px, 4vw, 64px);
	align-items: center;
	padding-bottom: clamp(48px, 7vh, 88px);
	margin-bottom: clamp(48px, 7vh, 88px);
	border-bottom: 1px solid var(--odb-hair);
	text-decoration: none;
	color: inherit;
}
@media (max-width: 760px) { .odb-blog-feature { grid-template-columns: 1fr; gap: 24px; } }
.odb-blog-feature__cover {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	/* forma organica sul contenitore (vedi card): zoom hover senza bordi tagliati. */
	border-radius: 48% 52% 67% 33% / 45% 58% 42% 55%;
}
.odb-blog-feature__cover img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(.08) contrast(1.02);
	transition: transform .6s var(--odb-ease);
}
.odb-blog-feature:hover .odb-blog-feature__cover img { transform: scale(1.03); }
.odb-blog-feature__eyebrow {
	font-family: var(--odb-font-mono);
	font-size: .66rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--odb-ink-soft);
	margin: 0 0 18px;
	display: flex;
	align-items: center;
	gap: 12px;
}
.odb-blog-feature__eyebrow::before {
	content: "";
	width: 28px;
	height: 1px;
	background: var(--odb-ink);
}
.odb-blog-feature__title {
	font-family: var(--odb-font-display);
	font-weight: 600;
	font-size: clamp(2rem, 4.2vw, 3.6rem);
	line-height: 1.02;
	letter-spacing: -0.015em;
	margin: 0 0 18px;
	text-wrap: pretty;
	transition: color .25s var(--odb-ease);
}
.odb-blog-feature:hover .odb-blog-feature__title { color: var(--odb-wine); }
.odb-blog-feature__excerpt {
	font-family: var(--odb-font-sans);
	font-size: .96rem;
	line-height: 1.72;
	color: var(--odb-ink-soft);
	margin: 0 0 22px;
	max-width: 46ch;
}
.odb-blog-feature__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--odb-font-mono);
	font-size: .72rem;
	letter-spacing: .06em;
	color: var(--odb-ink-soft);
}
.odb-blog-feature__meta .odb-dot {
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: var(--odb-hair);
	flex: none;
}

/* ---- paginazione ---- */
.odb-blog__nav {
	padding-bottom: clamp(70px, 11vh, 130px);
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.odb-blog__nav .page-numbers {
	font-family: var(--odb-font-mono);
	font-size: .78rem;
	letter-spacing: .06em;
	color: var(--odb-ink-soft);
	text-decoration: none;
	border: 1px solid var(--odb-hair);
	padding: 10px 15px;
	min-width: 44px;
	text-align: center;
	transition: background .25s var(--odb-ease), color .25s var(--odb-ease), border-color .25s var(--odb-ease);
}
.odb-blog__nav a.page-numbers:hover { background: var(--odb-ink); color: var(--odb-bg); border-color: var(--odb-ink); }
.odb-blog__nav .page-numbers.current { background: var(--odb-ink); color: var(--odb-bg); border-color: var(--odb-ink); }
.odb-blog__nav .page-numbers.dots { border-color: transparent; }

/* ---- stato vuoto ---- */
.odb-blog__empty {
	padding: clamp(48px, 8vh, 96px) 0 clamp(90px, 14vh, 150px);
	max-width: 52ch;
}
.odb-blog__empty p {
	font-family: var(--odb-font-sans);
	font-size: .95rem;
	line-height: 1.7;
	color: var(--odb-ink-soft);
}

/* ============================================================
   2 · SINGOLO ARTICOLO — chrome (fuori da .entry-content)
   ============================================================ */

/* topbar sempre col fondo sull'articolo: la hero è una foto a tutta larghezza,
   il testo del menu resterebbe illeggibile sul trasparente in cima. */
.single-post .odb-topbar {
	border-bottom-color: var(--odb-hair);
	padding-top: 12px;
	padding-bottom: 12px;
}
.single-post .odb-topbar::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: color-mix(in srgb, var(--odb-bg) 88%, transparent);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
.single-post .odb-topbar__mark { height: 40px; }
.single-post .odb-topbar__word { height: 32px; }

/* --- variante A: testata centrata (articolo SENZA immagine in evidenza) --- */
.odb-article__head {
	padding-top: clamp(104px, 13vh, 150px);
	padding-bottom: clamp(28px, 4vh, 48px);
	text-align: center;
}
.odb-article__breadcrumb {
	font-family: var(--odb-font-mono);
	font-size: .66rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--odb-ink-soft);
	margin: 0 0 clamp(24px, 4vh, 40px);
}
.odb-article__breadcrumb a { color: var(--odb-ink-soft); text-decoration: none; transition: color .2s; }
.odb-article__breadcrumb a:hover { color: var(--odb-ink); }
.odb-article__breadcrumb .sep { margin: 0 8px; color: var(--odb-hair); }
.odb-article__cat {
	display: inline-block;
	font-family: var(--odb-font-mono);
	font-size: .66rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--odb-wine);
	text-decoration: none;
	margin: 0 0 clamp(18px, 3vh, 26px);
}
.odb-article__title {
	font-family: var(--odb-font-display);
	font-weight: 600;
	font-style: normal;
	font-size: clamp(2.2rem, 5.6vw, 4.8rem);
	line-height: 1.02;
	letter-spacing: -0.015em;
	margin: 0 auto clamp(24px, 4vh, 36px);
	max-width: 20ch;
	text-wrap: balance;
}
.odb-article__title em { font-style: italic; font-weight: 500; }
.odb-article__standfirst {
	font-family: var(--odb-font-display);
	font-weight: 500;
	font-style: italic;
	font-size: clamp(1.15rem, 2.2vw, 1.65rem);
	line-height: 1.4;
	color: var(--odb-ink-soft);
	margin: 0 auto clamp(30px, 5vh, 44px);
	max-width: 40ch;
	text-wrap: pretty;
}
.odb-article__meta {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 14px;
	font-family: var(--odb-font-mono);
	font-size: .72rem;
	letter-spacing: .08em;
	color: var(--odb-ink-soft);
}
.odb-article__meta .odb-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--odb-hair); flex: none; }

/* --- variante B: hero con immagine in evidenza + testo su fondino --- */
.odb-article__hero {
	position: relative;
	isolation: isolate;
	min-height: clamp(520px, 82vh, 860px);
	display: flex;
	align-items: flex-end;
	padding-block: clamp(120px, 16vh, 180px) clamp(88px, 12vh, 132px);
	overflow: hidden;
	/* stesso taglio obliquo delle fasce foto in home */
	clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%);
}
.odb-article__hero-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
	filter: grayscale(.06) contrast(1.02);
}
.odb-article__hero-scrim {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(26, 23, 18, .18) 0%, rgba(26, 23, 18, 0) 34%, rgba(26, 23, 18, .12) 70%, rgba(26, 23, 18, .42) 100%);
}
.odb-article__hero-inner { width: 100%; max-width: var(--odb-maxw); text-align: left; }
.odb-article__hero .odb-article__breadcrumb { color: var(--odb-bg); margin: 0 0 clamp(16px, 2.4vh, 24px); text-shadow: 0 1px 12px rgba(26, 23, 18, .6); }
.odb-article__hero .odb-article__breadcrumb a { color: var(--odb-bg); }
.odb-article__hero .odb-article__breadcrumb a:hover { color: #fff; }
.odb-article__hero .odb-article__breadcrumb .sep { color: rgba(245, 241, 233, .55); }

/* fondini crema dietro al testo (come le didascalie in home) */
.odb-article__hero .odb-article__cat { margin: 0 0 clamp(12px, 2vh, 18px); }
.odb-article__hero .odb-article__cat span {
	display: inline-block;
	background: var(--odb-bg);
	color: var(--odb-wine);
	padding: 6px 11px;
	box-shadow: 0 8px 24px -12px rgba(26, 23, 18, .5);
}
.odb-article__hero .odb-article__title {
	margin: 0 0 clamp(16px, 2.6vh, 24px);
	max-width: 24ch;
	line-height: 1.34;
}
.odb-article__hero .odb-article__title span {
	background: var(--odb-bg);
	color: var(--odb-ink);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	padding: .06em .34em;
	box-shadow: 0 10px 30px -14px rgba(26, 23, 18, .5);
}
.odb-article__hero .odb-article__title em { font-style: italic; font-weight: 500; color: var(--odb-wine); }
.odb-article__hero .odb-article__standfirst { margin: 0 0 clamp(20px, 3vh, 30px); max-width: 48ch; line-height: 1.7; }
.odb-article__hero .odb-article__standfirst span {
	background: var(--odb-bg);
	color: var(--odb-ink-soft);
	font-style: italic;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	padding: .1em .4em;
}
.odb-article__hero .odb-article__meta {
	display: inline-flex;
	flex-wrap: wrap;
	background: var(--odb-bg);
	color: var(--odb-ink-soft);
	padding: 9px 13px;
	justify-content: flex-start;
}
.odb-article__hero .odb-article__meta .odb-dot { background: var(--odb-hair); }

/* ============================================================
   3 · IL CORPO — .entry-content  (output di Gutenberg)
   Colonna centrata; i blocchi allargati sfondano la colonna
   via CSS-grid (.alignwide / .alignfull).
   ============================================================ */
.odb-article .entry-content {
	--measure: 92ch;
	--wide: var(--odb-maxw);
	padding-top: clamp(48px, 8vh, 92px);
	display: grid;
	grid-template-columns:
		[full-start] minmax(var(--odb-pad), 1fr)
		[wide-start] minmax(0, calc((var(--wide) - min(var(--measure), 100%)) / 2))
		[content-start] min(var(--measure), 100%) [content-end]
		minmax(0, calc((var(--wide) - min(var(--measure), 100%)) / 2)) [wide-end]
		minmax(var(--odb-pad), 1fr) [full-end];
}
/* default: ogni blocco sta nella colonna di lettura */
.odb-article .entry-content > * { grid-column: content; min-width: 0; }
.odb-article .entry-content > .alignwide { grid-column: wide; }
.odb-article .entry-content > .alignfull { grid-column: full; }

/* --- flusso verticale (ritmo) --- */
.odb-article .entry-content > * { margin-block: 0 clamp(1.3em, 2.6vh, 1.9em); }
.odb-article .entry-content > *:last-child { margin-bottom: 0; }

/* --- paragrafi --- */
.odb-article .entry-content p {
	font-family: var(--odb-font-sans);
	font-size: 1rem;
	line-height: 1.85;
	color: var(--odb-ink);
	text-wrap: pretty;
}
.odb-article .entry-content a {
	color: var(--odb-wine);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	transition: color .2s;
}
.odb-article .entry-content a:hover { color: var(--odb-ink); }
.odb-article .entry-content strong { font-weight: 700; }
.odb-article .entry-content em { font-style: italic; }

/* drop cap (Gutenberg: "Lettera capitale" sul paragrafo) */
.odb-article .entry-content p.has-drop-cap:first-letter {
	font-family: var(--odb-font-display);
	font-weight: 600;
	font-size: 3.6em;
	line-height: .72;
	float: left;
	margin: .06em .12em 0 0;
	color: var(--odb-ink);
}

/* --- titoli (wp-block-heading) --- */
.odb-article .entry-content h2,
.odb-article .entry-content h3,
.odb-article .entry-content h4 {
	font-family: var(--odb-font-title);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--odb-ink);
	text-wrap: balance;
	margin-top: clamp(1.8em, 4vh, 2.6em);
}
.odb-article .entry-content h2 { font-size: clamp(1.6rem, 3.2vw, 2.4rem); }
.odb-article .entry-content h3 { font-size: clamp(1.3rem, 2.4vw, 1.7rem); }
.odb-article .entry-content h4 { font-size: clamp(1.08rem, 1.8vw, 1.3rem); }
.odb-article .entry-content :is(h2, h3, h4) + * { margin-top: 0; }

/* --- liste (wp-block-list) --- */
.odb-article .entry-content ul,
.odb-article .entry-content ol {
	font-family: var(--odb-font-sans);
	font-size: 1rem;
	line-height: 1.8;
	color: var(--odb-ink);
	padding-left: 1.4em;
	margin-left: 0;
}
.odb-article .entry-content li { margin-bottom: .5em; text-wrap: pretty; }
.odb-article .entry-content li::marker { color: var(--odb-ink-soft); }
.odb-article .entry-content ul { list-style: none; padding-left: 1.6em; }
.odb-article .entry-content ul > li { position: relative; }
.odb-article .entry-content ul > li::before {
	content: "—";
	position: absolute;
	left: -1.6em;
	color: var(--odb-wine);
	font-family: var(--odb-font-mono);
}

/* --- citazione (wp-block-quote) --- */
.odb-article .entry-content blockquote,
.odb-article .entry-content .wp-block-quote {
	border-left: 2px solid var(--odb-ink);
	padding-left: clamp(18px, 2.4vw, 30px);
	margin-left: 0;
	margin-right: 0;
}
.odb-article .entry-content .wp-block-quote p {
	font-family: var(--odb-font-display);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.2rem, 2.2vw, 1.6rem);
	line-height: 1.35;
	color: var(--odb-ink);
}
.odb-article .entry-content .wp-block-quote cite,
.odb-article .entry-content .wp-block-quote__citation {
	display: block;
	margin-top: 14px;
	font-family: var(--odb-font-mono);
	font-style: normal;
	font-size: .68rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--odb-ink-soft);
}

/* --- pull-quote (wp-block-pullquote) --- */
.odb-article .entry-content .wp-block-pullquote {
	border: 0;
	border-top: 1px solid var(--odb-hair);
	border-bottom: 1px solid var(--odb-hair);
	padding: clamp(32px, 5vh, 52px) 0;
	margin-block: clamp(1.6em, 3vh, 2.4em);
	text-align: center;
}
.odb-article .entry-content .wp-block-pullquote p {
	font-family: var(--odb-font-display);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.6rem, 4vw, 2.8rem);
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--odb-ink);
	max-width: 24ch;
	margin-inline: auto;
}
.odb-article .entry-content .wp-block-pullquote cite {
	display: block;
	margin-top: 20px;
	font-family: var(--odb-font-mono);
	font-style: normal;
	font-size: .68rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--odb-ink-soft);
}

/* --- immagine (wp-block-image) --- */
.odb-article .entry-content figure { margin: 0; }
.odb-article .entry-content .wp-block-image img { width: 100%; height: auto; display: block; border: 1px solid var(--odb-hair); }
.odb-article .entry-content .wp-block-image figcaption,
.odb-article .entry-content figcaption {
	font-family: var(--odb-font-mono);
	font-size: .68rem;
	letter-spacing: .04em;
	color: var(--odb-ink-soft);
	text-align: center;
	margin-top: 12px;
	line-height: 1.5;
}

/* --- galleria (wp-block-gallery) --- */
.odb-article .entry-content .wp-block-gallery {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(3, 1fr);
}
.odb-article .entry-content .wp-block-gallery.columns-2 { grid-template-columns: repeat(2, 1fr); }
.odb-article .entry-content .wp-block-gallery .wp-block-image { margin: 0; }
.odb-article .entry-content .wp-block-gallery img { aspect-ratio: 1/1; object-fit: cover; }
@media (max-width: 560px) { .odb-article .entry-content .wp-block-gallery { grid-template-columns: repeat(2, 1fr); } }

/* --- media & testo (wp-block-media-text) --- */
.odb-article .entry-content .wp-block-media-text {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(24px, 3vw, 44px);
	align-items: center;
}
.odb-article .entry-content .wp-block-media-text.has-media-on-the-right { grid-template-columns: 1fr 1fr; }
.odb-article .entry-content .wp-block-media-text img { width: 100%; height: auto; border: 1px solid var(--odb-hair); }
.odb-article .entry-content .wp-block-media-text p { margin: 0; }
@media (max-width: 640px) { .odb-article .entry-content .wp-block-media-text { grid-template-columns: 1fr; } }

/* --- colonne (wp-block-columns) --- */
.odb-article .entry-content .wp-block-columns { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(24px, 3vw, 44px); }
.odb-article .entry-content .wp-block-columns .wp-block-column > *:first-child { margin-top: 0; }
@media (max-width: 640px) { .odb-article .entry-content .wp-block-columns { grid-template-columns: 1fr; } }

/* --- colori della palette (add_theme_support 'editor-color-palette') ---
   WordPress emette già queste classi nel foglio globale; le ripetiamo qui come
   rete di sicurezza e per tenere i valori agganciati ai token del tema. */
.odb-article .entry-content .has-bianco-caldo-background-color { background-color: var(--odb-bg); }
.odb-article .entry-content .has-crema-background-color        { background-color: var(--odb-bg-deep); }
.odb-article .entry-content .has-beige-background-color        { background-color: var(--odb-hair); }
.odb-article .entry-content .has-bordo-background-color        { background-color: var(--odb-wine); }
.odb-article .entry-content .has-inchiostro-background-color   { background-color: var(--odb-ink); }
.odb-article .entry-content .has-grigio-caldo-background-color { background-color: var(--odb-ink-soft); }
.odb-article .entry-content .has-bianco-caldo-color { color: var(--odb-bg); }
.odb-article .entry-content .has-crema-color        { color: var(--odb-bg-deep); }
.odb-article .entry-content .has-beige-color        { color: var(--odb-hair); }
.odb-article .entry-content .has-bordo-color        { color: var(--odb-wine); }
.odb-article .entry-content .has-inchiostro-color   { color: var(--odb-ink); }
.odb-article .entry-content .has-grigio-caldo-color { color: var(--odb-ink-soft); }

/* Su fondino scuro il testo si schiarisce (bordò / inchiostro / grigio caldo). */
.odb-article .entry-content :is(.has-bordo-background-color, .has-inchiostro-background-color, .has-grigio-caldo-background-color),
.odb-article .entry-content :is(.has-bordo-background-color, .has-inchiostro-background-color, .has-grigio-caldo-background-color) :is(p, h2, h3, h4, li, cite, strong) {
	color: var(--odb-bg);
}
.odb-article .entry-content :is(.has-bordo-background-color, .has-inchiostro-background-color, .has-grigio-caldo-background-color) a { color: var(--odb-bg); }
.odb-article .entry-content :is(.has-bordo-background-color, .has-inchiostro-background-color, .has-grigio-caldo-background-color) ul > li::before { color: var(--odb-bg); }

/* --- gruppo / box (wp-block-group) ---
   Usato come "riquadro" nei pattern (nota, ricetta, rimando alla gamma). Il padding
   scelto nel pattern arriva come stile inline e vince su questo default. */
.odb-article .entry-content .wp-block-group.has-background {
	padding: clamp(24px, 4vw, 44px);
}
.odb-article .entry-content .wp-block-group > *:first-child { margin-top: 0; }
.odb-article .entry-content .wp-block-group > *:last-child { margin-bottom: 0; }

/* --- bottone (wp-block-button) --- */
.odb-article .entry-content .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.odb-article .entry-content .wp-block-button__link,
.odb-article .entry-content .wp-block-button a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--odb-font-mono);
	font-size: .74rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--odb-bg);
	background: var(--odb-ink);
	border: 1px solid var(--odb-ink);
	padding: 15px 28px;
	border-radius: 0;
	transition: background .25s var(--odb-ease), border-color .25s var(--odb-ease);
}
.odb-article .entry-content .wp-block-button__link:hover,
.odb-article .entry-content .wp-block-button a:hover { background: var(--odb-wine); border-color: var(--odb-wine); color: var(--odb-bg); }
.odb-article .entry-content .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--odb-ink); }
.odb-article .entry-content .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--odb-ink); color: var(--odb-bg); }

/* --- separatore (wp-block-separator) --- */
.odb-article .entry-content hr,
.odb-article .entry-content .wp-block-separator {
	border: 0;
	height: 1px;
	background: var(--odb-hair);
	margin-block: clamp(2em, 5vh, 3.4em);
	max-width: 100%;
}
.odb-article .entry-content .wp-block-separator.is-style-dots { background: none; text-align: center; height: auto; }
.odb-article .entry-content .wp-block-separator.is-style-dots::before {
	content: "· · ·";
	font-family: var(--odb-font-display);
	font-size: 1.6rem;
	letter-spacing: .6em;
	color: var(--odb-ink-soft);
}

/* --- tabella (wp-block-table) --- */
.odb-article .entry-content .wp-block-table { overflow-x: auto; }
.odb-article .entry-content table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--odb-font-mono);
	font-size: .82rem;
	line-height: 1.5;
}
.odb-article .entry-content th,
.odb-article .entry-content td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--odb-hair); }
.odb-article .entry-content th { text-transform: uppercase; letter-spacing: .08em; font-size: .68rem; color: var(--odb-ink-soft); font-weight: 600; }
.odb-article .entry-content tbody tr:hover { background: var(--odb-bg-deep); }

/* --- codice / preformattato --- */
.odb-article .entry-content pre,
.odb-article .entry-content .wp-block-code,
.odb-article .entry-content .wp-block-preformatted {
	font-family: var(--odb-font-mono);
	font-size: .82rem;
	line-height: 1.6;
	background: var(--odb-bg-deep);
	border: 1px solid var(--odb-hair);
	padding: 18px 20px;
	overflow-x: auto;
	color: var(--odb-ink);
}
.odb-article .entry-content code { font-family: var(--odb-font-mono); font-size: .88em; background: var(--odb-bg-deep); padding: 2px 6px; border: 1px solid var(--odb-hair-soft); }
.odb-article .entry-content pre code { background: none; border: 0; padding: 0; }

/* --- verse --- */
.odb-article .entry-content .wp-block-verse {
	font-family: var(--odb-font-display);
	font-style: italic;
	font-size: 1.15rem;
	line-height: 1.6;
	color: var(--odb-ink);
	white-space: pre-wrap;
}

/* --- embed --- */
.odb-article .entry-content .wp-block-embed figcaption { margin-top: 10px; }
.odb-article .entry-content .wp-block-embed__wrapper { position: relative; }

/* ============================================================
   4 · SOTTO-ARTICOLO — condivisione + correlati (chrome tema)
   ============================================================ */
.odb-article__foot {
	border-top: 1px solid var(--odb-hair);
	margin-top: clamp(56px, 8vh, 96px);
	padding-top: clamp(32px, 5vh, 52px);
}
.odb-article__share {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	flex-wrap: wrap;
}
.odb-article__share-label {
	font-family: var(--odb-font-mono);
	font-size: .66rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--odb-ink-soft);
}
.odb-article__share-links { display: flex; align-items: center; gap: 10px; }
.odb-article__share-links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid var(--odb-hair);
	color: var(--odb-ink);
	transition: background .25s var(--odb-ease), color .25s var(--odb-ease), border-color .25s var(--odb-ease);
}
.odb-article__share-links a:hover { background: var(--odb-ink); color: var(--odb-bg); border-color: var(--odb-ink); }
.odb-article__share-links svg { width: 17px; height: 17px; }

/* correlati */
.odb-related {
	padding-block: clamp(64px, 9vh, 110px);
	border-top: 1px solid var(--odb-hair);
	margin-top: clamp(56px, 8vh, 96px);
}
.odb-related__head {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: clamp(32px, 5vh, 52px);
	font-family: var(--odb-font-mono);
	font-size: .68rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--odb-ink-soft);
}
.odb-related__head::after { content: ""; flex: 1; height: 1px; background: var(--odb-hair); }
.odb-related__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(24px, 3vw, 48px);
}
@media (max-width: 900px) { .odb-related__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .odb-related__grid { grid-template-columns: 1fr; } }
