/**
 * Styles for all 5 resume designs. Shared by three consumers:
 *  1. The on-screen "view saved resume" page (enqueued as a normal stylesheet).
 *  2. dompdf, which inlines this file verbatim (see inc/class-pdf.php) — so
 *     everything here intentionally avoids flexbox/grid (dompdf's support
 *     for both is incomplete) in favor of float/inline-block/table-cell,
 *     which render identically in a browser and in dompdf.
 *  3. The live wizard preview (assets/js/resume-templates.js renders the
 *     same class names client-side from the in-progress form state).
 */

.resume-page {
	background: #fff;
	color: #1e293b;
	font-family: 'DejaVu Sans', 'Inter', Arial, sans-serif;
	font-size: 11pt;
	line-height: 1.5;
	max-width: 800px;
	margin: 0 auto;
	box-sizing: border-box;
}
.ara-pdf .resume-page {
	max-width: none;
	margin: 0;
}
.resume-page * {
	box-sizing: border-box;
}
.resume-page img {
	/* dompdf needs explicit dimensions on <img> or it can mis-measure
	   raster images when laying out the page. */
	object-fit: cover;
}
.cf::after {
	content: "";
	display: table;
	clear: both;
}

/* ===================== Classic ===================== */

.tpl-classic {
	padding: 48px;
	text-align: left;
}
.tpl-classic .c-header {
	text-align: center;
	border-bottom: 2px solid #1e293b;
	padding-bottom: 12px;
	margin-bottom: 20px;
}
.tpl-classic .c-photo {
	display: block;
	width: 90px;
	height: 90px;
	border-radius: 50%;
	margin: 0 auto 14px;
}
.tpl-classic .c-name {
	font-size: 26pt;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin: 0 0 6px;
}
.tpl-classic .c-contact {
	font-size: 9pt;
	color: #64748b;
	margin: 0;
}
.tpl-classic .c-section {
	margin-bottom: 18px;
}
.tpl-classic .c-heading {
	font-size: 12pt;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	border-bottom: 2px solid #1e293b;
	padding-bottom: 4px;
	margin: 0 0 8px;
}
.tpl-classic .c-summary { margin: 0; }
.tpl-classic .c-skills { margin: 0; }
.tpl-classic .c-item { margin-bottom: 12px; }
.tpl-classic .c-item-row::after { content: ""; display: table; clear: both; }
.tpl-classic .c-item-title { float: left; font-weight: 700; }
.tpl-classic .c-item-date { float: right; color: #475569; font-size: 9.5pt; }
.tpl-classic .c-item-subtitle { clear: both; font-style: italic; color: #334155; margin: 2px 0 4px; }
.tpl-classic .c-bullets { margin: 0; padding-left: 18px; }
.tpl-classic .c-empty { font-style: italic; color: #94a3b8; }

/* ===================== Modern ===================== */

.tpl-modern .m-header {
	background: #4f46e5;
	color: #fff;
	padding: 25px;
	overflow: hidden; /* clearfix so the header's height accounts for the floated photo */
}
.tpl-modern .m-photo {
	float: left;
	width: 70px;
	height: 70px;
	border-radius: 50%;
	margin-right: 18px;
	border: 2px solid rgba(255,255,255,0.6);
}
.tpl-modern .m-header-text { overflow: hidden; } /* new block formatting context so it doesn't wrap under the float */
.tpl-modern .m-name { font-size: 22pt; font-weight: 700; margin: 0 0 6px; }
.tpl-modern .m-contact { font-size: 9pt; color: #e0e7ff; margin: 0; }
.tpl-modern .m-body { padding: 25px; }
.tpl-modern .m-section { margin-bottom: 18px; }
.tpl-modern .m-heading {
	font-size: 13pt;
	font-weight: 700;
	color: #4f46e5;
	margin: 0 0 10px;
}
.tpl-modern .m-accent-bar {
	display: inline-block;
	width: 22px;
	height: 4px;
	background: #4f46e5;
	border-radius: 2px;
	margin-right: 8px;
	vertical-align: middle;
}
.tpl-modern .m-skills { }
.tpl-modern .m-skill-tag {
	display: inline-block;
	background: #eef2ff;
	color: #4338ca;
	border-radius: 10px;
	padding: 3px 12px;
	font-size: 9pt;
	margin: 0 6px 6px 0;
}
.tpl-modern .m-timeline-item {
	position: relative;
	border-left: 2px solid #e0e7ff;
	padding-left: 20px;
	margin-bottom: 14px;
}
.tpl-modern .m-timeline-dot {
	position: absolute;
	left: -6px;
	top: 4px;
	width: 10px;
	height: 10px;
	border-radius: 5px;
	background: #4f46e5;
}
.tpl-modern .m-item-row::after { content: ""; display: table; clear: both; }
.tpl-modern .m-item-title { float: left; font-weight: 700; }
.tpl-modern .m-item-date { float: right; color: #4f46e5; font-weight: 600; font-size: 9.5pt; }
.tpl-modern .m-item-subtitle { clear: both; color: #475569; margin: 2px 0 4px; }
.tpl-modern .m-bullets { margin: 0; padding-left: 18px; }
.tpl-modern .m-empty { font-style: italic; color: #94a3b8; }

/* ===================== Minimal ===================== */

.tpl-minimal {
	padding: 56px;
}
.tpl-minimal .mn-header { margin-bottom: 40px; overflow: hidden; }
.tpl-minimal .mn-photo {
	float: left;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	margin-right: 20px;
}
.tpl-minimal .mn-name { font-size: 30pt; font-weight: 300; letter-spacing: 0.5px; margin: 0 0 10px; }
.tpl-minimal .mn-contact { font-size: 9pt; color: #64748b; margin: 0; }
.tpl-minimal .mn-section { margin-bottom: 32px; }
.tpl-minimal .mn-heading {
	font-size: 8.5pt;
	font-weight: 600;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 2px;
	margin: 0 0 14px;
}
.tpl-minimal .mn-grid-item { margin-bottom: 16px; }
.tpl-minimal .mn-grid-item::after { content: ""; display: table; clear: both; }
.tpl-minimal .mn-date-col { float: left; width: 110px; color: #94a3b8; font-size: 9.5pt; }
.tpl-minimal .mn-content-col { margin-left: 130px; }
.tpl-minimal .mn-item-title { font-weight: 600; }
.tpl-minimal .mn-item-subtitle { color: #64748b; margin: 2px 0 6px; }
.tpl-minimal .mn-bullets { margin: 0; padding: 0; list-style: none; }
.tpl-minimal .mn-bullets li { padding-left: 14px; text-indent: -14px; }
.tpl-minimal .mn-bullets li::before { content: "— "; }
.tpl-minimal .mn-skills { color: #475569; }
.tpl-minimal .mn-empty { font-style: italic; color: #cbd5e1; }

/* ===================== Creative ===================== */

.tpl-creative { padding: 0; }
.tpl-creative::after { content: ""; display: table; clear: both; }
.tpl-creative .cr-sidebar {
	float: left;
	width: 33%;
	background: #0891b2;
	background-image: linear-gradient(180deg, #0891b2 0%, #0e7490 100%);
	color: #fff;
	padding: 24px;
	min-height: 100%;
}
.tpl-creative .cr-photo {
	display: block;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	margin: 0 auto 16px;
	border: 3px solid rgba(255,255,255,0.5);
}
.tpl-creative .cr-name { font-size: 18pt; font-weight: 700; margin: 0 0 8px; text-align: center; }
.tpl-creative .cr-accent-bar { display: block; width: 30px; height: 3px; background: rgba(255,255,255,0.6); margin: 0 auto 20px; }
.tpl-creative .cr-block { margin-bottom: 22px; }
.tpl-creative .cr-sidebar-heading { font-size: 10pt; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 10px; }
.tpl-creative .cr-contact-line { font-size: 9pt; margin: 0 0 6px; word-break: break-word; }
.tpl-creative .cr-skill-item { font-size: 9.5pt; margin: 0 0 6px; }
.tpl-creative .cr-dot { display: inline-block; width: 6px; height: 6px; border-radius: 3px; background: #a5f3fc; margin-right: 8px; }
.tpl-creative .cr-edu-item { font-size: 9.5pt; margin: 0 0 12px; }
.tpl-creative .cr-muted { color: rgba(255,255,255,0.75); }
.tpl-creative .cr-main {
	float: right;
	width: 67%;
	padding: 25px;
}
.tpl-creative .cr-section { margin-bottom: 20px; }
.tpl-creative .cr-heading {
	font-size: 13pt;
	font-weight: 700;
	color: #0891b2;
	margin: 0 0 10px;
}
.tpl-creative .cr-item { border-left: 3px solid #ecfeff; padding-left: 14px; margin-bottom: 14px; }
.tpl-creative .cr-item-title { font-weight: 700; }
.tpl-creative .cr-item-subtitle { color: #0891b2; font-weight: 500; }
.tpl-creative .cr-item-date { color: #64748b; font-size: 9pt; margin-bottom: 6px; }
.tpl-creative .cr-bullets { margin: 0; padding: 0; list-style: none; }
.tpl-creative .cr-bullets li { padding-left: 14px; text-indent: -14px; }
.tpl-creative .cr-bullets li::before { content: "▸ "; color: #0891b2; }
.tpl-creative .cr-empty { font-style: italic; color: #94a3b8; }

/* PDF/PHP version only: templates/resume/creative.php wraps a <table>
   for the (always-short) header row — instead of floated <div>s — plus
   a separate full-width .cr-experience block after it, both inside one
   outer .tpl-creative div (so the shared .cr-heading/.cr-item/etc rules
   above still apply to both). See that file for why the structure
   differs from the JS live-preview's simpler float-based markup, which
   is unpaginated and doesn't need any of this. */
.tpl-creative .cr-header-table {
	width: 100%;
	border-collapse: collapse;
}
.tpl-creative .cr-header-table td.cr-sidebar {
	float: none;
	display: table-cell;
	vertical-align: top;
	width: 33%;
	background-color: #0891b2;
}
.tpl-creative .cr-header-table td.cr-main {
	float: none;
	display: table-cell;
	vertical-align: top;
	width: 67%;
}
.tpl-creative .cr-experience {
	padding: 20px 25px 25px;
}
.tpl-creative .cr-experience-heading {
	margin-top: 0;
}

/* ===================== Executive (new 5th design) ===================== */

.tpl-executive .ex-header {
	background: #0D1B2A;
	color: #fff;
	padding: 32px 40px 24px;
	overflow: hidden;
}
.tpl-executive .ex-photo {
	float: left;
	width: 76px;
	height: 76px;
	border-radius: 50%;
	margin-right: 20px;
	border: 2px solid #E91E63;
}
.tpl-executive .ex-name { font-size: 24pt; font-weight: 700; margin: 0 0 10px; }
.tpl-executive .ex-accent-rule { display: block; width: 60px; height: 4px; background: linear-gradient(90deg, #E91E63, #FF5252); border-radius: 2px; margin-bottom: 10px; }
.tpl-executive .ex-contact { font-size: 9pt; color: #cbd5e1; margin: 0; }
.tpl-executive .ex-body { padding: 28px 40px; }
.tpl-executive .ex-section { margin-bottom: 20px; }
.tpl-executive .ex-heading {
	font-size: 9.5pt;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: #1e293b;
	border-bottom: 2px solid #E91E63;
	display: inline-block;
	padding-bottom: 3px;
	margin: 0 0 12px;
}
.tpl-executive .ex-skills-row { }
.tpl-executive .ex-skill-tag {
	display: inline-block;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	padding: 3px 10px;
	font-size: 9pt;
	margin: 0 6px 6px 0;
	color: #334155;
}
.tpl-executive .ex-item { margin-bottom: 14px; }
.tpl-executive .ex-item-row::after { content: ""; display: table; clear: both; }
.tpl-executive .ex-item-row > div:first-child { float: left; }
.tpl-executive .ex-item-date { float: right; color: #64748b; font-size: 9.5pt; }
.tpl-executive .ex-item-title { font-weight: 700; }
.tpl-executive .ex-item-subtitle { color: #475569; }
.tpl-executive .ex-bullets { clear: both; margin: 6px 0 0; padding-left: 18px; }
.tpl-executive .ex-empty { font-style: italic; color: #94a3b8; }

/* ===================== Technical (new 6th design) ===================== */

.tpl-technical {
	font-family: 'DejaVu Sans Mono', 'Courier New', monospace;
}
.tpl-technical .tc-header {
	padding: 32px 40px 24px;
	border-bottom: 3px solid #0d9488;
	overflow: hidden;
}
.tpl-technical .tc-photo {
	float: left;
	width: 70px;
	height: 70px;
	border-radius: 8px;
	margin-right: 18px;
	border: 2px solid #0d9488;
}
.tpl-technical .tc-name { font-size: 21pt; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 8px; color: #134e4a; }
.tpl-technical .tc-contact { font-size: 9pt; color: #475569; margin: 0; }
.tpl-technical .tc-body { padding: 24px 40px; }
.tpl-technical .tc-section { margin-bottom: 20px; }
.tpl-technical .tc-heading {
	font-size: 11pt;
	font-weight: 700;
	color: #0d9488;
	border-bottom: 1px solid #99f6e4;
	padding-bottom: 4px;
	margin: 0 0 12px;
}
.tpl-technical .tc-skills-bar {
	background: #134e4a;
	border-radius: 6px;
	padding: 12px 14px;
}
.tpl-technical .tc-skill-tag {
	display: inline-block;
	background: #0d9488;
	color: #f0fdfa;
	border-radius: 4px;
	padding: 3px 10px;
	font-size: 8.5pt;
	margin: 0 6px 6px 0;
}
.tpl-technical .tc-item { margin-bottom: 14px; }
.tpl-technical .tc-item-row::after { content: ""; display: table; clear: both; }
.tpl-technical .tc-item-title { float: left; font-weight: 700; color: #1e293b; font-size: 10pt; }
.tpl-technical .tc-at { color: #0d9488; }
.tpl-technical .tc-item-date { float: right; color: #0d9488; font-size: 9pt; }
.tpl-technical .tc-bullets { clear: both; margin: 8px 0 0; padding: 0; list-style: none; }
.tpl-technical .tc-bullets li { padding-left: 16px; text-indent: -16px; font-size: 9.5pt; color: #334155; margin-bottom: 3px; }
.tpl-technical .tc-bullets li::before { content: "> "; color: #0d9488; }
.tpl-technical .tc-empty { font-style: italic; color: #94a3b8; }

/* ===================== Bold (new 7th design) ===================== */

.tpl-bold {
	font-family: 'DejaVu Sans', Arial, sans-serif;
}
.tpl-bold .bd-header {
	background: #18181b;
	color: #fff;
	padding: 36px 40px 28px;
	overflow: hidden;
}
.tpl-bold .bd-photo {
	float: left;
	width: 80px;
	height: 80px;
	border-radius: 6px;
	margin-right: 20px;
	border: 3px solid #f97316;
}
.tpl-bold .bd-name { font-size: 30pt; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 8px; }
.tpl-bold .bd-contact { font-size: 9pt; color: #d4d4d8; margin: 0; }
.tpl-bold .bd-accent-bar { height: 8px; background: #f97316; }
.tpl-bold .bd-body { padding: 28px 40px; }
.tpl-bold .bd-section { margin-bottom: 22px; }
.tpl-bold .bd-heading {
	font-size: 13pt;
	font-weight: 700;
	color: #18181b;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin: 0 0 14px;
}
.tpl-bold .bd-badge {
	display: inline-block;
	background: #f97316;
	color: #fff;
	font-size: 9pt;
	font-weight: 700;
	border-radius: 4px;
	padding: 3px 8px;
	margin-right: 10px;
}
.tpl-bold .bd-skills-row { }
.tpl-bold .bd-skill-tag {
	display: inline-block;
	background: #18181b;
	color: #fff;
	border-radius: 3px;
	padding: 4px 12px;
	font-size: 9pt;
	font-weight: 600;
	margin: 0 6px 6px 0;
}
.tpl-bold .bd-item { margin-bottom: 16px; }
.tpl-bold .bd-item-row::after { content: ""; display: table; clear: both; }
.tpl-bold .bd-item-row > div:first-child { float: left; }
.tpl-bold .bd-item-date { float: right; color: #f97316; font-weight: 700; font-size: 9.5pt; }
.tpl-bold .bd-item-title { font-weight: 700; font-size: 11pt; color: #18181b; }
.tpl-bold .bd-item-subtitle { color: #52525b; font-weight: 600; }
.tpl-bold .bd-bullets { clear: both; margin: 8px 0 0; padding-left: 18px; }
.tpl-bold .bd-empty { font-style: italic; color: #a1a1aa; }

/* ===================== Elegant (new 8th design) ===================== */

.tpl-elegant {
	font-family: 'DejaVu Serif', Georgia, serif;
	background: #fdfbf7;
	padding: 48px;
}
.tpl-elegant .eg-header { text-align: center; margin-bottom: 28px; }
.tpl-elegant .eg-photo {
	display: block;
	width: 90px;
	height: 90px;
	border-radius: 50%;
	margin: 0 auto 16px;
	border: 2px solid #b45309;
}
.tpl-elegant .eg-name { font-size: 26pt; font-weight: 400; font-style: italic; letter-spacing: 0.5px; margin: 0 0 10px; color: #292524; }
.tpl-elegant .eg-double-rule { margin: 0 auto 12px; width: 140px; }
.tpl-elegant .eg-double-rule span { display: block; height: 1px; width: 100%; background: #b45309; margin-bottom: 3px; }
.tpl-elegant .eg-contact { font-size: 9pt; color: #78716c; margin: 0; letter-spacing: 0.5px; }
.tpl-elegant .eg-section { margin-bottom: 20px; }
.tpl-elegant .eg-heading {
	font-size: 10pt;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: #b45309;
	text-align: center;
	margin: 0 0 14px;
}
.tpl-elegant .eg-summary { text-align: center; color: #44403c; font-style: italic; }
.tpl-elegant .eg-item { margin-bottom: 14px; }
.tpl-elegant .eg-item-row::after { content: ""; display: table; clear: both; }
.tpl-elegant .eg-item-title { float: left; color: #292524; }
.tpl-elegant .eg-item-date { float: right; color: #a8a29e; font-size: 9pt; }
.tpl-elegant .eg-bullets { clear: both; margin: 6px 0 0; padding-left: 20px; color: #44403c; }
.tpl-elegant .eg-bullets li { margin-bottom: 3px; }
.tpl-elegant .eg-skills { text-align: center; color: #44403c; }
.tpl-elegant .eg-empty { font-style: italic; color: #a8a29e; text-align: center; }

/* ===================== Compact (new 9th design) ===================== */

.tpl-compact {
	padding: 32px 40px;
	font-size: 9.5pt;
}
.tpl-compact .cp-header {
	overflow: hidden;
	border-bottom: 2px solid #334155;
	padding-bottom: 10px;
	margin-bottom: 14px;
}
.tpl-compact .cp-photo {
	float: left;
	width: 56px;
	height: 56px;
	border-radius: 6px;
	margin-right: 14px;
}
.tpl-compact .cp-name { font-size: 17pt; font-weight: 700; margin: 0 0 4px; color: #1e293b; }
.tpl-compact .cp-contact { font-size: 8.5pt; color: #64748b; margin: 0; }
.tpl-compact .cp-section { margin-bottom: 12px; }
.tpl-compact .cp-heading {
	font-size: 9.5pt;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #334155;
	border-bottom: 1px solid #cbd5e1;
	padding-bottom: 3px;
	margin: 0 0 6px;
}
.tpl-compact .cp-skills { margin: 0; color: #334155; }
.tpl-compact .cp-item { margin-bottom: 8px; }
.tpl-compact .cp-item-row::after { content: ""; display: table; clear: both; }
.tpl-compact .cp-item-title { float: left; font-weight: 700; font-size: 9.5pt; color: #1e293b; }
.tpl-compact .cp-item-date { float: right; color: #64748b; font-size: 8.5pt; }
.tpl-compact .cp-bullets { clear: both; margin: 3px 0 0; padding-left: 16px; }
.tpl-compact .cp-bullets li { margin-bottom: 1px; }
.tpl-compact .cp-empty { font-style: italic; color: #94a3b8; }

/* ===================== Vibrant (new 10th design) ===================== */

.tpl-vibrant .vb-header {
	background: #a855f7;
	background-image: linear-gradient(120deg, #a855f7 0%, #ec4899 50%, #f97316 100%);
	color: #fff;
	padding: 32px 40px;
	overflow: hidden;
}
.tpl-vibrant .vb-photo {
	float: left;
	width: 84px;
	height: 84px;
	border-radius: 50%;
	margin-right: 20px;
	border: 3px solid rgba(255,255,255,0.7);
}
.tpl-vibrant .vb-name { font-size: 24pt; font-weight: 700; margin: 0 0 8px; }
.tpl-vibrant .vb-contact { font-size: 9pt; color: rgba(255,255,255,0.9); margin: 0; }
.tpl-vibrant .vb-body { padding: 28px 40px; }
.tpl-vibrant .vb-section { margin-bottom: 20px; }
.tpl-vibrant .vb-heading {
	font-size: 13pt;
	font-weight: 700;
	color: #a855f7;
	margin: 0 0 10px;
}
.tpl-vibrant .vb-skills-row { }
.tpl-vibrant .vb-skill-tag {
	display: inline-block;
	background: #a855f7;
	background-image: linear-gradient(120deg, #a855f7, #ec4899);
	color: #fff;
	border-radius: 12px;
	padding: 4px 14px;
	font-size: 9pt;
	font-weight: 600;
	margin: 0 6px 6px 0;
}
.tpl-vibrant .vb-item { margin-bottom: 14px; }
.tpl-vibrant .vb-item-row::after { content: ""; display: table; clear: both; }
.tpl-vibrant .vb-item-row > div:first-child { float: left; }
.tpl-vibrant .vb-item-date { float: right; color: #ec4899; font-weight: 600; font-size: 9.5pt; }
.tpl-vibrant .vb-item-title { font-weight: 700; color: #1e293b; }
.tpl-vibrant .vb-item-subtitle { color: #a855f7; font-weight: 500; }
.tpl-vibrant .vb-bullets { clear: both; margin: 6px 0 0; padding-left: 18px; }
.tpl-vibrant .vb-empty { font-style: italic; color: #94a3b8; }
