/**
 * Refino visual: topbar, header, hero, WhatsApp flutuante, auth mobile.
 * Sobrescreve apenas camadas anteriores no escopo .site-body.premium-ui — sem alterar lógica.
 */
.site-body.premium-ui {
	--header-top-bg: #08131f;
	--header-top-bg-end: #0a1a2a;
	--header-nav-bg-a: #071827;
	--header-nav-bg-b: #0b2239;
	--header-blue: #1d5d91;
	--header-blue-bright: #2d7cc0;
	--header-blue-rgb: 29, 93, 145;
	--header-blue-bright-rgb: 45, 124, 192;
	--header-text: #f8fafc;
	--header-text-muted: #c7d2e0;
	--header-border: rgba(255, 255, 255, 0.08);
}

/* ---------- Top bar ---------- */
.site-body.premium-ui #nav-top-bar.nav-top-bar {
	background: linear-gradient(180deg, var(--header-top-bg) 0%, var(--header-top-bg-end) 100%) !important;
	border-top: 1px solid var(--header-border) !important;
	border-bottom: 1px solid var(--header-border) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
	font-size: 0.8125rem;
	letter-spacing: 0.02em;
}

.site-body.premium-ui .nav-top-bar__inner {
	row-gap: 0.5rem;
	column-gap: 0.75rem;
	align-items: center !important;
}

.site-body.premium-ui .nav-top-bar__contacts {
	gap: 0.35rem 0.85rem;
}

.site-body.premium-ui .nav-top-bar__link {
	color: var(--header-text-muted) !important;
	font-weight: 500;
	padding: 0.25rem 0.5rem;
	border-radius: 10px;
	transition: color 0.22s ease, background 0.22s ease, box-shadow 0.22s ease;
	display: inline-flex;
	align-items: center;
}

.site-body.premium-ui .nav-top-bar__link:hover {
	color: var(--header-text) !important;
	background: rgba(255, 255, 255, 0.06);
}

.site-body.premium-ui .nav-top-bar__link .bi {
	opacity: 0.88;
	font-size: 0.95rem;
	color: rgba(var(--header-blue-bright-rgb), 0.95);
}

.site-body.premium-ui .nav-top-bar__link--wa:hover {
	background: rgba(37, 211, 102, 0.12) !important;
}

.site-body.premium-ui .nav-top-bar__address {
	color: var(--header-text-muted) !important;
	font-size: 0.78rem;
	line-height: 1.35;
	padding: 0.2rem 0.55rem;
	border-radius: 10px;
	border: 1px solid var(--header-border);
	background: rgba(255, 255, 255, 0.03);
	max-width: 100%;
}

.site-body.premium-ui .nav-top-bar__address .bi {
	color: rgba(var(--header-blue-bright-rgb), 0.9);
	flex-shrink: 0;
}

@media (min-width: 768px) {
	.site-body.premium-ui .nav-top-bar__address {
		max-width: min(420px, 38vw);
		font-size: 0.8rem;
	}
}

@media (min-width: 1200px) {
	.site-body.premium-ui .nav-top-bar__address {
		max-width: 520px;
	}
}

/* Mobile layout moderno: só telefone e e-mail na top bar */
@media (max-width: 991.98px) {
	.site-body.premium-ui.site-layout-modern #nav-top-bar .nav-top-bar__link--wa,
	.site-body.premium-ui.site-layout-modern #nav-top-bar .nav-top-bar__address {
		display: none !important;
	}

	.site-body.premium-ui.site-layout-modern #nav-top-bar .nav-top-bar__inner {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		row-gap: 0.25rem;
	}

	.site-body.premium-ui.site-layout-modern #nav-top-bar .nav-top-bar__contacts {
		width: 100%;
		justify-content: space-between !important;
		gap: 0.35rem 0.5rem;
	}
}

/* Layout moderno: topbar sem dourado; sem faixa clara no topo do viewport */
.site-body.premium-ui.site-layout-modern #nav-top-bar.nav-top-bar {
	border-top: none !important;
	box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.04);
	max-height: 640px;
	opacity: 1;
	overflow: hidden;
	visibility: visible;
	transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease, padding 0.4s ease, visibility 0.45s linear, border-color 0.35s ease, box-shadow 0.35s ease;
}

.site-body.premium-ui.site-layout-modern .nav-top-bar--modern {
	background: linear-gradient(90deg, rgba(8, 19, 31, 0.98) 0%, rgba(11, 34, 57, 0.92) 50%, rgba(8, 19, 31, 0.98) 100%) !important;
	border-bottom: 1px solid rgba(var(--header-blue-rgb), 0.22) !important;
	padding-top: 0.5rem !important;
	padding-bottom: 0.5rem !important;
	font-size: 0.8125rem !important;
}

.site-body.premium-ui.site-layout-modern .site-nav-modern.sticky-top {
	top: 0;
	margin: 0;
	padding: 0;
	transition: box-shadow 0.45s cubic-bezier(0.4, 0, 0.2, 1);
	/* Evita faixa clara de 1px entre viewport e sticky em alguns navegadores */
	transform: translateZ(0);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

html:has(body.site-body.premium-ui.site-layout-modern) {
	margin: 0;
	padding: 0;
	scroll-padding-top: 0;
}

body.site-body.premium-ui.site-layout-modern {
	margin-top: 0 !important;
	margin-bottom: 0;
	padding-top: 0 !important;
}

/* ---------- Header principal ---------- */
.site-body.premium-ui .navbar-main:not(.navbar-main--modern) {
	background: linear-gradient(180deg, var(--header-nav-bg-a) 0%, var(--header-nav-bg-b) 100%) !important;
	border-bottom: 1px solid var(--header-border) !important;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.18);
	padding: 0.55rem 0 !important;
}

.site-body.premium-ui.site-layout-modern .navbar-main--modern {
	background: rgba(7, 24, 39, 0.92) !important;
	border-bottom: 1px solid var(--header-border) !important;
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	padding: 0.7rem 0 !important;
	transition: padding 0.45s cubic-bezier(0.4, 0, 0.2, 1), background 0.35s ease, border-color 0.35s ease, box-shadow 0.4s ease;
}

.site-body.premium-ui.site-layout-modern .navbar-main--modern .navbar-brand--modern .brand-logo-on-dark,
.site-body.premium-ui.site-layout-modern .navbar-main--modern .navbar-brand--modern .navbar-brand__logo.brand-logo-on-dark {
	transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), filter 0.4s ease, transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.site-body.premium-ui.site-layout-modern .navbar-main--modern .nav-main--modern > .nav-item > .nav-link {
	transition: padding 0.4s cubic-bezier(0.4, 0, 0.2, 1), font-size 0.4s ease, background 0.25s ease;
}

.site-body.premium-ui.site-layout-modern .navbar-main--modern .btn-cadastro.btn-accent {
	transition: padding 0.4s cubic-bezier(0.4, 0, 0.2, 1), font-size 0.4s ease, box-shadow 0.35s ease, filter 0.25s ease, transform 0.25s ease;
}

.site-body.premium-ui.site-layout-modern .navbar-toggler--modern {
	transition: padding 0.4s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.35s ease, background 0.3s ease;
}

.site-body.premium-ui .nav-main .nav-item {
	margin: 0 0.08rem;
}

@media (min-width: 992px) {
	.site-body.premium-ui .nav-main .nav-item {
		margin: 0 0.12rem;
	}
}

.site-body.premium-ui .nav-link-custom {
	font-weight: 600 !important;
	letter-spacing: 0.02em;
	border-radius: 12px !important;
}

.site-body.premium-ui .nav-link-custom:hover {
	background: rgba(var(--header-blue-rgb), 0.18) !important;
	color: var(--header-text) !important;
	box-shadow: 0 0 0 1px rgba(var(--header-blue-bright-rgb), 0.12);
}

.site-body.premium-ui .nav-link-custom:focus-visible {
	outline: 2px solid rgba(var(--header-blue-bright-rgb), 0.65);
	outline-offset: 2px;
}

/* Ativo: barra azul (clássico) */
.site-body.premium-ui .navbar-main .nav-link-custom.active,
.site-body.premium-ui body:not(.site-layout-modern) .navbar-nav .nav-link.nav-link-custom[aria-current='page'] {
	background: rgba(var(--header-blue-rgb), 0.22) !important;
	color: var(--header-text) !important;
	box-shadow: inset 0 -2px 0 0 var(--header-blue-bright);
}

/* Menu moderno desktop: underline azul */
.site-body.premium-ui.site-layout-modern .nav-main--modern > .nav-item > .nav-link::after {
	background: linear-gradient(90deg, var(--header-blue) 0%, var(--header-blue-bright) 100%) !important;
	height: 2px !important;
	bottom: 0.15rem !important;
	box-shadow: 0 0 12px rgba(var(--header-blue-bright-rgb), 0.35);
}

.site-body.premium-ui.site-layout-modern .navbar-main--modern .brand-icon--modern {
	box-shadow: 0 4px 16px rgba(var(--header-blue-rgb), 0.45) !important;
	background: linear-gradient(145deg, var(--header-blue) 0%, var(--header-blue-bright) 100%) !important;
}

.site-body.premium-ui.site-layout-modern .dropdown-menu--modern {
	border-top: 1px solid rgba(var(--header-blue-rgb), 0.35) !important;
}

/* Cadastre-se / Sair no header: azul premium (não dourado) */
.site-body.premium-ui .navbar-main .btn-cadastro.btn-accent {
	background: linear-gradient(135deg, var(--header-blue) 0%, var(--header-blue-bright) 100%) !important;
	color: #fff !important;
	border: 1px solid rgba(255, 255, 255, 0.14) !important;
	box-shadow: 0 4px 18px rgba(var(--header-blue-rgb), 0.38) !important;
	font-weight: 700 !important;
	border-radius: 999px !important;
	transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.site-body.premium-ui .navbar-main .btn-cadastro.btn-accent:hover {
	filter: brightness(1.06);
	box-shadow: 0 6px 22px rgba(var(--header-blue-bright-rgb), 0.42) !important;
	color: #fff !important;
	transform: translateY(-1px);
}

/* ---------- Espaço menu → banner / hero ---------- */
.site-body.premium-ui main.site-main > *:first-child.hero-carousel,
.site-body.premium-ui main.site-main > .container-fluid:first-child .hero-carousel {
	margin-top: 0.5rem;
}

@media (min-width: 992px) {
	.site-body.premium-ui main.site-main > *:first-child.hero-carousel,
	.site-body.premium-ui main.site-main > .container-fluid:first-child .hero-carousel {
		margin-top: 0.65rem;
	}
}

.site-body.premium-ui .home-layout-modern .home-modern-hero-wrap {
	padding-top: 0.5rem;
}

@media (min-width: 992px) {
	.site-body.premium-ui .home-layout-modern .home-modern-hero-wrap {
		padding-top: 0.65rem;
	}
}

/* ---------- Faixa mobile Login / Cadastre-se ---------- */
.site-body.premium-ui .site-mobile-auth-bar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	padding: 0.55rem 1rem;
	background: linear-gradient(180deg, rgba(7, 24, 39, 0.98) 0%, rgba(11, 34, 57, 0.95) 100%);
	border-bottom: 1px solid var(--header-border);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
	transition: padding 0.45s cubic-bezier(0.4, 0, 0.2, 1), gap 0.45s ease, box-shadow 0.4s ease, border-color 0.35s ease;
}

.site-body.premium-ui .site-mobile-auth-bar__btn {
	flex: 1 1 0;
	max-width: 200px;
	min-height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.9rem;
	font-weight: 700;
	border-radius: 14px;
	text-decoration: none !important;
	transition: background 0.22s ease, color 0.22s ease, box-shadow 0.22s ease, transform 0.2s ease, min-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), font-size 0.4s ease, border-radius 0.35s ease, padding 0.35s ease, max-width 0.35s ease;
}

.site-body.premium-ui .site-mobile-auth-bar__btn--login {
	color: var(--header-text) !important;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
}

.site-body.premium-ui .site-mobile-auth-bar__btn--login:hover {
	background: rgba(255, 255, 255, 0.14);
	color: #fff !important;
}

.site-body.premium-ui .site-mobile-auth-bar__btn--signup {
	color: #fff !important;
	background: linear-gradient(135deg, var(--header-blue) 0%, var(--header-blue-bright) 100%);
	border: 1px solid rgba(255, 255, 255, 0.12);
	box-shadow: 0 4px 16px rgba(var(--header-blue-rgb), 0.35);
}

.site-body.premium-ui .site-mobile-auth-bar__btn--signup:hover {
	filter: brightness(1.05);
	color: #fff !important;
	transform: translateY(-1px);
}

/* Esconde duplicata no collapse quando a faixa existe */
@media (max-width: 991.98px) {
	.site-body.premium-ui .navbar-main--guest-mobile .nav-auth .nav-item {
		display: none !important;
	}
}

/* Spacer clássico: área da faixa + altura fixa do header */
@media (max-width: 991.98px) {
	.site-body.premium-ui .navbar-spacer.site-navbar-spacer--guest-mobile {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		padding: 0;
		height: calc(108px + 56px) !important;
		min-height: calc(108px + 56px) !important;
	}

	.site-body.premium-ui .navbar-spacer.site-navbar-spacer--guest-mobile .site-mobile-auth-bar {
		flex-shrink: 0;
		width: 100%;
	}
}

@media (min-width: 992px) {
	.site-body.premium-ui .site-mobile-auth-bar {
		display: none !important;
	}
}

/* Menu mobile moderno: mais altura útil quando há faixa de auth abaixo do nav */
@media (max-width: 991.98px) {
	.site-body.premium-ui.site-layout-modern .site-nav-modern:has(.site-mobile-sticky-extras) .navbar-collapse--modern {
		max-height: calc(100vh - 200px);
	}
}

/* ---------- Scroll: header compacto (layout moderno + premium-ui) ---------- */
/* Mobile: anima colapso da top bar. Desktop: remove do fluxo (evita “espacinho” residual). */
.site-body.premium-ui.site-layout-modern .site-nav-modern--compact #nav-top-bar.nav-top-bar {
	display: block !important;
	max-height: 0 !important;
	min-height: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin: 0 !important;
	opacity: 0;
	visibility: hidden;
	border: none !important;
	border-bottom-color: transparent !important;
	box-shadow: none !important;
	pointer-events: none;
	overflow: hidden !important;
}

@media (min-width: 992px) {
	.site-body.premium-ui.site-layout-modern .site-nav-modern--compact #nav-top-bar.nav-top-bar {
		display: none !important;
	}

	.site-body.premium-ui.site-layout-modern .site-nav-modern--compact.sticky-top {
		top: 0 !important;
		margin-top: 0 !important;
		padding-top: 0 !important;
	}
}

/* Desktop: menu principal menor */
@media (min-width: 992px) {
	.site-body.premium-ui.site-layout-modern .site-nav-modern--compact .navbar-main--modern {
		padding: 0.38rem 0 !important;
	}

	.site-body.premium-ui.site-layout-modern .site-nav-modern--compact .navbar-brand--modern .brand-logo-on-dark,
	.site-body.premium-ui.site-layout-modern .site-nav-modern--compact .navbar-brand--modern .navbar-brand__logo.brand-logo-on-dark {
		max-height: 52px !important;
	}

	.site-body.premium-ui.site-layout-modern .site-nav-modern--compact .nav-main--modern > .nav-item > .nav-link {
		padding: 0.32rem 0.62rem !important;
		font-size: 0.82rem !important;
	}

	.site-body.premium-ui.site-layout-modern .site-nav-modern--compact .navbar-main--modern .btn-cadastro.btn-accent {
		padding: 0.32rem 0.9rem !important;
		font-size: 0.8rem !important;
	}
}

/* Mobile (visitante e logado): colapsa menu com transição; faixa + marca compacta */
@media (max-width: 991.98px) {
	.site-body.premium-ui.site-layout-modern .site-nav-modern:has(.site-mobile-sticky-extras) #mainNav.navbar-main {
		transition: max-height 0.32s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.28s ease, padding-block 0.28s ease, margin 0.26s ease, border-width 0.26s ease, visibility 0.3s linear;
		max-height: 1200px;
		opacity: 1;
		overflow: hidden;
		visibility: visible;
	}

	.site-body.premium-ui.site-layout-modern .site-nav-modern--compact:has(.site-mobile-sticky-extras) #mainNav.navbar-main {
		max-height: 0 !important;
		opacity: 0;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		margin: 0 !important;
		border-width: 0;
		pointer-events: none;
		visibility: hidden;
	}

	/* Ao rolar: sem faixa logo + Login/Cadastre-se (nem Painel/Sair) */
	.site-body.premium-ui.site-layout-modern .site-nav-modern--compact .site-mobile-sticky-extras {
		display: none !important;
	}

	/* Compact mobile: evitar position:static neste wrapper — alternar static/sticky alterava o scrollY e gerava loop com o JS. */

	/* Marca compacta dentro da faixa (só visível no topo da página, antes do scroll compact) */
	.site-body.premium-ui.site-layout-modern .site-mobile-compact-brand {
		display: flex;
		justify-content: center;
		align-items: center;
		max-height: 0;
		opacity: 0;
		overflow: hidden;
		padding-top: 0;
		padding-bottom: 0;
		margin: 0;
		border: none;
		visibility: hidden;
		pointer-events: none;
		text-decoration: none !important;
		transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease, padding 0.4s ease, visibility 0.45s linear, border-color 0.3s ease, background 0.35s ease;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-body.premium-ui.site-layout-modern .site-nav-modern.sticky-top,
	.site-body.premium-ui.site-layout-modern #nav-top-bar.nav-top-bar,
	.site-body.premium-ui.site-layout-modern .navbar-main--modern,
	.site-body.premium-ui.site-layout-modern .navbar-main--modern .brand-logo-on-dark,
	.site-body.premium-ui.site-layout-modern .navbar-main--modern .navbar-brand__logo.brand-logo-on-dark,
	.site-body.premium-ui.site-layout-modern .navbar-main--modern .nav-main--modern > .nav-item > .nav-link,
	.site-body.premium-ui.site-layout-modern .navbar-main--modern .btn-cadastro.btn-accent,
	.site-body.premium-ui.site-layout-modern .navbar-toggler--modern,
	.site-body.premium-ui .site-mobile-auth-bar,
	.site-body.premium-ui .site-mobile-auth-bar__btn,
	.site-body.premium-ui.site-layout-modern .site-nav-modern:has(.site-mobile-sticky-extras) #mainNav.navbar-main,
	.site-body.premium-ui.site-layout-modern .site-mobile-compact-brand {
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
	}
}

/* ---------- Hero / banner: mobile mostra imagem inteira (sem cover que corta texto no arte) ---------- */
@media (max-width: 767.98px) {
	.site-body.premium-ui .hero-carousel,
	.site-body.premium-ui .hero-carousel .carousel,
	.site-body.premium-ui .hero-carousel .carousel-inner {
		height: auto !important;
		max-height: none !important;
	}

	.site-body.premium-ui .hero-carousel .carousel-item {
		height: auto !important;
		max-height: none !important;
		min-height: 0 !important;
		overflow: hidden;
		align-items: center;
		justify-content: center;
	}

	.site-body.premium-ui .hero-carousel .carousel-item.active {
		display: flex !important;
	}

	.site-body.premium-ui .hero-carousel .banner-slide-link {
		height: auto;
		width: 100%;
		display: block;
		line-height: 0;
	}

	.site-body.premium-ui .hero-carousel__img {
		width: 100% !important;
		height: auto !important;
		max-height: min(92vh, 720px) !important;
		object-fit: contain !important;
		object-position: center center;
	}

	.site-body.premium-ui .home-layout-modern .hero-carousel--modern {
		background: var(--color-gray-200, #e9ecef);
	}
}

/* ---------- WhatsApp flutuante ---------- */
.site-float-wa {
	position: fixed;
	z-index: 1045;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(145deg, #25d366 0%, #128c7e 100%);
	color: #fff !important;
	font-size: 1.75rem;
	box-shadow: 0 6px 24px rgba(18, 140, 126, 0.45), 0 2px 8px rgba(0, 0, 0, 0.15);
	border: 2px solid rgba(255, 255, 255, 0.25);
	text-decoration: none !important;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	bottom: 100px;
	right: 22px;
}

.site-float-wa:hover {
	color: #fff !important;
	transform: scale(1.06);
	box-shadow: 0 10px 32px rgba(18, 140, 126, 0.55), 0 4px 12px rgba(0, 0, 0, 0.18);
}

@media (min-width: 992px) {
	.site-float-wa {
		bottom: 108px;
		right: 28px;
		width: 60px;
		height: 60px;
		font-size: 1.85rem;
	}
}

@media (max-width: 575.98px) {
	.site-float-wa {
		bottom: 88px;
		right: 16px;
		width: 54px;
		height: 54px;
		font-size: 1.6rem;
	}
}
