.wsi-hero-headline {
	padding-block: 120px 40px;
}
.wsi-hero-headline__title {
	position: relative;
}
.wsi-hero-headline__br { display: none; }
.wsi-hero-headline__br-m { display: inline; } /* mobile/tablet line breaks */
/* With its own mobile lines the headline fills the width ("for brands." is
   ~5.1em wide), capped so tablets don't get a wall of text. */
@media (max-width: 1023px) {
	.wsi-hero-headline.has-mobile-lines .wsi-hero-headline__title {
		font-size: min(96px, (100vw - 2 * var(--wsi-gutter)) / 5.3);
		line-height: 1;
	}
}


/* Scroll-mouse hint left of the headline. */
.wsi-mouse-hint {
	position: absolute;
	top: 6px;
	left: -46px;
	display: none;
	justify-content: center;
	width: 22px;
	height: 34px;
	padding-top: 6px;
	border: 2px solid #000;
	border-radius: 12px;
	transition: opacity .3s ease;
}
.wsi-mouse-hint span {
	width: 4px;
	height: 7px;
	border-radius: 2px;
	background: #000;
	animation: wsi-mouse 1.6s ease-in-out infinite;
}
@keyframes wsi-mouse {
	0%   { transform: translateY(0); opacity: 1; }
	70%  { transform: translateY(10px); opacity: 0; }
	100% { transform: translateY(0); opacity: 0; }
}
/* Small arrow that drops out under the mouse, right after the wheel dot:
   makes "scroll down" unmistakable without shouting. */
.wsi-mouse-hint::after {
	content: '';
	position: absolute;
	top: calc(100% + 5px);
	left: 50%;
	width: 7px;
	height: 7px;
	margin-left: -3.5px;
	border-right: 2px solid #000;
	border-bottom: 2px solid #000;
	transform: rotate(45deg);
	opacity: 0;
	animation: wsi-mouse-arrow 1.6s ease-in-out infinite;
}
@keyframes wsi-mouse-arrow {
	0%, 35% { transform: translateY(-4px) rotate(45deg); opacity: 0; }
	60%     { transform: translateY(2px) rotate(45deg); opacity: 1; }
	85%     { transform: translateY(6px) rotate(45deg); opacity: 0; }
	100%    { transform: translateY(6px) rotate(45deg); opacity: 0; }
}
.wsi-scrolled .wsi-mouse-hint { opacity: 0; }

@media (min-width: 1024px) {
	/* Headline sits near the bottom of the first viewport. */
	.wsi-hero-headline {
		padding-top: calc(100svh - min(160px, (100vw - 200px) / 5.3) - 70px);
		padding-bottom: 120px;
	}
	.wsi-hero-headline__br { display: inline; }
	.wsi-hero-headline__br-m { display: none; }
	.wsi-mouse-hint { display: flex; }
}

/* Editor: no need for a full viewport of empty space. */
.editor-styles-wrapper .wsi-hero-headline { padding-top: 120px; }

@media (prefers-reduced-motion: reduce) {
	.wsi-mouse-hint span { animation: none; }
	.wsi-mouse-hint::after { animation: none; opacity: 1; }
}
