/* MEBB Hero Banner - structural styles (colors/fonts/spacing are controlled live via Elementor) */

.mebb-hb {
	position: relative;
	width: 100%;
	box-sizing: border-box;
	overflow: hidden;
}

.mebb-hb * {
	box-sizing: border-box;
}

.mebb-hb__inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: row;
	align-items: center;
	width: 100%;
}

/* ============================================
 * Background Effects
 * ============================================ */

/* Glossy / Glass / Glow overlay */
.mebb-hb__fx-glossy {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	--mebb-fx-color: #ffffff;
}

.mebb-hb__fx-glossy--glossy {
	background: linear-gradient(
		115deg,
		transparent 20%,
		var(--mebb-fx-color) 45%,
		transparent 60%
	);
	mix-blend-mode: overlay;
}

.mebb-hb__fx-glossy--glass {
	background: var(--mebb-fx-color);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border-bottom: 1px solid var(--mebb-fx-color);
}

.mebb-hb__fx-glossy--glow {
	background:
		radial-gradient(circle at 15% 20%, var(--mebb-fx-color) 0%, transparent 40%),
		radial-gradient(circle at 85% 75%, var(--mebb-fx-color) 0%, transparent 45%);
	filter: blur(30px);
}

/* Lines / light effect — Style 1 (warm) */
.mebb-hb__fx-lines1 {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	color: var(--mebb-fx1-color, #ff9a5a);
}

.mebb-hb__fx-lines1 svg {
	width: 100%;
	height: 100%;
}

/* Lines + stars effect — Style 2 (cool) */
.mebb-hb__fx-lines2 {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	color: var(--mebb-fx2-color, #ffffff);
}

.mebb-hb__fx-lines2 svg {
	width: 100%;
	height: 100%;
}

.mebb-hb__fx-stars {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	--mebb-fx2-star-color: #ffffff;
	background-image:
		radial-gradient(1.5px 1.5px at 8% 22%, var(--mebb-fx2-star-color), transparent 100%),
		radial-gradient(1.5px 1.5px at 18% 68%, var(--mebb-fx2-star-color), transparent 100%),
		radial-gradient(2px 2px at 27% 15%, var(--mebb-fx2-star-color), transparent 100%),
		radial-gradient(1.5px 1.5px at 38% 45%, var(--mebb-fx2-star-color), transparent 100%),
		radial-gradient(2px 2px at 52% 78%, var(--mebb-fx2-star-color), transparent 100%),
		radial-gradient(1.5px 1.5px at 63% 30%, var(--mebb-fx2-star-color), transparent 100%),
		radial-gradient(2px 2px at 72% 60%, var(--mebb-fx2-star-color), transparent 100%),
		radial-gradient(1.5px 1.5px at 82% 20%, var(--mebb-fx2-star-color), transparent 100%),
		radial-gradient(2px 2px at 91% 50%, var(--mebb-fx2-star-color), transparent 100%),
		radial-gradient(1.5px 1.5px at 95% 82%, var(--mebb-fx2-star-color), transparent 100%),
		radial-gradient(1.5px 1.5px at 12% 88%, var(--mebb-fx2-star-color), transparent 100%),
		radial-gradient(1.5px 1.5px at 45% 10%, var(--mebb-fx2-star-color), transparent 100%);
	background-repeat: no-repeat;
}

.mebb-hb__fx-stars--twinkle {
	animation: mebb-hb-twinkle 3.2s ease-in-out infinite alternate;
}

@keyframes mebb-hb-twinkle {
	0%   { opacity: 0.35; }
	50%  { opacity: 0.9; }
	100% { opacity: 0.5; }
}

@media (prefers-reduced-motion: reduce) {
	.mebb-hb__fx-stars--twinkle {
		animation: none;
	}
}

/* ============================================
 * Motion & Micro-interactions
 * ============================================ */

/* Scroll reveal — only applies once JS adds the init class, so content
   stays visible by default if JS fails to load. */
.mebb-hb--reveal-init .mebb-hb__badge,
.mebb-hb--reveal-init .mebb-hb__heading,
.mebb-hb--reveal-init .mebb-hb__description,
.mebb-hb--reveal-init .mebb-hb__buttons,
.mebb-hb--reveal-init .mebb-hb__media {
	opacity: 0;
	transform: translateY(var(--mebb-reveal-distance, 24px));
	transition: opacity var(--mebb-reveal-duration, 600ms) ease, transform var(--mebb-reveal-duration, 600ms) ease;
}

.mebb-hb--reveal-init .mebb-hb__badge      { transition-delay: calc(var(--mebb-reveal-stagger, 120ms) * 0); }
.mebb-hb--reveal-init .mebb-hb__heading    { transition-delay: calc(var(--mebb-reveal-stagger, 120ms) * 1); }
.mebb-hb--reveal-init .mebb-hb__description{ transition-delay: calc(var(--mebb-reveal-stagger, 120ms) * 2); }
.mebb-hb--reveal-init .mebb-hb__buttons    { transition-delay: calc(var(--mebb-reveal-stagger, 120ms) * 3); }
.mebb-hb--reveal-init .mebb-hb__media      { transition-delay: calc(var(--mebb-reveal-stagger, 120ms) * 4); }

.mebb-hb--reveal-init.mebb-hb--revealed .mebb-hb__badge,
.mebb-hb--reveal-init.mebb-hb--revealed .mebb-hb__heading,
.mebb-hb--reveal-init.mebb-hb--revealed .mebb-hb__description,
.mebb-hb--reveal-init.mebb-hb--revealed .mebb-hb__buttons,
.mebb-hb--reveal-init.mebb-hb--revealed .mebb-hb__media {
	opacity: 1;
	transform: none;
}

/* Image tilt / mouse parallax */
.mebb-hb[data-mebb-tilt="yes"] .mebb-hb__media {
	perspective: 1000px;
}

.mebb-hb[data-mebb-tilt="yes"] .mebb-hb__image-wrap {
	transition: transform 0.15s ease-out;
	transform-style: preserve-3d;
	will-change: transform;
}

/* Floating stat cards */
.mebb-hb--float-stats .mebb-hb__stat-card {
	animation: mebb-hb-float var(--mebb-float-speed, 3s) ease-in-out infinite;
	animation-delay: calc(var(--mebb-i, 0) * 0.25s);
}

@keyframes mebb-hb-float {
	0%, 100% { transform: var(--mebb-base-transform, none) translateY(0); }
	50%      { transform: var(--mebb-base-transform, none) translateY(calc(-1 * var(--mebb-float-distance, 10px))); }
}

/* Button shine sweep */
.mebb-hb--btn-shine .mebb-hb__btn {
	position: relative;
	overflow: hidden;
}

.mebb-hb--btn-shine .mebb-hb__btn::after {
	content: "";
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.55), transparent);
	transform: skewX(-20deg);
	transition: left 0.65s ease;
	pointer-events: none;
}

.mebb-hb--btn-shine .mebb-hb__btn:hover::after {
	left: 130%;
}

/* Animated gradient background */
.mebb-hb--bg-gradient-anim {
	background-size: 200% 200%;
	animation: mebb-hb-bg-shift var(--mebb-bg-anim-speed, 8s) ease infinite;
}

@keyframes mebb-hb-bg-shift {
	0%   { background-position: 0% 50%; }
	50%  { background-position: 100% 50%; }
	100% { background-position: 0% 50%; }
}

@media (prefers-reduced-motion: reduce) {
	.mebb-hb--reveal-init .mebb-hb__badge,
	.mebb-hb--reveal-init .mebb-hb__heading,
	.mebb-hb--reveal-init .mebb-hb__description,
	.mebb-hb--reveal-init .mebb-hb__buttons,
	.mebb-hb--reveal-init .mebb-hb__media {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.mebb-hb--float-stats .mebb-hb__stat-card,
	.mebb-hb--bg-gradient-anim {
		animation: none;
	}

	.mebb-hb[data-mebb-tilt="yes"] .mebb-hb__image-wrap {
		transition: none;
	}
}

.mebb-hb__content {
	flex: 1 1 50%;
	min-width: 0;
}

.mebb-hb__media {
	flex: 1 1 50%;
	min-width: 0;
	display: flex;
	justify-content: center;
}

/* Badge */
.mebb-hb__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 20px;
}

.mebb-hb__badge-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}

/* Heading */
.mebb-hb__heading {
	margin: 0 0 20px 0;
	line-height: 1.15;
}

.mebb-hb__heading-highlight {
	display: inline;
}

/* Description */
.mebb-hb__description {
	margin: 0 0 30px 0;
	line-height: 1.6;
	max-width: 560px;
}

/* Buttons */
.mebb-hb__buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
}

.mebb-hb__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-decoration: none;
	border: 1px solid transparent;
	cursor: pointer;
	white-space: nowrap;
	transition: all 0.25s ease;
}

.mebb-hb__btn i,
.mebb-hb__btn svg {
	font-size: 1.1em;
	width: 1.1em;
	height: 1.1em;
}

/* Image / media */
.mebb-hb__image-wrap {
	position: relative;
	max-width: 100%;
}

.mebb-hb__image-wrap img {
	display: block;
	width: 100%;
	height: auto;
}

.mebb-hb__image-shape {
	position: absolute;
	inset: 6% 8%;
	z-index: 0;
	border-radius: 30px;
	opacity: 0.9;
}

.mebb-hb__image-wrap img {
	position: relative;
	z-index: 1;
}

/* Stat cards */
.mebb-hb__stat-card {
	position: absolute;
	z-index: 2;
	text-align: left;
	line-height: 1.1;
	white-space: nowrap;
	transform: var(--mebb-base-transform, none);
}

.mebb-hb__stat-number-row {
	display: flex;
	align-items: flex-start;
}

.mebb-hb__stat-number {
	font-size: 2.2em;
	font-weight: 700;
	line-height: 1;
}

.mebb-hb__stat-suffix {
	font-size: 1.2em;
	font-weight: 600;
	margin-left: 2px;
}

.mebb-hb__stat-label {
	margin-top: 6px;
	font-size: 0.85em;
	white-space: nowrap;
}

/* Stat card positions */
.mebb-hb__stat-pos-top-left     { top: 5%;  left: -8%; }
.mebb-hb__stat-pos-top-right    { top: 5%;  right: -8%; }
.mebb-hb__stat-pos-middle-right { top: 45%; right: -12%; --mebb-base-transform: translateY(-50%); }
.mebb-hb__stat-pos-middle-left  { top: 45%; left: -12%;  --mebb-base-transform: translateY(-50%); }
.mebb-hb__stat-pos-bottom-center{ bottom: 2%; left: 50%; --mebb-base-transform: translateX(-50%); }
.mebb-hb__stat-pos-bottom-left  { bottom: 5%; left: -8%; }
.mebb-hb__stat-pos-bottom-right { bottom: 5%; right: -8%; }

/* Responsive: tablet */
@media (max-width: 1024px) {
	.mebb-hb__stat-pos-top-left     { left: -4%; }
	.mebb-hb__stat-pos-top-right    { right: -4%; }
	.mebb-hb__stat-pos-middle-right { right: -6%; }
	.mebb-hb__stat-pos-middle-left  { left: -6%; }
	.mebb-hb__stat-pos-bottom-left  { left: -4%; }
	.mebb-hb__stat-pos-bottom-right { right: -4%; }
}

/* Responsive: mobile - stack columns, keep cards inside image bounds */
@media (max-width: 767px) {
	.mebb-hb__inner {
		flex-direction: column-reverse;
	}

	.mebb-hb__content,
	.mebb-hb__media {
		flex: 1 1 100%;
		width: 100%;
	}

	.mebb-hb__buttons {
		flex-direction: column;
		align-items: stretch;
	}

	.mebb-hb__buttons .mebb-hb__btn {
		width: 100%;
	}

	.mebb-hb__stat-card {
		white-space: normal;
	}

	.mebb-hb__stat-pos-top-left     { top: 8%;  left: 2%; }
	.mebb-hb__stat-pos-top-right    { top: 8%;  right: 2%; }
	.mebb-hb__stat-pos-middle-right { top: 45%; right: 2%; }
	.mebb-hb__stat-pos-middle-left  { top: 45%; left: 2%; }
	.mebb-hb__stat-pos-bottom-center{ bottom: 6%; left: 50%; }
	.mebb-hb__stat-pos-bottom-left  { bottom: 6%; left: 2%; }
	.mebb-hb__stat-pos-bottom-right { bottom: 6%; right: 2%; }
}
