/******/
/*** TYPOGRAPHY ***/
/******/

@font-face {
	font-family: "Awesome Ways";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/awesome-ways.woff2") format("woff2");
}

:root {
	--type-body: "Manrope", sans-serif;
	--type-mono: "IBM Plex Mono", monospace;
	--type-headline: "trust-3a", serif;
	--type-accent: "Awesome Ways", cursive;
}

body {
	font-family: var(--type-body);
	font-size: var(--text-p);
	font-weight: var(--font-weight-normal);
	font-style: normal;
	font-optical-sizing: auto;
	line-height: var(--leading-normal);
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
	font-family: var(--type-headline);
	font-weight: var(--font-weight-light);
	line-height: var(--leading-snug);
	letter-spacing: var(--tracking-tight);
	margin-block: 0.5rem;
}

h1,
.h1 { font-size: clamp(var(--text-min-h1), 5.4vw, var(--text-max-h1)); }
h2,
.h2 { font-size: clamp(var(--text-min-h2), 5vw, var(--text-max-h2)); }
h3,
.h3 { font-size: clamp(var(--text-min-h3), 3.5vw, var(--text-max-h3)); }
h4,
.h4 { font-size: clamp(var(--text-min-h4), 2.2vw, var(--text-max-h4)); line-height: var(--leading-snug); }

p { margin-block: 0.4rem; }
p.large,
.p-large { font-size: var(--text-p-lg); line-height: var(--leading-base); }
p.small,
.p-small { font-size: var(--text-p-sm); }
p.x-small,
.p-x-small { font-size: var(--text-p-xs); }

em {
	font-family: var(--type-accent);
	font-style: normal;
	font-weight: var(--font-weight-normal);
}

.eyebrow,
.intro-inner .services-intro__form .gform_wrapper p.gform_description {
	font-family: var(--type-mono);
	font-size: var(--text-p-xs);
	font-weight: var(--font-weight-medium);
	letter-spacing: var(--tracking-widest);
	line-height: var(--leading-base);
	margin: 0;
	text-transform: uppercase;
}

.intro-inner .services-intro__form .gform_wrapper p.gform_description {
	font-size: .625rem!important;
}

a { text-decoration-thickness: 0.0625rem; text-underline-offset: 0.2em; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
[tabindex]:focus-visible { outline: 0.125rem solid currentColor; outline-offset: 0.25rem; }

.rich-text > :first-child { margin-block-start: 0; }
.rich-text > :last-child { margin-block-end: 0; }
.rich-text p + p,
.rich-text p + ul,
.rich-text p + ol,
.rich-text ul + p,
.rich-text ol + p { margin-block-start: 1rem; }
.rich-text h3,
.rich-text h4,
.rich-text h5 { margin-block-start: 1.5rem; }

.font-manrope { font-family: var(--type-body) !important; }
.font-ibm-plex-mono { font-family: var(--type-mono) !important; }
.font-trust-3a { font-family: var(--type-headline) !important; }
.font-awesome-ways { font-family: var(--type-accent) !important; }

/* Reusable display type utilities used by section markup. */
.type-statement > p { font-size: clamp(2.2rem, 3.7vw, 4.7rem); }
.type-map-scribble { font-size: clamp(2rem, 3.2vw, 4.2rem); }

@media (max-width: 47.999rem) {
	.type-home-hero { font-size: clamp(2.75rem, 12vw, 4.6rem); }
	.type-statement > p { font-size: clamp(2rem, 8.2vw, 3rem); }
	.type-map-heading { font-size: clamp(3.5rem, 15vw, 5.3rem); }
	.type-map-scribble { font-size: clamp(1.7rem, 8vw, 2.7rem); }
	.type-footer-heading { font-size: clamp(2.3rem, 11vw, 3.6rem); }
}
