/* Terra Mia – stili complementari a theme.json */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

:where(a, button, input, select, textarea, .wp-element-button):focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

/* ---------- Intestazione ---------- */
.tm-topbar { font-size: var(--wp--preset--font-size--small); }
.tm-topbar a { color: inherit; text-decoration: none; }
.tm-topbar a:hover { text-decoration: underline; }

/* Intestazione fissa: barra info + header restano in alto durante lo scorrimento */
.tm-site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	margin: 0 !important;
	transition: box-shadow .25s ease;
}
body { padding-top: var(--tm-header-h, 132px); }
.wp-site-blocks > .tm-site-header + * { margin-top: 0 !important; }
.admin-bar .tm-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .tm-site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .tm-site-header { top: 0; position: fixed; } }

.tm-header {
	/* niente backdrop-filter: renderebbe il menu mobile confinato dentro l'header */
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--wp--preset--color--sand);
	transition: padding .25s ease;
}
/* Dopo lo scorrimento: la barra info si chiude e l'header si compatta */
.tm-topbar { max-height: 6rem; overflow: hidden; transition: max-height .25s ease, padding .25s ease; }
.tm-site-header.is-scrolled { box-shadow: 0 10px 30px -18px rgba(42, 34, 29, .45); }
.tm-site-header.is-scrolled .tm-topbar { max-height: 0; padding-top: 0 !important; padding-bottom: 0 !important; }
.tm-site-header.is-scrolled .tm-header { padding-top: .55rem !important; padding-bottom: .55rem !important; }

/* Gli ancoraggi interni non finiscono sotto l'header */
html { scroll-padding-top: calc(var(--tm-header-h, 132px) + 1rem); }

.tm-header .wp-block-site-title { margin: 0; line-height: 1; }
.tm-header .wp-block-site-logo img { max-height: 56px; width: auto; }
.tm-logo { margin: 0 !important; line-height: 0; flex-shrink: 0; }
.tm-logo img { display: block; transition: height .25s ease; }
.tm-header .tm-logo img { height: 50px !important; }
.tm-site-header.is-scrolled .tm-logo img { height: 40px !important; }
@media (max-width: 599px) { .tm-header .tm-logo img { height: 40px !important; } }

/* Menu compatto accanto al logo; pulsante Prenota mai spezzato */
.tm-header .wp-block-navigation { font-size: 1rem; }
.tm-header .wp-block-navigation__container { gap: 0.4rem 1rem !important; flex-wrap: nowrap; }
.tm-header .wp-block-navigation-item__content { white-space: nowrap; }
.tm-header-cta .wp-block-button__link { white-space: nowrap; }

/* Sotto i 1280px il menu diventa a scomparsa (icona) anche su tablet e portatili piccoli */
@media (min-width: 600px) and (max-width: 1280px) {
	.tm-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.tm-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.tm-tagline { margin: 0.2rem 0 0 !important; }

.wp-block-navigation .wp-block-navigation-item__content { padding-block: 0.35rem; }
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation .wp-block-navigation-item__content[aria-current="page"] {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	text-underline-offset: 0.35em;
	text-decoration-thickness: 2px;
}
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
	padding: 1.5rem !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	gap: 1rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
}

@media (max-width: 599px) {
	.tm-header-cta { display: none !important; }
}

/* ---------- Tipografia di servizio ---------- */
.is-style-eyebrow {
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}
.has-primary-dark-background-color .is-style-eyebrow,
.has-olive-dark-background-color .is-style-eyebrow,
.has-contrast-background-color .is-style-eyebrow,
.wp-block-cover .is-style-eyebrow { color: var(--wp--preset--color--sand); }

.tm-ornament {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	color: var(--wp--preset--color--olive);
}
.tm-ornament::before,
.tm-ornament::after {
	content: "";
	height: 1px;
	flex: 1;
	background: currentColor;
	opacity: 0.35;
}

/* ---------- Schede ---------- */
.is-style-card {
	background: var(--wp--preset--color--base-2);
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--40);
	box-shadow: var(--wp--custom--shadow);
	height: 100%;
}
.is-style-card > :first-child { margin-top: 0; }

/* ---------- Servizi home (icone) ---------- */
.tm-servizi-home .tm-service-icons {
	list-style: none;
	margin: var(--wp--preset--spacing--50) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 4vw, 2.75rem);
}
.tm-servizi-home .tm-service-icons__item {
	margin: 0;
	padding: 0;
	text-align: center;
}
.tm-servizi-home .tm-service-icons__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1.1rem;
	color: var(--wp--preset--color--primary);
}
.tm-servizi-home .tm-ico {
	width: clamp(4.75rem, 12vw, 5.75rem);
	height: clamp(4.75rem, 12vw, 5.75rem);
	display: block;
}
.tm-servizi-home .tm-ico__disc {
	fill: var(--wp--preset--color--sand);
}
.tm-servizi-home .tm-ico__ring {
	fill: none;
	stroke: var(--wp--preset--color--primary);
	stroke-width: 2.25;
	opacity: 0.35;
}
.tm-servizi-home .tm-ico__plate {
	fill: color-mix(in srgb, var(--wp--preset--color--base-2) 70%, var(--wp--preset--color--sand));
	stroke: var(--wp--preset--color--primary);
	stroke-width: 2;
}
.tm-servizi-home .tm-ico__main {
	fill: none;
	stroke: var(--wp--preset--color--primary);
	stroke-width: 2.25;
}
.tm-servizi-home .tm-ico__accent-fill {
	fill: color-mix(in srgb, var(--wp--preset--color--olive) 22%, var(--wp--preset--color--sand));
	stroke: none;
}
.tm-servizi-home .tm-ico__accent-stroke {
	fill: none;
	stroke: var(--wp--preset--color--olive);
	stroke-width: 2;
}
.tm-servizi-home .tm-ico__steam {
	fill: none;
	stroke: var(--wp--preset--color--olive);
	stroke-width: 2;
	opacity: 0.7;
}
.tm-servizi-home .tm-ico__check {
	fill: none;
	stroke: var(--wp--preset--color--primary);
	stroke-width: 2.5;
}
.tm-servizi-home .tm-service-icons__title {
	margin: 0 0 0.4rem;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.2rem, 1.6vw, 1.4rem);
	font-weight: 600;
	line-height: 1.25;
}
.tm-servizi-home .tm-service-icons__text {
	margin: 0 auto;
	max-width: 22ch;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	opacity: 0.88;
}
.tm-servizi-home .tm-service-icons__link {
	margin: 0.85rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}
@media (max-width: 781px) {
	.tm-servizi-home .tm-service-icons {
		grid-template-columns: 1fr;
		gap: 1.75rem;
		max-width: 28rem;
		margin-inline: auto;
	}
}

/* ---------- Cosa proponiamo (#eventi) — fasce orarie in orizzontale ---------- */
.tm-eventi .tm-dayparts {
	list-style: none;
	margin: var(--wp--preset--spacing--50) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.25rem, 3vw, 2rem);
	counter-reset: tm-daypart;
}
.tm-eventi .tm-dayparts__item {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	min-width: 0;
	counter-increment: tm-daypart;
	position: relative;
}
.tm-eventi .tm-dayparts__when {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding-top: 0.85rem;
	border-top: 2px solid var(--wp--preset--color--primary);
}
.tm-eventi .tm-dayparts__when::before {
	content: counter(tm-daypart, decimal-leading-zero);
	position: absolute;
	top: -0.15rem;
	right: 0;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--primary);
	opacity: 0.55;
}
.tm-eventi .tm-dayparts__label {
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.15rem, 1.5vw, 1.35rem);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--primary);
}
.tm-eventi .tm-dayparts__slot {
	font-size: var(--wp--preset--font-size--small);
	opacity: 0.7;
	letter-spacing: 0.02em;
}
.tm-eventi .tm-dayparts__body {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	flex: 1;
}
.tm-eventi .tm-dayparts__media {
	margin: 0;
	overflow: hidden;
	border-radius: var(--wp--custom--radius--small);
	aspect-ratio: 4 / 3;
}
.tm-eventi .tm-dayparts__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.tm-eventi .tm-dayparts__copy {
	display: flex;
	flex-direction: column;
	flex: 1;
}
.tm-eventi .tm-dayparts__title {
	margin: 0 0 0.4rem;
	font-size: clamp(1.15rem, 1.5vw, 1.35rem);
	line-height: 1.25;
}
.tm-eventi .tm-dayparts__text {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	opacity: 0.9;
}
.tm-eventi .tm-dayparts__link {
	margin: auto 0 0;
	padding-top: 0.75rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}
@media (max-width: 781px) {
	.tm-eventi .tm-dayparts {
		display: flex;
		flex-direction: row;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		gap: 1rem;
		padding-bottom: 0.35rem;
		overscroll-behavior-x: contain;
	}
	.tm-eventi .tm-dayparts::-webkit-scrollbar { display: none; }
	.tm-eventi .tm-dayparts__item {
		flex: 0 0 min(78vw, 20rem);
		scroll-snap-align: start;
	}
}

.is-style-arch img {
	border-radius: 999px 999px var(--wp--custom--radius--medium) var(--wp--custom--radius--medium) !important;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

/* ---------- Orari ---------- */
.is-style-hours { list-style: none; padding-left: 0; margin: 0; }
.is-style-hours li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.55rem 0;
	border-bottom: 1px dashed color-mix(in srgb, currentColor 30%, transparent);
}
.is-style-hours li:last-child { border-bottom: 0; }
.is-style-hours strong { font-weight: 600; }

/* ---------- Pulsanti ---------- */
.wp-element-button, .wp-block-button__link { transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 2px solid currentColor;
	background: transparent;
	color: var(--wp--preset--color--primary);
	padding: calc(0.8rem - 2px) calc(1.6rem - 2px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base-2); border-color: var(--wp--preset--color--primary); }
.wp-block-button.is-style-light > .wp-block-button__link { background: var(--wp--preset--color--base-2); color: var(--wp--preset--color--primary-dark); }
.wp-block-button.is-style-light > .wp-block-button__link:hover { background: var(--wp--preset--color--sand); }

/* ---------- Hero ---------- */
.tm-hero { min-height: min(88vh, 760px); }
.tm-hero .wp-block-cover__inner-container { max-width: var(--wp--style--global--wide-size); }
.tm-hero h1 { text-wrap: balance; }
.tm-hero .tm-hero-lead { max-width: 36rem; }
.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--base-2); }
.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--base-2); color: var(--wp--preset--color--primary-dark); border-color: var(--wp--preset--color--base-2); }

/* ---------- Hero slider ---------- */
.tm-hero-slider {
	position: relative;
	isolation: isolate;
	min-height: min(88vh, 760px);
	color: var(--wp--preset--color--base-2);
	background: var(--wp--preset--color--contrast);
	overflow: hidden;
}
.tm-hero-slider:focus { outline: none; }
.tm-hero-slider:focus-visible { outline: 2px solid var(--wp--preset--color--base-2); outline-offset: -6px; }
.tm-hero-slider__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.9s ease, visibility 0.9s ease;
	pointer-events: none;
}
.tm-hero-slider__slide.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	z-index: 1;
}
.tm-hero-slider__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.04);
	transition: transform 6.5s ease-out;
}
.tm-hero-slider__slide.is-active .tm-hero-slider__media { transform: scale(1); }
.tm-hero-slider__shade {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(30, 24, 18, 0.78) 0%, rgba(30, 24, 18, 0.45) 48%, rgba(30, 24, 18, 0.28) 100%),
		linear-gradient(0deg, rgba(30, 24, 18, 0.55) 0%, transparent 42%);
}
.tm-hero-slider__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: min(88vh, 760px);
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(5rem, 12vh, 7rem) clamp(1.25rem, 4vw, 2rem);
}
.tm-hero-slider__content > * { max-width: 40rem; }
.tm-hero-slider__eyebrow {
	margin: 0 0 0.85rem;
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--wp--preset--color--base-2) 82%, transparent);
}
.tm-hero-slider__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--fraunces), serif;
	font-size: clamp(2.4rem, 5.4vw, 4.4rem);
	line-height: 1.05;
	text-wrap: balance;
	color: var(--wp--preset--color--base-2);
}
.tm-hero-slider__lead {
	margin: 1rem 0 0;
	max-width: 34rem;
	font-size: clamp(1.05rem, 1.6vw, 1.25rem);
	line-height: 1.5;
	color: color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent);
}
.tm-hero-slider__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.75rem;
}
.tm-hero-slider__actions a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.85rem;
	padding: 0.7rem 1.35rem;
	border-radius: var(--wp--custom--radius--small, 4px);
	text-decoration: none;
	font-weight: 600;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.tm-hero-slider__actions a:first-child {
	background: var(--wp--preset--color--base-2);
	color: var(--wp--preset--color--primary-dark);
}
.tm-hero-slider__actions a:first-child:hover {
	background: var(--wp--preset--color--sand);
}
.tm-hero-slider__actions a:last-child {
	border: 1.5px solid color-mix(in srgb, var(--wp--preset--color--base-2) 80%, transparent);
	color: var(--wp--preset--color--base-2);
	background: transparent;
}
.tm-hero-slider__actions a:last-child:hover {
	background: var(--wp--preset--color--base-2);
	color: var(--wp--preset--color--primary-dark);
	border-color: var(--wp--preset--color--base-2);
}
.tm-hero-slider__nav {
	position: absolute;
	z-index: 3;
	left: clamp(1.25rem, 4vw, 2rem);
	right: clamp(1.25rem, 4vw, 2rem);
	bottom: 1.4rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.tm-hero-slider__dots {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}
.tm-hero-slider__dots button {
	width: 0.55rem;
	height: 0.55rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--base-2) 45%, transparent);
	cursor: pointer;
}
.tm-hero-slider__dots button[aria-current="true"] {
	background: var(--wp--preset--color--base-2);
	transform: scale(1.35);
}
.tm-hero-slider__arrows {
	display: flex;
	gap: 0.45rem;
}
.tm-hero-slider__arrows button {
	width: 2.4rem;
	height: 2.4rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--base-2) 55%, transparent);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--base-2);
	cursor: pointer;
	font-size: 1rem;
	line-height: 1;
}
.tm-hero-slider__arrows button:hover {
	background: var(--wp--preset--color--base-2);
	color: var(--wp--preset--color--contrast);
}
@media (prefers-reduced-motion: reduce) {
	.tm-hero-slider__slide,
	.tm-hero-slider__media { transition: none; }
}

/* Banda con motivo a maiolica */
.tm-tiles {
	background-image: url("../images/maiolica.svg");
	background-size: 120px 120px;
}

/* ---------- Piè di pagina ---------- */
.tm-footer a { color: inherit; }
.tm-footer .is-style-hours li { border-bottom-color: rgba(247, 241, 230, 0.2); }
.tm-footer .wp-block-social-links { gap: 0.6rem; }

/* ---------- Contenuti ---------- */
.wp-block-post-content > * + h2 { margin-top: var(--wp--preset--spacing--50); }
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table td, .wp-block-table th { border: 0; border-bottom: 1px solid var(--wp--preset--color--sand); padding: 0.6rem 0.4rem; }
.wp-block-table thead { border-bottom: 2px solid var(--wp--preset--color--contrast); }

/* Moduli (Contact Form 7, Ultimate Member, prenotazioni) */
:where(.wp-block-post-content) :where(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="date"], input[type="time"], input[type="number"], select, textarea) {
	width: 100%;
	padding: 0.75rem 0.9rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--base-2);
	font: inherit;
	color: inherit;
}
:where(.wp-block-post-content) :where(input, select, textarea):focus { border-color: var(--wp--preset--color--primary); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--primary) 22%, transparent); }
:where(.wp-block-post-content) :where(input[type="submit"], button[type="submit"]) {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base-2);
	border: 0;
	border-radius: 999px;
	padding: 0.8rem 1.8rem;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
:where(.wp-block-post-content) :where(input[type="submit"], button[type="submit"]):hover { background: var(--wp--preset--color--primary-dark); }

/* Voci di menù (usate dal plugin Terra Mia Core) */
.tm-dish { display: grid; grid-template-columns: 1fr auto; gap: 0.25rem 1rem; padding: 1rem 0; border-bottom: 1px dashed var(--wp--preset--color--sand); }
.tm-dish__name { font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--large); margin: 0; }
.tm-dish__price { font-weight: 700; color: var(--wp--preset--color--primary-dark); white-space: nowrap; }
.tm-dish__desc { grid-column: 1 / -1; color: var(--wp--preset--color--muted); margin: 0; }
.tm-dish.is-unavailable { opacity: 0.55; }
.tm-dish.is-unavailable .tm-dish__name { text-decoration: line-through; }

/* Menu a scomparsa aperto: voci grandi, allineate a sinistra */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	align-items: flex-start !important;
	justify-content: flex-start !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { flex-wrap: wrap; gap: 1.1rem !important; padding-top: 2rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.5rem, 4vw, 2rem);
	font-weight: 500;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; text-align: left; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list { align-items: flex-start !important; width: 100%; gap: 1.1rem; }

/* ---------- Pagina Menù ---------- */
.tm-menu-avviso { background: #FFF3D6; border: 1px dashed var(--wp--preset--color--primary); border-radius: var(--wp--custom--radius--small); padding: 0.75rem 1rem; font-size: var(--wp--preset--font-size--small); }
.tm-menu-nav { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.tm-menu-nav a {
	text-decoration: none;
	padding: 0.4rem 0.95rem;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 999px;
	background: var(--wp--preset--color--base-2);
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
}
.tm-menu-nav a:hover { border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); }
.tm-menu-cat {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-top: var(--wp--preset--spacing--60) !important;
	color: var(--wp--preset--color--primary-dark);
}
.tm-menu-cat::after { content: ""; flex: 1; height: 1px; background: var(--wp--preset--color--sand); }
.tm-dish { margin-top: 0 !important; }
.tm-dish > * { margin: 0 !important; }
.tm-dish__name { font-size: var(--wp--preset--font-size--large) !important; }
.tm-dish__allergeni {
	display: inline-block;
	margin-left: 0.35rem;
	font-size: 0.8em;
	font-weight: 600;
	color: var(--wp--preset--color--olive);
	white-space: nowrap;
}
.tm-allergeni { columns: 2; column-gap: 2rem; font-size: var(--wp--preset--font-size--small); }
@media (max-width: 599px) { .tm-allergeni { columns: 1; } }

/* ---------- Pagina Servizi ---------- */
.tm-servizio .wp-block-media-text__media img { border-radius: var(--wp--custom--radius--medium); aspect-ratio: 4 / 3; object-fit: cover; }
.tm-servizio .wp-block-media-text__content { padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); }
@media (max-width: 600px) { .tm-servizio .wp-block-media-text__content { padding: 1.25rem 0 0; } }
.tm-check { list-style: none; padding-left: 0; }
.tm-check li { position: relative; padding-left: 1.6rem; margin-bottom: 0.4rem; }
.tm-check li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--wp--preset--color--olive); }
.tm-header .wp-block-page-list { flex-wrap: nowrap; gap: 0.4rem 1rem !important; }

/* ---------- Instagram ---------- */
.tm-ig h2 a { color: inherit; text-decoration: none; }
.tm-ig h2 a:hover { color: var(--wp--preset--color--primary); }
.tm-ig-button .wp-block-button__link { display: inline-flex; align-items: center; gap: 0.55rem; }
.tm-ig-button .wp-block-button__link::before {
	content: "";
	width: 1.15em;
	height: 1.15em;
	background: currentColor;
	-webkit-mask: url("../images/instagram.svg") center / contain no-repeat;
	mask: url("../images/instagram.svg") center / contain no-repeat;
}
.tm-ig-grid.wp-block-gallery.has-nested-images figure.wp-block-image { aspect-ratio: 1; overflow: hidden; border-radius: var(--wp--custom--radius--small); }
.tm-ig-grid.wp-block-gallery.has-nested-images figure.wp-block-image img { aspect-ratio: 1; height: 100%; object-fit: cover; transition: transform .45s ease; }
.tm-ig-grid figure.wp-block-image a { position: relative; display: block; height: 100%; }
.tm-ig-grid figure.wp-block-image a::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(126, 52, 24, 0.55) url("../images/instagram-bianco.svg") center / 2.5rem no-repeat;
	opacity: 0;
	transition: opacity .3s ease;
}
.tm-ig-grid figure.wp-block-image a:hover::after,
.tm-ig-grid figure.wp-block-image a:focus-visible::after { opacity: 1; }
.tm-ig-grid figure.wp-block-image a:hover img { transform: scale(1.05); }
@media (max-width: 599px) {
	.tm-ig-grid.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: calc(50% - 0.375rem) !important; }
}

/* ---------- Sezioni scure (Home a fasce alterne) ---------- */
.tm-dark { color: var(--wp--preset--color--base); }
.tm-dark :where(h1, h2, h3, h4) { color: var(--wp--preset--color--base-2); }
.tm-dark .is-style-eyebrow { color: #E9B98F; }
.tm-dark .has-muted-color { color: #CFC3B1 !important; }
.tm-dark a:where(:not(.wp-element-button)) { color: #F2D3B3; }
.tm-dark a:where(:not(.wp-element-button)):hover { color: var(--wp--preset--color--base-2); }
.tm-dark .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--base-2); border-color: currentColor; }
.tm-dark .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--base-2); color: var(--wp--preset--color--contrast); }
.tm-dark .wp-block-post-date { color: var(--wp--preset--color--muted); }
/* Le schede restano chiare dentro le fasce scure */
.tm-dark .is-style-card { color: var(--wp--preset--color--contrast); border-color: transparent; box-shadow: 0 18px 40px -22px rgba(0, 0, 0, .6); }
.tm-dark .is-style-card :where(h1, h2, h3, h4) { color: var(--wp--preset--color--contrast); }
.tm-dark .is-style-card .is-style-eyebrow { color: var(--wp--preset--color--primary); }
.tm-dark .is-style-card .has-muted-color { color: var(--wp--preset--color--muted) !important; }
.tm-dark .is-style-card a:where(:not(.wp-element-button)) { color: var(--wp--preset--color--primary); }
.tm-dark .is-style-card .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--primary); }
.tm-dark .is-style-card .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base-2); }
.tm-dark .is-style-card .wp-block-post-title a { color: var(--wp--preset--color--contrast); }

/* Nessuno spazio chiaro tra contenuto e piè di pagina */
.wp-site-blocks > .wp-block-template-part:last-child { margin-block-start: 0 !important; }
/* Fasce scure con foto in trasparenza */
.tm-dark-cover { min-height: 0; }
.tm-dark-cover .wp-block-cover__inner-container { color: var(--wp--preset--color--base); }

/* ---------- Menu hamburger (sempre attivo) ---------- */
.tm-burger .wp-block-navigation__responsive-container-open {
	display: inline-flex !important;
	align-items: center;
	gap: 0.5rem;
	padding: 0.55rem 0.95rem;
	border: 1.5px solid var(--wp--preset--color--contrast);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1;
	transition: background-color .2s ease, color .2s ease;
}
.tm-burger .wp-block-navigation__responsive-container-open::after { content: "Menu"; }
.tm-burger .wp-block-navigation__responsive-container-open:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.tm-burger .wp-block-navigation__responsive-container-open svg { width: 20px; height: 20px; }
@media (max-width: 599px) { .tm-burger .wp-block-navigation__responsive-container-open::after { content: none; } .tm-burger .wp-block-navigation__responsive-container-open { padding: 0.55rem; } }

/* Pannello aperto: scuro, a tutto schermo, due colonne */
.tm-burger .wp-block-navigation__responsive-container.is-menu-open {
	/* foto della sala in trasparenza sotto un velo scuro */
	background: var(--wp--preset--color--contrast) url("../images/foto/piatti-3.webp") 70% 50% / cover no-repeat !important;
	color: var(--wp--preset--color--base) !important;
	padding: clamp(1.25rem, 4vw, 3rem) !important;
}
.tm-burger .wp-block-navigation__responsive-container.is-menu-open::before {
	content: "";
	position: fixed;
	inset: 0;
	background: linear-gradient(100deg, rgba(42, 34, 29, .93) 0%, rgba(42, 34, 29, .82) 45%, rgba(42, 34, 29, .6) 100%);
	pointer-events: none;
}
.tm-burger .is-menu-open .wp-block-navigation__responsive-dialog { position: relative; max-width: 1100px; margin: 0 auto; }
.tm-burger .is-menu-open .wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--base); top: 0; right: 0; }
.tm-burger .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 32px; height: 32px; }
.tm-burger .is-menu-open .wp-block-navigation__container {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 2.5rem 4rem !important;
	padding-top: 3.5rem !important;
	width: 100%;
}
/* un solo gruppo di voci: colonna unica */
/* Titoli dei gruppi */
.tm-burger .is-menu-open .tm-nav-group > .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #E9B98F !important;
	padding-bottom: 0.75rem !important;
	border-bottom: 1px solid rgba(247, 241, 230, .2);
	width: 100%;
	pointer-events: none;
}
.tm-burger .is-menu-open .tm-nav-group .wp-block-navigation__submenu-icon { display: none !important; }
.tm-burger .is-menu-open .wp-block-navigation__submenu-container {
	padding: 1rem 0 0 !important;
	gap: 0.35rem !important;
	background: transparent !important;
	border: 0 !important;
}
.tm-burger .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: clamp(1.5rem, 3.2vw, 2.25rem) !important;
	font-weight: 500 !important;
	color: var(--wp--preset--color--base-2) !important;
	padding: 0.2rem 0 !important;
	text-decoration: none !important;
	transition: color .2s ease, transform .2s ease;
}
.tm-burger .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.tm-burger .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible { color: #E9B98F !important; transform: translateX(6px); }
.tm-burger .is-menu-open .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content,
.tm-burger .is-menu-open .wp-block-navigation__submenu-container [aria-current="page"] { color: #E9B98F !important; }

/* ---------- Pagina Chi siamo ---------- */
.tm-page-hero .wp-block-cover__inner-container { max-width: var(--wp--style--global--wide-size); }
.tm-page-hero h1 { text-wrap: balance; }
.tm-num {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 3rem !important;
	line-height: 1;
	font-weight: 300;
	color: var(--wp--preset--color--primary);
	margin-bottom: 0.5rem !important;
}

/* ---------- Pagina Foto del locale ---------- */
.tm-foto-grid.wp-block-gallery.has-nested-images figure.wp-block-image { aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--wp--custom--radius--small); }
.tm-foto-grid.wp-block-gallery.has-nested-images figure.wp-block-image img { height: 100%; object-fit: cover; transition: transform .45s ease; }
.tm-foto-grid figure.wp-block-image:hover img { transform: scale(1.04); }
@media (max-width: 599px) {
	.tm-foto-grid.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: calc(50% - 0.375rem) !important; }
}
.tm-page-hero .tm-menu-nav a { background: rgba(255, 251, 245, .12); border-color: rgba(255, 251, 245, .35); color: var(--wp--preset--color--base-2); }
.tm-page-hero .tm-menu-nav a:hover { background: var(--wp--preset--color--base-2); color: var(--wp--preset--color--contrast); }

/* ---------- Carosello (blocco Galleria con classe tm-carousel) ---------- */
.tm-carousel-wrap { position: relative; }
.wp-block-gallery.has-nested-images.tm-carousel {
	display: flex;
	flex-wrap: nowrap !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	padding-bottom: 0.25rem;
}
.wp-block-gallery.tm-carousel::-webkit-scrollbar { display: none; }
.wp-block-gallery.has-nested-images.tm-carousel figure.wp-block-image:not(#individual-image) {
	flex: 0 0 calc((100% - 2rem) / 3) !important;
	width: calc((100% - 2rem) / 3) !important;
	margin: 0 !important;
	scroll-snap-align: start;
	aspect-ratio: 4 / 3;
	border-radius: var(--wp--custom--radius--small);
	overflow: hidden;
}
.wp-block-gallery.has-nested-images.tm-carousel figure.wp-block-image img { height: 100%; object-fit: cover; }
@media (max-width: 781px) {
	.wp-block-gallery.has-nested-images.tm-carousel figure.wp-block-image:not(#individual-image) { flex-basis: calc((100% - 1rem) / 2) !important; width: calc((100% - 1rem) / 2) !important; }
}
@media (max-width: 599px) {
	.wp-block-gallery.has-nested-images.tm-carousel figure.wp-block-image:not(#individual-image) { flex-basis: 85% !important; width: 85% !important; }
}

/* Strip atmosfera: scroll solo dentro la galleria (no overflow di pagina) */
.tm-atmosphere .wp-block-gallery.has-nested-images.tm-atmosphere-strip {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-inline: 0;
	gap: 0.75rem !important;
	box-sizing: border-box;
	overscroll-behavior-x: contain;
}
.tm-atmosphere .wp-block-gallery.has-nested-images.tm-atmosphere-strip figure.wp-block-image:not(#individual-image) {
	flex: 0 0 clamp(220px, 42%, 300px) !important;
	width: clamp(220px, 42%, 300px) !important;
	max-width: none;
	aspect-ratio: 4 / 3;
	border-radius: var(--wp--custom--radius--medium);
}
@media (max-width: 599px) {
	.tm-atmosphere .wp-block-gallery.has-nested-images.tm-atmosphere-strip figure.wp-block-image:not(#individual-image) {
		flex-basis: min(78%, 18rem) !important;
		width: min(78%, 18rem) !important;
	}
}
.tm-atmosphere .tm-carousel-nav {
	max-width: 100%;
	margin-inline: 0;
	padding-inline: 0;
	box-sizing: border-box;
}

.tm-carousel-nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; }
.tm-carousel-dots { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.tm-carousel-dots button {
	width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%;
	background: var(--wp--preset--color--sand); cursor: pointer; transition: background-color .2s, transform .2s;
}
.tm-carousel-dots button[aria-current="true"] { background: var(--wp--preset--color--primary); transform: scale(1.35); }
.tm-carousel-arrows { display: flex; gap: 0.5rem; }
.tm-carousel-arrows button {
	width: 46px; height: 46px; border-radius: 50%;
	border: 1.5px solid var(--wp--preset--color--contrast);
	background: transparent; color: var(--wp--preset--color--contrast);
	font-size: 1.3rem; line-height: 1; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	transition: background-color .2s, color .2s;
}
.tm-carousel-arrows button:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.tm-carousel-arrows button:disabled { opacity: .35; cursor: default; background: transparent; color: var(--wp--preset--color--contrast); }

/* Legenda simboli del menù */
.tm-menu-legenda {
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.6rem;
	padding: 0.6rem 1rem;
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--base-2);
	border: 1px solid var(--wp--preset--color--sand);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}
.tm-menu-legenda span { color: var(--wp--preset--color--sand); }
.tm-dish__name { letter-spacing: 0; }

/* Emoji del menù più piccole: font "ponte" che copre solo i caratteri emoji, ridotto al 70% */
@font-face {
	font-family: "TM Emoji";
	src: local("Apple Color Emoji"), local("Segoe UI Emoji"), local("Noto Color Emoji"), local("NotoColorEmoji");
	unicode-range: U+1F300-1FAFF, U+2600-27BF, U+FE0F, U+200D;
	size-adjust: 70%;
}
.tm-dish__name { font-family: "TM Emoji", var(--wp--preset--font-family--heading) !important; }
.tm-menu-legenda { font-family: "TM Emoji", var(--wp--preset--font-family--body); }

/* ---------- Menù interattivo ---------- */
/* Piatti con foto: miniatura a sinistra, si ingrandisce al clic */
.tm-dish--foto { grid-template-columns: 88px 1fr auto; column-gap: 1.1rem; align-items: start; }
.tm-dish--foto .tm-dish__img { grid-row: 1 / span 2; grid-column: 1; width: 88px; height: 88px; border-radius: 14px; overflow: hidden; box-shadow: 0 10px 22px -14px rgba(42, 34, 29, .6); cursor: zoom-in; }
.tm-dish--foto .tm-dish__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.tm-dish--foto:hover .tm-dish__img img { transform: scale(1.08); }
.tm-dish--foto .tm-dish__name { grid-column: 2; grid-row: 1; align-self: end; }
.tm-dish--foto .tm-dish__price { grid-column: 3; grid-row: 1; align-self: end; }
.tm-dish--foto .tm-dish__desc { grid-column: 2 / -1; grid-row: 2; }
@media (max-width: 599px) {
	.tm-dish--foto { grid-template-columns: 72px 1fr auto; column-gap: 0.85rem; }
	.tm-dish--foto .tm-dish__img { width: 72px; height: 72px; }
}
.tm-dish { transition: background-color .25s ease, opacity .25s ease; border-radius: 10px; }
@media (hover: hover) { .tm-dish:hover { background: rgba(255, 251, 245, .7); } }
.tm-dish.is-hidden, .tm-menu-cat.is-hidden { display: none !important; }

/* Barra fissa con categorie e filtri (creata dallo script menu.js) */
.tm-menu-bar {
	position: sticky;
	top: var(--tm-menu-bar-top, 76px);
	z-index: 40;
	margin-top: 1rem !important;
	padding: 0.75rem 0;
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--wp--preset--color--sand);
	box-shadow: 0 12px 16px -18px rgba(42, 34, 29, .5);
}
.tm-menu-bar .tm-menu-nav { margin: 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.tm-menu-bar .tm-menu-nav::-webkit-scrollbar { display: none; }
.tm-menu-bar .tm-menu-nav a { white-space: nowrap; transition: background-color .2s, color .2s, border-color .2s; }
.tm-menu-bar .tm-menu-nav a.is-active { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--base-2); }
.tm-menu-filtri { display: flex; align-items: center; gap: 0.4rem; margin-top: 0.6rem; flex-wrap: wrap; font-family: "TM Emoji", var(--wp--preset--font-family--body); }
.tm-menu-filtri__label { font-size: var(--wp--preset--font-size--small); font-weight: 700; color: var(--wp--preset--color--muted); margin-right: 0.2rem; }
.tm-menu-filtri button {
	font: inherit;
	font-size: 0.85rem;
	font-weight: 600;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	border: 1px dashed color-mix(in srgb, var(--wp--preset--color--contrast) 30%, transparent);
	background: transparent;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.tm-menu-filtri button:hover { border-style: solid; border-color: var(--wp--preset--color--olive); }
.tm-menu-filtri button[aria-pressed="true"] { background: var(--wp--preset--color--olive); border: 1px solid var(--wp--preset--color--olive); color: var(--wp--preset--color--base-2); }
.tm-menu-filtri__count { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); margin-left: auto; }
.tm-menu-vuoto { padding: 2rem 0; color: var(--wp--preset--color--muted); }
.tm-menu-bar ~ .tm-menu-legenda, .tm-menu-legenda.is-enhanced { display: none; }
@keyframes tm-fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.tm-dish.is-shown { animation: tm-fade-in .35s ease both; }

/* ---------- Foto dei piatti nel menù ---------- */
.wp-block-gallery.has-nested-images.tm-menu-foto { margin-top: 1rem !important; margin-bottom: 0.5rem !important; }
.wp-block-gallery.has-nested-images.tm-menu-foto figure.wp-block-image:not(#individual-image) {
	flex-grow: 0 !important;
	width: calc((100% - 1.5rem) / 3) !important;
	aspect-ratio: 4 / 3;
	border-radius: var(--wp--custom--radius--small);
	overflow: hidden;
}
.wp-block-gallery.has-nested-images.tm-menu-foto figure.wp-block-image img { height: 100%; object-fit: cover; transition: transform .45s ease; }
.wp-block-gallery.has-nested-images.tm-menu-foto figure.wp-block-image:hover img { transform: scale(1.05); }
.wp-block-gallery.has-nested-images.tm-menu-foto figure.wp-block-image figcaption {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1rem;
	font-weight: 600;
	text-align: left;
	padding: 2.5rem 0.75rem 0.6rem;
	background: linear-gradient(0deg, rgba(42, 34, 29, .85) 0%, rgba(42, 34, 29, 0) 100%);
	color: var(--wp--preset--color--base-2);
}
@media (max-width: 599px) {
	.wp-block-gallery.has-nested-images.tm-menu-foto figure.wp-block-image:not(#individual-image) { width: calc((100% - 0.75rem) / 2) !important; }
	.wp-block-gallery.has-nested-images.tm-menu-foto figure.wp-block-image figcaption { font-size: 0.85rem; padding: 1.8rem 0.5rem 0.45rem; }
}
@media (max-width: 599px) {
	.tm-menu-bar { padding: 0.5rem 0; }
	.tm-menu-filtri { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-top: 0.45rem; }
	.tm-menu-filtri::-webkit-scrollbar { display: none; }
	.tm-menu-filtri button { white-space: nowrap; flex-shrink: 0; }
	.tm-menu-filtri__count { white-space: nowrap; }
}
