#cv-root {
  width: 210mm;
  min-height: 297mm;
  margin: 0 auto;
  background: #fff;
  color: #1a1a1a;
  box-shadow: 0 18px 50px rgba(18, 32, 44, 0.2);
}

.cv {
  min-height: 297mm;
  box-sizing: border-box;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}

/* Full-page panels: keep rails/sidebars painted to the bottom of A4 */
.tpl-eu-ice,
.tpl-mint-dock,
.tpl-violet-rail,
.tpl-cobalt-band,
.tpl-ats-forest,
.tpl-azure-peak {
  min-height: 297mm;
}

.tpl-eu-ice,
.tpl-mint-dock,
.tpl-violet-rail {
  align-items: stretch;
}

.tpl-eu-ice > aside,
.tpl-mint-dock > aside,
.tpl-violet-rail .rail {
  align-self: stretch;
  min-height: 100%;
  box-sizing: border-box;
}

.tpl-cobalt-band {
  display: flex;
  flex-direction: column;
}

.tpl-cobalt-band .cv-body {
  flex: 1 1 auto;
}

.tpl-ats-forest,
.tpl-azure-peak {
  display: flex;
  flex-direction: column;
}

.tpl-ats-forest .cv-body,
.tpl-azure-peak .cv-body {
  flex: 1 1 auto;
}

.cv h1,
.cv h2,
.cv h3,
.cv p,
.cv li,
.cv figure {
  margin: 0;
}

.cv ul {
  margin: 0.25rem 0 0;
  padding-left: 1.05em;
}

.cv li {
  font-size: 10.6px;
  line-height: 1.4;
  margin: 2px 0;
}

.cv-jump {
  cursor: pointer;
}

.cv-jump:hover {
  outline: 2px dashed rgba(124, 92, 191, 0.5);
  outline-offset: 3px;
}

.cv-photo {
  margin: 0 0 12px;
  flex: none;
  flex-shrink: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.cv-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  max-width: none;
}

.cv-photo.photo-round {
  width: 100px;
  height: 100px;
  min-width: 100px;
  min-height: 100px;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 0 0 4px #fff;
}

.cv-h1 {
  font-size: 32px;
  line-height: 1.05;
  letter-spacing: -0.04em;
}

.cv-headline,
.cv-kicker {
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
}

.cv-meta,
.cv-edu-detail,
.cv-tl-date {
  font-size: 10.5px;
  color: #5b6570;
}

.cv-summary {
  font-size: 11.2px;
  line-height: 1.5;
}

.cv-sec {
  margin-top: 14px;
}

.cv-sec h2,
.cv aside h2 {
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin: 0 0 8px;
  padding-bottom: 4px;
}

.cv-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 22px;
}

.cv-row {
  display: grid;
  grid-template-columns: 16px 1fr;
  gap: 8px;
  align-items: start;
  font-size: 10.5px;
  margin: 5px 0;
}

.cv-ico {
  width: 14px;
  height: 14px;
  margin-top: 1px;
}

.cv-pills {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.cv-pills li {
  border: 1px solid currentColor;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 10px;
}

.cv-plain {
  list-style: none;
  padding: 0;
}

.cv-plain li {
  display: flex;
  flex-direction: column;
  margin: 6px 0;
  font-size: 10.5px;
}

.cv-plain span {
  color: #5b6570;
  font-weight: 400;
}

.cv-job {
  margin-bottom: 12px;
}

/* Keep blocks intact across A4 page slices (preview + PDF). */
.cv-job,
.cv-tl,
.cv-plain > li,
.cv-bullet,
.cv-chip-item,
.cv-summary,
.cv-sec > h2,
.cv-row,
.cv-photo,
.cv-h1 {
  break-inside: avoid;
  page-break-inside: avoid;
}

[data-page-spacer] {
  display: block;
  pointer-events: none;
}

.cv-job-top {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: baseline;
}

.cv-job h3 {
  font-size: 12px;
}

.cv-tl {
  display: grid;
  grid-template-columns: 28mm 10px 1fr;
  gap: 8px;
  margin-bottom: 12px;
}

.cv-tl-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  margin-top: 4px;
  background: currentColor;
}

/* EU ice */
.tpl-eu-ice {
  display: grid;
  grid-template-columns: 68mm 1fr;
  font-family: "Segoe UI", Calibri, Arial, sans-serif;
}

.tpl-eu-ice > aside {
  background: #d5e2f3;
  padding: 14mm 8mm;
  color: #24344a;
}

.tpl-eu-ice .cv-photo {
  width: 124px;
  height: 124px;
  min-width: 124px;
  min-height: 124px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto 14px;
  box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.7);
}

.tpl-eu-ice .cv-main {
  padding: 14mm 12mm 16mm;
}

.tpl-eu-ice .cv-h1 {
  font-size: 36px;
  margin: 4px 0 16px;
  color: #1d3354;
}

.tpl-eu-ice h2 {
  color: #1d3354;
  border-bottom: 1px solid rgba(29, 51, 84, 0.25);
}

.tpl-eu-ice .cv-tl-dot {
  background: #3b6ea5;
}

.tpl-eu-ice .cv-aside-lead {
  font-size: 10.5px;
  line-height: 1.45;
  margin-bottom: 14px;
}

/* Split ink */
.tpl-split-ink {
  padding: 14mm 16mm 16mm;
  font-family: Georgia, "Times New Roman", serif;
}

.tpl-split-ink header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
  border-bottom: 2px solid #111;
  padding-bottom: 12px;
}

.tpl-split-ink .cv-h1 {
  font-size: 40px;
  font-weight: 700;
}

.tpl-split-ink h2 {
  border-bottom: 1px solid #111;
  font-family: "Segoe UI", Arial, sans-serif;
}

.tpl-split-ink .cv-split {
  margin-top: 14px;
}

.tpl-split-ink .cv-row,
.tpl-split-ink li {
  font-family: "Segoe UI", Arial, sans-serif;
}

/* ATS forest */
.tpl-ats-forest {
  font-family: Arial, Helvetica, sans-serif;
  padding: 0;
}

.tpl-ats-forest > header {
  background: #2f5d50;
  color: #fff;
  padding: 12mm 14mm 10mm;
}

.tpl-ats-forest > header .cv-kicker,
.tpl-ats-forest > header .cv-contact-line {
  color: #d7ebe3;
}

.tpl-ats-forest .cv-h1 {
  color: #fff;
  font-size: 34px;
}

.tpl-ats-forest .cv-body {
  padding: 8mm 14mm 14mm;
}

.tpl-ats-forest h2 {
  color: #2f5d50;
  border-bottom: 2px solid #2f5d50;
}

.tpl-ats-forest .band {
  background: #eef5f2;
  padding: 10px 12px;
  margin-top: 12px;
}

.tpl-ats-forest .cv-pills li {
  border-color: #2f5d50;
}

/* Editorial amber */
.tpl-editorial-amber {
  padding: 14mm 14mm 16mm;
  font-family: Arial, Helvetica, sans-serif;
}

.tpl-editorial-amber header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 8px;
}

.tpl-editorial-amber .cv-h1 {
  font-size: 42px;
  font-weight: 800;
}

.tpl-editorial-amber .cv-headline {
  color: #7c5cbf;
  margin: 6px 0 10px;
}

.tpl-editorial-amber h2 {
  color: #7c5cbf;
  border-bottom: 2px solid #e4dcf3;
}

.tpl-editorial-amber .cv-tl-dot {
  background: #e08a3a;
}

.tpl-editorial-amber aside {
  background: #faf6f1;
  padding: 10px 12px;
  border-radius: 8px;
}

.tpl-editorial-amber .amber-grid {
  grid-template-columns: 1.35fr 0.8fr;
}

/* Blush */
.tpl-blush-serif {
  padding: 14mm 14mm 16mm;
  font-family: Georgia, "Times New Roman", serif;
  background:
    radial-gradient(120% 80% at 80% -10%, #f8d7c8 0%, transparent 55%),
    radial-gradient(90% 60% at 0% 100%, #fde8df 0%, #fff 55%);
}

.tpl-blush-serif header {
  display: flex;
  gap: 18px;
  align-items: center;
}

.tpl-blush-serif .cv-h1 {
  font-size: 42px;
  font-weight: 500;
  color: #6b2d2d;
}

.tpl-blush-serif .cv-headline {
  color: #b45a4a;
}

.tpl-blush-serif h2 {
  color: #b45a4a;
  border-bottom: 1px solid #e8b7a8;
  font-family: "Segoe UI", Arial, sans-serif;
}

.tpl-blush-serif .lead {
  margin: 14px 0 4px;
}

.tpl-blush-serif .cv-row,
.tpl-blush-serif li,
.tpl-blush-serif .cv-meta {
  font-family: "Segoe UI", Arial, sans-serif;
}

/* Violet rail */
.tpl-violet-rail {
  display: grid;
  grid-template-columns: 18mm 1fr;
  font-family: "Segoe UI", Arial, sans-serif;
}

.tpl-violet-rail .rail {
  background: #5b4bdb;
  padding: 12mm 3mm 0;
}

.tpl-violet-rail .rail .cv-photo {
  width: 72px;
  height: 72px;
  min-width: 72px;
  min-height: 72px;
  border-radius: 8px;
  overflow: hidden;
  margin: 0 auto;
  box-shadow: 0 0 0 3px #fff;
}

.tpl-violet-rail .cv-main {
  padding: 12mm 12mm 14mm 10mm;
}

.tpl-violet-rail .cv-h1 {
  font-size: 34px;
}

.tpl-violet-rail h2 {
  color: #5b4bdb;
  border-bottom: 2px solid #ddd6ff;
}

.tpl-violet-rail aside {
  background: #f5f3ff;
  padding: 10px;
  border-radius: 10px;
}

/* Mint dock */
.tpl-mint-dock {
  display: grid;
  grid-template-columns: 1fr 72mm;
  font-family: Calibri, "Segoe UI", Arial, sans-serif;
}

.tpl-mint-dock .cv-main {
  padding: 14mm 12mm;
}

.tpl-mint-dock > aside {
  background: #7fd3c3;
  padding: 14mm 8mm;
  color: #14342f;
}

.tpl-mint-dock .cv-h1 {
  font-size: 30px;
  margin-bottom: 12px;
}

.tpl-mint-dock h2 {
  border-bottom: 1px solid rgba(20, 52, 47, 0.25);
}

.tpl-mint-dock .cv-tl-dot {
  background: #1f7a6c;
}

.tpl-mint-dock .photo-round {
  width: 116px;
  height: 116px;
  min-width: 116px;
  min-height: 116px;
  margin: 0 auto 14px;
}

/* Azure peak */
.tpl-azure-peak {
  font-family: "Segoe UI", Arial, sans-serif;
  padding: 0;
}

.tpl-azure-peak .peak {
  background: #2b6cb0;
  color: #fff;
  text-align: center;
  padding: 12mm 12mm 16mm;
  clip-path: polygon(0 0, 100% 0, 100% 78%, 50% 100%, 0 78%);
}

.tpl-azure-peak .peak .cv-photo {
  margin: 0 auto 10px;
  width: 104px;
  height: 104px;
  min-width: 104px;
  min-height: 104px;
}

.tpl-azure-peak .peak .cv-h1,
.tpl-azure-peak .peak .cv-headline {
  color: #fff;
}

.tpl-azure-peak .peak-contact {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 18px;
  padding: 8px 14mm 0;
}

.tpl-azure-peak .cv-body {
  padding: 8mm 14mm 14mm;
}

.tpl-azure-peak h2 {
  color: #2b6cb0;
  border-bottom: 2px solid #c5daf0;
}

/* Cobalt band */
.tpl-cobalt-band {
  font-family: Calibri, Arial, sans-serif;
  padding: 0;
}

.tpl-cobalt-band > header {
  background: #1e4e8c;
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10mm 14mm;
}

.tpl-cobalt-band .cv-h1,
.tpl-cobalt-band .cv-headline {
  color: #fff;
}

.tpl-cobalt-band .photo-round {
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.35);
}

.tpl-cobalt-band .cv-body {
  padding: 8mm 14mm 14mm;
  border-left: 8px solid #1e4e8c;
}

.tpl-cobalt-band .intro-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
  margin-bottom: 8px;
}

.tpl-cobalt-band h2 {
  color: #1e4e8c;
  border-bottom: 2px solid #d3e0f2;
}

.cv-sec h2 {
  display: flex;
  align-items: center;
  gap: 6px;
}

.cv-sec-handle,
.cv-item-handle,
.cv-del,
.cv-item-tools,
.cv-sec-tools {
  display: none;
}

.a4-clip .cv-sec-tools,
.a4-clip .cv-item-tools {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  opacity: 0;
  transition: opacity 0.12s ease;
}

.a4-clip .cv-sec:hover > h2 .cv-sec-tools,
.a4-clip .cv-sec:focus-within > h2 .cv-sec-tools,
.a4-clip [data-item]:hover > .cv-item-tools,
.a4-clip [data-item]:focus-within > .cv-item-tools,
.a4-clip .cv-bullet:hover > .cv-item-tools,
.a4-clip .cv-bullet:focus-within > .cv-item-tools,
.a4-clip .cv-chip-item:hover > .cv-item-tools,
.a4-clip .cv-chip-item:focus-within > .cv-item-tools {
  opacity: 1;
}

.a4-clip .cv-sec-handle,
.a4-clip .cv-item-handle,
.a4-clip .cv-del {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  border-radius: 6px;
  font-size: 10px;
  line-height: 1.45;
  font-family: "Segoe UI", Arial, sans-serif;
}

.a4-clip .cv-sec-handle,
.a4-clip .cv-item-handle {
  cursor: grab;
  border: 1px solid #d8c8f2;
  background: #f6f0ff;
  color: #6d4aad;
  letter-spacing: -0.12em;
  padding: 0 5px;
}

.a4-clip .cv-sec-handle:active,
.a4-clip .cv-item-handle:active {
  cursor: grabbing;
}

#cv-pages.is-demo .cv-sec-handle,
#cv-pages.is-demo .cv-item-handle,
#cv-pages.is-demo .cv-del,
#cv-pages.is-demo .cv-item-tools,
#cv-pages.is-demo .cv-sec-tools {
  display: none !important;
}

.a4-clip .cv-del {
  width: 16px;
  height: 16px;
  border: 0;
  border-radius: 50%;
  background: #e23d3d;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
}

.a4-clip .cv-pills li,
.a4-clip .cv-plain li,
.a4-clip .cv-job,
.a4-clip .cv-tl,
.a4-clip .cv-bullet {
  position: relative;
  padding-right: 42px;
}

.a4-clip .cv-item-tools {
  position: absolute;
  right: 0;
  top: 0;
  z-index: 2;
}

.a4-clip .cv-sec.is-dragover,
.a4-clip [data-item].is-dragover {
  outline: 2px dashed #7c5cbf;
  outline-offset: 4px;
  background: rgba(243, 232, 255, 0.45);
}

.a4-clip .cv-sec.is-dragging,
.a4-clip [data-item].is-dragging {
  opacity: 0.55;
}

.cv-stack-sort {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 4px 20px;
  align-items: start;
}

.cv-stack-sort .cv-sec[data-sec="experience"] {
  grid-column: 1 / -1;
}

.tpl-ats-forest .cv-stack-sort {
  grid-template-columns: 1fr;
}

.tpl-ats-forest .cv-stack-sort .cv-sec[data-sec="experience"] {
  grid-column: auto;
}

.cv.cv-type-classic {
  font-family: Calibri, "Segoe UI", Arial, Helvetica, sans-serif !important;
}

.cv.cv-type-serif,
.cv.cv-type-serif .cv-row,
.cv.cv-type-serif li,
.cv.cv-type-serif h2 {
  font-family: Georgia, "Times New Roman", serif !important;
}

.cv.cv-type-modern {
  font-family: "Segoe UI", system-ui, Arial, sans-serif !important;
}

.cv.cv-type-modern .cv-h1 {
  font-weight: 800;
  letter-spacing: -0.055em;
}

.cv.cv-type-mono {
  font-family: Consolas, "Courier New", monospace !important;
}

.cv.cv-type-mono .cv-h1 {
  font-size: 28px;
  letter-spacing: -0.02em;
}

.cv.cv-type-humanist {
  font-family: Verdana, Tahoma, Geneva, sans-serif !important;
}

.cv.cv-type-elegant,
.cv.cv-type-elegant .cv-row,
.cv.cv-type-elegant li,
.cv.cv-type-elegant h2 {
  font-family: "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif !important;
}

.cv.cv-type-elegant .cv-h1 {
  font-weight: 600;
  letter-spacing: -0.02em;
}

.cv.cv-type-slab {
  font-family: "Rockwell", "Roboto Slab", Georgia, serif !important;
}

.cv.cv-type-slab .cv-h1 {
  font-weight: 700;
}

.cv.cv-type-condensed {
  font-family: Arial Narrow, "Segoe UI Condensed", "Helvetica Neue", Arial, sans-serif !important;
  letter-spacing: -0.01em;
}

.cv.cv-type-condensed .cv-h1 {
  letter-spacing: -0.04em;
}

.cv.cv-type-rounded {
  font-family: "Trebuchet MS", "Segoe UI", Candara, sans-serif !important;
}

.cv.cv-type-tech {
  font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

.cv.cv-type-tech .cv-h1 {
  font-weight: 800;
  text-transform: none;
  letter-spacing: -0.05em;
}

.cv.cv-type-tech h2 {
  letter-spacing: 0.12em;
}

.cv.cv-type-news {
  font-family: "Times New Roman", Times, serif !important;
}

.cv.cv-type-news .cv-h1 {
  font-weight: 700;
  letter-spacing: 0;
}

.cv.cv-type-compact .cv-h1 {
  font-size: 1.55em;
}

.cv.cv-type-compact li,
.cv.cv-type-compact .cv-summary,
.cv.cv-type-compact .cv-row,
.cv.cv-type-compact .cv-meta {
  font-size: 0.9em;
  line-height: 1.32;
}

.cv.cv-type-compact .cv-sec {
  margin-top: 9px;
}

.cv.cv-type-airy .cv-summary,
.cv.cv-type-airy li,
.cv.cv-type-airy .cv-row {
  line-height: 1.62;
}

.cv.cv-type-airy .cv-sec {
  margin-top: 18px;
}

/* Base body size — md is the default (a bit larger than the old fixed 10.5px) */
.cv.cv-size-sm {
  font-size: 15px;
}

.cv.cv-size-md {
  font-size: 16.5px;
}

.cv.cv-size-lg {
  font-size: 18px;
}

.cv.cv-size-xl {
  font-size: 19.5px;
}

.cv.cv-size-sm li,
.cv.cv-size-sm .cv-summary,
.cv.cv-size-sm .cv-row,
.cv.cv-size-sm .cv-meta,
.cv.cv-size-sm .cv-edu-detail,
.cv.cv-size-sm .cv-tl-date,
.cv.cv-size-sm .cv-plain li,
.cv.cv-size-sm .cv-aside-lead {
  font-size: 0.7em;
  line-height: 1.4;
}

.cv.cv-size-md li,
.cv.cv-size-md .cv-summary,
.cv.cv-size-md .cv-row,
.cv.cv-size-md .cv-meta,
.cv.cv-size-md .cv-edu-detail,
.cv.cv-size-md .cv-tl-date,
.cv.cv-size-md .cv-plain li,
.cv.cv-size-md .cv-aside-lead {
  font-size: 0.72em;
  line-height: 1.42;
}

.cv.cv-size-lg li,
.cv.cv-size-lg .cv-summary,
.cv.cv-size-lg .cv-row,
.cv.cv-size-lg .cv-meta,
.cv.cv-size-lg .cv-edu-detail,
.cv.cv-size-lg .cv-tl-date,
.cv.cv-size-lg .cv-plain li,
.cv.cv-size-lg .cv-aside-lead {
  font-size: 0.74em;
  line-height: 1.44;
}

.cv.cv-size-xl li,
.cv.cv-size-xl .cv-summary,
.cv.cv-size-xl .cv-row,
.cv.cv-size-xl .cv-meta,
.cv.cv-size-xl .cv-edu-detail,
.cv.cv-size-xl .cv-tl-date,
.cv.cv-size-xl .cv-plain li,
.cv.cv-size-xl .cv-aside-lead {
  font-size: 0.76em;
  line-height: 1.45;
}

.cv.cv-size-sm .cv-h1 {
  font-size: 1.85em;
}

.cv.cv-size-md .cv-h1 {
  font-size: 2em;
}

.cv.cv-size-lg .cv-h1 {
  font-size: 2.15em;
}

.cv.cv-size-xl .cv-h1 {
  font-size: 2.3em;
}

.cv.cv-size-sm h2,
.cv.cv-size-md h2,
.cv.cv-size-lg h2,
.cv.cv-size-xl h2 {
  font-size: 0.72em;
}

.cv.cv-size-sm .cv-job h3,
.cv.cv-size-md .cv-job h3,
.cv.cv-size-lg .cv-job h3,
.cv.cv-size-xl .cv-job h3 {
  font-size: 0.8em;
}

.cv.cv-size-sm .cv-pills li,
.cv.cv-size-md .cv-pills li,
.cv.cv-size-lg .cv-pills li,
.cv.cv-size-xl .cv-pills li {
  font-size: 0.68em;
}

@media print {
  #cv-root {
    box-shadow: none;
    width: auto;
  }
  .cv {
    min-height: auto;
  }
  .cv-sec-handle,
  .cv-item-handle,
  .cv-del,
  .cv-item-tools,
  .cv-sec-tools {
    display: none !important;
  }
}
