/* Smart image loading — soft reveal, less layout jump */
.smart-img {
	max-width: 100%;
	height: auto;
	background: linear-gradient(110deg, #e8eee9 0%, #f4f7f4 40%, #e8eee9 80%);
	background-size: 200% 100%;
	color: transparent;
	vertical-align: middle;
}
.smart-img.is-loaded,
.smart-img.smart-img--logo,
.smart-img.smart-img--slide {
	background: none;
	animation: none;
	color: inherit;
}
.smart-img:not(.is-loaded):not(.smart-img--logo):not(.smart-img--slide) {
	animation: smartImgShimmer 1.2s ease-in-out infinite;
}
@keyframes smartImgShimmer {
	0% { background-position: 100% 0; }
	100% { background-position: -100% 0; }
}
.smart-img.is-loaded {
	animation: smartImgFade .35s ease both;
}
@keyframes smartImgFade {
	from { opacity: .72; filter: blur(4px); }
	to { opacity: 1; filter: none; }
}
@media (prefers-reduced-motion: reduce) {
	.smart-img,
	.smart-img.is-loaded {
		animation: none !important;
		filter: none !important;
	}
}

/* Header / menu logos: keep fixed brand height (ignore smart-img height:auto) */
.logo_container,
.header .logo_container {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	line-height: 0;
}
.logo_container a,
.header .logo_container a,
.menu > a.menu_brand {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}
.logo_container img,
.header .logo_container img,
.site-brand-logo,
.logo_container img.smart-img,
.header .logo_container img.smart-img,
.logo_container img.smart-img--logo,
.header_content img.smart-img--logo {
	display: block;
	width: auto !important;
	max-width: min(220px, 42vw) !important;
	height: 50px !important;
	max-height: 50px !important;
	object-fit: contain;
	object-position: left center;
	background: none !important;
	animation: none !important;
	filter: none !important;
}
.header.scrolled .logo_container img,
.header.scrolled .logo_container img.smart-img,
.header.scrolled .site-brand-logo,
.header.scrolled .header_content img.smart-img--logo {
	height: 44px !important;
	max-height: 44px !important;
}
.menu > a img,
.menu > a img.smart-img,
.menu > a img.smart-img--logo,
.site-brand-logo--menu {
	display: block;
	width: auto !important;
	max-width: 180px !important;
	height: 40px !important;
	max-height: 40px !important;
	object-fit: contain;
	object-position: left center;
	background: none !important;
	animation: none !important;
	filter: none !important;
}

/* Content bodies: avoid oversized originals stretching layout */
.single-body img.smart-img,
.blog_content img.smart-img,
.course_image img.smart-img,
.news_post_image img.smart-img,
.event_image img.smart-img {
	width: 100%;
	height: auto;
}
