/* ==========================================================================
   Tantillo Core — widgets + "Effetti Tantillo"
   Defaults use :where() (specificity 0) and CSS variables with fallbacks:
   every Elementor control overrides them without !important.
   ========================================================================== */

/* ======================================================= EFFECTS: reveal */
@keyframes tf-kenburns {
	0% { transform: scale(1) translate3d(0, 0, 0); }
	100% { transform: scale(1.14) translate3d(-2%, -2%, 0); }
}

@keyframes tf-float {
	0%, 100% { translate: 0 0; }
	50% { translate: 0 -12px; }
}

:where(.tf-js) :where([class*="tf-reveal-"]) {
	--tf-dur: 900ms;
	--tf-delay: 0ms;
	--tf-stagger: 60ms;
	--tf-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Hidden state only when JS is running (no-JS users see everything). */
:where(.tf-js) :where(.tf-reveal-fade-up, .tf-reveal-fade-down, .tf-reveal-fade-left, .tf-reveal-fade-right, .tf-reveal-zoom-in, .tf-reveal-zoom-out, .tf-reveal-blur-in, .tf-reveal-flip-up):where(:not(.tf-in)) {
	opacity: 0;
}

:where(.tf-js) :where(.tf-reveal-fade-up:not(.tf-in)) { transform: translate3d(0, 48px, 0); }
:where(.tf-js) :where(.tf-reveal-fade-down:not(.tf-in)) { transform: translate3d(0, -48px, 0); }
:where(.tf-js) :where(.tf-reveal-fade-left:not(.tf-in)) { transform: translate3d(56px, 0, 0); }
:where(.tf-js) :where(.tf-reveal-fade-right:not(.tf-in)) { transform: translate3d(-56px, 0, 0); }
:where(.tf-js) :where(.tf-reveal-zoom-in:not(.tf-in)) { transform: scale(0.88); }
:where(.tf-js) :where(.tf-reveal-zoom-out:not(.tf-in)) { transform: scale(1.12); }
:where(.tf-js) :where(.tf-reveal-blur-in:not(.tf-in)) { filter: blur(14px); transform: scale(1.03); }
:where(.tf-js) :where(.tf-reveal-flip-up:not(.tf-in)) { transform: perspective(1000px) rotateX(-28deg) translate3d(0, 40px, 0); transform-origin: 50% 100%; }
:where(.tf-js) :where(.tf-reveal-mask-up:not(.tf-in)) { clip-path: inset(100% 0 0 0); }
:where(.tf-js) :where(.tf-reveal-mask-left:not(.tf-in)) { clip-path: inset(0 100% 0 0); }

:where(.tf-js) :where(.tf-reveal-fade-up, .tf-reveal-fade-down, .tf-reveal-fade-left, .tf-reveal-fade-right, .tf-reveal-zoom-in, .tf-reveal-zoom-out, .tf-reveal-blur-in, .tf-reveal-flip-up, .tf-reveal-mask-up, .tf-reveal-mask-left) {
	transition:
		opacity var(--tf-dur) var(--tf-ease) var(--tf-delay),
		transform var(--tf-dur) var(--tf-ease) var(--tf-delay),
		filter var(--tf-dur) var(--tf-ease) var(--tf-delay),
		clip-path calc(var(--tf-dur) * 1.2) cubic-bezier(0.77, 0, 0.18, 1) var(--tf-delay);
}

:where(.tf-js) :where(.tf-reveal-mask-up.tf-in, .tf-reveal-mask-left.tf-in) {
	clip-path: inset(0 0 0 0);
}

/* Split text (words / chars) */
:where(.tf-split-w, .tf-split-c) {
	display: inline-block;
	white-space: pre;
}

:where(.tf-split-w) {
	overflow: clip;
	overflow-clip-margin: 0.2em;
	vertical-align: top;
	padding-block: 0.06em;
	margin-block: -0.06em;
}

:where(.tf-split-wi) {
	display: inline-block;
	will-change: transform;
}

:where(.tf-js) :where(.tf-reveal-split-words:not(.tf-in)) :where(.tf-split-wi) {
	transform: translate3d(0, 110%, 0) rotate(4deg);
}

:where(.tf-js) :where(.tf-reveal-split-chars:not(.tf-in)) :where(.tf-split-c) {
	opacity: 0;
	transform: translate3d(0, 0.6em, 0) scale(0.6);
}

:where(.tf-js) :where(.tf-reveal-split-words) :where(.tf-split-wi),
:where(.tf-js) :where(.tf-reveal-split-chars) :where(.tf-split-c) {
	transition:
		transform var(--tf-dur) var(--tf-ease) calc(var(--tf-delay) + var(--tf-i, 0) * var(--tf-stagger)),
		opacity var(--tf-dur) var(--tf-ease) calc(var(--tf-delay) + var(--tf-i, 0) * var(--tf-stagger));
}

/* Stagger: direct children (widgets/containers) of the element */
:where(.tf-js) :where(.tf-reveal-stagger) > :where(.e-con-inner) > :where(*),
:where(.tf-js) :where(.tf-reveal-stagger) > :where(:not(.e-con-inner)) {
	transition:
		opacity var(--tf-dur) var(--tf-ease) calc(var(--tf-delay) + var(--tf-i, 0) * var(--tf-stagger)),
		transform var(--tf-dur) var(--tf-ease) calc(var(--tf-delay) + var(--tf-i, 0) * var(--tf-stagger));
}

:where(.tf-js) :where(.tf-reveal-stagger:not(.tf-in)) > :where(.e-con-inner) > :where(*),
:where(.tf-js) :where(.tf-reveal-stagger:not(.tf-in)) > :where(:not(.e-con-inner)) {
	opacity: 0;
	transform: translate3d(0, 36px, 0);
}

/* ===================================================== EFFECTS: parallax */
:where(.tf-parallax-yes) {
	translate: 0 var(--tf-py, 0px);
	will-change: translate;
}

/* ======================================================== EFFECTS: hover */
:where(.tf-hover-lift) {
	transition: translate 0.45s var(--tf-ease-out, cubic-bezier(0.22, 1, 0.36, 1)), box-shadow 0.45s ease;
}

:where(.tf-hover-lift:hover) {
	translate: 0 -8px;
	box-shadow: 0 24px 40px -22px rgba(0, 0, 0, 0.45);
}

:where(.tf-hover-tilt) {
	transform: perspective(900px) rotateX(var(--tf-rx, 0deg)) rotateY(var(--tf-ry, 0deg));
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
	transform-style: preserve-3d;
}

:where(.tf-hover-tilt.is-tilting) {
	transition-duration: 0.12s;
}

:where(.tf-hover-zoom, .tf-kenburns-yes) {
	overflow: hidden;
}

:where(.tf-hover-zoom) :where(img) {
	transition: scale 0.9s cubic-bezier(0.22, 1, 0.36, 1), filter 0.6s ease;
}

:where(.tf-hover-zoom:hover) :where(img) {
	scale: 1.08;
}

:where(.tf-hover-grayscale) :where(img) {
	filter: grayscale(1);
	transition: filter 0.6s ease, scale 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

:where(.tf-hover-grayscale:hover) :where(img) {
	filter: grayscale(0);
}

:where(.elementor-widget.tf-hover-shine) {
	position: relative;
	overflow: hidden;
}

:where(.elementor-widget.tf-hover-shine)::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.45) 50%, transparent 70%);
	transform: translateX(-120%);
	pointer-events: none;
}

:where(.elementor-widget.tf-hover-shine:hover)::after {
	transform: translateX(120%);
	transition: transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

:where(.tf-kenburns-yes) :where(img) {
	animation: tf-kenburns 18s ease-in-out infinite alternate;
	transform-origin: 60% 40%;
}

:where(.tf-float-yes) {
	animation: tf-float 6s ease-in-out infinite;
}

:where(.tf-magnetic-yes) :where(.elementor-button, a, button) {
	transition: translate 0.5s cubic-bezier(0.22, 1, 0.36, 1);
	translate: var(--tf-mx, 0px) var(--tf-my, 0px);
}

/* Sticky column (desktop only). Two classes are needed to win over
   Elementor's own ".e-con { position: var(--position) }". */
@media (min-width: 1025px) {
	.tf-sticky-yes.e-con,
	.tf-sticky-yes.elementor-element {
		position: sticky;
		top: calc(var(--tf-admin-bar, 0px) + var(--tf-sticky-offset, 110px));
		align-self: flex-start;
	}
}

/* Elementor editor: always show content */
:where(.elementor-editor-active) :where([class*="tf-reveal-"]) {
	--tf-dur: 600ms;
}

/* ================================================================ NAV MENU */
:where(.tf-nav) {
	position: relative;
	--_speed: var(--tf-nav-speed, 350ms);
}

:where(.tf-nav__bar) {
	display: none;
	justify-content: flex-end;
}

:where(.tf-nav__list, .tf-nav__sub) {
	list-style: none;
	margin: 0;
	padding: 0;
}

:where(.tf-nav__list) {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: var(--tf-nav-gap, 0px);
}

:where(.tf-nav-layout-vertical) :where(.tf-nav__list) {
	flex-direction: column;
}

:where(.tf-nav__item) {
	position: relative;
	display: flex;
	align-items: center;
}

.tf-nav .tf-nav__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	padding: 0.55em 1em;
	color: var(--tf-nav-normal-color, #000000);
	background: var(--tf-nav-normal-bg, transparent);
	border: 0;
	border-radius: var(--tf-nav-radius, 0px);
	text-decoration: none;
	font: inherit;
	line-height: 1.2;
	cursor: pointer;
	isolation: isolate;
	overflow: hidden;
	transition: color var(--_speed) ease;
	white-space: nowrap;
}

:where(.tf-nav__text) {
	position: relative;
	z-index: 1;
}

:where(.tf-nav__caret) {
	width: 0.75em;
	height: 0.75em;
	position: relative;
	z-index: 1;
	transition: rotate var(--_speed) ease;
}

:where(.tf-nav__item:hover, .tf-nav__item:focus-within, .tf-nav__item.is-open) > :where(.tf-nav__link) :where(.tf-nav__caret) {
	rotate: 180deg;
}

.tf-nav .tf-nav__sub-toggle {
	display: none;
}

/* Pointer: fill (animated background, like the original black hover) */
:where(.tf-nav-pointer-fill) :where(.tf-nav__list > .tf-nav__item > .tf-nav__link)::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--tf-nav-hover-bg, #000000);
	transform: scaleY(0);
	transform-origin: 50% 100%;
	transition: transform var(--_speed) cubic-bezier(0.65, 0, 0.35, 1);
}

:where(.tf-nav-pointer-fill) :where(.tf-nav__list > .tf-nav__item > .tf-nav__link:hover, .tf-nav__list > .tf-nav__item > .tf-nav__link:focus-visible, .tf-nav__list > .tf-nav__item.is-open > .tf-nav__link)::before {
	transform: scaleY(1);
	transform-origin: 50% 0%;
}

:where(.tf-nav-pointer-fill) :where(.tf-nav__list > .tf-nav__item.is-active > .tf-nav__link)::before {
	transform: scaleY(1);
	background: var(--tf-nav-active-bg, #000000);
}

/* Pointer: underline */
:where(.tf-nav-pointer-underline) :where(.tf-nav__list > .tf-nav__item > .tf-nav__link)::after {
	content: "";
	position: absolute;
	left: 1em;
	right: 1em;
	bottom: 0.25em;
	height: var(--tf-nav-line, 2px);
	background: var(--tf-nav-hover-bg, currentColor);
	transform: scaleX(0);
	transform-origin: 100% 50%;
	transition: transform var(--_speed) cubic-bezier(0.65, 0, 0.35, 1);
}

:where(.tf-nav-pointer-underline) :where(.tf-nav__list > .tf-nav__item > .tf-nav__link:hover, .tf-nav__list > .tf-nav__item > .tf-nav__link:focus-visible)::after {
	transform: scaleX(1);
	transform-origin: 0 50%;
}

:where(.tf-nav-pointer-underline) :where(.tf-nav__list > .tf-nav__item.is-active > .tf-nav__link)::after {
	transform: scaleX(1);
	background: var(--tf-nav-active-bg, currentColor);
}

/* Pointer: pill */
:where(.tf-nav-pointer-pill) :where(.tf-nav__list > .tf-nav__item > .tf-nav__link) {
	border-radius: var(--tf-nav-radius, 999px);
	transition: color var(--_speed) ease, background-color var(--_speed) ease;
}

.tf-nav-pointer-pill .tf-nav .tf-nav__list > .tf-nav__item > .tf-nav__link:hover {
	background-color: var(--tf-nav-hover-bg, rgba(0, 0, 0, 0.08));
}

.tf-nav-pointer-pill .tf-nav .tf-nav__list > .tf-nav__item.is-active > .tf-nav__link {
	background-color: var(--tf-nav-active-bg, #000000);
}

/* Colors on hover / active */
.tf-nav .tf-nav__list > .tf-nav__item > .tf-nav__link:hover,
.tf-nav .tf-nav__list > .tf-nav__item > .tf-nav__link:focus,
.tf-nav .tf-nav__list > .tf-nav__item.is-open > .tf-nav__link {
	color: var(--tf-nav-hover-color, #ffffff);
	background-color: var(--tf-nav-normal-bg, transparent);
}

.tf-nav-pointer-underline .tf-nav .tf-nav__list > .tf-nav__item > .tf-nav__link:hover,
.tf-nav-pointer-none .tf-nav .tf-nav__list > .tf-nav__item > .tf-nav__link:hover {
	color: var(--tf-nav-hover-color, inherit);
}

.tf-nav .tf-nav__list > .tf-nav__item.is-active > .tf-nav__link {
	color: var(--tf-nav-active-color, #ffffff);
}

.tf-nav-pointer-underline .tf-nav .tf-nav__list > .tf-nav__item.is-active > .tf-nav__link,
.tf-nav-pointer-none .tf-nav .tf-nav__list > .tf-nav__item.is-active > .tf-nav__link {
	color: var(--tf-nav-active-color, inherit);
}

/* Desktop dropdown */
:where(.tf-nav__sub) {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 100;
	min-width: 230px;
	padding: 6px 0;
	background: var(--tf-sub-bg, #000000);
	box-shadow: 0 22px 40px -18px rgba(0, 0, 0, 0.5);
	opacity: 0;
	visibility: hidden;
	transform: translate3d(0, 10px, 0);
	transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.35s;
}

:where(.tf-nav__sub .tf-nav__sub) {
	top: -6px;
	left: 100%;
}

:where(.tf-nav__item:hover, .tf-nav__item:focus-within, .tf-nav__item.is-open) > :where(.tf-nav__sub) {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}

:where(.tf-nav__sub .tf-nav__item) {
	display: block;
}

.tf-nav .tf-nav__sub .tf-nav__link {
	display: flex;
	width: 100%;
	padding: 9px 18px;
	color: var(--tf-sub-color, #ffffff);
	white-space: normal;
	transition: color 0.25s ease, background-color 0.25s ease, padding-left 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.tf-nav .tf-nav__sub .tf-nav__link:hover,
.tf-nav .tf-nav__sub .tf-nav__link:focus,
.tf-nav .tf-nav__sub .tf-nav__item.is-active > .tf-nav__link {
	color: var(--tf-sub-hover-color, #ffffff);
	background: var(--tf-sub-hover-bg, var(--e-global-color-accent, #a86b32));
	padding-left: 24px;
}

/* Toggle (hamburger) */
.tf-nav .tf-nav__toggle {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 8px 12px;
	border: 0;
	background: var(--tf-toggle-bg, transparent);
	color: var(--tf-toggle-color, #000000);
	cursor: pointer;
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	position: relative;
	z-index: 1002;
	transition: color 0.3s ease, background-color 0.3s ease;
}

:where(.tf-nav__burger) {
	position: relative;
	display: inline-block;
	width: 26px;
	height: 18px;
}

:where(.tf-nav__burger span) {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform 0.45s cubic-bezier(0.65, 0, 0.35, 1), opacity 0.3s ease, width 0.3s ease;
}

:where(.tf-nav__burger span:nth-child(1)) { top: 0; }
:where(.tf-nav__burger span:nth-child(2)) { top: 8px; width: 70%; }
:where(.tf-nav__burger span:nth-child(3)) { top: 16px; }

:where(.tf-nav__toggle:hover) :where(.tf-nav__burger span:nth-child(2)) { width: 100%; }

.tf-nav .tf-nav__toggle:hover,
.tf-nav .tf-nav__toggle:focus {
	background: var(--tf-toggle-bg, transparent);
	color: var(--tf-toggle-color, #000000);
}

.tf-nav.is-open .tf-nav__toggle,
.tf-nav.is-open .tf-nav__toggle:hover,
.tf-nav.is-open .tf-nav__toggle:focus {
	color: var(--tf-toggle-open-color, #ffffff);
}

:where(.tf-nav.is-open) :where(.tf-nav__burger span:nth-child(1)) { transform: translateY(8px) rotate(45deg); }
:where(.tf-nav.is-open) :where(.tf-nav__burger span:nth-child(2)) { opacity: 0; transform: translateX(-10px); }
:where(.tf-nav.is-open) :where(.tf-nav__burger span:nth-child(3)) { transform: translateY(-8px) rotate(-45deg); }

:where(html.tf-nav-locked) {
	overflow: hidden;
}

/* ---- Mobile menu (tablet) ---- */
@media (max-width: 1024px) {
	:where(.tf-nav-bp-tablet) :where(.tf-nav__bar) {
		display: flex;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav__panel) {
		display: none;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav.is-ready) :where(.tf-nav__panel) {
		display: block;
		visibility: hidden;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav.is-open) :where(.tf-nav__panel) {
		visibility: visible;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav__list) {
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 0;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav__item) {
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
		border-bottom: 1px solid var(--tf-panel-divider, rgba(255, 255, 255, 0.12));
	}

	.tf-nav-bp-tablet .tf-nav .tf-nav__link {
		width: 100%;
		white-space: normal;
		color: var(--tf-panel-color, #ffffff);
		background: transparent;
		padding: 14px 4px;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav__list > .tf-nav__item > .tf-nav__link)::before,
	:where(.tf-nav-bp-tablet) :where(.tf-nav__list > .tf-nav__item > .tf-nav__link)::after {
		display: none;
	}

	.tf-nav-bp-tablet .tf-nav .tf-nav__list .tf-nav__link:hover,
	.tf-nav-bp-tablet .tf-nav .tf-nav__list .tf-nav__link:focus,
	.tf-nav-bp-tablet .tf-nav .tf-nav__list .tf-nav__item.is-active > .tf-nav__link {
		color: var(--tf-panel-active, var(--e-global-color-accent, #a86b32));
		background: transparent;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav__link .tf-nav__caret) {
		display: none;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav__link--parent .tf-nav__caret) {
		display: block;
	}

	.tf-nav-bp-tablet .tf-nav .tf-nav__sub-toggle {
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		background: transparent;
		color: var(--tf-panel-color, #ffffff);
		cursor: pointer;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav__sub-toggle svg) {
		width: 14px;
		height: 14px;
		transition: rotate 0.3s ease;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav__item.is-open > .tf-nav__sub-toggle svg) {
		rotate: 180deg;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav__sub) {
		grid-column: 1 / -1;
		position: static;
		min-width: 0;
		padding: 0 0 8px 14px;
		background: transparent;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		display: none;
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav__item.is-open > .tf-nav__sub) {
		display: block;
		animation: tf-sub-in 0.35s cubic-bezier(0.22, 1, 0.36, 1);
	}

	:where(.tf-nav-bp-tablet) :where(.tf-nav__sub .tf-nav__item) {
		border-bottom: 0;
	}

	.tf-nav-bp-tablet .tf-nav .tf-nav__sub .tf-nav__link {
		padding: 9px 4px;
		font-size: 0.92em;
		opacity: 0.85;
	}

	.tf-nav-bp-tablet .tf-nav .tf-nav__list .tf-nav__sub .tf-nav__link:hover {
		padding-left: 10px;
		background: transparent;
	}

	/* Overlay (full screen) */
	:where(.tf-nav-bp-tablet.tf-nav-mobile-overlay) :where(.tf-nav__panel) {
		position: fixed;
		inset: 0;
		z-index: 1001;
		padding: calc(var(--tf-admin-bar, 0px) + 90px) clamp(24px, 8vw, 64px) 48px;
		background: var(--tf-panel-bg, #0b0b0d);
		overflow-y: auto;
		overscroll-behavior: contain;
		clip-path: circle(0% at calc(100% - 40px) 40px);
		transition: clip-path 0.7s cubic-bezier(0.77, 0, 0.18, 1), visibility 0s linear 0.7s;
	}

	:where(.tf-nav-bp-tablet.tf-nav-mobile-overlay) :where(.tf-nav.is-open) :where(.tf-nav__panel) {
		clip-path: circle(150% at calc(100% - 40px) 40px);
		transition: clip-path 0.8s cubic-bezier(0.77, 0, 0.18, 1), visibility 0s;
	}

	:where(.tf-nav-bp-tablet.tf-nav-mobile-overlay) :where(.tf-nav__list > .tf-nav__item > .tf-nav__link) {
		font-family: var(--e-global-typography-primary-font-family, "Teko"), sans-serif;
		font-size: clamp(1.9rem, 7vw, 2.8rem);
		font-weight: 500;
		letter-spacing: 0.02em;
		text-transform: uppercase;
		line-height: 1.05;
	}

	:where(.tf-nav-bp-tablet.tf-nav-mobile-overlay) :where(.tf-nav__list > .tf-nav__item) {
		opacity: 0;
		transform: translate3d(0, 28px, 0);
		transition: opacity 0.4s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
	}

	:where(.tf-nav-bp-tablet.tf-nav-mobile-overlay) :where(.tf-nav.is-open) :where(.tf-nav__list > .tf-nav__item) {
		opacity: 1;
		transform: none;
		transition-delay: calc(0.25s + var(--tf-i, 0) * 0.06s);
	}

	.tf-nav-bp-tablet.tf-nav-mobile-overlay .tf-nav.is-open .tf-nav__toggle {
		position: fixed;
		top: calc(var(--tf-admin-bar, 0px) + 18px);
		right: 18px;
	}

	/* Dropdown (below the header) */
	:where(.tf-nav-bp-tablet.tf-nav-mobile-dropdown) :where(.tf-nav__panel) {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 1001;
		padding: 8px 20px 18px;
		background: var(--tf-panel-bg, #0b0b0d);
		box-shadow: 0 24px 40px -20px rgba(0, 0, 0, 0.6);
		clip-path: inset(0 0 100% 0);
		transition: clip-path 0.5s cubic-bezier(0.77, 0, 0.18, 1), visibility 0s linear 0.5s;
	}

	:where(.tf-nav-bp-tablet.tf-nav-mobile-dropdown) :where(.tf-nav.is-open) :where(.tf-nav__panel) {
		clip-path: inset(0 0 0 0);
		transition: clip-path 0.5s cubic-bezier(0.77, 0, 0.18, 1), visibility 0s;
	}

	.tf-nav-bp-tablet.tf-nav-mobile-dropdown .tf-nav.is-open .tf-nav__toggle {
		color: var(--tf-toggle-color, #000000);
	}
}

/* ---- Mobile menu (mobile) ---- */
@media (max-width: 767px) {
	:where(.tf-nav-bp-mobile) :where(.tf-nav__bar) {
		display: flex;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav__panel) {
		display: none;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav.is-ready) :where(.tf-nav__panel) {
		display: block;
		visibility: hidden;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav.is-open) :where(.tf-nav__panel) {
		visibility: visible;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav__list) {
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 0;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav__item) {
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
		border-bottom: 1px solid var(--tf-panel-divider, rgba(255, 255, 255, 0.12));
	}

	.tf-nav-bp-mobile .tf-nav .tf-nav__link {
		width: 100%;
		white-space: normal;
		color: var(--tf-panel-color, #ffffff);
		background: transparent;
		padding: 14px 4px;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav__list > .tf-nav__item > .tf-nav__link)::before,
	:where(.tf-nav-bp-mobile) :where(.tf-nav__list > .tf-nav__item > .tf-nav__link)::after {
		display: none;
	}

	.tf-nav-bp-mobile .tf-nav .tf-nav__list .tf-nav__link:hover,
	.tf-nav-bp-mobile .tf-nav .tf-nav__list .tf-nav__link:focus,
	.tf-nav-bp-mobile .tf-nav .tf-nav__list .tf-nav__item.is-active > .tf-nav__link {
		color: var(--tf-panel-active, var(--e-global-color-accent, #a86b32));
		background: transparent;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav__link .tf-nav__caret) {
		display: none;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav__link--parent .tf-nav__caret) {
		display: block;
	}

	.tf-nav-bp-mobile .tf-nav .tf-nav__sub-toggle {
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		background: transparent;
		color: var(--tf-panel-color, #ffffff);
		cursor: pointer;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav__sub-toggle svg) {
		width: 14px;
		height: 14px;
		transition: rotate 0.3s ease;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav__item.is-open > .tf-nav__sub-toggle svg) {
		rotate: 180deg;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav__sub) {
		grid-column: 1 / -1;
		position: static;
		min-width: 0;
		padding: 0 0 8px 14px;
		background: transparent;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		display: none;
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav__item.is-open > .tf-nav__sub) {
		display: block;
		animation: tf-sub-in 0.35s cubic-bezier(0.22, 1, 0.36, 1);
	}

	:where(.tf-nav-bp-mobile) :where(.tf-nav__sub .tf-nav__item) {
		border-bottom: 0;
	}

	.tf-nav-bp-mobile .tf-nav .tf-nav__sub .tf-nav__link {
		padding: 9px 4px;
		font-size: 0.92em;
		opacity: 0.85;
	}

	.tf-nav-bp-mobile .tf-nav .tf-nav__list .tf-nav__sub .tf-nav__link:hover {
		padding-left: 10px;
		background: transparent;
	}

	/* Overlay (full screen) */
	:where(.tf-nav-bp-mobile.tf-nav-mobile-overlay) :where(.tf-nav__panel) {
		position: fixed;
		inset: 0;
		z-index: 1001;
		padding: calc(var(--tf-admin-bar, 0px) + 90px) clamp(24px, 8vw, 64px) 48px;
		background: var(--tf-panel-bg, #0b0b0d);
		overflow-y: auto;
		overscroll-behavior: contain;
		clip-path: circle(0% at calc(100% - 40px) 40px);
		transition: clip-path 0.7s cubic-bezier(0.77, 0, 0.18, 1), visibility 0s linear 0.7s;
	}

	:where(.tf-nav-bp-mobile.tf-nav-mobile-overlay) :where(.tf-nav.is-open) :where(.tf-nav__panel) {
		clip-path: circle(150% at calc(100% - 40px) 40px);
		transition: clip-path 0.8s cubic-bezier(0.77, 0, 0.18, 1), visibility 0s;
	}

	:where(.tf-nav-bp-mobile.tf-nav-mobile-overlay) :where(.tf-nav__list > .tf-nav__item > .tf-nav__link) {
		font-family: var(--e-global-typography-primary-font-family, "Teko"), sans-serif;
		font-size: clamp(1.9rem, 7vw, 2.8rem);
		font-weight: 500;
		letter-spacing: 0.02em;
		text-transform: uppercase;
		line-height: 1.05;
	}

	:where(.tf-nav-bp-mobile.tf-nav-mobile-overlay) :where(.tf-nav__list > .tf-nav__item) {
		opacity: 0;
		transform: translate3d(0, 28px, 0);
		transition: opacity 0.4s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
	}

	:where(.tf-nav-bp-mobile.tf-nav-mobile-overlay) :where(.tf-nav.is-open) :where(.tf-nav__list > .tf-nav__item) {
		opacity: 1;
		transform: none;
		transition-delay: calc(0.25s + var(--tf-i, 0) * 0.06s);
	}

	.tf-nav-bp-mobile.tf-nav-mobile-overlay .tf-nav.is-open .tf-nav__toggle {
		position: fixed;
		top: calc(var(--tf-admin-bar, 0px) + 18px);
		right: 18px;
	}

	/* Dropdown (below the header) */
	:where(.tf-nav-bp-mobile.tf-nav-mobile-dropdown) :where(.tf-nav__panel) {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 1001;
		padding: 8px 20px 18px;
		background: var(--tf-panel-bg, #0b0b0d);
		box-shadow: 0 24px 40px -20px rgba(0, 0, 0, 0.6);
		clip-path: inset(0 0 100% 0);
		transition: clip-path 0.5s cubic-bezier(0.77, 0, 0.18, 1), visibility 0s linear 0.5s;
	}

	:where(.tf-nav-bp-mobile.tf-nav-mobile-dropdown) :where(.tf-nav.is-open) :where(.tf-nav__panel) {
		clip-path: inset(0 0 0 0);
		transition: clip-path 0.5s cubic-bezier(0.77, 0, 0.18, 1), visibility 0s;
	}

	.tf-nav-bp-mobile.tf-nav-mobile-dropdown .tf-nav.is-open .tf-nav__toggle {
		color: var(--tf-toggle-color, #000000);
	}
}

@keyframes tf-sub-in {
	from { opacity: 0; transform: translate3d(0, -6px, 0); }
	to { opacity: 1; transform: none; }
}

/* ================================================================= GALLERY */
:where(.tf-gallery) {
	--_cols: var(--tf-cols, 4);
	--_gap: var(--tf-gap, 12px);
	display: grid;
	grid-template-columns: repeat(var(--_cols), minmax(0, 1fr));
	gap: var(--_gap);
}

:where(.tf-gallery-layout-masonry) :where(.tf-gallery) {
	display: block;
	columns: var(--_cols);
	column-gap: var(--_gap);
}

:where(.tf-gallery-layout-masonry) :where(.tf-gallery__item) {
	break-inside: avoid;
	margin-bottom: var(--_gap);
}

:where(.tf-gallery__item) {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: var(--tf-radius, 0px);
	background: #111111;
}

:where(.tf-gallery__link) {
	display: block;
	cursor: zoom-in;
}

:where(.tf-gallery__media) {
	position: relative;
	display: block;
	overflow: hidden;
}

:where(.tf-gallery-layout-grid) :where(.tf-gallery__media) {
	aspect-ratio: var(--tf-ratio, 1 / 1);
}

:where(.tf-gallery__img) {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1), filter 0.6s ease;
}

:where(.tf-gallery-layout-masonry) :where(.tf-gallery__img) {
	height: auto;
}

:where(.tf-gallery__media)::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--tf-overlay, rgba(0, 0, 0, 0.45));
	opacity: 0;
	transition: opacity 0.45s ease;
}

:where(.tf-gallery__icon) {
	position: absolute;
	inset: 50% auto auto 50%;
	z-index: 2;
	width: 48px;
	height: 48px;
	margin: -24px 0 0 -24px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid currentColor;
	color: var(--tf-icon-color, #ffffff);
	opacity: 0;
	transform: scale(0.6);
	transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

:where(.tf-gallery__icon svg) {
	width: 22px;
	height: 22px;
	fill: currentColor;
}

:where(.tf-gallery__item:hover, .tf-gallery__item:focus-within) :where(.tf-gallery__media)::after {
	opacity: 1;
}

:where(.tf-gallery__item:hover, .tf-gallery__item:focus-within) :where(.tf-gallery__icon) {
	opacity: 1;
	transform: scale(1);
}

:where(.tf-gallery-hover-zoom) :where(.tf-gallery__item:hover) :where(.tf-gallery__img) {
	transform: scale(1.08);
}

:where(.tf-gallery-hover-zoom-tilt) :where(.tf-gallery__item:hover) :where(.tf-gallery__img) {
	transform: scale(1.12) rotate(1.5deg);
}

:where(.tf-gallery-hover-grayscale) :where(.tf-gallery__img) {
	filter: grayscale(1);
}

:where(.tf-gallery-hover-grayscale) :where(.tf-gallery__item:hover) :where(.tf-gallery__img) {
	filter: grayscale(0);
	transform: scale(1.04);
}

:where(.tf-gallery__caption) {
	padding: 8px 10px;
	font-size: 0.85rem;
	line-height: 1.4;
	color: #f3f2f5; /* readable on the dark card background (#111); the widget "Colore" control overrides it */
}

:where(.tf-js) :where(.tf-gallery--stagger) :where(.tf-gallery__item) {
	opacity: 0;
	transform: translate3d(0, 30px, 0) scale(0.97);
	transition: opacity 0.7s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc(var(--tf-d, 0) * 70ms);
}

:where(.tf-js) :where(.tf-gallery--stagger) :where(.tf-gallery__item.tf-in) {
	opacity: 1;
	transform: none;
}

/* =============================================================== PORTFOLIO */
:where(.tf-portfolio__filters) {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-bottom: 28px;
}

.tf-portfolio .tf-portfolio__filter {
	padding: 8px 18px;
	border: 1px solid currentColor;
	border-radius: 999px;
	background: transparent;
	color: var(--tf-filter-color, #000000);
	cursor: pointer;
	font: inherit;
	transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

.tf-portfolio .tf-portfolio__filter.is-active,
.tf-portfolio .tf-portfolio__filter:hover,
.tf-portfolio .tf-portfolio__filter:focus {
	color: var(--tf-filter-active, #ffffff);
	background: var(--tf-filter-active-bg, #000000);
	border-color: var(--tf-filter-active-bg, #000000);
}

:where(.tf-portfolio__grid) {
	display: grid;
	grid-template-columns: repeat(var(--tf-cols, 3), minmax(0, 1fr));
	gap: var(--tf-gap, 24px);
}

:where(.tf-portfolio__card) {
	position: relative;
	overflow: hidden;
	border-radius: var(--tf-radius, 0px);
	transition: opacity 0.45s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

:where(.tf-portfolio__card.is-hidden) {
	display: none;
}

:where(.tf-portfolio__card.is-entering) {
	animation: tf-card-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
	animation-delay: calc(var(--tf-d, 0) * 60ms);
}

@keyframes tf-card-in {
	from { opacity: 0; transform: translate3d(0, 24px, 0) scale(0.96); }
	to { opacity: 1; transform: none; }
}

:where(.tf-portfolio__link) {
	display: block;
	color: inherit;
	text-decoration: none;
}

:where(.tf-portfolio__media) {
	display: block;
	position: relative;
	aspect-ratio: var(--tf-ratio, 4 / 5);
	overflow: hidden;
	background: #1a1a1a;
}

:where(.tf-portfolio__img, .tf-portfolio__placeholder) {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

:where(.tf-portfolio__placeholder) {
	background: linear-gradient(135deg, #9897a5, #2b4394);
}

:where(.tf-portfolio__link:hover) :where(.tf-portfolio__img, .tf-portfolio__placeholder) {
	transform: scale(1.07);
}

:where(.tf-portfolio__body) {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px 0 0;
}

:where(.tf-portfolio__title) {
	margin: 0;
	font-size: 1.7rem;
	line-height: 1.05;
	text-transform: uppercase;
}

:where(.tf-portfolio__cat) {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

:where(.tf-portfolio__excerpt) {
	font-size: 0.92rem;
	opacity: 0.85;
}

:where(.tf-portfolio__arrow) {
	display: inline-grid;
	place-items: center;
	width: 38px;
	height: 38px;
	margin-top: 8px;
	border-radius: 50%;
	border: 1px solid currentColor;
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.3s ease;
}

:where(.tf-portfolio__arrow svg) {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

:where(.tf-portfolio__link:hover) :where(.tf-portfolio__arrow) {
	transform: translateX(6px) rotate(-45deg);
}

:where(.tf-portfolio-style-overlay) :where(.tf-portfolio__body) {
	position: absolute;
	inset: auto 0 0 0;
	padding: 60px 22px 22px;
	color: #ffffff;
	background: linear-gradient(to top, var(--tf-overlay, rgba(0, 0, 0, 0.85)) 0%, transparent 100%);
	transform: translate3d(0, 18px, 0);
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

:where(.tf-portfolio-style-overlay) :where(.tf-portfolio__link:hover) :where(.tf-portfolio__body) {
	transform: none;
}

:where(.tf-portfolio__empty) {
	padding: 40px 24px;
	text-align: center;
	border: 1px dashed currentColor;
	opacity: 0.8;
}

/* ================================================================= MARQUEE */
:where(.tf-marquee) {
	--_dur: var(--tf-marquee-duration, 30s);
	--_gap: var(--tf-marquee-gap, 36px);
	position: relative;
	overflow: hidden;
	padding-block: 16px;
	user-select: none;
}

:where(.tf-marquee__track) {
	display: flex;
	width: max-content;
	animation: tf-marquee var(--_dur) linear infinite;
}

:where(.tf-marquee-dir-right) :where(.tf-marquee__track) {
	animation-direction: reverse;
}

:where(.tf-marquee-pause-yes) :where(.tf-marquee:hover) :where(.tf-marquee__track) {
	animation-play-state: paused;
}

:where(.tf-marquee__group) {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	gap: var(--_gap);
	padding-right: var(--_gap);
}

:where(.tf-marquee__item) {
	white-space: nowrap;
	line-height: 1;
	font-size: clamp(2rem, 5vw, 4rem);
	text-transform: uppercase;
}

:where(.tf-marquee__item p) {
	display: inline;
	margin: 0;
}

:where(.tf-marquee__sep) {
	display: inline-grid;
	place-items: center;
	font-size: var(--tf-marquee-sep, 0.6em);
	line-height: 1;
}

:where(.tf-marquee__sep svg) {
	width: var(--tf-marquee-sep, 22px);
	height: var(--tf-marquee-sep, 22px);
	fill: currentColor;
}

@keyframes tf-marquee {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}

/* ===================================================================== CF7 */
:where(.tf-cf7) {
	--_gap: var(--tf-field-gap, 18px);
}

:where(.tf-cf7 .wpcf7-form) {
	display: grid;
	gap: var(--_gap);
}

:where(.tf-cf7 .wpcf7-form > p) {
	margin: 0;
}

:where(.tf-cf7 .tf-row) {
	display: grid;
	gap: var(--_gap);
}

:where(.tf-cf7-cols-yes) :where(.tf-cf7 .tf-row) {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

:where(.tf-cf7 label) {
	display: block;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

:where(.tf-cf7 .wpcf7-form-control-wrap) {
	display: block;
	margin-top: 6px;
}

:where(.tf-cf7 .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):not(.wpcf7-acceptance)) {
	width: 100%;
	padding: 14px 16px;
	border: 1px solid #b5b5b5;
	border-radius: 0;
	background: #ffffff;
	color: #111111;
	font-size: 1rem;
	line-height: 1.5;
	text-transform: none;
	letter-spacing: normal;
	font-weight: 400;
	transition: border-color 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}

:where(.tf-cf7 .wpcf7-form-control:not(.wpcf7-submit):focus) {
	outline: 0;
	border-color: var(--tf-focus, var(--e-global-color-accent, #a86b32));
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--tf-focus, #a86b32) 22%, transparent);
}

:where(.tf-cf7 textarea.wpcf7-form-control) {
	height: 180px;
	resize: vertical;
}

:where(.tf-cf7 .wpcf7-acceptance, .tf-cf7 .wpcf7-checkbox) :where(label) {
	display: inline-flex;
	gap: 10px;
	align-items: flex-start;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	font-size: 0.9rem;
}

:where(.tf-cf7 .wpcf7-list-item) {
	margin: 0;
}

:where(.tf-cf7 input[type="checkbox"]) {
	width: 18px;
	height: 18px;
	margin-top: 3px;
	accent-color: var(--tf-focus, var(--e-global-color-accent, #a86b32));
}

.tf-cf7 .wpcf7-form .wpcf7-submit {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 14px 34px;
	border: 0;
	color: var(--tf-btn-color, #ffffff);
	background: var(--tf-btn-bg, #000000);
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	transition: background-color 0.35s ease, color 0.35s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.tf-cf7 .wpcf7-form .wpcf7-submit:hover,
.tf-cf7 .wpcf7-form .wpcf7-submit:focus {
	color: var(--tf-btn-hover-color, #ffffff);
	background: var(--tf-btn-hover-bg, var(--e-global-color-accent, #a86b32));
	transform: translateY(-2px);
}

:where(.tf-cf7 .wpcf7-not-valid-tip) {
	margin-top: 6px;
	color: var(--tf-error, #c0392b);
	font-size: 0.85rem;
}

:where(.tf-cf7 .wpcf7-response-output) {
	margin: 0;
	padding: 12px 16px;
	border: 1px solid currentColor;
	font-size: 0.95rem;
}

:where(.tf-cf7 .wpcf7-form.invalid, .tf-cf7 .wpcf7-form.failed, .tf-cf7 .wpcf7-form.spam, .tf-cf7 .wpcf7-form.unaccepted) :where(.wpcf7-response-output) {
	color: var(--tf-error, #c0392b);
}

:where(.tf-cf7 .wpcf7-form.sent) :where(.wpcf7-response-output) {
	color: var(--tf-success, #2e7d32);
}

:where(.tf-cf7 .wpcf7-spinner) {
	margin: 0 0 0 12px;
	vertical-align: middle;
}

/* ================================================================== PAYPAL */
:where(.tf-paypal) {
	text-align: center;
}

:where(.tf-paypal__title) :where(h1, h2, h3, h4, h5, h6, p) {
	margin: 0 0 0.3em;
}

:where(.tf-paypal__form) {
	display: grid;
	gap: 12px;
	max-width: 420px;
	margin: 16px auto 0;
	text-align: left;
}

:where(.tf-paypal__label) {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.8;
}

:where(.tf-paypal__select-wrap) {
	position: relative;
	display: block;
}

:where(.tf-paypal__select-wrap)::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 8px;
	height: 8px;
	margin-top: -6px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	pointer-events: none;
}

:where(.tf-paypal__select) {
	appearance: none;
	width: 100%;
	padding: 13px 44px 13px 14px;
	border: 1px solid #b5b5b5;
	border-radius: 0;
	background: #ffffff;
	color: #111111;
	font-size: 0.95rem;
	cursor: pointer;
}

.tf-paypal .tf-paypal__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 50px;
	padding: 14px 24px;
	border: 0;
	color: var(--tf-btn-color, #ffffff);
	background: var(--tf-btn-bg, #000000);
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	transition: color 0.35s ease;
}

:where(.tf-paypal__button)::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--tf-btn-hover-bg, var(--e-global-color-accent, #a86b32));
	transform: translateX(-101%);
	transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}

.tf-paypal .tf-paypal__button:hover,
.tf-paypal .tf-paypal__button:focus {
	color: var(--tf-btn-hover-color, #ffffff);
	background-color: var(--tf-btn-bg, #000000);
}

:where(.tf-paypal__button:hover, .tf-paypal__button:focus-visible)::before {
	transform: none;
}

:where(.tf-paypal__icon) {
	width: 1.2em;
	height: 1.2em;
	fill: currentColor;
	font-size: 1.2em;
}

:where(.tf-paypal__note) {
	margin-top: 10px;
	font-size: 0.8rem;
	opacity: 0.75;
}

:where(.tf-paypal__note p) {
	margin: 0;
}

/* ============================================= Concert list (text editor) */
:where(.tf-concerts) {
	list-style: none;
	margin: 0;
	padding: 0;
}

:where(.tf-concerts li) {
	display: grid;
	grid-template-columns: 6.2em 1fr;
	gap: 14px;
	padding: 10px 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	transition: background-color 0.3s ease, padding-left 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

:where(.tf-concerts li:hover) {
	background-color: rgba(152, 151, 165, 0.12);
	padding-left: 8px;
}

:where(.tf-concerts .tf-date) {
	font-family: var(--e-global-typography-primary-font-family, "Teko"), sans-serif;
	font-size: 1.25em;
	line-height: 1.2;
	color: var(--e-global-color-accent, #a86b32);
	font-weight: 500;
	letter-spacing: 0.04em;
}

@media (max-width: 480px) {
	:where(.tf-concerts li) {
		grid-template-columns: 1fr;
		gap: 2px;
	}
}

/* ======================================== Bullet list (text editor .tf-list) */
:where(.tf-list) {
	list-style: none;
	margin: 0;
	padding: 0;
}

:where(.tf-list li) {
	position: relative;
	padding: 8px 0 8px 26px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

:where(.tf-list li)::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 1.05em;
	width: 10px;
	height: 2px;
	background: var(--e-global-color-accent, #a86b32);
	transition: width 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

:where(.tf-list li:hover)::before {
	width: 18px;
}

/* ==================================================== Responsive helpers */
@media (max-width: 1024px) {
	:where(.tf-parallax-yes) {
		translate: none;
	}
}

/* ========================================================= Reduced motion */
@media (prefers-reduced-motion: reduce) {
	:where([class*="tf-reveal-"]),
	:where([class*="tf-reveal-"]) :where(*) {
		opacity: 1;
		transform: none;
		filter: none;
		clip-path: none;
		transition: none;
	}

	:where(.tf-kenburns-yes) :where(img),
	:where(.tf-float-yes),
	:where(.tf-marquee__track) {
		animation: none;
	}

	:where(.tf-parallax-yes) {
		translate: none;
	}

	:where(.tf-js) :where(.tf-gallery--stagger) :where(.tf-gallery__item) {
		opacity: 1;
		transform: none;
	}
}

/* Kit switch "Disattiva tutte le animazioni Tantillo" */
:where(.tf-no-fx) :where([class*="tf-reveal-"]),
:where(.tf-no-fx) :where([class*="tf-reveal-"]) :where(*) {
	opacity: 1;
	transform: none;
	filter: none;
	clip-path: none;
	transition: none;
}

:where(.tf-no-fx) :where(.tf-kenburns-yes img, .tf-float-yes, .tf-marquee__track) {
	animation: none;
}

:where(.tf-no-fx) :where(.tf-gallery--stagger .tf-gallery__item) {
	opacity: 1;
	transform: none;
}
