/* Resume Builder: the eight templates. A page is .pg.t-<template> with its design in CSS variables (render.js styleVars):
   --pw/--ph paper, --acc accent, --tint/--tint2 accent mixed with white, --ff font, --fs size, --gap spacing, --lh line height,
   --mx/--mt/--mb margins. Everything visible is real text, borders or backgrounds (no pseudo-elements, no images), so the
   direct PDF writer can reproduce it exactly. */
.pg{--ink:#1c2026;--dim:#555b65;--rule:#cfd4db;position:relative;width:var(--pw);height:var(--ph);background:#fff;color:var(--ink);overflow:hidden;
  font-family:var(--ff);font-size:var(--fs);line-height:var(--lh);font-weight:400;font-style:normal;text-align:left;letter-spacing:0;word-spacing:0;
  font-kerning:normal;font-variant-ligatures:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-font-smoothing:antialiased;color-scheme:light;
  -webkit-text-size-adjust:100%;text-size-adjust:100%}
.pg *{box-sizing:border-box;margin:0;padding:0;border:0;font:inherit;color:inherit}
.pg b{font-weight:700}
.pg a{color:inherit;text-decoration:none}
.pg .ph{color:#a9afb8}
.pg-in{position:absolute;inset:0;display:flex;flex-direction:column;padding:var(--mt) var(--mx) var(--mb)}
.cols{flex:1 1 auto;min-height:0;display:flex}
.col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;overflow:hidden}
.col>*{flex:none}
.pg.letter .cols{margin-top:calc(var(--gap)*2.6)}
.pg.letter{font-size:calc(var(--fs)*1.06)}

/* header */
.hd{flex:none}
.pg-in>.hd{margin-bottom:calc(var(--gap)*1.4)}
.nm{font-size:calc(var(--fs)*2.3);line-height:1.12;font-weight:700}
.jt{font-size:calc(var(--fs)*1.12);line-height:1.3;margin-top:2pt;color:var(--dim)}
.ct{display:flex;flex-wrap:wrap;margin-top:5pt;font-size:calc(var(--fs)*.92);color:var(--dim)}
.ct .sep{white-space:pre;color:#9aa1aa}
.ci{overflow-wrap:anywhere}

/* sections */
.sh{display:flex;align-items:center;gap:6pt;margin-top:calc(var(--gap)*2.2);margin-bottom:calc(var(--gap)*.7)}
.sh .ln{display:none}
.sht{font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:calc(var(--fs)*.94);line-height:1.3}
.col>.sh:first-child{margin-top:0}
.en{margin-top:calc(var(--gap)*1.15)}
.sh+.en{margin-top:0}
.r1,.r2{display:flex;justify-content:space-between;align-items:baseline;gap:8pt}
.et{font-weight:700;min-width:0}
.ed,.el{flex:none;color:var(--dim);font-size:calc(var(--fs)*.93);white-space:nowrap}
.eo{min-width:0}
.bl{display:flex;gap:5pt;margin-top:calc(var(--gap)*.32);padding-left:1pt}
.en+.bl{margin-top:calc(var(--gap)*.55)}
.dot{flex:none;color:var(--acc)}
.bt{flex:1 1 auto;min-width:0}
.p{margin-top:calc(var(--gap)*.6);white-space:pre-line}
.sh+.p{margin-top:0}
.sk,.ce,.lg,.lg1{margin-top:calc(var(--gap)*.45)}
.sh+.sk,.sh+.ce,.sh+.lg,.sh+.lg1{margin-top:0}
.ce{display:flex;justify-content:space-between;align-items:baseline;gap:8pt}
.lg .sep{white-space:pre;color:#9aa1aa}
.cblock .ci{margin-top:2.5pt}
.cblock .ci:first-child{margin-top:0}

/* letters */
.lt-d{color:var(--dim)}
.lt-to{margin-top:calc(var(--gap)*2);white-space:pre-line}
.lt-g{margin-top:calc(var(--gap)*2.6)}
.lt-p{margin-top:calc(var(--gap)*1.6);white-space:pre-line}
.lt-c{margin-top:calc(var(--gap)*2.2)}
.lt-s{margin-top:calc(var(--gap)*3.6);font-weight:700}
.col>.lt-g:first-child,.col>.lt-to:first-child{margin-top:0}

/* 1. Classic: centred header, ruled headings */
.t-classic .hd{text-align:center;padding-bottom:calc(var(--gap)*1.3)}
.t-classic .nm{font-size:calc(var(--fs)*2.35);letter-spacing:.02em}
.t-classic .jt{color:var(--acc)}
.t-classic .ct{justify-content:center}
.t-classic .sh{border-bottom:.8pt solid var(--ink);padding-bottom:1.6pt}
.t-classic .sht{color:var(--acc);letter-spacing:.12em}
.t-classic .eo{font-style:italic}
.t-classic .dot{color:var(--ink)}

/* 2. Modern: name in colour, coloured headings over a soft rule */
.t-modern .hd{padding-bottom:calc(var(--gap)*.8)}
.t-modern .nm{color:var(--acc);font-size:calc(var(--fs)*2.55);letter-spacing:-.01em}
.t-modern .jt{color:var(--ink)}
.t-modern .sh{border-bottom:1pt solid var(--tint2);padding-bottom:2pt}
.t-modern .sht{color:var(--acc);font-size:calc(var(--fs)*.88);letter-spacing:.14em}
.t-modern .eo{color:var(--acc)}

/* 3. Minimal: headings in the left margin */
.t-minimal{--gut:31mm}
.t-minimal .hd{padding-bottom:calc(var(--gap)*1.4);margin-bottom:calc(var(--gap)*1.6);border-bottom:.8pt solid var(--rule)}
.t-minimal .nm{letter-spacing:-.01em}
.t-minimal .jt{color:var(--acc)}
.t-minimal .col>:not(.sh){margin-left:var(--gut)}
.t-minimal .sh{display:block;position:relative;height:0;margin-bottom:0;overflow:visible}
.t-minimal .sht{position:absolute;left:0;top:0;width:calc(var(--gut) - 5mm);font-size:calc(var(--fs)*.78);letter-spacing:.09em;color:var(--dim);line-height:calc(var(--lh) / .78)}
.t-minimal .sh+*{margin-top:0}
.t-minimal .eo{color:var(--dim)}
.t-minimal .dot{color:var(--dim)}

/* 4. Compact: dense, one-line entries, contact on the right */
.t-compact .hd{display:flex;justify-content:space-between;align-items:flex-end;gap:12pt;padding-bottom:calc(var(--gap)*1.2);border-bottom:1.6pt solid var(--acc)}
.t-compact .nm{font-size:calc(var(--fs)*2.2)}
.t-compact .jt{color:var(--acc)}
.t-compact .ct{flex-direction:column;align-items:flex-end;text-align:right;margin-top:0;flex:none;max-width:48%}
.t-compact .ct .sep{display:none}
.t-compact .sh{border-left:2.6pt solid var(--acc);padding-left:5pt;margin-top:calc(var(--gap)*2.1)}
.t-compact .sht{font-size:calc(var(--fs)*.9)}
.t-compact .eo,.t-compact .el{color:var(--dim);font-size:inherit}
.t-compact .en{margin-top:var(--gap)}
.t-compact .sh+.en{margin-top:0}
.t-compact .en.in .et{font-weight:400}

/* 5. Executive: formal serif, centred, lines either side of headings */
.t-executive .hd{text-align:center;border-top:3pt solid var(--acc);padding-top:calc(var(--gap)*1.8);padding-bottom:calc(var(--gap)*1.1)}
.t-executive .nm{text-transform:uppercase;letter-spacing:.15em;font-weight:400;font-size:calc(var(--fs)*2.2)}
.t-executive .jt{color:var(--acc);text-transform:uppercase;letter-spacing:.08em;font-size:calc(var(--fs)*.95);margin-top:4pt}
.t-executive .ct{justify-content:center}
.t-executive .sh{gap:9pt}
.t-executive .sh .ln{display:block;flex:1 1 0;height:0;border-top:.8pt solid var(--rule)}
.t-executive .sht{color:var(--acc);letter-spacing:.18em;font-size:calc(var(--fs)*.92)}
.t-executive .eo{font-style:italic}
.t-executive .dot{color:var(--ink)}

/* 6. Bold: a colour band across the top */
.t-bold .pg-in{padding-top:0}
.t-bold.cont .pg-in{padding-top:var(--mt)}
.t-bold .hd{background:var(--acc);color:#fff;margin:0 calc(var(--mx)*-1) calc(var(--gap)*2);padding:calc(var(--mt)*1.05) var(--mx) calc(var(--mt)*.8)}
.t-bold .nm{font-size:calc(var(--fs)*2.6);color:#fff}
.t-bold .jt,.t-bold .ct,.t-bold .ct .sep{color:#fff}
.t-bold .sht{color:var(--acc);text-transform:none;letter-spacing:0;font-size:calc(var(--fs)*1.28)}
.t-bold .sh{margin-top:calc(var(--gap)*2.4)}
.t-bold .eo{color:var(--acc)}
.t-bold.letter .cols{margin-top:0}

/* 7. Sidebar: a tinted side column (two columns: less ATS-safe) */
.t-sidebar .pg-in{padding:0}
.t-sidebar .side{order:-1;flex:0 0 33%;background:var(--tint);padding:var(--mt) 7mm var(--mb) 8.5mm}
.t-sidebar .main{padding:var(--mt) var(--mx) var(--mb) 9mm}
.t-sidebar .hd{margin-bottom:calc(var(--gap)*2)}
.t-sidebar .nm{color:var(--acc);font-size:calc(var(--fs)*2.45)}
.t-sidebar .jt{color:var(--ink)}
.t-sidebar .sht{color:var(--acc)}
.t-sidebar .main .sh{border-bottom:1pt solid var(--tint2);padding-bottom:2pt}
.t-sidebar .side .sht{font-size:calc(var(--fs)*.86)}
.t-sidebar .side{font-size:calc(var(--fs)*.93)}
.t-sidebar .side .sk b,.t-sidebar .side .lg1 b{display:block}
.t-sidebar .side .c{display:none}
.t-sidebar .side .ce{display:block}
.t-sidebar .side .ce .ed{display:block}
.t-sidebar .eo{color:var(--acc)}

/* 8. Split: header across, narrow column on the right (two columns: less ATS-safe) */
.t-split .hd{padding-bottom:calc(var(--gap)*1.4);border-bottom:.8pt solid var(--rule);margin-bottom:calc(var(--gap)*2)}
.t-split .jt{color:var(--acc)}
.t-split .cols{gap:6.5mm}
.t-split .side{flex:0 0 33%;border-left:.8pt solid var(--rule);padding-left:6mm}
.t-split .sht{color:var(--acc)}
.t-split .side{font-size:calc(var(--fs)*.94)}
.t-split .side .r1,.t-split .side .r2{flex-wrap:wrap;column-gap:6pt;row-gap:0}
.t-split .side .sk b,.t-split .side .lg1 b{display:block}
.t-split .side .c{display:none}
.t-split .side .ce{display:block}
.t-split .side .ce .ed{display:block}
.t-split .eo{color:var(--dim);font-style:italic}
.t-split.letter .cols{margin-top:0}
