{{ define "main" }}
  {{ $section := "" }}
  {{ with .Parent }}{{ $section = path.Base .RelPermalink }}{{ end }}
  {{ $cover := .Params.cover_image }}
  {{ $color := .Params.color }}

  {{/* Cover image first (full-bleed, directly under the masthead) */}}
  {{ if $cover }}
    <img class="single-hero-image" src="{{ $cover | relURL }}" alt="" loading="eager" />
  {{ end }}

  <article class="single" data-section="{{ $section }}"{{ with $color }} data-color="{{ . }}"{{ end }}>
    <header class="single-header">
      <h1>{{ .Title }}</h1>
      {{ with .Params.summary }}
        <p class="single-summary">{{ . }}</p>
      {{ end }}
      {{/* Byline + Meta nur bei Library-Beiträgen — Seiten wie Manifest,
           Kontakt, Spenden brauchen weder Autor noch „Aktualisiert am". */}}
      {{ if eq .Section "archiv" }}
        {{ $author := .Params.author | default site.Params.author.name }}
        {{ $aslug := urlize $author }}
        {{ if not .Params.author }}{{ with index site.Data.authors site.Params.author.email }}{{ with .slug }}{{ $aslug = . }}{{ end }}{{ end }}{{ end }}
        {{ $authorPage := and (ne $aslug "") (site.GetPage (printf "/authors/%s" $aslug)) }}
        {{ if or $author .Date }}
          <p class="single-byline">
            {{- with $author -}}
              {{- if $authorPage -}}<a class="byline-author" href="{{ $authorPage.RelPermalink }}">{{ . }}</a>
              {{- else -}}<span class="byline-author">{{ . }}</span>{{- end -}}
            {{- end -}}
            {{- if and $author .Date -}}, {{ end -}}
            {{- if .Date -}}<time class="byline-date" datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "02.01.2006" }}</time>{{- end -}}
          </p>
        {{ end }}

        {{/* Reading time + last-modified — Republik-style, directly below byline */}}
        {{ $showReadingTime := .Params.showreadingtime | default site.Params.showreadingtime | default true }}
        {{ $showLastMod := .Params.showlastmod | default site.Params.showlastmod | default false }}
        {{ $hasLastmod := and $showLastMod .Lastmod (ne (.Lastmod.Format "2006-01-02") (.Date.Format "2006-01-02")) }}
        {{ if or (and $showReadingTime .ReadingTime) $hasLastmod }}
          <p class="single-meta">
            {{ if and $showReadingTime .ReadingTime }}<span class="reading-time">{{ .ReadingTime }} min Lesezeit</span>{{ end }}
            {{ if $hasLastmod }}{{ if and $showReadingTime .ReadingTime }} · {{ end }}<span class="lastmod">Aktualisiert am {{ .Lastmod.Format "02.01.2006" }}</span>{{ end }}
          </p>
        {{ end }}
      {{ end }}
    </header>

    {{/* Table of Contents */}}
    {{ $hasToC := .Params.toc | default true }}
    {{ $headers := findRE "<h[2-6]" .Content }}
    {{ if and $hasToC (ge (len $headers) 1) }}
      <nav class="toc">
        <strong>Inhalt</strong>
        <div class="toc-content">{{ .TableOfContents }}</div>
      </nav>
    {{ end }}

    <div class="single-content">
      {{ .Content }}
    </div>

    {{/* Tags: bei Seiten (nicht-Library) wie bisher unter dem Text. Bei Library
         wandern sie in die Aktionsreihe (rechts neben Dialog) im Partial. */}}
    {{ if ne .Section "archiv" }}
      {{- with .Params.tags }}
        <ul class="tag-pills" aria-label="Tags">
          {{- range . -}}<li><a href="/tags/{{ . | urlize }}/">{{ . }}</a></li>{{- end -}}
        </ul>
      {{- end }}
    {{ end }}

    {{/* Artikel-Fuß (zitieren, Dialog, Tags, Versionen) — nur bei Library. */}}
    {{ if eq .Section "archiv" }}
      {{ partial "provenance.html" . }}
      <script src="/version-history.js"></script>
    {{ end }}
  </article>

{{ end }}
