Implementación
Cómo está construido
Un único componente con API pequeña: id, eyebrow, title, titleAccent, desc, layout, align, body, dark, as. Devuelve un <header> con un Tag dinámico (h2 por defecto, h3 si se pide).
El componente vive en SectionHeading.astro y expone diez props a propósito: id (anchor), eyebrow, title (obligatorio), titleAccent (segunda línea de acento), desc, layout (simple|duo), align (center|left, solo simple), body[] (solo duo), dark (texto claro sobre fondo oscuro) y as (h2|h3). La etiqueta semántica del título es DINÁMICA: el componente declara «const Tag = as» y la renderiza como «Tag class="sech__title"»; cambiar la prop cambia el elemento HTML emitido.
La regla de uso está cableada en los defaults: layout="simple", align="center", as="h2". Eso significa que sin tocar nada se obtiene el rótulo tipo «catálogo». Para una sección de contenido (lo más común), basta con pasar layout="duo" y el array body. La jerarquía baja a H3 con un as="h3", sin tocar el resto. Cero JavaScript: HTML + CSS estático generado en build.