/* Layout: hero (front page). The site header overlays the top. */
.sw-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-block-size: 100vh;  /* fallback for browsers without svh */
	min-block-size: 100svh; /* small viewport height: stays fixed when the mobile browser bar shows/hides, so no jump */
	padding-block: calc(var(--header-height) + var(--space-96)) var(--space-48); /* bottom: 80px from 992px */
	overflow: hidden;
}

.sw-hero__media,
.sw-hero__media::after { position: absolute; inset: 0; }
.sw-hero__media::after { content: ""; background: var(--overlay-image); }
.sw-hero__image { inline-size: 100%; block-size: 100%; object-fit: cover; }

.sw-hero__inner { position: relative; display: grid; gap: var(--gap-l); }
.sw-hero__top { display: grid; gap: var(--gap-m); }
.sw-hero__heading { display: grid; gap: var(--space-4); }
.sw-hero__title { max-inline-size: 56rem; text-wrap: balance; }

.sw-hero__badge { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-24); }
.sw-hero__pattern { display: none; }
.sw-hero__badge-logo { inline-size: 11rem; block-size: auto; }

.sw-hero__bottom {
	display: grid;
	gap: var(--space-24);
	padding-block-start: var(--space-24);
	border-block-start: var(--border);
}
.sw-hero__text {
	max-inline-size: 50rem;
	font-size: var(--text-body); /* body size on phones, lead size from 768px */
	line-height: var(--leading-body);
}

@media (min-width: 48em) {
	.sw-hero__text { font-size: var(--text-lead); line-height: var(--leading-lead); }
}

@media (min-width: 62em) {
	.sw-hero { padding-block-end: var(--space-80); }
	.sw-hero__top { grid-template-columns: minmax(0, 1fr) 14.5rem; }
	.sw-hero__badge { justify-content: space-between; align-items: flex-end; }
	.sw-hero__badge-logo { inline-size: 14.5rem; }
	.sw-hero__pattern { display: block; }

	.sw-hero__bottom {
		grid-template-columns: minmax(0, 50rem) auto;
		justify-content: space-between;
		align-items: start;
	}
}
