/*
 * Task 45 homepage customer journey.
 * Page-specific composition only; tokens and shared components remain owned
 * by main.css/components.css.
 */

.home .component-hero {
	padding-top: var(--space-64);
	padding-bottom: var(--space-64);
}

.home .component-hero__title {
	max-width: 780px;
	font-size: 42px;
}

.home .component-hero__subtitle {
	max-width: 680px;
}

.home-section-header {
	max-width: 780px;
	margin-bottom: var(--space-48);
}

.home-section-header .section__intro {
	max-width: 740px;
}

/* Operational problems: informational only, with no card affordance. */
.home-problems__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--color-soft-blue);
	border-bottom: 1px solid var(--color-soft-blue);
}

.home-problem {
	position: relative;
	padding: var(--space-32) var(--space-24);
}

.home-problem + .home-problem {
	border-left: 1px solid var(--color-soft-blue);
}

.home-problem__icon {
	display: inline-grid;
	width: 48px;
	height: 48px;
	margin-bottom: var(--space-24);
	color: var(--color-blue);
	background: var(--color-soft-blue);
	border-radius: var(--radius-sm);
	place-items: center;
}

.home-problem h3 {
	font-size: 20px;
}

.home-problem p {
	margin: 0;
	font-size: 15px;
}

.home-problems__transition {
	max-width: 820px;
	margin: var(--space-32) 0 0;
	padding-left: var(--space-24);
	font-weight: 600;
	color: var(--color-blue);
	border-left: 3px solid var(--color-red);
}

/* Seven-Solution master-detail. */
.home-solution-explorer {
	display: grid;
	gap: var(--space-24);
	align-items: stretch;
}

.home-solution-explorer__panels {
	min-width: 0;
}

.home-solution-panel {
	height: 100%;
	min-height: 590px;
	overflow: hidden;
	background: var(--color-white);
	border: 1px solid var(--color-blue);
	border-radius: var(--radius-sm);
}

.home-solution-panel[hidden] {
	display: none;
}

.home-solution-panel__visual {
	position: relative;
	display: grid;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--color-soft-blue);
	place-items: center;
}

.home-solution-panel__image {
	position: absolute;
	inset: 0;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	object-position: center;
}

.home-solution-panel__visual--fit-cover .home-solution-panel__image {
	object-fit: cover;
}

.home-solution-panel__visual--fit-contain .home-solution-panel__image {
	padding: clamp(var(--space-16), 4vw, var(--space-40));
	object-fit: contain;
}

.home-solution-panel__visual--fallback {
	background: var(--color-blue);
}

.home-solution-panel__fallback {
	display: grid;
	width: 100%;
	height: 100%;
	color: var(--color-white);
	place-items: center;
}

.home-solution-panel__fallback-mark {
	position: relative;
	z-index: 1;
	display: grid;
	max-width: 320px;
	gap: var(--space-16);
	justify-items: center;
	padding: var(--space-24);
	font-family: var(--font-heading);
	font-size: 18px;
	font-weight: 700;
	text-align: center;
}

.home-solution-panel__fallback::after {
	position: absolute;
	inset: var(--space-24);
	border: 1px solid var(--color-white);
	border-radius: var(--radius-sm);
	content: "";
	opacity: 0.5;
}

.home-solution-panel__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: var(--space-32);
}

.home-solution-panel__content h3 {
	font-size: 28px;
	color: var(--color-blue);
}

.home-solution-panel__description {
	font-size: 16px;
}

.home-solution-panel__facts {
	display: grid;
	width: 100%;
	margin: var(--space-8) 0 var(--space-32);
	border-top: 1px solid var(--color-soft-blue);
}

.home-solution-panel__facts div {
	display: grid;
	grid-template-columns: 130px minmax(0, 1fr);
	gap: var(--space-16);
	padding: var(--space-12) 0;
	border-bottom: 1px solid var(--color-soft-blue);
}

.home-solution-panel__facts dt {
	font-size: 13px;
	font-weight: 700;
	color: var(--color-blue);
	text-transform: uppercase;
}

.home-solution-panel__facts dd {
	margin: 0;
	font-size: 14px;
}

.home-solution-panel__content .btn {
	margin-top: auto;
}

.home-solution-tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-12);
}

.home-solution-tab {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	gap: var(--space-12);
	width: 100%;
	min-height: 112px;
	padding: var(--space-16);
	color: var(--color-dark);
	text-align: left;
	background: var(--color-white);
	border: 1px solid var(--color-white);
	border-radius: var(--radius-sm);
	cursor: pointer;
}

.home-solution-tab:hover {
	border-color: var(--color-blue);
}

.home-solution-tab[aria-selected="true"] {
	color: var(--color-blue);
	border-color: var(--color-red);
	box-shadow: inset 4px 0 0 var(--color-red);
}

.home-solution-tab__number {
	font-family: var(--font-heading);
	font-weight: 700;
	color: var(--color-red);
}

.home-solution-tab strong,
.home-solution-tab small {
	display: block;
}

.home-solution-tab strong {
	margin-bottom: var(--space-4);
	font-family: var(--font-heading);
	font-size: 16px;
	line-height: 1.35;
}

.home-solution-tab small {
	font-size: 13px;
	line-height: 1.45;
}

/* Customer working process on the shared dark-section contract. */
.home-process .home-section-header .section__intro {
	color: rgba(255, 255, 255, 0.85);
}

.home-process__steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: var(--space-24);
	margin: 0;
	padding: 0;
	list-style: none;
}

.home-process__steps::before {
	position: absolute;
	top: 23px;
	right: 8%;
	left: 8%;
	height: 2px;
	background: var(--color-white);
	content: "";
	opacity: 0.6;
}

.home-process-step {
	position: relative;
	z-index: 1;
	min-width: 0;
	padding-right: var(--space-8);
}

.home-process-step:not(:last-child)::after {
	position: absolute;
	top: 19px;
	right: calc(var(--space-24) / -2 - 4px);
	width: 9px;
	height: 9px;
	border-top: 2px solid var(--color-white);
	border-right: 2px solid var(--color-white);
	content: "";
	opacity: 0.8;
	transform: rotate(45deg);
}

.home-process-step__number {
	display: grid;
	width: 48px;
	height: 48px;
	font-family: var(--font-heading);
	font-weight: 700;
	color: var(--color-white);
	background: var(--color-red);
	border: 2px solid var(--color-white);
	border-radius: 50%;
	place-items: center;
}

.home-process-step__content {
	padding-top: var(--space-24);
}

.home-process-step h3 {
	margin: 0 0 var(--space-8);
	font-size: 18px;
	color: var(--color-white);
}

.home-process-step__description {
	margin: 0;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.85);
}

/* Manually selected Product Groups. */
.home-product-groups__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--space-24);
}

.home-product-group {
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	background: var(--color-white);
	border: 1px solid var(--color-soft-blue);
	border-radius: var(--radius-sm);
}

.home-product-group__media {
	height: 190px;
	overflow: hidden;
	background: var(--color-soft-blue);
}

.home-product-group__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-product-group__fallback {
	display: grid;
	width: 100%;
	height: 100%;
	color: var(--color-blue);
	place-items: center;
}

.home-product-group__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	padding: var(--space-24);
}

.home-product-group__brand {
	margin-bottom: var(--space-8);
	font-size: 12px;
	font-weight: 700;
	color: var(--color-red);
	text-transform: uppercase;
}

.home-product-group h3 {
	font-size: 20px;
}

.home-product-group__description {
	display: -webkit-box;
	overflow: hidden;
	font-size: 14px;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
}

.home-product-group__count {
	margin-top: auto;
	margin-bottom: var(--space-12);
	font-size: 13px;
	font-weight: 700;
	color: var(--color-blue);
}

.home-product-groups__footer {
	display: flex;
	justify-content: center;
	margin-top: var(--space-40);
}

.home .component-technology-partners--logo-only {
	background: var(--color-white);
}

.home .component-technology-partners--logo-only .component-technology-partners__header {
	max-width: 780px;
	text-align: left;
}

/* Anonymized customer proof: moving only when motion is allowed. */
.home-customer-segments {
	overflow: hidden;
}

.home-customer-segments__viewport {
	width: 100%;
	overflow: hidden;
	padding: var(--space-4) 0;
	touch-action: pan-y;
}

.home-customer-segments__viewport:focus-visible {
	outline: 2px solid var(--color-red);
	outline-offset: 4px;
}

.home-customer-segments__track {
	display: flex;
	gap: var(--space-16);
	width: max-content;
}

.home-customer-segments__group {
	display: flex;
	gap: var(--space-16);
	flex: none;
}

.home-customer-segment {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: var(--space-16);
	align-items: start;
	width: 280px;
	min-height: 126px;
	padding: var(--space-24);
	background: var(--color-white);
	border: 1px solid var(--color-white);
	border-radius: var(--radius-sm);
}

.home-customer-segment__icon {
	display: grid;
	width: 48px;
	height: 48px;
	color: var(--color-blue);
	background: var(--color-soft-blue);
	border-radius: var(--radius-sm);
	place-items: center;
}

.home-customer-segment h3 {
	margin: 0 0 var(--space-8);
	font-size: 17px;
	color: var(--color-blue);
}

.home-customer-segment p {
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
}

.home-customer-segments__viewport.is-animating .home-customer-segments__track {
	animation: home-customer-scroll var(--home-customer-duration, 72s) linear infinite;
	will-change: transform;
}

.home-customer-segments__viewport:hover .home-customer-segments__track,
.home-customer-segments__viewport:focus-within .home-customer-segments__track,
.home-customer-segments__viewport.is-paused .home-customer-segments__track {
	animation-play-state: paused;
}

.home-customer-segments__note {
	max-width: 800px;
	margin: var(--space-24) 0 0;
	font-size: 13px;
	color: var(--color-dark);
}

@keyframes home-customer-scroll {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(calc(-1 * var(--home-customer-loop-distance)));
	}
}

/* Latest editorial streams. */
.home-editorial__streams {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-32);
}

.home-editorial-stream {
	display: flex;
	min-width: 0;
	flex-direction: column;
	border-top: 3px solid var(--color-blue);
	border-bottom: 1px solid var(--color-soft-blue);
}

.home-editorial-stream__heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-16);
	min-height: 72px;
	padding: var(--space-16) 0;
}

.home-editorial-stream__heading h3 {
	margin: 0;
	font-size: 22px;
	color: var(--color-blue);
}

.home-editorial-stream__controls {
	display: flex;
	align-items: center;
	gap: var(--space-8);
	flex: 0 0 auto;
}

.home-editorial-stream__control {
	display: grid;
	width: 40px;
	height: 40px;
	padding: 0;
	color: var(--color-blue);
	background: var(--color-white);
	border: 1px solid var(--color-blue);
	border-radius: var(--radius-sm);
	cursor: pointer;
	place-items: center;
}

.home-editorial-stream__control:hover,
.home-editorial-stream__control:focus-visible {
	color: var(--color-white);
	background: var(--color-blue);
}

.home-editorial-stream__control--previous svg {
	transform: rotate(180deg);
}

.home-editorial-stream__position {
	min-width: 48px;
	font-variant-numeric: tabular-nums;
	text-align: center;
}

.home-editorial-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-24);
	min-height: 540px;
	padding: var(--space-24) 0;
	flex: 1 1 auto;
}

.home-editorial-card[hidden] {
	display: none;
}

.home-editorial-stream__slides {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
}

.home-editorial-card--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-40);
	background: var(--color-soft-blue);
	border-radius: var(--radius-sm);
}

.home-editorial-empty__content {
	max-width: 400px;
	text-align: center;
}

.home-editorial-empty__icon {
	display: grid;
	width: 64px;
	height: 64px;
	margin: 0 auto var(--space-24);
	color: var(--color-blue);
	background: var(--color-white);
	border-radius: var(--radius-sm);
	place-items: center;
}

.home-editorial-card--empty h4 {
	margin-bottom: var(--space-12);
}

.home-editorial-card--empty p {
	margin-bottom: var(--space-24);
}

.home-editorial-card__media {
	position: relative;
	min-height: 220px;
	overflow: hidden;
	background: var(--color-soft-blue);
	border-radius: var(--radius-sm);
}

.home-editorial-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.home-editorial-card__fallback {
	display: grid;
	position: absolute;
	inset: 0;
	color: var(--color-blue);
	place-items: center;
}

.home-editorial-card__content {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.home-editorial-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-8) var(--space-16);
	margin-bottom: var(--space-12);
	font-size: 13px;
	color: var(--color-blue);
}

.home-editorial-card h4 {
	margin: 0 0 var(--space-12);
	font-size: 25px;
}

.home-editorial-card h4 a {
	color: var(--color-blue);
}

.home-editorial-card p {
	margin: 0 0 var(--space-16);
}

.home-editorial-card .btn--text {
	margin-top: auto;
	align-self: flex-start;
}

.home-editorial-stream__archive {
	display: inline-block;
	margin: 0 0 var(--space-24);
	font-weight: 700;
	color: var(--color-blue);
}

.home-final-cta {
	padding-top: var(--space-64);
	padding-bottom: var(--space-64);
}

.home-final-cta .cta-band {
	margin: 0;
}

@media (min-width: 1100px) {
	.home-solution-explorer {
		grid-template-columns: minmax(0, 1.35fr) minmax(390px, 0.85fr);
	}

	.home-solution-tabs {
		grid-template-columns: 1fr;
	}

	.home-solution-tab {
		min-height: 76px;
		padding: var(--space-12) var(--space-16);
	}
}

@media (max-width: 1099px) {
	.home-product-groups__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home-solution-panel {
		min-height: 0;
	}
}

@media (max-width: 900px) {
	.home-editorial__streams {
		grid-template-columns: 1fr;
	}

	.home-problems__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home-problem:nth-child(3) {
		border-left: 0;
		border-top: 1px solid var(--color-soft-blue);
	}

	.home-problem:nth-child(4) {
		border-top: 1px solid var(--color-soft-blue);
	}

	.home-process__steps {
		grid-template-columns: 1fr;
		gap: var(--space-32);
	}

	.home-process__steps::before {
		top: 24px;
		right: auto;
		bottom: 24px;
		left: 23px;
		width: 2px;
		height: auto;
	}

	.home-process-step {
		display: grid;
		grid-template-columns: 48px minmax(0, 1fr);
		gap: var(--space-16);
		padding: 0;
	}

	.home-process-step:not(:last-child)::after {
		display: none;
	}

	.home-process-step__content {
		padding-top: 2px;
	}
}

@media (max-width: 639px) {
	.home .component-hero {
		padding-top: var(--space-48);
		padding-bottom: var(--space-48);
	}

	.home .component-hero__title {
		font-size: 34px;
	}

	.home-section-header {
		margin-bottom: var(--space-32);
	}

	.home-editorial-stream__heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.home-editorial-card h4 {
		font-size: 22px;
	}

	.home-problems__grid,
	.home-solution-tabs,
	.home-product-groups__grid {
		grid-template-columns: 1fr;
	}

	.home-problem + .home-problem,
	.home-problem:nth-child(4) {
		border-top: 1px solid var(--color-soft-blue);
		border-left: 0;
	}

	.home-problem {
		padding-right: 0;
		padding-left: 0;
	}

	.home-solution-panel__content {
		padding: var(--space-24);
	}

	.home-solution-panel__content h3 {
		font-size: 24px;
	}

	.home-solution-panel__facts div {
		grid-template-columns: 1fr;
		gap: var(--space-4);
	}

	.home-solution-tab {
		min-height: 88px;
	}

}

@media (max-width: 767px) {
	.home-editorial-card {
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
	}

	.home-editorial-card--empty {
		min-height: 360px;
		padding: var(--space-32) var(--space-24);
	}

	.home-editorial-card__media {
		min-height: 0;
		aspect-ratio: 4 / 3;
	}
}

@media (prefers-reduced-motion: reduce) {
	.home-customer-segments {
		overflow: visible;
	}

	.home-customer-segments__viewport,
	.home-customer-segments__viewport.is-static {
		overflow: visible;
	}

	.home-customer-segments__track {
		display: block;
		width: 100%;
	}

	.home-customer-segments__group {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
		width: 100%;
	}

	.home-customer-segment {
		width: auto;
	}
}
