/* EVO — componentes institucionais da Home.
 * Conteúdo e layout são containers/widgets nativos do Elementor.
 * Estas classes fornecem a identidade visual; estilos explícitos do editor
 * podem substituir estes padrões. Não há seletores globais de página.
 */
.elementor .evs-hero { background-color: var(--evs-background); }
.elementor .evs-hero__inner { max-width: var(--evs-container); margin-inline: auto; }
.elementor .evs-hero__content { min-width: 0; }
.elementor .evs-hero__eyebrow .elementor-heading-title {
	font-family: var(--evs-font-heading);
	font-size: var(--evs-text-xs);
	font-weight: var(--evs-weight-bold);
	line-height: 1.5;
	letter-spacing: 0.12em;
	color: var(--evs-muted);
}

/* EVO — Sobre 01 e Serviços 01. Layout editável nos containers Elementor. */
.elementor .evs-about { background: var(--evs-background); scroll-margin-top: 120px; }
.elementor .evs-services { background: var(--evs-background-alt); scroll-margin-top: 120px; }
.elementor .evs-about__inner,
.elementor .evs-services__inner { max-width: var(--evs-container); margin-inline: auto; }
.elementor .evs-about__content,
.elementor .evs-about__media,
.elementor .evs-service-card { min-width: 0; }
.elementor .evs-about__eyebrow .elementor-heading-title,
.elementor .evs-services__eyebrow .elementor-heading-title {
	font-family: var(--evs-font-heading);
	font-size: var(--evs-text-xs);
	font-weight: var(--evs-weight-bold);
	line-height: 1.5;
	letter-spacing: 0.12em;
	color: var(--evs-muted);
}
.elementor .evs-about__heading .elementor-heading-title,
.elementor .evs-services__heading .elementor-heading-title {
	font-family: var(--evs-font-heading);
	font-size: clamp(2.125rem, 1.7rem + 1.4vw, 3rem);
	font-weight: var(--evs-weight-semibold);
	line-height: 1.15;
	letter-spacing: -0.025em;
	text-wrap: balance;
	color: var(--evs-heading);
}
.elementor .evs-about__text,
.elementor .evs-services__intro,
.elementor .evs-service-card__text {
	font-family: var(--evs-font-body);
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--evs-muted);
}
.evs-about__text p:last-child,
.evs-services__intro p:last-child,
.evs-service-card__text p:last-child,
.evs-about__feature p:last-child { margin-bottom: 0; }
.elementor .evs-about__image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center center;
	border-radius: var(--evs-radius-xl);
	background: var(--evs-background-alt);
}
.elementor .evs-about__feature {
	position: relative;
	padding-inline-start: 28px;
	font-family: var(--evs-font-body);
	font-size: 0.9375rem;
	font-weight: var(--evs-weight-medium);
	line-height: 1.6;
	color: var(--evs-heading);
}
.evs-about__feature::before {
	content: '';
	position: absolute;
	left: 3px;
	top: 5px;
	width: 7px;
	height: 12px;
	border-right: 2px solid var(--evs-accent);
	border-bottom: 2px solid var(--evs-accent);
	transform: rotate(45deg);
}
.elementor .evs-service-card {
	background: var(--evs-white);
	border: 1px solid var(--evs-border);
	border-radius: var(--evs-radius-lg);
	transition: transform var(--evs-transition), border-color var(--evs-transition), box-shadow var(--evs-transition);
}
.evs-service-card:hover,
.evs-service-card:focus-within { border-color: var(--evs-secondary); box-shadow: var(--evs-shadow-sm); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.evs-service-card:hover { transform: translateY(-4px); }
}
.elementor .evs-service-card__icon { width: 52px; }
.elementor .evs-service-card__icon img {
	display: block;
	box-sizing: border-box;
	width: 52px;
	height: 52px;
	padding: 12px;
	border-radius: var(--evs-radius-md);
	background: color-mix(in srgb, var(--evs-accent) 8%, var(--evs-white));
}
.elementor .evs-service-card__title .elementor-heading-title {
	font-family: var(--evs-font-heading);
	font-size: clamp(1.375rem, 1.2rem + 0.4vw, 1.5625rem);
	font-weight: var(--evs-weight-semibold);
	line-height: 1.3;
	letter-spacing: -0.015em;
	color: var(--evs-heading);
}
.elementor .evs-service-card__text { font-size: 1rem; }
.elementor .evs-service-card__link { margin-top: auto; }
.elementor .evs-service-card__link .elementor-button {
	background: transparent;
	border: 0;
	border-radius: var(--evs-radius-sm);
	padding: 4px 0;
	font-family: var(--evs-font-body);
	font-size: 0.9375rem;
	font-weight: var(--evs-weight-semibold);
	line-height: 1.5;
	color: var(--evs-primary);
	text-align: left;
}
.evs-service-card__link .elementor-button-text::after { content: ' →'; }
.evs-service-card__link .elementor-button:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 767px) {
	.elementor .evs-about__heading .elementor-heading-title,
	.elementor .evs-services__heading .elementor-heading-title { font-size: clamp(2.125rem, 1.8rem + 1.4vw, 2.375rem); }
	.elementor .evs-about__text,
	.elementor .evs-services__intro { font-size: 1rem; }
}
.elementor .evs-hero__heading .elementor-heading-title {
	font-family: var(--evs-font-heading);
	font-size: clamp(2.25rem, 1.7rem + 2.55vw, 4rem);
	font-weight: var(--evs-weight-semibold);
	line-height: 1.12;
	letter-spacing: -0.035em;
	color: var(--evs-heading);
	text-wrap: balance;
}
.elementor .evs-hero__description {
	max-width: 49ch;
	font-family: var(--evs-font-body);
	font-size: 1.125rem;
	line-height: 1.75;
	color: var(--evs-muted);
}
.evs-hero__description p:last-child { margin-bottom: 0; }
.elementor .evs-hero__actions { min-width: 0; }
.elementor .evs-hero__actions .elementor-button { font-size: 0.9375rem; }
.elementor .evs-hero__media { position: relative; min-width: 0; }
/* Detalhe decorativo, sem widget extra ou dependência externa. */
.evs-hero__media::before {
	content: '';
	position: absolute;
	width: 72px;
	height: 72px;
	inset: -18px 24px auto auto;
	border: 1px solid var(--evs-accent);
	border-radius: var(--evs-radius-pill);
	opacity: 0.35;
	pointer-events: none;
}
.elementor .evs-hero__image { position: relative; width: 100%; }
.elementor .evs-hero__image img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center center;
	border-radius: var(--evs-radius-xl);
	background: var(--evs-background-alt);
}
.elementor .evs-trust { background-color: var(--evs-primary); color: var(--evs-white); }
.elementor .evs-trust__inner { max-width: var(--evs-container); margin-inline: auto; }
.elementor .evs-trust__item { min-width: 0; text-align: center; }
.evs-trust__item + .evs-trust__item { border-inline-start: 1px solid rgb(255 255 255 / 18%); }
.elementor .evs-trust__value .elementor-heading-title {
	font-family: var(--evs-font-heading);
	font-size: clamp(1.625rem, 1.3rem + 0.7vw, 2rem);
	font-weight: var(--evs-weight-semibold);
	line-height: 1.25;
	letter-spacing: -0.025em;
	color: var(--evs-white);
}
.elementor .evs-trust__label {
	font-family: var(--evs-font-body);
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--evs-white);
	opacity: 0.8;
}
.evs-trust__label p:last-child { margin-bottom: 0; }
@media (max-width: 1024px) {
	.evs-trust__item:nth-child(3) { border-inline-start: 0; }
	.elementor .evs-hero__description { max-width: 58ch; }
}
@media (max-width: 767px) {
	.elementor .evs-hero__heading .elementor-heading-title { font-size: clamp(2.25rem, 1.75rem + 2vw, 2.625rem); }
	.elementor .evs-hero__description { font-size: 1.0625rem; }
}
@media (max-width: 480px) {
	.elementor .evs-trust__value .elementor-heading-title { font-size: clamp(1.25rem, 5.4vw, 1.625rem); }
	.elementor .evs-trust__label { font-size: 0.8125rem; }
}

/* EVO — Diferenciais 01 e Projetos 01. Estilos isolados dos novos componentes. */
.elementor .evs-differentials { background: var(--evs-primary); color: var(--evs-white); scroll-margin-top: 120px; }
.elementor .evs-projects { background: var(--evs-background); scroll-margin-top: 120px; }
.elementor .evs-differentials__inner,
.elementor .evs-projects__inner { max-width: var(--evs-container); margin-inline: auto; }
.elementor .evs-differentials__content,
.elementor .evs-differentials__media,
.elementor .evs-differential,
.elementor .evs-project-card { min-width: 0; }
.elementor .evs-differentials__eyebrow .elementor-heading-title,
.elementor .evs-projects__eyebrow .elementor-heading-title,
.elementor .evs-project-card__category .elementor-heading-title {
	font-family: var(--evs-font-heading);
	font-size: var(--evs-text-xs);
	font-weight: var(--evs-weight-bold);
	line-height: 1.5;
	letter-spacing: 0.12em;
	color: var(--evs-muted);
}
.elementor .evs-differentials__eyebrow .elementor-heading-title { color: var(--evs-white); opacity: 0.8; }
.elementor .evs-differentials__heading .elementor-heading-title,
.elementor .evs-projects__heading .elementor-heading-title {
	font-family: var(--evs-font-heading);
	font-size: clamp(2.125rem, 1.7rem + 1.2vw, 2.625rem);
	font-weight: var(--evs-weight-semibold);
	line-height: 1.18;
	letter-spacing: -0.025em;
	text-wrap: balance;
	color: var(--evs-heading);
}
.elementor .evs-differentials__heading .elementor-heading-title { color: var(--evs-white); }
.elementor .evs-differentials__intro,
.elementor .evs-differential__text,
.elementor .evs-projects__intro,
.elementor .evs-project-card__text {
	font-family: var(--evs-font-body);
	font-size: 1rem;
	line-height: 1.75;
	color: var(--evs-muted);
}
.elementor .evs-differentials__intro,
.elementor .evs-differential__text { color: var(--evs-white); opacity: 0.78; }
.evs-differentials__intro p:last-child,
.evs-differential__text p:last-child,
.evs-projects__intro p:last-child,
.evs-project-card__text p:last-child { margin-bottom: 0; }
.elementor .evs-differential { border-top: 1px solid rgb(255 255 255 / 18%); }
.elementor .evs-differential__number .elementor-heading-title {
	font-family: var(--evs-font-heading);
	font-size: 0.8125rem;
	font-weight: var(--evs-weight-semibold);
	line-height: 1.5;
	letter-spacing: 0.08em;
	color: color-mix(in srgb, var(--evs-accent) 60%, var(--evs-white));
}
.elementor .evs-differential__title .elementor-heading-title {
	font-family: var(--evs-font-heading);
	font-size: 1.125rem;
	font-weight: var(--evs-weight-semibold);
	line-height: 1.4;
	color: var(--evs-white);
}
.elementor .evs-differential__text { font-size: 0.9375rem; line-height: 1.65; }
.elementor .evs-differentials__image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center center;
	border-radius: var(--evs-radius-xl);
}
.elementor .evs-differentials__media { position: relative; }
/* Pequeno detalhe abstrato; não adiciona estatísticas nem texto não editável. */
.evs-differentials__media::before {
	content: '';
	position: absolute;
	width: 56px;
	height: 56px;
	top: -16px;
	right: 24px;
	border: 1px solid var(--evs-accent);
	border-radius: var(--evs-radius-pill);
	opacity: 0.55;
	pointer-events: none;
}
.elementor .evs-differentials__image { position: relative; }
.elementor .evs-project-card__media {
	border-radius: var(--evs-radius-lg);
	overflow: hidden;
	background: var(--evs-background-alt);
}
.elementor .evs-project-card__image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center center;
	transition: transform var(--evs-transition-slow);
}
.elementor .evs-project-card__title .elementor-heading-title {
	font-family: var(--evs-font-heading);
	font-size: clamp(1.375rem, 1.2rem + 0.4vw, 1.5625rem);
	font-weight: var(--evs-weight-semibold);
	line-height: 1.3;
	letter-spacing: -0.015em;
	color: var(--evs-heading);
}
.elementor .evs-project-card__content { flex-grow: 1; }
.elementor .evs-project-card__link { margin-top: auto; }
.elementor .evs-project-card__link .elementor-button {
	background: transparent;
	border: 0;
	border-radius: var(--evs-radius-sm);
	padding: 4px 0;
	font-family: var(--evs-font-body);
	font-size: 0.9375rem;
	font-weight: var(--evs-weight-semibold);
	line-height: 1.5;
	color: var(--evs-primary);
	text-align: left;
}
.evs-project-card__link .elementor-button-text::after {
	content: ' →';
	display: inline-block;
	margin-inline-start: 6px;
	transition: transform var(--evs-transition);
}
.evs-project-card__link .elementor-button:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (prefers-reduced-motion: no-preference) {
	.evs-project-card:focus-within .evs-project-card__image img { transform: scale(1.025); }
	.evs-project-card__link .elementor-button:focus-visible .elementor-button-text::after { transform: translateX(3px); }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.evs-project-card:hover .evs-project-card__image img { transform: scale(1.025); }
	.evs-project-card__link .elementor-button:hover .elementor-button-text::after { transform: translateX(3px); }
}
@media (max-width: 767px) {
	.elementor .evs-differentials__heading .elementor-heading-title,
	.elementor .evs-projects__heading .elementor-heading-title { font-size: clamp(2rem, 1.7rem + 1.4vw, 2.375rem); }
}
@media (max-width: 480px) {
	/* Evita colunas estreitas nos textos dos diferenciais em telas pequenas. */
	.elementor .evs-differentials__grid > .evs-differential { width: 100%; }
}

/* CTA, depoimentos, FAQ e contato — componentes editáveis da Home. */
.elementor :is(.evs-cta__inner, .evs-testimonials__inner, .evs-faq__inner, .evs-contact__inner) { max-width: var(--evs-container); margin-inline: auto; }
.elementor :is(.evs-cta, .evs-testimonials, .evs-faq, .evs-contact) { min-width: 0; }
.elementor :is(.evs-cta, .evs-testimonials, .evs-faq, .evs-contact) p { margin-block: 0; }
.elementor :is(.evs-cta__eyebrow, .evs-testimonials__eyebrow, .evs-faq__eyebrow, .evs-contact__eyebrow) .elementor-heading-title { font-family: var(--evs-font-body); font-size: 12px; font-weight: 600; line-height: 1.5; letter-spacing: .12em; color: var(--evs-muted); }
.elementor :is(.evs-cta__heading, .evs-testimonials__heading, .evs-faq__heading, .evs-contact__heading) .elementor-heading-title { font-family: var(--evs-font-heading); font-size: var(--evs-heading-lg); font-weight: 600; line-height: 1.2; letter-spacing: -.025em; color: var(--evs-heading); }
.elementor :is(.evs-cta__intro, .evs-testimonials__intro, .evs-faq__intro, .evs-contact__intro, .evs-faq__text) { font-family: var(--evs-font-body); font-size: var(--evs-text-base); line-height: 1.7; color: var(--evs-text); }
.elementor .evs-cta__block { background: var(--evs-primary); border-radius: var(--evs-radius-xl); overflow: hidden; isolation: isolate; }
.elementor .evs-cta__block::before { content: ''; position: absolute; width: 320px; height: 320px; border: 1px solid rgb(255 255 255 / 9%); border-radius: 50%; left: auto; bottom: auto; right: -130px; top: -180px; z-index: -1; box-shadow: 0 0 0 50px rgb(255 255 255 / 3%), 0 0 0 100px rgb(255 255 255 / 2%); pointer-events: none; }
.elementor .evs-cta__heading .elementor-heading-title { color: var(--evs-white); font-size: var(--evs-heading-md); }
.elementor .evs-cta__eyebrow .elementor-heading-title { color: #AACDFF; }
.elementor .evs-cta__intro { color: #D4DCE8; }
.elementor .evs-cta__button { flex-shrink: 0; }
.elementor .evs-cta__button .elementor-button { background: var(--evs-white); color: var(--evs-primary); border-radius: var(--evs-radius-sm); padding: 17px 24px; font: 600 15px/1.4 var(--evs-font-body); }
.elementor .evs-cta__button .elementor-button:hover { background: #E4EDFB; }
.elementor :is(.evs-cta__button, .evs-faq__link) a:focus-visible { outline: 3px solid var(--evs-accent); outline-offset: 4px; }
.elementor .evs-testimonials { background: var(--evs-background); }
.elementor .evs-testimonials__header { text-align: center; max-width: 740px; margin-inline: auto; }
.elementor .evs-testimonials__demo { color: var(--evs-muted); font-size: 13px; }
.elementor .evs-testimonial { background: var(--evs-background-alt); border: 1px solid var(--evs-border); border-radius: var(--evs-radius-lg); }
.elementor .evs-testimonial__quote { color: var(--evs-text); font-size: 17px; line-height: 1.8; }
.elementor .evs-testimonial__quote::before { content: '“'; display: block; font: 64px/1 Georgia, serif; color: #7890AF; height: 52px; }
.elementor .evs-testimonial__author { border-top: 1px solid var(--evs-border); margin-top: auto; }
.elementor .evs-testimonial__avatar { width: 44px; flex-shrink: 0; }
.elementor .evs-testimonial__avatar .elementor-heading-title { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #E5EBF3; color: var(--evs-primary); font: 600 13px/1 var(--evs-font-body); }
.elementor .evs-testimonial__name .elementor-heading-title { font: 600 15px/1.4 var(--evs-font-heading); color: var(--evs-heading); }
.elementor :is(.evs-testimonial__role, .evs-testimonial__company) { font: 400 13px/1.5 var(--evs-font-body); color: var(--evs-muted); }
.elementor .evs-faq { background: var(--evs-background-alt); }
.elementor .evs-faq__help { font-size: 14px; color: var(--evs-text); margin-top: 12px; }
.elementor .evs-faq__link .elementor-button { padding: 0; background: transparent; color: var(--evs-primary); font: 600 15px/1.6 var(--evs-font-body); }
.elementor .evs-faq__link a:hover { text-decoration: underline; }
.elementor .evs-faq__accordion { --n-accordion-border-width: 0px; --n-accordion-padding: 24px; --n-accordion-title-normal-color: var(--evs-primary); --n-accordion-title-hover-color: var(--evs-primary); --n-accordion-title-active-color: var(--evs-primary); --n-accordion-item-title-space-between: 12px; }
.elementor .evs-faq__accordion .e-n-accordion-item { border: 1px solid var(--evs-border); border-radius: var(--evs-radius-md); background: var(--evs-white); }
.elementor .evs-faq__accordion .e-n-accordion-item-title-text { font: 600 16px/1.5 var(--evs-font-heading); }
.elementor .evs-faq__accordion summary { justify-content: space-between; gap: 20px; }
.elementor .evs-faq__accordion summary::after { content: '+'; flex-shrink: 0; font: 400 24px/1 var(--evs-font-body); color: var(--evs-secondary); }
.elementor .evs-faq__accordion [open] > summary::after { content: '−'; }
.elementor .evs-faq__accordion summary:focus-visible { outline: 3px solid var(--evs-accent); outline-offset: 3px; border-radius: var(--evs-radius-md); }
.elementor .evs-faq__text { font-size: 15px; }
.elementor .evs-contact { background: var(--evs-background); scroll-margin-top: 120px; }
.elementor .evs-contact__icon { width: 24px; flex-shrink: 0; }
.elementor .evs-contact__icon img { width: 24px; height: 24px; }
.elementor .evs-contact__label .elementor-heading-title { color: var(--evs-heading); font: 600 14px/1.5 var(--evs-font-heading); }
.elementor .evs-contact__value { color: var(--evs-text); font-size: 15px; overflow-wrap: anywhere; }
.elementor .evs-contact__privacy { color: var(--evs-muted); font: 400 12px/1.7 var(--evs-font-body); }
.evs-contact .frm_forms { width: 100%; }
.evs-contact .frm_forms .frm_form_fields fieldset { padding: 0; border: 0; background: transparent; }
.evs-contact .frm_forms .frm_form_field { margin-bottom: 22px; }
.evs-contact .frm_forms .frm_primary_label { font: 500 14px/1.5 var(--evs-font-body); color: var(--evs-heading); padding-bottom: 8px; }
.evs-contact .frm_forms .form-field :is(input[type=text], input[type=email], input[type=tel], textarea, select) { width: 100%; max-width: 100%; min-height: 52px; padding: 12px 14px; border: 1px solid #8490A2; border-radius: var(--evs-radius-sm); color: var(--evs-text); background: var(--evs-white); font: 400 16px/1.6 var(--evs-font-body); box-shadow: none; }
.evs-contact .frm_forms .form-field textarea { min-height: 144px; resize: vertical; }
.evs-contact .frm_forms .form-field :is(input, textarea, select):focus { border-color: var(--evs-accent); outline: 2px solid var(--evs-accent); outline-offset: 2px; box-shadow: none; }
.evs-contact .frm_forms .frm_submit button { margin: 0; padding: 15px 24px; min-height: 52px; border: 1px solid var(--evs-primary); border-radius: var(--evs-radius-sm); background: var(--evs-primary); color: var(--evs-white); box-shadow: none; font: 600 15px/1.4 var(--evs-font-body); }
.evs-contact .frm_forms .frm_submit button:hover { background: var(--evs-primary-dark); }
.evs-contact .frm_forms .frm_submit button:focus-visible { outline: 3px solid var(--evs-accent); outline-offset: 4px; }
/* Erros legíveis: o vermelho padrão do plugin não atende contraste para texto pequeno. */
.evs-contact .frm_forms :is(.frm_error, .frm_error_style, .frm_required) { color: #B42318; }
@media (max-width: 767px) {
 .elementor .evs-faq__accordion { --n-accordion-padding: 20px; }
 .elementor .evs-testimonial { --padding-left: 24px; --padding-right: 24px; }
}
.elementor .evs-faq__accordion .e-n-accordion { gap: 12px; }
