/* ==========================================================================
   Brightside — Responsive (Truvita layout)
   ========================================================================== */

@media (min-width: 640px) {
	.bs-feature-row {
		grid-template-columns: repeat(3, 1fr);
	}

	.bs-icon-box-row {
		grid-template-columns: 1fr;
	}

	.bs-service-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.bs-dual-cards {
		grid-template-columns: repeat(2, 1fr);
	}

	.bs-form__row {
		grid-template-columns: repeat(2, 1fr);
	}

	.bs-testimonial-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.bs-testimonial-slider__viewport {
		min-height: 14rem;
	}

	.bs-footer__grid {
		grid-template-columns: 1.5fr 1fr;
		align-items: start;
	}

	.bs-why-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.bs-blog-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.bs-contact-grid {
		grid-template-columns: 1fr 1fr;
	}

	.bs-checklist--grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 768px) {
	.bs-header__nav {
		display: flex;
	}

	.bs-header__actions {
		display: flex;
	}

	.bs-mobile-toggle {
		display: none;
	}

	.bs-split {
		grid-template-columns: 1fr 1fr;
	}

	.bs-split--reverse .bs-split__media {
		order: 0;
	}

	.bs-split__content {
		padding: clamp(3rem, 5vw, 5rem);
	}

	.bs-cta-band__grid {
		grid-template-columns: 1fr 1fr;
	}

	.bs-pricing-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.bs-pricing-card--featured {
		transform: scale(1.04);
	}

	.bs-sticky-cta {
		display: none;
	}

	body.bs-home {
		padding-bottom: 0;
	}

	/* Hero desktop offsets — shift media left, inset copy from right edge */
	.bs-banner--hero.bs-banner--subject-left {
		background-position: 20% center;
	}

	.bs-banner--hero .bs-banner__media {
		width: calc(100% + var(--hero-media-offset, 0px) * -1);
		left: var(--hero-media-offset, 0);
		right: auto;
		background-position: 20% center;
	}

	.bs-banner--hero.bs-banner--subject-left .bs-banner__poster,
	.bs-banner--hero.bs-banner--subject-left .bs-banner__video {
		object-position: 20% center;
	}

	.bs-banner--hero.bs-banner--copy-right .bs-banner__content {
		margin-right: var(--hero-content-offset, 150px);
	}
}

@media (min-width: 992px) {
	.bs-service-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.bs-testimonial-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.bs-testimonial-card--wide {
		grid-column: span 2;
	}

	.bs-footer__grid {
		grid-template-columns: 2fr 1fr 1fr;
	}

	.bs-icon-box-row {
		grid-template-columns: 1fr;
	}

	.bs-why-grid {
		grid-template-columns: repeat(4, 1fr);
	}

	.bs-blog-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.bs-service-detail__intro {
		grid-template-columns: 1fr 1fr;
	}

	.bs-service-layout {
		grid-template-columns: 1fr 320px;
	}
}

@media (min-width: 1200px) {
	.bs-service-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* Mobile adjustments — stacked media + content card layout
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	:root {
		--header-height: 72px;
		--banner-media-height: clamp(320px, 55vh, 420px);
	}

	.bs-marquee__item img {
		height: min(280px, 50vw);
		max-height: 280px;
	}

	.bs-marquee__track {
		gap: 1rem;
	}

	.bs-topbar__label {
		display: none;
	}

	.bs-topbar__link {
		font-size: 0.75rem;
	}

	/* Banner: explicit media frame on top, content card below */
	.bs-banner {
		min-height: auto;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		background-image: none;
		overflow: visible;
	}

	.bs-banner--video {
		background-image: none;
	}

	.bs-banner__mobile-frame {
		display: block;
		flex-shrink: 0;
		position: relative;
		width: 100%;
		min-height: max(55vh, 320px);
		aspect-ratio: 16 / 9;
		overflow: hidden;
		background-color: var(--brightside-charcoal);
		background-image: var(--banner-image);
		background-size: cover;
		background-position: center;
	}

	.bs-banner--subject-left .bs-banner__mobile-frame {
		background-position: left center;
	}

	.bs-banner--subject-right .bs-banner__mobile-frame {
		background-position: right center;
	}

	.bs-banner__mobile-frame > .bs-banner__overlay {
		inset: auto 0 0 0;
		height: 40%;
		background: linear-gradient(180deg, transparent 0%, rgba(56, 66, 74, 0.3) 100%) !important;
	}

	.bs-banner__media {
		position: absolute;
		inset: 0;
		flex: none;
		width: 100%;
		height: 100%;
		min-height: 100%;
	}

	.bs-banner__poster,
	.bs-banner__video {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		display: block;
		object-fit: cover;
		object-position: center;
	}

	.bs-banner--subject-left .bs-banner__poster,
	.bs-banner--subject-left .bs-banner__video {
		object-position: left center;
	}

	.bs-banner--subject-right .bs-banner__poster,
	.bs-banner--subject-right .bs-banner__video {
		object-position: right center;
	}

	/* Testimonials: photo above quote on small screens */
	.bs-testimonial-slide__inner {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
		gap: 1.25rem;
	}

	.bs-testimonial-slide__photo {
		order: -1;
	}

	.bs-testimonial-avatar {
		width: 128px;
		height: 128px;
	}

	.bs-testimonial-slide__author {
		align-items: center;
	}

	.bs-testimonial-slide__quote {
		margin-bottom: 1.25rem;
	}

	.bs-banner .bs-container,
	.bs-banner--copy-right .bs-container,
	.bs-banner--copy-left .bs-container {
		flex: 1 1 auto;
		display: block;
		position: relative;
		z-index: 2;
		padding-top: 0;
		padding-bottom: 2rem;
		justify-content: unset;
	}

	.bs-banner__content,
	.bs-banner--copy-right .bs-banner__content,
	.bs-banner--copy-left .bs-banner__content {
		max-width: none;
		width: 100%;
		margin: 0;
		padding: 1.75rem 1.25rem;
		background: var(--brightside-cream);
		color: var(--brightside-charcoal);
		border-radius: var(--radius-md) var(--radius-md) 0 0;
		box-shadow: 0 -8px 32px rgba(56, 66, 74, 0.1);
		backdrop-filter: none;
	}

	.bs-banner .bs-heading,
	.bs-banner .bs-heading--light {
		color: var(--brightside-charcoal);
	}

	.bs-banner .bs-text,
	.bs-banner .bs-text--light {
		color: var(--brightside-slate);
	}

	.bs-banner .bs-label,
	.bs-banner .bs-label--light {
		color: var(--brightside-aqua);
	}

	.bs-banner .bs-checklist li,
	.bs-banner .bs-checklist--light li {
		color: var(--brightside-slate);
	}

	.bs-banner .bs-checklist li::before {
		background: var(--brightside-aqua);
	}

	.bs-banner .bs-checklist--light li::before {
		background: var(--brightside-sun);
	}

	.bs-banner .bs-icon-box {
		background: var(--brightside-white);
		border: 1px solid rgba(56, 66, 74, 0.08);
		backdrop-filter: none;
	}

	.bs-banner .bs-icon-box h5 {
		color: var(--brightside-charcoal);
	}

	.bs-banner .bs-dual-card {
		background: var(--brightside-white);
		border: 1px solid rgba(56, 66, 74, 0.08);
	}

	.bs-banner .bs-dual-card h4 {
		color: var(--brightside-charcoal);
	}

	.bs-banner .bs-dual-card p {
		color: var(--brightside-slate);
	}

	.bs-banner .bs-tag {
		background: rgba(33, 191, 212, 0.12);
		color: var(--brightside-teal);
	}

	.bs-cta-band .bs-offer-tag {
		color: var(--brightside-coral);
	}

	.bs-cta-band .bs-price-display__amount {
		color: var(--brightside-charcoal);
	}

	.bs-cta-band .bs-price-display__note,
	.bs-cta-band .bs-price-display__regular {
		color: var(--brightside-slate);
	}

	/* Hero: media frame + content card + feature row below */
	.bs-hero.bs-banner {
		min-height: auto;
	}

	.bs-hero__body {
		flex: 0 1 auto;
		padding-block: 0;
		align-items: stretch;
	}

	.bs-hero__title {
		color: var(--brightside-charcoal);
	}

	.bs-hero .bs-banner__content,
	.bs-hero .bs-banner__content.bs-hero__content {
		background: var(--brightside-cream);
		color: var(--brightside-charcoal);
		padding-block: 1.75rem;
	}

	.bs-hero .bs-banner__content .bs-label {
		color: var(--brightside-aqua);
	}

	.bs-hero .bs-banner__content .bs-lead {
		color: var(--brightside-slate);
	}

	.bs-hero .bs-trust-line {
		color: var(--brightside-slate);
	}

	.bs-hero__features {
		margin-top: 0;
		padding: 1.25rem 0 2.5rem;
		background: var(--brightside-white);
	}

	.bs-btn-group,
	.bs-btn-group:has(> .bs-btn:nth-child(2):last-child) {
		grid-template-columns: 1fr;
		width: min(100%, 440px);
	}

	.bs-btn-group .bs-btn {
		width: 100%;
		min-height: 52px;
	}

	.bs-split__content {
		padding-block: 2.5rem;
	}

	.bs-pricing-card--featured {
		order: -1;
	}

	.bs-sticky-cta {
		display: block;
	}

	body.bs-home {
		padding-bottom: 72px;
	}

	.bs-final-cta__inner {
		text-align: center;
		margin-inline: auto;
	}

	#final-cta .bs-btn-group {
		justify-content: center;
		margin-inline: auto;
	}
}

@media (max-width: 479px) {
	.bs-logo {
		height: 42px;
		max-width: 180px;
	}

	.bs-feature-card {
		padding: 1.5rem 1.25rem;
	}

	.bs-feature-card__num {
		font-size: 2.25rem;
	}

	.bs-form-panel {
		padding: 1.25rem;
	}

	.bs-pricing-card {
		padding: 2rem 1.5rem;
	}

	.bs-pricing-card__amount {
		font-size: 2.25rem;
	}
}

/* Scroll video & parallax — reduced motion: keep poster visible, disable video scrub */
@media (prefers-reduced-motion: reduce) {
	.bs-banner--video .bs-banner__video {
		display: none;
	}

	.bs-banner--video .bs-banner__poster {
		opacity: 1 !important;
	}

	.bs-banner--video {
		background-image: var(--banner-image);
		background-size: cover;
		background-position: center;
	}

	.bs-banner__mobile-frame {
		background-image: var(--banner-image);
	}

	.bs-parallax-layer,
	.bs-blog-card__media,
	.bs-split__media {
		transform: none !important;
		will-change: auto;
	}

	.bs-banner:not(.bs-banner--video) {
		background-position: center !important;
	}
}
