:root {
	/* Curva de entrada refinada: ataque rápido, desaceleração longa e suave */
	--clv-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
	/* Curva de interação (hover/active): imediata, porém percebida */
	--clv-ease-interaction: cubic-bezier(0.32, 0.72, 0, 1);
	--clv-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
	--clv-duration-fast: 0.2s;
	--clv-duration-medium: 0.45s;
	--clv-duration-slow: 0.7s;
	--clv-duration-xslow: 1.1s;
	--clv-shadow-soft: 0 8px 24px rgba(62, 100, 111, 0.12);
	--clv-shadow-lift: 0 16px 40px rgba(62, 100, 111, 0.18);
}

@media (prefers-reduced-motion: reduce) {
	.clv-reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* Home CTA spacing */
.home .info-loja-home {
	padding-bottom: 0;
}

.home .info-loja-home + .d-flex.justify-content-center.mb-5 {
	margin-top: 1em !important;
	margin-bottom: 3rem !important;
}

.home .info-loja-home + .d-flex.justify-content-center.mb-5 .botao-laranja,
.home .info-loja-home + .d-flex.justify-content-center.mb-5 .botao-laranja.col-lg-2 {
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: calc(100% - 2rem);
	min-width: 16.5rem;
	white-space: nowrap;
	text-align: center;
	line-height: 1.2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

@media (max-width: 991px) {
	.home .info-loja-home + .d-flex.justify-content-center.mb-5 {
		margin-top: 1em !important;
		margin-bottom: 2.5rem !important;
		padding-left: 1rem;
		padding-right: 1rem;
		width: 100%;
	}

	.home .info-loja-home + .d-flex.justify-content-center.mb-5 .botao-laranja,
	.home .info-loja-home + .d-flex.justify-content-center.mb-5 .botao-laranja.col-lg-2 {
		width: min(100%, 22rem) !important;
		min-width: min(100%, 19rem) !important;
		max-width: 100% !important;
		padding-left: 1.5rem !important;
		padding-right: 1.5rem !important;
		font-size: 0.875rem;
		letter-spacing: 0.04em;
		white-space: nowrap;
	}
}

@media (max-width: 420px) {
	.home .info-loja-home + .d-flex.justify-content-center.mb-5 .botao-laranja,
	.home .info-loja-home + .d-flex.justify-content-center.mb-5 .botao-laranja.col-lg-2 {
		width: 100% !important;
		min-width: 0 !important;
		font-size: 0.8125rem;
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}
}

/* Buttons */
.botao-laranja,
.botao-branco,
.botao-transparente,
.banner-login .botoes a,
.woocommerce a.button,
.woocommerce button.button {
	transition:
		transform var(--clv-duration-fast) var(--clv-ease-out),
		box-shadow var(--clv-duration-medium) var(--clv-ease-out),
		background-color var(--clv-duration-medium) var(--clv-ease-out),
		color var(--clv-duration-fast) var(--clv-ease-out),
		border-color var(--clv-duration-fast) var(--clv-ease-out);
}

.botao-laranja:hover,
.botao-branco:hover,
.botao-transparente:hover,
.banner-login .botoes a:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	transform: translateY(-2px);
	box-shadow: var(--clv-shadow-lift);
}

.botao-laranja:active,
.botao-branco:active,
.botao-transparente:active,
.banner-login .botoes a:active,
.woocommerce a.button:active,
.woocommerce button.button:active {
	transform: translateY(0) scale(0.98);
	box-shadow: var(--clv-shadow-soft);
}

.botao-laranja:focus-visible,
.botao-branco:focus-visible,
.botao-transparente:focus-visible,
.navbar-nav .nav-link:focus-visible {
	outline: 2px solid var(--azul-botao, #16bad3);
	outline-offset: 3px;
}

/* Navigation */
.navbar.branco {
	transition: box-shadow var(--clv-duration-medium) var(--clv-ease-out);
}

.navbar.branco .container .nav-links {
	display: flex;
	align-items: center;
	flex: 1 1 auto;
	min-width: 0;
	gap: 0.5rem;
}

.navbar.branco .navbar-collapse {
	flex: 1 1 auto;
	min-width: 0;
}

.navbar.branco .navbar-nav {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	row-gap: 0.4rem;
	column-gap: clamp(0.5rem, 0.85vw, 1.25rem);
	min-width: 0;
}

.navbar.branco .nav-componentes {
	flex: 0 0 auto;
	width: auto !important;
	min-width: 0;
	margin-left: auto;
	padding-left: 0.5rem;
}

.navbar.branco .nav-componentes .icons,
.navbar.branco .redes-mobile .icons {
	display: flex !important;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.45rem;
	width: auto !important;
	max-width: 100%;
	margin: 0 !important;
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
}

.navbar.branco .nav-componentes .icons.row,
.navbar.branco .redes-mobile .icons.row {
	margin-left: 0;
	margin-right: 0;
}

.navbar.branco .nav-componentes .icons > a,
.navbar.branco .redes-mobile .icons > a {
	flex: 0 0 auto;
	width: auto !important;
	max-width: none;
	padding: 0;
}

.navbar.branco .nav-componentes .icons .icon,
.navbar.branco .redes-mobile .icons .icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.55rem;
	min-height: 1.55rem;
	padding: 0 0.1rem;
}

@media (min-width: 992px) and (max-width: 1280px) {
	header .row > .navbar.branco {
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}

	.navbar.branco .navbar-nav .nav-link {
		font-size: 0.92rem !important;
		white-space: nowrap;
	}

	.navbar.branco .nav-componentes .icons,
.navbar.branco .redes-mobile .icons {
		gap: 0.35rem;
	}
}

@media (min-width: 992px) and (max-width: 1140px) {
	.navbar.branco .navbar-nav .nav-link {
		font-size: 0.84rem !important;
	}
}

.navbar.branco.clv-nav-scrolled {
	box-shadow: 0 4px 22px rgba(62, 100, 111, 0.1);
}

/* Base dos links: sem padding lateral para o sublinhado casar com o texto.
   O espaçamento entre itens vem do column-gap da .navbar-nav. */
.navbar-nav .nav-item > .nav-link {
	position: relative;
	display: inline-block;
	padding: 0.3rem 0;
	transition: color var(--clv-duration-fast) var(--clv-ease-out);
}

.navbar-nav .nav-item > .nav-link:hover,
.navbar-nav .nav-item.show > .nav-link {
	color: var(--azul-base, #3e646f) !important;
}

/* Sublinhado preciso: largura exata do texto, crescendo do centro.
   Itens simples usam ::after; o dropdown usa ::before (porque ::after é o caret). */
.navbar-nav .nav-item:not(.dropdown) > .nav-link::after,
.navbar-nav .nav-item.dropdown > .dropdown-toggle::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background-color: var(--azul-base, #3e646f);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform var(--clv-duration-medium) var(--clv-ease-interaction);
}

.navbar-nav .nav-item:not(.dropdown) > .nav-link:hover::after,
.navbar-nav .nav-item:not(.dropdown) > .nav-link:focus-visible::after,
.navbar-nav .nav-item:not(.dropdown).active > .nav-link::after,
.navbar-nav .nav-item:not(.dropdown).current-menu-item > .nav-link::after,
.navbar-nav .nav-item.dropdown > .dropdown-toggle:hover::before,
.navbar-nav .nav-item.dropdown > .dropdown-toggle:focus-visible::before,
.navbar-nav .nav-item.dropdown.show > .dropdown-toggle::before,
.navbar-nav .nav-item.dropdown.active > .dropdown-toggle::before,
.navbar-nav .nav-item.dropdown.current-menu-item > .dropdown-toggle::before {
	transform: scaleX(1);
}

/* Caret (triângulo) do dropdown "Produtos" */
.navbar-nav .nav-item.dropdown > .dropdown-toggle::after {
	display: inline-block !important;
	position: static !important;
	width: 0 !important;
	height: 0 !important;
	left: auto !important;
	bottom: auto !important;
	margin-left: 0.4em;
	vertical-align: 0.16em;
	content: "" !important;
	border: 0 !important;
	border-top: 0.34em solid currentColor !important;
	border-right: 0.34em solid transparent !important;
	border-left: 0.34em solid transparent !important;
	background: none !important;
	transition: transform var(--clv-duration-fast) var(--clv-ease-out);
}

.navbar-nav .nav-item.dropdown.show > .dropdown-toggle::after {
	transform: translateY(2px);
}

.navbar-nav .nav-link.active {
	background: none !important;
}

/* Ícones sociais do header: cor neutra + micro-resposta no hover */
.navbar.branco .nav-componentes .icons .icon,
.navbar.branco .redes-mobile .icons .icon {
	color: #9aa3a6;
	transition: color var(--clv-duration-fast) var(--clv-ease-out),
		transform var(--clv-duration-fast) var(--clv-ease-interaction);
}

.navbar.branco .nav-componentes .icons > a:hover .icon,
.navbar.branco .redes-mobile .icons > a:hover .icon {
	color: var(--azul-base, #3e646f);
	transform: translateY(-2px);
}

/* Dropdown menu — refinamento sutil (sombra suave + itens arredondados) */
.navbar .dropdown-menu {
	margin-top: 0.55rem;
	padding: 0.5rem 0.35rem;
	border: none !important;
	border-radius: 16px !important;
	box-shadow: var(--clv-shadow-soft);
}

.navbar .dropdown-menu .subcategoria {
	padding: 2px 6px;
}

.navbar .dropdown-menu .dropdown-item {
	padding: 0.45rem 0.85rem;
	border-radius: 10px;
	transition: background-color var(--clv-duration-fast) var(--clv-ease-out),
		color var(--clv-duration-fast) var(--clv-ease-out);
}

.navbar .dropdown-menu .dropdown-item:hover,
.navbar .dropdown-menu .dropdown-item:focus {
	background-color: rgba(62, 100, 111, 0.08);
	color: var(--azul-base, #3e646f) !important;
}

img[data-src*="ondas-banner"] {
	background: transparent !important;
}

/* Tipos de piscina cards */
.tipos-piscinas > .row.justify-content-around {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: center !important;
	gap: 1.5rem;
	margin-top: 1.5rem;
}

.tipos-piscinas .cards-tipos {
	flex: 1 1 18rem;
	width: min(100%, 633px);
	max-width: 633px;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	text-decoration: none;
}

.tipos-piscinas .cards-tipos#card2 {
	margin-bottom: 0 !important;
}

@media (min-width: 992px) {
	.tipos-piscinas > .row.justify-content-around {
		justify-content: space-around !important;
		gap: 2rem;
	}

	.tipos-piscinas .cards-tipos {
		margin-top: 2.5rem !important;
		margin-bottom: 2.5rem !important;
	}
}

@media (max-width: 991px) {
	.tipos-piscinas > .row.justify-content-around {
		flex-direction: column;
		align-items: center;
		gap: 1.25rem;
		padding-bottom: 2rem;
	}

	.tipos-piscinas .cards-tipos {
		width: 100%;
		max-width: 100%;
		height: min(420px, 70vw);
		margin: 0 !important;
	}

	.tipos-piscinas .chamada .titulo {
		font-size: clamp(1.75rem, 6vw, 2.5rem);
	}
}

@media (max-width: 575px) {
	.tipos-piscinas .cards-tipos {
		height: min(360px, 72vw);
		font-size: 1.125rem;
		letter-spacing: 0.12em;
	}
}

/* Category cards */
.cards-inicio .card {
	overflow: hidden;
	transition:
		transform var(--clv-duration-medium) var(--clv-ease-out),
		box-shadow var(--clv-duration-medium) var(--clv-ease-out);
}

.cards-inicio .card:hover {
	transform: translateY(-6px);
	box-shadow: var(--clv-shadow-lift);
}

.cards-inicio .card img {
	transition: transform var(--clv-duration-slow) var(--clv-ease-out);
}

.cards-inicio .card:hover img {
	transform: scale(1.05);
}

.cards-inicio .card .card-hover {
	transition: opacity var(--clv-duration-medium) var(--clv-ease-out);
}

/* Trust bar */
.info-loja-home .info {
	transition: transform var(--clv-duration-medium) var(--clv-ease-out);
}

.info-loja-home .info:hover {
	transform: translateY(-3px);
}

.info-loja-home .info img {
	transition: transform var(--clv-duration-medium) var(--clv-ease-out);
}

.info-loja-home .info:hover img {
	transform: scale(1.08);
}

.info-loja-home h5 {
	transition: color var(--clv-duration-fast) var(--clv-ease-out);
}

.info-loja-home .info:hover h5 {
	color: var(--azul-base, #3e646f);
}

/* Mosaic */
.mosaico {
	transition: box-shadow var(--clv-duration-medium) var(--clv-ease-out);
}

.mosaico:hover {
	box-shadow: 0 14px 28px rgba(0, 0, 0, 0.14);
}

.mosaico .componentes .fundo-imagem {
	transition:
		transform var(--clv-duration-slow) var(--clv-ease-out),
		filter var(--clv-duration-medium) var(--clv-ease-out);
}

.mosaico .componentes .fundo-imagem:hover {
	transform: scale(1.015);
	filter: saturate(1.05);
}

.mosaico .componentes .fundo-branco {
	transition:
		background-color var(--clv-duration-medium) var(--clv-ease-out),
		color var(--clv-duration-medium) var(--clv-ease-out),
		transform var(--clv-duration-medium) var(--clv-ease-out);
}

.mosaico .componentes .fundo-branco:hover {
	background-color: var(--azul-base, #3e646f);
	color: #fff !important;
	transform: scale(1.01);
}

.mosaico .componentes .fundo-branco:hover img {
	filter: brightness(0) invert(1);
	transition: filter var(--clv-duration-medium) var(--clv-ease-out);
}

.mosaico {
	height: auto !important;
	min-height: 545px;
}

/* Use CSS Grid so every cell fills the full row height automatically.
   Flexbox stretch was unreliable here because .fundo-imagem (divs with only
   a background image) compute intrinsic height as 0 and break the row height. */
.mosaico .componentes {
	display: grid !important;
	grid-template-columns: 1fr 1fr 1fr;
	grid-auto-rows: minmax(273px, 1fr);
	align-items: stretch;
	justify-items: stretch;
	width: 100% !important;
	height: auto !important;
	min-height: 273px;
	margin: 0 !important;
	padding: 0 !important;
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
	overflow: hidden;
}

.mosaico .componentes > [class*="col-"] {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;
	min-height: 273px;
	height: 100%;
}

.mosaico .componentes .fundo-imagem {
	min-height: 273px;
	height: 100%;
	background-position: center;
	background-size: cover;
}

.mosaico .componentes .fundo-branco {
	display: flex !important;
	flex-direction: column;
	justify-content: center !important;
	align-items: center !important;
	height: 100%;
	min-height: 273px;
	text-align: center;
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
	padding: 0.65rem 0.4rem;
	text-decoration: none;
	letter-spacing: 0.12em !important;
	font-size: clamp(0.75rem, 1.6vw, 1.75rem) !important;
	line-height: 1.25 !important;
	white-space: normal;
}

.mosaico .componentes .fundo-branco .my-3.px-3 {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0.35rem 0 !important;
	padding: 0 0.25rem !important;
	box-sizing: border-box;
	text-align: center;
	white-space: normal;
	overflow-wrap: anywhere;
	word-wrap: break-word;
	hyphens: auto;
	line-height: 1.3;
	letter-spacing: inherit;
}

@media (max-width: 1292px) {
	.mosaico {
		min-height: 360px;
	}

	.mosaico .componentes {
		grid-auto-rows: minmax(190px, 1fr);
		min-height: 190px;
	}

	.mosaico .componentes > [class*="col-"] {
		min-height: 190px;
	}

	.mosaico .componentes .fundo-imagem {
		min-height: 190px;
	}

	.mosaico .componentes .fundo-branco {
		min-height: 190px;
		font-size: clamp(0.6875rem, 2.4vw, 1.25rem) !important;
		letter-spacing: 0.08em !important;
	}
}

@media (max-width: 767px) {
	.mosaico .componentes {
		grid-template-columns: 1fr;
		grid-auto-rows: minmax(180px, auto);
	}

	.mosaico .componentes .fundo-branco {
		font-size: clamp(0.625rem, 2.8vw, 1rem) !important;
		letter-spacing: 0.06em !important;
		padding: 0.5rem 0.25rem;
	}
}

@media (max-width: 600px) {
	.mosaico .componentes .fundo-branco {
		font-size: clamp(0.5625rem, 3.1vw, 0.8125rem) !important;
		letter-spacing: 0.04em !important;
	}

	.mosaico .componentes .fundo-branco .my-3.px-3 {
		padding: 0 0.15rem !important;
		line-height: 1.35;
	}
}

/* Banner login */
.banner-login {
	overflow: hidden;
	transition: box-shadow var(--clv-duration-medium) var(--clv-ease-out);
}

.banner-login:hover {
	box-shadow: var(--clv-shadow-soft);
}

.banner-login .overlay {
	transition: background-color var(--clv-duration-slow) var(--clv-ease-out);
}

.banner-login:hover .overlay {
	background-color: rgba(62, 100, 111, 0.58);
}

.banner-login .textos,
.banner-login .botoes {
	transition: transform var(--clv-duration-medium) var(--clv-ease-out);
}

.banner-login:hover .textos,
.banner-login:hover .botoes {
	transform: translateY(-2px);
}

/* Carousel */
.carousel-indicators [data-bs-target] {
	transition:
		transform var(--clv-duration-fast) var(--clv-ease-out),
		opacity var(--clv-duration-fast) var(--clv-ease-out);
}

.carousel-indicators [data-bs-target]:hover {
	transform: scale(1.04);
	opacity: 1;
}

.carousel-control-prev,
.carousel-control-next {
	transition: opacity var(--clv-duration-fast) var(--clv-ease-out);
}

.carousel-control-prev:hover,
.carousel-control-next:hover {
	opacity: 0.85;
}

/* Products section heading */
.produtos .titulo-bloco {
	height: auto !important;
	min-height: 0;
	overflow: visible;
}

.produtos .titulo-bloco h2 {
	display: block;
	height: auto !important;
	min-height: 0;
	line-height: 1.35 !important;
	letter-spacing: 0.14em;
	overflow: visible;
	overflow-wrap: break-word;
	word-wrap: break-word;
	max-width: 62rem;
	margin-left: auto;
	margin-right: auto;
	padding: 0 1.25rem;
}

@media (max-width: 1199px) {
	.produtos .titulo-bloco h2 {
		font-size: 1.625rem !important;
		line-height: 1.4 !important;
		letter-spacing: 0.1em;
	}
}

@media (max-width: 991px) {
	.produtos .titulo-bloco h2 {
		font-size: 1.375rem !important;
		line-height: 1.45 !important;
		letter-spacing: 0.08em;
	}
}

@media (max-width: 767px) {
	.produtos .titulo-bloco h2 {
		font-size: 1.125rem !important;
		line-height: 1.5 !important;
		letter-spacing: 0.06em;
	}
}

@media (max-width: 480px) {
	.produtos .titulo-bloco h2 {
		font-size: 1rem !important;
		line-height: 1.55 !important;
		letter-spacing: 0.04em;
	}
}

/* Footer contact links */
.rodape-laranja .container > .row.justify-content-start {
	align-items: flex-start;
	row-gap: 1.5rem;
}

.rodape-laranja .logo-links,
.rodape-laranja .links {
	flex: 0 0 auto;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.rodape-laranja .links {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.65rem;
}

.rodape-laranja .links > img {
	display: block;
	width: auto !important;
	max-width: 4rem;
	height: auto !important;
	margin-bottom: 0.35rem;
}

.rodape-laranja .links .link {
	display: block;
	width: 100%;
	max-width: 26rem;
	color: #fff;
	text-decoration: none;
	padding: 0.35rem 0;
}

.rodape-laranja .links .link .row {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	gap: 0.75rem;
	margin: 0 !important;
	width: 100%;
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
}

.rodape-laranja .links .link .col-1,
.rodape-laranja .links .link .col-10 {
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: none !important;
	padding: 0 !important;
}

.rodape-laranja .links .link .col-1 {
	flex: 0 0 1.75rem !important;
	min-width: 1.75rem;
	display: inline-flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 0.15rem !important;
}

.rodape-laranja .links .link .col-1 i {
	line-height: 1;
}

.rodape-laranja .links .link .col-1 img {
	width: 1.125rem !important;
	height: auto !important;
	max-width: 1.125rem;
	display: block;
}

.rodape-laranja .links .link .col-10 {
	flex: 1 1 auto !important;
	min-width: 0;
	font-size: 0.9375rem;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.rodape-laranja .links .link strong {
	display: block;
	margin-bottom: 0.15em;
	font-weight: 600;
}

.rodape-laranja .links .link strong::after {
	content: " ";
}

@media (min-width: 992px) {
	.rodape-laranja .logo-links,
	.rodape-laranja .links {
		width: auto;
		max-width: 22rem;
	}
}

@media (max-width: 991px) {
	.rodape-laranja .container > .row.justify-content-start {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}
}

@media (max-width: 575px) {
	.rodape-laranja .links .link {
		max-width: 100%;
	}

	.rodape-laranja .links .link .col-10 {
		font-size: 0.875rem;
	}
}

/* WooCommerce products */
.woocommerce ul.products li.product {
	transition:
		transform var(--clv-duration-medium) var(--clv-ease-out),
		box-shadow var(--clv-duration-medium) var(--clv-ease-out);
}

.woocommerce ul.products li.product:hover {
	transform: translateY(-4px);
	box-shadow: var(--clv-shadow-soft);
}

.woocommerce ul.products li.product img {
	transition: transform var(--clv-duration-slow) var(--clv-ease-out);
}

.woocommerce ul.products li.product:hover img {
	transform: scale(1.03);
}

/* Scroll reveal */
.clv-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity var(--clv-duration-slow) var(--clv-ease-out),
		transform var(--clv-duration-slow) var(--clv-ease-out);
}

.clv-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.botao-laranja,
	.botao-branco,
	.botao-transparente,
	.cards-inicio .card,
	.info-loja-home .info,
	.mosaico,
	.banner-login,
	.woocommerce ul.products li.product,
	.navbar.branco {
		transition: none !important;
	}

	.botao-laranja:hover,
	.botao-branco:hover,
	.botao-transparente:hover,
	.cards-inicio .card:hover,
	.info-loja-home .info:hover,
	.woocommerce ul.products li.product:hover {
		transform: none !important;
	}
}

/* CLV: rodape coluna unica */
.rodape-laranja .container > .row.justify-content-start > .logo-links,
.rodape-laranja .container > .row.justify-content-start > .links {
	width: 100% !important;
	max-width: 100% !important;
	flex: 0 0 100% !important;
}

/* CLV: rodape margem esquerda */
.rodape-laranja .container > .row.justify-content-start {
	padding-left: 3.5rem !important;
}

/* =========================================================
   CLV: micro-interações refinadas (v1.3)
   Princípios: animar só opacity/transform, durações curtas,
   curvas ease-out para entradas, prefers-reduced-motion honrado.
   ========================================================= */

/* 1) Gradiente dos cards de categoria: surge ganhando opacidade
   lentamente (antes usava display:none → flex, que não anima). */
.cards-inicio .card .card-hover {
	display: flex !important;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity var(--clv-duration-slow) var(--clv-ease-out),
		visibility var(--clv-duration-slow) var(--clv-ease-out);
}

.cards-inicio .card:hover .card-hover,
.cards-inicio .card:focus-within .card-hover {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* 2) Fade puro no scroll: gradientes/banners ganham opacidade devagar */
.clv-fade {
	opacity: 0;
	transition: opacity var(--clv-duration-xslow) var(--clv-ease-out);
	will-change: opacity;
}

.clv-fade.is-visible {
	opacity: 1;
}

/* 3) Imagens de cards/galeria aparecem com fade suave ao carregar */
.clv-img {
	opacity: 0;
	transition: opacity var(--clv-duration-slow) var(--clv-ease-out);
}

.clv-img.clv-img-loaded {
	opacity: 1;
}

/* 4) Sublinhado dos links de navegação: tratado na seção MENU/HEADER acima
   (.navbar-nav .nav-item ... ::after / ::before). Aqui mantemos apenas o
   contexto de posicionamento para não duplicar a barra. */
.clv-navlink {
	position: relative;
}

/* 5) Botões: leve elevação no hover, afundamento no clique */
.botao-laranja,
.botao-branco,
.botao-transparente {
	transition:
		transform var(--clv-duration-fast) var(--clv-ease-interaction),
		box-shadow var(--clv-duration-fast) var(--clv-ease-interaction),
		background-color var(--clv-duration-fast) var(--clv-ease-interaction),
		color var(--clv-duration-fast) var(--clv-ease-interaction),
		border-color var(--clv-duration-fast) var(--clv-ease-interaction);
}

.botao-laranja:hover,
.botao-branco:hover,
.botao-transparente:hover {
	transform: translateY(-2px);
	box-shadow: var(--clv-shadow-soft);
}

.botao-laranja:active,
.botao-branco:active,
.botao-transparente:active {
	transform: translateY(0);
	transition-duration: 0.08s;
}

/* 6) Foco visível elegante (acessibilidade) */
.botao-laranja:focus-visible,
.botao-branco:focus-visible,
.botao-transparente:focus-visible,
.clv-navlink:focus-visible {
	outline: 2px solid var(--azul-base, #3e646f);
	outline-offset: 3px;
	border-radius: 6px;
}

/* 7) Ícones sociais com micro-resposta no hover */
.redes-rodape .icons .icon,
.header-icones a i,
header .social a {
	transition:
		transform var(--clv-duration-fast) var(--clv-ease-interaction),
		opacity var(--clv-duration-fast) var(--clv-ease-interaction);
}

.redes-rodape .icons .icon:hover,
.header-icones a:hover i,
header .social a:hover {
	transform: translateY(-2px) scale(1.08);
	opacity: 0.92;
}

/* Acessibilidade: desliga movimento, mantém fades suaves de opacidade */
@media (prefers-reduced-motion: reduce) {
	.clv-fade,
	.clv-img {
		transition: opacity 0.4s linear !important;
	}

	.cards-inicio .card .card-hover {
		transition: opacity 0.3s linear, visibility 0.3s linear !important;
	}

	.clv-navlink::after,
	.botao-laranja,
	.botao-branco,
	.botao-transparente,
	.redes-rodape .icons .icon {
		transition: none !important;
	}

	.botao-laranja:hover,
	.botao-branco:hover,
	.botao-transparente:hover,
	.redes-rodape .icons .icon:hover {
		transform: none !important;
	}
}
