/* Mobile — prevent horizontal overflow & keep layout in viewport */

html {
	overflow-x: clip;
	max-width: 100%;
}

body.bs-page {
	overflow-x: clip;
	width: 100%;
	max-width: 100%;
	position: relative;
}

body.bs-page #main,
body.bs-page main {
	overflow-x: clip;
	width: 100%;
	max-width: 100%;
}

body.bs-page .bs-header,
body.bs-page .bs-hero,
body.bs-page .bs-section,
body.bs-page .bs-footer {
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
}

@media (max-width: 960px) {
	:root {
		--bs-header-offset: calc(max(12px, env(safe-area-inset-top, 12px)) + 72px);
	}

	/* Fixed header on phone */
	body.bs-page .bs-header {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		padding-top: max(12px, env(safe-area-inset-top, 12px)) !important;
		background: rgba(0, 0, 0, 0.97) !important;
		backdrop-filter: blur(10px);
		-webkit-backdrop-filter: blur(10px);
		z-index: 200 !important;
	}

	.bs-header__inner {
		min-height: 60px;
		padding: 8px 0 12px;
	}

	.bs-nav {
		top: var(--bs-header-offset);
		z-index: 199;
	}

	.bs-wrap {
		padding-inline: 20px;
		max-width: 100%;
		box-sizing: border-box;
	}

	/* Hero — full screen below header, content vertically centered */
	.bs-hero.bs-hero--cover {
		display: flex !important;
		flex-direction: column !important;
		padding-top: var(--bs-header-offset) !important;
		margin-top: 0 !important;
		min-height: 100svh !important;
		min-height: 100dvh !important;
		box-sizing: border-box !important;
		overflow: hidden !important;
	}

	.bs-hero__bg {
		inset: 0 !important;
		transform: none !important;
	}

	.bs-hero--cover .bs-hero__wrap {
		flex: 1 !important;
		display: flex !important;
		flex-direction: column !important;
		justify-content: center !important;
		align-items: stretch !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 0 !important;
		padding: 36px 0 56px !important;
		overflow: hidden !important;
	}

	.bs-hero--cover .bs-hero__inner.bs-hero__inner--solo {
		display: block !important;
		grid-template-columns: 1fr !important;
		align-items: stretch !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		min-height: 0 !important;
		gap: 0 !important;
	}

	.bs-hero__inner--solo .bs-hero__content {
		display: flex !important;
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 20px !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.bs-hero__tag {
		margin: 0 !important;
	}

	.bs-hero__title {
		margin: 0 !important;
	}

	.bs-hero__lead {
		margin: 0 !important;
		max-width: 100% !important;
	}

	.bs-hero__ctas {
		gap: 20px !important;
		row-gap: 16px !important;
		margin-bottom: 0 !important;
	}

	/* Dimensions orbit */
	.bs-dims-orbit-wrap {
		overflow: hidden !important;
		max-width: min(100%, 360px);
		margin-inline: auto;
	}

	.bs-section--dims .bs-dims-wrap {
		padding: 32px 20px;
		margin-inline: 0;
	}

	.bs-dims-stage {
		overflow: hidden;
	}

	/* Services marquees */
	.bs-services-sliders {
		width: 100%;
		max-width: 100%;
		overflow: hidden;
	}

	.bs-services-marquee {
		width: 100%;
		max-width: 100%;
	}

	.bs-services-marquee .bs-service-card {
		flex: 0 0 min(280px, 85vw);
		width: min(280px, 85vw);
		min-width: 0;
		max-width: none;
	}

	/* About */
	.bs-section--about {
		overflow: hidden;
	}

	.bs-about__marq {
		max-width: 100%;
	}

	/* Footer */
	.bs-footer__top {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.bs-footer__brand img {
		max-width: min(260px, 100%);
	}
}

@media (max-width: 640px) {
	.bs-wrap {
		padding-inline: 16px;
	}

	.bs-services-marquee .bs-service-card {
		flex: 0 0 min(260px, 88vw);
		width: min(260px, 88vw);
	}

	.bs-hero__title {
		font-size: clamp(1.65rem, 8vw, 2.25rem);
	}

	.bs-hero__ctas {
		gap: 24px;
		row-gap: 20px;
	}
}
