/*
Theme Name: Molino Nicoli
Theme URI: https://wordpress.org/
Author: Molino Nicoli
Description: Tema a blocchi (FSE) minimale, orientato all’accessibilità. Personalizza theme.json e i template secondo il progetto.
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.1
Version: 0.1.33
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mnic
*/

/* Stili globali minimi: il design vive in theme.json e nei blocchi. */
.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;
}

.screen-reader-text:focus {
	background-color: #fff;
	clip: auto !important;
	clip-path: none;
	color: #000;
	display: block;
	font-size: 1em;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 0.75em 1em;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

.skip-link.screen-reader-text:focus {
	position: fixed;
}

/* Titolo e paragrafo — ombreggiatura testo (toggle editor: mnicTextShadow / .has-mnic-text-shadow) */
.has-mnic-text-shadow {
	text-shadow: 4px 4px 6px rgba(0, 0, 0, 0.40);
}

/* Focus visibile da tastiera (WCAG 2.4.7) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Riduce animazioni/transizioni se richiesto dal sistema */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/*
 * Titoli H1–H3 e preset font-size (theme.json: display-xl, h-1, h-2, h-3) su viewport strette.
 * Esclude titoli che usano un altro preset (classe .has-*-font-size) dal font-size “di default” del tag.
 */
@media (max-width: 781px) {
	h1:not([class*="has-"][class*="-font-size"]) {
		font-size: 32px !important;
	}

	h2:not([class*="has-"][class*="-font-size"]) {
		font-size: 28px !important;
	}

	h3:not([class*="has-"][class*="-font-size"]) {
		font-size: 22px !important;
	}

	.has-display-xl-font-size {
		font-size: 64px !important;
	}

	.has-h-1-font-size {
		font-size: 32px !important;
	}

	.has-h-2-font-size {
		font-size: 28px !important;
	}

	.has-h-3-font-size {
		font-size: 22px !important;
	}
}

/*
 * Blocco Pulsante — stili da design library (padding 12×24, altezza 48px dove applicabile).
 * Token: --wp--preset--color--*, --wp--preset--font-*.
 */

.wp-block-button.is-style-mnic-primario .wp-block-button__link,
.wp-block-button.is-style-mnic-primario-icona .wp-block-button__link,
.wp-block-button.is-style-mnic-secondario-negativo .wp-block-button__link,
.wp-block-button.is-style-mnic-secondario-positivo .wp-block-button__link {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	padding: 0.75rem 1.5rem;
	font-family: var(--wp--preset--font-family--poppins, "Poppins", sans-serif);
	font-size: var(--wp--preset--font-size--body, 1rem);
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

/* Primario — pill, primary-800, testo bianco */
.wp-block-button.is-style-mnic-primario .wp-block-button__link,
.wp-block-button.is-style-mnic-primario-icona .wp-block-button__link {
	background-color: var(--wp--preset--color--primary-800);
	color: var(--wp--preset--color--neutral-50);
	border: none;
	border-radius: 62.4375rem;
}

.wp-block-button.is-style-mnic-primario .wp-block-button__link:hover,
.wp-block-button.is-style-mnic-primario-icona .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--primary-700);
	color: var(--wp--preset--color--neutral-50);
}

/* Primario con icona — come Primario; icona dopo il testo (maschera + currentColor) */
.wp-block-button.is-style-mnic-primario-icona .wp-block-button__link {
	gap: 0.5rem;
}

.wp-block-button.is-style-mnic-primario-icona .wp-block-button__link::after {
	content: "";
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	flex-shrink: 0;
	background-color: currentColor;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%3E%3Cpath%20d%3D'M16%2022C15.45%2022%2015%2021.55%2015%2021V17C15%2016.45%2015.45%2016%2016%2016C16.55%2016%2017%2016.45%2017%2017V18H21C21.55%2018%2022%2018.45%2022%2019C22%2019.55%2021.55%2020%2021%2020H17V21C17%2021.55%2016.55%2022%2016%2022ZM12%2020H3C2.45%2020%202%2019.55%202%2019C2%2018.45%202.45%2018%203%2018H12C12.55%2018%2013%2018.45%2013%2019C13%2019.55%2012.55%2020%2012%2020ZM8%2015C7.45%2015%207%2014.55%207%2014V13H3C2.45%2013%202%2012.55%202%2012C2%2011.45%202.45%2011%203%2011H7V10C7%209.45%207.45%209%208%209C8.55%209%209%209.45%209%2010V14C9%2014.55%208.55%2015%208%2015ZM21%2013H12C11.45%2013%2011%2012.55%2011%2012C11%2011.45%2011.45%2011%2012%2011H21C21.55%2011%2022%2011.45%2022%2012C22%2012.55%2021.55%2013%2021%2013ZM14%208C13.45%208%2013%207.55%2013%207V3C13%202.45%2013.45%202%2014%202C14.55%202%2015%202.45%2015%203V4H21C21.55%204%2022%204.45%2022%205C22%205.55%2021.55%206%2021%206H15V7C15%207.55%2014.55%208%2014%208ZM10%206H3C2.45%206%202%205.55%202%205C2%204.45%202.45%204%203%204H10C10.55%204%2011%204.45%2011%205C11%205.55%2010.55%206%2010%206Z'%20fill%3D'black'%2F%3E%3C%2Fsvg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%3E%3Cpath%20d%3D'M16%2022C15.45%2022%2015%2021.55%2015%2021V17C15%2016.45%2015.45%2016%2016%2016C16.55%2016%2017%2016.45%2017%2017V18H21C21.55%2018%2022%2018.45%2022%2019C22%2019.55%2021.55%2020%2021%2020H17V21C17%2021.55%2016.55%2022%2016%2022ZM12%2020H3C2.45%2020%202%2019.55%202%2019C2%2018.45%202.45%2018%203%2018H12C12.55%2018%2013%2018.45%2013%2019C13%2019.55%2012.55%2020%2012%2020ZM8%2015C7.45%2015%207%2014.55%207%2014V13H3C2.45%2013%202%2012.55%202%2012C2%2011.45%202.45%2011%203%2011H7V10C7%209.45%207.45%209%208%209C8.55%209%209%209.45%209%2010V14C9%2014.55%208.55%2015%208%2015ZM21%2013H12C11.45%2013%2011%2012.55%2011%2012C11%2011.45%2011.45%2011%2012%2011H21C21.55%2011%2022%2011.45%2022%2012C22%2012.55%2021.55%2013%2021%2013ZM14%208C13.45%208%2013%207.55%2013%207V3C13%202.45%2013.45%202%2014%202C14.55%202%2015%202.45%2015%203V4H21C21.55%204%2022%204.45%2022%205C22%205.55%2021.55%206%2021%206H15V7C15%207.55%2014.55%208%2014%208ZM10%206H3C2.45%206%202%205.55%202%205C2%204.45%202.45%204%203%204H10C10.55%204%2011%204.45%2011%205C11%205.55%2010.55%206%2010%206Z'%20fill%3D'black'%2F%3E%3C%2Fsvg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}

/* Primario con freccia — senza sfondo né padding; testo neutral-900; freccia = currentColor */
.wp-block-button.is-style-mnic-primario-freccia .wp-block-button__link,
.wp-block-button.is-style-mnic-primario-freccia-indietro .wp-block-button__link {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	color: var(--wp--preset--color--neutral-900);
	font-family: var(--wp--preset--font-family--poppins, "Poppins", sans-serif);
	font-size: var(--wp--preset--font-size--body, 1rem);
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
	transition: color 0.15s ease;
}

/*
 * Freccia: maschera SVG (tratti neri) + background currentColor → segue il color del link (anche hover).
 */
.wp-block-button.is-style-mnic-primario-freccia .wp-block-button__link::before,
.wp-block-button.is-style-mnic-primario-freccia-indietro .wp-block-button__link::before {
	content: "";
	display: block;
	width: 12px;
	height: 12px;
	flex-shrink: 0;
	background-color: currentColor;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M9 4L11 6L9 8' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M1 6H11' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M9 4L11 6L9 8' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M1 6H11' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}

.wp-block-button.is-style-mnic-primario-freccia-indietro .wp-block-button__link::before {
	transform: rotate(180deg);
}

.wp-block-button.is-style-mnic-primario-freccia .wp-block-button__link:hover,
.wp-block-button.is-style-mnic-primario-freccia .wp-block-button__link:focus,
.wp-block-button.is-style-mnic-primario-freccia-indietro .wp-block-button__link:hover,
.wp-block-button.is-style-mnic-primario-freccia-indietro .wp-block-button__link:focus {
	background: none;
	color: var(--wp--preset--color--primary-800);
}

/* Secondario negativo — vetro scuro, bordo bianco 1.5px, testo bianco, pill */
.wp-block-button.is-style-mnic-secondario-negativo .wp-block-button__link {
	background-color: rgba(0, 0, 0, 0.2);
	color: var(--wp--preset--color--neutral-50);
	border: 1.5px solid var(--wp--preset--color--neutral-50);
	border-radius: 62.4375rem;
}

.wp-block-button.is-style-mnic-secondario-negativo .wp-block-button__link:hover {
	background-color: rgba(0, 0, 0, 0.28);
	color: var(--wp--preset--color--neutral-50);
}

/* Secondario positivo — vetro chiaro, bordo nero 1.5px, raggio 24px */
.wp-block-button.is-style-mnic-secondario-positivo .wp-block-button__link {
	background-color: rgba(255, 255, 255, 0.2);
	color: var(--wp--preset--color--neutral-900);
	border: 1.5px solid var(--wp--preset--color--neutral-900);
	border-radius: 1.5rem;
}

.wp-block-button.is-style-mnic-secondario-positivo .wp-block-button__link:hover {
	background-color: rgba(255, 255, 255, 0.35);
	color: var(--wp--preset--color--neutral-900);
}

/* Terziario — link sottolineato, bold; hover primary-800 */
.wp-block-button.is-style-mnic-terziario-link .wp-block-button__link {
	display: inline;
	min-height: 0;
	padding: 0;
	background: none;
	color: var(--wp--preset--color--neutral-900);
	border: none;
	border-radius: 0;
	font-family: var(--wp--preset--font-family--poppins, "Poppins", sans-serif);
	font-size: var(--wp--preset--font-size--body, 1rem);
	font-weight: 700;
	line-height: 1.3;
	text-decoration: underline;
	text-underline-offset: 0.12em;
	transition: color 0.15s ease;
}

.wp-block-button.is-style-mnic-terziario-link .wp-block-button__link:hover,
.wp-block-button.is-style-mnic-terziario-link .wp-block-button__link:focus {
	color: var(--wp--preset--color--primary-800);
	text-decoration: underline;
}

/*
 * Link SVG (mnic/svg-link): colore da --mnic-svg-link-normal / --mnic-svg-link-hover (impostati dal blocco).
 * SVG monocromatici si adattano meglio (fill/stroke → currentColor).
 */
.wp-block-mnic-svg-link {
	line-height: 0;
}

.wp-block-mnic-svg-link__anchor {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--mnic-svg-link-normal, currentColor);
	text-decoration: none;
	transition: color 0.15s ease;
}

.wp-block-mnic-svg-link__anchor:hover,
.wp-block-mnic-svg-link__anchor:focus-visible {
	color: var(--mnic-svg-link-hover, var(--mnic-svg-link-normal, currentColor));
}

.wp-block-mnic-svg-link__anchor svg {
	display: block;
	height: auto;
	max-width: 100%;
}

.wp-block-mnic-svg-link__anchor svg,
.wp-block-mnic-svg-link__anchor svg * {
	fill: currentColor;
	stroke: currentColor;
}

/* Landmark <header>: fisso a tutta larghezza (position fixed, non display). */
header {
	position: fixed;
	width: 100%;
	z-index: 4;
}

/*
 * Sezioni overlay scroll: stacking sotto l’header (z-index 4).
 * Aggancio “bordo inferiore sul fondo viewport” con top: calc(100vh − altezza) e
 * --mnic-panel-h da mnic-stack-sticky-bottom.js; --mnic-stack per z tra 3 e <4.
 * Solo front-end: nel canvas editor (iframe / .editor-styles-wrapper) niente sticky.
 */
body:not(.block-editor-iframe__body) .sectionScrollOverlay {
	--mnic-panel-h: 100vh;
	position: sticky !important;
	top: calc(100vh - var(--mnic-panel-h)) !important;
	bottom: auto !important;
	z-index: 3;
	z-index: calc(3 + min(var(--mnic-stack, 0), 999) / 1000);
	margin-top: 0;
	margin-bottom: 0;
	box-sizing: border-box;
}

body:not(.block-editor-iframe__body) .sectionScrollOverlay.first {
	top: 0 !important
}

body:not(.block-editor-iframe__body) .wp-block-post-content > .sectionScrollOverlay {
	margin-top: -64px;
}

body:not(.block-editor-iframe__body) .wp-block-post-content > .sectionScrollOverlay ~ .sectionScrollOverlay {
	margin-top: 0;
}

.block-editor-iframe__body .sectionScrollOverlay,
.editor-styles-wrapper .sectionScrollOverlay {
	position: relative !important;
	top: auto !important;
	bottom: auto !important;
	z-index: auto;
	margin-top: 0 !important;
	margin-bottom: 0;
	--mnic-panel-h: initial;
	--mnic-stack: initial;
}

/*
 * Navigazione in header: hover / focus → primary-800 + sottolineato.
 * Anche .wp-block-navigation-item__content e colore ereditato sulla label: il core spesso
 * imposta il colore sullo span .wp-block-navigation-item__label (il :hover sul solo <a> non basta).
 */
header .wp-block-navigation a:hover,
header .wp-block-navigation a:focus-visible,
header .wp-block-navigation .wp-block-navigation-item__content:hover,
header .wp-block-navigation .wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--primary-800);
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

header .wp-block-navigation a:hover .wp-block-navigation-item__label,
header .wp-block-navigation a:focus-visible .wp-block-navigation-item__label,
header .wp-block-navigation .wp-block-navigation-item__content:hover .wp-block-navigation-item__label,
header .wp-block-navigation .wp-block-navigation-item__content:focus-visible .wp-block-navigation-item__label {
	color: inherit;
}

/*
 * Gruppo — altezza 100% (toggle in sidebar, attributo mnicHeightFull, classe .is-mnic-height-full).
 * Il 100% richiede un antenato con altezza definita (layout, flex, viewport).
 */
.wp-block-group.is-mnic-height-full {
	box-sizing: border-box;
	height: 100%;
	min-height: 0;
}

/*
 * Editor (canvas iframe / styles wrapper): niente height:100% / min-height forzati in anteprima
 * (evita gruppi altissimi). Sul sito pubblico vale solo la regola .wp-block-group.is-mnic-height-full.
 */
.block-editor-iframe__body .wp-block-group.is-mnic-height-full,
.editor-styles-wrapper .wp-block-group.is-mnic-height-full {
	height: auto;
	min-height: 0;
}

/*
 * Gruppo — responsività personalizzata da sidebar:
 * - .is-mnic-responsive-mobile-only: visibile solo sotto/su 600px.
 * - .is-mnic-responsive-desktop-only: visibile solo sopra 600px.
 * - .is-mnic-responsive-hidden: nascosto sempre (solo front-end).
 */
.wp-block-group.is-mnic-responsive-mobile-only,
.wp-block-group.is-mnic-responsive-hidden {
	display: none;
}

@media (max-width: 600px) {
	.wp-block-group.is-mnic-responsive-mobile-only {
		display: block;
		max-width: 600px;
		margin-right: auto;
		margin-left: auto;
		width: 100%;
	}

	.wp-block-group.is-mnic-responsive-desktop-only {
		display: none;
	}
}

/*
 * Editor: i blocchi restano sempre visibili.
 * La max-width mobile viene applicata via JS al blocco "solo Mobile".
 */
.block-editor-iframe__body .wp-block-group.is-mnic-responsive-mobile-only,
.block-editor-iframe__body .wp-block-group.is-mnic-responsive-desktop-only,
.block-editor-iframe__body .wp-block-group.is-mnic-responsive-hidden,
.editor-styles-wrapper .wp-block-group.is-mnic-responsive-mobile-only,
.editor-styles-wrapper .wp-block-group.is-mnic-responsive-desktop-only,
.editor-styles-wrapper .wp-block-group.is-mnic-responsive-hidden {
	display: block !important;
}

/*
 * Megamenu: .megaContainer[id] apre #mega{id}.megaMenu e #mega{id}M.megaMenu se presente (fallback: rel → #id).
 * I pannelli .megaMenu possono essere anche fuori <header> (mega-menu.js segue il puntatore).
 */

/* Voce megamenu: chevron dopo il testo (SVG giù), colore = currentColor; aperto → .is-mega-open ruota 180° */
header .megaContainer > a {
	display: inline-flex;
	align-items: center;
	gap: 0;
}

header .megaContainer > a::after {
	content: "";
	display: inline-block;
	width: 10px;
	height: 10px;
	flex-shrink: 0;
	margin-left: 5px;
	background-color: currentColor;
	transform: rotate(0deg);
	transform-origin: 50% 50%;
	transition: transform 0.22s ease;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2 4.5L6 9L10 4.5' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2 4.5L6 9L10 4.5' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}

.megaContainer.is-mega-open > a::after {
	transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
	header .megaContainer > a::after {
		transition-duration: 0.01ms;
	}
}

/* Altezza: solo max-height (transizione fluida); evitare height:auto nei keyframe. */
.megaMenu {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
	transform: translateY(-0.35rem);
	transition:
		max-height 0.5s cubic-bezier(0.22, 0.99, 0.35, 1),
		opacity 0.34s ease-out,
		transform 0.46s cubic-bezier(0.22, 0.99, 0.35, 1);
}

.megaMenu:not(.is-open) {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.megaMenu.is-open {
	max-height: min(90vh, 1200px);
	overflow: visible;
	pointer-events: auto;
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.megaMenu {
		transition-duration: 0.01ms !important;
	}

	.megaMenu.is-open {
		max-height: min(90vh, 1200px);
		opacity: 1;
		transform: none;
	}
}

/*
 * Editor (Site / template / canvas iframe): megamenu sempre visibile per modificare i blocchi.
 * I selettori coprono iframe .block-editor-iframe__body e .editor-styles-wrapper dove presente.
 */
.block-editor-iframe__body .megaMenu,
.editor-styles-wrapper .megaMenu {
	max-height: none !important;
	opacity: 1 !important;
	overflow: visible !important;
	pointer-events: auto !important;
	transform: none !important;
	padding-top: unset !important;
	padding-bottom: unset !important;
	transition: none !important;
}

/*
 * Menu mobile bar: .menuMobile + icone .openMenuMobile / .closeMenuMobile.
 * Aperto: body.is-mobile-menu-open (assets/js/mega-menu.js).
 */
.menuMobile,
.closeMenuMobile {
	display: none;
}

body.is-mobile-menu-open .menuMobile {
	display: block;
}

body.is-mobile-menu-open .closeMenuMobile {
	display: inline-block;
}

body.is-mobile-menu-open .openMenuMobile {
	display: none;
}

/* Megamenu aperto (hover/tap, body.mega-menu-active): nasconde .menuMobile su tutti i viewport. */
body.mega-menu-active .menuMobile {
	display: none !important;
}

.block-editor-iframe__body .menuMobile,
.editor-styles-wrapper .menuMobile {
	display: block !important;
}

.block-editor-iframe__body body.mega-menu-active .menuMobile,
.editor-styles-wrapper body.mega-menu-active .menuMobile {
	display: block !important;
}

.block-editor-iframe__body .closeMenuMobile,
.editor-styles-wrapper .closeMenuMobile {
	display: inline-block !important;
}

.block-editor-iframe__body .openMenuMobile,
.editor-styles-wrapper .openMenuMobile {
	display: inline-block !important;
}

/* .megaMenuMobile: chiuso = fuori dal flusso; aperto = nel flusso (body.is-mobile-menu-open). */
.megaMenuMobile {
	position: absolute;
}

body.is-mobile-menu-open .megaMenuMobile {
	position: relative;
}

.block-editor-iframe__body .megaMenuMobile,
.editor-styles-wrapper .megaMenuMobile {
	position: relative !important;
}

/*
 * Copertina + Vimeo (mnicVimeoUrl): video a tutta area come object-fit: cover.
 * :has(.mnic-cover-vimeo) serve nell’editor quando il layer è iniettato prima che la classe sia sul DOM.
 */
.wp-block-cover.has-mnic-vimeo,
.wp-block-cover:has(.mnic-cover-vimeo) {
	position: relative;
	overflow: hidden;
}

/*
 * Stack (dal basso): immagine/gradiente 0 → Vimeo 1 → velo Copertina 2 → contenuto 3+.
 * Senza z-index esplicito sul contenitore interno, in alcuni temi/editor il layer Vimeo
 * finiva sopra al testo (stesso livello del velo).
 */
.wp-block-cover.has-mnic-vimeo .wp-block-cover__image-background,
.wp-block-cover:has(.mnic-cover-vimeo) .wp-block-cover__image-background,
.wp-block-cover.has-mnic-vimeo > .wp-block-cover__gradient-background,
.wp-block-cover:has(.mnic-cover-vimeo) > .wp-block-cover__gradient-background {
	z-index: 0;
}

.wp-block-cover.has-mnic-vimeo .mnic-cover-vimeo,
.wp-block-cover:has(.mnic-cover-vimeo) .mnic-cover-vimeo {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;
	pointer-events: none;
	/* Ridimensionamento iframe rispetto al box Cover (non al viewport): effetto object-fit: cover. */
	container-type: size;
	container-name: mnic-cover-vimeo;
}

.wp-block-cover.has-mnic-vimeo .wp-block-cover__background,
.wp-block-cover:has(.mnic-cover-vimeo) .wp-block-cover__background {
	z-index: 2;
}

.wp-block-cover.has-mnic-vimeo.has-background-dim::before,
.wp-block-cover:has(.mnic-cover-vimeo).has-background-dim::before {
	z-index: 2;
}

.wp-block-cover.has-mnic-vimeo .wp-block-cover__inner-container,
.wp-block-cover:has(.mnic-cover-vimeo) .wp-block-cover__inner-container {
	position: relative;
	z-index: 3;
}

.wp-block-cover.has-mnic-vimeo .mnic-cover-vimeo iframe,
.wp-block-cover:has(.mnic-cover-vimeo) .mnic-cover-vimeo iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	/*
	 * Video 16:9 che copre sempre il rettangolo del Cover, parte centrale visibile (crop sui lati o sopra/sotto).
	 * cqw/cqh = percentuali delle dimensioni del contenitore (.mnic-cover-vimeo), non del viewport.
	 */
	width: 100cqw;
	height: 56.25cqw;
	min-height: 100cqh;
	min-width: 177.78cqh;
	transform: translate(-50%, -50%);
	border: 0;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.45s ease;
}

.wp-block-cover.has-mnic-vimeo .mnic-cover-vimeo iframe.mnic-vimeo-ready,
.wp-block-cover:has(.mnic-cover-vimeo) .mnic-cover-vimeo iframe.mnic-vimeo-ready {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-cover.has-mnic-vimeo .mnic-cover-vimeo iframe,
	.wp-block-cover:has(.mnic-cover-vimeo) .mnic-cover-vimeo iframe {
		opacity: 1;
		transition: none;
	}
}

/* Browser senza container query units: stesso schema sul viewport (Cover a tutta larghezza pagina). */
@supports not (width: 1cqw) {
	.wp-block-cover.has-mnic-vimeo .mnic-cover-vimeo iframe,
	.wp-block-cover:has(.mnic-cover-vimeo) .mnic-cover-vimeo iframe {
		width: 100vw;
		height: 56.25vw;
		min-height: 100vh;
		min-width: 177.78vh;
	}
}

/* Video caricato su WP come sfondo: nascosto se c’è Vimeo (due video in conflitto). */
.wp-block-cover.has-mnic-vimeo .wp-block-cover__video-background,
.wp-block-cover:has(.mnic-cover-vimeo) .wp-block-cover__video-background {
	display: none !important;
}

/* Overlay sotto l’header, sopra al resto della pagina */
body.mega-menu-active::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 1;
	background: rgba(0, 0, 0, 0.2);
	pointer-events: none;
}

/* Contenuto sotto l’header sfocato (il <header> resta nitido) */
body.mega-menu-active .wp-site-blocks > *:not(header),
body.mega-menu-active main {
	filter: blur(6px);
	transition: filter 0.25s ease;
}

@media (prefers-reduced-motion: reduce) {
	body.mega-menu-active .wp-site-blocks > *:not(header),
	body.mega-menu-active main {
		filter: none;
	}
}


.noWrap{
	white-space: nowrap;
}

.iconLineStart,.iconLine,.iconLineEnd{
	position: relative;
}

.iconLineStart::before{
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%);
	width: 70%;
	height: 2px;
	background-color: var(--wp--preset--color--secondary-900);
}

.iconLine::before{
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 140%;
	height: 2px;
	background-color: var(--wp--preset--color--secondary-900);
}

.iconLineEnd::before{
	content: "";
	position: absolute;
	top: 50%;
	right: 50%;
	transform: translateY(-50%);
	width: 70%;
	height: 2px;
	background-color: var(--wp--preset--color--secondary-900);
}

.ovHidden{
	overflow: hidden;
}


.sticky{
	position: sticky !important;
	top: 170px;
}

/*
 * .autoCarousel: marquee orizzontale continuo in loop (mnic-auto-carousel-scroll.js duplica il contenuto).
 * Opzionale: data-mnic-marquee-speed="70" (pixel al secondo, default 70).
 */
@keyframes mnic-auto-carousel-marquee {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(-50%, 0, 0);
	}
}

.autoCarousel {
	overflow-x: hidden;
}

.autoCarousel__viewport {
	overflow: hidden;
	width: 100%;
}

.autoCarousel__track {
	height: 100%;
	display: flex;
	width: max-content;
	will-change: transform;
	animation: mnic-auto-carousel-marquee var(--mnic-auto-carousel-duration, 45s) linear infinite;
}

/* gap tra elementi: copiato dallo script dal gruppo/colonne (vedi mnic-auto-carousel-scroll.js) */
.autoCarousel__strip {
	display: flex;
	flex-wrap: nowrap;
	flex-shrink: 0;
	align-items: stretch;
	min-width: min-content;
}

.autoCarousel:hover .autoCarousel__track {
	animation-play-state: paused;
}

.autoCarousel.is-layout-flex,
.autoCarousel .wp-block-group__inner-container.is-layout-flex {
	flex-wrap: nowrap;
}

.autoCarousel.wp-block-columns {
	flex-wrap: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	.autoCarousel__track {
		animation: none;
		transform: none;
		will-change: auto;
	}
}

/*
 * Blocco Immagine panoramica (cerchio) — marquee + maschera rotonda (mnic/circle-pan-image).
 */
.wp-block-mnic-circle-pan-image .mnic-circle-pan__mask {
	position: relative;
	width: min(100%, 22rem);
	margin-inline: auto;
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	isolation: isolate;
	background-color: var(--wp--preset--color--secondary-50, #f5f5f4);
}

.wp-block-mnic-circle-pan-image .mnic-circle-pan__mask > .autoCarousel {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.wp-block-mnic-circle-pan-image .mnic-circle-pan__marquee .autoCarousel__viewport {
	height: 100%;
}

.wp-block-mnic-circle-pan-image .mnic-circle-pan__marquee .autoCarousel__strip {
	align-items: stretch;
	height: 100%;
}

.wp-block-mnic-circle-pan-image .mnic-circle-pan__img {
	display: block;
	flex-shrink: 0;
	height: 100%;
	width: auto;
	max-width: none;
	object-fit: cover;
}

/* Non ereditare la pausa all’hover del marquee generico (.autoCarousel:hover). */
.wp-block-mnic-circle-pan-image .autoCarousel:hover .autoCarousel__track {
	animation-play-state: running;
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-mnic-circle-pan-image .mnic-circle-pan__marquee .autoCarousel__track {
		animation: none;
		transform: none;
		will-change: auto;
	}
}

/*
 * Gruppo — doppio sfondo immagine (cover, parallasse verticale in mnic-group-parallax-bg.js).
 */
.wp-block-group.has-mnic-parallax-bg {
	position: relative;
	isolation: isolate;
}

.wp-block-group.has-mnic-parallax-bg > .mnic-group-parallax {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.wp-block-group.has-mnic-parallax-bg > .mnic-group-parallax > .mnic-group-parallax__layer {
	position: absolute;
	left: 0;
	width: 100%;
	top: -18%;
	height: 136%;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	will-change: transform;
}

.wp-block-group.has-mnic-parallax-bg > .mnic-group-parallax > .mnic-group-parallax__layer--1 {
	z-index: 1;
}

.wp-block-group.has-mnic-parallax-bg > .mnic-group-parallax > .mnic-group-parallax__layer--2 {
	z-index: 2;
}

.wp-block-group.has-mnic-parallax-bg > :not(.mnic-group-parallax) {
	position: relative;
	z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-group.has-mnic-parallax-bg > .mnic-group-parallax > .mnic-group-parallax__layer {
		will-change: auto;
		transform: none !important;
	}
}

.imgGallery{
	aspect-ratio: 16/9;
	min-height: 0;
}

.noDec a{
	text-decoration: none;
}

/*
 * Barra menu interno duplicata: fixed così non entra nel flusso del documento quando è
 * visibile (evita salti di scroll dopo scrollIntoView verso le ancore).
 */
.menuInternoBox {
	display: none;
	position: relative;
	left: 0;
	right: 0;
	top: 0;
	z-index: 30;
	box-sizing: border-box;
	pointer-events: auto;
}

body.admin-bar .menuInternoBox {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .menuInternoBox {
		top: 46px;
	}
}

/* Megamenu aperto: nasconde la barra menu interno (stesso body.mega-menu-active di mega-menu.js). */
body.mega-menu-active .menuInternoBox {
	display: none !important;
}

.menuInterno a.selected{
	color: var(--wp--preset--color--primary-800);
	text-decoration: underline;
}

.h100{
	height: 100%;
}


.jcfs a{
	justify-content: flex-start !important;
}

/*
 * Tabella avanzata (mnic/advanced-table): front-end.
 */
/*
 * separate + spacing 0: consente border-radius e bordi per lato dal blocco (come in editor).
 * collapse ignora i raggi sulle celle nella maggior parte dei browser.
 * Modulo larghezza colonne: classe `mnic-advanced-table--cols-content` (default) o `--cols-equal` dal blocco.
 */
.wp-block-mnic-advanced-table .mnic-advanced-table {
	width: 100%;
	max-width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: auto;
}

.wp-block-mnic-advanced-table .mnic-advanced-table--cols-equal {
	table-layout: fixed;
}

.wp-block-mnic-advanced-table .mnic-advanced-table--cols-equal th,
.wp-block-mnic-advanced-table .mnic-advanced-table--cols-equal td {
	width: 1%;
}

/* Nessun bordo sul wrapper del blocco (evita cornice grigia attorno alla tabella). */
.wp-block-mnic-advanced-table.wp-block-mnic-advanced-table {
	border: none;
	box-shadow: none;
	outline: none;
}

/*
 * Celle senza griglia predefinita: niente bordi grigi/chiari tra le celle.
 * I bordi restano solo se imposti dal blocco (inline) o dai preset riga (frame, ecc.).
 */
.wp-block-mnic-advanced-table .mnic-advanced-table th,
.wp-block-mnic-advanced-table .mnic-advanced-table td {
	border-width: 0;
	border-style: solid;
	border-color: transparent;
	vertical-align: middle;
	text-align: center;
	box-sizing: border-box;
}

/* Gruppi a larghezza massima contenuta: centrati nella cella */
.wp-block-mnic-advanced-table .mnic-advanced-table th > .wp-block-group.is-layout-constrained,
.wp-block-mnic-advanced-table .mnic-advanced-table td > .wp-block-group.is-layout-constrained {
	margin-left: auto;
	margin-right: auto;
}

/*
 * Immagini in cella: niente gap sotto l’img; flex per centrarle anche se il figure è largo tutta la cella.
 */
.wp-block-mnic-advanced-table .mnic-advanced-table th figure.wp-block-image,
.wp-block-mnic-advanced-table .mnic-advanced-table td figure.wp-block-image,
.wp-block-mnic-advanced-table .mnic-advanced-table th > .wp-block-image,
.wp-block-mnic-advanced-table .mnic-advanced-table td > .wp-block-image {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin: 0;
	line-height: 0;
	max-width: 100%;
}

.wp-block-mnic-advanced-table .mnic-advanced-table figure.wp-block-image img,
.wp-block-mnic-advanced-table .mnic-advanced-table .wp-block-image img {
	display: block;
	height: auto;
	max-width: 100%;
}

.wp-block-mnic-advanced-table .mnic-advanced-table figure.wp-block-image figcaption:empty {
	display: none;
}

.wp-block-mnic-advanced-table .mnic-advanced-table__thead--neutral-light {
	background-color: var(--wp--preset--color--secondary-200);
}

.wp-block-mnic-advanced-table .mnic-advanced-table__thead--primary {
	background-color: var(--wp--preset--color--primary-50);
	color: var(--wp--preset--color--neutral-900);
}

.wp-block-mnic-advanced-table .mnic-advanced-table__thead--dark {
	background-color: var(--wp--preset--color--neutral-800);
	color: var(--wp--preset--color--neutral-50);
}

.wp-block-mnic-advanced-table.is-style-mnic-thead-primary .mnic-advanced-table__thead {
	background-color: var(--wp--preset--color--primary-100);
	color: var(--wp--preset--color--neutral-900);
}

.wp-block-mnic-advanced-table.is-style-mnic-thead-dark .mnic-advanced-table__thead {
	background-color: var(--wp--preset--color--neutral-900);
	color: var(--wp--preset--color--neutral-50);
}

.wp-block-mnic-table-row.is-style-mnic-row-tint > th,
.wp-block-mnic-table-row.is-style-mnic-row-tint > td {
	background-color: var(--wp--preset--color--secondary-50);
}

.wp-block-mnic-table-row.is-style-mnic-row-emphasis > th,
.wp-block-mnic-table-row.is-style-mnic-row-emphasis > td {
	background-color: var(--wp--preset--color--secondary-300);
}

/* Solo bordo interno (destra/basso): border-width su tutti i lati creava il “rosa” sulla prima cella. */
.wp-block-mnic-table-row.is-style-mnic-row-frame > th,
.wp-block-mnic-table-row.is-style-mnic-row-frame > td {
	border-style: solid;
	border-right-width: 2px;
	border-bottom-width: 2px;
	border-right-color: var(--wp--preset--color--primary-400);
	border-bottom-color: var(--wp--preset--color--primary-400);
}

/*
 * Intestazione: il preset riga “frame” non deve disegnare griglia dal tema (prima cella “rosa”,
 * dalla seconda in poi linea chiara neutral-900-light). I bordi in header restano solo se li metti sui blocchi.
 */
.wp-block-mnic-advanced-table .mnic-advanced-table__thead .wp-block-mnic-table-row.is-style-mnic-row-frame > th,
.wp-block-mnic-advanced-table .mnic-advanced-table__thead .wp-block-mnic-table-row.is-style-mnic-row-frame > td {
	border-width: 0;
	border-color: transparent;
}

/* Editor: stili riga (come sul front). */
.mnic-table-row-editor-wrap.is-style-mnic-row-tint .mnic-table-cell-editor {
	background-color: var(--wp--preset--color--secondary-50);
}

.mnic-table-row-editor-wrap.is-style-mnic-row-emphasis .mnic-table-cell-editor {
	background-color: var(--wp--preset--color--secondary-300);
}

.mnic-table-row-editor-wrap.is-style-mnic-row-frame .mnic-table-cell-editor {
	border-style: solid;
	border-right-width: 2px;
	border-bottom-width: 2px;
	border-right-color: var(--wp--preset--color--primary-400);
	border-bottom-color: var(--wp--preset--color--primary-400);
}

/* Editor: intestazione senza bordo dal preset “frame” (come sul front). */
.mnic-advanced-table-editor .mnic-table-row-editor-wrap--header.is-style-mnic-row-frame .mnic-table-cell-editor {
	border: none;
}

/* Editor: stili tabella sul thead (righe intestazione). */
.mnic-advanced-table-editor.is-style-mnic-thead-primary .mnic-table-row-editor-wrap--header {
	background-color: var(--wp--preset--color--primary-100);
	color: var(--wp--preset--color--neutral-900);
}

.mnic-advanced-table-editor.is-style-mnic-thead-dark .mnic-table-row-editor-wrap--header {
	background-color: var(--wp--preset--color--neutral-900);
	color: var(--wp--preset--color--neutral-50);
}

/* Editor: layout a griglia (anteprima). */
.mnic-advanced-table-editor__surface {
	border: 1px solid var(--wp--preset--color--neutral-900-light);
	border-radius: 2px;
	overflow: hidden;
}

.mnic-advanced-table-editor__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.mnic-advanced-table-editor__rows {
	display: flex;
	flex-direction: column;
	gap: 0;
	width: 100%;
}

.mnic-advanced-table-editor__rows > .block-editor-block-list__block {
	width: 100%;
	max-width: 100%;
}

.mnic-table-row-editor-wrap--header {
	background-color: var(--wp--preset--color--secondary-200);
}

.mnic-table-row-editor-wrap {
	width: 100%;
	box-sizing: border-box;
}

.mnic-table-row-editor__cells {
	box-sizing: border-box;
	width: 100%;
}

/*
 * Colonne da contenuto (flex 1 1 auto): base dalla larghezza minima del contenuto, spazio extra ripartito in modo uniforme;
 * la riga editor resta al 100% (blocco riga a larghezza piena).
 */
.mnic-table-row-editor__cells.is-layout-flex > .block-editor-block-list__block,
.mnic-table-row-editor__cells.is-horizontal > .block-editor-block-list__block {
	display: flex;
	flex: 1 1 auto;
	min-width: 0;
}

/* Tabella con colonne “uguali”: stessa base flex su tutte le celle (anteprima editor). */
.mnic-advanced-table-editor--cols-equal .mnic-table-row-editor__cells.is-layout-flex > .block-editor-block-list__block,
.mnic-advanced-table-editor--cols-equal .mnic-table-row-editor__cells.is-horizontal > .block-editor-block-list__block {
	flex: 1 1 0%;
}

.mnic-table-row-editor__cells.is-layout-flex > .block-list-appender,
.mnic-table-row-editor__cells.is-horizontal > .block-list-appender {
	flex: 0 0 auto;
}

.mnic-table-cell-editor {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
	border: none;
	padding: 4px;
	box-sizing: border-box;
	text-align: center;
}

.mnic-table-cell-editor--header {
	font-weight: 600;
}

.mnic-table-cell-editor__inner {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.mnic-table-cell-editor__inner .block-list-appender {
	margin-top: 0.5rem;
	align-self: stretch;
}

.mnic-table-cell-editor figure.wp-block-image,
.mnic-table-cell-editor .wp-block-image {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin: 0;
	line-height: 0;
	max-width: 100%;
}

.mnic-table-cell-editor figure.wp-block-image img,
.mnic-table-cell-editor .wp-block-image img {
	display: block;
	height: auto;
	max-width: 100%;
}

.mnic-table-cell-editor figure.wp-block-image figcaption:empty {
	display: none;
}

/*
 * Accordion (core/accordion) — card arrotondate, crema, freccia primary-800.
 * Le dimensioni tipografiche restano da theme.json / classi (has-h-5-font-size, has-body-font-size).
 */
.wp-block-accordion.is-layout-flow {
	display: flex;
	flex-direction: column;
	gap: clamp(0.375rem, 1vw, 0.625rem);
}

.wp-block-accordion-item {
	box-sizing: border-box;
	padding: clamp(1.25rem, 3vw, 2rem) clamp(1.25rem, 3.5vw, 2.125rem);
	background-color: #fef7e6;
	border-radius: 30px;
}

.wp-block-accordion-heading {
	margin: 0;
}

.wp-block-accordion-heading__toggle {
	box-sizing: border-box;
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	text-align: left;
	cursor: pointer;
	color: #000;
	transition: color 0.2s ease;
}

.wp-block-accordion-item.is-open .wp-block-accordion-heading__toggle {
	color: #ab0e3c;
}

.wp-block-accordion-heading__toggle-title {
	flex: 1 1 auto;
	min-width: 0;
	font-weight: 700;
}

.wp-block-accordion-heading__toggle-icon {
	position: relative;
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	font-size: 0;
	line-height: 0;
	color: transparent;
	overflow: hidden;
	background-color: var(--wp--preset--color--primary-800);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M18.0001 16C17.7401 16 17.4901 15.9 17.2901 15.71L12.0001 10.42L6.71007 15.71C6.32007 16.1 5.69007 16.1 5.30007 15.71C4.91007 15.32 4.91007 14.69 5.30007 14.3L11.3001 8.30001C11.6901 7.91001 12.3201 7.91001 12.7101 8.30001L18.7101 14.3C19.1001 14.69 19.1001 15.32 18.7101 15.71C18.5101 15.91 18.2601 16 18.0001 16Z' fill='white'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M18.0001 16C17.7401 16 17.4901 15.9 17.2901 15.71L12.0001 10.42L6.71007 15.71C6.32007 16.1 5.69007 16.1 5.30007 15.71C4.91007 15.32 4.91007 14.69 5.30007 14.3L11.3001 8.30001C11.6901 7.91001 12.3201 7.91001 12.7101 8.30001L18.7101 14.3C19.1001 14.69 19.1001 15.32 18.7101 15.71C18.5101 15.91 18.2601 16 18.0001 16Z' fill='white'/%3E%3C/svg%3E");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 24px 24px;
	mask-size: 24px 24px;
	transform: rotate(0deg);
	transform-origin: 50% 50%;
	transition: transform 0.25s ease;
	transform: rotate(180deg) !important;
}

.wp-block-accordion-item.is-open .wp-block-accordion-heading__toggle-icon {
	transform: rotate(0) !important;
}

.wp-block-accordion-panel {
	margin-top: 0;
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	color: #000;
	transition: margin-top 0.25s ease, opacity 0.25s ease, max-height 0.35s ease, visibility 0.35s;
}

.wp-block-accordion-item.is-open .wp-block-accordion-panel {
	margin-top: clamp(0.875rem, 2vw, 1.25rem);
	max-height: 9999px;
	opacity: 1;
	visibility: visible;
}


/**
 * Tabella / area contenuti: menu filtri overlay (.menuFiltro) e stato filtro attivo (.filtroAttivo).
 * Il JS (`mnic-tabella-filtro.js`) usa .is-open sul menu e .is-active / .is-filtro-selected per lo stato.
 */
.menuFiltro {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 4;
}

.menuFiltro.is-open {
	display: block;
}

.closeFiltro {
	cursor: pointer;
}

.filtro {
	box-sizing: border-box;
	background-color: transparent;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.filtro:hover {
	background-color: rgba(255, 255, 255, 0.5);
}

.filtro.is-filtro-selected {
	background-color: rgba(255, 255, 255, 0.5);
}

.filtroAttivo {
	opacity: 0.45;
	transition: opacity 0.2s ease;
}

.filtroAttivo.is-active {
	opacity: 1 !important;
}

.filtroAttivo.is-active img {
	cursor: pointer;
}

a.rimuoviFiltro,
button.rimuoviFiltro,
.rimuoviFiltro[role='button'] {
	cursor: pointer;
}

/* Tabella: transizione sui figli delle celle .filtrato (stato senza filtro attivo sulla table). */
.mnic-advanced-table th.filtrato > *,
.mnic-advanced-table td.filtrato > *,
th.filtrato > *,
td.filtrato > * {
	transition: opacity 0.25s ease;
}

.mnic-advanced-table th.filtrato.is-mnic-filtro-contenuto-nascosto > *,
.mnic-advanced-table td.filtrato.is-mnic-filtro-contenuto-nascosto > *,
th.filtrato.is-mnic-filtro-contenuto-nascosto > *,
td.filtrato.is-mnic-filtro-contenuto-nascosto > * {
	opacity: 0;
	pointer-events: none;
}

/*
 * Filtro attivo (JS: .is-mnic-table-filtro-attivo + compatto verticale permutando le td nel tbody):
 * come senza filtro sulle celle: opacity 0 (non display:none) così l’altezza riga/cella resta quella del contenuto.
 */
table.is-mnic-table-filtro-attivo td.filtrato.is-mnic-filtro-contenuto-nascosto > *,
table.is-mnic-table-filtro-attivo th.filtrato.is-mnic-filtro-contenuto-nascosto > * {
	opacity: 0;
	pointer-events: none;
}

table.is-mnic-table-filtro-attivo td.filtrato:not(.is-mnic-filtro-contenuto-nascosto),
table.is-mnic-table-filtro-attivo th.filtrato:not(.is-mnic-filtro-contenuto-nascosto) {
	vertical-align: middle;
	text-align: center;
}

.ancora{
	position: absolute;
	top: -150px;
}

.noMB{
	margin-bottom: 0 !important;
}

footer{
    position: relative !important;
	margin-top: -64px !important;
    z-index: 3 !important;
}

/* -------------------------------------------------------------------------- *
 * Form contatti (blocco mnic/contact-form)
 * -------------------------------------------------------------------------- */

.mnic-contact-form {
	position: relative;
	box-sizing: border-box;
	max-width: 40rem;
	margin-inline: auto;
	padding: clamp(1.25rem, 3vw, 2.25rem);
	background-color: var(--wp--preset--color--primary-900);
	color: var(--wp--preset--color--neutral-50);
}

.mnic-contact-form__banner {
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	border-radius: 0.75rem;
	font-size: var(--wp--preset--font-size--body-s, 0.875rem);
	line-height: 1.4;
}

.mnic-contact-form__banner--success {
	background: rgba(255, 255, 255, 0.12);
	color: var(--wp--preset--color--neutral-50);
}

.mnic-contact-form__banner--error {
	background: rgba(255, 77, 77, 0.18);
	color: var(--wp--preset--color--neutral-50);
	border: 1px solid #ff4d4d;
}

.mnic-contact-form__form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.mnic-contact-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 1.25rem;
}

@media (max-width: 600px) {
	.mnic-contact-form__grid {
		grid-template-columns: 1fr;
	}
}

.mnic-contact-form__field--full {
	grid-column: 1 / -1;
}

.mnic-contact-form__field--row {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.mnic-contact-form__field--row .mnic-contact-form__error {
	flex-basis: 100%;
	margin-left: calc(1.1rem + 0.75rem);
}

.mnic-contact-form__label {
	display: block;
	margin-bottom: 0.35rem;
	color: var(--wp--preset--color--neutral-50);
	font-size: var(--wp--preset--font-size--body-xxs);
	font-weight: 500;
	line-height: 1.3;
}

.mnic-contact-form__input,
.mnic-contact-form__textarea,
.mnic-contact-form__select {
	width: 100%;
	box-sizing: border-box;
	border: 2px solid transparent;
	background-color: var(--wp--preset--color--primary-700);
	color: var(--wp--preset--color--neutral-50);
	font-size: var(--wp--preset--font-size--body);
	font-family: inherit;
	line-height: 1.4;
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mnic-contact-form__input,
.mnic-contact-form__select {
	border-radius: 999px;
	padding: 0.75rem 1rem;
	min-height: 2.75rem;
}

.mnic-contact-form__textarea {
	border-radius: 1.25rem;
	padding: 0.85rem 1rem;
	min-height: 10rem;
	resize: vertical;
}

.mnic-contact-form__input::placeholder,
.mnic-contact-form__textarea::placeholder {
	color: rgba(255, 255, 255, 0.62);
	opacity: 1;
}

.mnic-contact-form__input:focus-visible,
.mnic-contact-form__textarea:focus-visible,
.mnic-contact-form__select:focus-visible {
	box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.35);
}

.mnic-contact-form__select-wrap {
	position: relative;
}

.mnic-contact-form__select {
	appearance: none;
	padding-right: 2.75rem;
	cursor: pointer;
}

.mnic-contact-form__select-wrap::after {
	content: "";
	position: absolute;
	right: 1.1rem;
	top: 50%;
	width: 0.5rem;
	height: 0.5rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-70%) rotate(45deg);
	pointer-events: none;
	opacity: 0.9;
}

.mnic-contact-form__field.is-error .mnic-contact-form__input,
.mnic-contact-form__field.is-error .mnic-contact-form__textarea,
.mnic-contact-form__field.is-error .mnic-contact-form__select {
	border-color: var(--wp--preset--color--functional-alert);
}

.mnic-contact-form__error {
	margin: 0.35rem 0 0;
	padding: 0;
	font-size: var(--wp--preset--font-size--body-xxs);
	color: var(--wp--preset--color--functional-alert);
	line-height: 1.35;
}

.mnic-contact-form__checkbox {
	width: 1.1rem;
	height: 1.1rem;
	margin-top: 0.15rem;
	flex-shrink: 0;
	accent-color: var(--wp--preset--color--neutral-50);
	cursor: pointer;
}

.mnic-contact-form__check-label {
	flex: 1;
	min-width: 0;
	color: var(--wp--preset--color--neutral-50);
	line-height: 1.45;
	cursor: pointer;
}

.mnic-contact-form__privacy-link {
	text-decoration: underline;
	color: inherit;
}

.mnic-contact-form__submit {
	width: 100%;
	margin-top: 0.25rem;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--neutral-50);
	background-color: var(--wp--preset--color--primary-900);
	color: var(--wp--preset--color--neutral-50);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--body);
	padding: 0.85rem 1rem;
	cursor: pointer;
	transition: opacity 0.15s ease, background-color 0.15s ease;
}

.mnic-contact-form__submit:hover:not(:disabled) {
	background-color: var(--wp--preset--color--primary-800);
}

.mnic-contact-form__submit:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.mnic-contact-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.mnic-contact-form-editor {
	min-height: 12rem;
}


.scrollFlex{
	flex-wrap: nowrap !important;
    overflow-x: auto;
    overflow-y: hidden;
	max-width: calc(100vw - 1.5rem);
	width: calc(100vw - 1.5rem);
}

.scrollFlexItem{
	flex: 0 0 auto;
	flex-basis: auto !important;
    flex-grow: 0 !important;
    width: calc(100vw - 100px);
}



.catMob{
	width: 70%;
	aspect-ratio: 1/1;
	margin: auto;
}


.redDots .wp-block-group.is-layout-flex > .wp-block-group > .wp-block-group{
	position: relative;
	width: 12px;
	height: 12px;
	z-index: 2;
	margin-top: 7px;
}


.redDots .wp-block-group.is-layout-flex > .wp-block-group{
	margin-left: 10px;
	margin-right: 10px;
}


.redDots .wp-block-group.is-layout-flex > .wp-block-group:first-child::before{
	content: '';
    width: 28px;
    transform: translate(-50%, -50%);
    height: calc(100% + 1rem);
    background-color: var(--wp--preset--color--primary-700);
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
}


.redDots .wp-block-group.is-layout-flex:first-child > .wp-block-group:first-child::before{
	content: '';
    width: 28px;
    transform: translateX(-50%);
    background-color: var(--wp--preset--color--primary-700);
    position: absolute;
    top: -2px;
    left: 50%;
    border-top-left-radius: 24px;
    z-index: 1;
    border-top-right-radius: 24px;
}


.redDots .wp-block-group.is-layout-flex:last-child > .wp-block-group:first-child::before{
	content: '';
    width: 28px;
    transform: translateX(-50%);
    height: 28px;
    background-color: var(--wp--preset--color--primary-700);
    position: absolute;
	top: auto;
    bottom: calc(100% - 20px);
    left: 50%;
    border-bottom-left-radius: 24px;
    z-index: 1;
    border-bottom-right-radius: 24px;
}













.redDots .wp-block-group.is-layout-flex:first-child > .wp-block-group:first-child::after{
	content: '';
    width: 2px;
    transform: translate(-50%, 0);
    height: calc(100% + 1rem);
    background-color: var(--wp--preset--color--primary-400);
    position: absolute;
    top: 7px;
    left: 50%;
    z-index: 1;
}

.redDots .wp-block-group.is-layout-flex > .wp-block-group:first-child::after{
	content: '';
    width: 2px;
    transform: translate(-50%, -50%);
    height: calc(100% + 1rem);
    background-color: var(--wp--preset--color--primary-400);
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
}

.redDots .wp-block-group.is-layout-flex:last-child > .wp-block-group:first-child::after {
    content: '';
    width: 2px;
    transform: translate(-50%, 0);
    height: calc(12px + 1rem);
    background-color: var(--wp--preset--color--primary-400);
    position: absolute;
    top: auto;
    bottom: calc(100% - 1rem + 7px);
    left: 50%;
    z-index: 1;
}

.dBlock img{
	display: block;
}

/* Breakpoint ≤600px — regole da aggiungere qui. */
@media (max-width: 600px) {
	.iconLineStart.res::before {
		transform-origin: center left;
		transform: translateY(-50%) rotate(90deg);
		width: calc(70% + 2rem);
	}

	.iconLine.res::before {
		transform: translate(-50%, -50%) rotate(90deg);
		width: calc(100% + 2.3rem);
	}

	.iconLineEnd.res::before {
		transform-origin: center right;
		transform: translateY(-50%) rotate(90deg);
		width: calc(70% + 2rem);
	}
}

.square{
	aspect-ratio: 1/1;
}

/* Filtro tabella (mnic-tabella-filtro.js): nasconde le voci .filtratoM non corrispondenti allo slug attivo. */
.filtratoM.is-mnic-filtro-contenuto-nascosto {
	display: none;
}

@media (max-width: 600px) {
	.menuInternoContainer{
		display: none;
	}

	.scrollFlex td{
		min-width: 200px;
	}
}

.mobile .wp-block-accordion-item{
	padding: 4px !important;
}

.mobile .wp-block-accordion-item button{
	padding: .6rem 1.5rem !important;
}

.mobile.wp-block-accordion.is-layout-flow {
	gap: 4px;
}

.btnFiltriM{
	position: fixed;
	bottom: 10px;
	height: auto;
	width: calc(100% - 3rem);
	z-index: 1;
}

.featured{
	aspect-ratio: 16/5 !important;
}

@media (max-width: 600px) {
	.featured{
		aspect-ratio: 16/9 !important;
	}
}

.featList{
	aspect-ratio: 16/9 !important;
	overflow: hidden;
}

.megaMenuMobile{
	max-height: calc(100vh - 100px);
	overflow: scroll;
}

.megaMenu .wp-block-button__link{
	text-align: left;
}
