/* ==========================================================================
   Minigolf Olmo – design system
   Token (colori, font, scala) in theme.json. Qui: componenti e movimento.
   Concetto: il campo da minigolf come interfaccia. Bordi neri da 2px,
   ombre piene (mai sfumate), raggi per gerarchia: sezione 40 · card 24 · pulsante pillola.
   ========================================================================== */

:root {
	--mo-ink: var(--wp--preset--color--nero);
	--mo-paper: var(--wp--preset--color--bianco);
	--mo-yellow: var(--wp--preset--color--giallo);
	--mo-green: var(--wp--preset--color--verde);
	--mo-blue: var(--wp--preset--color--azzurro);
	--mo-red: var(--wp--preset--color--rosso);
	--mo-line: 2px solid var(--mo-ink);
	--mo-r-section: var(--wp--custom--radius--section, 40px);
	--mo-r-card: var(--wp--custom--radius--card, 24px);
	--mo-r-pill: 999px;
	--mo-shadow: 6px 6px 0 0 var(--mo-ink);
	--mo-shadow-s: 4px 4px 0 0 var(--mo-ink);
	--mo-shadow-l: 10px 10px 0 0 var(--mo-ink);
	--mo-ease: cubic-bezier(.2, .8, .2, 1);
	--mo-ease-bounce: cubic-bezier(.34, 1.56, .64, 1);
	--mo-header-h: 84px;
	--mo-pad: clamp(1.5rem, 4vw, 3rem);
	--mo-display: var(--wp--preset--font-family--display);

	--mo-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%23000'/%3E%3Cpath d='M7 12.5l3.2 3.2L17 9' fill='none' stroke='%23FEE701' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--mo-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.46.57 3.58a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E");
	--mo-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23fff' d='M16 3a13 13 0 0 0-11.2 19.6L3 29l6.6-1.7A13 13 0 1 0 16 3zm0 23.7c-2 0-4-.6-5.7-1.6l-.4-.2-3.9 1 1-3.8-.3-.4A10.7 10.7 0 1 1 16 26.7zm5.9-8c-.3-.2-1.9-1-2.2-1s-.5-.2-.7.1-.8 1-1 1.2-.4.2-.7.1a8.8 8.8 0 0 1-4.4-3.8c-.3-.6.3-.5 1-1.7.1-.2 0-.4 0-.6l-1-2.4c-.3-.6-.5-.5-.7-.5h-.6a1.2 1.2 0 0 0-.9.4 3.6 3.6 0 0 0-1.1 2.7 6.3 6.3 0 0 0 1.3 3.3 14.4 14.4 0 0 0 5.5 4.9c2 .9 2.8 1 3.9.8a3.3 3.3 0 0 0 2.1-1.5 2.7 2.7 0 0 0 .2-1.5c-.1-.2-.3-.3-.7-.5z'/%3E%3C/svg%3E");
	--mo-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");
	--mo-ball-a: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 120'%3E%3Ccircle cx='28' cy='30' r='17' fill='%23fff' stroke='%23000' stroke-width='3'/%3E%3Ccircle cx='104' cy='78' r='11' fill='%23FEE701' stroke='%23000' stroke-width='3'/%3E%3C/svg%3E");
	--mo-ball-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 120'%3E%3Ccircle cx='90' cy='44' r='24' fill='%235FB9DE' stroke='%23000' stroke-width='3'/%3E%3Ccircle cx='30' cy='92' r='13' fill='%23fff' stroke='%23000' stroke-width='3'/%3E%3Ccircle cx='122' cy='104' r='7' fill='%2357B620' stroke='%23000' stroke-width='3'/%3E%3C/svg%3E");
	--mo-cloud: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 90'%3E%3Cpath d='M38 80h128a24 24 0 0 0 2-48 34 34 0 0 0-64-14 26 26 0 0 0-42 18A22 22 0 0 0 38 80z' fill='%23fff' stroke='%23000' stroke-width='4' stroke-linejoin='round'/%3E%3C/svg%3E");
	--mo-dimples: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='5' cy='5' r='1.6' fill='%23000' opacity='.13'/%3E%3Ccircle cx='16' cy='16' r='1.6' fill='%23000' opacity='.13'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: clip; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
[id] { scroll-margin-top: calc(var(--mo-header-h) + 24px); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
h1, h2, h3, h4 { text-wrap: balance; }
p, li { text-wrap: pretty; }
img { height: auto; }
::selection { background: var(--mo-yellow); color: var(--mo-ink); }
.wp-site-blocks > * { margin-block: 0; }
.mo-sections > * + * { margin-block-start: 0; }
:focus-visible { outline: 3px solid var(--mo-ink); outline-offset: 3px; border-radius: 6px; }
.has-nero-background-color :focus-visible { outline-color: var(--mo-yellow); }
.screen-reader-text:focus { background: var(--mo-yellow); color: var(--mo-ink); }
.mo-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.5; max-width: 34ch; }
.mo-muted { color: var(--wp--preset--color--grigio); }
.has-text-align-center.mo-lead { margin-inline: auto; }

/* ---------- Pulsanti: affondano nell'ombra ---------- */
.wp-block-button__link,
.wp-element-button {
	box-shadow: var(--mo-shadow-s);
	transition: transform .18s var(--mo-ease), box-shadow .18s var(--mo-ease), background-color .2s, color .2s;
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
}
.wp-block-button__link:hover,
.wp-element-button:hover { transform: translate(-2px, -2px); box-shadow: var(--mo-shadow); }
.wp-block-button__link:active,
.wp-element-button:active { transform: translate(4px, 4px); box-shadow: 0 0 0 0 var(--mo-ink); }
.wp-block-button.is-style-mo-phone .wp-block-button__link { background: var(--mo-yellow); color: var(--mo-ink); }
.wp-block-button.is-style-mo-phone-light .wp-block-button__link { background: var(--mo-paper); color: var(--mo-ink); }
.wp-block-button.is-style-mo-phone .wp-block-button__link::before,
.wp-block-button.is-style-mo-phone-light .wp-block-button__link::before {
	content: ""; flex: 0 0 auto; width: 1.05em; height: 1.05em;
	background-color: currentColor;
	-webkit-mask: var(--mo-phone) center / contain no-repeat; mask: var(--mo-phone) center / contain no-repeat;
}
.wp-block-buttons { gap: .9rem; }
.has-nero-background-color .wp-block-button:not(.is-style-mo-phone-light):not(.is-style-outline) .wp-block-button__link { background: var(--mo-yellow); color: var(--mo-ink); border-color: var(--mo-yellow); }
.has-nero-background-color .wp-block-button__link { box-shadow: 4px 4px 0 0 var(--mo-yellow); }

/* ---------- Header: barra flottante ---------- */
.mo-header {
	position: sticky; top: 0; z-index: 50;
	padding-block: 14px; pointer-events: none;
	transition: transform .35s var(--mo-ease);
}
.admin-bar .mo-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .mo-header { top: 0; } }
.mo-header.is-hidden { transform: translateY(-120%); }
.mo-header__bar {
	pointer-events: auto;
	background: var(--mo-paper);
	border: var(--mo-line); border-radius: var(--mo-r-pill);
	box-shadow: var(--mo-shadow-s);
	padding: 8px 8px 8px 18px !important;
	gap: 1rem !important;
	min-height: 64px;
	transition: box-shadow .25s;
}
.mo-header.is-scrolled .mo-header__bar { box-shadow: var(--mo-shadow); }
.mo-header .wp-block-site-logo { flex: 0 0 auto; }
.mo-header .wp-block-site-logo img { width: 74px; height: auto; display: block; }
.mo-header .wp-block-navigation { flex: 1 1 auto; justify-content: center; }
.mo-header .wp-block-navigation .wp-block-navigation-item__content {
	padding: .55em .95em; border-radius: var(--mo-r-pill); text-decoration: none;
	transition: background-color .2s;
}
.mo-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.mo-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content { background: var(--mo-yellow); }
.mo-header .wp-block-buttons { flex: 0 0 auto; flex-wrap: nowrap; gap: .5rem; }
.mo-header .wp-block-button__link { padding: .8em 1.2em; font-size: .875rem; box-shadow: none; }
.mo-header .wp-block-button__link:hover { box-shadow: var(--mo-shadow-s); }
.mo-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none; }
@media (max-width: 599px) { .mo-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: inline-flex; } }
.mo-header .wp-block-navigation__responsive-container-open {
	width: 46px; height: 46px; border: var(--mo-line); border-radius: 50%;
	align-items: center; justify-content: center; background: var(--mo-yellow);
}
@media (max-width: 1080px) {
	.mo-header .mo-header__cta .is-style-mo-phone-light { display: none; }
}
@media (max-width: 599px) {
	:root { --mo-header-h: 72px; }
	.mo-header { padding-block: 10px; }
	.mo-header__bar { padding: 6px 6px 6px 14px !important; min-height: 56px; }
	.mo-header .wp-block-site-logo img { width: 60px; }
	.mo-header .wp-block-button__link { padding: .7em .95em; font-size: .8125rem; }
	.mo-header .wp-block-navigation { flex: 0 0 auto; order: 3; }
}

/* Menu a schermo intero */
.wp-block-navigation__responsive-container.is-menu-open {
	padding: clamp(1.25rem, 5vw, 3rem) !important;
	background-image: var(--mo-dimples) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4.5rem; gap: .35rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--mo-display); font-weight: 800; letter-spacing: -.04em; line-height: 1;
	font-size: clamp(2.4rem, 10vw, 5rem) !important; padding: .1em 0 !important; text-decoration: none;
	background: none !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover { text-decoration: underline; text-decoration-thickness: 5px; text-underline-offset: 8px; }
.wp-block-navigation__responsive-container-close {
	width: 50px; height: 50px; border: var(--mo-line); border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; background: var(--mo-paper);
	top: clamp(1.25rem, 5vw, 3rem) !important; right: clamp(1.25rem, 5vw, 3rem) !important;
}
@media (prefers-reduced-motion: no-preference) {
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { animation: mo-menu-in .5s var(--mo-ease) both; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: .04s; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: .08s; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: .12s; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay: .16s; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(6) { animation-delay: .2s; }
}
@keyframes mo-menu-in { from { opacity: 0; transform: translateY(28px); } }

/* ---------- Sezioni ---------- */
.is-style-mo-section-card {
	border: var(--mo-line); border-radius: var(--mo-r-section);
	padding: clamp(2rem, 6vw, 5.5rem) clamp(1.25rem, 5vw, 5rem) !important;
	position: relative; overflow: clip;
}
.is-style-mo-section-card > :first-child { margin-top: 0; }

/* ---------- Card ---------- */
.is-style-mo-card,
.is-style-mo-card-balls,
.is-style-mo-card-clouds,
.is-style-mo-card-soft {
	border: var(--mo-line);
	border-radius: var(--mo-r-card);
	padding: var(--mo-pad);
	position: relative;
}
:where(.is-style-mo-card, .is-style-mo-card-balls, .is-style-mo-card-clouds) > :first-child { margin-top: 0; }
:where(.is-style-mo-card, .is-style-mo-card-balls, .is-style-mo-card-clouds) > :last-child { margin-bottom: 0; }
.is-style-mo-card-balls, .is-style-mo-card-clouds { border-radius: var(--mo-r-section); padding-block: clamp(3rem, 7vw, 5.5rem); }
.is-style-mo-card-soft { background-color: var(--wp--preset--color--grigio-chiaro); padding: clamp(1rem, 3vw, 1.75rem); }
.is-style-mo-card-soft .wp-block-image { margin-block: 0; }
.is-style-mo-card-soft .wp-block-image img { max-height: 200px; width: auto; margin-inline: auto; display: block; }
.is-style-mo-card-balls::before, .is-style-mo-card-balls::after,
.is-style-mo-card-clouds::before, .is-style-mo-card-clouds::after {
	content: ""; position: absolute; pointer-events: none; background-repeat: no-repeat; background-size: contain; z-index: 0;
}
.is-style-mo-card-balls > *, .is-style-mo-card-clouds > * { position: relative; z-index: 1; }
.is-style-mo-card-balls::before { width: clamp(80px, 11vw, 140px); aspect-ratio: 140 / 120; top: -18px; left: 4%; background-image: var(--mo-ball-a); }
.is-style-mo-card-balls::after { width: clamp(90px, 13vw, 160px); aspect-ratio: 140 / 120; bottom: -22px; right: 5%; background-image: var(--mo-ball-b); }
.is-style-mo-card-clouds::before { width: clamp(90px, 13vw, 180px); aspect-ratio: 200 / 90; top: -22px; right: 6%; background-image: var(--mo-cloud); }
.is-style-mo-card-clouds::after { width: clamp(70px, 9vw, 120px); aspect-ratio: 200 / 90; bottom: -14px; left: 4%; background-image: var(--mo-cloud); }
@media (prefers-reduced-motion: no-preference) {
	.is-style-mo-card-balls::before, .is-style-mo-card-clouds::before { animation: mo-float 6s ease-in-out infinite; }
	.is-style-mo-card-balls::after, .is-style-mo-card-clouds::after { animation: mo-float 7s ease-in-out -2s infinite; }
}
@keyframes mo-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* Card cliccabili/da guardare: ombra piena solo dove serve */
.is-style-mo-card.has-background { box-shadow: var(--mo-shadow); }

/* Colonne sfalsate (desktop) */
@media (min-width: 782px) {
	.is-style-mo-stagger > .wp-block-column:nth-child(even) { margin-top: clamp(2rem, 6vw, 5rem); }
}

/* ---------- Immagini ---------- */
.wp-block-image.is-style-mo-framed img { border: var(--mo-line); border-radius: var(--mo-r-card); box-shadow: var(--mo-shadow); }
.wp-block-image.is-style-mo-avatar { margin: 0; flex: 0 0 auto; }
.wp-block-image.is-style-mo-avatar img { width: 52px; height: 52px; object-fit: cover; border-radius: 50%; border: var(--mo-line); }
.wp-block-image.is-style-mo-icon { margin-block: 0 .75rem; }
.wp-block-image.is-style-mo-icon img { width: 64px; height: 64px; object-fit: contain; }
.wp-block-image.is-style-mo-peek { margin-bottom: -4.5rem !important; position: relative; z-index: 2; }
.wp-block-image.is-style-mo-peek img { width: clamp(170px, 22vw, 260px); }
.wp-block-image.is-style-mo-peek + * { padding-top: clamp(5rem, 9vw, 7rem) !important; }
.wp-block-image.is-style-mo-tilt img {
	border: var(--mo-line); border-radius: var(--mo-r-card); box-shadow: var(--mo-shadow);
	aspect-ratio: 4 / 5; object-fit: cover; width: 100%;
}

/* Pila di foto (hero) */
.is-style-mo-photo-stack { position: relative; min-height: clamp(340px, 42vw, 560px); }
.is-style-mo-photo-stack > .wp-block-image { position: absolute; margin: 0; width: 58%; transition: transform .6s var(--mo-ease); }
.is-style-mo-photo-stack > .wp-block-image img { border: var(--mo-line); border-radius: var(--mo-r-card); box-shadow: var(--mo-shadow); aspect-ratio: 4 / 5; width: 100%; object-fit: cover; display: block; }
.is-style-mo-photo-stack > .wp-block-image:nth-child(1) { left: 0; top: 10%; transform: rotate(-7deg); z-index: 1; }
.is-style-mo-photo-stack > .wp-block-image:nth-child(2) { left: 21%; top: 0; transform: rotate(3deg); z-index: 3; }
.is-style-mo-photo-stack > .wp-block-image:nth-child(3) { right: 0; top: 16%; transform: rotate(9deg); z-index: 2; }
.is-style-mo-photo-stack > .wp-block-image:hover { z-index: 4; }
@media (max-width: 781px) {
	.is-style-mo-photo-stack { min-height: 0; aspect-ratio: 1 / .9; margin-top: 1rem; }
	.is-style-mo-photo-stack > .wp-block-image { width: 56%; }
}

/* ---------- Hero ---------- */
.mo-hero { position: relative; overflow: clip; }
.mo-hero h1 {
	font-size: var(--wp--preset--font-size--huge);
	line-height: .9; letter-spacing: -.055em; margin: 0;
}
.mo-hero .mo-lead { margin-top: 1.5rem; }
.mo-hero .wp-block-buttons { margin-top: 2rem; }
.mo-hero__path { position: absolute; left: 0; right: 0; bottom: 2%; width: 100%; height: clamp(110px, 14vw, 200px); pointer-events: none; z-index: 0; }
.mo-hero > * { position: relative; z-index: 1; }
.mo-hero__path path.mo-track { fill: none; stroke: var(--mo-ink); stroke-width: 2.5; stroke-dasharray: 2 12; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.mo-hero__path .mo-hole { fill: var(--mo-ink); }
.mo-hero__path .mo-flagpole { stroke: var(--mo-ink); stroke-width: 3; vector-effect: non-scaling-stroke; }
.mo-hero__path .mo-flag { fill: var(--mo-red); stroke: var(--mo-ink); stroke-width: 2; vector-effect: non-scaling-stroke; transform-box: fill-box; transform-origin: left center; }
.mo-hero__path .mo-ball { fill: var(--mo-paper); stroke: var(--mo-ink); stroke-width: 2; vector-effect: non-scaling-stroke; }
.mo-hero__path .mo-ripple { fill: none; stroke: var(--mo-ink); stroke-width: 2; vector-effect: non-scaling-stroke; opacity: 0; transform-box: fill-box; transform-origin: center; }
.mo-hero__path.is-holed .mo-ripple { animation: mo-ripple .9s var(--mo-ease) forwards; }
.mo-hero__path.is-holed .mo-flag { animation: mo-flag 1.2s ease-in-out 2; }
@keyframes mo-ripple { 0% { opacity: .9; transform: scale(.3); } 100% { opacity: 0; transform: scale(2.4); } }
@keyframes mo-flag { 0%, 100% { transform: skewY(0); } 50% { transform: skewY(-10deg) scaleX(.9); } }

/* Adesivo rotante */
.is-style-mo-sticker {
	--size: clamp(112px, 12vw, 150px);
	width: var(--size); height: var(--size); border-radius: 50%;
	background: var(--mo-red); border: var(--mo-line); box-shadow: var(--mo-shadow-s);
	display: grid !important; place-items: center; text-align: center;
	font-family: var(--mo-display); font-weight: 800; line-height: 1; letter-spacing: -.02em;
	font-size: calc(var(--size) * .11); padding: 1rem; margin: 0 !important; position: relative;
}
.is-style-mo-sticker.is-circular { font-size: 0; padding: 0; }
.is-style-mo-sticker svg.mo-sticker__ring { position: absolute; inset: 6%; width: 88%; height: 88%; }
.is-style-mo-sticker svg.mo-sticker__ring text { font-family: var(--mo-display); font-weight: 800; font-size: 13.4px; letter-spacing: .06em; fill: var(--mo-ink); }
.is-style-mo-sticker .mo-sticker__center { font-size: calc(var(--size) * .3); line-height: 1; }
@media (prefers-reduced-motion: no-preference) {
	.is-style-mo-sticker svg.mo-sticker__ring { animation: mo-spin 16s linear infinite; }
}
@keyframes mo-spin { to { transform: rotate(1turn); } }
.mo-hero .is-style-mo-sticker { position: absolute; z-index: 5; right: 2%; bottom: 4%; }
@media (max-width: 781px) { .mo-hero .is-style-mo-sticker { right: 14px; bottom: 18px; --size: 100px; } }

/* ---------- Nastro (marquee) ---------- */
.is-style-mo-marquee {
	background: var(--mo-ink); color: var(--mo-yellow);
	border-block: var(--mo-line);
	overflow: hidden; padding: 0 !important;
	transform: rotate(-1.6deg); margin-block: clamp(1.5rem, 4vw, 3rem) !important;
	width: calc(100% + 40px); margin-left: -20px !important; max-width: none !important;
}
.is-style-mo-marquee > p,
.is-style-mo-marquee .mo-marquee__item {
	font-family: var(--mo-display); font-weight: 800; letter-spacing: -.03em;
	font-size: clamp(1.6rem, 3.6vw, 3rem); line-height: 1; margin: 0; white-space: nowrap;
	display: inline-flex; align-items: center; gap: .6em; padding-right: .6em;
}
.is-style-mo-marquee > p::after,
.is-style-mo-marquee .mo-marquee__item::after {
	content: ""; width: .62em; height: .62em; border-radius: 50%;
	background: var(--mo-paper) var(--mo-dimples) center / 9px; flex: 0 0 auto;
}
.is-style-mo-marquee:not(.is-ready) { display: flex !important; gap: 0; padding-block: .55em !important; }
.mo-marquee__track { display: flex; width: max-content; padding-block: .55em; }
@media (prefers-reduced-motion: no-preference) {
	.mo-marquee__track { animation: mo-marquee var(--mo-marquee-dur, 32s) linear infinite; }
	.is-style-mo-marquee:hover .mo-marquee__track { animation-play-state: paused; }
}
@keyframes mo-marquee { to { transform: translateX(-50%); } }

/* ---------- Scorecard (tabella "Scheda del campo") ---------- */
.wp-block-table.is-style-mo-scorecard {
	margin: 0; border: var(--mo-line); border-radius: var(--mo-r-card); overflow: hidden;
	background: var(--mo-paper); box-shadow: var(--mo-shadow-l);
}
.wp-block-table.is-style-mo-scorecard table { border-collapse: collapse; width: 100%; font-size: 1rem; }
.wp-block-table.is-style-mo-scorecard thead { border-bottom: var(--mo-line); }
.wp-block-table.is-style-mo-scorecard th {
	background: var(--mo-ink); color: var(--mo-yellow); text-align: left;
	font-family: var(--mo-display); font-weight: 700; font-size: 1rem; letter-spacing: 0;
	padding: .9rem 1.25rem; border: 0;
}
.wp-block-table.is-style-mo-scorecard td { padding: 1.05rem 1.25rem; border: 0; border-top: 1px dashed rgba(0, 0, 0, .35); vertical-align: middle; }
.wp-block-table.is-style-mo-scorecard tr:first-child td { border-top: 0; }
.wp-block-table.is-style-mo-scorecard td:first-child { font-weight: 500; width: 42%; color: var(--wp--preset--color--grigio); }
.wp-block-table.is-style-mo-scorecard td:last-child { font-family: var(--mo-display); font-weight: 800; font-size: clamp(1.35rem, 2.6vw, 2rem); letter-spacing: -.03em; line-height: 1.05; }
.wp-block-table.is-style-mo-scorecard tbody tr:nth-child(even) { background: #FFFBD6; }
.wp-block-table.is-style-mo-scorecard figcaption { margin: 0; padding: .8rem 1.25rem; border-top: var(--mo-line); font-size: .8125rem; text-align: left; color: var(--wp--preset--color--grigio); }

/* ---------- Galleria orizzontale a scorrimento ----------
   La fila scorre di lato in base allo scroll della pagina (JS), senza bloccare la sezione. */
.mo-hscroll { position: relative; overflow: hidden; padding-block: 12px 4px; }
.wp-block-gallery.is-style-mo-hscroll {
	display: flex !important; flex-wrap: nowrap !important; gap: clamp(1rem, 2vw, 1.5rem) !important;
	margin: 0; padding: 6px 16px 18px max(16px, calc((100vw - var(--wp--style--global--wide-size, 1280px)) / 2));
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.wp-block-gallery.is-style-mo-hscroll::-webkit-scrollbar { display: none; }
.mo-hscroll.is-linked .wp-block-gallery.is-style-mo-hscroll { overflow: visible; scroll-snap-type: none; width: max-content; will-change: transform; }
.wp-block-gallery.is-style-mo-hscroll.has-nested-images figure.wp-block-image:not(#individual-image) {
	flex: 0 0 auto; width: clamp(220px, 28vw, 400px); margin: 0; scroll-snap-align: start;
}
.wp-block-gallery.is-style-mo-hscroll.has-nested-images figure.wp-block-image img {
	display: block; aspect-ratio: 4 / 5; object-fit: cover; width: 100%; height: auto;
	border: var(--mo-line); border-radius: var(--mo-r-card); box-shadow: var(--mo-shadow);
}
.wp-block-gallery.is-style-mo-hscroll.has-nested-images figure.wp-block-image:nth-child(3n+2) { transform: rotate(1.5deg); }
.wp-block-gallery.is-style-mo-hscroll.has-nested-images figure.wp-block-image:nth-child(3n) { transform: rotate(-1.5deg); }
.wp-block-gallery.is-style-mo-hscroll figcaption { display: none; }
.mo-hscroll__bar { height: 6px; border-radius: 6px; background: rgba(0, 0, 0, .12); margin: 1.25rem auto 0; max-width: 240px; overflow: hidden; }
.mo-hscroll__bar span { display: block; height: 100%; width: 100%; background: var(--mo-ink); transform-origin: left; transform: scaleX(var(--p, 0)); border-radius: inherit; }
.mo-hscroll.is-native .mo-hscroll__bar { display: none; }
@media (max-width: 600px) {
	.wp-block-gallery.is-style-mo-hscroll.has-nested-images figure.wp-block-image:not(#individual-image) { width: 62vw; }
}

/* ---------- Carosello (foto singola) ---------- */
.mo-carousel { position: relative; }
.wp-block-gallery.is-style-mo-carousel {
	display: flex !important; flex-wrap: nowrap !important; gap: 0 !important;
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
	border: var(--mo-line); border-radius: var(--mo-r-card); background: var(--mo-ink); margin: 0;
	overscroll-behavior-x: contain; box-shadow: var(--mo-shadow);
}
.wp-block-gallery.is-style-mo-carousel::-webkit-scrollbar { display: none; }
.wp-block-gallery.is-style-mo-carousel.has-nested-images figure.wp-block-image:not(#individual-image) {
	flex: 0 0 100%; width: 100%; margin: 0; scroll-snap-align: start; scroll-snap-stop: always; aspect-ratio: 4 / 3;
}
.wp-block-gallery.is-style-mo-carousel.has-nested-images figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.wp-block-gallery.is-style-mo-carousel figcaption { display: none; }
.mo-carousel__arrow {
	position: absolute; top: 50%; translate: 0 -50%; width: 46px; height: 46px; border-radius: 50%;
	border: var(--mo-line); background: var(--mo-paper); color: var(--mo-ink);
	display: grid; place-items: center; cursor: pointer; z-index: 2; box-shadow: var(--mo-shadow-s);
	transition: background-color .2s, transform .18s var(--mo-ease);
}
.mo-carousel__arrow:hover { background: var(--mo-yellow); }
.mo-carousel__arrow:active { transform: translate(2px, 2px); }
.mo-carousel__prev { left: 14px; }
.mo-carousel__next { right: 14px; }
.mo-carousel__next svg { transform: scaleX(-1); }
.mo-carousel__dots { display: flex; justify-content: center; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
.mo-carousel__dots button { width: 10px; height: 10px; padding: 0; border-radius: 50%; border: 2px solid var(--mo-ink); background: transparent; cursor: pointer; transition: width .25s, background-color .25s; }
.mo-carousel__dots button[aria-current="true"] { width: 28px; border-radius: 6px; background: var(--mo-ink); }

/* ---------- Elenchi ---------- */
.wp-block-list.is-style-mo-check { list-style: none; padding-left: 0; }
.wp-block-list.is-style-mo-check li { position: relative; padding-left: 2.1em; margin-block: .65em; font-weight: 500; }
.wp-block-list.is-style-mo-check li::before { content: ""; position: absolute; left: 0; top: .1em; width: 1.4em; height: 1.4em; background: var(--mo-check) center / contain no-repeat; }

/* Passi numerati: una vera sequenza (come si gioca) */
.wp-block-list.is-style-mo-steps {
	list-style: none; counter-reset: mo-step; padding: 0; margin: 0;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: clamp(1rem, 2vw, 1.5rem);
}
.wp-block-list.is-style-mo-steps > li {
	counter-increment: mo-step; position: relative;
	background: var(--mo-paper); border: var(--mo-line); border-radius: var(--mo-r-card);
	padding: 4.6rem 1.5rem 1.6rem; margin: 0; font-size: 1rem; line-height: 1.5;
}
.wp-block-list.is-style-mo-steps > li::before {
	content: counter(mo-step); position: absolute; top: 1.1rem; left: 1.5rem;
	width: 2.6rem; height: 2.6rem; border-radius: 50%; border: var(--mo-line); background: var(--mo-yellow);
	display: grid; place-items: center; font-family: var(--mo-display); font-weight: 800; font-size: 1.25rem;
}
.wp-block-list.is-style-mo-steps > li strong { display: block; font-family: var(--mo-display); font-size: 1.35rem; line-height: 1.1; letter-spacing: -.02em; margin-bottom: .35rem; }
@media (min-width: 900px) {
	.wp-block-list.is-style-mo-steps > li:not(:last-child)::after {
		content: ""; position: absolute; top: 2.4rem; left: calc(1.5rem + 2.6rem + .5rem); right: -1.5rem; border-top: 2px dashed var(--mo-ink); opacity: .5;
	}
}

/* Linea del tempo: storia del campo */
.wp-block-list.is-style-mo-timeline { list-style: none; padding: 0; margin: 0; position: relative; }
.wp-block-list.is-style-mo-timeline::before { content: ""; position: absolute; left: 11px; top: .6em; bottom: .6em; border-left: 2px dashed currentColor; opacity: .6; }
.wp-block-list.is-style-mo-timeline > li { position: relative; padding: 0 0 1.6rem 2.6rem; margin: 0; }
.wp-block-list.is-style-mo-timeline > li:last-child { padding-bottom: 0; }
.wp-block-list.is-style-mo-timeline > li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 24px; height: 24px; border-radius: 50%;
	border: var(--mo-line); background: var(--mo-paper) var(--mo-dimples) center / 9px;
}
.wp-block-list.is-style-mo-timeline > li strong { display: block; font-family: var(--mo-display); font-weight: 800; font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1; letter-spacing: -.035em; margin-bottom: .3rem; }

/* ---------- Recensioni ---------- */
.mo-reviews > .wp-block-column:nth-child(1) .is-style-mo-card { transform: rotate(-2deg); }
.mo-reviews > .wp-block-column:nth-child(2) .is-style-mo-card { transform: rotate(1.5deg); }
.mo-reviews > .wp-block-column:nth-child(3) .is-style-mo-card { transform: rotate(-1deg); }
.mo-reviews .is-style-mo-card { transition: transform .4s var(--mo-ease-bounce); }
.mo-reviews .is-style-mo-card:hover { transform: rotate(0) translateY(-4px); }
.mo-reviews .is-style-mo-card > p:first-child { font-size: 1.0625rem; line-height: 1.55; font-weight: 500; }
.mo-stars { color: var(--mo-ink); letter-spacing: .1em; font-size: 1rem; margin: 0; line-height: 1; }
.mo-review-name { margin: 0; font-weight: 600; }
.mo-bignum { font-family: var(--mo-display); font-weight: 800; letter-spacing: -.06em; line-height: .8; font-size: clamp(5rem, 14vw, 12rem); margin: 0; }

/* ---------- FAQ (blocco Dettagli) ---------- */
.wp-block-details {
	border-top: var(--mo-line); padding: 0; margin: 0 !important;
}
.wp-block-details:last-of-type { border-bottom: var(--mo-line); }
.wp-block-details summary {
	list-style: none; cursor: pointer; position: relative;
	padding: 1.35rem 3.5rem 1.35rem 0;
	font-family: var(--mo-display); font-weight: 700; font-size: clamp(1.2rem, 2.2vw, 1.6rem); line-height: 1.2; letter-spacing: -.02em;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: ""; position: absolute; right: 0; top: 50%; translate: 0 -50%;
	width: 42px; height: 42px; border-radius: 50%; border: var(--mo-line); background: var(--mo-paper) var(--mo-plus) center / 20px no-repeat;
	transition: transform .35s var(--mo-ease-bounce), background-color .2s;
}
.wp-block-details summary:hover::after { background-color: var(--mo-yellow); }
.wp-block-details[open] summary::after { transform: rotate(45deg); background-color: var(--mo-yellow); }
.wp-block-details > :not(summary) { margin: 0 0 1.4rem; max-width: 62ch; }
@supports (interpolate-size: allow-keywords) {
	:root { interpolate-size: allow-keywords; }
	.wp-block-details::details-content { height: 0; overflow: clip; transition: height .4s var(--mo-ease), content-visibility .4s allow-discrete; }
	.wp-block-details[open]::details-content { height: auto; }
}

/* ---------- Orari ---------- */
.mo-hours { width: 100%; border-collapse: collapse; font-size: 1rem; }
.mo-hours caption { text-align: left; font-family: var(--mo-display); font-weight: 800; font-size: 1.5rem; letter-spacing: -.02em; padding-bottom: .5rem; }
.mo-hours th, .mo-hours td { padding: .62rem .2rem; border-bottom: 1px dashed rgba(0, 0, 0, .35); text-align: left; font-weight: 400; }
.mo-hours td { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.mo-hours tr.is-today th, .mo-hours tr.is-today td { font-weight: 700; }
.mo-hours tr.is-today th::after { content: "oggi"; margin-left: .6em; font-size: .75rem; font-weight: 600; background: var(--mo-ink); color: var(--mo-yellow); padding: .15em .6em; border-radius: 99px; vertical-align: .1em; display: inline-block; white-space: nowrap; }
.mo-hours-wrap { display: grid; gap: clamp(1.5rem, 4vw, 3rem); grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); }
.mo-hours-block { min-width: 0; }
.mo-open-now { max-width: 100%; width: fit-content; }
@media (max-width: 480px) { p.mo-open-now { font-size: .875rem; } }
@media (min-width: 350px) { p.mo-open-now { white-space: nowrap; } }
@media (max-width: 480px) {
  #orari .is-style-mo-section-card { padding-left: 14px !important; padding-right: 20px !important; }
  #orari .is-style-mo-card { padding: 24px 20px !important; }
  .mo-hours th, .mo-hours td { padding-inline: 0; }
  .mo-hours td { white-space: nowrap; padding-left: .75rem; }
  .mo-hours th { white-space: nowrap; }
  .mo-hours caption { font-size: 1.35rem; }
}
.mo-hours-note { font-size: .875rem; margin-top: .75rem; }
.mo-open-now { display: inline-flex; align-items: center; gap: .5em; font-weight: 600; font-size: .9375rem; background: var(--mo-paper); border: var(--mo-line); border-radius: 99px; padding: .45em 1em .45em .8em; }
.mo-open-now::before { content: ""; width: .7em; height: .7em; border-radius: 50%; background: #9a9a9a; }
.mo-open-now.is-open::before { background: var(--mo-green); box-shadow: 0 0 0 4px rgba(87, 182, 32, .25); }

/* ---------- Pagine interne ---------- */
.mo-page-hero { position: relative; overflow: clip; }
.mo-page-hero h1 { margin: 0; font-size: var(--wp--preset--font-size--xxx-large); }
.mo-breadcrumb { font-size: .875rem; margin: 0 0 1.25rem; }
.mo-breadcrumb ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4em; }
.mo-breadcrumb li + li::before { content: "/"; margin-right: .4em; opacity: .5; }
.mo-breadcrumb a { text-underline-offset: 3px; }
.mo-prose h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 2.5rem; letter-spacing: -.025em; line-height: 1.1; }
.mo-prose h3 { font-size: var(--wp--preset--font-size--large); margin-top: 2rem; }

/* ---------- Footer ---------- */
.mo-footer { position: relative; overflow: clip; font-size: .9375rem; }
.mo-footer a { color: inherit; text-underline-offset: 3px; }
.mo-footer ul { list-style: none; padding: 0; margin: 0; }
.mo-footer li { margin-block: .45rem; }
.mo-footer h2 { font-family: var(--wp--preset--font-family--sora); font-size: .9375rem; font-weight: 600; letter-spacing: 0; line-height: 1.3; color: var(--mo-yellow); margin-bottom: .75rem; }
.mo-footer .wp-block-separator { border-top: 1px solid currentColor; opacity: .25; }
.mo-wordmark {
	font-family: var(--mo-display); font-weight: 800; letter-spacing: -.065em; line-height: .78;
	font-size: clamp(3rem, 13.4vw, 15.5rem); margin: 0; color: var(--mo-yellow); white-space: nowrap;
	user-select: none;
}
.mo-footer .wp-block-social-links .wp-social-link { background: var(--mo-yellow) !important; color: var(--mo-ink) !important; }
.mo-footer .mo-hours th, .mo-footer .mo-hours td { border-bottom-color: rgba(255, 255, 255, .22); padding-block: .4rem; }
.mo-footer .mo-hours tr.is-today th::after { background: var(--mo-yellow); color: var(--mo-ink); }
.mo-no-consent a[href$="#cookie-preferenze"] { display: none; }

/* WhatsApp + CTA mobile */
.mo-wa { position: fixed; right: 18px; bottom: 18px; z-index: 60; margin: 0 !important; }
.mo-wa p { margin: 0; }
.mo-wa a {
	display: block; width: 58px; height: 58px; border-radius: 50%;
	background: #25D366 var(--mo-wa) center / 30px no-repeat;
	border: var(--mo-line); box-shadow: var(--mo-shadow-s);
	font-size: 0; color: transparent; overflow: hidden; transition: transform .2s var(--mo-ease-bounce);
}
.mo-wa a:hover { transform: translateY(-3px) rotate(-8deg); }
.mo-mobile-cta { display: none !important; }
@media (max-width: 781px) {
	.mo-mobile-cta { display: flex !important; position: fixed; left: 16px; bottom: 22px; z-index: 60; margin: 0 !important; }
	.mo-footer { padding-bottom: calc(var(--wp--preset--spacing--40) + 88px) !important; }
	.wp-block-image.is-style-mo-tilt img { aspect-ratio: 4 / 3; }
}

/* ---------- Form (Fluent Forms) ---------- */
.fluentform .ff-el-group { margin-bottom: 1.1rem; }
.fluentform .ff-el-input--label label { font-weight: 600; font-size: .875rem; }
.fluentform .ff-el-form-control {
	border: var(--mo-line) !important; border-radius: 14px !important; padding: .85em 1em !important;
	font-family: inherit !important; font-size: 1rem !important;
	background: var(--mo-paper) !important; color: var(--mo-ink) !important;
	transition: box-shadow .18s var(--mo-ease) !important;
}
.fluentform .ff-el-form-control:focus { outline: none !important; box-shadow: var(--mo-shadow-s) !important; }
.fluentform .ff-el-form-check-label { font-size: .875rem; }
.fluentform .ff_t_c a { color: inherit; }
.fluentform .ff-btn-submit {
	background: var(--mo-ink) !important; color: var(--mo-yellow) !important;
	border: var(--mo-line) !important; border-radius: 999px !important;
	font-family: inherit !important; font-weight: 600 !important; padding: .95em 2.2em !important;
	box-shadow: 4px 4px 0 0 var(--mo-paper);
	transition: transform .18s var(--mo-ease), box-shadow .18s var(--mo-ease);
}
.fluentform .ff-btn-submit:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 0 var(--mo-paper); opacity: 1 !important; }
.fluentform .ff-message-success { border: var(--mo-line); border-radius: 16px; background: var(--mo-paper); box-shadow: none; }
.fluentform .error.text-danger { color: #8a0000; font-weight: 600; }

/* ---------- Banner cookie ---------- */
.mo-cookie {
	position: fixed; left: 16px; bottom: 16px; z-index: 100; box-sizing: border-box; width: min(420px, calc(100vw - 32px));
	background: var(--mo-paper); color: var(--mo-ink); border: var(--mo-line); border-radius: 22px; box-shadow: var(--mo-shadow);
	padding: 1.25rem 1.25rem 1.1rem; font-size: .875rem; line-height: 1.5;
}
.mo-cookie[hidden] { display: none; }
.mo-cookie__title { font-family: var(--mo-display); font-weight: 800; font-size: 1.25rem; letter-spacing: -.02em; margin: 0 0 .4rem; }
.mo-cookie__text { margin: 0 0 1rem; }
.mo-cookie__close { position: absolute; top: 8px; right: 10px; border: 0; background: none; font-size: 1.6rem; line-height: 1; cursor: pointer; padding: 4px 8px; color: inherit; }
.mo-cookie__prefs { display: none; margin: 0 0 1rem; gap: .5rem; flex-direction: column; }
.mo-cookie__prefs label { display: flex; align-items: center; gap: .5rem; }
.mo-cookie__prefs input { width: 18px; height: 18px; accent-color: var(--mo-ink); }
.mo-cookie.is-custom .mo-cookie__prefs { display: flex; }
.mo-cookie__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.mo-cookie__btn { flex: 1 1 auto; font: inherit; font-weight: 600; cursor: pointer; border: var(--mo-line); border-radius: 99px; padding: .65em 1em; background: var(--mo-paper); color: var(--mo-ink); transition: background-color .2s; }
.mo-cookie__btn:hover { background: var(--mo-yellow); }
.mo-cookie__btn[data-mo-consent="accept"] { background: var(--mo-ink); color: var(--mo-yellow); }
.mo-cookie__save { display: none; }
.mo-cookie.is-custom .mo-cookie__save { display: block; }
.mo-cookie.is-custom .mo-cookie__customize { display: none; }
@media (prefers-reduced-motion: no-preference) { .mo-cookie:not([hidden]) { animation: mo-pop .5s var(--mo-ease-bounce) 1.2s both; } }
@keyframes mo-pop { from { opacity: 0; transform: translateY(24px) scale(.96); } }

/* ==========================================================================
   Movimento
   Un solo momento "di regia" al caricamento (hero), poi movimento solo
   in risposta all'utente o allo scroll. Tutto disattivato con "riduci movimento".
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
	/* Hero: righe del titolo che salgono, foto che si aprono a ventaglio */
	.mo-js .mo-hero .mo-line { display: block; overflow: clip; padding-bottom: .06em; margin-bottom: -.06em; }
	.mo-js .mo-hero .mo-line > span { display: block; }
	.mo-js .mo-hero .mo-lead,
	.mo-js .mo-hero .wp-block-buttons { animation: mo-fade-up .8s var(--mo-ease) .55s both; }
	.mo-js .mo-hero .is-style-mo-photo-stack > .wp-block-image { animation: mo-fan 1s var(--mo-ease-bounce) both; }
	.mo-js .mo-hero .is-style-mo-photo-stack > .wp-block-image:nth-child(1) { --r: -7deg; animation-delay: .35s; }
	.mo-js .mo-hero .is-style-mo-photo-stack > .wp-block-image:nth-child(2) { --r: 3deg; animation-delay: .45s; }
	.mo-js .mo-hero .is-style-mo-photo-stack > .wp-block-image:nth-child(3) { --r: 9deg; animation-delay: .55s; }
	.mo-js .mo-hero .is-style-mo-sticker { animation: mo-sticker 0.7s var(--mo-ease-bounce) 2.6s both; }

	/* Titoli di sezione: maschera a righe allo scroll */
	.mo-js .mo-reveal-title .mo-line { display: block; overflow: clip; padding-bottom: .06em; margin-bottom: -.06em; }
	.mo-js .mo-reveal-title .mo-line > span { display: block; transform: translateY(105%); transition: transform .9s var(--mo-ease); transition-delay: calc(var(--i, 0) * 80ms); }
	.mo-js .mo-reveal-title.is-in .mo-line > span { transform: none; }

	/* Elementi che "cadono" in posizione */
	.mo-js .mo-reveal { opacity: 0; transform: translateY(40px) rotate(var(--rr, 0deg)); transition: opacity .7s var(--mo-ease), transform .9s var(--mo-ease-bounce); transition-delay: calc(var(--d, 0) * 1ms); }
	.mo-js .mo-reveal.is-in { opacity: 1; transform: none; }
	.mo-js .mo-reviews .mo-reveal.is-in .is-style-mo-card { transition-delay: 0s; }
}
@keyframes mo-line-up { to { transform: none; } }
@keyframes mo-fade-up { from { opacity: 0; transform: translateY(20px); } }
@keyframes mo-fan { from { opacity: 0; transform: translate(30%, 10%) rotate(0deg) scale(.85); } to { opacity: 1; transform: rotate(var(--r)); } }
@keyframes mo-sticker { from { opacity: 0; transform: scale(.2) rotate(-90deg); } }

/* Editor: niente animazioni, niente elementi fissi */
.editor-styles-wrapper * { animation: none !important; }
.editor-styles-wrapper .mo-reveal { opacity: 1 !important; transform: none !important; }
.editor-styles-wrapper .mo-header { position: relative; }
.editor-styles-wrapper .mo-wa, .editor-styles-wrapper .mo-mobile-cta { position: static; display: block !important; }
.editor-styles-wrapper .is-style-mo-marquee { transform: none; width: auto; margin-left: 0 !important; display: flex; flex-wrap: wrap; gap: 1rem; padding: 1rem !important; }
.editor-styles-wrapper .is-style-mo-photo-stack { min-height: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.editor-styles-wrapper .is-style-mo-photo-stack > .wp-block-image { position: static; width: auto; transform: none; }

/* Titolo hero a righe che salgono: solo su schermi grandi (su mobile è l'elemento LCP e deve comparire subito) */
@media (prefers-reduced-motion: no-preference) and (min-width: 900px) {
	.mo-js .mo-hero h1:not(.is-split) { opacity: 0; animation: mo-show 0s 1.6s forwards; }
	.mo-js .mo-hero .mo-line > span { transform: translateY(105%); animation: mo-line-up .9s var(--mo-ease) forwards; animation-delay: calc(var(--i, 0) * 90ms + 60ms); }
}
@keyframes mo-show { to { opacity: 1; } }

/* ---------- Pizzeria: foto inclinata + spicchio che gira scorrendo ---------- */
.mo-pizza-visual { position: relative; padding: 0 8% 12% 0; }
.mo-pizza-visual .is-style-mo-tilt { margin: 0; transform: rotate(-3deg); }
.mo-pizza-visual .mo-pizza-slice { position: absolute; right: -4%; bottom: -6%; width: 52%; margin: 0; z-index: 2; pointer-events: none; }
.mo-pizza-visual .mo-pizza-slice img { width: 100%; filter: drop-shadow(6px 6px 0 rgba(0, 0, 0, 1)); }
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.mo-pizza-visual .mo-pizza-slice img { animation: mo-slice linear both; animation-timeline: view(); animation-range: cover 0% cover 100%; }
	}
}
@keyframes mo-slice { from { transform: rotate(-24deg) translateY(30px); } to { transform: rotate(14deg) translateY(-20px); } }

/* Golfista della storia */
.mo-golfer { position: relative; padding-bottom: 28px; }
.mo-golfer img { max-width: min(340px, 78%); margin-inline: auto; display: block; position: relative; z-index: 1; }
.mo-golfer::before { content: ""; position: absolute; left: 4%; right: 4%; bottom: 0; height: 64px; border-radius: 50%; background: var(--mo-green); border: var(--mo-line); }
.mo-golfer::after { content: ""; position: absolute; left: 50%; translate: -50% 0; bottom: 18px; width: min(240px, 56%); height: 30px; border-radius: 50%; background: var(--mo-ink); z-index: 0; }
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.mo-golfer img { animation: mo-golfer linear both; animation-timeline: view(); animation-range: entry 0% cover 60%; }
	}
}
@keyframes mo-golfer { from { transform: translateY(18%) rotate(-6deg); } to { transform: none; } }

/* Form dentro card bianca: ombra nera */
.is-style-mo-card.has-bianco-background-color .fluentform .ff-btn-submit { box-shadow: var(--mo-shadow-s); }
.is-style-mo-card.has-bianco-background-color .fluentform .ff-btn-submit:hover { box-shadow: var(--mo-shadow); }
.is-style-mo-card.has-bianco-background-color { box-shadow: var(--mo-shadow); }

/* Titoli dei pannelli a due colonne: più compatti */
.is-style-mo-section-card .wp-block-columns h2 { font-size: clamp(2.2rem, 4.6vw, 3.6rem); }
.mo-sections .wp-block-column > h2.wp-block-heading:not(.has-text-align-center), .mo-sections .is-layout-flex > h2.wp-block-heading { max-width: 16ch; }
.mo-sections .has-text-align-center.wp-block-heading { margin-inline: auto; }
.mo-reviews { gap: 1.25rem !important; }
@media (max-width: 781px) {
	.mo-reviews > .wp-block-column .is-style-mo-card { transform: none !important; }
	.mo-pizza-visual { padding: 0 10% 14% 0; }
	.mo-pizza-visual .mo-pizza-slice { width: 40%; bottom: -2%; }
	.mo-golfer img { max-width: 220px; }
	.is-style-mo-card-soft .wp-block-image img { max-height: 150px; }
}

/* Recensioni: riga intestazione + tre card */
.mo-reviews-head { align-items: flex-end !important; }
.mo-reviews-head .mo-bignum { margin-bottom: -.06em; }
@media (min-width: 782px) { .mo-reviews { margin-top: var(--wp--preset--spacing--50) !important; } }

/* Menu mobile aperto: niente pulsanti fissi sopra */
html.has-modal-open .mo-wa,
html.has-modal-open .mo-mobile-cta,
html.has-modal-open .mo-cookie { display: none !important; }

.mo-hours-block a[href^="tel:"] { white-space: nowrap; }

/* ---------- Avviso chiusure (in cima alle pagine) ---------- */
.mo-notice { background: var(--mo-ink); color: var(--mo-yellow); position: relative; z-index: 51; }
.mo-notice__inner {
	max-width: var(--wp--style--global--wide-size, 1280px); margin: 0 auto;
	padding: .7rem clamp(1rem, 4vw, 2.5rem); display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .35rem 1.25rem;
	font-weight: 600; font-size: .9375rem; line-height: 1.35; text-align: center;
}
.mo-notice p { margin: 0; }
.mo-notice p::before { content: "📣"; margin-right: .5em; }
.mo-notice__link { color: var(--mo-yellow); text-underline-offset: 3px; white-space: nowrap; }
.mo-hours-alert {
	margin: 0 0 1rem; padding: .75rem 1rem; border: var(--mo-line); border-radius: 14px;
	background: var(--mo-yellow); font-weight: 600; line-height: 1.4;
}
.mo-hours-special { font-size: .7rem; font-weight: 600; background: var(--mo-red); color: var(--mo-ink); border: 1.5px solid var(--mo-ink); border-radius: 99px; padding: .05em .55em; margin-left: .4em; vertical-align: .15em; }
.mo-hours-alerts { margin-bottom: 1.25rem; }
.mo-hours-alerts .mo-hours-alert:last-child { margin-bottom: 0; }
