/* Scroll reveal utility (fades/slides in on entering the viewport, and
   reverses when scrolled back out) used for content injected outside of
   Elementor, e.g. the Contact Us form. */

.nbp-reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

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

/* Contact form */

.nbp-contact-form-block {
	margin: 20px 0;
}

/* Homepage "Our Management" carousel (stands in for Elementor Pro's
   testimonial-carousel widget, which is silently dropped without Pro). */

.nbp-home-mgmt-carousel {
	position: relative;
	text-align: left;
	color: #fff;
	/* Slides are stacked with position:absolute below so they can crossfade;
	   this reserves the row height they'd otherwise occupy in normal flow. */
	padding-top: 200px;
}

.nbp-home-mgmt-slide {
	position: absolute;
	top: 0;
	left: 100px;
	right: 0;
	display: flex;
	align-items: center;
	gap: 16px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.7s ease;
}

.nbp-home-mgmt-slide.is-active {
	opacity: 1;
	pointer-events: auto;
}

.nbp-home-mgmt-photo {
	width: 200px;
	height: 200px;
	flex: 0 0 auto;
}

.nbp-home-mgmt-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 50%;
	display: block;
	background-color: #f4f4f4;
	box-shadow: 8px 10px 5px 0px rgba(0, 0, 0, 0.29);
}

.nbp-home-mgmt-name,
.nbp-home-mgmt-title {
	text-shadow: 4px 4px 2px rgba(0, 0, 0, 0.29);
	white-space: nowrap;
}

.nbp-home-mgmt-name {
	font-weight: 700;
	font-size: 26px;
}

.nbp-home-mgmt-title {
	font-style: italic;
	color: #e0824a;
	font-size: 18px;
}

@media (max-width: 767px) {
	.nbp-home-mgmt-carousel {
		padding-top: 84px;
	}

	.nbp-home-mgmt-photo {
		width: 84px;
		height: 84px;
	}

	.nbp-home-mgmt-name {
		font-size: 18px;
	}

	.nbp-home-mgmt-title {
		font-size: 16px;
	}
}

.nbp-home-mgmt-dots {
    display: flex;
    gap: 8px;
    margin-top: 0px;
    margin-left: 400px;
}

.nbp-home-mgmt-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 0;
	background: rgba(255, 255, 255, 0.4);
	cursor: pointer;
	padding: 0;
}

.nbp-home-mgmt-dot.is-active {
	background: #e0824a;
}

/* Homepage hero "latest news" carousel overlay (stands in for Essential
   Addons for Elementor's Post Carousel widget, which is a paid-tier widget
   and gets silently dropped - unlike the free Post Grid widget used further
   down this page, which still works). The blue rounded card itself (color,
   border-radius, position, width) already comes from the page's own
   Elementor container styling; this only styles the content inside it. */

.nbp-home-news-carousel {
	position: relative;
	padding: 18px 22px;
	color: #fff;
	text-align: left;
}

.nbp-home-news-slide {
	/* Post titles/excerpts vary in length, so slides stay in normal flow
	   (instead of being crossfaded on top of each other with a guessed
	   fixed height) - the card, which has no fixed height of its own,
	   always grows to fit whichever slide is actually showing. */
	display: none;
	animation: nbp-home-news-fade-in 0.5s ease;
}

.nbp-home-news-slide.is-active {
	display: block;
}

@keyframes nbp-home-news-fade-in {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

.nbp-home-news-title {
	display: block;
	color: #fff;
	font-weight: 700;
	font-size: 13px;
	line-height: 1.35;
	text-decoration: none;
	margin-bottom: 5px;
}

.nbp-home-news-title:hover {
	text-decoration: underline;
}

.nbp-home-news-excerpt {
	margin: 0 0 8px;
	font-size: 11px;
	font-weight: 400;
	color: #e4e9f5;
	line-height: 1.35;
}

.nbp-home-news-readmore {
	display: inline-block;
	color: #fff;
	font-weight: 700;
	font-size: 10px;
	letter-spacing: 0.5px;
	text-decoration: none;
	text-transform: uppercase;
}

.nbp-home-news-readmore:hover {
	text-decoration: underline;
}

.nbp-home-news-dots {
	display: flex;
	gap: 6px;
	margin-top: 10px;
}

.nbp-home-news-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	border: 0;
	background: rgba(255, 255, 255, 0.6);
	cursor: pointer;
	padding: 0;
}

.nbp-home-news-dot.is-active {
	background: #e63946;
}

@media (max-width: 767px) {
	.nbp-home-news-carousel {
		padding: 16px 18px;
	}
}
