%% template.tex — Pandoc-LaTeX-Template für den DesTEngS-Lebenslauf
%% Engine: LuaLaTeX (wegen fontspec + OpenType-Schrift IBM Plex Sans)
%% Status: zweite Iteration mit typographischen Tiefen-Eingriffen.

\documentclass[11pt,a4paper]{article}

%% Section-Nummerierung deaktivieren (CV soll keine 1.2.3-Nummern haben)
\setcounter{secnumdepth}{0}

%% === Schrift ================================================================
\usepackage{fontspec}
\setmainfont{IBM Plex Sans}
\setsansfont{IBM Plex Sans}
\setmonofont{IBM Plex Mono}
\renewcommand{\familydefault}{\sfdefault}

%% === Sprache und Mikrotypographie ===========================================
\usepackage{microtype}
\usepackage{polyglossia}
\setdefaultlanguage{german}

%% === Geometrie ==============================================================
\usepackage[a4paper,
  top=2.2cm, bottom=2.2cm, left=2.5cm, right=2.5cm,
  headheight=16pt, headsep=0.6cm,
  footskip=1.0cm]{geometry}

%% === Absatz-Layout ==========================================================
%% CV-Stil: keine Erstzeilen-Einrückung, stattdessen Vertikalabstand
\setlength{\parindent}{0pt}
\setlength{\parskip}{0.5em plus 0.2em minus 0.1em}

%% === Widow/Orphan-Kontrolle (strikt) ========================================
\widowpenalty=10000
\clubpenalty=10000
\displaywidowpenalty=10000
\brokenpenalty=10000
\raggedbottom

%% === Hyphenation tunen ======================================================
%% Hoehere Penalty: lieber leichte Ueberlaenge als unschoene Trennungen
\hyphenpenalty=500
\exhyphenpenalty=500
\tolerance=400
\emergencystretch=2em

%% === Farbe ==================================================================
\usepackage{xcolor}
\definecolor{destengsblue}{HTML}{0B5394}
\definecolor{rulegray}{HTML}{BFBFBF}

%% === Hyperlinks =============================================================
%% URLs blau, interne Links (\pageref u.ae.) schwarz
\usepackage[hidelinks]{hyperref}
\hypersetup{
  colorlinks=true,
  linkcolor=black,
  urlcolor=destengsblue,
  citecolor=destengsblue,
  pdfauthor={Dr.-Ing. Thomas Langer},
  pdftitle={Lebenslauf Dr.-Ing. Thomas Langer},
  pdfcreator={Pandoc + LuaLaTeX},
}

%% === Bilder =================================================================
\usepackage{graphicx}

%% === Listen =================================================================
\usepackage{enumitem}
\setlist{nosep, leftmargin=1.2em, topsep=0.2em, partopsep=0pt, parsep=0pt, itemsep=0.15em}
%% Level 1: gefuellter Bullet
\setlist[itemize,1]{label=\textbullet}
%% Level 2: Endstrich (textopenbullet ist in Plex Sans nicht enthalten)
\setlist[itemize,2]{label=\textendash, leftmargin=2.0em}

%% === Tabellen ===============================================================
%% Pandoc emittiert fuer Markdown-Tabellen eine longtable mit booktabs-Linien
%% (\toprule, \bottomrule). Im CV werden Tabellen rahmenlos als Layout-Werkzeug
%% eingesetzt (z.B. Ausbildung als 2-Spalten-Layout: Datum links, Inhalt rechts).
\usepackage{booktabs}
\usepackage{longtable}
%% Linienbreiten auf 0pt: \toprule/\midrule/\bottomrule rendern unsichtbar.
\setlength{\heavyrulewidth}{0pt}
\setlength{\lightrulewidth}{0pt}
\setlength{\cmidrulewidth}{0pt}
%% Kein Vertikalabstand um die Linien.
\setlength{\aboverulesep}{0pt}
\setlength{\belowrulesep}{0pt}
%% Vertikalabstand vor/nach longtable reduzieren (Default ist \bigskipamount).
\setlength{\LTpre}{0.4em}
\setlength{\LTpost}{0.4em}

%% === Schusterjungen-Schutz ==================================================
\usepackage{needspace}

%% === Abschnitte =============================================================
\usepackage{titlesec}

%% H1 (\section): gross, blau, mit Trennlinie. Im CV nur einmal (Name oben).
\titleformat{\section}
  {\Large\bfseries\color{destengsblue}}
  {}{0em}
  {}
  [\vspace{-0.3em}{\color{rulegray}\titlerule[0.4pt]}]

%% H2 (\subsection): mittelgross, blau, mit Trennlinie.
%% Hauptabschnitte (Kontaktdaten, Zusammenfassung, Stationen, Ausbildung, Kenntnisse)
\titleformat{\subsection}
  {\large\bfseries\color{destengsblue}}
  {}{0em}
  {}
  [\vspace{-0.3em}{\color{rulegray}\titlerule[0.3pt]}]

%% H3 (\subsubsection): normal-fett, jeweils Stations-Titel.
%% needspace verhindert Fast-Schusterjunge: kein Pagebreak, wenn weniger
%% als 6 Zeilen Platz; nopagebreak nach: Titel und erste Liste bleiben zusammen.
\titleformat{\subsubsection}
  {\needspace{6\baselineskip}\normalsize\bfseries}
  {}{0em}
  {}
  [\nopagebreak]

\titlespacing*{\section}{0pt}{1.4em}{0.5em}
\titlespacing*{\subsection}{0pt}{1.0em}{0.4em}
\titlespacing*{\subsubsection}{0pt}{0.7em}{0.2em}

%% === Kopf- und Fusszeile ====================================================
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\small Dr.-Ing. Thomas Langer}
\fancyhead[R]{\small Lebenslauf}
\fancyfoot[R]{\small \thepage\,/\,\pageref{LastPage}}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\headrule}{\color{rulegray}\hrule height 0.4pt}

%% Erste Seite ohne Header
\fancypagestyle{firstpage}{%
  \fancyhf{}%
  \fancyfoot[R]{\small \thepage\,/\,\pageref{LastPage}}%
  \renewcommand{\headrulewidth}{0pt}%
}

%% === Pandoc-Hilfen ==========================================================
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}

%% Lange URL-Zeilen brechen
\usepackage{xurl}

%% === Dokument ===============================================================
\begin{document}

\thispagestyle{firstpage}

$body$

\end{document}
