/**
 * Atelier CV — CV document rendering styles.
 *
 * Hand-translated from the reference app's Tailwind utility classes
 * (CVRenderer.tsx + the 5 Template*.tsx components) — every color below
 * is a literal Tailwind default-palette hex value (slate/zinc/stone/amber
 * scales), matched 1:1 against the exact utility class used in the
 * corresponding React source, not approximated.
 *
 * Font stacks assume the active theme has enqueued the same Google Fonts
 * families the reference app uses (Newsreader, Cormorant Garamond,
 * Playfair Display, Plus Jakarta Sans, JetBrains Mono — already true of
 * the atelier-cv theme's Phase 1 enqueue). Falls back gracefully to
 * Georgia/serif or system sans-serif otherwise; nothing breaks if a
 * different theme provides no webfonts.
 */

.cv-document-wrapper {
	display: inline-block;
}

/* ==========================================================================
   Paper sheet (CVRenderer.tsx wrapper + getPaperToneClass)
   ========================================================================== */

.cv-paper-sheet {
	position: relative;
	width: 210mm;
	min-height: 297mm;
	margin-inline: auto;
	border-radius: 2px;
	-webkit-user-select: text;
	user-select: text;
}
.cv-paper-sheet::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	border-radius: 2px;
	border: 1px solid rgba(0, 0, 0, 0.05);
	mix-blend-mode: multiply;
}

.cv-paper--pure-white   { background: #ffffff; color: #111827; box-shadow: 0 25px 60px rgba(0, 0, 0, 0.45); }
.cv-paper--subtle-cream { background: #fcfaf4; color: #1f2022; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4); }
.cv-paper--warm-stone   { background: #f7f6f2; color: #1c1d1f; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4); }
.cv-paper--crisp-slate  { background: #f8fafc; color: #0f172a; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4); }

.cv-font--modern-sans         { font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.cv-font--editorial-serif     { font-family: 'Newsreader', 'Cormorant Garamond', 'Playfair Display', Georgia, serif; }
.cv-font--executive-serif     { font-family: 'Newsreader', 'Cormorant Garamond', 'Playfair Display', Georgia, serif; letter-spacing: normal; }
.cv-font--contemporary-grotesk{ font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; letter-spacing: -0.01em; }

.cv-density--compact  { padding: 2rem 2rem; font-size: 13px; line-height: 1.375; }
.cv-density--balanced { padding: 2.5rem 2.5rem; font-size: 14px; line-height: 1.5; }
.cv-density--generous { padding: 3rem 3rem; font-size: 15px; line-height: 1.625; }
@media (min-width: 640px) {
	.cv-density--compact  { padding: 2.5rem 2.5rem; }
	.cv-density--balanced { padding: 3rem 3rem; }
	.cv-density--generous { padding: 4rem 4rem; }
}

/* ==========================================================================
   Shared primitives reused by every template partial
   ========================================================================== */

.cv-doc { width: 100%; }
.cv-doc h1, .cv-doc h2, .cv-doc h3 { margin: 0; }
.cv-doc p { margin: 0; }

.cv-doc__row { display: flex; justify-content: space-between; align-items: baseline; gap: 0.75em; margin-bottom: 0.15em; }
.cv-doc__row--company { margin-bottom: 0.4em; }
.cv-doc__row--meta { font-size: 0.71em; }

.cv-doc__contact { display: flex; flex-wrap: wrap; gap: 0 1em; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 0.71em; font-weight: 500; }
.cv-doc__contact--center { justify-content: center; }
.cv-doc__contact--right { justify-content: flex-end; text-align: right; }

.cv-doc__section { margin-bottom: 1.6em; }
.cv-doc__section--tight { margin-bottom: 1.3em; }
.cv-doc__section--flush { margin-bottom: 0; }
.cv-doc__section--flush-top { padding-top: 0; }

.cv-doc__section-title { font-size: 0.71em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; font-family: 'Plus Jakarta Sans', sans-serif; }

.cv-doc__summary { font-size: 0.86em; line-height: 1.6; }
.cv-doc__summary--justify { text-align: justify; }

.cv-doc__stack { display: flex; flex-direction: column; gap: 1em; }
.cv-doc__stack--tight { gap: 0.75em; }
.cv-doc__stack--tighter { gap: 0.35em; }

.cv-doc__bullets { list-style: none; margin: 0.5em 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.3em; font-size: 0.86em; }
.cv-doc__bullet--justify { text-align: justify; }

.cv-doc__exp-role { font-weight: 700; font-size: 1em; }
.cv-doc__exp-dates { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 0.86em; font-weight: 500; white-space: nowrap; }
.cv-doc__exp-company { font-weight: 600; }
.cv-doc__exp-location { font-size: 0.86em; }

.cv-doc__edu-institution { font-weight: 700; }
.cv-doc__edu-degree { font-weight: 600; }

.cv-doc__skills-cat { font-weight: 700; }

.cv-doc__project-title { font-weight: 700; }
.cv-doc__project-desc { font-size: 0.86em; line-height: 1.5; margin-top: 0.15em; }
.cv-doc__project-role { font-size: 0.86em; }

.cv-doc__chip-row { display: flex; flex-wrap: wrap; gap: 0.35em; margin-top: 0.5em; }
.cv-doc__chip { display: inline-block; font-size: 0.71em; padding: 0.15em 0.5em; border-radius: 4px; font-weight: 500; }

.cv-doc__footer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2em; padding-top: 0.75em; font-size: 0.86em; }
.cv-doc__footer-col--right { text-align: right; }
.cv-doc__footer-label { display: block; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.71em; margin-bottom: 0.35em; }
.cv-doc__footer-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.25em; }
.cv-doc__footer-item-name { font-weight: 600; }
.cv-doc__footer-item-meta { display: block; font-size: 0.86em; }

/* ==========================================================================
   Executive template
   ========================================================================== */

.cv-doc--executive { color: #0f172a; line-height: 1.6; }
.cv-doc--executive .cv-doc__header--exec { border-bottom: 2px solid #0f172a; padding-bottom: 1.25em; margin-bottom: 1.6em; text-align: center; }
.cv-doc--executive .cv-doc__name--exec { font-size: 1.85em; font-weight: 700; letter-spacing: -0.01em; text-transform: uppercase; color: #020617; margin-bottom: 0.35em; }
.cv-doc--executive .cv-doc__headline--exec { font-size: 0.86em; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #334155; margin-bottom: 0.75em; }
.cv-doc--executive .cv-doc__contact { color: #475569; }
.cv-doc--executive .cv-doc__section-title { color: #0f172a; border-bottom: 1px solid #cbd5e1; padding-bottom: 0.35em; margin-bottom: 0.6em; }
.cv-doc--executive .cv-doc__summary { color: #1e293b; }
.cv-doc--executive .cv-doc__exp-role--serif { font-family: inherit; color: #020617; }
.cv-doc--executive .cv-doc__exp-dates { color: #475569; }
.cv-doc--executive .cv-doc__exp-company--italic { font-style: italic; color: #334155; }
.cv-doc--executive .cv-doc__exp-location { color: #64748b; }
.cv-doc--executive .cv-doc__bullets--disc { list-style: disc; padding-left: 1.2em; }
.cv-doc--executive .cv-doc__edu-institution--serif { color: #020617; }
.cv-doc--executive .cv-doc__skills-row { display: flex; gap: 0.5em; margin-bottom: 0.25em; font-size: 0.86em; }
.cv-doc--executive .cv-doc__skills-cat { min-width: 9em; color: #0f172a; }
.cv-doc--executive .cv-doc__project-title--serif { color: #020617; }
.cv-doc--executive .cv-doc__project-role--italic { font-style: italic; color: #475569; }
.cv-doc--executive .cv-doc__footer-grid { border-top: 1px solid #e2e8f0; }
.cv-doc--executive .cv-doc__footer-label { color: #64748b; }

/* ==========================================================================
   Modern template
   ========================================================================== */

.cv-doc--modern { color: #0f172a; }
.cv-doc--modern .cv-doc__header--modern { border-bottom: 1px solid #e2e8f0; padding-bottom: 1.25em; margin-bottom: 1.25em; }
.cv-doc__modern-head-row { display: flex; flex-direction: column; gap: 0.5em; }
@media (min-width: 640px) { .cv-doc__modern-head-row { flex-direction: row; align-items: baseline; justify-content: space-between; } }
.cv-doc--modern .cv-doc__name--modern { font-size: 1.85em; font-weight: 800; letter-spacing: -0.02em; color: #020617; }
.cv-doc--modern .cv-doc__headline--modern { font-size: 0.86em; font-weight: 600; color: #475569; margin-top: 0.15em; }
.cv-doc__modern-links { display: flex; flex-wrap: wrap; gap: 1em; margin-top: 0.6em; padding-top: 0.5em; border-top: 1px solid #f1f5f9; font-size: 0.71em; color: #475569; }
.cv-doc__modern-grid { display: grid; grid-template-columns: 8fr 4fr; gap: 1.5em; }
.cv-doc__modern-main { display: flex; flex-direction: column; gap: 1.25em; }
.cv-doc__modern-side { display: flex; flex-direction: column; gap: 1.25em; border-left: 1px solid #f1f5f9; padding-left: 1em; }
.cv-doc--modern .cv-doc__section-title--dot { display: flex; align-items: center; gap: 0.5em; color: #0f172a; margin-bottom: 0.4em; }
.cv-doc--modern .cv-doc__section-title--dot::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #0f172a; display: inline-block; }
.cv-doc--modern .cv-doc__section-title--ruled { color: #0f172a; border-bottom: 1px solid #e2e8f0; padding-bottom: 0.3em; margin-bottom: 0.5em; }
.cv-doc--modern .cv-doc__summary { color: #334155; }
.cv-doc__exp-item--railed { position: relative; padding-left: 0.9em; border-left: 1px solid #e2e8f0; }
.cv-doc__exp-item--railed::before { content: ''; position: absolute; left: -4.5px; top: 0.3em; width: 8px; height: 8px; border-radius: 50%; background: #94a3b8; }
.cv-doc--modern .cv-doc__exp-role { color: #020617; font-size: 0.86em; }
.cv-doc--modern .cv-doc__exp-dates { color: #64748b; font-size: 0.79em; }
.cv-doc--modern .cv-doc__exp-company { color: #334155; font-size: 0.79em; }
.cv-doc--modern .cv-doc__exp-location { color: #64748b; font-size: 0.79em; }
.cv-doc--modern .cv-doc__bullets { color: #334155; }
.cv-doc--modern .cv-doc__bullets li { display: flex; gap: 0.5em; align-items: flex-start; line-height: 1.5; }
.cv-doc__bullet-dot { color: #94a3b8; }
.cv-doc__project-card { padding: 0.6em; border-radius: 8px; background: #f8fafc; border: 1px solid #e2e8f0; }
.cv-doc--modern .cv-doc__project-title { color: #0f172a; font-size: 0.86em; }
.cv-doc__project-link { font-family: 'JetBrains Mono', monospace; font-size: 0.71em; color: #64748b; }
.cv-doc--modern .cv-doc__project-desc { color: #475569; }
.cv-doc__chip--muted { background: #f1f5f9; color: #1e293b; border: 1px solid rgba(226, 232, 240, 0.6); }
.cv-doc--modern .cv-doc__edu-institution { color: #0f172a; font-size: 0.86em; }
.cv-doc__edu-degree-line { color: #334155; font-weight: 500; font-size: 0.79em; margin-top: 0.1em; }
.cv-doc__edu-honors { color: #475569; font-style: italic; font-size: 0.71em; margin-top: 0.1em; }
.cv-doc--modern .cv-doc__row--meta { color: #64748b; margin-top: 0.15em; }
.cv-doc__skills-cat--block { display: block; color: #64748b; margin-bottom: 0.3em; font-size: 0.71em; text-transform: uppercase; letter-spacing: 0.06em; }
.cv-doc--modern .cv-doc__footer-item-name { color: #0f172a; font-size: 0.86em; }
.cv-doc--modern .cv-doc__footer-item-meta { color: #64748b; }
.cv-doc__lang-name { font-weight: 500; color: #1e293b; }

/* ==========================================================================
   Minimal template
   ========================================================================== */

.cv-doc--minimal { color: #18181b; letter-spacing: normal; }
.cv-doc--minimal .cv-doc__header--minimal { margin-bottom: 1.6em; }
.cv-doc__minimal-top-row { display: flex; flex-direction: column; gap: 0.4em; border-bottom: 1px solid #18181b; padding-bottom: 0.75em; margin-bottom: 0.5em; }
@media (min-width: 640px) { .cv-doc__minimal-top-row { flex-direction: row; align-items: baseline; justify-content: space-between; } }
.cv-doc--minimal .cv-doc__name--minimal { font-size: 1.5em; font-weight: 600; letter-spacing: -0.01em; color: #09090b; }
.cv-doc__minimal-location { font-family: 'JetBrains Mono', monospace; font-size: 0.71em; color: #71717a; text-transform: uppercase; letter-spacing: 0.06em; }
.cv-doc__minimal-sub-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.3em; font-size: 0.86em; color: #52525b; }
.cv-doc__minimal-headline { font-weight: 500; color: #27272a; }
.cv-doc__minimal-meta { display: flex; flex-wrap: wrap; gap: 0 0.75em; font-family: 'JetBrains Mono', monospace; font-size: 0.79em; color: #71717a; }
.cv-doc--minimal .cv-doc__summary--minimal { color: #3f3f46; max-width: 34em; }
.cv-doc__minimal-row { display: grid; grid-template-columns: 3fr 9fr; gap: 1em; border-top: 1px solid #e4e4e7; padding-top: 0.75em; }
.cv-doc--minimal .cv-doc__section-title--mono { font-family: 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: 0.12em; color: #a1a1aa; font-weight: 400; }
.cv-doc--minimal .cv-doc__exp-role { color: #09090b; font-size: 0.86em; }
.cv-doc__exp-dates--mono { font-family: 'JetBrains Mono', monospace; color: #71717a; font-size: 0.71em; }
.cv-doc__minimal-company-line { font-size: 0.79em; color: #52525b; margin-bottom: 0.4em; }
.cv-doc--minimal .cv-doc__exp-company { color: #27272a; font-weight: 500; }
.cv-doc__bullets--railed li { padding-left: 0.5em; border-left: 1px solid #e4e4e7; line-height: 1.6; }
.cv-doc--minimal .cv-doc__edu-honors-inline { color: #71717a; font-style: italic; }
.cv-doc__minimal-skill-row { display: flex; flex-direction: column; gap: 0.2em; font-size: 0.86em; }
@media (min-width: 640px) { .cv-doc__minimal-skill-row { flex-direction: row; align-items: baseline; gap: 0.5em; } }
.cv-doc__skills-cat--mono { font-family: 'JetBrains Mono', monospace; font-size: 0.71em; color: #71717a; min-width: 8.5em; text-transform: uppercase; }
.cv-doc--minimal .cv-doc__project-title { color: #18181b; font-size: 0.86em; }
.cv-doc--minimal .cv-doc__project-desc { color: #52525b; }
.cv-doc__minimal-credentials-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; font-size: 0.86em; }
.cv-doc__footer-label--mono { font-family: 'JetBrains Mono', monospace; color: #a1a1aa; text-transform: uppercase; }
.cv-doc--minimal .cv-doc__footer-item-name { color: #18181b; }
.cv-doc--minimal .cv-doc__footer-list, .cv-doc--minimal .cv-doc__minimal-credentials-grid p { color: #3f3f46; }

/* ==========================================================================
   Creative Professional template
   ========================================================================== */

.cv-doc--creative { color: #1c1917; }
.cv-doc--creative .cv-doc__header--creative { position: relative; padding-bottom: 1.5em; margin-bottom: 1.5em; border-bottom: 2px solid #292524; }
.cv-doc__creative-head-row { display: flex; flex-direction: column; gap: 1em; }
@media (min-width: 768px) { .cv-doc__creative-head-row { flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.cv-doc__eyebrow-mono { display: block; font-family: 'JetBrains Mono', monospace; font-size: 0.71em; text-transform: uppercase; letter-spacing: 0.12em; color: #92400e; font-weight: 600; margin-bottom: 0.3em; }
.cv-doc--creative .cv-doc__name--creative { font-family: 'Newsreader', 'Playfair Display', Georgia, serif; font-weight: 400; font-size: 2.2em; letter-spacing: -0.01em; color: #0c0a09; }
.cv-doc--creative .cv-doc__headline--creative { font-size: 0.79em; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: #57534e; margin-top: 0.15em; }
.cv-doc__contact--creative { display: flex; flex-wrap: wrap; gap: 0.4em 0; flex-direction: row; }
@media (min-width: 768px) { .cv-doc__contact--creative { flex-direction: column; align-items: flex-end; } }
.cv-doc--creative .cv-doc__contact--creative { font-family: 'JetBrains Mono', monospace; color: #57534e; }
.cv-doc__contact-emphasis { color: #78350f; font-weight: 600; }
.cv-doc__creative-quote { margin-top: 1em; padding-top: 0.75em; border-top: 1px solid #e7e5e4; }
.cv-doc--creative .cv-doc__summary--creative-quote { font-family: 'Newsreader', 'Playfair Display', Georgia, serif; font-style: italic; color: #292524; text-align: justify; }
.cv-doc__creative-grid { display: grid; grid-template-columns: 8fr 4fr; gap: 1.5em; }
.cv-doc__creative-main, .cv-doc__creative-side { display: flex; flex-direction: column; gap: 1.5em; }
.cv-doc--creative .cv-doc__section-title--creative { font-family: 'Newsreader', 'Playfair Display', Georgia, serif; text-transform: uppercase; letter-spacing: 0.1em; color: #1c1917; border-bottom: 1px solid #d6d3d1; padding-bottom: 0.3em; margin-bottom: 0.6em; display: flex; align-items: baseline; justify-content: space-between; }
.cv-doc__section-title-tag { font-family: 'JetBrains Mono', monospace; font-weight: 400; color: #a8a29e; font-size: 0.8em; text-transform: none; letter-spacing: normal; }
.cv-doc--creative .cv-doc__section-title--creative-simple { font-family: 'Newsreader', 'Playfair Display', Georgia, serif; text-transform: uppercase; letter-spacing: 0.1em; color: #1c1917; border-bottom: 1px solid #d6d3d1; padding-bottom: 0.3em; margin-bottom: 0.5em; }
.cv-doc--creative .cv-doc__exp-role--serif { font-family: 'Newsreader', 'Playfair Display', Georgia, serif; color: #0c0a09; font-size: 0.86em; }
.cv-doc__exp-dates--amber { font-family: 'JetBrains Mono', monospace; color: #92400e; font-weight: 600; font-size: 0.71em; }
.cv-doc__creative-company-line { font-size: 0.79em; color: #57534e; font-weight: 500; margin-bottom: 0.4em; }
.cv-doc__dot-sep { color: #a8a29e; }
.cv-doc__bullets--amber-rail li { padding-left: 0.5em; border-left: 2px solid rgba(146, 64, 14, 0.3); line-height: 1.5; }
.cv-doc__project-card--amber { padding: 0.75em; border-radius: 4px; background: rgba(255, 251, 235, 0.5); border: 1px solid rgba(253, 230, 138, 0.6); }
.cv-doc--creative .cv-doc__project-title--serif { font-family: 'Newsreader', 'Playfair Display', Georgia, serif; color: #1c1917; font-size: 0.86em; }
.cv-doc__project-link--amber { font-family: 'JetBrains Mono', monospace; color: #92400e; font-size: 0.71em; }
.cv-doc--creative .cv-doc__project-desc { color: #44403c; }
.cv-doc__chip--amber { font-family: 'JetBrains Mono', monospace; background: #ffffff; color: #292524; border: 1px solid #fde68a; }
.cv-doc--creative .cv-doc__edu-institution--serif { font-family: 'Newsreader', 'Playfair Display', Georgia, serif; font-weight: 700; color: #1c1917; }
.cv-doc--creative .cv-doc__edu-degree-line { font-size: 0.79em; color: #44403c; }
.cv-doc__edu-field { font-size: 0.71em; color: #78716c; font-style: italic; margin-top: 0.1em; }
.cv-doc__edu-date-amber { font-family: 'JetBrains Mono', monospace; font-size: 0.71em; color: #92400e; margin-top: 0.2em; }
.cv-doc__skills-cat--amber { display: block; font-family: 'JetBrains Mono', monospace; text-transform: uppercase; letter-spacing: 0.06em; color: #78350f; font-weight: 600; margin-bottom: 0.3em; font-size: 0.71em; }
.cv-doc__chip--stone { background: #f5f5f4; color: #292524; border: 1px solid #e7e5e4; }
.cv-doc--creative .cv-doc__footer-item-name { color: #1c1917; font-size: 0.86em; }
.cv-doc--creative .cv-doc__footer-item-meta { color: #78716c; }
.cv-doc__lang-amber { font-family: 'JetBrains Mono', monospace; color: #92400e; font-size: 0.79em; }

/* ==========================================================================
   Elegant template
   ========================================================================== */

.cv-doc--elegant { color: #1e293b; line-height: 1.6; }
.cv-doc--elegant .cv-doc__header--elegant { text-align: center; padding-bottom: 1.5em; margin-bottom: 1.5em; border-bottom: 1px solid #cbd5e1; }
.cv-doc__elegant-kicker { display: block; font-family: 'Plus Jakarta Sans', sans-serif; text-transform: uppercase; letter-spacing: 0.25em; font-size: 0.71em; font-weight: 600; color: #64748b; margin-bottom: 0.3em; }
.cv-doc--elegant .cv-doc__name--elegant { font-size: 2.1em; font-weight: 400; letter-spacing: 0.02em; text-transform: uppercase; color: #020617; margin-bottom: 0.2em; }
.cv-doc--elegant .cv-doc__headline--elegant { font-style: italic; color: #475569; margin-bottom: 0.5em; letter-spacing: 0.02em; }
.cv-doc__elegant-divider { display: flex; align-items: center; justify-content: center; gap: 0.75em; margin: 0.5em 0; color: #94a3b8; }
.cv-doc__elegant-divider-line { width: 3em; height: 1px; background: #cbd5e1; display: inline-block; }
.cv-doc__elegant-diamond { font-size: 0.71em; }
.cv-doc--elegant .cv-doc__contact { font-family: 'Plus Jakarta Sans', sans-serif; color: #475569; }
.cv-doc--elegant .cv-doc__section--elegant-centered { text-align: center; max-width: 32em; margin-inline: auto; }
.cv-doc--elegant .cv-doc__summary--elegant { font-style: italic; color: #334155; }
.cv-doc__elegant-title-wrap { text-align: center; margin-bottom: 0.75em; }
.cv-doc--elegant .cv-doc__section-title--elegant { font-family: 'Plus Jakarta Sans', sans-serif; text-transform: uppercase; letter-spacing: 0.2em; font-weight: 700; color: #0f172a; display: inline-block; padding: 0 1em 0.15em; border-bottom: 1px solid #0f172a; }
.cv-doc--elegant .cv-doc__exp-role--elegant { font-weight: 600; color: #020617; font-size: 0.93em; }
.cv-doc__exp-dates--italic { font-family: 'Plus Jakarta Sans', sans-serif; font-style: italic; color: #64748b; }
.cv-doc--elegant .cv-doc__exp-company { color: #1e293b; font-weight: 500; }
.cv-doc__exp-location--italic { font-style: italic; font-family: 'Plus Jakarta Sans', sans-serif; }
.cv-doc__bullets--elegant-rail { font-family: 'Plus Jakarta Sans', sans-serif; padding-left: 0.75em; border-left: 1px solid #e2e8f0; margin-left: 0.25em; }
.cv-doc--elegant .cv-doc__edu-degree--serif { font-weight: 600; color: #334155; }
.cv-doc--elegant .cv-doc__elegant-skills { text-align: center; font-family: 'Plus Jakarta Sans', sans-serif; color: #334155; display: flex; flex-direction: column; gap: 0.4em; font-size: 0.86em; }
.cv-doc--elegant .cv-doc__elegant-skills .cv-doc__skills-cat { color: #0f172a; }
.cv-doc__elegant-engagements { display: flex; flex-direction: column; }
.cv-doc__elegant-engagement-item { padding-bottom: 0.6em; margin-bottom: 0.6em; border-bottom: 1px solid #f1f5f9; }
.cv-doc__elegant-engagement-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.cv-doc--elegant .cv-doc__project-title { font-weight: 600; color: #0f172a; }
.cv-doc--elegant .cv-doc__project-role--italic { font-family: 'Plus Jakarta Sans', sans-serif; font-style: italic; color: #64748b; font-size: 0.86em; }
.cv-doc--elegant .cv-doc__project-desc { font-family: 'Plus Jakarta Sans', sans-serif; color: #475569; }
.cv-doc--elegant .cv-doc__footer-grid { border-top: 1px solid #e2e8f0; font-family: 'Plus Jakarta Sans', sans-serif; }
.cv-doc--elegant .cv-doc__footer-label { color: #64748b; }

/* ==========================================================================
   Premium ATS Professional template (prototype)

   Strict single column. No grid-template-columns, no floats, no
   decorative pseudo-elements carrying information. Every rule below
   only ever affects color, weight, spacing, and borders on elements
   that already exist in ats-professional.php's plain document flow —
   nothing here changes reading order or introduces a second column.
   ========================================================================== */

.cv-doc--ats-professional { color: #1f2937; line-height: 1.55; }

.cv-doc--ats-professional .cv-doc__header--ats { border-bottom: 2px solid #1a2f4b; padding-bottom: 1em; margin-bottom: 1.5em; }
.cv-doc--ats-professional .cv-doc__name--ats { font-size: 1.8em; font-weight: 700; letter-spacing: -0.01em; color: #101828; }
.cv-doc--ats-professional .cv-doc__headline--ats { font-size: 0.93em; font-weight: 500; color: #1a2f4b; margin-top: 0.3em; }
.cv-doc--ats-professional .cv-doc__contact--ats { font-size: 0.79em; color: #475467; margin-top: 0.6em; line-height: 1.5; }

.cv-doc--ats-professional .cv-doc__section-title--ats { font-size: 0.79em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #1a2f4b; border-bottom: 1px solid #d0d5dd; padding-bottom: 0.35em; margin-bottom: 0.7em; }

.cv-doc--ats-professional .cv-doc__summary--ats { color: #1f2937; font-size: 0.93em; }

.cv-doc__ats-skills { display: flex; flex-direction: column; gap: 0.4em; }
.cv-doc--ats-professional .cv-doc__ats-skill-line { font-size: 0.86em; line-height: 1.6; }
.cv-doc--ats-professional .cv-doc__skills-cat--ats { font-weight: 700; color: #101828; }

.cv-doc--ats-professional .cv-doc__exp-role--ats { font-weight: 700; font-size: 0.97em; color: #101828; }
.cv-doc--ats-professional .cv-doc__exp-dates--ats { font-weight: 600; font-size: 0.79em; color: #475467; white-space: nowrap; }
.cv-doc--ats-professional .cv-doc__exp-company--ats { font-weight: 600; font-size: 0.86em; color: #1a2f4b; }
.cv-doc--ats-professional .cv-doc__exp-location--ats { font-size: 0.79em; color: #667085; }
.cv-doc--ats-professional .cv-doc__bullets--ats { list-style: disc; padding-left: 1.15em; margin-top: 0.45em; color: #1f2937; }
.cv-doc--ats-professional .cv-doc__bullets--ats li { padding-left: 0.15em; }

.cv-doc--ats-professional .cv-doc__edu-institution--ats { font-weight: 700; font-size: 0.93em; color: #101828; }
.cv-doc--ats-professional .cv-doc__edu-degree--ats { font-size: 0.86em; color: #344054; }
.cv-doc--ats-professional .cv-doc__edu-honors--ats { font-size: 0.79em; font-style: italic; color: #667085; margin-top: 0.2em; }

.cv-doc--ats-professional .cv-doc__project-title--ats { font-weight: 700; font-size: 0.93em; color: #101828; }
.cv-doc--ats-professional .cv-doc__project-desc--ats { font-size: 0.86em; color: #344054; margin-top: 0.2em; }

.cv-doc__ats-plain-list { list-style: disc; padding-left: 1.15em; margin: 0; display: flex; flex-direction: column; gap: 0.3em; font-size: 0.86em; color: #1f2937; }

/* ==========================================================================
   Business & Finance template

   Distinct sector identity from ATS Professional: left-aligned serif
   name (letterhead/memo character, not centered/certificate-like),
   tabular-figure dates for ledger-style alignment, and a single muted
   oxblood accent used only for the headline, section-title text, and
   the header's rule color — never as a fill, never as a background.
   Strict single column throughout: no grid-template-columns, no floats,
   no decorative pseudo-elements carrying information. The header's
   "double rule" below is a pure box-shadow/border pairing on the
   existing <header> element — no extra markup, nothing for a parser to
   trip on.
   ========================================================================== */

.cv-doc--business-finance { color: #1c1c1c; line-height: 1.55; font-variant-numeric: tabular-nums; }

.cv-doc--business-finance .cv-doc__header--bf { border-bottom: 1px solid #1c1c1c; box-shadow: 0 3px 0 -1px #1c1c1c; padding-bottom: 1.1em; margin-bottom: 1.6em; }
.cv-doc--business-finance .cv-doc__name--bf { font-family: 'Newsreader', 'Cormorant Garamond', Georgia, serif; font-size: 1.75em; font-weight: 600; letter-spacing: -0.005em; color: #101010; }
.cv-doc--business-finance .cv-doc__headline--bf { font-size: 0.79em; font-weight: 600; text-transform: uppercase; letter-spacing: 0.09em; color: #6b2a3a; margin-top: 0.4em; }
.cv-doc--business-finance .cv-doc__contact--bf { font-size: 0.79em; color: #4b4b4b; margin-top: 0.6em; line-height: 1.5; }

.cv-doc--business-finance .cv-doc__section-title--bf { font-size: 0.79em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #6b2a3a; border-bottom: 1px solid #d9d3d0; padding-bottom: 0.35em; margin-bottom: 0.7em; }

.cv-doc--business-finance .cv-doc__summary--bf { color: #262626; font-size: 0.93em; }

.cv-doc--business-finance .cv-doc__exp-role--bf { font-weight: 700; font-size: 0.97em; color: #101010; }
.cv-doc--business-finance .cv-doc__exp-dates--bf { font-weight: 600; font-size: 0.79em; color: #55504e; white-space: nowrap; }
.cv-doc--business-finance .cv-doc__exp-company--bf { font-weight: 600; font-size: 0.86em; color: #3a3a3a; }
.cv-doc--business-finance .cv-doc__exp-location--bf { font-size: 0.79em; color: #6b6b6b; }
.cv-doc--business-finance .cv-doc__bullets--bf { list-style: disc; padding-left: 1.15em; margin-top: 0.45em; color: #262626; }
.cv-doc--business-finance .cv-doc__bullets--bf li { padding-left: 0.15em; }

.cv-doc--business-finance .cv-doc__project-title--bf { font-weight: 700; font-size: 0.93em; color: #101010; }
.cv-doc--business-finance .cv-doc__project-desc--bf { font-size: 0.86em; color: #3a3a3a; margin-top: 0.2em; }

.cv-doc--business-finance .cv-doc__edu-institution--bf { font-weight: 700; font-size: 0.93em; color: #101010; }
.cv-doc--business-finance .cv-doc__edu-degree--bf { font-size: 0.86em; color: #3a3a3a; }
.cv-doc--business-finance .cv-doc__edu-honors--bf { font-size: 0.79em; font-style: italic; color: #6b6b6b; margin-top: 0.2em; }

.cv-doc--business-finance .cv-doc__ats-plain-list--bf { color: #262626; }

.cv-doc--business-finance .cv-doc__ats-skill-line--bf { font-size: 0.86em; line-height: 1.6; }
.cv-doc--business-finance .cv-doc__skills-cat--bf { font-weight: 700; color: #101010; }

/* --------------------------------------------------------------------------
   Business & Finance print/PDF pagination.

   Scoped entirely to .cv-doc--business-finance so no other template's
   print output changes. No typography/color/layout rule above this block
   is touched.

   Cross-engine note: an earlier version of this fix relied only on
   break-after: avoid on the section <h2> plus break-before: avoid on the
   entry that immediately followed it as a sibling. That works in some
   engines but was confirmed NOT reliable everywhere — Firefox and some
   "Microsoft Print to PDF" configurations still allowed a page break to
   land between the heading and the start of its next sibling container,
   producing exactly the reported bug ("EDUCATION" stranded alone at the
   bottom of a page, its first entry starting the next page). Coordinating
   break-before/break-after across two separate sibling boxes is not
   universally honored the same way by every layout engine.

   The fix: includes/templates/business-finance.php and
   cv-templates.js's renderBusinessFinance() now render each section's
   heading TOGETHER with its first entry inside one real
   .cv-doc__section-head-group <div> — a single box, not two coordinated
   siblings. break-inside: avoid on that one box is a single, unambiguous
   constraint ("this box may not be split") that every engine implements
   the same way, so the heading and its first entry are always forced to
   move to the next page together as one unit. Remaining entries (2nd,
   3rd, ...) stay in a normal sibling container after the head-group, so
   a long section can still flow across a page boundary between entries
   rather than being forced onto one page — the .cv-doc__stack--continued
   / .cv-doc__ats-skills--continued / .cv-doc__ats-plain-list--continued
   margin-top rules below exist only to reproduce the exact vertical gap
   that used to come from the single flex container's own `gap` (see the
   base .cv-doc__stack / .cv-doc__ats-skills / .cv-doc__ats-plain-list
   rules above) now that the first entry and the rest are two separate
   boxes — no visual spacing changes.

   break-inside: avoid on each individual entry (an experience item, an
   education item, a transaction/initiative item, a certification line)
   additionally stops that one entry's own lines — e.g. an education
   entry's institution/degree/honors trio — from being torn across two
   pages. orphans/widows on the document root is a general backstop
   against a lone wrapped line of a paragraph being left by itself at a
   page edge.

   Sections themselves (.cv-doc__section) are deliberately NOT
   break-inside: avoid — a long Experience or Education list must still
   be allowed to flow across the page boundary between entries; forcing
   the whole section onto one page would produce a large block of
   trailing whitespace and force unrealistic single-page compression.
   Only the head-group and individual entries are kept intact.
   -------------------------------------------------------------------------- */
.cv-doc--business-finance .cv-doc__stack--continued {
	margin-top: 1em;
}
.cv-doc--business-finance .cv-doc__stack--tight.cv-doc__stack--continued {
	margin-top: 0.75em;
}
.cv-doc--business-finance .cv-doc__ats-skills--continued {
	margin-top: 0.4em;
}
.cv-doc--business-finance .cv-doc__ats-plain-list--continued {
	margin-top: 0.3em;
}

@media print {
	.cv-doc--business-finance {
		orphans: 3;
		widows: 3;
	}

	.cv-doc--business-finance .cv-doc__header--bf,
	.cv-doc--business-finance .cv-doc__section-title--bf {
		break-after: avoid;
		page-break-after: avoid;
	}

	.cv-doc--business-finance .cv-doc__section-head-group {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.cv-doc--business-finance .cv-doc__exp-item--bf,
	.cv-doc--business-finance .cv-doc__edu-item--bf,
	.cv-doc--business-finance .cv-doc__stack--tight > div,
	.cv-doc--business-finance .cv-doc__ats-plain-list--bf > li {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.cv-doc--business-finance .cv-doc__bullets--bf > li {
		break-inside: avoid;
	}
}

/* ==========================================================================
   Tech & Engineering template

   Distinct sector identity from both ATS Professional (navy, single
   sans typeface throughout) and Business & Finance (oxblood, serif
   name, letterhead character): a bold geometric sans name paired with a
   restrained monospace ('JetBrains Mono', already loaded site-wide —
   see the theme's Google Fonts enqueue) used ONLY for structured/
   metadata text — the headline, contact line, dates, skill-category
   labels, and the project "Stack:" label — never for prose. This reads
   as a deliberate "prose vs. structured data" typographic system suited
   to an engineering audience (the same idea as a changelog or a
   key/value config block), not a fake terminal window or code-editor
   skin: no monospace background, no syntax-highlight colors, no window
   chrome. The single accent (a desaturated teal, #0b5d56) evokes
   systems/infrastructure without reading as neon or a blue gradient.
   Strict single column throughout: no grid-template-columns, no floats,
   no decorative pseudo-elements carrying information.
   ========================================================================== */

.cv-doc--tech-engineering { color: #14181c; line-height: 1.55; }

.cv-doc--tech-engineering .cv-doc__header--te { border-bottom: 1px solid #0b5d56; padding-bottom: 1.1em; margin-bottom: 1.6em; }
.cv-doc--tech-engineering .cv-doc__name--te { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.85em; font-weight: 800; letter-spacing: -0.02em; color: #101418; }
.cv-doc--tech-engineering .cv-doc__headline--te { font-family: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace; font-size: 0.76em; font-weight: 500; color: #0b5d56; margin-top: 0.5em; }
.cv-doc--tech-engineering .cv-doc__contact--te { font-family: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace; font-size: 0.72em; color: #52606d; margin-top: 0.55em; line-height: 1.6; }

.cv-doc--tech-engineering .cv-doc__section-title--te { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 0.79em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #0b5d56; border-bottom: 1px solid #d7dce0; padding-bottom: 0.35em; margin-bottom: 0.7em; }

.cv-doc--tech-engineering .cv-doc__summary--te { color: #262b30; font-size: 0.93em; }

.cv-doc--tech-engineering .cv-doc__exp-role--te { font-weight: 700; font-size: 0.97em; color: #101418; }
.cv-doc--tech-engineering .cv-doc__exp-dates--te { font-family: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace; font-weight: 500; font-size: 0.74em; color: #52606d; white-space: nowrap; }
.cv-doc--tech-engineering .cv-doc__exp-company--te { font-weight: 600; font-size: 0.86em; color: #33393f; }
.cv-doc--tech-engineering .cv-doc__exp-location--te { font-size: 0.79em; color: #6b7480; }
.cv-doc--tech-engineering .cv-doc__bullets--te { list-style: disc; padding-left: 1.15em; margin-top: 0.45em; color: #262b30; }
.cv-doc--tech-engineering .cv-doc__bullets--te li { padding-left: 0.15em; }

.cv-doc--tech-engineering .cv-doc__project-title--te { font-weight: 700; font-size: 0.93em; color: #101418; }
.cv-doc--tech-engineering .cv-doc__project-link--te { font-family: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace; font-size: 0.74em; color: #0b5d56; margin-top: 0.15em; }
.cv-doc--tech-engineering .cv-doc__project-desc--te { font-size: 0.86em; color: #33393f; margin-top: 0.25em; }
.cv-doc--tech-engineering .cv-doc__project-stack--te { font-size: 0.79em; color: #52606d; margin-top: 0.3em; }
.cv-doc--tech-engineering .cv-doc__project-stack-label--te { font-family: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace; font-weight: 500; color: #0b5d56; }

.cv-doc--tech-engineering .cv-doc__edu-institution--te { font-weight: 700; font-size: 0.93em; color: #101418; }
.cv-doc--tech-engineering .cv-doc__edu-degree--te { font-size: 0.86em; color: #33393f; }
.cv-doc--tech-engineering .cv-doc__edu-honors--te { font-size: 0.79em; font-style: italic; color: #6b7480; margin-top: 0.2em; }

.cv-doc--tech-engineering .cv-doc__ats-plain-list--te { color: #262b30; }

.cv-doc--tech-engineering .cv-doc__ats-skill-line--te { font-size: 0.86em; line-height: 1.65; }
.cv-doc--tech-engineering .cv-doc__skills-cat--te { font-family: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace; font-weight: 500; color: #101418; margin-right: 0.35em; }

/* Print/PDF pagination — same structural technique proven on
   Business & Finance: every multi-entry section groups its heading with
   its first entry inside one real .cv-doc__section-head-group box
   (break-inside: avoid on one real box is universally honored across
   engines; coordinating break-before/break-after across two separate
   sibling boxes was found not to be). Sections themselves are
   deliberately NOT break-inside: avoid so a long section can still flow
   across a page boundary between entries. */
.cv-doc--tech-engineering .cv-doc__stack--continued {
	margin-top: 1em;
}
.cv-doc--tech-engineering .cv-doc__stack--tight.cv-doc__stack--continued {
	margin-top: 0.75em;
}
.cv-doc--tech-engineering .cv-doc__ats-skills--continued {
	margin-top: 0.4em;
}
.cv-doc--tech-engineering .cv-doc__ats-plain-list--continued {
	margin-top: 0.3em;
}

@media print {
	.cv-doc--tech-engineering {
		orphans: 3;
		widows: 3;
	}

	.cv-doc--tech-engineering .cv-doc__header--te,
	.cv-doc--tech-engineering .cv-doc__section-title--te {
		break-after: avoid;
		page-break-after: avoid;
	}

	.cv-doc--tech-engineering .cv-doc__section-head-group {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.cv-doc--tech-engineering .cv-doc__exp-item--te,
	.cv-doc--tech-engineering .cv-doc__edu-item--te,
	.cv-doc--tech-engineering .cv-doc__stack--tight > div,
	.cv-doc--tech-engineering .cv-doc__ats-plain-list--te > li {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.cv-doc--tech-engineering .cv-doc__bullets--te > li {
		break-inside: avoid;
	}
}

/* ==========================================================================
   Healthcare & Science template

   Distinct sector identity from ATS Professional (navy), Business &
   Finance (oxblood, serif), and Tech & Engineering (teal, monospace
   metadata): a single restrained typeface throughout ('Plus Jakarta
   Sans', already loaded site-wide — no new font request), a composed
   (not oversized/bold-hero) name treatment, and one desaturated deep
   indigo-slate accent (#4a4470) — a hue distinct from every other
   template's accent, chosen to read as calm/precise/academic rather
   than clinical-cliché green or a repeat of ATS's navy. No medical
   iconography, no gradients, no skill bars — hierarchy and "premium"
   character come entirely from type weight, spacing, and restrained
   color, matching this product's established typography-only technique.
   Certifications get slightly more visual weight (accent-colored,
   bolder credential names) than in other templates — a deliberate,
   content-driven choice, not decoration: this sector's hiring managers
   and ATS systems specifically hunt for licensure/board-certification,
   so credentials should be unmissable without breaking the
   conventional reading order (see the rationale note in
   includes/templates/healthcare-science.php). Strict single column
   throughout: no grid-template-columns, no floats, no decorative
   pseudo-elements carrying information.
   ========================================================================== */

.cv-doc--healthcare-science { color: #1a1a1a; line-height: 1.56; }

.cv-doc--healthcare-science .cv-doc__header--hs { border-bottom: 1px solid #4a4470; padding-bottom: 1.1em; margin-bottom: 1.6em; }
.cv-doc--healthcare-science .cv-doc__name--hs { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.68em; font-weight: 700; letter-spacing: -0.005em; color: #101014; }
.cv-doc--healthcare-science .cv-doc__headline--hs { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 0.82em; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: #4a4470; margin-top: 0.5em; }
.cv-doc--healthcare-science .cv-doc__contact--hs { font-size: 0.79em; color: #5b5f66; margin-top: 0.55em; line-height: 1.6; }

.cv-doc--healthcare-science .cv-doc__section-title--hs { font-size: 0.79em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #4a4470; border-bottom: 1px solid #dcdde0; padding-bottom: 0.35em; margin-bottom: 0.7em; }

.cv-doc--healthcare-science .cv-doc__summary--hs { color: #262626; font-size: 0.93em; }

.cv-doc--healthcare-science .cv-doc__exp-role--hs { font-weight: 700; font-size: 0.97em; color: #101014; }
.cv-doc--healthcare-science .cv-doc__exp-dates--hs { font-weight: 600; font-size: 0.79em; color: #5b5f66; white-space: nowrap; }
.cv-doc--healthcare-science .cv-doc__exp-company--hs { font-weight: 600; font-size: 0.86em; color: #34343a; }
.cv-doc--healthcare-science .cv-doc__exp-location--hs { font-size: 0.79em; color: #6b6f76; }
.cv-doc--healthcare-science .cv-doc__bullets--hs { list-style: disc; padding-left: 1.15em; margin-top: 0.45em; color: #262626; }
.cv-doc--healthcare-science .cv-doc__bullets--hs li { padding-left: 0.15em; }

.cv-doc--healthcare-science .cv-doc__project-title--hs { font-weight: 700; font-size: 0.93em; color: #101014; }
.cv-doc--healthcare-science .cv-doc__project-link--hs { font-size: 0.79em; color: #4a4470; margin-top: 0.15em; }
.cv-doc--healthcare-science .cv-doc__project-desc--hs { font-size: 0.86em; color: #34343a; margin-top: 0.25em; }
.cv-doc--healthcare-science .cv-doc__project-stack--hs { font-size: 0.79em; color: #5b5f66; margin-top: 0.3em; }
.cv-doc--healthcare-science .cv-doc__project-stack-label--hs { font-weight: 700; color: #4a4470; }

.cv-doc--healthcare-science .cv-doc__edu-institution--hs { font-weight: 700; font-size: 0.93em; color: #101014; }
.cv-doc--healthcare-science .cv-doc__edu-degree--hs { font-size: 0.86em; color: #34343a; }
.cv-doc--healthcare-science .cv-doc__edu-honors--hs { font-size: 0.79em; font-style: italic; color: #6b6f76; margin-top: 0.2em; }

.cv-doc--healthcare-science .cv-doc__ats-plain-list--hs { color: #262626; }
.cv-doc--healthcare-science .cv-doc__footer-item-name--hs { font-weight: 700; color: #4a4470; }

.cv-doc--healthcare-science .cv-doc__ats-skill-line--hs { font-size: 0.86em; line-height: 1.65; }
.cv-doc--healthcare-science .cv-doc__skills-cat--hs { font-weight: 700; color: #101014; margin-right: 0.35em; }

/* Print/PDF pagination — same structural technique proven on
   Business & Finance and Tech & Engineering: every multi-entry section
   groups its heading with its first entry inside one real
   .cv-doc__section-head-group box (break-inside: avoid on one real box
   is universally honored across engines; coordinating
   break-before/break-after across two separate sibling boxes was found
   not to be — see the Business & Finance pagination fix history).
   Sections themselves are deliberately NOT break-inside: avoid so a
   long section can still flow across a page boundary between entries. */
.cv-doc--healthcare-science .cv-doc__stack--continued {
	margin-top: 1em;
}
.cv-doc--healthcare-science .cv-doc__stack--tight.cv-doc__stack--continued {
	margin-top: 0.75em;
}
.cv-doc--healthcare-science .cv-doc__ats-skills--continued {
	margin-top: 0.4em;
}
.cv-doc--healthcare-science .cv-doc__ats-plain-list--continued {
	margin-top: 0.3em;
}

@media print {
	.cv-doc--healthcare-science {
		orphans: 3;
		widows: 3;
	}

	.cv-doc--healthcare-science .cv-doc__header--hs,
	.cv-doc--healthcare-science .cv-doc__section-title--hs {
		break-after: avoid;
		page-break-after: avoid;
	}

	.cv-doc--healthcare-science .cv-doc__section-head-group {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.cv-doc--healthcare-science .cv-doc__exp-item--hs,
	.cv-doc--healthcare-science .cv-doc__edu-item--hs,
	.cv-doc--healthcare-science .cv-doc__stack--tight > div,
	.cv-doc--healthcare-science .cv-doc__ats-plain-list--hs > li {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.cv-doc--healthcare-science .cv-doc__bullets--hs > li {
		break-inside: avoid;
	}
}

/* ==========================================================================
   Decorative-preview scale wrappers (hero + template showcase)
   ========================================================================== */

.atelier-doc-stage {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	overflow: hidden;
	width: 100%;
	height: 100%;
}
.atelier-doc-scale {
	transform-origin: top center;
	box-shadow: 0 20px 45px rgba(0, 0, 0, 0.18);
}

/* Hero stage — matches DESIGN.md §6 responsive scale values. */
.atelier-doc-scale--hero { transform: scale(0.56); }
@media (min-width: 640px)  { .atelier-doc-scale--hero { transform: scale(0.78); } }
@media (min-width: 768px)  { .atelier-doc-scale--hero { transform: scale(0.88); } }
@media (min-width: 1024px) { .atelier-doc-scale--hero { transform: scale(0.98); } }

/* Showcase card stage — matches TemplateShowcase.tsx's scale-[0.42] sm:scale-[0.45]. */
.atelier-doc-scale--showcase { transform: scale(0.42); }
@media (min-width: 640px) { .atelier-doc-scale--showcase { transform: scale(0.45); } }

/* Template Preview Modal stage — matches TemplatePreviewModal.tsx's
   scale-[0.7] sm:scale-[0.85] md:scale-[0.92] lg:scale-[0.98]. */
.atelier-doc-scale--preview { transform: scale(0.7); margin-bottom: 3rem; }
@media (min-width: 640px)  { .atelier-doc-scale--preview { transform: scale(0.85); } }
@media (min-width: 768px)  { .atelier-doc-scale--preview { transform: scale(0.92); } }
@media (min-width: 1024px) { .atelier-doc-scale--preview { transform: scale(0.98); } }
