/**
 * Menu flutuante — trilho em cápsula e pílula que desliza.
 */

.ecw-pillnav {
	--item: 52px;
	--pad-t: 10px;
	--pad-r: 10px;
	--pad-b: 10px;
	--pad-l: 10px;
	--gap: 6px;
	--icon-size: 22px;
	--rail-bg: #ffffff;
	--rail-radius: 999px;
	--icon: #8a8a8a;
	--icon-hover: #1f1f1f;
	--icon-active: #ffffff;
	--pill-bg: #ff2d2d;
	--pill-text: #ffffff;
	--label: #8a8a8a;
	--pill-radius: 999px;
	--pill-pad-end: 18px;
	--label-gap: 0px;
	--dur: 560ms;
	--ease: cubic-bezier(0.32, 0.72, 0.24, 1);
	--z: 40;
	--off-x: 24px;
	--off-y: 0px;
	--pill-x: 0px;
	--pill-y: 0px;
	--pill-w: var(--item);
	--pill-h: var(--item);
	box-sizing: border-box;
	display: inline-flex;
	position: relative;
	width: max-content;
	max-width: 100%;
	padding: var(--pad-t) var(--pad-r) var(--pad-b) var(--pad-l);
	background: var(--rail-bg);
	border-radius: var(--rail-radius);
	box-shadow: 0 12px 40px rgba(15, 23, 42, 0.08);
	overflow: visible;
	font-family: var(--ecw-font, "Montserrat", sans-serif);
	line-height: 1;
	-webkit-font-smoothing: antialiased;
}

.ecw-pillnav--vertical[data-labels="active"] {
	width: calc(var(--item) + var(--pad-l) + var(--pad-r));
}

.ecw-pillnav__indicator {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
	width: var(--pill-w);
	height: var(--pill-h);
	border-radius: var(--pill-radius);
	background: var(--pill-bg);
	transform: translate3d(var(--pill-x), var(--pill-y), 0);
	opacity: 1;
	transition:
		transform var(--dur) var(--ease),
		width var(--dur) var(--ease),
		height var(--dur) var(--ease),
		background-color var(--dur) var(--ease),
		opacity calc(var(--dur) * 0.45) var(--ease);
	pointer-events: none;
}

.ecw-pillnav.is-idle .ecw-pillnav__indicator {
	opacity: 0;
}

.ecw-pillnav:not(.is-ready) .ecw-pillnav__indicator {
	visibility: hidden;
}

.ecw-pillnav__list {
	position: relative;
	display: flex;
	gap: var(--gap);
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ecw-pillnav--vertical .ecw-pillnav__list {
	flex-direction: column;
}

.ecw-pillnav--horizontal .ecw-pillnav__list {
	flex-direction: row;
	align-items: center;
	width: auto;
}

.ecw-pillnav__item {
	position: relative;
	z-index: 0;
	display: flex;
	width: 100%;
	margin: 0;
	padding: 0;
}

.ecw-pillnav__item:has(.is-current) {
	z-index: 2;
}

.ecw-pillnav--horizontal .ecw-pillnav__item {
	width: auto;
}

.ecw-pillnav--grow-left .ecw-pillnav__item {
	justify-content: flex-end;
}

.ecw-pillnav__link {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	height: var(--item);
	min-height: var(--item);
	max-height: var(--item);
	position: relative;
	color: var(--icon);
	border-radius: var(--pill-radius);
	cursor: pointer;
	transition: color var(--dur) var(--ease);
}

.ecw-pillnav--grow-left .ecw-pillnav__link {
	flex-direction: row-reverse;
}

.ecw-pillnav .ecw-pillnav__link,
.ecw-pillnav .ecw-pillnav__link:hover,
.ecw-pillnav .ecw-pillnav__link:focus,
.ecw-pillnav .ecw-pillnav__link:active,
.ecw-pillnav .ecw-pillnav__link.is-current,
.ecw-pillnav .ecw-pillnav__link.is-active,
.ecw-pillnav .ecw-pillnav__label {
	text-decoration: none;
}

.ecw-pillnav__link:focus {
	outline: none;
}

.ecw-pillnav__link:focus-visible {
	outline: 2px solid var(--pill-bg);
	outline-offset: 3px;
}

@media (hover: hover) {
	.ecw-pillnav__link:hover {
		color: var(--icon-hover);
	}

	.ecw-pillnav__link.is-current:hover {
		color: var(--icon-active);
	}
}

.ecw-pillnav__link.is-current {
	color: var(--icon-active);
}

.ecw-pillnav:not(.is-ready) .ecw-pillnav__link.is-active {
	background: var(--pill-bg);
	color: var(--icon-active);
}

.ecw-pillnav__icon {
	display: grid;
	flex: 0 0 var(--item);
	place-items: center;
	width: var(--item);
	height: var(--item);
	font-size: var(--icon-size);
	line-height: 1;
}

.ecw-pillnav__icon svg {
	display: block;
	width: var(--icon-size);
	height: var(--icon-size);
	fill: currentColor;
}

.ecw-pillnav__icon i {
	font-size: var(--icon-size);
	line-height: 1;
}

.ecw-pillnav__label {
	display: block;
	overflow: hidden;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -0.01em;
	white-space: nowrap;
	color: var(--pill-text);
}

.ecw-pillnav[data-labels="active"] .ecw-pillnav__link {
	width: var(--item);
}

.ecw-pillnav[data-labels="active"] .ecw-pillnav__label {
	position: absolute;
	top: 0;
	bottom: 0;
	left: calc(var(--item) + var(--label-gap));
	display: flex;
	align-items: center;
	max-width: 0;
	margin: 0;
	padding-inline-end: 0;
	opacity: 0;
	transform: translateX(-10px);
	transition:
		max-width var(--dur) var(--ease),
		opacity calc(var(--dur) * 0.4) var(--ease),
		padding var(--dur) var(--ease),
		transform var(--dur) var(--ease);
}

.ecw-pillnav--grow-left[data-labels="active"] .ecw-pillnav__label {
	left: auto;
	right: calc(var(--item) + var(--label-gap));
	transform: translateX(10px);
}

.ecw-pillnav[data-labels="active"] .ecw-pillnav__link.is-current .ecw-pillnav__label,
.ecw-pillnav:not(.is-ready)[data-labels="active"] .ecw-pillnav__link.is-active .ecw-pillnav__label {
	max-width: calc(var(--label-max, 10em) + var(--pill-pad-end));
	padding-inline-end: var(--pill-pad-end);
	opacity: 1;
	transform: translateX(0);
	transition:
		max-width var(--dur) var(--ease),
		opacity calc(var(--dur) * 0.55) var(--ease) calc(var(--dur) * 0.18),
		padding var(--dur) var(--ease),
		transform var(--dur) var(--ease);
}

.ecw-pillnav--grow-left[data-labels="active"] .ecw-pillnav__link.is-current .ecw-pillnav__label,
.ecw-pillnav--grow-left:not(.is-ready)[data-labels="active"] .ecw-pillnav__link.is-active .ecw-pillnav__label {
	padding-inline-end: 0;
	padding-inline-start: var(--pill-pad-end);
}

.ecw-pillnav[data-labels="always"] .ecw-pillnav__label {
	max-width: none;
	margin-inline-start: var(--label-gap);
	padding-inline-end: var(--pill-pad-end);
	color: var(--label);
	opacity: 1;
	transition: color var(--dur) ease;
}

.ecw-pillnav--grow-left[data-labels="always"] .ecw-pillnav__label {
	margin-inline-start: 0;
	margin-inline-end: var(--label-gap);
	padding-inline-end: 0;
	padding-inline-start: var(--pill-pad-end);
}

.ecw-pillnav[data-labels="always"] .ecw-pillnav__link.is-current .ecw-pillnav__label {
	color: var(--pill-text);
}

.ecw-pillnav.is-instant .ecw-pillnav__indicator,
.ecw-pillnav.is-instant .ecw-pillnav__label,
.ecw-pillnav.is-instant .ecw-pillnav__link {
	transition: none !important;
}

.ecw-pillnav--fixed {
	position: fixed !important;
	z-index: var(--z);
}

.ecw-pillnav--edge-left {
	left: var(--off-x);
}

.ecw-pillnav--edge-right {
	right: var(--off-x);
}

.ecw-pillnav--edge-top {
	top: var(--off-y);
}

.ecw-pillnav--edge-bottom {
	bottom: var(--off-y);
}

.ecw-pillnav--anchor-center.ecw-pillnav--edge-left,
.ecw-pillnav--anchor-center.ecw-pillnav--edge-right {
	top: calc(50% + var(--off-y));
	transform: translateY(-50%);
}

.ecw-pillnav--anchor-start.ecw-pillnav--edge-left,
.ecw-pillnav--anchor-start.ecw-pillnav--edge-right {
	top: var(--off-y);
}

.ecw-pillnav--anchor-center.ecw-pillnav--edge-top,
.ecw-pillnav--anchor-center.ecw-pillnav--edge-bottom {
	left: calc(50% + var(--off-x));
	transform: translateX(-50%);
}

.ecw-pillnav--anchor-start.ecw-pillnav--edge-top,
.ecw-pillnav--anchor-start.ecw-pillnav--edge-bottom {
	left: var(--off-x);
}

.elementor-widget-ecw-pill-menu,
.elementor-widget-ecw-pill-menu > .elementor-widget-container {
	overflow: visible;
}

/* Sai do fluxo da seção: não estica a coluna nem empurra o conteúdo. */
.elementor-widget-ecw-pill-menu:has(.ecw-pillnav--fixed) {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	flex: 0 0 auto !important;
	align-self: start !important;
	overflow: visible !important;
	pointer-events: none;
}

.elementor-widget-ecw-pill-menu:has(.ecw-pillnav--fixed) > .elementor-widget-container {
	width: 0;
	height: 0;
	margin: 0;
	padding: 0;
	overflow: visible !important;
}

.elementor-widget-ecw-pill-menu:has(.ecw-pillnav--fixed) .ecw-pillnav {
	pointer-events: auto;
}

/* Seção criada só para o menu: não deixa uma faixa vazia na página. */
.e-con:has(.ecw-pillnav--fixed):not(:has(.elementor-widget:not(.elementor-widget-ecw-pill-menu))),
.elementor-section:has(.ecw-pillnav--fixed):not(:has(.elementor-widget:not(.elementor-widget-ecw-pill-menu))) {
	min-height: 0 !important;
	height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: visible !important;
	background: transparent !important;
}

.ecw-pillnav__empty {
	margin: 0;
	color: #71717a;
	font-size: 14px;
}

@media (max-width: 992px) {
	.ecw-pillnav--fixed {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ecw-pillnav__indicator,
	.ecw-pillnav__label,
	.ecw-pillnav__link {
		transition: none !important;
	}
}
