/* ═══ HOLOGRAPHIC 3D — compact cards, contact, iridescent FX ═══ */

/* Section with holo ambient bg */
.tbs-section--holo {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, #f0f8f8 0%, #fff 50%, #f5fafb 100%);
}
.tbs-section--holo > .tbs-container {
	position: relative;
	z-index: 2;
}

/* ── 3D holographic card ── */
.tbs-holo-3d {
	transform-style: preserve-3d;
	transition: transform 0.15s ease-out, box-shadow 0.4s ease;
	will-change: transform;
}
.tbs-holo-3d::before {
	content: '';
	position: absolute;
	inset: -1px;
	border-radius: inherit;
	padding: 1px;
	background: linear-gradient(135deg,
		rgba(91,200,255,.6) 0%,
		rgba(209,185,138,.5) 35%,
		rgba(155,126,222,.4) 65%,
		rgba(46,125,120,.6) 100%);
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	opacity: 0.55;
	pointer-events: none;
	animation: holoBorder 6s ease-in-out infinite;
}
@keyframes holoBorder {
	0%, 100% { opacity: 0.4; filter: hue-rotate(0deg); }
	50% { opacity: 0.85; filter: hue-rotate(25deg); }
}

.tbs-holo-shine {
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.35) 50%, transparent 60%);
	animation: holoShine 4s ease-in-out infinite;
	pointer-events: none;
}
@keyframes holoShine {
	0%, 100% { transform: translateX(-100%); }
	50% { transform: translateX(100%); }
}

/* ── COMPACT SERVICE CARDS ── */
.tbs-svc-compact {
	padding: 18px 16px !important;
	border-radius: 14px !important;
}
.tbs-svc-compact .tbs-svc-card__icon {
	width: 38px !important;
	height: 38px !important;
	margin-bottom: 12px !important;
	border-radius: 10px !important;
}
.tbs-svc-compact .tbs-svc-card__icon::after {
	inset: 8px !important;
}
.tbs-svc-compact h3 {
	font-size: 14px !important;
	margin: 0 0 6px !important;
	line-height: 1.3;
}
.tbs-svc-compact p {
	font-size: 12px !important;
	margin: 0 0 10px !important;
	line-height: 1.5 !important;
}
.tbs-svc-compact .tbs-svc-card__link {
	font-size: 11px !important;
}

.tbs-services-mockup__grid {
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 14px !important;
}

/* ── COMPACT PACKAGE CARDS ── */
.tbs-pkg-compact {
	padding: 16px !important;
	border-radius: 14px !important;
}
.tbs-pkg-compact .tbs-pkg-mockup__thumb {
	width: 44px !important;
	height: 44px !important;
	margin-bottom: 10px !important;
	border-radius: 10px !important;
}
.tbs-pkg-compact h3 {
	font-size: 14px !important;
	margin: 0 0 8px !important;
	line-height: 1.3;
}
.tbs-pkg-compact .tbs-check-list--compact {
	margin-bottom: 10px !important;
}
.tbs-pkg-compact .tbs-check-list--compact li {
	font-size: 11px !important;
	padding: 2px 0 2px 20px !important;
	line-height: 1.4;
}
.tbs-pkg-compact .tbs-pkg-mockup__price {
	font-size: 20px !important;
	margin-bottom: 10px !important;
}
.tbs-pkg-compact .tbs-btn--xs {
	padding: 8px 14px !important;
	font-size: 11px !important;
}

.tbs-packages-mockup__layout {
	grid-template-columns: 1fr 240px !important;
	gap: 20px !important;
}
.tbs-packages-mockup__grid {
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 14px !important;
}
.tbs-packages-mockup__cta {
	border-radius: 14px !important;
	box-shadow: 0 16px 48px rgba(0,91,94,.2), 0 0 40px rgba(91,200,255,.1) !important;
}
.tbs-packages-mockup__cta-img {
	height: 140px !important;
	position: relative;
}
.tbs-packages-mockup__cta-body {
	padding: 16px !important;
}
.tbs-packages-mockup__cta-body h3 {
	font-size: 15px !important;
	margin: 0 0 6px !important;
}
.tbs-packages-mockup__cta-body p {
	font-size: 12px !important;
	margin: 0 0 8px !important;
}
.tbs-packages-mockup__phone {
	font-size: 17px !important;
}
.tbs-btn--light-outline {
	border-color: rgba(255,255,255,.7) !important;
	color: #fff !important;
	margin-top: 12px !important;
	display: inline-block;
	width: 100%;
	text-align: center;
}
.tbs-btn--xs {
	padding: 8px 16px;
	font-size: 12px;
}

/* ── CONTACT HOLOGRAPHIC PAGE ── */
.tbs-page-hero-v3--contact {
	background: linear-gradient(135deg, #d4eded 0%, #eef7f7 50%, #fff 100%);
}

.tbs-contact-holo {
	position: relative;
	padding: 56px 0 80px;
	overflow: hidden;
	background: linear-gradient(180deg, #fff 0%, #f0f8f8 100%);
}
.tbs-contact-holo > .tbs-container {
	position: relative;
	z-index: 2;
}
.tbs-contact-holo__hero {
	text-align: center;
	max-width: 560px;
	margin: 0 auto 40px;
}
.tbs-contact-holo__hero p {
	color: var(--tbs-text-muted);
	font-size: 15px;
	line-height: 1.7;
	margin: 12px 0 0;
}

.tbs-contact-holo__layout {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 24px;
	align-items: start;
	margin-bottom: 28px;
}

.tbs-contact-holo__cards {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.tbs-contact-chip {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	text-decoration: none;
	color: inherit;
	border-radius: 14px;
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}
a.tbs-contact-chip:hover {
	transform: translateY(-3px);
	box-shadow: var(--holo-shadow-lg);
}
.tbs-contact-chip__icon {
	font-size: 22px;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--holo-gradient-soft);
	border-radius: 12px;
	flex-shrink: 0;
}
.tbs-contact-chip strong {
	display: block;
	font-size: 13px;
	color: var(--tbs-primary);
	margin-bottom: 2px;
}
.tbs-contact-chip span {
	font-size: 12px;
	color: var(--tbs-text-muted);
	line-height: 1.4;
}

.tbs-holo-form-wrap {
	padding: 28px 24px !important;
	position: relative;
	overflow: hidden;
}
.tbs-holo-form-glow {
	position: absolute;
	top: -50%;
	right: -30%;
	width: 60%;
	height: 100%;
	background: radial-gradient(circle, rgba(91,200,255,.15), transparent 70%);
	animation: holoDrift3 12s ease-in-out infinite;
	pointer-events: none;
}
.tbs-holo-form-wrap h3 {
	margin: 0 0 20px;
	font-size: 18px;
	color: var(--tbs-primary);
	position: relative;
	z-index: 1;
}
.tbs-holo-form-wrap .tbs-enquiry-form {
	position: relative;
	z-index: 1;
}
.tbs-contact-holo__form .tbs-form-grid--simple {
	grid-template-columns: 1fr !important;
}
.tbs-contact-holo__form .tbs-form-group input,
.tbs-contact-holo__form .tbs-form-group select,
.tbs-contact-holo__form .tbs-form-group textarea {
	background: rgba(255,255,255,.7);
	border: 1px solid rgba(0,91,94,.15);
	border-radius: 10px;
	transition: border-color 0.3s, box-shadow 0.3s;
}
.tbs-contact-holo__form .tbs-form-group input:focus,
.tbs-contact-holo__form .tbs-form-group select:focus,
.tbs-contact-holo__form .tbs-form-group textarea:focus {
	border-color: var(--tbs-primary);
	box-shadow: 0 0 0 3px rgba(0,91,94,.1);
	outline: none;
}

.tbs-contact-holo__map {
	padding: 12px !important;
	overflow: hidden;
}

/* Floating particles enhancement */
.tbs-particle {
	animation-duration: 8s !important;
}

@media (max-width: 900px) {
	.tbs-services-mockup__grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
	.tbs-packages-mockup__layout {
		grid-template-columns: 1fr !important;
	}
	.tbs-contact-holo__layout {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 520px) {
	.tbs-services-mockup__grid {
		grid-template-columns: 1fr !important;
	}
	.tbs-packages-mockup__grid {
		grid-template-columns: 1fr !important;
	}
}
