:root {
	--hcsd-ink: var(--wp--preset--color--ink, #3d3d43);
	--hcsd-paper: var(--wp--preset--color--paper, #ffffff);
	--hcsd-cream: var(--wp--preset--color--cream, #efefef);
	--hcsd-blue: var(--wp--preset--color--blue, #006ab3);
	--hcsd-dark-blue: var(--wp--preset--color--dark-blue, #003863);
	--hcsd-ocean: var(--wp--preset--color--ocean, #003863);
	--hcsd-pale-blue: var(--wp--preset--color--pale-blue, #f1f8fe);
	--hcsd-mint: var(--wp--preset--color--mint, #f1f8fe);
	--hcsd-yellow: var(--wp--preset--color--yellow, #006ab3);
	--hcsd-orange: var(--wp--preset--color--orange, #c6500d);
	--hcsd-red: var(--wp--preset--color--red, #c00d0d);
	--hcsd-white: var(--wp--preset--color--white, #fff);
	--hcsd-shadow: var(--wp--preset--shadow--soft, 0 18px 50px rgba(61, 61, 67, .12));
}

html {
	scroll-behavior: smooth;
}

body {
	background: var(--hcsd-paper);
	color: var(--hcsd-ink);
	font-family: var(--wp--preset--font-family--sans, "Lato", Arial, Helvetica, sans-serif);
	font-size: clamp(1rem, .95rem + .2vw, 1.125rem);
	line-height: 1.55;
	margin: 0;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* WordPress applies its layout gap inside Post Content as well. On the
 * landing page the direct children are complete, colored sections, so those
 * backgrounds should meet without a thin strip between them. */
.hcsd-main .wp-block-post-content > * + * {
	margin-block-start: 0;
}

a {
	color: inherit;
	text-decoration-thickness: .09em;
	text-underline-offset: .18em;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
	outline: 3px solid var(--hcsd-blue);
	box-shadow: 0 0 0 2px var(--hcsd-white);
	outline-offset: 4px;
}

.hcsd-main {
	overflow: clip;
}

.hcsd-section {
	padding: clamp(80px, 10vw, 150px) clamp(22px, 7vw, 120px);
	scroll-margin-top: 82px;
}

.hcsd-section__inner {
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size, 1240px);
}

.hcsd-eyebrow {
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .12em;
	margin: 0 0 1rem;
	text-transform: uppercase;
}

.hcsd-eyebrow--marker {
	align-items: center;
	display: flex;
	gap: .7rem;
}

.hcsd-eyebrow--marker::before {
	-webkit-mask: url("../images/eyebrow-marker.svg") center / contain no-repeat;
	background: currentColor;
	content: "";
	flex: 0 0 auto;
	height: 12px;
	mask: url("../images/eyebrow-marker.svg") center / contain no-repeat;
	width: 18px;
}

.hcsd-title,
.hcsd-section h2 {
	font-size: clamp(2.7rem, 5vw, 5.4rem);
	font-style: italic;
	font-weight: 400;
	letter-spacing: -.055em;
	line-height: .94;
	margin: 0;
}

.hcsd-section h3 {
	font-size: clamp(1.45rem, 2.3vw, 2.2rem);
	line-height: 1.05;
}

.hcsd-lead {
	font-size: clamp(1.15rem, 1.8vw, 1.55rem);
	line-height: 1.4;
	max-width: 740px;
}

.wp-block-button.is-style-hcsd-pill .wp-block-button__link {
	background: var(--hcsd-dark-blue);
	border-radius: 999px;
	color: var(--hcsd-white);
}

.wp-block-button.is-style-hcsd-outline .wp-block-button__link,
.hcsd-outline-button .wp-block-button__link {
	background: transparent;
	border: 1px solid currentColor;
	border-radius: 999px;
	color: inherit;
}

.wp-block-button.is-style-hcsd-light .wp-block-button__link,
.hcsd-light-button .wp-block-button__link {
	background: var(--hcsd-white);
	border-radius: 999px;
	color: var(--hcsd-ink);
}

.hcsd-media-placeholder {
	border: 0;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2);
	overflow: hidden;
	position: relative;
}

.hcsd-media-placeholder::before {
	background: repeating-linear-gradient(105deg, rgba(255, 255, 255, .08) 0 12%, rgba(0, 0, 0, .18) 12% 22%);
	content: "";
	inset: 0;
	position: absolute;
}

.hcsd-media-placeholder > p:not(.hcsd-others__copy) {
	background: rgba(0, 0, 0, .7);
	bottom: 12px;
	color: var(--hcsd-white);
	font-size: .72rem;
	left: 12px;
	margin: 0;
	padding: 6px 8px;
	position: absolute;
	right: 12px;
	z-index: 1;
}

@media (max-width: 560px) {
	.hcsd-section {
		padding: 82px 20px;
	}

	.hcsd-title,
	.hcsd-section h2 {
		font-size: clamp(2.7rem, 13vw, 4.2rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}
