/**
 * Page Title section styles.
 *
 * Alignment via .page-title--title-{center|left} / --content-{center|left}.
 * Content size/weight via --content-size-{sm|md} / --content-weight-{400|700}.
 */

.page-title {
	--page-title-pad-block: clamp(1.5rem, 3vw, 2.5rem); /* → 60px — Default preset */
	--page-title-pad-top: var(--page-title-pad-block);
	--page-title-pad-bottom: var(--page-title-pad-block);
	--page-title-content-max: calc(var(--container-narrow-max) + (2 * var(--container-gutter)));
	--page-title-pad-inline: var(--container-gutter);
	--page-title-gap: 2rem;
	--page-title-headline-pad-end: 1.5rem;
	--page-title-headline-size: var(--type-h1-size);
	--page-title-headline-line: 1.0125; /* 64.8 / 64 */
	--page-title-headline-tracking: -0.01em;
	--page-title-body-size: 1.2rem;
	--page-title-body-weight: 700;
	--page-title-body-line: 1.5;
	--page-title-title-align: center;
	--page-title-title-justify: center;
	--page-title-content-align: center;

	padding-block: var(--page-title-pad-top) var(--page-title-pad-bottom);
	color: var(--color-navy);
	background-color: var(--color-white);
}

/* Spacing presets — per-instance overrides set inline from ACF. */
.page-title--pad-top-none {
	--page-title-pad-top: 0;
}

.page-title--pad-top-xs {
	--page-title-pad-top: clamp(0.5rem, 1.5vw, 1.25rem); /* → 20px */
}

.page-title--pad-top-sm {
	--page-title-pad-top: clamp(1rem, 3vw, 2.5rem); /* → 40px */
}

.page-title--pad-top-lg {
	--page-title-pad-top: clamp(2.25rem, 6.5vw, 7.5rem); /* → 120px */
}

.page-title--pad-top-xl {
	--page-title-pad-top: clamp(3rem, 8vw, 10rem); /* → 160px */
}

.page-title--pad-bottom-none {
	--page-title-pad-bottom: 0;
}

.page-title--pad-bottom-xs {
	--page-title-pad-bottom: clamp(0.5rem, 1.5vw, 1.25rem); /* → 20px */
}

.page-title--pad-bottom-sm {
	--page-title-pad-bottom: clamp(1rem, 3vw, 2.5rem); /* → 40px */
}

.page-title--pad-bottom-lg {
	--page-title-pad-bottom: clamp(2.25rem, 6.5vw, 7.5rem); /* → 120px */
}

.page-title--pad-bottom-xl {
	--page-title-pad-bottom: clamp(3rem, 8vw, 10rem); /* → 160px */
}

.page-title--title-left {
	--page-title-title-align: left;
	--page-title-title-justify: flex-start;
}

.page-title--title-center {
	--page-title-title-align: center;
	--page-title-title-justify: center;
}

.page-title--content-left {
	--page-title-content-align: left;
}

.page-title--content-center {
	--page-title-content-align: center;
}

.page-title--content-size-sm {
	--page-title-body-size: 1rem; /* 16px */
}

.page-title--content-size-md {
	--page-title-body-size: 1.2rem;
}

.page-title--content-weight-400 {
	--page-title-body-weight: 400;
}

.page-title--content-weight-700 {
	--page-title-body-weight: 700;
}

.page-title--width-narrow {
	--page-title-content-max: calc(var(--container-narrow-max) + (2 * var(--container-gutter)));
	--page-title-pad-inline: var(--container-gutter);
}

.page-title--width-container {
	--page-title-content-max: var(--container-outer-max); /* header outer box */
	--page-title-pad-inline: var(--container-pad-inline);
}

.page-title__inner {
	display: flex;
	flex-direction: column;
	gap: var(--page-title-gap);
	width: 100%;
	max-width: var(--page-title-content-max);
	margin-inline: auto;
	padding-inline: var(--page-title-pad-inline);
	box-sizing: border-box;
}

.page-title:not(.page-title--has-description) .page-title__inner {
	gap: 0;
}

.page-title__header {
	display: flex;
	align-items: center;
	justify-content: var(--page-title-title-justify);
	width: 100%;
}

.page-title--has-border .page-title__header {
	padding-block-end: var(--page-title-headline-pad-end);
	border-bottom: 1px solid var(--color-light-outline);
}

.page-title__headline {
	margin: 0;
	flex: 1 0 0;
	min-width: 0;
	font-family: var(--font-family-display);
	font-size: var(--page-title-headline-size);
	font-weight: 400;
	line-height: var(--page-title-headline-line);
	letter-spacing: var(--page-title-headline-tracking);
	text-align: var(--page-title-title-align);
	color: var(--color-navy);
	overflow-wrap: break-word;
}

.page-title__description {
	width: 100%;
	font-family: var(--font-family-sans);
	font-size: var(--page-title-body-size);
	font-weight: var(--page-title-body-weight);
	line-height: var(--page-title-body-line);
	text-align: var(--page-title-content-align);
	color: var(--color-navy);
	overflow-wrap: break-word;
}

.page-title__description > *:first-child {
	margin-block-start: 0;
}

.page-title__description > *:last-child {
	margin-block-end: 0;
}

.page-title__description p {
	margin-block: 0 1em;
}

.page-title__description p:last-child {
	margin-block-end: 0;
}

/* Long classic-editor body promoted to description (e.g. Privacy Policy). */
.page-title--body-description .page-title__description {
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.6;
	text-align: left;
}

.page-title--body-description .page-title__description strong {
	font-weight: 700;
}

@media (min-width: 48rem) {
	.page-title {
		--page-title-headline-pad-end: 2rem;
		--page-title-gap: clamp(1.5rem, 2vw, 2.375rem);
	}
}

