/* =========================================================
   ELW IMPLANTES — CTAs, animações de scroll e depoimentos
   Arquivo adicional, não mexe nos estilos originais do tema
   ========================================================= */

/* ---------- Botões CTA (azul original do site + borda dourada animada) ---------- */

/* --angle animável (fallback silencioso em navegadores sem suporte a @property) */
@property --beam-angle {
	syntax: '<angle>';
	inherits: false;
	initial-value: 0deg;
}

/* Seletor reforçado (mesmo prefixo do tema) para garantir que ganhe do CSS
   original do Divi, que já usa bastante !important */
body #page-container .et_pb_section .et_pb_button.cta-zap,
body #page-container .et_pb_section .cta-zap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: #ffffff !important;
	border: 3px solid transparent !important;
	border-radius: 50px !important;
	padding: 16px 32px !important;
	font-weight: 700 !important;
	letter-spacing: 0.3px;
	text-transform: none !important;
	background:
		linear-gradient(#0c71c3, #0c71c3) padding-box,
		conic-gradient(
			from var(--beam-angle, 0deg),
			transparent 0%,
			transparent 68%,
			#e9c766 76%,
			#fff6d8 81%,
			#e9c766 86%,
			transparent 94%,
			transparent 100%
		) border-box !important;
	box-shadow: 0 6px 18px rgba(12, 113, 195, 0.35);
	transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;
	position: relative;
	overflow: visible;
	animation: cta-beam-sweep 3.6s ease-in-out infinite alternate;
}

body #page-container .et_pb_section .et_pb_button.cta-zap:hover,
body #page-container .et_pb_section .cta-zap:hover {
	transform: translateY(-3px) scale(1.04);
	box-shadow: 0 10px 26px rgba(12, 113, 195, 0.5);
	filter: brightness(1.05);
	color: #ffffff !important;
}

.et_pb_button.cta-zap::after {
	display: none !important; /* remove seta padrão do tema, se houver */
}

.cta-zap .cta-icon {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}

.cta-zap .cta-icon svg {
	display: block;
}

body #page-container .et_pb_section .cta-zap-hero {
	font-size: 1.05em !important;
	padding: 18px 36px !important;
}

/* O feixe dourado percorre a borda toda (0 -> 360deg) e depois volta
   (360 -> 0deg), graças ao "alternate" — efeito de ida e volta contínuo */
@keyframes cta-beam-sweep {
	from {
		--beam-angle: 0deg;
	}
	to {
		--beam-angle: 360deg;
	}
}

@media (prefers-reduced-motion: reduce) {
	body #page-container .et_pb_section .et_pb_button.cta-zap,
	body #page-container .et_pb_section .cta-zap {
		animation: none;
	}
}

/* ---------- Animações de entrada ao rolar a página ---------- */
.reveal-on-scroll {
	opacity: 0;
	transform: translateY(36px);
	transition: opacity 0.8s ease, transform 0.8s ease;
	will-change: opacity, transform;
}

.reveal-on-scroll.reveal-visible {
	opacity: 1;
	transform: translateY(0);
}

.reveal-on-scroll.reveal-fade {
	transform: none;
}

.reveal-on-scroll.reveal-left {
	transform: translateX(-50px);
}
.reveal-on-scroll.reveal-left.reveal-visible {
	transform: translateX(0);
}

.reveal-on-scroll.reveal-right {
	transform: translateX(50px);
}
.reveal-on-scroll.reveal-right.reveal-visible {
	transform: translateX(0);
}

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

/* ---------- Zoom suave nas imagens ao passar o mouse ---------- */
.et_pb_image .et_pb_image_wrap,
.et_pb_team_member_image {
	display: block;
	overflow: hidden;
	border-radius: 6px;
}

.et_pb_image .et_pb_image_wrap img,
.et_pb_team_member_image img {
	transition: transform 0.6s ease;
}

.et_pb_image:hover .et_pb_image_wrap img,
.et_pb_team_member_image:hover img {
	transform: scale(1.06);
}

/* ---------- Carrossel infinito de depoimentos ---------- */
.depo-marquee {
	width: 100%;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
	mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
}

.depo-marquee-track {
	display: flex;
	gap: 24px;
	width: max-content;
	animation: depo-scroll 26s linear infinite;
}

.depo-marquee:hover .depo-marquee-track {
	animation-play-state: paused;
}

.depo-marquee-item {
	flex: 0 0 auto;
	width: 260px;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.depo-marquee-item img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform 0.5s ease;
}

.depo-marquee-item:hover img {
	transform: scale(1.04);
}

@keyframes depo-scroll {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

@media (max-width: 767px) {
	.depo-marquee-item {
		width: 190px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.depo-marquee-track {
		animation: none;
	}
}

/* ---------- Carrossel infinito da equipe ---------- */
.team-marquee {
	width: 100%;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
	mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
}

.team-marquee-track {
	display: flex;
	gap: 24px;
	width: max-content;
	animation: team-scroll 30s linear infinite;
}

.team-marquee:hover .team-marquee-track {
	animation-play-state: paused;
}

.team-marquee-item {
	flex: 0 0 auto;
	width: 220px;
	text-align: center;
	background-color: #FFFFFF;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0px 24px 72px -12px rgba(0, 0, 0, 0.12);
	padding: 20px;
}

.team-marquee-img {
	border-radius: 6px;
	overflow: hidden;
	margin: 0 auto 12px;
}

.team-marquee-img img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform 0.5s ease;
}

.team-marquee-item:hover .team-marquee-img img {
	transform: scale(1.05);
}

.team-marquee-name {
	font-family: 'Cormorant Garamond', Georgia, "Times New Roman", serif;
	font-size: 20px;
	color: #0e0c19 !important;
	line-height: 1.3em;
	margin: 0 0 4px;
}

.team-marquee-role {
	font-family: 'Proza Libre', Helvetica, Arial, Lucida, sans-serif;
	font-size: 14px;
	color: #3c3a47 !important;
	margin: 0;
}

@keyframes team-scroll {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

@media (max-width: 767px) {
	.team-marquee-item {
		width: 170px;
		padding: 14px;
	}
	.team-marquee-name {
		font-size: 17px;
	}
	.team-marquee-role {
		font-size: 13px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.team-marquee-track {
		animation: none;
	}
}

/* ---------- Novo título "Nossos Serviços" (acima de Restauração/Clareamento) ---------- */
.et_pb_heading_4b .et_pb_heading_container h1,
.et_pb_heading_4b .et_pb_heading_container h2,
.et_pb_heading_4b .et_pb_heading_container h3 {
	font-family: 'Cormorant Garamond', Georgia, "Times New Roman", serif;
	font-size: 50px;
	color: #0e0c19 !important;
	line-height: 1.2em;
	text-align: center;
}
.et_pb_heading_4b {
	margin-bottom: 10px !important;
	width: 97% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
@media only screen and (max-width: 980px) {
	.et_pb_heading_4b .et_pb_heading_container h1,
	.et_pb_heading_4b .et_pb_heading_container h2,
	.et_pb_heading_4b .et_pb_heading_container h3 {
		font-size: 28px;
	}
}
@media only screen and (max-width: 767px) {
	.et_pb_heading_4b .et_pb_heading_container h1,
	.et_pb_heading_4b .et_pb_heading_container h2,
	.et_pb_heading_4b .et_pb_heading_container h3 {
		font-size: 20px;
	}
}

/* ---------- "Quem Cuida de Você" e "Nossos Serviços" em blocos empilhados (não lado a lado) ---------- */
.et_pb_column_11,
.et_pb_column_12,
.et_pb_column_13,
.et_pb_column_14 {
	max-width: 640px;
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
	text-align: center;
	padding-bottom: 40px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	margin-bottom: 20px;
}
.et_pb_column_14 {
	border-bottom: none;
	margin-bottom: 0;
}
.et_pb_column_13 .et_pb_image_wrap img,
.et_pb_column_14 .et_pb_image_wrap img {
	max-width: 260px;
	width: 100%;
	margin: 0 auto 20px;
	display: block;
	border-radius: 6px;
}
/* Fotos do Dr. Wilson e da Dra. Ligia: maiores (tamanho que a especificação/carrossel tinha antes) */
.et_pb_column_11 .et_pb_image_wrap img,
.et_pb_column_12 .et_pb_image_wrap img {
	max-width: 100% !important;
	width: 100% !important;
	margin: 0 auto 20px;
	display: block;
	border-radius: 6px;
}
/* Carrossel de especificações (Atuo com cirurgias...): menor (tamanho que a foto do médico tinha antes) */
.divi8_image_carousel_0,
.divi8_image_carousel_1 {
	max-width: 260px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.et_pb_column_11 .et_pb_text_inner,
.et_pb_column_12 .et_pb_text_inner,
.et_pb_column_13 .et_pb_text_inner,
.et_pb_column_14 .et_pb_text_inner {
	text-align: left;
}
.et_pb_column_11 .et_pb_button_module_wrapper,
.et_pb_column_12 .et_pb_button_module_wrapper,
.et_pb_column_13 .et_pb_button_module_wrapper,
.et_pb_column_14 .et_pb_button_module_wrapper {
	text-align: center;
	margin-top: 12px;
}

/* ---------- Galeria de fotos (procedimentos/doutores) abaixo da Nossa Equipe ---------- */
/* Mosaico compacto: fotos menores, juntinhas, sempre em grade 2 colunas, com boa nitidez */
.et_pb_gallery_0 .et_pb_gallery_items {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	max-width: 420px;
	margin: 0 auto !important;
	height: auto !important;
	transition: none !important;
}
.et_pb_gallery_0 .et_pb_grid_item {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
}
.et_pb_gallery_0 .et_pb_gallery_image {
	border-radius: 6px;
	overflow: hidden;
}
.et_pb_gallery_0 .et_pb_gallery_image a,
.et_pb_gallery_0 .et_pb_gallery_image img {
	display: block;
	width: 100%;
	height: 100%;
}
.et_pb_gallery_0 .et_pb_gallery_image img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

