/* Align homepage layout edges with the CTA's standard container. */
.home .main-container .banner-slider,
.home .main-container .section-logos > .section-narrow,
.home .main-container .logo-carousel-shell,
.home .main-container .home-solutions__inner,
.home .main-container .home-audience-intro > .row,
.home .main-container .home-audience-cards__grid,
.home .main-container .sol-page .grid-container,
.home .main-container .section-related-posts > .section-standard {
	width: var(--width-standard-default);
	max-width: var(--width-standard-max);
	margin-left: auto;
	margin-right: auto;
}

/* The shared Solutions grid adds gutters inside its container; remove those
   here so the visible process panel and slider align with the CTA edges. */
.home .main-container .sol-page .grid-container {
	padding-left: 0;
	padding-right: 0;
}

.home .main-container .logo-carousel-shell .logos {
	width: 100%;
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

/* Keep slide shadows outside the standard grid, so the visible hero card
   aligns with the CTA while each slide retains its scroll-snap spacing. */
.home .main-container .banner-slider {
	--hero-shadow-gutter: min(32px, 4vw);
}
.home .main-container .banner-slider__viewport {
	width: calc(100% + 2 * var(--hero-shadow-gutter));
	margin-left: calc(-1 * var(--hero-shadow-gutter));
}
.home .main-container .banner-slider__slide {
	padding-left: var(--hero-shadow-gutter);
	padding-right: var(--hero-shadow-gutter);
}

/* Shared typography for every homepage layout, including Solutions embeds.
   Important sizes override legacy text utilities and inline template styles. */
.home .main-container {
	--home-body-size: clamp(16px, 1.4vw, 18px);
	--home-eyebrow-gap: 16px;
	--home-intro-gap: 22px;
}
.home .main-container h2 {
	font-family: var(--font-secondary);
	font-size: var(--text-xxl) !important;
	font-weight: var(--text-black);
	line-height: 1.12;
	letter-spacing: -.04em;
	-webkit-text-stroke: 0;
	margin-top: 0;
	margin-bottom: var(--home-intro-gap);
}
.home .main-container h2 :where(span, strong, em) {
	font-family: inherit;
	font-size: inherit !important;
	line-height: inherit;
	letter-spacing: inherit;
}
.home .main-container p:not(:where(#madlibs *, .ai-chat-demo *)),
.home .main-container .home-solutions__intro,
.home .main-container .home-audience-intro > .section-narrow > .text-lg,
.home .main-container .home-audience-card .excerpt,
.home .main-container .section-related-posts > .section-narrow .text-lg,
.home .main-container .section-logos > .section-narrow > h3 {
	font-family: var(--font-secondary);
	font-size: var(--home-body-size) !important;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: normal;
}
/* Eyebrows and numbered labels share a separate, consistent label style. */
.home .main-container p:is(
	.eyebrow, .logos-eyebrow, .two-column-eyebrow,
	.home-solutions__eyebrow, .home-solutions__label, .home-audience-card__label,
	.banner-slider__eyebrow, .sol-process__eyebrow, .sol-process-v2__eyebrow,
	.sol-cases__eyebrow, .sol-cases__header-eyebrow, .sol-process-v2-card__name
) {
	font-size: 12px !important;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .12em;
	text-transform: uppercase;
}

/* One spacing rhythm for layout headers, including both sliders and embeds.
   The heading owns the introduction gap; wrappers must not add another gap. */
.home .main-container p:is(
	.eyebrow, .logos-eyebrow, .two-column-eyebrow,
	.home-solutions__eyebrow, .banner-slider__eyebrow,
	.sol-process__eyebrow, .sol-process-v2__eyebrow,
	.sol-cases__eyebrow, .sol-cases__header-eyebrow
) {
	margin-top: 0;
	margin-bottom: var(--home-eyebrow-gap);
}
.home .main-container .banner-slider__title {
	margin-top: 0;
	margin-bottom: var(--home-intro-gap);
}
.home .main-container .home-solutions__header {
	row-gap: 0;
}
.home .main-container :is(
	.home-solutions__intro, .sol-process-v2__intro,
	.sol-cases__header-content, .sol-cases__subtitle, .banner-slider__subtitle
),
.home .main-container h2 + :is(p, h3, .text-lg) {
	margin-top: 0;
}
.home .main-container :is(
	.home-solutions__intro, .sol-process-v2__intro,
	.home-audience-intro > .section-narrow > .text-lg,
	.section-related-posts > .section-narrow .text-lg
) > :first-child {
	margin-top: 0;
}

/* Use one desktop card height for every hero slide. */
@media (min-width: 901px) {
	.home .main-container .banner-slider__slide-card {
		height: clamp(600px, 48vw, 740px);
		align-items: stretch;
		display: grid;
		grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
		gap: clamp(16px, 3vw, 40px);
	}
	.home .main-container .banner-slider__slide-card .banner-slider__slide-inner,
	.home .main-container .banner-slider__slide-card--split .banner-slider__chat-col {
		min-width: 0;
		max-width: none;
	}
}
.home .main-container .banner-slider__slide-card .banner-slider__slide-inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
}

/* The fixed header ends at 95px; the slide's 16px shadow gutter leaves
   a 6px visible gap when the section starts with 85px of clearance. */
.home .main-container > .section-banner-slider {
	padding-top: 85px;
	margin-top: 0;
}

/* Mobile cards share the tallest slide's natural height without clipping copy. */
@media (max-width: 900px) {
	.home .main-container .banner-slider__slide { align-items: stretch; }
	.home .main-container .banner-slider__slide-card { height: auto; }
	.home .main-container .banner-slider__slide-card .banner-slider__slide-inner {
		width: 100%;
		min-width: 0;
		max-width: none;
	}
}

/* Match the login button to the visible hero card's standard-grid edge. */
.home .header-login-btn {
	right: max(calc((100vw - var(--width-standard-default)) / 2), calc((100vw - var(--width-standard-max)) / 2));
}

/* Keep the desktop navigation clear of Login before the 1200px mobile switch. */
@media (min-width: 1201px) and (max-width: 1500px) {
	.home header #logo {
		width: 210px;
		max-width: 210px;
		padding-left: 0;
	}
	.home header .mega-menu-wrap #mega-menu-max_mega_menu_1 > li:nth-child(3) {
		margin-right: 250px !important;
	}
	.home header #mega-menu-wrap-max_mega_menu_1 #mega-menu-max_mega_menu_1 > li.mega-menu-item > a.mega-menu-link {
		padding-left: 10px;
		padding-right: 10px;
	}
}

/* Temporarily hide the homepage audience selector. */
.home #madlibs { display: none !important; }
