diff --git a/layouts/_partials/spec-content.html b/layouts/_partials/spec-content.html
new file mode 100644
index 00000000..21596dc5
--- /dev/null
+++ b/layouts/_partials/spec-content.html
@@ -0,0 +1,9 @@
+{{- /* Shared render for spec pages: title, optional description, endpoints list, body, and last-mod info. */ -}}
+
+
{{ .Title }}
+ {{ partial "endpoints-toc.html" . }}
+
+ {{ .Content }}
+
+ {{ partial "page-meta-lastmod.html" . }}
+
diff --git a/layouts/content.html b/layouts/content.html
index e58073f3..1fde0699 100644
--- a/layouts/content.html
+++ b/layouts/content.html
@@ -1,4 +1,3 @@
-
-
{{ .Title }}
- {{ .Content }}
-
+{{ define "main" }}
+ {{ partial "spec-content.html" . }}
+{{ end }}
diff --git a/layouts/docs/single.html b/layouts/docs/single.html
new file mode 100644
index 00000000..1fde0699
--- /dev/null
+++ b/layouts/docs/single.html
@@ -0,0 +1,3 @@
+{{ define "main" }}
+ {{ partial "spec-content.html" . }}
+{{ end }}