\ProvidesClass{resume}[2026/07/27 Evidence-first professional resume]
\LoadClass[11pt,a4paper]{article}

\RequirePackage{enumitem}
\RequirePackage{ifthen}
\RequirePackage{lastpage}
\RequirePackage{parskip}
\RequirePackage{needspace}

\pagestyle{empty}
\setlength{\parindent}{0pt}

\def\@resumename{}
\def\@resumeheadline{}
\def\@resumecontact{}

\newcommand{\name}[1]{\def\@resumename{#1}}
\newcommand{\headline}[1]{\def\@resumeheadline{#1}}
\newcommand{\contactline}[1]{\def\@resumecontact{#1}}

\newcommand{\printresumeheader}{%
  {\LARGE\bfseries \@resumename}\par
  \vspace{0.15em}
  \ifthenelse{\equal{\@resumeheadline}{}}{}{\@resumeheadline\par}
  \vspace{0.1em}
  {\small \@resumecontact}\par
  \vspace{0.45em}
}

\AtBeginDocument{\printresumeheader}

\newenvironment{rSection}[1]{%
  \vspace{0.35em}
  {\bfseries #1}\par
  \vspace{0.1em}\hrule\vspace{0.35em}
}{%
  \vspace{0.2em}
}

% Arguments: employer, dates, formal title, location.
\newenvironment{rSubsection}[4]{%
  \Needspace{6\baselineskip}%
  {\bfseries #1}\hfill{\small #2}\par
  {\itshape #3}\hfill{\itshape #4}\par
  \vspace{0.1em}
  \begin{itemize}[leftmargin=1.25em,label=\textbullet,itemsep=0.18em,topsep=0.15em,parsep=0pt,partopsep=0pt]
}{%
  \end{itemize}
  \vspace{0.25em}
}

\newcommand{\skillline}[2]{%
  \textbf{#1:} #2\par
  \vspace{0.08em}
}

\newcommand{\compactentry}[2]{%
  \textbf{#1}\hfill #2\par
}
