/* Base: evita overflow horizontal e mantém mídia responsiva em todos os breakpoints. */
html {
	-webkit-text-size-adjust: 100%;
	overflow-x: clip;
}

body {
	overflow-x: clip;
}

img,
picture,
video,
canvas,
svg {
	max-inline-size: 100%;
}

.elementor .e-con,
.elementor .elementor-column,
.elementor .elementor-widget,
.elementor .elementor-widget-container {
	min-width: 0;
}

.elementor-heading-title,
.elementor-widget-text-editor,
.elementor-icon-list-text {
	overflow-wrap: anywhere;
}

@supports (text-wrap: balance) {
	.elementor-heading-title {
		text-wrap: balance;
	}
}

/* Foco visível para teclado e alvo seguro para o link de pular conteúdo. */
:focus-visible {
	outline: 3px solid #93603e;
	outline-offset: 4px;
}

#content {
	scroll-margin-top: 6rem;
}

/*
 * Os headers transparentes ficam sobre o hero somente na home. Nas demais
 * páginas, este espaço impede que o título inicial fique sob a navbar fixa.
 */
body:not(.home) #content {
	padding-top: clamp(5.5rem, 8vw, 7.5rem);
}

.skip-link:focus {
	clip: auto;
	clip-path: none;
	height: auto;
	margin: 1rem;
	padding: 0.75rem 1rem;
	width: auto;
	z-index: 10000;
}

a,
button,
input,
select,
textarea,
.elementor-menu-toggle,
.elementor-swiper-button {
	touch-action: manipulation;
}

/* Ícones sociais sem destino não devem parecer links funcionais. */
.elementor-social-icon:not([href]) {
	display: none;
}

/* Marca: proporção consistente, leitura nítida e presença equilibrada em todos os templates. */
.elementor-location-header .elementor-widget-theme-site-logo a,
.elementor-location-footer .elementor-widget-theme-site-logo a {
	align-items: center;
	display: inline-flex;
	max-width: 100%;
}

.elementor-location-header .elementor-widget-theme-site-logo img {
	block-size: auto;
	filter: drop-shadow(0 1px 8px rgb(0 0 0 / 22%));
	inline-size: clamp(10.5rem, 16vw, 15.5rem);
	max-inline-size: 100%;
	object-fit: contain;
	transform-origin: left center;
	transition: filter 180ms ease, transform 180ms ease;
}

.elementor-location-header .elementor-widget-theme-site-logo a:hover img {
	filter: drop-shadow(0 2px 10px rgb(0 0 0 / 28%));
	transform: translateY(-1px);
}

.elementor-location-footer .elementor-widget-theme-site-logo a {
	flex-direction: column;
}

.elementor-location-footer .elementor-widget-theme-site-logo a::after {
	background: linear-gradient(90deg, transparent, #93603e, transparent);
	content: "";
	height: 1px;
	margin-top: 0.7rem;
	max-width: 11rem;
	width: 68%;
}

.elementor-location-footer .elementor-widget-theme-site-logo img {
	block-size: auto;
	inline-size: clamp(11rem, 17vw, 16rem);
	max-inline-size: 100%;
	object-fit: contain;
}

/* Hero: altura fluida e largura limitada ao viewport em vez de 960px/546px fixos. */
.elementor-769 .elementor-element.elementor-element-b70070d {
	max-width: 100%;
	width: 100%;
}

.elementor-769 .elementor-element.elementor-element-5c69d02 .swiper-slide {
	height: clamp(26rem, 72svh, 47.5rem);
}

@media (max-width: 767px) {
	.elementor-location-header .elementor-widget-theme-site-logo img {
		inline-size: clamp(8.75rem, 52vw, 12rem);
	}

	.elementor-location-footer .elementor-widget-theme-site-logo img {
		inline-size: clamp(10rem, 58vw, 13rem);
	}

	/* Alguns templates importados têm widgets acima de 100% de largura. */
	.elementor .elementor-widget,
	.elementor .elementor-column,
	.elementor .e-con > .e-con {
		max-inline-size: 100%;
	}

	.elementor-769 .elementor-element.elementor-element-b70070d {
		--width: 100%;
	}

	.elementor-769 .elementor-element.elementor-element-5c69d02 .swiper-slide {
		height: clamp(22rem, 64svh, 34rem);
	}

	.elementor-769 .elementor-element.elementor-element-1b599f74,
	.elementor-769 .elementor-element.elementor-element-1b599f74 img {
		max-width: 100%;
		width: 100%;
	}

	.elementor-769 .elementor-element.elementor-element-1b599f74 img {
		height: auto;
	}

	.elementor-769 .elementor-swiper-button {
		min-height: 44px;
		min-width: 44px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
