/* ═══ HERO BANNER — Holographic full-width ═══ */

.tbs-hero-banner {
	position: relative;
	min-height: 92vh;
	display: flex;
	align-items: center;
	overflow: hidden;
	background: linear-gradient(135deg, #e8f4f4 0%, #f0f8ff 50%, #e0f0f0 100%);
}
.tbs-hero-banner__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.tbs-hero-banner__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center right;
}
.tbs-hero-banner__gradient {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
		105deg,
		rgba(255,255,255,0.97) 0%,
		rgba(255,255,255,0.88) 35%,
		rgba(255,255,255,0.4) 55%,
		transparent 75%
	);
	pointer-events: none;
}
.tbs-hero-banner__content {
	position: relative;
	z-index: 3;
	padding: 100px 0 80px;
	width: 100%;
}
.tbs-hero-banner__text {
	max-width: 580px;
}
.tbs-hero-banner__text .tbs-hero__title {
	font-size: clamp(34px, 4.5vw, 52px);
	text-shadow: 0 1px 2px rgba(255,255,255,.8);
}
.tbs-hero-banner__text .tbs-hero__desc {
	color: var(--tbs-text-muted);
	max-width: 520px;
}
.tbs-btn--light {
	background: transparent;
	border-color: var(--tbs-primary);
	color: var(--tbs-primary);
}
.tbs-btn--light:hover {
	background: var(--tbs-primary);
	color: #fff;
}

/* Holographic FX */
.tbs-hero-banner__fx {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	overflow: hidden;
}
.tbs-hero-banner__wave {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 120px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120'%3E%3Cpath d='M0,60 C360,120 720,0 1080,60 C1260,90 1380,100 1440,80 L1440,120 L0,120 Z' fill='rgba(0,91,94,0.08)'/%3E%3Cpath d='M0,80 C360,40 720,100 1080,70 C1260,50 1380,60 1440,50 L1440,120 L0,120 Z' fill='rgba(0,91,94,0.05)'/%3E%3C/svg%3E") bottom center / cover no-repeat;
	animation: waveFlow 8s ease-in-out infinite;
}
@keyframes waveFlow {
	0%, 100% { transform: translateX(0); }
	50% { transform: translateX(-20px); }
}
.tbs-holo-bubble {
	position: absolute;
	border-radius: 50%;
	background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.9), rgba(91,200,255,.15) 50%, rgba(0,91,94,.08));
	border: 1px solid rgba(255,255,255,.6);
	box-shadow: 0 4px 24px rgba(91,200,255,.15), inset 0 0 20px rgba(255,255,255,.5);
}
.tbs-holo-bubble--1 { width: 80px; height: 80px; top: 15%; left: 8%; }
.tbs-holo-bubble--2 { width: 50px; height: 50px; top: 55%; left: 15%; }
.tbs-holo-bubble--3 { width: 36px; height: 36px; top: 30%; left: 42%; }
.tbs-holo-dna { position: absolute; top: 12%; left: 3%; opacity: 0.6; }
.tbs-holo-leaf { position: absolute; font-size: 28px; opacity: 0.5; filter: hue-rotate(160deg); }
.tbs-holo-leaf--1 { top: 8%; right: 12%; }

/* Inner page ultimate layout */
.tbs-page-blocks { position: relative; }
.tbs-block { padding: 80px 0; position: relative; }
.tbs-block--alt { background: var(--tbs-pearl); }
.tbs-block__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.tbs-block__img { border-radius: 20px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,91,94,.12); }
.tbs-block__img img { width: 100%; display: block; transition: transform 0.6s ease; }
.tbs-block__img:hover img { transform: scale(1.04); }
.tbs-features-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 48px; }
.tbs-feature-pill {
	padding: 24px 20px;
	background: #fff;
	border: 1px solid #E8EBED;
	border-radius: 14px;
	text-align: center;
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.tbs-feature-pill:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,91,94,.1); }
.tbs-feature-pill strong { display: block; font-size: 15px; margin-bottom: 6px; color: var(--tbs-primary); }
.tbs-feature-pill span { font-size: 13px; color: var(--tbs-text-muted); }

/* Lenis smooth */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

@media (max-width: 900px) {
	.tbs-hero-banner { min-height: 70vh; }
	.tbs-hero-banner__img { object-position: 70% center; }
	.tbs-hero-banner__gradient {
		background: linear-gradient(to top, rgba(255,255,255,.95) 40%, rgba(255,255,255,.7) 100%);
	}
	.tbs-hero-banner__content { padding: 60px 0 48px; }
	.tbs-block__grid, .tbs-features-row { grid-template-columns: 1fr; }
}
