* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--pts-color-cream-2);
	color: var(--pts-color-ink);
	font-family: var(--pts-font-body);
	font-size: 16px;
	line-height: 1.72;
	text-rendering: optimizeLegibility;
}

img,
svg,
iframe {
	max-width: 100%;
}

a {
	color: inherit;
	text-decoration: none;
}

h1,
h2,
h3,
h4,
p {
	margin-top: 0;
}

h1,
h2,
h3,
h4 {
	font-family: var(--pts-font-heading);
	line-height: 0.96;
	letter-spacing: -0.045em;
}

h1 {
	max-width: 860px;
	font-size: clamp(3.4rem, 8.4vw, 7.25rem);
}

h2 {
	font-size: clamp(2rem, 4.2vw, 3.8rem);
}

h3 {
	font-size: clamp(1.15rem, 1.8vw, 1.45rem);
}

p {
	color: var(--pts-color-primary-soft);
	overflow-wrap: break-word;
}

ul {
	padding-left: 1.1rem;
}

.pts-container {
	width: min(calc(100% - 40px), var(--pts-container));
	margin-inline: auto;
}

.pts-container--wide {
	width: min(calc(100% - 40px), var(--pts-container-wide));
}

.pts-section {
	position: relative;
	padding-block: var(--pts-space-section);
}

.pts-skip-link {
	position: absolute;
	left: 16px;
	top: -80px;
	z-index: 1000;
	padding: 10px 14px;
	border-radius: var(--pts-radius-pill);
	background: var(--pts-color-primary);
	color: var(--pts-color-white);
	transition: top 0.2s ease;
}

.pts-skip-link:focus {
	top: 16px;
}

.pts-main {
	overflow: visible;
}

body {
	overflow-x: clip;
}


button {
	font: inherit;
}

button,
a {
	-webkit-tap-highlight-color: transparent;
}

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

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.001ms !important;
	}
}