/* Kelga visual effects: page transitions, scroll reveal, hover, shadows, lightbox */

/* ---------- Page transition ---------- */
@keyframes kfxPageIn { from { opacity: 0; } to { opacity: 1; } }
.kfx-page-in { animation: kfxPageIn .45s ease both; }

/* ---------- Scroll reveal ---------- */
.kfx-reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1), box-shadow .3s ease, filter .3s ease;
	transition-delay: var(--kfx-d, 0s);
	will-change: opacity, transform;
}
.kfx-reveal.kfx-in { opacity: 1; transform: none; }
.kfx-reveal.kfx-done { transition-delay: 0s; will-change: auto; }

/* ---------- Text shadows ---------- */
.section_title h1, .section_title h2, .section_title h3, .section_title h4 {
	text-shadow: 0 2px 5px rgba(0, 0, 0, .10);
}
.hero_area h1, .hero_area h2, .hero_area h3, .hero_area h4, .hero_area p, .hero_area li,
.breadcumb-area h4, .breadcumb-area li, .breadcumb-area a {
	text-shadow: 0 2px 10px rgba(0, 0, 0, .45);
}

/* ---------- Header: text shadow + hover motion ---------- */
.buddy-header-area .brand-text,
.buddy-header-area .header-menu ul li a {
	text-shadow: 0 2px 4px rgba(0, 0, 0, .22);
}
.buddy-header-area .brand-text {
	display: inline-block;
	transition: transform .3s ease, text-shadow .3s ease;
}
.buddy-header-area .header-logo a:hover .brand-text {
	transform: translateY(-2px) scale(1.04);
	text-shadow: 0 6px 12px rgba(0, 0, 0, .28);
}
.buddy-header-area .header-menu ul li a {
	display: inline-block;
	position: relative;
	transition: transform .3s ease, color .3s ease, text-shadow .3s ease;
}
.buddy-header-area .header-menu ul li a::after {
	content: '';
	position: absolute; right: 0; left: 0; top: calc(50% + 17px);
	height: 2px; border-radius: 2px; background: #b0712f;
	transform: scaleX(0); transform-origin: center;
	transition: transform .3s ease;
}
.buddy-header-area .header-menu ul li a:hover {
	transform: translateY(-3px);
	color: #b0712f;
	text-shadow: 0 6px 10px rgba(0, 0, 0, .25);
}
.buddy-header-area .header-menu ul li a:hover::after,
.buddy-header-area .header-menu ul li a.active::after { transform: scaleX(1); }

/* ---------- Images: soft edge shadow + slight lift ---------- */
.about_thumb img, .faq_thumb img, .service_details_img img {
	border-radius: 14px;
	filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .16));
	transition: transform .4s ease, filter .4s ease;
}
.about_thumb:hover img, .faq_thumb:hover img, .service_details_img:hover img {
	transform: translateY(-6px);
	filter: drop-shadow(0 18px 26px rgba(0, 0, 0, .22));
}
.kelga-video-wrap { box-shadow: 0 14px 34px rgba(0, 0, 0, .20); }

/* ---------- Cards: lift on hover ---------- */
.feature_item, .single_team_item, .service_details_item, .single-blog-box, .testimonial_item, .portfolio_item {
	transition: transform .35s ease, box-shadow .35s ease;
}
.feature_item:hover, .single_team_item:hover, .service_details_item:hover,
.single-blog-box:hover, .testimonial_item:hover, .portfolio_item:hover,
.kfx-reveal.kfx-in.feature_item:hover, .kfx-reveal.kfx-in.single_team_item:hover,
.kfx-reveal.kfx-in.service_details_item:hover, .kfx-reveal.kfx-in.portfolio_item:hover {
	transform: translateY(-8px);
	box-shadow: 0 16px 34px rgba(0, 0, 0, .13);
}

/* ---------- Image zoom inside cards ---------- */
.team_thumb, .single-blog-thumb, .portfolio_thumb { overflow: hidden; border-radius: 12px; }
.team_thumb img, .single-blog-thumb img, .portfolio_thumb img { transition: transform .6s ease; }
.single_team_item:hover .team_thumb img,
.single-blog-box:hover .single-blog-thumb img,
.portfolio_item:hover .portfolio_thumb img { transform: scale(1.07); }

/* ---------- Gallery grid ---------- */
#gallery-grid .grid-item { margin-bottom: 26px; }
#gallery-grid .portfolio_item { border-radius: 12px; box-shadow: 0 6px 18px rgba(0, 0, 0, .10); }
#gallery-grid .portfolio_thumb img { width: 100%; height: 280px; object-fit: cover; display: block; cursor: zoom-in; }

/* ---------- Blog carousel arrows: keep them clear of the intro text ---------- */
@media (min-width: 992px) {
	.blog_area .row { position: relative; }
	.blog_area .blog_list2.owl-carousel { position: static; }
	.blog_area .row > .col-lg-3 { padding-bottom: 96px; }
	.blog_area .blog_list2.owl-carousel .owl-nav {
		position: absolute !important;
		top: auto !important; left: auto !important;
		right: 12px !important; bottom: 12px !important;
		margin: 0 !important; transform: none !important;
		display: flex; gap: 12px; z-index: 2;
	}
	.blog_area .blog_list2.owl-carousel .owl-nav.disabled { display: none; }
	.blog_area .blog_list2.owl-carousel .owl-nav > button,
	.blog_area .blog_list2.owl-carousel .owl-nav > div { position: static !important; margin: 0 !important; }
}
@media (max-width: 991px) {
	.blog_area .blog_list2.owl-carousel .owl-nav {
		position: static !important; transform: none !important;
		display: flex; justify-content: center; gap: 12px; margin: 22px 0 0 !important;
	}
	.blog_area .blog_list2.owl-carousel .owl-nav.disabled { display: none; }
	.blog_area .blog_list2.owl-carousel .owl-nav > button,
	.blog_area .blog_list2.owl-carousel .owl-nav > div { position: static !important; margin: 0 !important; }
}

/* ---------- Video play button pulse ---------- */
@keyframes kfxPulse {
	0%   { box-shadow: 0 0 0 0 rgba(176, 113, 47, .55); }
	100% { box-shadow: 0 0 0 26px rgba(176, 113, 47, 0); }
}
.kelga-play-overlay > div { animation: kfxPulse 1.8s ease-out infinite; }
.kelga-play-overlay:hover > div { transform: scale(1.08); transition: transform .25s ease; }

/* ---------- Lightbox ---------- */
.kfx-lb {
	position: fixed; inset: 0; z-index: 2147483000;
	display: flex; align-items: center; justify-content: center; flex-direction: column;
	background: rgba(10, 8, 6, .92);
	opacity: 0; visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease;
}
.kfx-lb.kfx-open { opacity: 1; visibility: visible; }
.kfx-lb img {
	max-width: 92vw; max-height: 78vh; border-radius: 10px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .6);
	transform: scale(.94); transition: transform .3s ease;
}
.kfx-lb.kfx-open img { transform: none; }
.kfx-lb-title { color: #fff; margin-top: 16px; font-size: 20px; text-align: center; padding: 0 16px; }
.kfx-lb button {
	position: absolute; width: 46px; height: 46px; border: 0; border-radius: 50%;
	background: rgba(255, 255, 255, .14); color: #fff; font-size: 20px; line-height: 46px; padding: 0;
	cursor: pointer; transition: background .2s ease;
}
.kfx-lb button:hover { background: #b0712f; }
.kfx-lb-close { top: 18px; left: 18px; }
.kfx-lb-prev { right: 18px; top: 50%; margin-top: -23px; }
.kfx-lb-next { left: 18px; top: 50%; margin-top: -23px; }

@media (max-width: 767px) {
	#gallery-grid .portfolio_thumb img { height: 230px; }
	.kfx-reveal { transform: translateY(20px); }
}

@media (prefers-reduced-motion: reduce) {
	.kfx-page-in, .kelga-play-overlay > div { animation: none; }
	.kfx-reveal { opacity: 1; transform: none; transition: none; }
}
