/* ============ Hero Banner ============ */
.hbp-banner {
	position: relative;
	width: 100%;
	display: flex;
	align-items: center;
	background-size: cover;
	background-position: center;
	background-color: #1a1a1a;
	overflow: hidden;
}

.hbp-bg-video {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0;
}

.hbp-overlay { position: absolute; inset: 0; z-index: 1; }

.hbp-content {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 760px;
	padding: 40px 32px;
	margin: 0 auto;
}
.hbp-content.hbp-align-left { margin-left: 6%; margin-right: auto; text-align: left; }
.hbp-content.hbp-align-center { text-align: center; }
.hbp-content.hbp-align-right { margin-right: 6%; margin-left: auto; text-align: right; }

.hbp-subheading {
	text-transform: uppercase; letter-spacing: .12em; font-size: 13px; font-weight: 600; opacity: .85; margin-bottom: 10px;
}
.hbp-heading { font-size: clamp(28px, 5vw, 52px); line-height: 1.1; margin: 0 0 16px; font-weight: 700; }
.hbp-description { font-size: 17px; line-height: 1.6; margin: 0 0 26px; opacity: .92; }

.hbp-button {
	display: inline-block; padding: 13px 28px; border-radius: 6px; font-weight: 600;
	text-decoration: none; transition: transform .15s ease, opacity .15s ease; cursor: pointer;
}
.hbp-button:hover { transform: translateY(-2px); opacity: .92; }
.hbp-btn-solid   { background: var(--hbp-btn-color, #ff5a1f); color: #fff; }
.hbp-btn-outline { background: transparent; color: inherit; border: 2px solid var(--hbp-btn-color, #ff5a1f); }
.hbp-btn-ghost   { background: rgba(255,255,255,.15); color: inherit; backdrop-filter: blur(4px); }

/* Entrance animation (front-end only) */
.hbp-anim-fade-up .hbp-content   { animation: hbpFadeUp .7s ease both; }
.hbp-anim-fade-in .hbp-content   { animation: hbpFadeIn .7s ease both; }
.hbp-anim-zoom-in .hbp-content   { animation: hbpZoomIn .7s ease both; }
@keyframes hbpFadeUp { from { opacity:0; transform: translateY(24px);} to {opacity:1; transform:none;} }
@keyframes hbpFadeIn { from { opacity:0; } to { opacity:1; } }
@keyframes hbpZoomIn { from { opacity:0; transform: scale(.94);} to {opacity:1; transform:none;} }

/* ============ Slider ============ */
.hbp-slider .hbp-slides { position: relative; width: 100%; height: 100%; min-height: inherit; }
.hbp-slide {
	position: absolute; inset: 0; display: flex; align-items: center;
	background-size: cover; background-position: center;
	opacity: 0; visibility: hidden; transition: opacity .6s ease;
}
.hbp-slide.is-active { opacity: 1; visibility: visible; position: relative; }
.hbp-slider[data-effect="slide"] .hbp-slide {
	transition: transform .6s ease, opacity .6s ease; transform: translateX(100%);
}
.hbp-slider[data-effect="slide"] .hbp-slide.is-active { transform: translateX(0); }
.hbp-slider[data-effect="slide"] .hbp-slide.is-prev { transform: translateX(-100%); }

.hbp-arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
	background: rgba(0,0,0,.35); color: #fff; border: none; width: 44px; height: 44px;
	border-radius: 50%; font-size: 24px; cursor: pointer; line-height: 1;
}
.hbp-arrow:hover { background: rgba(0,0,0,.55); }
.hbp-prev { left: 18px; } .hbp-next { right: 18px; }

.hbp-dots { position: absolute; bottom: 18px; left: 0; right: 0; z-index: 5; display: flex; justify-content: center; gap: 8px; }
.hbp-dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.5); border: none; cursor: pointer; padding: 0; }
.hbp-dot.is-active { background: #fff; }

/* ============ Header ============ */
.hbp-header {
	width: 100%; background: var(--hbp-header-bg, #111); color: var(--hbp-header-text, #fff);
	height: var(--hbp-header-height, 80px); z-index: 100; position: relative;
	transition: background-color .3s ease;
}
.hbp-header.hbp-sticky { position: sticky; top: 0; }
.hbp-header.hbp-transparent { background: transparent; position: absolute; }
.hbp-header.hbp-transparent.hbp-scrolled { background: var(--hbp-header-bg, #111); position: sticky; top: 0; }

.hbp-header-inner {
	max-width: 1200px; margin: 0 auto; height: 100%; padding: 0 24px;
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.hbp-header-logo img { max-height: calc(var(--hbp-header-height, 80px) - 30px); display: block; }
.hbp-logo-text { font-size: 20px; font-weight: 700; color: inherit; }

.hbp-menu { display: flex; gap: 28px; list-style: none; margin: 0; padding: 0; }
.hbp-menu a { color: inherit; text-decoration: none; font-weight: 500; opacity: .9; }
.hbp-menu a:hover { opacity: 1; }

.hbp-header-btn {
	background: var(--hbp-header-accent, #ff5a1f); color: #fff; padding: 10px 20px;
	border-radius: 6px; font-weight: 600; text-decoration: none; white-space: nowrap;
}

.hbp-burger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; }
.hbp-burger span { width: 24px; height: 2px; background: currentColor; }

@media (max-width: 782px) {
	.hbp-header-nav { display: none; }
	.hbp-header-nav.is-open {
		display: block; position: absolute; top: 100%; left: 0; right: 0;
		background: var(--hbp-header-bg, #111); padding: 16px 24px;
	}
	.hbp-header-nav.is-open .hbp-menu { flex-direction: column; gap: 14px; }
	.hbp-burger { display: flex; }
}
