/* Justify paragraph body text site-wide.
   Scoped to <p> only (not headings/spans/nav/buttons) so centered titles and
   hero labels are unaffected. Short subtitle/tagline lines are excluded below
   because justify stretches a 2-word wrapped line edge-to-edge, which looks broken. */
p {
	text-align: justify;
	text-justify: inter-word;
}

.footer-tagline,
.page-header p,
.precision-hero p,
.testimonial-author p,
.software-name {
	text-align: left;
}

/* Paragraphs with a manual <br> (hero intro lines, addresses, hours) always
   stretch the segment before the break under justify, which looks broken
   regardless of word count. Keep these left-aligned instead. */
p:has(br) {
	text-align: left;
}

/* A direct rule on <p> beats an inherited text-align, so the blanket justify
   rule above was silently breaking every subtitle line that sits under a
   Bootstrap alignment utility (the pattern used site-wide: a wrapper like
   .text-center or .text-center.text-lg-start around a heading + <p> subtitle).
   Using `inherit` (not a hardcoded "center") so the paragraph always mirrors
   whatever the ancestor actually resolves to at the current breakpoint -
   correct for plain .text-center AND for responsive combos like
   .text-center.text-lg-start, where the wrapper is centered on mobile but
   left-aligned on large screens. The attribute selectors catch every
   Bootstrap variant (text-start/text-end/text-center and their
   text-sm-/md-/lg-/xl-/xxl- responsive versions) without enumerating each one. */
[class*="text-start"] p,
[class*="text-end"] p,
[class*="text-center"] p {
	text-align: inherit;
}

/* Anchor-link scroll offset for the sticky header.
   With scroll-behavior: smooth and a fixed/sticky navbar, the browser scrolls
   a target's top edge to y=0, then the sticky header sits on top of it -
   making every #section-id link (footer, nav dropdowns, "Learn More" buttons)
   land with the heading hidden or half-covered. scroll-margin-top reserves
   space for the header so the target lands fully visible below it. Applied to
   any element used as an anchor target site-wide. */
[id] {
	scroll-margin-top: 110px;
}
