/*
 * Echosis — refinamento visual
 * Carrega depois do Elementor e dos addons. Só acrescenta acabamento (tipografia, botões, formulários,
 * cabeçalho, rodapé, cards, equipe); cores, textos e efeitos das páginas continuam vindo do Elementor.
 *
 * IDs usados: 14078 = cabeçalho, 14131 = rodapé, 14070 = Home.
 */

:root {
	--echo-red: #ed1c24;
	--echo-red-soft: rgba(237, 28, 36, .22);
	--echo-font: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--echo-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */

html {
	scroll-padding-top: 96px;
	/* animações de entrada pela lateral e galerias largas não criam mais rolagem horizontal no celular */
	overflow-x: clip;
}

body {
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--echo-red);
	color: #fff;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 2px solid var(--echo-red);
	outline-offset: 3px;
}

/* ---------- Cabeçalho ---------- */

.elementor-14078 {
	position: sticky;
	top: 0;
	z-index: 9990;
}

.elementor-14078 > .e-con {
	transition: box-shadow .3s var(--echo-ease), background-color .3s var(--echo-ease);
	border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.echo-scrolled .elementor-14078 > .e-con {
	box-shadow: 0 10px 30px -12px rgba(0, 0, 0, .75);
}

.elementor-14078 .elementor-widget-image img {
	transition: width .3s var(--echo-ease), height .3s var(--echo-ease);
}

.echo-scrolled .elementor-14078 .elementor-widget-image img {
	width: 104px;
	height: auto;
}

.elementor-14078 .wpr-menu-item,
.elementor-14078 .wpr-sub-menu-item,
.elementor-14078 .wpr-mobile-menu-item,
.elementor-14078 .wpr-mobile-sub-menu-item {
	font-family: var(--echo-font);
	font-weight: 500;
	letter-spacing: .01em;
}

.elementor-14078 .wpr-menu-item {
	font-size: 15px;
}

.elementor-14078 .wpr-sub-menu {
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 18px 40px -14px rgba(0, 0, 0, .7);
}

/* ---------- Botões ---------- */

.wpr-button,
.elementor-button,
.wpcf7-submit,
.eael-post-elements-readmore-btn,
.cc-btn {
	font-family: var(--echo-font);
	transition: transform .25s var(--echo-ease), box-shadow .25s var(--echo-ease), filter .25s var(--echo-ease),
		background-color .25s var(--echo-ease), color .25s var(--echo-ease), border-color .25s var(--echo-ease);
}

.wpr-button {
	font-weight: 600;
}

.wpr-button:hover,
.elementor-button:hover,
.wpcf7-submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 26px -12px rgba(0, 0, 0, .55);
	filter: brightness(1.07);
}

.wpr-button:active,
.elementor-button:active,
.wpcf7-submit:active {
	transform: translateY(0);
	box-shadow: none;
}

/* ---------- Formulários (Contact Form 7) ---------- */

.wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):not(.wpcf7-acceptance) {
	transition: border-color .2s var(--echo-ease), box-shadow .2s var(--echo-ease), background-color .2s var(--echo-ease);
}

.wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):not(.wpcf7-acceptance):focus {
	border-color: var(--echo-red);
	box-shadow: 0 0 0 3px var(--echo-red-soft);
	outline: 0;
}

.wpcf7-submit {
	letter-spacing: .04em;
	cursor: pointer;
}

.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
	accent-color: var(--echo-red);
}

.wpcf7-not-valid-tip {
	font-family: var(--echo-font);
	font-size: 13px;
	margin-top: 4px;
}

.wpcf7 form .wpcf7-response-output {
	border-radius: 10px;
	font-family: var(--echo-font);
	font-size: 14px;
	padding: 12px 16px;
}

/* ---------- Destaque vermelho dos títulos ---------- */

.fundo-vermelho {
	border-radius: .12em;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/* ---------- Aviso de cookies (era uma faixa branca cobrindo 1/4 da tela) ---------- */

.cc-window.cc-banner {
	left: 24px !important;
	right: auto !important;
	bottom: 24px !important;
	top: auto !important;
	width: min(440px, calc(100vw - 32px)) !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 14px;
	padding: 20px 22px !important;
	background: #16181c !important;
	color: #d9dce1 !important;
	border: 1px solid rgba(255, 255, 255, .1) !important;
	border-radius: 16px;
	box-shadow: 0 24px 60px -18px rgba(0, 0, 0, .8) !important;
	font-family: var(--echo-font) !important;
	font-size: 13.5px !important;
	line-height: 1.55 !important;
	text-align: left !important;
}

.cc-window.cc-banner.cc-invisible {
	display: none !important;
}

.cc-window.cc-banner .cc-message {
	margin: 0 !important;
	text-align: left !important;
	flex: none !important;
	color: inherit !important;
}

.cc-window.cc-banner .cc-compliance {
	justify-content: flex-start;
}

.cc-window.cc-banner .cc-btn {
	text-align: center !important;
	min-width: 0 !important;
	padding: 10px 22px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: var(--echo-red) !important;
	color: #fff !important;
	font-size: 13.5px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
}

.cc-window.cc-banner .cc-btn:hover {
	filter: brightness(1.1);
}

@media (max-width: 767px) {
	.cc-window.cc-banner {
		left: 16px !important;
		bottom: 16px !important;
	}
}

/* ---------- Home ---------- */

/* "Quem é a Echosis": os 6 itens viram cards */
.elementor-14070 .elementor-widget-image-box {
	height: 100%;
	padding: 26px 22px;
	background: rgba(255, 255, 255, .035);
	border: 1px solid rgba(255, 255, 255, .09);
	border-radius: 18px;
	backdrop-filter: blur(3px);
	transition: transform .3s var(--echo-ease), border-color .3s var(--echo-ease), background-color .3s var(--echo-ease);
}

.elementor-14070 .elementor-widget-image-box:hover {
	transform: translateY(-4px);
	border-color: rgba(237, 28, 36, .65);
	background: rgba(237, 28, 36, .07);
}

/* texto justificado abria buracos entre as palavras */
.elementor-14070 .elementor-widget-image-box .elementor-image-box-title,
.elementor-14070 .elementor-widget-image-box .elementor-image-box-description {
	text-align: left;
}

.elementor-14070 .elementor-element.elementor-widget-image-box .elementor-image-box-title {
	line-height: 1.3;
	margin-bottom: 14px;
}

/* ---------- Rodapé ---------- */

.elementor-14131 .elementor-social-icon {
	border-radius: 12px;
	transition: transform .25s var(--echo-ease), box-shadow .25s var(--echo-ease), filter .25s var(--echo-ease);
}

.elementor-14131 .elementor-social-icon:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 22px -10px rgba(0, 0, 0, .8);
	filter: brightness(1.12);
}

/* ---------- Blog (listas de artigos) ---------- */

.eael-grid-post-holder,
.wpr-grid-item-inner {
	transition: transform .3s var(--echo-ease), box-shadow .3s var(--echo-ease);
}

.eael-grid-post-holder:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 40px -22px rgba(0, 0, 0, .45);
}

/* ---------- Unidades ---------- */

/* galeria de 4 colunas estourava a largura no celular */
.elementor-widget-image-gallery .gallery {
	max-width: 100%;
}

@media (max-width: 767px) {
	.elementor .elementor-element.elementor-widget-image-gallery .gallery {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 16px;
		margin: 0;
	}

	.elementor .elementor-element.elementor-widget-image-gallery .gallery .gallery-item {
		width: auto;
		max-width: none;
		margin: 0;
		padding: 0;
		float: none;
	}

	.elementor-widget-image-gallery .gallery br {
		display: none;
	}
}

/* ---------- Equipe (classes echo-team* gravadas na seção pela rotina do plugin) ---------- */

.elementor .elementor-element.echo-team.e-con {
	--padding-top: 96px;
	--padding-bottom: 104px;
}

.echo-team .elementor-widget-heading .elementor-heading-title {
	font-family: var(--echo-font);
	font-size: clamp(28px, 3vw, 38px);
	font-weight: 800;
	letter-spacing: -.01em;
}

.echo-team .elementor-widget-heading .elementor-heading-title::after {
	content: "";
	display: block;
	width: 56px;
	height: 4px;
	margin: 16px auto 0;
	border-radius: 4px;
	background: var(--echo-red);
}

/* a coluna interna tinha 74% da largura: com 4 pessoas ela ocupa a seção toda */
.elementor .elementor-element.echo-team > .e-con-inner > .e-con {
	--width: 100%;
	--padding-top: 0px;
	--padding-bottom: 0px;
	--gap: 36px;
	--row-gap: 36px;
}

.elementor .elementor-element.echo-team .e-con .e-con {
	--padding-left: 0px;
	--padding-right: 0px;
	--padding-top: 0px;
	--padding-bottom: 0px;
}

/* destaque (gestor da unidade) */
.elementor .elementor-element.echo-team .echo-team-lead.elementor-widget {
	width: 100%;
	max-width: 860px;
	margin: 28px auto 0;
	padding: 30px 34px;
	background: linear-gradient(135deg, #23262d 0%, #1b1d22 100%);
	border: 1px solid rgba(255, 255, 255, .08);
	border-left: 4px solid var(--echo-red);
	border-radius: 20px;
	box-shadow: 0 30px 60px -36px rgba(0, 0, 0, .9);
}

.elementor .elementor-element.echo-team .echo-team-lead .elementor-image-box-wrapper .elementor-image-box-img {
	width: 148px;
	flex: 0 0 148px;
	margin: 0 28px 0 0;
}

.elementor .elementor-element.echo-team .echo-team-lead .elementor-image-box-img img {
	width: 148px;
	height: 148px;
	object-fit: cover;
	padding: 4px;
	border: 2px solid var(--echo-red);
	border-radius: 50%;
}

.elementor .elementor-element.echo-team .echo-team-lead .elementor-image-box-title {
	margin-bottom: 10px;
	font-size: 24px;
	font-weight: 700;
}

.elementor .elementor-element.echo-team .echo-team-lead .elementor-image-box-description {
	font-family: var(--echo-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.65;
	color: #c3c8d0;
}

/* cards das pessoas */
.elementor .elementor-element.echo-team .echo-team-grid .slick-track {
	display: flex;
}

.elementor .elementor-element.echo-team .echo-team-grid .premium-person-container {
	display: flex;
	flex-direction: column;
	height: auto;
	float: none;
	padding: 0 12px;
	margin: 0;
	transition: transform .35s var(--echo-ease);
}

.elementor .elementor-element.echo-team .echo-team-grid .premium-person-container:hover {
	transform: translateY(-6px);
}

.elementor .elementor-element.echo-team .echo-team-grid .premium-person-image-container {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 18px 18px 0 0;
	background: #101114;
}

.elementor .elementor-element.echo-team .echo-team-grid .premium-person-image-container img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	mix-blend-mode: normal;
}

.elementor .elementor-element.echo-team .echo-team-grid .premium-person-info {
	position: static;
	flex: 1 1 auto;
	padding: 22px 22px 26px;
	background: #22252b;
	border: 1px solid rgba(255, 255, 255, .08);
	border-top: 3px solid var(--echo-red);
	border-radius: 0 0 18px 18px;
	text-align: left;
	transition: background-color .35s var(--echo-ease), border-color .35s var(--echo-ease);
}

.elementor .elementor-element.echo-team .echo-team-grid .premium-person-container:hover .premium-person-info {
	background: #272a31;
}

.elementor .elementor-element.echo-team .echo-team-grid .premium-person-info-container {
	padding: 0;
}

.elementor .elementor-element.echo-team .echo-team-grid .premium-person-name {
	margin: 0 0 8px;
	font-family: var(--echo-font);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.25;
	color: #fff;
}

.elementor .elementor-element.echo-team .echo-team-grid .premium-person-title {
	margin: 0 0 14px;
	font-family: var(--echo-font);
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--echo-red);
}

.elementor .elementor-element.echo-team .echo-team-grid .premium-person-content {
	margin: 0;
	font-family: var(--echo-font);
	font-weight: 400;
	font-size: 14px;
	line-height: 1.65;
	color: #b6bcc6;
}

.elementor .elementor-element.echo-team .echo-team-grid .premium-person-content p {
	margin: 0;
}

.elementor .elementor-element.echo-team .echo-team-grid .slick-arrow {
	top: 28%;
	width: 42px;
	height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	box-shadow: 0 8px 20px -6px rgba(0, 0, 0, .8);
}

@media (max-width: 1024px) {
	.elementor .elementor-element.echo-team.e-con {
		--padding-left: 24px;
		--padding-right: 24px;
	}

	.elementor .elementor-element.echo-team .echo-team-grid .carousel-prev {
		left: 2px;
	}

	.elementor .elementor-element.echo-team .echo-team-grid .carousel-next {
		right: 2px;
	}
}

@media (max-width: 767px) {
	.elementor .elementor-element.echo-team.e-con {
		--padding-top: 64px;
		--padding-bottom: 72px;
		--padding-left: 16px;
		--padding-right: 16px;
	}

	.elementor .elementor-element.echo-team .echo-team-lead.elementor-widget {
		padding: 26px 22px;
		border-left-width: 1px;
		border-top: 4px solid var(--echo-red);
	}

	.elementor .elementor-element.echo-team .echo-team-lead .elementor-image-box-wrapper .elementor-image-box-img {
		margin: 0 auto 16px;
	}

	.elementor .elementor-element.echo-team .echo-team-grid .premium-person-container {
		padding: 0 6px;
	}
}

/* ---------- Acessibilidade ---------- */

@media (prefers-reduced-motion: reduce) {
	.wpr-button,
	.elementor-button,
	.wpcf7-submit,
	.elementor-14070 .elementor-widget-image-box,
	.eael-grid-post-holder,
	.echo-team .premium-person-container,
	.elementor-14131 .elementor-social-icon {
		transition: none;
		transform: none !important;
	}
}
