/*
Theme Name: Alberoni Mag
Theme URI: https://alberonimagazine.it/
Author: Enrico Frascati
Author URI: https://alberonimagazine.it/
Description: Tema editoriale custom per Alberoni Magazine. Magazine layout, mobile-first, accessibile, zero dipendenze da page builder.
Version: 0.1.1
Requires at least: 6.5
Requires PHP: 8.1
License: Proprietary
Text Domain: alberoni-mag
Tags: magazine, editorial, custom
*/

/* =========================================================================
   1. Design tokens
   ========================================================================= */
:root {
	--color-bg:           #ffffff;
	--color-bg-soft:      #ece3d5; /* header bar, footer bar */
	--color-bg-promo:     #c9b8a4; /* "Posta del cuore" promo box */
	--color-fg:           #3a2417; /* marrone scuro testo (coerente con la palette accent) */
	--color-fg-muted:     #7d6555; /* marrone medio caldo per testi secondari */
	--color-accent:       #a07350; /* marrone primario */
	--color-accent-dark:  #8a623f;
	--color-border:       #e6dfd2;
	--color-border-soft:  #efe9dc;

	/* Display: Newsreader — serif editoriale moderno, ottico-bilanciato, regge titoli lunghi */
	--font-display:       "Newsreader", "Source Serif 4", "Source Serif Pro", "Iowan Old Style", Georgia, serif;
	/* Body: Source Sans 3 — sans morbido, leggibile, contrasto netto vs Playfair */
	--font-body:          "Source Sans 3", "Source Sans Pro", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	/* Mantieni nome --font-serif per compatibilità ma punta al body sans */
	--font-serif:         var(--font-body);
	--font-sans:          var(--font-body);

	--size-base:          18px;
	--lh-base:            1.6;
	--size-h1:            clamp(2.2rem, 4.4vw, 2.8rem);
	--size-h2:            clamp(1.8rem, 3.4vw, 2.3rem);
	--size-h3:            clamp(1.4rem, 2.6vw, 1.7rem);
	--size-small:         0.88rem;
	--size-meta:          0.84rem;

	--container-max:      1280px;
	--container-pad:      clamp(20px, 5vw, 64px);
	--gap-section:        clamp(56px, 7vw, 100px);
	--gap-grid:           clamp(20px, 3vw, 32px);

	--radius-sm:          4px;
	--radius-md:          8px;

	/* Chrome editoriale 2026 (masthead + footer + frame) */
	--am-display:         "Playfair Display", Georgia, "Times New Roman", serif;
	--am-nav:             "Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--am-peri:            #7a7d9c;   /* periwinkle accento chrome */
	--am-peri-dp:         #595c79;
	--am-cream:           #f0ede6;
	--am-outer:           #e8e6e0;   /* sfondo oltre i 1400px */
	--am-frame:           1400px;
}

/* =========================================================================
   2. Reset minimo
   ========================================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--am-outer);
	color: var(--color-fg);
	font-family: var(--font-serif);
	font-size: var(--size-base);
	line-height: var(--lh-base);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* Frame: la pagina vera centrata e capata a 1400px; oltre si vede l'outer. */
.site-frame {
	max-width: var(--am-frame);
	margin-inline: auto;
	background: var(--color-bg);
	box-shadow: 0 0 80px rgba(32, 32, 29, 0.07);
}
h1, h2, h3, h4, h5, h6,
.site-branding__title,
.hero-featured__title,
.section__title,
.card__title,
.post-header__title,
.archive-header__title,
.widget__title,
.promo-box__title,
.site-footer__brand-name {
	font-family: var(--font-display);
	font-weight: 600;
	letter-spacing: -0.003em;
	line-height: 1.22;
}
/* Hero e singolo articolo: peso 700, line-height un filo più stretto */
.hero-featured__title,
.post-header__title { font-weight: 700; line-height: 1.18; }
/* Section title: 700, ariosa */
.section__title { font-weight: 700; line-height: 1.15; }

/* Eyebrow / categoria sottolineata */
.card__category, .post-header__category {
	font-family: var(--font-body);
	font-weight: 700;
	letter-spacing: 0.16em;
}
img, picture, video { max-width: 100%; height: auto; display: block; }
a { color: var(--color-accent); text-decoration: none; }
a:hover, a:focus { color: var(--color-accent-dark); } /* niente sottolineatura globale all'hover: troppo invadente */
:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 3px;
	border-radius: 2px;
}
button { font: inherit; cursor: pointer; }
input, textarea, select {
	font: inherit;
	color: inherit;
}

/* =========================================================================
   3. Layout containers
   ========================================================================= */
.container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-pad);
}
.skip-link {
	position: absolute; left: -9999px; top: 0;
	background: var(--color-accent); color: #fff;
	padding: 8px 12px; z-index: 9999;
}
.skip-link:focus { left: 8px; top: 8px; }

/* =========================================================================
   4. Header
   ========================================================================= */
.site-header { background: var(--color-bg); border-bottom: 1px solid var(--color-border-soft); }
.site-header__top {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 16px;
	padding-block: clamp(20px, 3vw, 32px);
}
@media (min-width: 768px) {
	.site-header__top {
		grid-template-columns: auto 1fr;
		gap: 32px;
	}
}
.site-branding { display: flex; align-items: center; gap: 16px; }
.site-branding__logo { flex: 0 0 auto; }
.site-branding__logo img { width: clamp(56px, 8vw, 88px); height: auto; }
.site-branding__title {
	margin: 0;
	font-size: clamp(1.6rem, 4vw, 2.6rem);
	line-height: 1.05;
	font-weight: 700;
	color: var(--color-fg);
}
.site-branding__title a { color: inherit; text-decoration: none; }
.site-branding__tagline {
	margin: 4px 0 0;
	font-size: clamp(1rem, 2vw, 1.4rem);
	color: var(--color-accent);
	font-style: italic;
	font-weight: 400;
}
.site-header__masthead {
	text-align: left;
	font-size: var(--size-small);
	color: var(--color-fg);
}
@media (min-width: 768px) {
	.site-header__masthead { text-align: right; }
}
.site-header__masthead p { margin: 0; }
.site-header__masthead strong { font-weight: 700; }

/* Navigation bar */
.site-nav-bar {
	background: var(--color-bg-soft);
	border-radius: 999px;
	padding: 6px 16px;
	margin-block: 16px;
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	position: relative;
}
.site-nav { flex: 1 1 auto; }
.site-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 8px;
}
.site-nav__list a {
	display: inline-block;
	padding: 8px 14px;
	color: var(--color-fg);
	font-weight: 600;
	border-radius: 999px;
}
.site-nav__list a:hover,
.site-nav__list .current-menu-item > a {
	color: var(--color-accent-dark);
	text-decoration: none;
}

/* Sub-menu (dropdown) */
.site-nav__list .menu-item-has-children { position: relative; }
/* Sezioni: NON position:relative perché il mega-menu si posiziona rispetto al nav-bar */
.site-nav__list > .menu-item-7072 { position: static; }
.site-nav__list .menu-item-has-children > a::after {
	content: " ▾";
	font-size: 0.7em;
	display: inline-block;
	margin-left: 4px;
	opacity: 0.6;
}
.site-nav__list .sub-menu {
	list-style: none;
	margin: 0;
	padding: 6px 0;
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: 0 6px 16px rgba(0,0,0,0.08);
	min-width: 220px;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 50;
	display: none;
}
.site-nav__list .sub-menu a {
	display: block;
	padding: 8px 16px;
	border-radius: 0;
	font-weight: 500;
}
.site-nav__list .sub-menu a:hover { background: var(--color-bg-soft); }
.site-nav__list .menu-item-has-children:hover > .sub-menu,
.site-nav__list .menu-item-has-children:focus-within > .sub-menu {
	display: block;
}

/* ─── Mega-menu unificato (Informazioni + Sezioni in un solo pannello) ─── */
@media (min-width: 769px) {
	/* Nascondo i sub-menu nativi dei top-level con children: usiamo il pannello unificato. */
	.site-nav__list > .menu-item-has-children > .sub-menu { display: none !important; }

	.am-megamenu {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		margin: 8px auto 0;
		width: min(1100px, calc(100vw - 64px));
		background: var(--color-bg);
		border: 1px solid var(--color-border);
		border-radius: var(--radius-md);
		box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
		padding: 28px 32px;
		z-index: 60;
	}
	.am-megamenu[hidden] { display: none; }
	.am-megamenu__inner {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
		gap: 12px 28px;
	}
	.am-megamenu__col { min-width: 0; }
	.am-megamenu__col-title {
		display: block;
		font-family: var(--font-display);
		font-weight: 700;
		font-size: 1.1rem;
		padding: 0 0 8px 0;
		border-bottom: 1px solid var(--color-border);
		margin-bottom: 8px;
		color: var(--color-accent);
		text-decoration: none;
	}
	.am-megamenu__col-title:hover { color: var(--color-accent-dark); text-decoration: none; }
	.am-megamenu__list { list-style: none; margin: 0; padding: 0; }
	.am-megamenu__list li + li { margin-top: 2px; }
	.am-megamenu__list a {
		display: block;
		font-family: var(--font-body);
		font-size: 0.95rem;
		padding: 4px 0;
		color: var(--color-fg);
		text-decoration: none;
	}
	.am-megamenu__list a:hover { color: var(--color-accent); }

	/* Quando il mega-menu è aperto, evidenzio i top-level trigger */
	.site-nav-bar.is-mega-open .site-nav__list > .menu-item-has-children > a {
		color: var(--color-accent-dark);
	}
}
@media (max-width: 768px) {
	/* Su mobile non uso il mega-menu, mostro i sub-menu come accordion inline */
	.am-megamenu { display: none !important; }
}

@media (max-width: 768px) {
	.site-nav__list .sub-menu {
		position: static;
		display: block;
		box-shadow: none;
		border: 0;
		border-radius: 0;
		padding: 0 0 0 16px;
		background: transparent;
	}
	.site-nav__list .menu-item-has-children > a::after { content: ""; }
}

/* Search form in header */
.site-search {
	flex: 0 1 280px;
	display: flex;
	align-items: center;
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 999px;
	padding: 4px 10px 4px 14px;
}
.site-search input[type="search"] {
	border: 0;
	background: transparent;
	flex: 1;
	padding: 8px;
	min-width: 0;
}
.site-search input[type="search"]:focus { outline: 0; }
.site-search button {
	background: transparent;
	border: 0;
	color: var(--color-fg-muted);
	padding: 6px;
	display: inline-flex;
	align-items: center;
}

/* Mobile menu toggle */
.menu-toggle {
	display: none;
	background: var(--color-bg-soft);
	border: 1px solid var(--color-border);
	border-radius: 999px;
	padding: 10px 14px;
	margin-block: 12px;
	width: 100%;
	text-align: center;
	font-weight: 600;
}
.menu-toggle[aria-expanded="true"] { background: var(--color-accent); color: #fff; }

@media (max-width: 960px) {
	.site-nav-bar {
		flex-direction: column;
		align-items: stretch;
		border-radius: var(--radius-md);
		padding: 12px;
		gap: 12px;
	}
	.site-nav { display: none; }
	.site-nav.is-open { display: block; }
	.site-nav__list { flex-direction: column; gap: 0; }
	.site-nav__list a { display: block; padding: 12px 14px; border-bottom: 1px solid var(--color-border-soft); }
	.menu-toggle { display: block; }
	.site-search {
		flex: 0 0 auto;
		width: 100%;
		padding: 0;
		background: transparent;
		border: 0;
	}
	.site-search input[type="search"] {
		background: var(--color-bg);
		border: 1px solid var(--color-border);
		border-radius: 999px;
		padding: 10px 14px 10px 16px;
	}
	.site-search button {
		position: absolute;
		right: 14px;
		margin-top: 6px;
	}
	.site-search { position: relative; }
}
.menu-toggle {
	font-family: var(--font-display);
	font-size: 1rem;
	letter-spacing: 0.04em;
	padding: 12px 16px;
}

/* =========================================================================
   5. Home / archive grid
   ========================================================================= */
.site-content { padding-block: var(--gap-section); }
.site-content > * + * { margin-top: var(--gap-section); }

/* Hero featured — visivamente inequivocabile come "copertina" */
.hero-featured {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--gap-grid);
	align-items: center;
	padding-bottom: clamp(40px, 5vw, 60px);
	border-bottom: 3px solid var(--color-accent);
	margin-bottom: clamp(40px, 5vw, 60px);
}
@media (min-width: 900px) {
	.hero-featured { grid-template-columns: 5fr 4fr; }
}
.hero-featured__image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--radius-md);
}
.hero-featured__eyebrow {
	display: inline-block;
	font-family: var(--font-body);
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 700;
	color: #fff;
	background: var(--color-accent);
	padding: 6px 12px;
	border-radius: var(--radius-sm);
	margin-bottom: 16px;
}
.hero-featured__title {
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 3.2vw, 2.4rem);
	line-height: 1.18;
	margin: 0 0 16px;
	font-weight: 700;
}
.hero-featured__title a { color: var(--color-fg); }
.hero-featured__title a:hover { color: var(--color-accent); text-decoration: none; }
.hero-featured__meta {
	font-size: 0.9rem;
	color: var(--color-fg-muted);
	margin: 0 0 16px;
	font-style: italic;
}
.hero-featured__meta strong, .hero-featured__author { font-weight: 700; color: var(--color-fg); font-style: normal; }
.hero-featured__excerpt {
	font-size: 1.05rem;
	line-height: 1.55;
	margin: 0 0 16px;
	color: var(--color-fg);
}
.hero-featured__cta {
	display: inline-block;
	font-weight: 700;
	color: var(--color-accent);
}
.hero-featured__cta:hover { color: var(--color-accent-dark); }

/* Section: title bar + grid */
.section {
	padding-block: clamp(8px, 1.5vw, 24px);
}
/* Divisore discreto tra sezioni in home (eccetto la prima) */
.site-content > .section + .section {
	border-top: 1px solid var(--color-border-soft);
	padding-top: clamp(40px, 5vw, 64px);
}
.section__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: clamp(24px, 3vw, 36px);
	flex-wrap: wrap;
}
.section__title {
	font-size: var(--size-h2);
	margin: 0;
	font-weight: 700;
	color: var(--color-accent);
}
.section__more {
	font-weight: 600;
	font-size: 1rem;
	color: var(--color-accent);
}
.section__more:hover { color: var(--color-accent-dark); }

.cards-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(28px, 4vw, 40px) var(--gap-grid);
}
@media (min-width: 600px) { .cards-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .cards-grid { grid-template-columns: 1fr 1fr 1fr; } }
@media (min-width: 960px) { .cards-grid--2col { grid-template-columns: 1fr 1fr; } }

/* Layout "ultimi articoli + promo box sticky a destra" */
.latest-with-promo {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--gap-grid);
}
@media (min-width: 960px) {
	.latest-with-promo {
		grid-template-columns: minmax(0, 8fr) minmax(280px, 4fr);
	}
}
.latest-with-promo__aside { align-self: start; position: sticky; top: 24px; }
@media (max-width: 960px) { .latest-with-promo__aside { position: static; } }
.home-aside__divider {
	border: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--color-border), transparent);
	margin: 28px 0;
}
.home-newsletter-box {
	background: var(--color-bg-soft);
	border-radius: var(--radius-md);
	padding: 4px;
}

/* ─── Override form newsletter (plugin Alberoni Newsletter) per allinearsi
 *      ai token del tema: Newsreader sui titoli, Source Sans sul body,
 *      palette e spaziature unificate. Stesso pattern per il form contatti. ── */
.an-form,
.am-contact-form {
	font-family: var(--font-body);
	color: var(--color-fg);
	font-size: 1rem;
	line-height: 1.55;
}
.home-newsletter-box .an-form,
.an-form {
	margin: 0;
	background: transparent;
	border: 0;
	padding: 16px 12px;
}
.an-form__title {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: clamp(1.4rem, 2.4vw, 1.7rem);
	line-height: 1.22;
	color: var(--color-fg);
	margin: 0 0 6px;
}
.an-form__subtitle {
	font-family: var(--font-body);
	font-style: normal;
	color: var(--color-fg-muted);
	margin: 0 0 18px;
	font-size: 0.95rem;
	line-height: 1.5;
}
.an-form__field { margin-bottom: 14px; }
.an-form__label {
	font-family: var(--font-body);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--color-fg);
	margin-bottom: 4px;
	letter-spacing: 0.01em;
}
.an-form__required { color: var(--color-accent); }
.an-form input[type="email"],
.an-form input[type="text"],
.am-contact-form input[type="text"],
.am-contact-form input[type="email"],
.am-contact-form textarea {
	font-family: var(--font-body);
	font-size: 1rem;
	color: var(--color-fg);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	padding: 10px 12px;
}
.an-form input::placeholder,
.am-contact-form input::placeholder,
.am-contact-form textarea::placeholder {
	color: var(--color-fg-muted);
	opacity: 0.8;
	font-style: normal;
}
.an-form input:focus,
.am-contact-form input:focus,
.am-contact-form textarea:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
	border-color: var(--color-accent);
}
.an-form__consent,
.am-contact-form label:has(input[type="checkbox"]) {
	font-family: var(--font-body);
	font-size: 0.88rem;
	line-height: 1.5;
	color: var(--color-fg);
	margin: 14px 0;
	font-weight: 400;
}
.an-form__consent a,
.am-contact-form a { color: var(--color-accent); }
.an-form__consent strong { font-weight: 600; }
.an-form__button {
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 1rem;
	letter-spacing: 0.01em;
	background: var(--color-accent);
	color: #fff;
	padding: 12px 18px;
	border-radius: var(--radius-sm);
}
.an-form__button:hover,
.an-form__button:focus { background: var(--color-accent-dark); }
.an-form__legal {
	font-family: var(--font-body);
	font-size: 0.8rem;
	line-height: 1.5;
	color: var(--color-fg-muted);
	margin-top: 14px;
}
.an-form__legal small { font-size: inherit; }
.an-form__flash {
	font-family: var(--font-body);
	font-size: 0.92rem;
	line-height: 1.5;
}

/* =========================================================================
   6. Article card (riusabile)
   ========================================================================= */
.card { }
.card__media {
	display: block;
	margin: 0 0 16px;
	border-radius: var(--radius-sm);
	overflow: hidden;
}
.card__media img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 0.4s ease;
}
.card__media:hover img { transform: scale(1.02); }
.card__title {
	font-size: clamp(1.15rem, 1.8vw, 1.4rem);
	line-height: 1.22;
	margin: 0 0 10px;
	font-weight: 600;
}
.card__title a { color: var(--color-fg); }
.card__title a:hover { color: var(--color-accent); text-decoration: none; }
.card__excerpt {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.55;
	color: var(--color-fg);
}
.card__excerpt .card__author { font-weight: 700; color: var(--color-fg); }
.card__category {
	display: inline-block;
	font-size: var(--size-meta);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color-accent);
	margin-bottom: 8px;
}

/* Card compatta (es. "Continua a leggere"): look della home, senza estratto */
.card--compact .card__media { border-radius: 10px; } /* stondatura come le card della home */
.card--compact .card__title { font-family: var(--am-display); font-weight: 700; }
.card--compact .card__byline {
	margin: 6px 0 0;
	font-family: var(--am-nav);
	font-style: italic;
	font-size: 0.95rem;
	color: var(--am-peri-dp);
}

/* Promo box (es. "Posta del cuore" sticky) */
.promo-box {
	background: var(--color-bg-promo);
	border-radius: var(--radius-md);
	padding: clamp(20px, 3vw, 32px);
	color: var(--color-fg);
}
.promo-box__title {
	font-size: var(--size-h3);
	margin: 0 0 4px;
	font-weight: 700;
}
.promo-box__byline { font-style: italic; margin: 0 0 12px; font-size: 0.95rem; }
.promo-box__lede   { font-style: italic; margin: 0 0 16px; font-size: 0.95rem; }
.promo-box img     { border-radius: var(--radius-sm); margin-bottom: 12px; }

/* CTA bottone "Tutti gli articoli" */
.btn {
	display: inline-block;
	padding: 14px 28px;
	background: var(--color-accent);
	color: #fff;
	border-radius: var(--radius-sm);
	font-weight: 600;
	border: 0;
}
.btn:hover, .btn:focus {
	background: var(--color-accent-dark);
	color: #fff;
	text-decoration: none;
}
.btn--outline {
	background: transparent;
	color: var(--color-accent);
	border: 1px solid var(--color-accent);
}
.btn--outline:hover {
	background: var(--color-accent);
	color: #fff;
}

/* =========================================================================
   7. Single post / page
   ========================================================================= */
.post-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(32px, 5vw, 60px);
}
@media (min-width: 960px) {
	.post-layout { grid-template-columns: minmax(0, 7fr) minmax(260px, 4fr); }
}

.post-header__category {
	font-size: var(--size-meta);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--color-accent);
	margin: 0 0 12px;
}
.post-header__title {
	font-size: clamp(2rem, 4.5vw, 3rem);
	line-height: 1.15;
	margin: 0 0 16px;
	font-weight: 700;
}
.post-header__meta {
	font-size: 0.95rem;
	color: var(--color-fg-muted);
	margin: 0 0 24px;
}
.post-header__author { font-weight: 700; color: var(--color-fg); }
.post-header__image { margin: 0 0 32px; }
.post-header__image img { border-radius: var(--radius-md); }

/* ===== Hero articolo a tutta larghezza (immagine grande + titolo sovrimpresso) ===== */
.single-hero { margin: 0 0 clamp(32px, 5vw, 56px); }
.single-hero--plain .single-hero__inner { padding: 0; }
.single-hero--image {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(300px, 44vw, 560px);
	border-radius: var(--radius-md);
	overflow: hidden;
}
.single-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
}
.single-hero__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(20, 18, 16, 0.82) 0%, rgba(20, 18, 16, 0.45) 34%, rgba(20, 18, 16, 0) 64%);
}
.single-hero__inner { position: relative; z-index: 1; width: 100%; }
/* margine interno: il titolo non tocca il bordo dell'immagine */
.single-hero--image .single-hero__inner { padding: clamp(24px, 4vw, 48px); }
/* larghezza del blocco titolo = larghezza della colonna sinistra (7fr su 11, meno il gap) */
@media (min-width: 960px) {
	.single-hero--image .single-hero__inner { max-width: calc((100% - clamp(32px, 5vw, 60px)) * 7 / 11); }
}
.single-hero--image .single-hero__title { color: #fff; font-size: clamp(2.1rem, 5vw, 3.3rem); }

/* Icona "occhio" in basso a destra: apre l'immagine intera (senza tagli) in lightbox */
.single-hero__zoom {
	position: absolute;
	right: clamp(14px, 2vw, 22px);
	bottom: clamp(14px, 2vw, 22px);
	z-index: 3;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	background: rgba(20, 18, 16, 0.5);
	color: #fff;
	cursor: pointer;
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	transition: background 0.2s ease, transform 0.2s ease;
}
.single-hero__zoom:hover { background: rgba(20, 18, 16, 0.82); transform: translateY(-1px); }

/* Lightbox immagine intera */
.am-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: clamp(20px, 4vw, 56px);
	background: rgba(16, 15, 13, 0.92);
}
.am-lightbox[hidden] { display: none; }
.am-lightbox__figure { margin: 0; display: flex; flex-direction: column; align-items: center; max-width: 94vw; }
.am-lightbox__img {
	max-width: 94vw;
	max-height: 82vh;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: 4px;
	box-shadow: 0 12px 44px rgba(0, 0, 0, 0.5);
}
.am-lightbox__caption {
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.9rem;
	line-height: 1.5;
	text-align: center;
	margin: 14px 0 0;
	max-width: 64ch;
}
.am-lightbox__close {
	position: absolute;
	top: 16px;
	right: 22px;
	background: none;
	border: 0;
	color: #fff;
	font-size: 2.4rem;
	line-height: 1;
	cursor: pointer;
	padding: 4px 10px;
}
body.am-lightbox-open { overflow: hidden; }
.single-hero--image .post-header__category,
.single-hero--image .post-header__category a { color: #fff; opacity: 0.95; }
.single-hero--image .post-header__meta,
.single-hero--image .post-header__meta a,
.single-hero--image .post-header__author { color: rgba(255, 255, 255, 0.92); }
.single-hero--image .post-header__meta { margin-bottom: 0; }

/* Svolazzo decorativo sopra il titolo */
.hero-ornament { display: block; line-height: 0; margin: 0 0 14px; }
.hero-ornament__svg { height: 20px; width: auto; }
.single-hero--image .hero-ornament { color: #fff; opacity: 0.95; }
.single-hero--plain .hero-ornament { color: var(--color-accent); }

/* Riga meta sopra il testo: categoria e autore affiancati */
.post-meta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin: 0 0 30px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--color-border);
}
.post-meta-row__cat {
	font-size: var(--size-meta);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 700;
}
.post-meta-row__cat a { color: var(--color-accent); }
.post-meta-row__by {
	font-size: 0.92rem;
	color: var(--color-fg-muted);
	padding-left: 14px;
	border-left: 1px solid var(--color-border);
}
.post-meta-row__by a, .post-meta-row__author { color: var(--color-fg); font-weight: 700; }
.post-meta-row__read {
	font-size: 0.92rem;
	color: var(--color-fg-muted);
	padding-left: 14px;
	border-left: 1px solid var(--color-border);
}
@media (max-width: 480px) {
	.post-meta-row__by, .post-meta-row__read { padding-left: 0; border-left: 0; }
}

/* Capolettera sul primo paragrafo con testo dell'articolo (classe messa da PHP) */
.post-content p.am-dropcap::first-letter {
	float: left;
	font-family: var(--am-display);
	font-weight: 700;
	font-size: 3.6em;
	line-height: 0.78;
	margin: 6px 12px 0 0;
	color: var(--color-accent);
}

.post-content { font-size: 1.08rem; line-height: 1.75; }
.post-content > * + * { margin-top: 1em; }
/* Titoli: molto spazio SOPRA (stacco dal paragrafo precedente), poco SOTTO
   (il titolo resta legato al testo che introduce). */
.post-content h2 { font-size: clamp(1.5rem, 2.8vw, 1.9rem); margin-top: 2.4em; margin-bottom: 0; line-height: 1.25; }
.post-content h3 { font-size: clamp(1.25rem, 2.2vw, 1.5rem); margin-top: 2em; margin-bottom: 0; line-height: 1.3; }
.post-content h4 { margin-top: 1.7em; margin-bottom: 0; line-height: 1.35; }
.post-content h2:first-child,
.post-content h3:first-child,
.post-content h4:first-child { margin-top: 0; }
/* Il primo elemento dopo un titolo si avvicina al titolo */
.post-content > :is(h2, h3, h4) + * { margin-top: 0.4em; }

/* Poesia / versi: a capo singoli compatti, con un filo d'aria e un richiamo
   periwinkle a sinistra che la distingue dalla prosa. */
.post-content .poem {
	line-height: 1.95;
	padding-left: 1.2em;
	border-left: 2px solid var(--am-peri, #7a7d9c);
}
.post-content blockquote {
	border-left: 3px solid var(--color-accent);
	padding-left: 20px;
	font-style: italic;
	color: var(--color-fg);
	margin-block: 1.5em;
}

/* I blocchi <pre>, "Codice" e "Preformattato" di Gutenberg vengono spesso usati
 * dalla redazione al posto di "Citazione". Li stilizziamo per essere accettabili
 * in entrambi i casi: font serif del tema (no monospace), wrap automatico,
 * sfondo morbido, niente scroll orizzontale.
 * Per i code-block veri (molto rari in un magazine) si può usare la classe
 * `.is-code` per riavere il monospace originale. */
.post-content pre,
.post-content .wp-block-preformatted,
.post-content .wp-block-code,
.post-content .wp-block-verse {
	font-family: var(--font-body);
	font-size: 1.02rem;
	line-height: 1.6;
	white-space: pre-wrap;
	word-wrap: break-word;
	overflow-wrap: anywhere;
	background: var(--color-bg-soft);
	border-left: 3px solid var(--color-accent);
	padding: 18px 22px;
	margin-block: 1.5em;
	border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
	color: var(--color-fg);
	box-shadow: none;
	tab-size: 4;
}
.post-content pre code,
.post-content .wp-block-code code {
	font-family: inherit;
	font-size: inherit;
	background: transparent;
	padding: 0;
	white-space: inherit;
}
/* Override esplicito per code-block veri quando servono */
.post-content pre.is-code,
.post-content .wp-block-code.is-code {
	font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
	font-size: 0.92rem;
	background: #f6f3ee;
	border-left: 3px solid var(--color-fg-muted);
}
/* Inline code (parole singole nel testo) */
.post-content :not(pre) > code {
	font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
	font-size: 0.9em;
	background: var(--color-border-soft);
	padding: 1px 6px;
	border-radius: 3px;
}
.post-content img { border-radius: var(--radius-sm); }
.post-content a { text-decoration: underline; }
/* Iconcina "link esterno" accanto ai link che escono dal sito (marcati via JS) */
.post-content a.am-extlink::after {
	content: "";
	display: inline-block;
	width: 0.72em;
	height: 0.72em;
	margin-left: 0.18em;
	vertical-align: -0.04em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E") no-repeat center / contain;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E") no-repeat center / contain;
}
.post-content figure { margin-block: 1.5em; }
.post-content figcaption { font-size: 0.85rem; color: var(--color-fg-muted); margin-top: 6px; }

/* Sidebar */
.sidebar > * + * { margin-top: clamp(28px, 4vw, 40px); }
.widget {
	background: var(--color-bg);
	border-bottom: 1px solid var(--color-border-soft);
	padding-bottom: 24px;
}
.widget__title {
	font-size: 1.3rem;
	margin: 0 0 16px;
	font-weight: 700;
	color: var(--color-fg);
}
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget li + li { margin-top: 16px; }
.widget li a { color: var(--color-fg); font-weight: 600; }
.widget li a:hover { color: var(--color-accent); text-decoration: none; }
.widget li small { display: block; color: var(--color-fg-muted); font-size: 0.85rem; margin-top: 2px; font-style: italic; }

/* =========================================================================
   7b. Single autore (CPT am_author) + archivio redazione
   ========================================================================= */
.author-hero {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(20px, 3vw, 40px);
	align-items: start;
	padding-bottom: clamp(28px, 4vw, 48px);
	border-bottom: 2px solid var(--color-border);
	margin-bottom: clamp(28px, 4vw, 48px);
}
@media (min-width: 720px) {
	.author-hero { grid-template-columns: 220px 1fr; }
}
.author-hero__photo img {
	width: 220px;
	height: 220px;
	object-fit: cover;
	border-radius: 50%;
	display: block;
}
.author-hero__eyebrow {
	font-size: var(--size-meta);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--color-accent);
	margin: 0 0 8px;
}
.author-hero__name {
	font-size: clamp(2rem, 4vw, 2.8rem);
	margin: 0 0 12px;
	line-height: 1.1;
}
.author-hero__lede { font-size: 1.15rem; color: var(--color-fg-muted); margin: 0 0 16px; }
.author-hero__bio { font-size: 1rem; line-height: 1.6; }
.author-hero__count { margin-top: 16px; font-size: 0.9rem; color: var(--color-fg-muted); font-style: italic; }

/* Archive autori — griglia redazione (card allineate a sinistra) */
.authors-grid .author-card {
	text-align: left;
	background: var(--am-cream);
	border: 1px solid var(--color-border-soft);
	border-radius: var(--radius-md);
	padding: clamp(20px, 2.4vw, 30px);
	display: flex;
	flex-direction: column;
	height: 100%;
	transition: box-shadow 0.18s ease, transform 0.18s ease;
}
.authors-grid .author-card:hover {
	box-shadow: 0 10px 26px rgba(32, 32, 29, 0.08);
	transform: translateY(-2px);
}
.author-card__photo {
	display: block;
	width: 88px;
	height: 88px;
	margin: 0 0 16px;
	border-radius: 50%;
	overflow: hidden;
	flex: 0 0 auto;
}
.author-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.author-card__placeholder {
	width: 100%;
	height: 100%;
	background: rgba(122, 125, 156, 0.12);
	color: var(--am-peri-dp);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--am-display);
	font-size: 2.4rem;
	font-weight: 700;
}
.authors-grid .card__title { margin: 0 0 8px; }
.authors-grid .card__excerpt {
	color: var(--color-fg-muted);
	font-size: 0.95rem;
	line-height: 1.55;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* =========================================================================
   7c. Engagement box (views + like) — Fase 7c
   ========================================================================= */
.engagement-box {
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
	padding: 20px 0;
	margin: 32px 0 0;
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
	font-size: 0.95rem;
	color: var(--color-fg-muted);
}
.engagement-box__views {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.engagement-box__views svg { color: var(--color-accent); flex: 0 0 auto; }
.engagement-box__like {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	border: 1px solid var(--color-border);
	border-radius: 999px;
	padding: 8px 16px;
	color: var(--color-fg);
	cursor: pointer;
	font: inherit;
	transition: background 0.18s ease, border-color 0.18s ease;
}
.engagement-box__like:hover {
	background: var(--color-bg-soft);
	border-color: var(--color-accent);
}
.engagement-box__heart {
	color: var(--color-accent);
	transition: transform 0.2s ease, fill 0.2s ease;
}
.engagement-box__like[aria-pressed="true"] .engagement-box__heart {
	fill: var(--color-accent);
	transform: scale(1.1);
}
.engagement-box__like[aria-pressed="true"] {
	background: var(--color-bg-soft);
	border-color: var(--color-accent);
}
.engagement-box__like-count {
	font-weight: 700;
	color: var(--color-accent);
	min-width: 1.5em;
	text-align: center;
}
.engagement-box__like-count.is-hidden-count { display: none; }
.engagement-box__like.is-loading { opacity: 0.6; pointer-events: none; }
@keyframes am-heartbeat {
	0%, 100% { transform: scale(1); }
	30%      { transform: scale(1.4); }
	60%      { transform: scale(0.95); }
}
.engagement-box__like.is-just-liked .engagement-box__heart {
	animation: am-heartbeat 0.45s ease;
}

/* Variante compatta: "Mi piace" in cima alla colonna destra, come bottone pieno */
.engagement-box--compact {
	margin: 0 0 28px;
	padding: 0;
	border: 0;
}
.engagement-box--compact .engagement-box__like {
	width: 100%;
	justify-content: center;
	padding: 12px 16px;
	background: var(--color-bg-soft);
}

/* =========================================================================
   7d. Condivisione social (link puri, nessuno script di terze parti)
   ========================================================================= */
.share-bar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	margin: 36px 0 0;
	padding-top: 24px;
	border-top: 1px solid var(--color-border);
}
.share-bar__label {
	font-family: var(--am-nav);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-fg-muted);
}
.share-bar__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgba(32, 32, 29, 0.055);
	color: var(--color-fg-muted);
	transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}
.share-btn:hover,
.share-btn:focus-visible {
	color: #fff;
	transform: translateY(-2px);
	text-decoration: none;
}
.share-btn--facebook:hover, .share-btn--facebook:focus-visible { background: #1877f2; }
.share-btn--x:hover,        .share-btn--x:focus-visible        { background: #000; }
.share-btn--linkedin:hover, .share-btn--linkedin:focus-visible { background: #0a66c2; }
.share-btn--whatsapp:hover, .share-btn--whatsapp:focus-visible { background: #25d366; }
.share-btn--email:hover,    .share-btn--email:focus-visible    { background: var(--am-peri); }

/* =========================================================================
   7e. Preferiti: pulsante in testata + pagina "I tuoi preferiti"
   ========================================================================= */
.site-fav {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	flex: 0 0 auto;
	padding: 8px 12px;
	border-radius: 999px;
	color: var(--color-fg);
	font-family: var(--am-nav);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transition: color 0.15s ease, background 0.15s ease;
}
.site-fav:hover { color: var(--am-peri); background: rgba(122, 125, 156, 0.10); text-decoration: none; }
.site-fav svg { flex: 0 0 auto; }
.site-fav__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--am-peri);
	color: #fff;
	font-size: 0.72rem;
	line-height: 1;
}
@media (max-width: 960px) {
	.site-fav__label { display: none; } /* su mobile resta cuore + numero */
}

.am-favorites {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
}
@media (min-width: 760px) { .am-favorites { grid-template-columns: 1fr 1fr; } }
.am-fav__item { position: relative; }
.am-fav__card {
	display: flex;
	min-height: 132px;
	background: var(--am-cream);
	border: 1px solid var(--color-border-soft);
	border-radius: 12px;
	overflow: hidden;
	color: var(--color-fg);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.am-fav__card:hover { box-shadow: 0 10px 26px rgba(32, 32, 29, 0.08); transform: translateY(-2px); text-decoration: none; }
.am-fav__media { flex: 0 0 40%; align-self: stretch; background: #ddd6c9 center / cover no-repeat; }
.am-fav__media--blank { background: linear-gradient(135deg, #d8d0c2, #c7bca8); }
.am-fav__text { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 16px 18px; }
.am-fav__cat {
	font-family: var(--am-nav);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--am-peri-dp);
}
.am-fav__title { font-family: var(--am-display); font-size: 1.18rem; line-height: 1.25; color: var(--color-fg); }
.am-fav__card:hover .am-fav__title { color: var(--am-peri); }
.am-fav__by { font-size: 0.88rem; font-style: italic; color: var(--color-fg-muted); }
.am-fav__remove {
	position: absolute;
	top: 8px; right: 8px;
	width: 30px; height: 30px;
	border: 1px solid var(--color-border);
	background: rgba(255, 255, 255, 0.92);
	border-radius: 50%;
	color: var(--color-fg-muted);
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
	transition: color 0.15s ease, border-color 0.15s ease;
}
.am-fav__remove:hover { color: #b23; border-color: #b23; }
.am-favorites__empty { padding: 24px 0; color: var(--color-fg-muted); }
.am-fav-promo { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--color-border); }

/* =========================================================================
   8. Archive / search
   ========================================================================= */
.archive-header {
	border-bottom: 1px solid var(--color-border-soft);
	padding-bottom: 20px;
	margin-bottom: clamp(28px, 4vw, 40px);
}
.archive-header__title { margin: 0; font-size: clamp(1.6rem, 3.2vw, 2.2rem); }
.archive-header__desc  { margin: 8px 0 0; color: var(--color-fg-muted); }

.pagination { display: block; width: 100%; margin-top: clamp(80px, 12vw, 120px); text-align: center; }
.pagination ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
}
.pagination li { margin: 0; list-style: none; }
.pagination li .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid var(--color-border);
	border-radius: 8px;
	color: var(--color-fg);
	font-family: var(--am-nav);
	font-size: 0.95rem;
	line-height: 1;
	text-decoration: none;
}
.pagination li a.page-numbers:hover { border-color: var(--am-peri); color: var(--am-peri); }
.pagination li .page-numbers.current { background: var(--am-peri); color: #fff; border-color: var(--am-peri); }
.pagination li .page-numbers.dots { border: 0; min-width: auto; padding: 0 4px; }

/* =========================================================================
   9. Footer
   ========================================================================= */
.site-footer {
	background: var(--color-bg-soft);
	margin-top: var(--gap-section);
	padding-block: clamp(40px, 5vw, 60px);
}
.site-footer__top {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	align-items: center;
	margin-bottom: 24px;
}
@media (min-width: 768px) {
	.site-footer__top { grid-template-columns: auto 1fr; }
}
.site-footer__brand { display: inline-flex; align-items: center; gap: 16px; }
.site-footer__brand img { height: 48px; width: auto; max-width: 100%; }
.site-footer__brand-text { display: flex; flex-direction: column; }
.site-footer__brand-name { font-size: 1.4rem; font-weight: 700; color: var(--color-fg); }
.site-footer__brand-tagline { font-style: italic; color: var(--color-accent); font-size: 1rem; }

.site-footer__nav ul {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-wrap: wrap; gap: 8px 24px;
	justify-content: center;
}
@media (min-width: 768px) { .site-footer__nav ul { justify-content: flex-end; } }
.site-footer__nav a { color: var(--color-fg); font-weight: 600; }
.site-footer__nav a:hover { color: var(--color-accent); text-decoration: none; }

.site-footer__copy {
	text-align: center;
	color: var(--color-fg-muted);
	font-size: var(--size-small);
}

/* =========================================================================
   10. Forms (default WP + plugin newsletter)
   ========================================================================= */
input[type="email"], input[type="text"], input[type="search"], input[type="url"], textarea, select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: var(--color-bg);
}
input:focus, textarea:focus, select:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
	border-color: var(--color-accent);
}
label { font-weight: 600; }

/* =========================================================================
   11. Utility
   ========================================================================= */
.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px);
	clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute; width: 1px;
	word-wrap: normal !important;
}
.text-center { text-align: center; }
.mt-section { margin-top: var(--gap-section); }
.mb-section { margin-bottom: var(--gap-section); }

/* =========================================================================
   11b. Posta del cuore — sezione home a ritmo "rotto" (4-col, box morbido)
   ========================================================================= */

/* Box morbido che racchiude tutta la sezione: stacco visivo dal resto. */
.postadelcuore-section {
	background: #f5efe5; /* crema chiarissimo: stacca dal bianco senza pesare */
	border: 1px solid var(--color-border-soft);
	border-radius: clamp(16px, 2vw, 28px);
	padding: clamp(28px, 4vw, 56px) clamp(20px, 3vw, 40px);
	margin-block: clamp(24px, 3vw, 40px);
}
/* Reset divisori automatici tra sezioni quando il box è in mezzo */
.site-content > .section.postadelcuore-section,
.site-content > .section.postadelcuore-section + .section {
	border-top: 0;
}
.postadelcuore-section > .section__head {
	margin-bottom: clamp(20px, 2.5vw, 32px);
}

/* Layout a 2 zone: Cristina (sticky) a sx, masonry articoli a dx.
   Su mobile diventa stack verticale (Cristina sopra, articoli sotto). */
.postadelcuore-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(24px, 3vw, 36px);
}
@media (min-width: 880px) {
	.postadelcuore-layout {
		grid-template-columns: minmax(240px, 1fr) minmax(0, 3fr);
		align-items: start;
	}
}

/* Zona Cristina: sticky durante lo scroll della sezione */
.postadelcuore-rubrica { position: relative; }
@media (min-width: 880px) {
	.postadelcuore-rubrica {
		position: sticky;
		top: clamp(16px, 3vw, 32px);
	}
}

/* Masonry via CSS multicol per gli articoli (NON contiene Cristina,
   quindi nessun conflitto con position:sticky) */
.postadelcuore-grid {
	column-count: 1;
	column-gap: clamp(20px, 2.4vw, 28px);
}
@media (min-width: 560px)  { .postadelcuore-grid { column-count: 2; } }
@media (min-width: 1100px) { .postadelcuore-grid { column-count: 3; } }

.postadelcuore-grid > * {
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	margin-bottom: clamp(20px, 2.4vw, 28px);
	display: inline-block;
	width: 100%;
}

/* Le card articolo: trasparenti, niente box, si fondono con lo sfondo crema */
.postadelcuore-grid > .card {
	background: transparent;
	border: 0;
	padding: 0;
}

/* Card della rubrica (primo box della griglia): unico elemento con il "vestito" */
.postadelcuore-card {
	background: var(--color-bg);
	border: 1px solid var(--color-border-soft);
	border-radius: var(--radius-md);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	text-align: center;
}
.postadelcuore-card__photo {
	padding: clamp(20px, 2.4vw, 32px) clamp(20px, 2.4vw, 32px) 0;
	display: flex;
	justify-content: center;
}
.postadelcuore-card__photo img,
.postadelcuore__photo {
	width: clamp(120px, 14vw, 160px);
	height: clamp(120px, 14vw, 160px);
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 2px 8px rgba(58, 36, 23, 0.12);
}
.postadelcuore-card__body {
	padding: clamp(18px, 2.2vw, 28px);
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1;
}
.postadelcuore-card__eyebrow {
	font-family: var(--font-body);
	font-size: var(--size-meta);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--color-accent);
	font-weight: 600;
	margin: 0 0 6px;
}
.postadelcuore-card__title {
	font-family: var(--font-display);
	font-size: clamp(1.2rem, 2.2vw, 1.55rem);
	font-weight: 700;
	color: var(--color-accent);
	margin: 0 0 12px;
	line-height: 1.2;
}
.postadelcuore-card__lede {
	font-size: 0.95rem;
	color: var(--color-fg);
	line-height: 1.5;
	margin: 0 0 18px;
}
.postadelcuore-card__cta {
	margin: auto 0 0;
}
.postadelcuore-card__cta .btn { display: inline-block; }

/* Sezione "Ultimi articoli" sotto l'hero */
.section--latest { padding-top: clamp(40px, 5vw, 64px); }

/* =========================================================================
   12. Print
   ========================================================================= */
@media print {
	.site-header__bar, .site-nav-bar, .sidebar, .site-footer { display: none; }
	body { color: #000; background: #fff; font-size: 12pt; }
	.post-content a::after { content: " (" attr(href) ")"; font-size: 80%; }
}

/* =========================================================================
   13. Chrome 2026 — restyle masthead + footer (override del look precedente)
   Stessa famiglia visiva della home sperimentale: Playfair, periwinkle, crema.
   ========================================================================= */

/* Masthead */
.site-header { background: var(--am-cream); border-bottom: 1px solid var(--color-border); }
.site-header__bar {
	max-width: var(--am-frame);
	margin-inline: auto;
	padding: 20px clamp(20px, 4vw, 56px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}
.site-brand { display: flex; align-items: center; gap: 16px; text-decoration: none; }
.site-brand:hover, .site-brand:focus { text-decoration: none; } /* niente sottolineatura sul logo all'hover */
.site-brand__mark { width: 72px; height: 72px; object-fit: contain; flex: 0 0 auto; }
.site-brand__text { display: flex; flex-direction: column; line-height: 1.02; }
.site-brand__name {
	font-family: var(--am-display);
	font-weight: 800;
	font-size: clamp(1.5rem, 2.6vw, 2.1rem);
	color: var(--color-fg);
	letter-spacing: -0.01em;
}
.site-brand__tag {
	font-family: var(--am-display);
	font-style: italic;
	font-size: 1rem;
	color: var(--am-peri-dp);
	margin-top: 2px;
}
.site-header__meta {
	text-align: right;
	font-size: 0.78rem;
	color: var(--color-fg-muted);
	display: flex;
	flex-direction: column;
	gap: 2px;
	white-space: nowrap;
}
.site-header__meta strong { color: var(--color-fg); font-weight: 700; }

/* Barra di navigazione (override del pill cream) */
.site-nav-bar {
	background: var(--am-cream);
	border-radius: 0;
	border-top: 1px solid var(--color-border-soft);
	padding: 6px clamp(20px, 4vw, 56px) 14px;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 28px;
	position: relative;
}
.site-nav { flex: 0 1 auto; }
.site-nav__list { gap: 0 4px; justify-content: center; }
.site-nav__list > li > a {
	font-family: var(--am-nav);
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--color-fg);
	padding: 16px 12px;
	border-radius: 0;
	border-bottom: 2px solid transparent;
}
.site-nav__list > li > a:hover,
.site-nav__list > .current-menu-item > a {
	color: var(--am-peri);
	border-bottom-color: var(--am-peri);
}

/* Megamenu nel look chrome */
@media (min-width: 769px) {
	.am-megamenu {
		width: min(var(--am-frame), calc(100vw - 64px));
		margin-top: 0;       /* attaccato alla barra: niente vuoto, niente immagine che traspare */
		padding: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
	}
	/* Pannello "a cassetto": agganciato sotto la barra del menu, angoli arrotondati solo in basso */
	.am-megamenu__inner {
		background: #fff;
		border: 1px solid var(--color-border);
		border-top: 0;
		border-radius: 0 0 var(--radius-md) var(--radius-md);
		box-shadow: 0 18px 34px rgba(32, 32, 29, 0.14);
		padding: 28px 36px;
	}
	/* Titoli colonna: niente sottolineatura, sfondino periwinkle morbido */
	.am-megamenu__col-title {
		font-family: var(--am-display);
		color: var(--am-peri-dp);
		border-bottom: 0;
		background: rgba(122, 125, 156, 0.10);
		border-radius: 8px;
		padding: 10px 14px;
		margin-bottom: 14px;
	}
	.am-megamenu__col-title:hover { color: var(--am-peri); background: rgba(122, 125, 156, 0.18); }
	.am-megamenu__col-title--cont { pointer-events: none; cursor: default; background: transparent; }
	.am-megamenu__list a { padding-inline: 14px; }
	/* 3 colonne fisse: Informazioni | Rubriche (1/2) | Rubriche (2/2) */
	.am-megamenu__inner { grid-template-columns: repeat(3, 1fr); }
	.am-megamenu__list a { font-family: var(--am-nav); }
	.am-megamenu__list a:hover { color: var(--am-peri); }
	.site-nav-bar.is-mega-open .site-nav__list > .menu-item-has-children > a { color: var(--am-peri); border-bottom-color: var(--am-peri); }
}

/* Search: compatto, riempimento morbido, niente bordino (no frou-frou) */
.site-search {
	flex: 0 1 200px;
	max-width: 220px;
	background: rgba(32, 32, 29, 0.055);
	border: 0;
	border-radius: 8px;
	padding: 2px 6px 2px 12px;
	transition: background 0.15s ease, box-shadow 0.15s ease;
}
.site-search:focus-within {
	background: rgba(32, 32, 29, 0.08);
	box-shadow: 0 0 0 2px rgba(122, 125, 156, 0.40);
}
.site-search input[type="search"] {
	font-family: var(--am-nav);
	font-size: 0.9rem;
	padding: 7px 4px;
	color: var(--color-fg);
}
.site-search input[type="search"]::placeholder { color: var(--color-fg-muted); opacity: 1; }
.site-search button { color: var(--color-fg-muted); padding: 6px; }
.site-search button:hover { color: var(--am-peri); }

/* Hamburger */
.menu-toggle {
	background: transparent;
	border: 1px solid var(--color-border);
	border-radius: 10px;
	width: 48px; height: 48px;
	padding: 0;
	margin: 0;
	display: none;
	align-items: center;
	justify-content: center;
}
.menu-toggle__box { display: inline-flex; flex-direction: column; gap: 5px; width: 22px; }
.menu-toggle__box span { display: block; height: 2px; width: 100%; background: var(--color-fg); border-radius: 2px; transition: transform 0.2s ease, opacity 0.2s ease; }
.menu-toggle[aria-expanded="true"] { background: transparent; color: inherit; }
.menu-toggle[aria-expanded="true"] .menu-toggle__box span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__box span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .menu-toggle__box span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Strumenti header (icone mobile) + ricerca a tutto schermo */
.site-header__tools { display: none; align-items: center; gap: 2px; } /* solo mobile: su desktop è vuoto e non deve occupare spazio */
.search-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	padding: 0;
	background: transparent;
	border: 0;
	color: var(--color-fg);
	cursor: pointer;
}
.search-toggle:hover { color: var(--am-peri); }
.site-fav--mobile { display: none; position: relative; }
.site-fav--in-menu { display: none; } /* solo su mobile diventa la prima voce del menu */
.site-fav--mobile:hover { background: transparent; color: var(--am-peri); }
.site-fav--mobile .site-fav__count {
	position: absolute;
	top: 4px; right: 2px;
	min-width: 16px; height: 16px;
	padding: 0 3px;
	font-size: 0.62rem;
}

.search-overlay {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(32, 32, 29, 0.94);
}
.search-overlay[hidden] { display: none; }
.search-overlay__close {
	position: absolute;
	top: 14px; right: 16px;
	width: 52px; height: 52px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	font-size: 2.4rem;
	line-height: 1;
	cursor: pointer;
}
.search-overlay__close:hover { color: var(--am-peri); }
.search-overlay__form {
	display: flex;
	align-items: center;
	gap: 14px;
	width: min(640px, 92%);
	border-bottom: 2px solid rgba(255, 255, 255, 0.45);
	padding-bottom: 12px;
}
.search-overlay__icon { color: rgba(255, 255, 255, 0.7); flex: 0 0 auto; }
.search-overlay__form input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	background: transparent;
	border: 0;
	outline: none;
	color: #fff;
	font-family: var(--am-display);
	font-size: clamp(1.6rem, 7vw, 2.6rem);
}
.search-overlay__form input[type="search"]::placeholder { color: rgba(255, 255, 255, 0.55); }
body.search-open { overflow: hidden; }

/* Header sticky che si comprime allo scroll, in modo fluido (desktop + tablet).
   Resta su DUE righe: cambia solo la dimensione (logo, payoff, padding), gradualmente,
   così la pagina sotto scivola dolcemente invece di saltare di scatto. */
@media (min-width: 600px) {
	.site-header {
		position: sticky;
		top: 0;
		z-index: 100;
		transition: box-shadow 0.28s ease;
	}
	.admin-bar .site-header { top: 46px; } /* sotto la barra admin di WP (solo da loggati) */

	/* Transizioni morbide sugli elementi che cambiano dimensione */
	.site-header__bar { transition: padding 0.28s ease; }
	.site-brand__mark { transition: width 0.28s ease, height 0.28s ease; }
	.site-brand__name { transition: font-size 0.28s ease; }
	.site-brand__tag  { max-height: 2em; overflow: hidden; transition: opacity 0.2s ease, max-height 0.28s ease, margin 0.28s ease; }
	.site-nav-bar     { transition: padding 0.28s ease; }

	.site-header.is-stuck { box-shadow: 0 6px 22px rgba(32, 32, 29, 0.10); }
	.site-header.is-stuck .site-header__bar { padding-top: 8px; padding-bottom: 8px; }
	.site-header.is-stuck .site-brand__mark { width: 48px; height: 48px; }
	.site-header.is-stuck .site-brand__name { font-size: 1.55rem; }
	.site-header.is-stuck .site-brand__tag  { max-height: 0; opacity: 0; margin-top: 0; } /* il payoff si chiude */
	.site-header.is-stuck .site-nav-bar     { padding-top: 0; padding-bottom: 8px; }
	/* Direttore/ISSN restano visibili anche in compatto: niente vuoto in alto a destra */
}
@media (min-width: 783px) { .admin-bar .site-header { top: 32px; } }
@media (prefers-reduced-motion: reduce) {
	.site-header, .site-header__bar, .site-brand__mark, .site-brand__name, .site-brand__tag, .site-nav-bar { transition: none; }
}

/* Responsive masthead */
@media (max-width: 960px) {
	.site-header__meta { display: none; }
	.site-header__tools { display: flex; }
	.menu-toggle { display: inline-flex; }
	.search-toggle { display: inline-flex; }
	.site-fav--mobile { display: none; } /* l'icona esterna sparisce: i preferiti vanno dentro al menu */
	.site-nav-bar .site-fav:not(.site-fav--in-menu) { display: none; } /* fav desktop nel nav-bar: nascosto su mobile */
	/* "Preferiti" come prima voce del menu mobile (sta dentro al <nav>, quindi si apre col panino) */
	.site-fav--in-menu { display: flex; align-items: center; gap: 10px; padding: 14px 4px; border-bottom: 1px solid var(--color-border-soft); font-weight: 700; border-radius: 0; }
	.site-fav--in-menu:hover { background: transparent; color: var(--am-peri); }
	.site-fav--in-menu .site-fav__label { display: inline; }
	.site-nav-bar .site-search { display: none; }                     /* niente campo ricerca grande: c'è la lente */
	.site-nav-bar { flex-direction: column; align-items: stretch; padding: 0 clamp(16px, 4vw, 24px) 12px; gap: 0; }
	.site-nav__list { flex-direction: column; }
	.site-nav__list > li > a { font-size: 0.9rem; border-bottom: 1px solid var(--color-border-soft); padding: 14px 4px; }
	.site-brand__mark { width: 56px; height: 56px; }
}

/* Telefoni: nascondi il payoff e rimpicciolisci il nome, così "Alberoni
   Magazine" sta su una riga. Su tablet (sopra i 600px) il payoff resta. */
@media (max-width: 600px) {
	.site-brand__tag { display: none; }
	.site-brand__name { font-size: clamp(1.3rem, 4.8vw, 1.7rem); line-height: 1.1; }
}

/* Footer chrome (banda scura rifinita) */
.site-footer {
	background: #20201d;
	color: #d8d3c8;
	padding: clamp(40px, 5vw, 64px) 0;
	margin-top: var(--gap-section);
}
.site-footer__inner {
	max-width: var(--am-frame);
	margin-inline: auto;
	padding-inline: clamp(20px, 4vw, 56px);
	display: flex;
	flex-direction: column;
	gap: 18px;
	align-items: center;
	text-align: center;
}
/* Brand footer: monogramma + testo sovrapposto (come nell'header) */
.site-footer__brand {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
}
.site-footer__mark { width: 60px; height: 60px; object-fit: contain; flex: 0 0 auto; }
.site-footer__brand-text { display: flex; flex-direction: column; line-height: 1.05; text-align: left; }
.site-footer__name { font-family: var(--am-display); font-weight: 800; font-size: 1.7rem; color: #fff; display: block; }
.site-footer__tag { font-family: var(--am-display); font-style: italic; color: #b9bbd0; display: block; margin-top: 1px; }
.site-footer__issn { font-size: 0.8rem; color: #9a948a; margin: 0; }
.site-footer__nav { display: flex; gap: 24px; flex-wrap: wrap; justify-content: center; }
.site-footer__nav a { font-family: var(--am-nav); font-weight: 700; font-size: 0.85rem; letter-spacing: 0.04em; text-transform: uppercase; color: #d8d3c8; }
.site-footer__nav a:hover { color: #fff; }
.site-footer__copy { font-size: 0.8rem; color: #8a847a; margin: 0; }
