// ─── Inputs ──────────────────────────────────────────────────────────────────── #let recipient = sys.inputs.at("name", default: "First Name, Last Name") #let course = sys.inputs.at("course", default: "Course Title") #let date_str = sys.inputs.at("date", default: "MM/DD/YY") #let length_str = sys.inputs.at("length", default: "2 hours") #let cert_no = sys.inputs.at("cert_no", default: "000000-000000-00000") #let ref_no = sys.inputs.at("ref_no", default: "000X") #let instructors = sys.inputs.at("instructors", default: "") // ─── Page ────────────────────────────────────────────────────────────────────── #set page( paper: "a4", flipped: true, margin: (left: 38pt, right: 38pt, top: 28pt, bottom: 38pt), ) #set text(font: "Arial", size: 11pt, fill: black) #set par(justify: false, leading: 1.2em) // ─── Header: logo (left) + certificate numbers (right) ──────────────────────── #grid( columns: (1fr, auto), align: (left + top, right + top), image("philpro-logo.png", width: 180pt), [ #set text(size: 13pt) Certificate No: #cert_no \ Reference Number: #ref_no ], ) #v(18pt) // ─── CERTIFICATE OF COMPLETION label ────────────────────────────────────────── #text(size: 12pt, fill: rgb("#555555"))[CERTIFICATE OF COMPLETION] #v(5pt) // ─── Course title ───────────────────────────────────────────────────────────── #block[ #set par(leading: 0.65em) #text(size: 25pt, weight: "bold")[#course] ] #v(12pt) // ─── Instructors (only when provided) ──────────────────────────────────────── #if instructors != "" [ #text(size: 13pt, fill: rgb("#555555"))[Instructors] #linebreak() #text(size: 15pt, weight: "bold")[#instructors] ] #v(1fr) // ─── Bottom: recipient, date, duration, issuer ──────────────────────────────── #text(size: 15pt, weight: "bold")[#recipient] #linebreak() #text(size: 12pt)[*Date Issued:* #date_str] #linebreak() #if length_str != "" and length_str != "0 mins" [ #text(size: 12pt)[*Duration:* #length_str] #linebreak() ] #text(size: 12pt)[*Issued by:* Philproperties]