/*
 * Accademia dei Camafili: personalizzazione del tema Seoai (ThemeForest).
 *
 * Il CSS del tema (custom.css e gli altri) resta com'è, per poterlo
 * aggiornare; qui, caricato dopo, solo le differenze:
 *  - colori: il verde di camafili.com al posto del viola, fondi scuri verde
 *    quasi nero al posto del blu notte;
 *  - carattere Sora ospitato sul sito (niente richieste a Google Fonts);
 *  - i componenti del sito che il tema non ha (lingue, newsletter, audio,
 *    gallerie, avvisi, testi degli articoli).
 */

@font-face {
	font-family: "Sora";
	font-style: normal;
	font-weight: 100 800;
	font-display: swap;
	src: url("../fonts/sora-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Sora";
	font-style: normal;
	font-weight: 100 800;
	font-display: swap;
	src: url("../fonts/sora-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--primary-color: #1C2621;        /* verde quasi nero (era #101828) */
	--accent-color: #507A5B;         /* verde di camafili.com (#558261) appena più scuro: testo bianco leggibile (contrasto 4,9) */
	--divider-color: color-mix(in srgb, var(--primary-color) 10%, transparent);
	--verde-chiaro: #76A081;
	--verde-scuro: #3D5844;
	/* Carattere dei titoli: di solito quello del testo (si cambia da Sito → Colori e caratteri). */
	--font-titoli: var(--default-font);
}
h1, h2, h3, h4, h5, h6 { font-family: var(--font-titoli); }

/* --- Intestazione ------------------------------------------------------ */

/* Logo elastico: fino a 300 px quando c'è spazio, si stringe (non sotto i 190)
   se il menu ne ha bisogno; il menu non va mai a capo. */
.navbar-brand { flex: 0 1 300px; min-width: 190px; }
.navbar-brand img { display: block; width: 100%; height: auto; max-width: 300px; }
@media (min-width: 992px) and (max-width: 1199px) {
	/* Portatili piccoli: menu più compatto per lasciare al logo almeno 180 px. */
	.navbar-brand { min-width: 180px; }
	.main-menu #menu > li { margin: 0 1px; }
	.main-menu #menu > li > a { padding: 12px 4px !important; font-size: 14px; }
	.main-menu .nav-menu-wrapper { margin: 0 4px; }
	.main-menu #menu > li > a { padding: 12px 3px !important; font-size: 13.5px; }
	.pulsante-ricerca { width: 34px; height: 34px; margin-right: 4px; }
	.header-lingue { margin-right: 0; }
	.header-lingue a { padding: 6px 8px; }
}
/* Schermi grandi con il pulsante del podcast: voci un filo più vicine per lasciare spazio al logo. */
@media (min-width: 1400px) { .main-menu #menu > li { margin: 0 2px; } }
@media (max-width: 991px) { .navbar-brand { flex-basis: 250px; min-width: 0; max-width: calc(100% - 60px); } }
.footer-logo img { max-width: 240px; height: auto; }
.header-lingue { display: flex; align-items: center; gap: 4px; margin-right: 14px; }
.header-lingue a { color: var(--white-color); font-size: 14px; font-weight: 600; padding: 6px 10px; border-radius: 100px; border: 1px solid var(--dark-divider-color); transition: background .3s; }
.header-lingue a:hover { background: var(--accent-color); color: var(--white-color); }
.slicknav_menu .header-lingue { margin: 10px 20px 16px; }

/* --- Avvisi (anteprima di bozze e lingue in preparazione) --------------- */

.avviso-anteprima-sito.avviso-prova-colori { position: fixed; top: auto; bottom: 16px; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 32px); border: 1px solid #ffe69c; border-radius: 14px; box-shadow: 0 8px 30px rgba(0, 0, 0, .25); display: flex; flex-wrap: wrap; gap: 6px 14px; justify-content: center; align-items: center; }
.avviso-prova-colori a { color: #664d03; text-decoration: underline; font-weight: 600; }
.avviso-prova-colori form { margin: 0; }
.avviso-prova-colori button { border: 1px solid #664d03; background: transparent; color: #664d03; border-radius: 100px; padding: 2px 12px; font-size: 13px; font-weight: 600; }
.avviso-anteprima-sito { position: sticky; top: 0; z-index: 10001; background: #fff3cd; color: #664d03; border-bottom: 1px solid #ffe69c; padding: 8px 16px; text-align: center; font-size: 14px; }

/* --- Testata delle pagine interne ---------------------------------------- */

/* Immagine di testata della pagina (pannello → Pagine → Immagine di testata): al posto dello sfondo del tema, con una velatura per leggere il titolo. */
.page-header--foto { background-image: var(--foto-testata); background-position: var(--foto-testata-posizione, center); }
.page-header--foto::after { content: ''; position: absolute; inset: 0; background: rgba(0, 0, 0, .45); }
.page-header-box .page-header-sottotitolo { color: var(--white-color); opacity: .85; max-width: 760px; margin: 14px auto 0; font-size: 18px; }
.post-single-meta .breadcrumb li + li::before { content: "·"; margin: 0 10px; color: var(--white-color); opacity: .6; }

/* --- Testi di pagine e articoli (dal pannello) ------------------------- */

.testo-sito { color: var(--text-color); font-size: 17px; line-height: 1.75; }
.testo-sito h2, .testo-sito h3, .testo-sito h4 { color: var(--primary-color); margin: 1.6em 0 .6em; line-height: 1.3; }
.testo-sito h2 { font-size: 30px; } .testo-sito h3 { font-size: 24px; } .testo-sito h4 { font-size: 20px; }
.testo-sito p { margin-bottom: 1.1em; }
.testo-sito a { color: var(--accent-color); text-decoration: underline; text-underline-offset: 3px; }
.testo-sito ul, .testo-sito ol { margin: 0 0 1.2em; padding-left: 1.3em; }
.testo-sito li { margin-bottom: .4em; }
.testo-sito blockquote, .citazione-pagina {
	background: var(--bg-color); border-left: 4px solid var(--accent-color); border-radius: 0 20px 20px 0;
	padding: 26px 30px; margin: 30px 0; font-size: 20px; font-weight: 500; color: var(--primary-color); font-style: normal; font-family: inherit;
}
.testo-sito blockquote p:last-child { margin-bottom: 0; }
.testo-sito img { max-width: 100%; height: auto; border-radius: 16px; }
.testo-sito::after { content: ""; display: table; clear: both; }

/* --- Contenuti dell'archivio ------------------------------------------- */

.contenuto-meta { display: flex; flex-wrap: wrap; gap: 8px 10px; margin-bottom: 24px; }
.pastiglia-sito { display: inline-block; padding: 6px 14px; border-radius: 100px; background: var(--bg-color); color: var(--primary-color); font-size: 14px; font-weight: 500; }
a.pastiglia-sito:hover { background: var(--accent-color); color: var(--white-color); }
.contenuto-sottotitolo { font-size: 20px; color: var(--primary-color); font-weight: 500; margin-bottom: 20px; }
.lettore-audio { background: var(--primary-color); border-radius: 20px; padding: 20px 24px; margin: 0 0 30px; color: var(--white-color); }
.lettore-audio p { color: var(--white-color); margin: 0 0 10px; font-weight: 600; }
.lettore-audio audio { width: 100%; }
.capitoli-audio { list-style: none; padding: 0; margin: 0 0 30px; }
.capitoli-audio li { padding: 14px 0; border-bottom: 1px solid var(--divider-color); }
.capitoli-audio audio { width: 100%; margin-top: 8px; }
.video-sito { position: relative; aspect-ratio: 16 / 9; margin: 0 0 30px; border-radius: 20px; overflow: hidden; }
.video-sito iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.link-contenuto { display: flex; flex-wrap: wrap; gap: 10px; margin: 10px 0 30px; }
.documenti-contenuto { list-style: none; padding: 0; margin: 0 0 30px; }
.documenti-contenuto li { padding: 12px 0; border-bottom: 1px solid var(--divider-color); }
.documenti-contenuto a { color: var(--primary-color); font-weight: 500; }
.documenti-contenuto i { color: var(--accent-color); margin-right: 8px; }
.filtri-sito { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 40px; }
.filtri-sito a { padding: 8px 18px; border-radius: 100px; border: 1px solid var(--divider-color); color: var(--primary-color); font-size: 15px; }
.filtri-sito a[aria-current], .filtri-sito a:hover { background: var(--accent-color); border-color: var(--accent-color); color: var(--white-color); }
.post-item .post-item-meta { font-size: 14px; color: var(--text-color); margin-bottom: 8px; }
.post-item .post-item-content p { margin: 10px 0 0; }
.post-featured-image img { aspect-ratio: 3 / 2; object-fit: cover; }
.autori-contenuto { display: flex; flex-wrap: wrap; gap: 20px; margin: 40px 0 0; padding-top: 30px; border-top: 1px solid var(--divider-color); }
.autore-contenuto { display: flex; gap: 14px; align-items: center; }
.autore-contenuto img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.autore-contenuto h3 { font-size: 18px; margin: 0; }
.correlati-sito { padding-top: 60px; }

/* --- Gallerie ---------------------------------------------------------- */

.galleria-sezione { margin: 40px 0; }
.galleria-sezione > h2 { font-size: 30px; margin-bottom: 10px; }
.galleria { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin-top: 20px; }
.galleria figure { margin: 0; }
.galleria img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 16px; display: block; }
.galleria figcaption { font-size: 14px; color: var(--text-color); margin-top: 6px; }

/* --- Newsletter (piè di pagina e pagine) ------------------------------- */

.footer-newsletter-form .modulo-newsletter form { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.footer-newsletter-form .modulo-newsletter input[type=text] { display: none; }
.footer-newsletter-form .modulo-newsletter input[type=email] { grid-column: 1; background: var(--dark-divider-color); border: none; border-radius: 10px; color: var(--white-color); padding: 16px 20px; width: 100%; }
.footer-newsletter-form .modulo-newsletter input[type=email]::placeholder { color: var(--white-color); opacity: .7; }
.footer-newsletter-form .modulo-newsletter button { grid-column: 2; grid-row: 1; background: var(--accent-color); color: var(--white-color); border: none; border-radius: 10px; padding: 0 22px; font-weight: 600; transition: background .3s; }
.footer-newsletter-form .modulo-newsletter button:hover { background: var(--verde-scuro); }
.footer-newsletter-form .newsletter-consenso { grid-column: 1 / -1; color: var(--white-color); opacity: .85; font-size: 13px; display: flex; gap: 8px; align-items: flex-start; }
.footer-newsletter-form .newsletter-consenso a { color: var(--white-color); text-decoration: underline; }
.footer-newsletter-form .newsletter-esito { color: var(--white-color); font-weight: 600; margin: 0; }
.footer-newsletter-form .newsletter-errore { color: #ffb4a8; }

.footer-copyright-text .link-legali { margin-top: 6px; }
.footer-copyright-text .link-legali a { color: var(--white-color); opacity: .8; margin: 0 8px; font-size: 14px; }
.footer-copyright-text .link-legali a:hover { opacity: 1; }

/* --- Home ------------------------------------------------------------- */

.hero-slider-image img { width: 100%; height: 100%; object-fit: cover; }
.hero.hero-slider-layout::before { background: linear-gradient(180deg, color-mix(in srgb, var(--primary-color) 75%, transparent) 0%, color-mix(in srgb, var(--primary-color) 55%, transparent) 60%, color-mix(in srgb, var(--primary-color) 85%, transparent) 100%); }
.hero-sub-heading .hero-satisfy-client-content p { margin: 0; }
.home-episodio { display: flex; flex-direction: column; justify-content: space-between; height: 100%; }
.home-episodio .impact-highlighted-item-image img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 20px; }
.home-episodio audio { width: 100%; margin-top: 16px; }
.home-episodi-precedenti .impact-info-item { display: block; }
.home-episodi-precedenti .impact-info-item h3 a { color: inherit; }
.about-us-image img { width: 100%; aspect-ratio: 606 / 550; object-fit: cover; }
.project-item-image img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.service-item .icon-box i { font-size: 44px; color: var(--accent-color); }
.citazione-home { font-size: 20px; line-height: 1.6; }

/* --- Contatti --------------------------------------------------------- */

.modulo-contatti-sito .form-control { border-radius: 10px; }
.modulo-contatti-sito .consenso { font-size: 14px; display: flex; gap: 8px; align-items: flex-start; margin-bottom: 12px; }
.modulo-contatti-sito .consenso a { color: var(--accent-color); text-decoration: underline; }

/* --- Ritocchi al tema dopo la prima prova ------------------------------ */

/* Menu: tante voci, restano su una riga. */
.main-menu ul li a { white-space: nowrap; padding: 12px 8px !important; font-size: 15px; }
.header-btn .btn-default { white-space: nowrap; }
@media (max-width: 1399px) { .main-menu ul li a { font-size: 14px; padding: 12px 6px !important; } .header-btn { display: none; } }
.header-lingue a { white-space: nowrap; }

/* In italiano e spagnolo niente iniziali maiuscole su pulsanti e menu. */
.btn-default, .readmore-btn, .main-menu ul li a, .footer-links ul li a { text-transform: none; }

/* Titolo dell'apertura: frasi lunghe. */
.hero-content-box .section-title h1 { font-size: clamp(38px, 4.6vw, 62px); line-height: 1.12; }

/* Link nei riquadri chiari del tema (il blu di Bootstrap). */
.about-review-box a, .section-footer-border-list a { color: var(--primary-color); }
.about-review-box a:hover, .section-footer-border-list a:hover { color: var(--accent-color); }
.home-episodio h2 { font-size: 30px; }
.home-episodio .impact-highlighted-item-image { max-width: 220px; }

/* Newsletter nel piè di pagina: email e pulsante sulla stessa riga, consenso sotto. */
.footer-newsletter-form .modulo-newsletter form { align-items: stretch; }
.footer-newsletter-form .modulo-newsletter button { min-height: 52px; }
.footer-newsletter-form .modulo-newsletter .newsletter-consenso { display: block; }
.footer-newsletter-form .modulo-newsletter .newsletter-consenso input { margin: 0 6px 0 0; vertical-align: -2px; }

/* Voce di menu della pagina aperta: verde chiaro, leggibile sul fondo scuro. */
.main-menu ul li a.active, .main-menu ul li a:hover, .main-menu ul li a:focus { color: var(--verde-chiaro) !important; }
.page-header-box ol li, .page-header-box ol li a { text-transform: none; }

/* Episodi e audiolibri: copertina quadrata accanto al lettore. */
.ascolto-con-copertina { display: flex; gap: 24px; align-items: stretch; margin-bottom: 30px; }
.ascolto-con-copertina > figure { flex: 0 0 220px; margin: 0; }
.ascolto-con-copertina > figure img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 20px; display: block; }
.ascolto-con-copertina .lettore-audio { flex: 1; margin: 0; display: flex; flex-direction: column; justify-content: center; }
@media (max-width: 767px) { .ascolto-con-copertina { flex-direction: column; } .ascolto-con-copertina > figure { flex-basis: auto; max-width: 260px; } }

/* Lingue dentro il menu da telefono. */
.slicknav_menu .voce-lingue a { display: inline-block !important; padding: 8px 12px !important; }
@media (min-width: 992px) { #menu .voce-lingue { display: none; } }
/* La barra del tema ha una larghezza massima: con sette voci, spaziature strette a ogni larghezza. */
.main-menu ul li a { padding: 12px 5px !important; font-size: 14.5px; }
.main-menu ul li { margin: 0 4px; }
.header-lingue { margin-right: 8px; }
.header-btn .btn-default { padding: 16px 55px 16px 18px; font-size: 15px; }
/* Al passaggio la freccia va a sinistra: stessi margini scambiati, così il pulsante
   non cambia larghezza e logo e menu non si muovono. */
.header-btn .btn-default:hover { padding: 16px 18px 16px 55px; }
.header-btn { flex-shrink: 0; }

/* Citazioni senza foto: la scheda si adatta al testo, citazione in alto. */
.testimonial-item.senza-foto { min-height: 0; }
.testimonial-item.senza-foto .testimonial-item-body { align-content: start; background: var(--dark-divider-color); }
.testimonial-item.senza-foto .citazione-home::before { content: "\201C"; display: block; font-size: 64px; line-height: .6; color: var(--verde-chiaro); margin-bottom: 14px; }

/* Apertura: il testo di ogni slide, che cambia con la foto. */
.hero-content-box .section-title h2.titolo-slide { color: var(--white-color); font-size: clamp(38px, 4.6vw, 62px); line-height: 1.12; margin-bottom: 0; }
.hero-content-box .section-title h2.titolo-slide span { position: relative; line-height: 1em; display: inline-block; color: var(--white-color); padding: 6px 13px 4px; z-index: 0; }
.hero-content-box .section-title h2.titolo-slide span::before { content: ''; position: absolute; inset: 0; background: var(--accent-color); border-radius: 20px; transform: rotate(-2.46deg); z-index: -1; }
.hero-testo-slide.attiva { animation: testo-slide .8s ease both; }
@keyframes testo-slide { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .hero-testo-slide.attiva { animation: none; } }

/* --- Sezioni delle pagine (config/sezioni.php) ------------------------- */

.sezione-video, .sezione-numeri, .sezione-citazione, .sezione-testo { padding: 100px 0; }
.sezione-testo + .sezione-testo, .page-single-post + .sezione-testo { padding-top: 0; }
@media (max-width: 991px) { .sezione-video, .sezione-numeri, .sezione-citazione, .sezione-testo { padding: 60px 0; } }

/* Punti chiave: riquadri di altezza libera (il tema li fa alti per le foto). */
.approach-item.riquadro-punto { min-height: 0; height: 100%; display: flex; flex-direction: column; justify-content: space-between; gap: 30px; }
.approach-item.riquadro-punto .approach-item-title h2 { font-size: 46px; }

/* Persone: la biografia in una finestra. */
.team-item-image figure img { aspect-ratio: 1; object-fit: cover; width: 100%; }
.finestra-persona .modal-content { border-radius: 20px; border: none; }
.finestra-persona .modal-header { padding: 24px 30px; border-color: var(--divider-color); align-items: flex-start; }
.finestra-persona .modal-title { font-size: 28px; }
.finestra-persona .modal-body { padding: 30px; }
.finestra-persona .foto-persona { width: 180px; aspect-ratio: 1; object-fit: cover; border-radius: 16px; flex: 0 0 180px; }

/* Video: copertina con il pulsante del tema, YouTube solo al clic. */
.video-sezione { position: relative; aspect-ratio: 16 / 9; border-radius: 30px; overflow: hidden; background: var(--primary-color); }
.video-sezione img, .video-sezione iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.video-sezione::after { content: ''; position: absolute; inset: 0; background: color-mix(in srgb, var(--primary-color) 35%, transparent); pointer-events: none; }
.video-sezione:has(iframe)::after { display: none; }
.video-sezione .video-play-button { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 2; background: none; border: 0; padding: 0; }
.video-sezione .video-play-button .bg-effect { display: flex; align-items: center; justify-content: center; width: 90px; height: 90px; border-radius: 50%; background: var(--accent-color); color: var(--white-color); font-size: 26px; box-shadow: 0 0 0 12px rgba(255, 255, 255, .15); transition: transform .3s; }
.video-sezione .video-play-button:hover .bg-effect { transform: scale(1.08); }

/* Numeri. */
.numero-sezione { text-align: center; padding: 20px 10px; }
.numero-sezione h2 { font-size: 56px; color: var(--accent-color); margin-bottom: 6px; }
.numero-sezione p { margin: 0; color: var(--primary-color); font-weight: 500; }

/* Citazione in grande. */
.citazione-grande { max-width: 900px; margin: 0 auto; text-align: center; }
.citazione-grande blockquote { margin: 0; }
.citazione-grande blockquote p { font-size: clamp(24px, 3vw, 36px); line-height: 1.35; font-weight: 500; color: var(--primary-color); }
.citazione-grande blockquote p::before { content: "\201C"; display: block; font-size: 90px; line-height: .6; color: var(--verde-chiaro); margin-bottom: 20px; }
.citazione-grande figcaption { margin-top: 24px; color: var(--text-color); }
.citazione-grande figcaption strong { color: var(--primary-color); margin-right: 8px; }

.page-header-box ol li.breadcrumb-item, .page-header-box ol li.breadcrumb-item a { text-transform: none; }

/* Barra fissa scorrendo (header "active-sticky-header" del tema, function.js):
   quando riappare fissa in alto è più bassa e il logo si riduce. */
header.main-header .header-sticky { transition: transform .3s ease-in-out, background-color .3s; }
header.main-header .header-sticky.active .navbar { padding: 8px 0; }
header.main-header .header-sticky.active .navbar-brand { flex-basis: 210px; }
header.main-header .header-sticky.active .navbar-brand img { max-width: 210px; transition: max-width .3s; }
header.main-header .header-sticky.active .header-btn .btn-default { padding-top: 12px; padding-bottom: 12px; }
@media (max-width: 991px) {
	header.main-header .header-sticky.active { top: 0; left: 0; right: 0; }
	header.main-header .header-sticky.active .navbar-brand { flex-basis: 190px; }
	/* Menu del telefono aperto con la barra fissa: scorre dentro lo schermo. */
	header.main-header .header-sticky.active .slicknav_nav { max-height: calc(100vh - 80px); overflow-y: auto; }
}
@media (prefers-reduced-motion: reduce) { header.main-header .header-sticky { transition: none; } }

/* --- Ricerca ------------------------------------------------------------ */

.pulsante-ricerca { flex-shrink: 0; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--dark-divider-color); background: transparent; color: var(--white-color); display: inline-flex; align-items: center; justify-content: center; margin-right: 6px; transition: background .3s; }
.pulsante-ricerca:hover, .pulsante-ricerca[aria-expanded="true"] { background: var(--accent-color); }
@media (max-width: 991px) { .pulsante-ricerca.d-lg-none { margin: 0 10px 0 auto; } }
.ricerca-testata { position: absolute; top: calc(100% + 10px); left: 0; right: 0; background: var(--primary-color); border: 1px solid var(--dark-divider-color); border-radius: 30px; padding: 16px; box-shadow: 0 18px 40px rgba(0, 0, 0, .25); z-index: 5; }
@media (max-width: 991px) { .ricerca-testata { border-radius: 0 0 20px 20px; top: 100%; } }
.modulo-ricerca { display: flex; gap: 10px; }
.modulo-ricerca input { flex: 1; min-width: 0; border-radius: 100px; padding: 12px 22px; border: 1px solid var(--divider-color); background: var(--white-color); color: var(--primary-color); font-size: 16px; }
.modulo-ricerca input:focus { outline: 3px solid var(--verde-chiaro); outline-offset: 1px; }
.modulo-ricerca .btn-default { flex-shrink: 0; }
.modulo-ricerca.grande input { padding: 16px 24px; font-size: 17px; }
@media (max-width: 575px) { .modulo-ricerca .btn-default { padding-right: 18px; } .modulo-ricerca .btn-default::before { display: none; } }
.ricerca-filtri { display: flex; flex-wrap: wrap; gap: 8px; }
.ricerca-filtri a { padding: 8px 16px; border-radius: 100px; border: 1px solid var(--divider-color); color: var(--primary-color); font-weight: 600; font-size: 15px; }
.ricerca-filtri a span { color: var(--text-color); font-weight: 400; margin-left: 4px; }
.ricerca-filtri a:hover, .ricerca-filtri a.attivo { background: var(--accent-color); border-color: var(--accent-color); color: var(--white-color); }
.ricerca-filtri a.attivo span, .ricerca-filtri a:hover span { color: var(--white-color); }
.ricerca-pagine { list-style: none; padding: 0; }
.ricerca-pagine li { padding: 18px 0; border-bottom: 1px solid var(--divider-color); }
.ricerca-pagine li > a { font-size: 20px; font-weight: 600; color: var(--primary-color); }
.ricerca-pagine li > a:hover { color: var(--accent-color); }
.ricerca-pagine p { margin: 6px 0 0; }
.page-blog mark, .ricerca-pagine mark { background: color-mix(in srgb, var(--accent-color) 14%, transparent); color: var(--primary-color); font-weight: 600; padding: 0 2px; border-radius: 3px; }
.non-trovata-ricerca { max-width: 620px; margin-left: auto; margin-right: auto; }
.non-trovata-ultimi { margin-top: 80px; }

/* --- Accessibilità ------------------------------------------------------ */

/* "Vai al contenuto": il primo tasto Tab lo mostra, per saltare il menu. */
.salta-al-contenuto { position: absolute; left: 16px; top: -100px; z-index: 10000; background: var(--white-color); color: var(--primary-color); padding: 12px 20px; border-radius: 100px; font-weight: 600; box-shadow: 0 6px 20px rgba(0,0,0,.25); }
.salta-al-contenuto:focus { top: 16px; }
/* Da tastiera l'elemento attivo si vede sempre (il tema toglie il contorno). */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--verde-chiaro) !important; outline-offset: 2px; }
.dark-section a:focus-visible, .main-header a:focus-visible, .main-header button:focus-visible { outline-color: var(--white-color) !important; }
main:focus { outline: none; }
/* Contatti: titoli h2 (prima erano h3 subito dopo l'h1) con l'aspetto di prima. */
.contact-info-item-content h2 { font-size: 20px; color: var(--white-color); }
.contact-form-content h2 { font-size: 20px; }
@media (max-width: 767px) { .contact-info-item-content h2, .contact-form-content h2 { font-size: 18px; } }
/* Link dentro i riquadri scuri (testo della pagina Contatti...): verde chiaro, leggibile sul fondo. */
.contact-info-box a, .dark-section .testo-sito a { color: var(--verde-chiaro); }
.contact-info-box a:hover, .dark-section .testo-sito a:hover { color: var(--white-color); }
/* Contatti: immagine di fondo del riquadro scuro, scelta nella pagina (Impostazioni del
   modello: sfondo_riquadro, sfondo_resa, sfondo_intensita) e passata con le variabili
   --sfondo-riquadro e --sfondo-intensita. "Disegno" (tratto nero su bianco): invertito e
   fuso in "screen" diventa un tratto chiaro sul colore del riquadro, che resta quello
   della palette (var(--primary-color)). "Foto": così com'è, solo attenuata. */
.contact-info-box.con-sfondo { position: relative; overflow: hidden; isolation: isolate; }
.contact-info-box.con-sfondo::before {
	content: ""; position: absolute; z-index: -1; pointer-events: none;
	top: 20px; right: -40px; bottom: 20px; width: 75%;
	background: var(--sfondo-riquadro) no-repeat right center / contain;
	filter: invert(1); mix-blend-mode: screen; opacity: var(--sfondo-intensita, .3);
}
.contact-info-box.con-sfondo.sfondo-foto::before { inset: 0; width: auto; background-size: cover; background-position: center; filter: none; mix-blend-mode: normal; }
@media (max-width: 767px) {
	.contact-info-box.con-sfondo:not(.sfondo-foto)::before { width: 60%; right: -10px; }
	.contact-info-box.con-sfondo::before { opacity: calc(var(--sfondo-intensita, .3) * .8); }
}

/* --- Informativa privacy e cookie policy (finestra e pagina) ------------ */

.finestra-informativa .modal-content { border-radius: 20px; border: none; }
.finestra-informativa .modal-header { padding: 20px 28px; border-color: var(--divider-color); gap: 12px; }
.finestra-informativa .modal-title { font-size: 24px; margin-right: auto; }
.finestra-informativa .apri-scheda { color: var(--text-color); padding: 6px; }
.finestra-informativa .apri-scheda:hover { color: var(--accent-color); }
.finestra-informativa .btn-close { margin: 0; }
.finestra-informativa .modal-body { padding: 24px 28px 32px; }
@media (max-width: 767px) { .finestra-informativa .modal-content { border-radius: 0; } .finestra-informativa .modal-body { padding: 20px; } }
.caricamento-informativa { color: var(--text-color); padding: 40px 0; text-align: center; }
.testo-informativa { color: var(--text-color); font-size: 16px; line-height: 1.7; text-align: left; }
.testo-informativa h2 { font-size: 22px; margin: 28px 0 12px; line-height: 1.3; }
.testo-informativa h2:first-child { margin-top: 0; }
.testo-informativa b, .testo-informativa strong { color: var(--primary-color); }
.testo-informativa img { max-height: 36px; width: auto; vertical-align: middle; margin: 0 10px 6px 0; }
.testo-informativa ul { padding-left: 20px; margin: 8px 0 16px; }
.testo-informativa a { color: var(--accent-color); text-decoration: underline; word-break: break-word; }
.testo-informativa > div > div { margin-bottom: 14px; }
/* Informative di Acconsento impaginate (Informative::struttura): intestazione, voci con icona, crediti. */
.testo-informativa .informativa__testa { margin-bottom: 28px; }
.testo-informativa .informativa__titolo { font-size: 22px; line-height: 1.3; margin: 0 0 14px; }
.testo-informativa .informativa__voce { display: flex; gap: 20px; padding: 24px 0; border-top: 1px solid rgba(0, 0, 0, .09); }
.testo-informativa .informativa__voce-titolo { margin: 0 0 8px; font-size: 15px; letter-spacing: .04em; color: var(--primary-color); display: flex; align-items: center; min-height: 56px; }
.testo-informativa .informativa__icona { flex: 0 0 56px; width: 56px; height: 56px; max-height: none; object-fit: contain; padding: 11px; margin: 0; border-radius: 14px; background: color-mix(in srgb, var(--primary-color) 9%, #fff); }
.testo-informativa .informativa__voce-corpo { flex: 1 1 auto; min-width: 0; }
.testo-informativa .informativa__voce-testo p { margin-bottom: 1em; }
.testo-informativa .informativa__voce-testo p:last-child, .testo-informativa .informativa__voce-testo ul:last-child { margin-bottom: 0; }
.testo-informativa ul, .testo-informativa ol { list-style: disc; padding-left: 1.4em; margin: 0 0 1em; }
.testo-informativa ol { list-style: decimal; }
.testo-informativa li { margin-bottom: .4em; }
.testo-informativa .informativa__crediti { font-size: 13px; opacity: .75; margin-top: 24px; }
@media (max-width: 575.98px) { .testo-informativa .informativa__voce { gap: 14px; } .testo-informativa .informativa__icona { flex-basis: 44px; width: 44px; height: 44px; padding: 8px; border-radius: 10px; } .testo-informativa .informativa__voce-titolo { min-height: 44px; } }
.tabella-cookie { width: 100%; font-size: 14px; border-collapse: collapse; margin: 8px 0 20px; }
.tabella-cookie th { background: var(--secondary-color, #F6F8F7); color: var(--primary-color); text-align: left; padding: 10px 12px; }
.tabella-cookie td { padding: 10px 12px; border-top: 1px solid var(--divider-color); vertical-align: top; }
.tabella-cookie td:last-child { min-width: 260px; }
.fonte-informativa { font-size: 13px; color: var(--text-color); margin-top: 24px; }
.tabella-cookie code { color: var(--primary-color); font-size: 13px; word-break: break-all; }

/* --- Apertura: controlli dello scorrimento delle slide ------------------
   Pillola semitrasparente come la barra in alto, sotto il pulsante della
   slide: frecce, un trattino per slide (quello attivo si riempie nel tempo
   della slide), pausa. Solo con più di una slide (sito/home/hero). */
.hero-controlli { position: absolute; z-index: 3; display: inline-flex; align-items: center; gap: 4px; padding: 5px; border-radius: 100px; background: var(--dark-divider-color); border: 1px solid var(--dark-divider-color); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
.hero-controllo { width: 36px; height: 36px; border-radius: 50%; border: 0; background: transparent; color: var(--white-color); display: inline-flex; align-items: center; justify-content: center; font-size: 14px; transition: background .3s; }
.hero-controllo:hover { background: var(--accent-color); }
.hero-pausa { margin-left: 2px; border: 1px solid var(--dark-divider-color); }
.hero-punti { display: flex; align-items: center; gap: 6px; padding: 0 6px; }
.hero-punto { position: relative; width: 30px; height: 24px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.hero-punto span { position: absolute; left: 0; right: 0; top: 50%; height: 3px; margin-top: -1.5px; border-radius: 3px; background: rgba(255, 255, 255, .35); overflow: hidden; transition: background .3s; }
.hero-punto:hover span { background: rgba(255, 255, 255, .6); }
.hero-punto span::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 0; background: var(--white-color); }
.hero-punto.attivo span::after { animation: hero-riempi var(--hero-durata, 5s) linear forwards; }
.hero-controlli.in-pausa .hero-punto.attivo span::after { animation: none; width: 100%; }
@keyframes hero-riempi { from { width: 0; } to { width: 100%; } }
.hero-controlli button:focus-visible { outline: 2px solid var(--white-color) !important; outline-offset: 2px; }
/* In basso: centrati sotto i numeri dell'archivio (l'apertura si allunga quanto serve). */
.hero.con-controlli { padding-bottom: 104px; }
.hero-controlli--basso { left: 50%; bottom: 32px; transform: translateX(-50%); }
/* A destra: colonna verticale a metà altezza, trattini verticali. Sotto i 1200 px lo spazio laterale non basta: in basso. */
@media (min-width: 1200px) {
	.hero.con-controlli:has(.hero-controlli--lato) { padding-bottom: 70px; }
	.hero-controlli--lato { flex-direction: column; left: auto; right: 32px; top: 50%; bottom: auto; transform: translateY(-50%); }
	.hero-controlli--lato .hero-punti { flex-direction: column; padding: 6px 0; }
	.hero-controlli--lato .hero-punto { width: 24px; height: 30px; }
	.hero-controlli--lato .hero-punto span { left: 50%; right: auto; top: 0; bottom: 0; width: 3px; height: auto; margin: 0 0 0 -1.5px; }
	.hero-controlli--lato .hero-punto span::after { right: 0; bottom: auto; width: auto; height: 0; }
	.hero-controlli--lato .hero-punto.attivo span::after { animation-name: hero-riempi-alto; }
	.hero-controlli--lato.in-pausa .hero-punto.attivo span::after { height: 100%; }
	.hero-controlli--lato [data-hero="prec"] i { transform: rotate(90deg); }
	.hero-controlli--lato [data-hero="succ"] i { transform: rotate(90deg); }
	.hero-controlli--lato .hero-pausa { margin: 2px 0 0; }
}
@media (max-width: 1199px) { .hero-controlli--lato { left: 50%; bottom: 32px; transform: translateX(-50%); } }
@keyframes hero-riempi-alto { from { height: 0; } to { height: 100%; } }
@media (max-width: 767px) { .hero.con-controlli { padding-bottom: 88px; } .hero-controlli--basso, .hero-controlli--lato { bottom: 24px; } .hero-controllo { width: 34px; height: 34px; } .hero-punto { width: 24px; } }
@media (prefers-reduced-motion: reduce) { .hero-punto.attivo span::after { animation: none; width: 100%; } .hero-controlli--lato .hero-punto.attivo span::after { height: 100%; } }

/* Home, L'Accademia: il riquadro dell'ultimo episodio resta contenuto sulla foto
   (il tema non gli dà una larghezza: con un titolo lungo arrivava al bordo destro). */
.about-review-box { max-width: min(380px, calc(100% - 40px)); padding: 24px 26px; }
.about-review-box-body h3 { line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 575px) { .about-review-box { left: 12px; bottom: 12px; max-width: calc(100% - 24px); padding: 18px 20px; } }

/* Apertura: i numeri dell'archivio centrati, quanti che siano (il tema li
   dispone per quattro allineati a sinistra: con tre restava un vuoto a destra). */
.hero-counter-item-list { justify-content: center; }

/* Lezioni: la scheda del corso (project-single.html del tema: page-category-list e
   sidebar-cta-box), con le icone di Font Awesome al posto delle immagini del tema e
   le voci una sotto l'altra (etichetta sopra, testo sotto: i testi sono liberi e lunghi). */
.scheda-corso .page-category-list { background: var(--bg-color); }
.scheda-corso .project-category-item { flex-wrap: nowrap; align-items: flex-start; gap: 14px; }
.scheda-corso .project-category-item:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.scheda-corso .project-category-item > i { flex: 0 0 38px; width: 38px; height: 38px; border-radius: 50%; background: var(--accent-color); color: var(--white-color); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }
.scheda-corso .project-category-item p { width: auto; display: block; line-height: 1.45; color: var(--primary-color); }
.scheda-corso .project-category-item p span { font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--text-color); margin-bottom: 3px; }
.scheda-corso .sidebar-cta-box .icon-box i { position: relative; z-index: 1; font-size: 30px; color: var(--white-color); transition: color .4s ease-in-out; }
.scheda-corso .sidebar-cta-box:hover .icon-box i { color: var(--primary-color); }
.pastiglia-iscrizioni { display: inline-block; padding: 3px 10px; border-radius: 100px; font-size: 13px; font-weight: 600; margin-right: 6px; }
.contenuto-meta .pastiglia-iscrizioni { padding: 6px 14px; font-size: 14px; margin-right: 0; }
.pastiglia-iscrizioni--aperte { background: #E3F4EA; color: #146C43; }
.pastiglia-iscrizioni--esaurite { background: #FBE4E6; color: #A52834; }
.pastiglia-iscrizioni--concluse { background: #ECEEF0; color: #495057; }
/* Negli elenchi: etichetta, sotto le date a sinistra e il prezzo in evidenza a destra. */
.post-item-meta--corso { display: flex; flex-direction: column; align-items: stretch; gap: 10px; margin-bottom: 14px; }
.post-item-meta--corso .pastiglia-iscrizioni { margin-right: 0; }
.corso-date-prezzo { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.corso-date { line-height: 1.45; }
.corso-date i { color: var(--accent-color); margin-right: 4px; }
.corso-prezzo { flex: 0 0 auto; margin-left: auto; font-size: 20px; line-height: 1.2; font-weight: 700; color: var(--accent-color); white-space: nowrap; }

