/*
 * HFM.Parts — Single policy (CPT: policies)
 *
 * Layout-only. Tokens + prose typography inherited from blog.css via
 * `.hfm-policy` being in the shared token block and the body using
 * `.hfm-blog-content` for entry content styling.
 *
 * Frame widths:
 *   --hfm-policy-outer: 1400px   (breadcrumb + footer max width)
 *   --hfm-policy-inner: 780px    (prose reading column)
 *
 * @package HFM.Parts
 */

.hfm-policy {
	--hfm-policy-outer: 1400px;
	--hfm-policy-inner: 780px;
	--hfm-policy-gutter: clamp(16px, 4vw, 32px);

	background: var(--hfm-bg);
	color: var(--hfm-ink);
	min-height: 60vh;
}

/* Outer 1400px frame. Centred, with mobile-safe gutters. */
.hfm-policy__frame {
	max-width: var(--hfm-policy-outer);
	margin: 0 auto;
	padding: 0 var(--hfm-policy-gutter);
}

/* ── Breadcrumb ─────────────────────────────────────────────────────────────── */

.hfm-policy__breadcrumb {
	padding: 16px 0;
	font-size: 12px;
	color: var(--hfm-ink-2);
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0 2px;
	border-bottom: 1px solid var(--hfm-line);
}
.hfm-policy__breadcrumb a { color: var(--hfm-ink-2); text-decoration: none; }
.hfm-policy__breadcrumb a:hover { color: var(--hfm-ink-1); }
.hfm-policy__breadcrumb .delim { margin: 0 6px; color: var(--hfm-ink-4); }
.hfm-policy__breadcrumb .current { color: var(--hfm-ink-1); }

/* ── Header ─────────────────────────────────────────────────────────────────── */

.hfm-policy__header {
	max-width: var(--hfm-policy-inner);
	margin: 0 auto;
	padding: clamp(40px, 6vw, 72px) 0 clamp(24px, 3vw, 32px);
	border-bottom: 1px solid var(--hfm-line);
}
.hfm-policy__title {
	font-family: var(--hfm-f-sans);
	font-weight: 900;
	font-size: clamp(28px, 4.2vw, 46px);
	line-height: 1.1;
	letter-spacing: -0.025em;
	color: var(--hfm-ink);
	margin: 0 0 14px;
	text-wrap: balance;
}
.hfm-policy__updated {
	font-family: var(--hfm-f-mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--hfm-ink-2);
	margin: 0;
}

/* ── Body (prose) ───────────────────────────────────────────────────────────── */

.hfm-policy__body {
	max-width: var(--hfm-policy-inner);
	margin: 0 auto;
	padding: clamp(32px, 5vw, 56px) 0 clamp(48px, 6vw, 80px);
}

/* ── Footer: related policies ───────────────────────────────────────────────── */

.hfm-policy__footer {
	max-width: var(--hfm-policy-inner);
	margin: 0 auto;
	padding: clamp(32px, 4vw, 48px) 0 clamp(48px, 6vw, 80px);
	border-top: 1px solid var(--hfm-line);
}
.hfm-policy__footer-title {
	font-family: var(--hfm-f-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--hfm-ink-2);
	margin: 0 0 16px;
}
.hfm-policy__related {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 8px 24px;
}
.hfm-policy__related li { margin: 0; }
.hfm-policy__related a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 0;
	font-size: 15px;
	color: var(--hfm-ink-1);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color .15s ease, border-color .15s ease;
}
.hfm-policy__related a::before {
	content: "→";
	color: var(--hfm-accent);
	transition: transform .15s ease;
}
.hfm-policy__related a:hover {
	color: var(--hfm-accent);
}
.hfm-policy__related a:hover::before {
	transform: translateX(3px);
}

/* ── Print ──────────────────────────────────────────────────────────────────── */

@media print {
	.hfm-policy__breadcrumb,
	.hfm-policy__footer { display: none; }
	.hfm-policy__frame { max-width: 100%; padding: 0; }
	.hfm-policy__header,
	.hfm-policy__body { max-width: 100%; }
}
