.vivaz-global-header {
	background: var(--vivaz-color-surface, #fff);
	position: relative;
	z-index: 100;
}

.vivaz-global-footer {
	background: var(--vivaz-color-primary, #2457f5);
	overflow: clip;
	width: 100%;
}

/* Generic Elementor composition contracts for flexible global footers. */
.vivaz-global-footer .footer-shell {
	background: var(--vivaz-color-primary, #2457f5);
	color: color-mix(in srgb, #fff 86%, var(--vivaz-color-primary, #2457f5));
	display: flex !important;
	flex-direction: column !important;
	padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.vivaz-global-footer .footer-content {
	display: grid !important;
	gap: clamp(2rem, 4vw, 3.5rem);
	grid-template-columns: 1fr;
	margin-inline: auto;
	max-width: var(--vivaz-container-width, 1200px);
	padding-block: clamp(3.5rem, 7vw, 4.5rem);
	width: 100% !important;
}

.vivaz-global-footer :is(.footer-column-brand, .footer-column-specialties, .footer-column-institutional, .footer-column-contact) {
	align-content: start;
	display: grid !important;
	gap: 0.65rem;
}

.vivaz-global-footer .footer-logo {
	display: block;
	filter: brightness(0) invert(1);
	height: auto;
	margin-block-end: 0.75rem;
	max-width: 100%;
	width: 11.25rem;
}

.vivaz-global-footer :is(.footer-text, .footer-meta) {
	color: inherit;
	font-size: 1rem;
	line-height: 1.55;
	margin: 0;
	text-decoration: none;
}

.vivaz-global-footer a.footer-text:hover,
.vivaz-global-footer a.footer-text:focus-visible,
.vivaz-global-footer .footer-text a:hover,
.vivaz-global-footer .footer-text a:focus-visible {
	color: var(--vivaz-color-accent, #00a18f);
}

.vivaz-global-footer .footer-heading {
	color: #fff;
	font-family: var(--vivaz-font-family-heading, inherit);
	font-size: 1rem;
	font-weight: var(--vivaz-font-weight-heading, 700);
	line-height: 1.3;
	margin: 0 0 0.4rem;
}

.vivaz-global-footer .footer-socials {
	display: flex !important;
	flex-flow: row wrap !important;
	gap: 0.65rem;
	margin-block-start: 0.75rem;
}

.vivaz-global-footer .footer-social-button {
	align-items: center;
	background: transparent !important;
	border: 1px solid rgba(255, 255, 255, 0.35) !important;
	border-radius: 50% !important;
	color: #fff !important;
	display: inline-flex;
	font-size: 0;
	font-weight: 700;
	height: 2.5rem !important;
	justify-content: center;
	padding: 0 !important;
	text-decoration: none;
	width: 2.5rem !important;
}

.vivaz-global-footer .footer-social-button::before {
	background-color: currentcolor;
	content: "";
	display: block;
	height: 1.125rem;
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
	width: 1.125rem;
}

.vivaz-global-footer .footer-social-button[href*="instagram.com"]::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C8.74 0 8.33.01 7.05.07 5.77.13 4.9.33 4.14.63a5.86 5.86 0 0 0-2.12 1.38A5.86 5.86 0 0 0 .64 4.14C.34 4.9.13 5.77.07 7.05.01 8.33 0 8.74 0 12s.01 3.67.07 4.95c.06 1.28.27 2.15.57 2.91a5.86 5.86 0 0 0 1.38 2.12 5.86 5.86 0 0 0 2.12 1.38c.76.3 1.63.51 2.91.57C8.33 23.99 8.74 24 12 24s3.67-.01 4.95-.07c1.28-.06 2.15-.27 2.91-.57a5.86 5.86 0 0 0 2.12-1.38 5.86 5.86 0 0 0 1.38-2.12c.3-.76.51-1.63.57-2.91.06-1.28.07-1.69.07-4.95s-.01-3.67-.07-4.95c-.06-1.28-.27-2.15-.57-2.91a5.86 5.86 0 0 0-1.38-2.12A5.86 5.86 0 0 0 19.86.64c-.76-.3-1.63-.51-2.91-.57C15.67.01 15.26 0 12 0Zm0 2.16c3.2 0 3.58.01 4.85.07 1.17.05 1.81.25 2.23.42.56.22.96.48 1.38.9.42.42.68.82.9 1.38.17.42.37 1.06.42 2.23.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.05 1.17-.25 1.81-.42 2.23-.22.56-.48.96-.9 1.38-.42.42-.82.68-1.38.9-.42.17-1.06.37-2.23.42-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-1.17-.05-1.81-.25-2.23-.42a3.7 3.7 0 0 1-1.38-.9 3.7 3.7 0 0 1-.9-1.38c-.17-.42-.37-1.06-.42-2.23-.06-1.27-.07-1.65-.07-4.85s.01-3.58.07-4.85c.05-1.17.25-1.81.42-2.23.22-.56.48-.96.9-1.38a3.7 3.7 0 0 1 1.38-.9c.42-.17 1.06-.37 2.23-.42C8.42 2.17 8.8 2.16 12 2.16Zm0 3.68A6.16 6.16 0 1 0 12 18.16 6.16 6.16 0 0 0 12 5.84Zm0 10.16A4 4 0 1 1 12 8a4 4 0 0 1 0 8Zm7.84-10.4a1.44 1.44 0 1 1-2.88 0 1.44 1.44 0 0 1 2.88 0Z'/%3E%3C/svg%3E");
}

.vivaz-global-footer .footer-social-button[href*="youtube.com"]::before,
.vivaz-global-footer .footer-social-button[href*="youtu.be"]::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.5 6.2a3 3 0 0 0-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 0 0 .5 6.2 31 31 0 0 0 0 12a31 31 0 0 0 .5 5.8 3 3 0 0 0 2.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 0 0 2.1-2.1A31 31 0 0 0 24 12a31 31 0 0 0-.5-5.8ZM9.6 15.6V8.4L15.8 12l-6.2 3.6Z'/%3E%3C/svg%3E");
}

.vivaz-global-footer .footer-social-button[href*="linkedin.com"]::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.3 7.8H1V22h4.3V7.8ZM3.2 1A2.5 2.5 0 1 0 3.2 6a2.5 2.5 0 0 0 0-5ZM22.8 13.9c0-4.3-2.3-6.3-5.4-6.3a4.7 4.7 0 0 0-4.2 2.3h-.1V7.8H9V22h4.3v-7c0-1.8.3-3.6 2.6-3.6 2.2 0 2.3 2.1 2.3 3.7V22h4.3l.3-8.1Z'/%3E%3C/svg%3E");
}

.vivaz-global-footer .footer-social-button:hover,
.vivaz-global-footer .footer-social-button:focus-visible {
	background: rgba(255, 255, 255, 0.12);
	border-color: currentcolor;
}

.vivaz-global-footer .footer-bottom {
	border-block-start: 1px solid rgba(255, 255, 255, 0.18);
	display: flex !important;
	flex-direction: column !important;
	gap: 0.75rem;
	margin-inline: auto;
	max-width: var(--vivaz-container-width, 1200px);
	padding-block: 1.25rem;
	width: 100% !important;
}

.vivaz-global-footer .footer-meta {
	font-size: 0.8rem;
}

@media (min-width: 40rem) {
	.vivaz-global-footer .footer-content {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vivaz-global-footer .footer-bottom {
		align-items: center;
		flex-direction: row !important;
		justify-content: space-between;
	}
}

@media (min-width: 64rem) {
	.vivaz-global-footer .footer-content {
		grid-template-columns: minmax(15rem, 1.4fr) minmax(9rem, 0.9fr) minmax(10rem, 1fr) minmax(15rem, 1.25fr);
	}

	/* Five-column footers use two rows until there is room for one (see below). */
	.vivaz-global-footer .footer-content:has(> :nth-child(5)) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 75rem) {
	/*
	 * Five columns in one row. Link lists are short, so they give room to the
	 * contact column (addresses, e-mail); minimums leave space for column padding.
	 */
	.vivaz-global-footer .footer-content:has(> :nth-child(5)) {
		grid-template-columns: minmax(10rem, 1.2fr) repeat(3, minmax(8.5rem, 0.8fr)) minmax(13.5rem, 1.4fr);
	}
}

.vivaz-global-header--sticky {
	box-shadow: 0 1px 0 rgba(15, 23, 42, 0.08), 0 8px 28px rgba(15, 23, 42, 0.06);
	position: sticky;
	top: 0;
}

.admin-bar .vivaz-global-header--sticky {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .vivaz-global-header--sticky {
		top: 46px;
	}
}

@media (prefers-reduced-transparency: no-preference) {
	.vivaz-global-header--sticky {
		background: color-mix(in srgb, var(--vivaz-color-surface, #fff) 94%, transparent);
		backdrop-filter: blur(14px) saturate(130%);
	}
}

.elementor-editor-active .vivaz-global-header--sticky,
body.elementor-editor-preview .vivaz-global-header--sticky {
	position: relative;
	top: auto;
}

/*
 * Transparent header over the first section (Elementor page setting "Cabeçalho transparente").
 * The header floats over the page; while it sits over the first section (no .is-solid) it has no
 * background and light content. The transparent state needs the script (.is-overlay-ready), so
 * without JavaScript the header stays solid and readable.
 */
.vivaz-header-overlay .vivaz-global-header {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 100;
	transition: background-color 0.35s ease, box-shadow 0.35s ease, backdrop-filter 0.35s ease;
}

.vivaz-header-overlay .vivaz-global-header:not(.vivaz-global-header--sticky) {
	position: absolute;
}

.admin-bar.vivaz-header-overlay .vivaz-global-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar.vivaz-header-overlay .vivaz-global-header {
		top: 46px;
	}
}

body.vivaz-header-overlay:not(.vivaz-navigation-open) .vivaz-global-header.is-overlay-ready:not(.is-solid) {
	background: transparent;
	box-shadow: none;
	color: #fff;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

/* Elementor paints the header containers; they step aside while the header is transparent. */
body.vivaz-header-overlay:not(.vivaz-navigation-open) .vivaz-global-header.is-overlay-ready:not(.is-solid) .e-con,
body.vivaz-header-overlay:not(.vivaz-navigation-open) .vivaz-global-header.is-overlay-ready:not(.is-solid) .elementor-section {
	background: transparent !important;
	border-color: transparent !important;
	box-shadow: none !important;
}

body.vivaz-header-overlay:not(.vivaz-navigation-open) .vivaz-global-header.is-overlay-ready:not(.is-solid) .vivaz-navigation__menu > li > a,
body.vivaz-header-overlay:not(.vivaz-navigation-open) .vivaz-global-header.is-overlay-ready:not(.is-solid) .vivaz-navigation__toggle {
	color: #fff;
}

body.vivaz-header-overlay:not(.vivaz-navigation-open) .vivaz-global-header.is-overlay-ready:not(.is-solid) .vivaz-site-logo:has(.vivaz-site-logo__image--inverse) .vivaz-site-logo__image:not(.vivaz-site-logo__image--inverse) {
	display: none;
}

body.vivaz-header-overlay:not(.vivaz-navigation-open) .vivaz-global-header.is-overlay-ready:not(.is-solid) .vivaz-site-logo__image--inverse {
	display: block;
}

/* Without a light logo, the regular one is turned white. */
body.vivaz-header-overlay:not(.vivaz-navigation-open) .vivaz-global-header.is-overlay-ready:not(.is-solid) .vivaz-site-logo:not(:has(.vivaz-site-logo__image--inverse)) img {
	filter: brightness(0) invert(1);
}

@media (prefers-reduced-motion: reduce) {
	.vivaz-header-overlay .vivaz-global-header {
		transition: none;
	}
}
