/**
 * INFAP — Brand motion & contrast (navy / lime).
 * Tokens + button system + underlines + homepage accents.
 */

:root {
	--infap-navy: #152747;
	--infap-lime: #9bc67c;
	--infap-lime-hover: #7db05b;
	--infap-lime-soft: #b5d89a;
	--infap-white: #ffffff;
	--infap-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--infap-dur-fast: 180ms;
	--infap-dur: 280ms;
}

/* ==========================================================================
   2. Button system — primary / outline / inverse
   ========================================================================== */

/* Shared transitions */
.elementor-25575 .elementor-element-489b7cf .elementor-button,
.elementor-14400 .elementor-element-ee7fc24 .thim-link-login a,
.elementor-14400 .elementor-element-ee7fc24 a.js-show-popup,
.elementor-14400 .elementor-element-ee7fc24 .login-links a,
.elementor-25575 .elementor-element-31e6938 .widget-button,
.elementor-25575 .thim-widget-button .widget-button {
	transition:
		background-color var(--infap-dur) var(--infap-ease),
		color var(--infap-dur) var(--infap-ease),
		border-color var(--infap-dur) var(--infap-ease),
		transform var(--infap-dur-fast) var(--infap-ease),
		box-shadow var(--infap-dur) var(--infap-ease) !important;
}

.elementor-25575 .elementor-element-489b7cf .elementor-button:focus-visible,
.elementor-14400 .elementor-element-ee7fc24 .thim-link-login a:focus-visible,
.elementor-14400 .elementor-element-ee7fc24 a.js-show-popup:focus-visible,
.elementor-25575 .elementor-element-31e6938 .widget-button:focus-visible {
	outline: 2px solid var(--infap-lime) !important;
	outline-offset: 3px !important;
}

/* --- Primary: lime fill → navy fill + lime text --- */
.elementor-25575 .elementor-element-489b7cf .elementor-button,
.elementor-14400 .elementor-element-ee7fc24 .thim-link-login a,
.elementor-14400 .elementor-element-ee7fc24 a.js-show-popup,
.elementor-14400 .elementor-element-ee7fc24 .login-links a {
	background-color: var(--infap-lime) !important;
	background-image: none !important;
	color: var(--infap-navy) !important;
	border-color: var(--infap-lime) !important;
}

.elementor-25575 .elementor-element-489b7cf .elementor-button:hover,
.elementor-25575 .elementor-element-489b7cf .elementor-button:focus,
.elementor-14400 .elementor-element-ee7fc24 .thim-link-login a:hover,
.elementor-14400 .elementor-element-ee7fc24 .thim-link-login a:focus,
.elementor-14400 .elementor-element-ee7fc24 a.js-show-popup:hover,
.elementor-14400 .elementor-element-ee7fc24 a.js-show-popup:focus,
.elementor-14400 .elementor-element-ee7fc24 .login-links a:hover,
.elementor-14400 .elementor-element-ee7fc24 .login-links a:focus {
	background-color: var(--infap-navy) !important;
	color: var(--infap-lime) !important;
	border-color: var(--infap-navy) !important;
	transform: translateY(-1px);
}

/* --- Outline: navy border → lime fill --- */
.elementor-25575 .elementor-element-31e6938 .widget-button {
	background-color: transparent !important;
	color: var(--infap-navy) !important;
	border-style: solid !important;
	border-width: 1px !important;
	border-color: var(--infap-navy) !important;
}

.elementor-25575 .elementor-element-31e6938 .widget-button:hover,
.elementor-25575 .elementor-element-31e6938 .widget-button:focus {
	background-color: var(--infap-lime) !important;
	color: var(--infap-navy) !important;
	border-color: var(--infap-lime) !important;
	transform: translateY(-1px);
}

.elementor-25575 .elementor-element-31e6938 .widget-button i,
.elementor-25575 .elementor-element-31e6938 .widget-button svg path {
	transition: color var(--infap-dur) var(--infap-ease), fill var(--infap-dur) var(--infap-ease);
}

.elementor-25575 .elementor-element-31e6938 .widget-button:hover i,
.elementor-25575 .elementor-element-31e6938 .widget-button:focus i {
	color: var(--infap-navy) !important;
}

.elementor-25575 .elementor-element-31e6938 .widget-button:hover svg path,
.elementor-25575 .elementor-element-31e6938 .widget-button:focus svg path {
	fill: var(--infap-navy) !important;
}

/* --- Inverse (on navy bands): lime → soft lime / white --- */
.elementor-25575 .elementor-element-eb9c08f .elementor-button,
.elementor-25575 .elementor-element-eb9c08f .widget-button,
.elementor-25575 .elementor-element-505515f .elementor-button,
.elementor-25575 .elementor-element-505515f .widget-button {
	background-color: var(--infap-lime) !important;
	color: var(--infap-navy) !important;
	border-color: var(--infap-lime) !important;
	transition:
		background-color var(--infap-dur) var(--infap-ease),
		color var(--infap-dur) var(--infap-ease),
		border-color var(--infap-dur) var(--infap-ease),
		transform var(--infap-dur-fast) var(--infap-ease);
}

.elementor-25575 .elementor-element-eb9c08f .elementor-button:hover,
.elementor-25575 .elementor-element-eb9c08f .widget-button:hover,
.elementor-25575 .elementor-element-505515f .elementor-button:hover,
.elementor-25575 .elementor-element-505515f .widget-button:hover {
	background-color: var(--infap-white) !important;
	color: var(--infap-navy) !important;
	border-color: var(--infap-white) !important;
	transform: translateY(-1px);
}

/* ==========================================================================
   3. Animated underlines — menu + section titles
   ========================================================================== */

/* Header nav links: lime underline draw */
.elementor-14400 .thim-ekits-menu__nav > .menu-item > .thim-ekits-menu__nav-link {
	position: relative !important;
	text-decoration: none !important;
}

.elementor-14400 .thim-ekits-menu__nav > .menu-item > .thim-ekits-menu__nav-link::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.15em;
	height: 2px;
	background: var(--infap-lime);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--infap-dur) var(--infap-ease);
	pointer-events: none;
}

.elementor-14400 .thim-ekits-menu__nav > .menu-item > .thim-ekits-menu__nav-link:hover::after,
.elementor-14400 .thim-ekits-menu__nav > .menu-item > .thim-ekits-menu__nav-link:focus-visible::after,
.elementor-14400 .thim-ekits-menu__nav > .menu-item.current-menu-item > .thim-ekits-menu__nav-link::after,
.elementor-14400 .thim-ekits-menu__nav > .menu-item.current-menu-ancestor > .thim-ekits-menu__nav-link::after {
	transform: scaleX(1);
}

/* Homepage section titles: short lime accent (drawn on scroll) */
.elementor-25575 .sc_heading .title {
	position: relative;
	display: inline-block;
}

.elementor-25575 .sc_heading .title.infap-title-accent::after {
	content: '';
	display: block;
	width: 56px;
	height: 3px;
	margin: 12px auto 0;
	border-radius: 2px;
	background: var(--infap-lime);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform var(--infap-dur) var(--infap-ease);
}

.elementor-25575 .sc_heading.text-left .title.infap-title-accent::after {
	margin-left: 0;
	margin-right: auto;
	transform-origin: left center;
}

@media (max-width: 767px) {
	.elementor-25575 .thim-ekits-heading--mobiletext-left .sc_heading .title.infap-title-accent::after {
		margin-left: 0;
		margin-right: auto;
		transform-origin: left center;
	}
}

.elementor-25575 .sc_heading .title.infap-title-accent.is-inview::after {
	transform: scaleX(1);
}

/* In evidenza cards: lime accent on hover */
.infap-evidenza-card__link {
	transition:
		transform var(--infap-dur-fast) var(--infap-ease),
		box-shadow var(--infap-dur) var(--infap-ease),
		border-color var(--infap-dur) var(--infap-ease) !important;
	border: 1px solid transparent;
}

.infap-evidenza-card__link:hover {
	border-color: var(--infap-lime) !important;
	box-shadow: 0 8px 24px rgba(21, 39, 71, 0.12) !important;
}

.infap-evidenza-card__title {
	transition: color var(--infap-dur-fast) var(--infap-ease);
}

.infap-evidenza-card__link:hover .infap-evidenza-card__title {
	color: var(--infap-navy);
}

.infap-evidenza-card__link:hover .infap-evidenza-card__badge {
	filter: brightness(1.05);
}

/* ==========================================================================
   4. Overlap accents — hero + numeri
   ========================================================================== */

/* Hero: lime vertical bar on the right edge (behind dock) */
.elementor-25575 .elementor-element-0823eb7.infap-hero-has-dock::after,
.elementor-25575 .elementor-element-0823eb7::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 5px;
	height: 100%;
	background: var(--infap-lime);
	opacity: 0.9;
	pointer-events: none;
	z-index: 5;
}

/* Hero CTA: subtle lime glow-less lift already via primary hover */

/* Numeri band (eb9c08f): lime corner chip invading the navy */
.elementor-25575 .elementor-element-eb9c08f {
	position: relative !important;
	overflow: visible !important;
}

.elementor-25575 .elementor-element-eb9c08f::before {
	content: '';
	position: absolute;
	top: -8px;
	left: 24px;
	width: 72px;
	height: 6px;
	background: var(--infap-lime);
	border-radius: 0 0 3px 3px;
	z-index: 2;
	pointer-events: none;
}

/* Counters row: lime left edge accent */
.elementor-25575 .elementor-element-505515f {
	position: relative !important;
}

.elementor-25575 .elementor-element-505515f::before {
	content: '';
	position: absolute;
	top: 12%;
	bottom: 12%;
	left: 0;
	width: 4px;
	background: var(--infap-lime);
	border-radius: 0 2px 2px 0;
	z-index: 2;
	pointer-events: none;
}

/* Dock icons: scale + navy ring on hover */
.elementor-element-infapdock .elementor-icon {
	transition:
		transform var(--infap-dur-fast) var(--infap-ease),
		box-shadow var(--infap-dur-fast) var(--infap-ease) !important;
}

.elementor-element-infapdock .elementor-icon-wrapper:hover .elementor-icon,
.elementor-element-infapdock a:hover .elementor-icon {
	transform: scale(1.06);
	box-shadow: 0 0 0 2px var(--infap-navy) !important;
}

/* Partners / evidenza section: thin lime strip under heading area */
.elementor-25575 .elementor-element-7aea4eb,
.elementor-25575 .elementor-element-f344be2 {
	position: relative;
}

/* ==========================================================================
   5. Reduced motion — keep color swaps, drop movement
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.elementor-25575 .elementor-element-489b7cf .elementor-button,
	.elementor-14400 .elementor-element-ee7fc24 .thim-link-login a,
	.elementor-14400 .elementor-element-ee7fc24 a.js-show-popup,
	.elementor-25575 .elementor-element-31e6938 .widget-button,
	.elementor-element-infapdock .elementor-icon,
	.infap-evidenza-card__link {
		transition:
			background-color var(--infap-dur-fast) ease,
			color var(--infap-dur-fast) ease,
			border-color var(--infap-dur-fast) ease !important;
		transform: none !important;
	}

	.elementor-25575 .elementor-element-489b7cf .elementor-button:hover,
	.elementor-14400 .elementor-element-ee7fc24 .thim-link-login a:hover,
	.elementor-25575 .elementor-element-31e6938 .widget-button:hover,
	.elementor-element-infapdock .elementor-icon-wrapper:hover .elementor-icon,
	.elementor-element-infapdock a:hover .elementor-icon {
		transform: none !important;
	}

	.elementor-14400 .thim-ekits-menu__nav > .menu-item > .thim-ekits-menu__nav-link::after,
	.elementor-25575 .sc_heading .title.infap-title-accent::after {
		transition: none;
	}

	.elementor-14400 .thim-ekits-menu__nav > .menu-item > .thim-ekits-menu__nav-link:hover::after,
	.elementor-14400 .thim-ekits-menu__nav > .menu-item.current-menu-item > .thim-ekits-menu__nav-link::after,
	.elementor-25575 .sc_heading .title.infap-title-accent.is-inview::after {
		transform: scaleX(1);
	}
}
