/*
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.2
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

.updown {
	display: inline-block;
	transform-origin: center center;
	transition: none !important;
}

.updown:hover {
	transform: scaleY(-1);
}

/* Portfólio — só esconde bloco confirmado vazio (classe .grida-empty via JS) */
body:not(.grida-portfolio-editor) .imagem_destacada.grida-empty,
body:not(.grida-portfolio-editor) .video_destacado.grida-empty {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Título de trabalho — seta inline após a última palavra */
.work_title,
.work_title.elementor-heading-title,
.work_title > .elementor-heading-title,
:is(h1, h2, h3, h4, h5, h6).work_title {
	--grida-arrow-size: 1.04em;
	--grida-arrow-gap: 0.35em;
}

.work_title a,
.elementor-heading-title > a.work_title,
:is(h1, h2, h3, h4, h5, h6) > a.work_title,
a.work_title.elementor-heading-title,
a:is(h1, h2, h3, h4, h5, h6).work_title {
	display: inline;
	color: inherit;
	text-decoration: inherit;
}

.work_title a::after,
.elementor-heading-title > a.work_title::after,
:is(h1, h2, h3, h4, h5, h6) > a.work_title::after,
a.work_title.elementor-heading-title::after,
a:is(h1, h2, h3, h4, h5, h6).work_title::after,
.work_title.elementor-heading-title:not(:has(a))::after,
.work_title > .elementor-heading-title:not(:has(a))::after,
:is(h1, h2, h3, h4, h5, h6).work_title:not(:has(a))::after {
	content: '';
	display: inline-block;
	vertical-align: middle;
	width: var(--grida-arrow-size);
	height: calc(var(--grida-arrow-size) * 0.88);
	margin-left: var(--grida-arrow-gap);
	background-color: currentColor;
	-webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25.07 29.29'%3E%3Cline fill='none' stroke='%23000' stroke-miterlimit='10' stroke-width='2' y1='14.64' x2='23.65' y2='14.64'/%3E%3Cpolyline fill='none' stroke='%23000' stroke-miterlimit='10' stroke-width='2' points='9.71 .71 23.65 14.64 9.71 28.58'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25.07 29.29'%3E%3Cline fill='none' stroke='%23000' stroke-miterlimit='10' stroke-width='2' y1='14.64' x2='23.65' y2='14.64'/%3E%3Cpolyline fill='none' stroke='%23000' stroke-miterlimit='10' stroke-width='2' points='9.71 .71 23.65 14.64 9.71 28.58'/%3E%3C/svg%3E");
	mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
}

@media (max-width: 500px) {
	.work_title,
	.work_title.elementor-heading-title,
	.work_title > .elementor-heading-title,
	:is(h1, h2, h3, h4, h5, h6).work_title {
		--grida-arrow-size: 0.64em;
		--grida-arrow-gap: 0.25em;
	}
}

/* Work grid — altura da mídia + overlay .work_info com fade */
.imagem_destacada,
.video_destacado,
#work .imagem_destacada,
#work .video_destacado {
	position: relative;
	display: block;
	overflow: hidden;
	width: 100%;
	min-height: 100vh;
}

.video_destacado .elementor-background-video-container {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.video_destacado .elementor-background-video-hosted {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 100% !important;
	min-height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center center;
	transform: none !important;
}

.video_destacado > .e-con.e-child:not(.work_info),
.video_destacado > .elementor-element.e-child:not(.work_info) {
	position: relative;
	z-index: 2;
}

#work .imagem_destacada .work_info,
#work .video_destacado .work_info {
	position: absolute;
	inset: 0;
	z-index: 3;
	box-sizing: border-box;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.45s ease, visibility 0.45s ease;
}

@media (hover: hover) and (pointer: fine) {
	#work .imagem_destacada:hover .work_info,
	#work .video_destacado:hover .work_info,
	#work .imagem_destacada:focus-within .work_info,
	#work .video_destacado:focus-within .work_info {
		opacity: 1;
		visibility: visible;
	}
}

body.grida-portfolio-editor #work .work_info {
	opacity: 1;
	visibility: visible;
}

/* Home — desktop: scroll vertical nativo + auto-scroll JS (≥768px) */
html.grida-home-scroll-vertical,
html.grida-home-scroll-vertical body,
html body.grida-home-scroll-vertical,
body.grida-home-scroll-vertical {
	overflow: hidden !important;
	height: var(--grida-vh, 100dvh) !important;
	max-height: var(--grida-vh, 100dvh) !important;
	overscroll-behavior: none;
}

body.grida-home-scroll-vertical #page,
body.grida-home-scroll-vertical .site,
body.grida-home-scroll-vertical main {
	overflow: hidden;
}

body.grida-home-scroll-vertical #work,
body.grida-home-scroll-vertical .grida-home-scroll-host {
	height: var(--grida-vh, 100dvh) !important;
	max-height: var(--grida-vh, 100dvh) !important;
	overflow: hidden !important;
}

body.grida-home-scroll-vertical .grida-home-scroll-track {
	position: fixed !important;
	inset: 0 !important;
	z-index: 1;
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	width: 100% !important;
	height: var(--grida-vh, 100dvh) !important;
	max-height: var(--grida-vh, 100dvh) !important;
	overflow-x: hidden !important;
	overflow-y: scroll !important;
	scroll-snap-type: none !important;
	scroll-snap-align: none !important;
	scroll-snap-stop: normal !important;
	scroll-behavior: auto !important;
	gap: 0 !important;
	row-gap: 0 !important;
	column-gap: 0 !important;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: rgba(38, 33, 55, 0.35) transparent;
}

body.grida-home-scroll-vertical .grida-home-scroll-track::-webkit-scrollbar {
	width: 6px;
}

body.grida-home-scroll-vertical .grida-home-scroll-track::-webkit-scrollbar-thumb {
	background: rgba(38, 33, 55, 0.35);
	border-radius: 999px;
}

body.grida-home-scroll-vertical .grida-home-scroll-track,
body.grida-home-scroll-vertical .grida-home-scroll-track * {
	scroll-snap-type: none !important;
	scroll-snap-align: none !important;
	scroll-snap-stop: normal !important;
}

body.grida-home-scroll-vertical .grida-home-scroll-track > .e-loop-item,
body.grida-home-scroll-vertical .grida-home-scroll-track > .elementor-grid-item {
	flex: 0 0 auto !important;
	width: 100% !important;
	max-width: 100% !important;
	min-height: var(--grida-vh, 100dvh) !important;
	scroll-snap-align: none !important;
}

body.grida-home-scroll-vertical .grida-home-scroll-track > .e-loop-item .imagem_destacada,
body.grida-home-scroll-vertical .grida-home-scroll-track > .e-loop-item .video_destacado,
body.grida-home-scroll-vertical .grida-home-scroll-track > .elementor-grid-item .imagem_destacada,
body.grida-home-scroll-vertical .grida-home-scroll-track > .elementor-grid-item .video_destacado {
	min-height: var(--grida-vh, 100dvh) !important;
}

/* Home — mobile: transform + toque (<768px, sem scroll nativo) */
html.grida-home-scroll-mobile-transform,
html.grida-home-scroll-mobile-transform body,
html body.grida-home-scroll-mobile-transform,
body.grida-home-scroll-mobile-transform {
	overflow: hidden !important;
	height: var(--grida-vh, 100dvh) !important;
	max-height: var(--grida-vh, 100dvh) !important;
	overscroll-behavior: none;
}

body.grida-home-scroll-mobile-transform #page,
body.grida-home-scroll-mobile-transform .site,
body.grida-home-scroll-mobile-transform main {
	overflow: hidden;
}

body.grida-home-scroll-mobile-transform .grida-home-scroll-host {
	height: var(--grida-vh, 100dvh) !important;
	max-height: var(--grida-vh, 100dvh) !important;
	overflow: hidden !important;
	touch-action: none;
}

body.grida-home-scroll-mobile-transform .grida-home-scroll-track {
	overflow: visible !important;
	touch-action: none;
}

@media (max-width: 767px) {
	body.grida-home-front.grida-home-scroll-mobile-transform .grida-home-scroll-track > .e-loop-item,
	body.grida-home-front.grida-home-scroll-mobile-transform .grida-home-scroll-track > .elementor-grid-item {
		flex: 0 0 auto !important;
		width: 100% !important;
		min-height: 50dvh !important;
		height: 50dvh !important;
		max-height: 50dvh !important;
	}

	body.grida-home-front.grida-home-scroll-mobile-transform .grida-home-scroll-track > .e-loop-item .imagem_destacada,
	body.grida-home-front.grida-home-scroll-mobile-transform .grida-home-scroll-track > .e-loop-item .video_destacado,
	body.grida-home-front.grida-home-scroll-mobile-transform .grida-home-scroll-track > .elementor-grid-item .imagem_destacada,
	body.grida-home-front.grida-home-scroll-mobile-transform .grida-home-scroll-track > .elementor-grid-item .video_destacado {
		min-height: 50dvh !important;
		height: 50dvh !important;
		max-height: 50dvh !important;
	}

	body.grida-home-front.grida-home-scroll-mobile-transform .grida-home-scroll-track .imagem_destacada img,
	body.grida-home-front.grida-home-scroll-mobile-transform .grida-home-scroll-track .video_destacado .elementor-background-video-hosted {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
}

/* Página /work — altura definida pelo work-grid.js (mesma lógica das imagens) */
body.grida-work-page #work .imagem_destacada,
body.grida-work-page #work .video_destacado {
	--min-height: 0 !important;
	min-height: 0 !important;
}

body.grida-work-page #work .imagem_destacada.grida-has-media,
body.grida-work-page #work .video_destacado.grida-has-media {
	position: relative;
	overflow: hidden;
	display: block;
	width: 100%;
	box-sizing: border-box;
}

/* /work — altura só da mídia (grid não estica o item acima do JS) */
body.grida-work-page #work .e-loop-item:has(> .imagem_destacada.grida-has-media),
body.grida-work-page #work .e-loop-item:has(> .video_destacado.grida-has-media),
body.grida-work-page #work .e-loop-item.imagem_destacada.grida-has-media,
body.grida-work-page #work .e-loop-item.video_destacado.grida-has-media {
	align-self: start;
	justify-self: stretch;
	width: 100%;
	overflow: hidden;
}

/* /work — vídeo: anular e-flex (mídia em camada, como background-image da imagem) */
body.grida-work-page #work .video_destacado.grida-has-media {
	--min-height: 0 !important;
	min-height: 0 !important;
	display: block !important;
	flex: none !important;
	flex-direction: column !important;
	justify-content: flex-start !important;
	align-items: stretch !important;
	align-content: flex-start !important;
	gap: 0 !important;
	row-gap: 0 !important;
	column-gap: 0 !important;
	isolation: isolate;
}

/* /work — wrappers do vídeo fora do fluxo (igual mídia da imagem) */
body.grida-work-page #work .video_destacado.grida-has-media > .e-con.e-child:not(.work_info),
body.grida-work-page #work .video_destacado.grida-has-media > .elementor-element.e-child:not(.work_info) {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	z-index: 0;
	pointer-events: none;
}

body.grida-work-page #work .video_destacado .elementor-background-video-container {
	position: absolute !important;
	inset: 0 !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

body.grida-work-page #work .video_destacado .elementor-background-video-hosted {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 100% !important;
	min-height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center center !important;
	transform: translateZ(0) scale(1.03) !important;
}

/* /work — .work_info igual imagem (#work … .work_info acima); só anula flex do e-con */
body.grida-work-page #work .video_destacado.grida-has-media .work_info {
	flex: none !important;
	align-self: auto !important;
	max-height: none !important;
	margin: 0 !important;
	pointer-events: auto;
}

/* Página /work — UI sempre clara (fundo escuro do Elementor) */
body.grida-work-page .work_title,
body.grida-work-page .work_title a,
body.grida-work-page .work_title .elementor-heading-title,
body.grida-work-page .work_title .elementor-heading-title a,
body.grida-work-page #work .elementor-heading-title,
body.grida-work-page #work .elementor-heading-title a {
	color: var(--grida-color-claro) !important;
}

body.grida-work-page .grida-fg-claro,
body.grida-work-page .grida-fg-escuro {
	color: inherit !important;
}

/* Home — título de cada post na cor escolhida naquele post */
body.grida-home-front .e-loop-item.grida-ui-claro .elementor-heading-title,
body.grida-home-front .e-loop-item.grida-ui-claro .elementor-heading-title a,
body.grida-home-front .e-loop-item.grida-ui-claro .work_title,
body.grida-home-front .e-loop-item.grida-ui-claro .work_title a {
	color: var(--grida-color-claro) !important;
}

body.grida-home-front .e-loop-item.grida-ui-escuro .elementor-heading-title,
body.grida-home-front .e-loop-item.grida-ui-escuro .elementor-heading-title a,
body.grida-home-front .e-loop-item.grida-ui-escuro .work_title,
body.grida-home-front .e-loop-item.grida-ui-escuro .work_title a {
	color: var(--grida-color-escuro) !important;
}

/* Logo, Work e Info mudam só quando o post passa por baixo de cada um */
body.grida-home-front .grida-fg-claro,
body.grida-home-front .grida-fg-claro a,
body.grida-home-front a.grida-fg-claro,
body.grida-home-front .grida-fg-claro .elementor-heading-title {
	color: var(--grida-color-claro) !important;
	transition: color 0.25s ease;
}

body.grida-home-front .grida-fg-escuro,
body.grida-home-front .grida-fg-escuro a,
body.grida-home-front a.grida-fg-escuro,
body.grida-home-front .grida-fg-escuro .elementor-heading-title {
	color: var(--grida-color-escuro) !important;
	transition: color 0.25s ease;
}

body.grida-home-front .grida-fg-claro img {
	filter: brightness(0) invert(1);
	transition: filter 0.25s ease;
}

body.grida-home-front .grida-fg-escuro img {
	filter: none;
	transition: filter 0.25s ease;
}

/* Galeria mesclada — imagens + vídeos (shortcode grida_portfolio_media) */
.grida-portfolio-media {
	display: flex !important;
	flex-direction: column !important;
	width: 100%;
}

.grida-portfolio-media__item--video {
	margin: 0;
	line-height: 0;
	overflow: hidden;
}

.grida-portfolio-media__image,
.grida-portfolio-media__video {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
}

.grida-portfolio-media__video {
	background: #000;
	pointer-events: none;
	object-fit: contain;
}

.grida-portfolio-media__video::-webkit-media-controls {
	display: none !important;
}

/* Info — parágrafos WYSIWYG no Elementor */
.grida-rich-text p,
.grida-info-html p,
.grida-info-content-widget p,
.elementor-widget-text-editor .grida-rich-text p,
.elementor-widget-text-editor .grida-info-html p,
.elementor-widget-grida-info-content .grida-rich-text p,
.grida-elementor-info-html .grida-rich-text p,
.grida-elementor-info-html .grida-info-html p {
	display: block;
	margin: 0 0 1em;
}

.grida-rich-text p:last-child,
.grida-info-html p:last-child,
.grida-info-content-widget p:last-child,
.elementor-widget-text-editor .grida-rich-text p:last-child,
.elementor-widget-text-editor .grida-info-html p:last-child,
.grida-elementor-info-html .grida-rich-text p:last-child,
.grida-elementor-info-html .grida-info-html p:last-child {
	margin-bottom: 0;
}

.grida-rich-text p + p,
.grida-info-html p + p,
.grida-info-content-widget p + p,
.elementor-widget-text-editor .grida-rich-text p + p,
.elementor-widget-text-editor .grida-info-html p + p,
.grida-elementor-info-html .grida-rich-text p + p,
.grida-elementor-info-html .grida-info-html p + p {
	margin-top: 0;
}

.grida-elementor-info-html .elementor-text-editor .grida-rich-text p,
.grida-elementor-info-html .elementor-text-editor .grida-info-html p {
	display: block !important;
	margin: 0 0 1em !important;
}

.grida-rich-text ul,
.grida-rich-text ol,
.grida-info-html ul,
.grida-info-html ol {
	margin: 0 0 1em;
	padding-left: 1.5em;
}

.grida-rich-text li,
.grida-info-html li {
	display: list-item;
	margin: 0 0 0.35em;
}