/* Responsive reading roles, based on the WordPress typography WPSkill. */
:root {
	--hh-type-body: 1rem;
	--hh-type-secondary: .875rem;
	--hh-type-heading: clamp(1.125rem, 2vw, 1.5rem);
	--hh-type-phone-heading: clamp(1.375rem, 6vw, 1.75rem);
	--hh-type-card-heading: clamp(1.125rem, 5vw, 1.375rem);
}
body { font-size: var(--hh-type-body); }
.hh-entry__content > p, .hh-entry__content > ul, .hh-entry__content > ol { max-inline-size: 70ch; }
.single-product .woocommerce-Tabs-panel ul, .single-product .woocommerce-Tabs-panel ol { padding-inline-start: 1rem; }
.single-product .woocommerce-product-details__short-description h2,
.single-product .woocommerce-Tabs-panel h2,
.single-product .related > h2,
.single-product .upsells > h2 { font-size: var(--hh-type-heading); }
@media (max-width: 600px) {
	/* Give copy room before reducing the type size. */
	.hh-topbar__inner { flex-wrap: wrap; }
	.hh-footer__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr)); }
	.hh-title-shell .hh-page-title { width: 100%; margin-inline: 0; }
	.hh-contact-title { margin-inline: 0; }
	.hh-page-title h1 { font-size: var(--hh-type-phone-heading); letter-spacing: normal; }
	/* Let long phone titles use three lines while staying larger than body copy. */
	.hh-page-title--long h1 { font-size: clamp(1.125rem, 5.6vw, 1.75rem); }
	.hh-hero h1, .hh-section-heading h2, .hh-feature h2, .hh-services h2, .hh-cta h2 {
		font-size: var(--hh-type-phone-heading);
		line-height: 1.25;
		letter-spacing: normal;
	}
	.hh-category-card { grid-template-columns: minmax(0, 1fr); }
	.hh-category-card__body { padding: 1rem .75rem .5rem; }
	.hh-category-card__body strong { font-size: 1.125rem; line-height: 1.3; letter-spacing: normal; }
	.hh-category-card__arrow { margin: 0 .75rem .75rem auto; min-width: 44px; min-height: 44px; }
	.hh-category-card__body span { font-size: var(--hh-type-secondary); line-height: 1.5; letter-spacing: normal; }
	.hh-section-card .hh-category-card__body > span { font-size: var(--hh-type-body); line-height: 1.6; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { padding-inline: .5rem; font-weight: 600; }
	.woocommerce ul.products li.product-category .woocommerce-loop-category__title { font-size: 1.125rem; line-height: 1.3; letter-spacing: normal; }
	.category-description, .hh-content--services .hh-post-card__body p { font-size: var(--hh-type-body); line-height: 1.6; }
	.hh-content--services .hh-post-card__body { padding: 1rem .75rem; }
	.hh-content--services .hh-post-card__body h2 { font-size: 1rem; line-height: 1.35; font-weight: 600; }
	.hh-services__grid > div { grid-template-columns: 1fr; }
	.hh-services__grid h3 { font-size: 1.125rem; line-height: 1.3; }
	.hh-services__grid p, .hh-services__intro > p:not(.hh-kicker) { font-size: var(--hh-type-body); line-height: 1.6; }
	.hh-contact-stage { padding-inline: 0; }
	.hh-contact-title { margin-inline: 0; }
	.hh-contact-option { padding: .875rem; }
	.hh-contact-option h2, .hh-contact-option--sms h2, .hh-contact-option--visits h2 {
		font-size: var(--hh-type-card-heading);
		line-height: 1.3;
		letter-spacing: normal;
		white-space: normal;
	}
	.hh-contact-locations h3 { font-size: 1rem; line-height: 1.4; letter-spacing: normal; }
	.hh-contact-locations ul { padding-inline-start: 1rem; }
	.hh-contact-form-card { padding: 1rem .75rem; }
	.hh-contact-form-card .sca-protected-by { font-size: .75rem; line-height: 1.5; }
	.hh-contact-form-card__intro h2 { font-size: var(--hh-type-phone-heading); line-height: 1.3; }
	.hh-form-grid input:not([type="submit"]), .hh-form-grid select, .hh-form-grid textarea { font-size: var(--hh-type-body); }
	.hh-about-paper { padding: 1rem .75rem; font-size: 1.0625rem; }
	.hh-about-paper h2, .hh-about-paper h3 { font-size: 1.125rem; line-height: 1.3; letter-spacing: normal; }
	.hh-about-paper .hh-about-deck { font-size: 1.0625rem; line-height: 1.6; }
	.hh-about-briefs p, .hh-about-section-heading p { font-size: var(--hh-type-body); line-height: 1.6; }
	.hh-about-section-heading { align-items: stretch; }
	.hh-about-paper figcaption { font-size: .8125rem; }
}
