/**
 * Animações e estados de interação que no site React original vinham do
 * Framer Motion / Radix UI. Aqui são feitas em CSS puro + pequenos toggles
 * de classe via assets/js/main.js, reproduzindo os mesmos tempos/efeitos.
 */

/* ---------- Reveal on scroll (whileInView) ---------- */

.reveal {
	opacity: 0;
	transform: translateY(30px);
	transition-property: opacity, transform;
	transition-timing-function: ease-out;
}
.reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ---------- Header ---------- */

.header-in {
	animation: ss-header-in 0.5s ease-out;
}
@keyframes ss-header-in {
	from { transform: translateY(-100px); }
	to { transform: translateY(0); }
}

.header-logo {
	display: inline-block;
	transition: transform 0.2s ease, filter 0.2s ease;
}
.header-logo:hover {
	transform: scale(1.05);
	filter: drop-shadow(0 0 8px #00ff00);
}

/* ---------- Menu mobile ---------- */

.mobile-menu {
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	padding-top: 0;
	padding-bottom: 0;
	margin-top: 0;
	transition: max-height 0.3s ease, opacity 0.3s ease, margin-top 0.3s ease, padding 0.3s ease;
}
.mobile-menu.is-open {
	opacity: 1;
	padding-top: 1rem;
	padding-bottom: 1rem;
	margin-top: 1rem;
}

/* ---------- Seta animada do Hero (ArrowDown bounce) ---------- */

.ss-bounce {
	animation: ss-bounce 1.5s ease-in-out infinite;
}
@keyframes ss-bounce {
	0%, 100% { transform: translate(-50%, 0); }
	50% { transform: translate(-50%, -15px); }
}

/* ---------- Cards com hover (Services / Videos / Testimonials / Gallery / Contact) ---------- */

.service-card,
.testimonial-card {
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.service-card:hover {
	transform: translateY(-15px);
	box-shadow: 0px 10px 30px rgba(0, 255, 0, 0.2);
}
.testimonial-card:hover {
	transform: translateY(-15px);
	box-shadow: 0px 10px 30px rgba(0, 255, 0, 0.15);
}
.service-icon {
	transition: transform 0.3s ease;
}
.service-card:hover .service-icon {
	transform: scale(1.1) rotate(-10deg);
}

.video-card {
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.video-card:hover {
	transform: scale(1.03) translateY(-10px);
	box-shadow: 0 10px 20px rgba(0, 234, 255, 0.15);
}
.video-play-btn {
	transition: transform 0.3s ease;
}
.video-card:hover .video-play-btn {
	transform: scale(1.2);
}

.gallery-item {
	transition: transform 0.3s ease;
}
.gallery-item:hover {
	transform: scale(1.03);
}

.agent-card {
	transition: transform 0.3s ease;
}
.agent-card:hover {
	transform: translateY(-8px);
}

.footer-brand,
.footer-social {
	display: inline-block;
	transition: transform 0.2s ease;
}
.footer-brand:hover {
	transform: scale(1.05);
}
.footer-social:hover {
	transform: scale(1.2) translateY(-2px);
}

.back-to-top {
	transition: transform 0.5s ease;
}
.back-to-top:hover {
	transform: scale(1.1) translateY(-5px) rotate(360deg);
}

/* ---------- Lightbox da galeria ---------- */

.lightbox {
	display: none;
}
.lightbox.is-open {
	display: flex;
}

/* ---------- Accordion do FAQ ---------- */

.accordion-content {
	height: 0;
	transition: height 0.2s ease-out;
}
.accordion-chevron {
	transition: transform 0.2s ease;
}

/* ---------- Toast ---------- */

.ss-toast {
	pointer-events: auto;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	background: hsl(0 0% 7%);
	border: 1px solid hsl(0 0% 20%);
	border-radius: 0.5rem;
	padding: 1rem 1.5rem;
	box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.3);
	opacity: 0;
	transform: translateY(-20px);
	transition: opacity 0.3s ease, transform 0.3s ease;
}
.ss-toast.is-visible {
	opacity: 1;
	transform: translateY(0);
}
.ss-toast-title {
	font-size: 0.875rem;
	font-weight: 600;
	color: #fff;
	margin: 0;
}
.ss-toast-description {
	font-size: 0.875rem;
	opacity: 0.9;
	color: #d1d5db;
	margin: 0.25rem 0 0;
}
.ss-toast-close {
	background: transparent;
	border: none;
	color: rgba(255, 255, 255, 0.5);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
}
.ss-toast-close:hover {
	color: #fff;
}
