/* ManageCV document designs: the paper a CV or cover letter is rendered on.
   Geometry mirrors the shared document specification in PHP — the paper is a
   true A4 sheet (595.28pt = 794px at 96dpi) and every size below is the pixel
   equivalent of the points the PDF uses, so preview and download agree. */

.cv-paper{
	--cv-accent:#087553;
	--cv-ink:#161916;
	--cv-muted:#5c645d;
	--cv-line:#d7dbd4;
	--cv-serif:'Libre Baskerville',Georgia,'Times New Roman',serif;
	--cv-sans:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
	--cv-mono:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace;
	--cv-base:15px;
	--cv-gap:26.67px;
	--cv-pad:72px;
	--cv-name-scale:1;
	--cv-photo-size:104px;
	box-sizing:border-box;
	display:block;
	width:100%;
	max-width:794px;
	margin:0 auto;
	padding:var(--cv-pad);
	background:#fff;
	border:1px solid var(--cv-line);
	color:var(--cv-ink);
	font-family:var(--cv-sans);
	font-size:var(--cv-base);
	line-height:1.5;
	text-align:left;
	overflow-wrap:break-word;
}

.cv-paper *{box-sizing:border-box}
.cv-paper p{margin:0 0 .45rem}
.cv-paper ul{margin:.25rem 0 .45rem;padding-left:1.05rem}
.cv-paper li{margin:.12rem 0}
.cv-paper li::marker{color:var(--cv-accent)}

.cv-family-serif{font-family:var(--cv-serif)}

/* Header */
.cv-paper-head{display:flex;align-items:flex-start;gap:1.25rem;margin:0 0 var(--cv-gap)}
.cv-identity{flex:1 1 auto;min-width:0}
.cv-name{
	margin:0 0 .18em;
	color:var(--cv-ink);
	font-size:calc(29.33px * var(--cv-name-scale));
	font-weight:700;
	line-height:1.18;
	letter-spacing:-.012em;
}
.cv-headline{margin:0 0 .3em;color:var(--cv-accent);font-size:16.33px;font-weight:600;letter-spacing:.002em}
.cv-contact{margin:0;color:var(--cv-muted);font-size:13px;line-height:1.5}
.cv-paper .cv-contact-list{margin:0;padding:0;list-style:none;font-size:13.6px;word-break:break-word}
.cv-contact-list li{margin:.18rem 0}

/* Photo */
.cv-photo{
	flex:0 0 auto;
	width:var(--cv-photo-size);
	height:var(--cv-photo-size);
	margin:0;
	overflow:hidden;
	background:color-mix(in srgb,var(--cv-accent) 10%,#fff);
	border:1px solid color-mix(in srgb,var(--cv-accent) 22%,#fff);
}
.cv-photo img{display:block;width:100%;height:100%;object-fit:cover}
.cv-photo-circle{border-radius:50%}
.cv-photo-square{border-radius:4px}
.cv-photo.is-placeholder{
	display:flex;
	align-items:center;
	justify-content:center;
	color:var(--cv-accent);
	font-size:calc(var(--cv-photo-size) * .34);
	font-weight:700;
	letter-spacing:.02em;
}
.cv-photo-at-above .cv-paper-head{flex-direction:column;align-items:flex-start}
.cv-photo-at-beside .cv-identity{order:1}
.cv-photo-at-beside .cv-photo{order:2}
.cv-layout-sidebar .cv-side .cv-photo{width:100%;height:auto;aspect-ratio:1;margin:0 0 .9rem}

/* Sections */
.cv-block{margin:0 0 var(--cv-gap)}
.cv-block:last-child{margin-bottom:0}
.cv-block h3{
	margin:0 0 .45rem;
	color:var(--cv-accent);
	font-size:13px;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.1em;
}
.cv-entry{margin:0 0 10.67px}
.cv-entry:last-child{margin-bottom:0}
.cv-entry-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1rem;align-items:baseline}
.cv-entry-head strong{font-size:16px;font-weight:650;letter-spacing:-.004em}
.cv-entry-head span{flex:0 0 auto;color:var(--cv-muted);font-size:12.8px;white-space:nowrap}
.cv-entry-meta{margin:0 0 .22rem;color:var(--cv-muted);font-size:13.33px}
.cv-entry-company{margin:0 0 .3rem;color:var(--cv-ink);font-size:14px;font-weight:700}
.cv-entry-description{margin:0 0 .3rem}
.cv-promoted-role{margin:.7rem 0 0}
.cv-skills{margin:0;display:grid;gap:.42rem}
.cv-skills dt{font-weight:650;font-size:13.67px}
.cv-skills dd{margin:0;color:var(--cv-muted);font-size:13.67px}

/* Density */
.cv-density-airy{line-height:1.55}
.cv-density-tight{--cv-base:14px}
.cv-density-tight .cv-entry{margin-bottom:6.67px}

/* Heading treatments */
.cv-heading-rule .cv-block h3,
.cv-heading-underline .cv-block h3{padding-bottom:.28rem;border-bottom:1px solid var(--cv-line)}
.cv-heading-underline .cv-block h3{border-bottom-color:var(--cv-ink);color:var(--cv-ink);text-transform:none;font-size:16px;letter-spacing:0}
.cv-heading-plain .cv-block h3{color:var(--cv-muted);letter-spacing:.14em;font-size:12px}
.cv-heading-caps .cv-block h3{letter-spacing:.13em}
.cv-heading-band .cv-block h3{
	display:inline-block;
	padding:.2rem .5rem;
	background:color-mix(in srgb,var(--cv-accent) 12%,#fff);
	color:var(--cv-accent);
	border-radius:3px;
}
.cv-heading-band .cv-paper-head{
	padding:1.15rem 1.25rem;
	margin:calc(-1 * var(--cv-pad)) calc(-1 * var(--cv-pad)) var(--cv-gap);
	background:var(--cv-accent);
	color:#fff;
}
.cv-heading-band .cv-name,
.cv-heading-band .cv-headline{color:#fff}
.cv-heading-band .cv-contact{color:rgba(255,255,255,.88)}
.cv-heading-band .cv-photo{border-color:rgba(255,255,255,.55)}
.cv-heading-rule .cv-paper-head,
.cv-heading-caps .cv-paper-head,
.cv-heading-underline .cv-paper-head{padding-bottom:.8rem;border-bottom:1.5px solid var(--cv-line)}

/* Layouts */
.cv-paper-body{display:block}
.cv-layout-sidebar .cv-paper-body{display:grid;grid-template-columns:minmax(0,33%) minmax(0,1fr);gap:29.33px}
.cv-layout-sidebar .cv-side{
	padding:16px;
	margin:-16px 0 0 -16px;
	background:color-mix(in srgb,var(--cv-accent) 8%,#fff);
	border-radius:4px;
	font-size:13.67px;
}
.cv-layout-sidebar .cv-side .cv-block h3{border:0;padding:0}
.cv-paired .cv-block-skills .cv-skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem 1.2rem}
.cv-mono-meta .cv-entry-head span,
.cv-mono-meta .cv-entry-meta{font-family:var(--cv-mono);font-size:12.5px}

/* Per-design touches */
.cv-paper[data-design=executive-serif] .cv-name{letter-spacing:.005em}
.cv-paper[data-design=editorial]{--cv-line:#c9cdc6}
.cv-paper[data-design=editorial] .cv-name{line-height:1.06}
.cv-paper[data-design=ats-clean] .cv-headline{color:var(--cv-ink)}
.cv-paper[data-design=ats-clean] .cv-block h3{color:var(--cv-ink)}
.cv-paper[data-design=ats-clean] li::marker{color:var(--cv-ink)}
.cv-paper[data-design=minimal-line] .cv-headline{color:var(--cv-muted)}
.cv-paper[data-design=technical] .cv-block-skills .cv-skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem 1.2rem}

/* Cover letters */
.letter-paper .letter-body{max-width:62ch}
.letter-paper .letter-to{margin:0 0 .35rem;color:var(--cv-muted);font-size:13.67px}
.letter-paper .letter-subject{margin:0 0 .9rem;font-weight:650}
.letter-paper .letter-greeting{margin:0 0 .8rem}
.letter-paper .letter-body p{margin:0 0 .8rem}
.letter-paper .letter-signature{margin-top:1.4rem;font-weight:650}

/* Scaled previews used in galleries and pickers */
.cv-scale{
	position:relative;
	width:100%;
	overflow:hidden;
	background:#fff;
	aspect-ratio:1/1.4142;
}
.cv-scale .cv-paper{
	position:absolute;
	inset:0;
	width:794px;
	max-width:none;
	border:0;
	transform:scale(.33);
	transform-origin:top left;
	pointer-events:none;
}
.cv-scale-wide .cv-paper{transform:scale(.47)}

@media (max-width:640px){
	.cv-layout-sidebar .cv-paper-body{grid-template-columns:minmax(0,1fr)}
	.cv-layout-sidebar .cv-side{margin:0}
	.cv-paired .cv-block-skills .cv-skills,
	.cv-paper[data-design=technical] .cv-block-skills .cv-skills{grid-template-columns:minmax(0,1fr)}
	.cv-entry-head span{white-space:normal}
	.cv-paper-head{gap:1rem}
}

@media print{
	.cv-paper{border:0;max-width:none;padding:0}
	.cv-photo{break-inside:avoid}
	.cv-block,.cv-entry{break-inside:avoid}
}
