/* ============================================================
   BOLTON Signal — 05 TEMPLATES (shared page/post/archive chrome)
   Homepage, capability, family, RFQ and product specifics live in
   their own tpl-*.css files (conditionally enqueued).
   ============================================================ */
@layer templates {
	/* Page hero / heads */
	.page-hero { position: relative; overflow: hidden; padding-block: clamp(2.5rem, 6vw, var(--bx-sp-60)) var(--bx-sp-40); }
	.page-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(90% 120% at 0% 0%, rgba(200,162,76,.10), transparent 55%); pointer-events: none; }
	/* Internal-page title scale: materially smaller than the homepage HUD hero,
	   controlled clamp (tops at 3rem), constrained measure + tight leading so long
	   capability/section names wrap gracefully instead of dominating the viewport. */
	.page-hero__title, .page-title { font-size: var(--bx-fs-2xl); max-width: 22ch; line-height: var(--bx-lh-tight); }
	.page-hero__intro, .page-hero__search { margin-top: var(--bx-sp-40); max-width: 60ch; color: var(--bx-contrast-midtone); }
	.page-head { margin-bottom: var(--bx-sp-50); }
	.page-head__title { font-size: var(--bx-fs-2xl); }

	/* ---- Shared internal-page shell vocabulary (v0.3.0) ----
	   Reusable primitives so every non-home template inherits one title scale,
	   lede, section rhythm and reading width. All surfaces are appearance-aware via
	   tokens (light-dark) — no hard-coded backgrounds, so light page = light
	   surfaces/dark text and dark = dark/light text, with no half-light/half-dark.
	   The wide shell is the existing .container (--bx-wide ~1200px); editorial body
	   text uses .page-content for a controlled reading measure inside that shell. */
	.page-shell { } /* semantic hook; width comes from .container / .container--narrow */
	.page-eyebrow { } /* alias — pair with .eyebrow for the mono/gold/tracking treatment */
	.page-lede { margin-top: var(--bx-sp-30); max-width: 62ch; color: var(--bx-text-2); font-size: var(--bx-fs-lg); }
	.page-section { padding-block: clamp(2rem, 5vw, var(--bx-sp-60)); }
	.page-grid { display: grid; gap: var(--bx-sp-40); }
	.page-content { max-width: 72ch; } /* editorial reading width inside the wide shell */

	/* Entry content rhythm */
	.entry-content > * + * { margin-top: var(--bx-sp-40); }
	.entry-content h2 { margin-top: var(--bx-sp-50); font-size: var(--bx-fs-xl); }
	.entry-content h3 { margin-top: var(--bx-sp-40); font-size: var(--bx-fs-lg); }
	.entry-content ul, .entry-content ol { padding-left: 1.4rem; }
	.entry-content li + li { margin-top: 0.4rem; }
	.entry-content blockquote { border-left: 3px solid var(--bx-gold); padding-left: var(--bx-sp-40); color: var(--bx-contrast-midtone); font-size: var(--bx-fs-lg); }
	.entry-content a { color: var(--bx-accent-strong); }
	.entry__feature { width: 100%; border-radius: var(--bx-radius-lg); border: var(--bx-border-hair); margin-bottom: var(--bx-sp-40); }
	.entry__meta { color: var(--bx-steel); margin-top: var(--bx-sp-20); }

	/* Post lists */
	.post-list { display: grid; gap: var(--bx-sp-40); }
	@media (min-width: 700px) { .post-list { grid-template-columns: repeat(2, 1fr); } }

	/* Pagination */
	.pagination, .nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: var(--bx-sp-50); justify-content: center; }
	.pagination .page-numbers { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 0 0.6rem; border: var(--bx-border-hair); border-radius: var(--bx-radius); color: var(--bx-contrast-midtone); text-decoration: none; }
	.pagination .page-numbers.current { background: var(--bx-gold); color: var(--bx-btn-primary-fg); border-color: var(--bx-accent-strong); font-weight: 700; }
	.pagination .page-numbers:hover { border-color: var(--bx-accent-strong); color: var(--bx-cream); }

	/* 404 */
	.error-404 { min-height: 60vh; display: grid; place-items: center; text-align: center; }
	.error-404__inner { display: grid; gap: var(--bx-sp-40); justify-items: center; }
	.error-404__title { font-size: var(--bx-fs-2xl); max-width: 16ch; }
	.error-404__body { color: var(--bx-contrast-midtone); max-width: 52ch; }
	.error-404__actions { display: flex; flex-wrap: wrap; gap: var(--bx-sp-30); justify-content: center; }

	/* Search form */
	.search-form { display: flex; gap: 0.5rem; max-width: 520px; }
	.search-form .search-field { flex: 1; padding: 0.7rem 0.9rem; background: var(--bx-field-bg); border: 1px solid var(--bx-field-border); border-radius: var(--bx-radius); color: var(--bx-field-text); }
	.search-form .search-field::placeholder { color: var(--bx-placeholder); opacity: 1; }
	.search-form .search-field:focus { outline: none; border-color: var(--bx-accent-strong); box-shadow: var(--bx-focus); }
	.search-form .search-submit { padding: 0.7rem 1.1rem; background: var(--bx-gold); color: var(--bx-btn-primary-fg); border: 0; border-radius: var(--bx-radius); font-weight: 600; cursor: pointer; }
}
