:root {
	--jl-font-heading: "Fraunces", Georgia, "Times New Roman", serif;
	--jl-font-body: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/*
 * One typography system across the public Just Locals experience.
 * Headings = Fraunces. Body, controls, contact details and actions = Public Sans.
 */
body {
	font-family: var(--jl-font-body) !important;
}

body button,
body input,
body select,
body textarea,
body .button,
body .wp-block-button__link,
body .jl-directory-button,
body .jl-directory-arrow-link,
body .jl-search-primary-contact,
body .jl-search-card-secondary,
body .jl-community-primary-action,
body .jl-community-listing-link,
body .jl-community-owner-cta,
body .jl-jobs-button {
	font-family: var(--jl-font-body) !important;
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .jl-category-placeholder-category,
body .kt-blocks-info-box-title {
	font-family: var(--jl-font-heading) !important;
	font-weight: 600 !important;
	letter-spacing: -.01em !important;
}

body .jl-directory-eyebrow,
body .jl-search-card-category,
body .jl-community-listing-category,
body .jl-job-card-meta,
body .jl-owner-job-status,
body .jl-jobs-eyebrow,
body .jl-home-trust-label,
body .jl-search-card-location,
body .jl-community-listing-location,
body .jl-public-category,
body .jl-public-facts,
body .jl-public-contact,
body .jl-public-verified,
body .jl-public-recommendation-banner,
body .jl-account-eyebrow,
body .jl-account-card-label,
body .jl-account-link,
body .jl-account-button,
body .jl-account-signout,
body .jl-claim-eyebrow,
body .jl-claim-form,
body .jl-claim-button,
body .jl-claim-link,
body .jl-intake-page,
body .jl-owner-shell {
	font-family: var(--jl-font-body) !important;
}

body .jl-directory-eyebrow,
body .jl-search-card-category,
body .jl-community-listing-category,
body .jl-job-card-meta,
body .jl-owner-job-status,
body .jl-jobs-eyebrow,
body .jl-account-eyebrow,
body .jl-account-card-label,
body .jl-claim-eyebrow {
	font-weight: 700 !important;
	letter-spacing: .055em !important;
}

/* Utility/card headings should feel calm, not poster-like. */
body .jl-account-card h2,
body .jl-card h2,
body .jl-job-form legend {
	font-family: var(--jl-font-body) !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
}

body .jl-public-related-body h3,
body .jl-job-card h2,
body .jl-owner-job-card h2 {
	font-weight: 600 !important;
	letter-spacing: -.005em !important;
}

@media (max-width: 620px) {
	body h1,
	body h2,
	body h3,
	body h4 {
		letter-spacing: -.005em !important;
	}

	body .jl-search-card-heading h2 {
		font-size: 1.04rem !important;
		line-height: 1.22 !important;
	}

	body .jl-home-business-body h3 {
		font-size: 1.06rem !important;
		line-height: 1.22 !important;
	}

	body .jl-community-listing-card h4 {
		font-size: .98rem !important;
		line-height: 1.25 !important;
	}

	/* Business profile */
	body .jl-public-identity h1 {
		font-size: 2rem !important;
		line-height: 1.1 !important;
	}
	body .jl-public-panel h2,
	body .jl-public-gallery-section h2 {
		font-size: 1.3rem !important;
		line-height: 1.25 !important;
	}
	body .jl-public-related-body h3 {
		font-size: 1.02rem !important;
		line-height: 1.24 !important;
	}

	/* Community Recommended */
	body .jl-community-heading h1,
	body .jl-community-town-heading h1 {
		font-size: 2rem !important;
		line-height: 1.12 !important;
	}
	body .jl-community-shelf-heading h2 {
		font-size: 1.35rem !important;
		line-height: 1.18 !important;
	}
	body .jl-community-closing h2 {
		font-size: 1.25rem !important;
		line-height: 1.22 !important;
	}

	/* Local Jobs */
	body .jl-jobs-heading h1,
	body .jl-owner-jobs-heading h1,
	body .jl-job-profile h1 {
		font-size: 2rem !important;
		line-height: 1.1 !important;
	}
	body .jl-job-card h2,
	body .jl-owner-job-card h2 {
		font-size: 1.05rem !important;
		line-height: 1.23 !important;
	}
	body .jl-job-description h2 {
		font-size: 1.25rem !important;
	}

	/* Account, claims and listing management */
	body .jl-account-heading h1,
	body .jl-account-gate h1 {
		font-size: 2rem !important;
		line-height: 1.12 !important;
	}
	body .jl-account-card h2 {
		font-size: 1.08rem !important;
		line-height: 1.24 !important;
	}
	body .jl-claim-card h1 {
		font-size: 1.95rem !important;
		line-height: 1.12 !important;
	}
	body .jl-intake-header-fallback h1,
	body .jl-owner-heading h1 {
		font-size: 1.95rem !important;
		line-height: 1.12 !important;
	}
	body .jl-section-title h2,
	body .jl-owner-business h2 {
		font-size: 1.08rem !important;
		line-height: 1.25 !important;
	}
}


/* Keep the shared site footer off the viewport edges. */
.site-footer .site-container,
.site-footer-row-container-inner > .site-container {
	padding-left:24px!important;
	padding-right:24px!important;
}

@media (max-width:620px) {
	.site-footer .site-container,
	.site-footer-row-container-inner > .site-container {
		padding-left:16px!important;
		padding-right:16px!important;
	}
}
