/* Resume template base styles.
   Place in: /assets/css/resume.css */

:root {
	--resume-bg-1: #ffffff;
	--resume-bg-2: #333333;
	--resume-bg-3: #777777;
	--resume-text: #333333;
	--resume-muted: #777777;
	--resume-line: #d8d8d8;
	--resume-picture-border: #ffffff;
	--resume-header-columns: 72mm 1fr;
	--resume-picture-size: 46mm;
	--resume-logo-size: 32mm;
	--resume-header-media-top: 0;
	--resume-header-media-left: 0;
	--resume-pattern-size: 320px auto;
	--resume-content-columns: 35% 65%;
	--resume-sidebar-percent: 35%;
	--resume-content-padding: 24mm 12mm 8mm;
	--resume-content-gap: 8mm;
	--resume-sidebar-bg: transparent;
	--resume-main-bg: transparent;
	--resume-references-bg: transparent;
	--resume-bottom-box-justify: center;
	--resume-bottom-box-text-align: center;
	--resume-box-bleed: 0;
	--resume-box-border-radius: 0;
	--resume-qr-size: 32mm;
	--resume-qr-blend-mode: normal;
	--resume-qr-align: center;
	--resume-software-progress-width: 38px;
	--resume-software-progress-height: 4px;
	--resume-list-marker-padding: 10px;
	--resume-list-marker-icon-size: 10px;
	--resume-list-marker-icon: none;
	--resume-section-title-bg: var(--resume-bg-3);
	--resume-section-title-underline: var(--resume-muted);
	--resume-body-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-body-font-size: 12px;
	--resume-body-line-height: 1.55;
	--resume-body-letter-spacing: 0;
	--resume-body-font-style: normal;
	--resume-body-font-weight: 200;
	--resume-body-text-transform: none;
	--resume-body-color: var(--resume-text);
	--resume-section-title-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-section-title-font-size: 14px;
	--resume-section-title-line-height: 1;
	--resume-section-title-letter-spacing: 2px;
	--resume-section-title-font-style: normal;
	--resume-section-title-font-weight: 200;
	--resume-section-title-text-transform: uppercase;
	--resume-section-title-color: #ffffff;
	--resume-subheader-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-subheader-font-size: 13px;
	--resume-subheader-line-height: 1.25;
	--resume-subheader-letter-spacing: 1px;
	--resume-subheader-font-style: normal;
	--resume-subheader-font-weight: 200;
	--resume-subheader-text-transform: uppercase;
	--resume-subheader-color: var(--resume-text);
	--resume-muted-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-muted-font-size: 12px;
	--resume-muted-line-height: 1.25;
	--resume-muted-letter-spacing: 0;
	--resume-muted-font-style: normal;
	--resume-muted-font-weight: 200;
	--resume-muted-text-transform: none;
	--resume-muted-color: var(--resume-muted);
	--resume-list-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-list-font-size: 12px;
	--resume-list-line-height: 1.45;
	--resume-list-letter-spacing: 0;
	--resume-list-font-style: normal;
	--resume-list-font-weight: 200;
	--resume-list-text-transform: none;
	--resume-list-color: var(--resume-text);
	--resume-contact-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-contact-font-size: 12px;
	--resume-contact-line-height: 1.35;
	--resume-contact-letter-spacing: 0;
	--resume-contact-font-style: normal;
	--resume-contact-font-weight: 200;
	--resume-contact-text-transform: none;
	--resume-contact-color: var(--resume-text);
	--resume-header-contacts-font-size: 10px;
	--resume-experience-role-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-experience-role-font-size: 13px;
	--resume-experience-role-line-height: 1.25;
	--resume-experience-role-letter-spacing: 1px;
	--resume-experience-role-font-style: normal;
	--resume-experience-role-font-weight: 200;
	--resume-experience-role-text-transform: uppercase;
	--resume-experience-role-color: var(--resume-subheader-color);
	--resume-experience-company-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-experience-company-font-size: 12px;
	--resume-experience-company-line-height: 1.25;
	--resume-experience-company-letter-spacing: 0.5px;
	--resume-experience-company-font-style: normal;
	--resume-experience-company-font-weight: 200;
	--resume-experience-company-text-transform: uppercase;
	--resume-experience-company-color: var(--resume-muted-color);
	--resume-experience-location-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-experience-location-font-size: 10px;
	--resume-experience-location-line-height: 1.25;
	--resume-experience-location-letter-spacing: 0;
	--resume-experience-location-font-style: normal;
	--resume-experience-location-font-weight: 200;
	--resume-experience-location-text-transform: none;
	--resume-experience-location-color: var(--resume-muted);
	--resume-experience-date-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-experience-date-font-size: 12px;
	--resume-experience-date-line-height: 1.25;
	--resume-experience-date-letter-spacing: 0;
	--resume-experience-date-font-style: normal;
	--resume-experience-date-font-weight: 200;
	--resume-experience-date-text-transform: none;
	--resume-experience-date-color: var(--resume-muted);
	--resume-software-category-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-software-category-font-size: 13px;
	--resume-software-category-line-height: 1.25;
	--resume-software-category-letter-spacing: 1px;
	--resume-software-category-font-style: normal;
	--resume-software-category-font-weight: 200;
	--resume-software-category-text-transform: uppercase;
	--resume-software-category-color: var(--resume-text);
	--resume-software-name-font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	--resume-software-name-font-size: 12px;
	--resume-software-name-line-height: 1.45;
	--resume-software-name-letter-spacing: 0;
	--resume-software-name-font-style: normal;
	--resume-software-name-font-weight: 200;
	--resume-software-name-text-transform: none;
	--resume-software-name-color: var(--resume-text);
	--resume-experience-logo-size: 16px;
	--resume-experience-date-gap: 3mm;
	--resume-experience-date-column-width: 22mm;
	--resume-project-columns: 1;
	--resume-software-list-row-gap: 4px;
	--resume-key-skills-columns: 1;
	--resume-secondary-skills-columns: 1;
	--resume-education-columns: 2;
	--resume-education-item-padding: 0;
	--resume-reference-item-padding: 0;
	--resume-header-contacts-color: #ffffff;
	--resume-header-contacts-font-style: normal;
	--resume-header-contacts-font-weight: 200;
	--resume-contact-icon-size: 14px;
	--resume-software-icon-size: 14px;
	--resume-language-flag-size: 14px;
	--resume-custom-gallery-image-size: 18mm;
	--resume-rating-star-size: 10px;
	--resume-rating-star-color: var(--resume-bg-3);
	--resume-rating-star-border: var(--resume-bg-3);
}

* {
	box-sizing: border-box;
}

body.resume-print-body {
	margin: 0;
	background: #222;
	color: var(--resume-body-color);
	font-family: var(--resume-body-font-family);
	font-size: var(--resume-body-font-size);
	font-style: var(--resume-body-font-style);
	font-weight: var(--resume-body-font-weight);
	line-height: var(--resume-body-line-height);
	letter-spacing: var(--resume-body-letter-spacing);
	text-transform: var(--resume-body-text-transform);
}

.resume-toolbar {
	position: sticky;
	top: 0;
	z-index: 10;
	display: flex;
	justify-content: center;
	gap: 12px;
	padding: 14px;
	background: rgba(20, 20, 20, 0.88);
	backdrop-filter: blur(8px);
}

.resume-toolbar .wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
	font: inherit;
	font-size: 12px;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.resume-toolbar button.wp-element-button {
	appearance: none;
	border: 0;
}

.resume-a4 {
	position: relative;
	width: 210mm;
	min-height: 297mm;
	margin: 32px auto;
	background: var(--resume-bg-1);
	overflow: hidden;
	box-shadow: 0 22px 70px rgba(0,0,0,.38);
}

.resume-header {
	position: relative;
	display: grid;
	grid-template-columns: var(--resume-header-columns);
	align-items: center;
	min-height: 44mm;
	padding: 8mm 12mm;
	background: var(--resume-bg-2);
	color: #ffffff;
	overflow: visible;
	z-index: 2;
}

.resume-header::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--resume-pattern, none);
	background-repeat: repeat;
	background-size: var(--resume-pattern-size);
	opacity: 0.14;
	pointer-events: none;
	z-index: 0;
}

.resume-header > * {
	position: relative;
	z-index: 1;
}

.resume-picture-wrap {
	position: absolute;
	left: calc(18mm + var(--resume-header-media-left));
	top: calc(8mm + var(--resume-header-media-top));
	width: var(--resume-picture-size);
	height: var(--resume-picture-size);
	border: 3mm solid var(--resume-picture-border);
	border-radius: 50%;
	overflow: hidden;
	background: #eeeeee;
	z-index: 3;
}

.resume-picture {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.resume-heading {
	grid-column: 2;
	font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	font-size: 34px;
	font-weight: 200;
	letter-spacing: 4px;
	line-height: 1;
	text-transform: uppercase;
}

.resume-heading h1 {
	margin: 0 0 2mm;
	font-family: inherit;
	font-size: inherit;
	font-style: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	text-transform: inherit;
}

.resume-role,
.resume-subheading,
.resume-subheading-2 {
	margin: 0;
	letter-spacing: 1px;
}

.resume-role {
	font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	font-size: 16px;
	font-weight: 200;
	text-transform: uppercase;
}

.resume-subheading,
.resume-subheading-2 {
	font-family: "Futura PT", "FuturaPT", Futura, Arial, sans-serif;
	font-size: 11px;
	font-weight: 200;
	opacity: 0.9;
}

.resume-header-top-right {
	position: absolute;
	right: calc(12mm - var(--resume-header-media-left));
	top: calc(7mm + var(--resume-header-media-top));
}

.resume-header--logo .resume-logo-wrap--primary {
	grid-column: 1;
	justify-self: start;
	align-self: center;
	padding-top: var(--resume-header-media-top);
	padding-left: var(--resume-header-media-left);
}

.resume-logo {
	display: block;
	width: var(--resume-logo-size);
	height: var(--resume-logo-size);
	object-fit: contain;
}

.resume-header-contacts {
	max-width: 72mm;
	color: var(--resume-header-contacts-color);
	font-size: var(--resume-header-contacts-font-size);
	font-style: var(--resume-header-contacts-font-style);
	font-weight: var(--resume-header-contacts-font-weight);
	line-height: 1.25;
	text-align: right;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 1.2mm;
}

.resume-header-contact-row {
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
	text-align: right;
}

.resume-content-grid {
	position: relative;
	display: grid;
	grid-template-columns: var(--resume-content-columns);
	gap: var(--resume-content-gap);
	padding: var(--resume-content-padding);
	z-index: 1;
}

.resume-sidebar,
.resume-main,
.resume-references {
	position: relative;
	min-width: 0;
	margin: calc(var(--resume-box-bleed) * -1);
	padding: var(--resume-box-bleed);
	border-radius: var(--resume-box-border-radius);
}

.resume-sidebar {
	background: var(--resume-sidebar-bg);
}

.resume-main {
	background: var(--resume-main-bg);
}

.resume-references {
	background: var(--resume-references-bg);
}

.resume-section {
	margin-bottom: 9mm;
}

.resume-section-title {
	margin: 0 0 5mm;
	font-family: var(--resume-section-title-font-family);
	font-size: var(--resume-section-title-font-size);
	font-style: var(--resume-section-title-font-style);
	font-weight: var(--resume-section-title-font-weight);
	letter-spacing: var(--resume-section-title-letter-spacing);
	line-height: var(--resume-section-title-line-height);
	text-transform: var(--resume-section-title-text-transform);
	color: var(--resume-section-title-color);
}

.resume-section-title--default {
	padding: var(--resume-section-title-padding, 2mm 3mm);
	background: var(--resume-section-title-bg);
}

.resume-sidebar .resume-section-title--default {
	padding: var(--resume-section-title-padding, 0 0 2mm);
	background: transparent;
	border-bottom: 1px solid var(--resume-section-title-underline);
	color: var(--resume-section-title-color, var(--resume-text));
}

.resume-section-title--box {
	padding: var(--resume-section-title-padding, 2mm 3mm);
	background: var(--resume-section-title-bg);
}

.resume-section-title--underline {
	padding: var(--resume-section-title-padding, 0 0 2mm);
	background: transparent;
	border-bottom: 1px solid var(--resume-section-title-underline);
	color: var(--resume-section-title-color);
}


.resume-body-text,
.resume-richtext,
.resume-richtext p {
	font-family: var(--resume-body-font-family);
	font-size: var(--resume-body-font-size);
	font-style: var(--resume-body-font-style);
	font-weight: var(--resume-body-font-weight);
	line-height: var(--resume-body-line-height);
	letter-spacing: var(--resume-body-letter-spacing);
	text-transform: var(--resume-body-text-transform);
	color: var(--resume-body-color);
}

.resume-body-text {
	padding: var(--resume-body-padding);
}

.resume-richtext p {
	margin-top: 0;
}

.resume-subheader-text,
.resume-software-category h3,
.resume-experience-item h3,
.resume-card h3 {
	margin: 0;
	font-family: var(--resume-subheader-font-family);
	font-size: var(--resume-subheader-font-size);
	font-style: var(--resume-subheader-font-style);
	font-weight: var(--resume-subheader-font-weight);
	letter-spacing: var(--resume-subheader-letter-spacing);
	line-height: var(--resume-subheader-line-height);
	text-transform: var(--resume-subheader-text-transform);
	color: var(--resume-subheader-color);
	padding: var(--resume-subheader-padding);
}

.resume-muted-text,
.resume-item-heading p,
.resume-company,
.resume-projects,
.resume-card p {
	font-family: var(--resume-muted-font-family);
	font-size: var(--resume-muted-font-size);
	font-style: var(--resume-muted-font-style);
	font-weight: var(--resume-muted-font-weight);
	line-height: var(--resume-muted-line-height);
	letter-spacing: var(--resume-muted-letter-spacing);
	text-transform: var(--resume-muted-text-transform);
	color: var(--resume-muted-color);
	padding: var(--resume-muted-padding);
}

.resume-contact-section,
.resume-contact-section p,
.resume-contact-row {
	font-family: var(--resume-contact-font-family);
	font-size: var(--resume-contact-font-size);
	font-style: var(--resume-contact-font-style);
	font-weight: var(--resume-contact-font-weight);
	line-height: var(--resume-contact-line-height);
	letter-spacing: var(--resume-contact-letter-spacing);
	text-transform: var(--resume-contact-text-transform);
	color: var(--resume-contact-color);
	text-align: left;
	padding: var(--resume-contact-padding);
}

.resume-contact-section {
	max-width: 100%;
}

.resume-contact-row {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 5px;
	margin-bottom: 6px;
	max-width: 100%;
	min-width: 0;
}

.resume-contact-icon,
.resume-software-icon {
	object-fit: contain;
}

.resume-contact-icon {
	flex: 0 0 var(--resume-contact-icon-size);
	width: var(--resume-contact-icon-size);
	height: var(--resume-contact-icon-size);
	margin-top: 0.2em;
}

.resume-contact-row:not(:has(.resume-contact-icon)) {
	gap: 5px;
}

.resume-contact-label {
	flex: 0 0 auto;
	font-weight: 700;
	white-space: nowrap;
}

.resume-contact-value,
.resume-contact-extra {
	flex: 1 1 0;
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.resume-qr {
	display: block;
	width: var(--resume-qr-size);
	height: auto;
	max-width: 100%;
	margin-top: 6mm;
	margin-bottom: 6mm;
	mix-blend-mode: var(--resume-qr-blend-mode);
}

.resume-qr {
	margin-left: auto;
	margin-right: auto;
}

.resume-a4[style*='--resume-qr-align:left'] .resume-qr {
	margin-left: 0;
	margin-right: auto;
}

.resume-a4[style*='--resume-qr-align:right'] .resume-qr {
	margin-left: auto;
	margin-right: 0;
}

.resume-list {
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: var(--resume-list-font-family);
	font-size: var(--resume-list-font-size);
	font-style: var(--resume-list-font-style);
	font-weight: var(--resume-list-font-weight);
	line-height: var(--resume-list-line-height);
	letter-spacing: var(--resume-list-letter-spacing);
	text-transform: var(--resume-list-text-transform);
	color: var(--resume-list-color);
	padding: var(--resume-list-padding);
}

.resume-list li {
	margin-bottom: 3px;
}

.resume-skill-columns {
	display: grid;
	gap: 3px 4mm;
}

.resume-key-skill-columns {
	grid-template-columns: repeat(var(--resume-key-skills-columns), minmax(0, 1fr));
}

.resume-secondary-skill-columns {
	grid-template-columns: repeat(var(--resume-secondary-skills-columns), minmax(0, 1fr));
}


.resume-list--bullet {
	list-style: disc;
	padding-left: 1.2em;
}

.resume-list--dash li {
	display: flex;
	gap: 0.45em;
}

.resume-list--dash li::before {
	content: "–";
	flex: 0 0 auto;
}

.resume-list--space {
	padding-left: var(--resume-list-marker-padding);
}

.resume-list--icon li {
	display: flex;
	align-items: flex-start;
	gap: 0.45em;
}

.resume-list--icon li::before {
	content: "";
	flex: 0 0 var(--resume-list-marker-icon-size);
	width: var(--resume-list-marker-icon-size);
	height: var(--resume-list-marker-icon-size);
	margin-top: 0.25em;
	background-image: var(--resume-list-marker-icon);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.resume-language-list {
	display: grid;
	gap: 3px;
}

.resume-language-item {
	min-width: 0;
}

.resume-language-inner {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-width: 0;
}

.resume-language-flag {
	flex: 0 0 var(--resume-language-flag-size);
	width: var(--resume-language-flag-size);
	height: var(--resume-language-flag-size);
	object-fit: contain;
}

.resume-language-name,
.resume-language-level {
	min-width: 0;
	overflow-wrap: anywhere;
}


.resume-custom-section--row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 4mm;
	align-items: start;
}

.resume-custom-section--row .resume-section-title {
	grid-column: 1 / -1;
}

.resume-custom-section--column {
	display: block;
}

.resume-custom-text {
	margin-bottom: 3mm;
}

.resume-custom-gallery {
	display: grid;
	gap: 2mm;
	justify-items: center;
}

.resume-custom-gallery-row {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: nowrap;
	gap: 2mm;
	max-width: 100%;
}

.resume-custom-gallery-image {
	display: block;
	width: var(--resume-custom-gallery-image-size);
	height: var(--resume-custom-gallery-image-size);
	object-fit: contain;
}

.resume-software-category {
	margin-bottom: 6mm;
	padding-left: var(--resume-software-category-left-padding);
}

.resume-software-category h3 {
	font-family: var(--resume-software-category-font-family);
	font-size: var(--resume-software-category-font-size);
	font-style: var(--resume-software-category-font-style);
	font-weight: var(--resume-software-category-font-weight);
	line-height: var(--resume-software-category-line-height);
	letter-spacing: var(--resume-software-category-letter-spacing);
	text-transform: var(--resume-software-category-text-transform);
	color: var(--resume-software-category-color);
	padding: var(--resume-software-category-padding);
}

.resume-software-list {
	display: grid;
	grid-template-columns: max-content auto;
	column-gap: 7px;
	row-gap: var(--resume-software-list-row-gap);
	align-items: center;
	justify-content: start;
	margin-top: 3mm;
	padding-left: var(--resume-software-left-padding);
}

.resume-software-item {
	display: contents;
}

.resume-software-label {
	display: inline-flex;
	grid-column: 1;
	align-items: center;
	gap: 6px;
	min-width: 0;
}

.resume-software-icon {
	flex: 0 0 var(--resume-software-icon-size);
	width: var(--resume-software-icon-size);
	height: var(--resume-software-icon-size);
}

.resume-software-name {
	min-width: 0;
	overflow-wrap: anywhere;
	font-family: var(--resume-software-name-font-family);
	font-size: var(--resume-software-name-font-size);
	font-style: var(--resume-software-name-font-style);
	font-weight: var(--resume-software-name-font-weight);
	line-height: var(--resume-software-name-line-height);
	letter-spacing: var(--resume-software-name-letter-spacing);
	text-transform: var(--resume-software-name-text-transform);
	color: var(--resume-software-name-color);
	padding: var(--resume-software-name-padding);
}

.resume-software-metric {
	display: inline-flex;
	grid-column: 2;
	align-items: center;
	justify-self: start;
	gap: 4px;
	line-height: 1;
	white-space: nowrap;
}

.resume-software-rating {
	display: inline-flex;
	align-items: center;
	gap: 1px;
	line-height: 1;
}

.resume-rating-star {
	display: block;
	width: var(--resume-rating-star-size);
	height: var(--resume-rating-star-size);
	fill: transparent;
	stroke: var(--resume-rating-star-border);
	stroke-width: 1.7;
}

.resume-rating-star.is-filled {
	fill: var(--resume-rating-star-color);
	stroke: var(--resume-rating-star-color);
}

.resume-software-progress {
	display: inline-flex;
	align-items: center;
	width: var(--resume-software-progress-width);
	height: var(--resume-software-progress-height);
	border: 1px solid var(--resume-rating-star-border);
	border-radius: 999px;
	overflow: hidden;
}

.resume-software-progress-fill {
	display: block;
	height: 100%;
	background: var(--resume-rating-star-color);
}

.resume-software-metric-text {
	font-size: 0.85em;
	line-height: 1;
	color: var(--resume-muted-color);
}

.resume-experience-item {
	position: relative;
	padding-bottom: 6mm;
	margin-bottom: 6mm;
	border-bottom: 1px dashed var(--resume-line);
}

.resume-experience-item--logo-top-right {
	padding-right: calc(var(--resume-experience-logo-size) + 4mm);
}

.resume-experience-logo-column {
	position: absolute;
	right: 0;
	top: 0;
	width: var(--resume-experience-logo-size);
	height: var(--resume-experience-logo-size);
}

.resume-experience-item--logo-top-right .resume-experience-content {
	grid-column: auto;
}

.resume-item-heading {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 10px;
	align-items: start;
}

.resume-item-heading p,
.resume-company,
.resume-projects,
.resume-card p {
	margin: 0 0 0.8mm;
}

.resume-experience-item--dates-left {
	display: grid;
	grid-template-columns: minmax(var(--resume-experience-date-column-width), auto) 1fr;
	gap: var(--resume-experience-date-gap);
	align-items: start;
}

.resume-experience-date-column {
	white-space: nowrap;
}

.resume-experience-dates {
	font-family: var(--resume-experience-date-font-family);
	font-size: var(--resume-experience-date-font-size);
	font-style: var(--resume-experience-date-font-style);
	font-weight: var(--resume-experience-date-font-weight);
	line-height: var(--resume-experience-date-line-height);
	letter-spacing: var(--resume-experience-date-letter-spacing);
	text-transform: var(--resume-experience-date-text-transform);
	color: var(--resume-experience-date-color);
	padding: var(--resume-experience-date-padding);
}

.resume-experience-item--dates-stacked .resume-experience-date-column {
	display: flex;
	flex-direction: column;
	gap: 0.4mm;
}

.resume-experience-date-in,
.resume-experience-date-out {
	display: block;
}

.resume-experience-content {
	min-width: 0;
}

.resume-experience-role-wrap {
	display: flex;
	align-items: center;
	gap: 6px;
	min-width: 0;
}

.resume-experience-role-wrap h3 {
	min-width: 0;
	font-family: var(--resume-experience-role-font-family);
	font-size: var(--resume-experience-role-font-size);
	font-style: var(--resume-experience-role-font-style);
	font-weight: var(--resume-experience-role-font-weight);
	line-height: var(--resume-experience-role-line-height);
	letter-spacing: var(--resume-experience-role-letter-spacing);
	text-transform: var(--resume-experience-role-text-transform);
	color: var(--resume-experience-role-color);
	padding: var(--resume-experience-role-padding);
}

.resume-experience-logo {
	flex: 0 0 var(--resume-experience-logo-size);
	width: var(--resume-experience-logo-size);
	height: var(--resume-experience-logo-size);
	object-fit: contain;
}

.resume-company-name {
	font-family: var(--resume-experience-company-font-family);
	font-size: var(--resume-experience-company-font-size);
	font-style: var(--resume-experience-company-font-style);
	font-weight: var(--resume-experience-company-font-weight);
	line-height: var(--resume-experience-company-line-height);
	letter-spacing: var(--resume-experience-company-letter-spacing);
	text-transform: var(--resume-experience-company-text-transform);
	color: var(--resume-experience-company-color);
	padding: var(--resume-experience-company-padding);
}

.resume-experience-location {
	font-family: var(--resume-experience-location-font-family);
	font-size: var(--resume-experience-location-font-size);
	font-style: var(--resume-experience-location-font-style);
	font-weight: var(--resume-experience-location-font-weight);
	line-height: var(--resume-experience-location-line-height);
	letter-spacing: var(--resume-experience-location-letter-spacing);
	text-transform: var(--resume-experience-location-text-transform);
	color: var(--resume-experience-location-color) !important;
	padding: var(--resume-experience-location-padding);
}

.resume-company-name + .resume-experience-location::before {
	content: " | ";
}

.resume-projects {
	margin: 0 0 0.8mm;
}

.resume-projects-list {
	display: grid;
	grid-template-columns: repeat(var(--resume-project-columns), minmax(0, 1fr));
	gap: 0.5mm 4mm;
	margin: 0.8mm 0 0;
	padding: 0;
	list-style-position: inside;
}

.resume-projects--stacked .resume-projects-list {
	list-style: none;
}

.resume-projects--bullets .resume-projects-list {
	list-style: disc;
	padding-left: 1.2em;
}

.resume-project-link {
	display: inline-flex;
	align-items: baseline;
	gap: 0.25em;
	color: inherit;
	font: inherit;
	font-size: inherit;
	font-style: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	text-decoration: none;
}

.resume-projects a,
.resume-projects-list a {
	color: inherit;
	font: inherit;
	font-weight: inherit !important;
	text-decoration: none;
}

.resume-project-link-icon {
	display: inline-block;
	margin-left: 0.18em;
	font-size: 0.58em;
	line-height: 1;
	color: #777777;
	opacity: 0.72;
	transition: transform 180ms ease, opacity 180ms ease;
	transform-origin: center;
}

.resume-project-link:hover .resume-project-link-icon {
	transform: scale(0.72);
	opacity: 1;
}

.resume-card-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8mm;
	justify-items: center;
}

.resume-card-grid--column {
	grid-template-columns: 1fr !important;
}

.resume-card-grid--row {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.resume-card {
	max-width: 100%;
	text-align: left;
}

.resume-education-grid.resume-card-grid--row {
	grid-template-columns: repeat(var(--resume-education-columns), minmax(0, 1fr));
}

.resume-references-grid.resume-card-grid--row {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.resume-education-section .resume-card {
	padding: var(--resume-education-item-padding);
}

.resume-education-dates {
	display: flex;
	flex-direction: column;
	gap: 0.4mm;
	margin-bottom: 0.8mm;
}

.resume-references-section .resume-card {
	padding: var(--resume-reference-item-padding);
}

.resume-references {
	padding: var(--resume-box-bleed);
	padding-right: max(var(--resume-box-bleed), 12mm);
	padding-left: max(var(--resume-box-bleed), 12mm);
	padding-bottom: max(var(--resume-box-bleed), 10mm);
	text-align: var(--resume-bottom-box-text-align);
}

.resume-bottom-box .resume-card-grid {
	justify-items: var(--resume-bottom-box-justify);
}

.resume-bottom-box .resume-card {
	text-align: left;
}

@media (max-width: 900px) {
	.resume-custom-section--row {
		grid-template-columns: 1fr;
	}

	.resume-experience-item--logo-top-right {
		padding-right: 0;
	}

	.resume-experience-logo-column {
		position: static;
		margin-bottom: 2mm;
	}

	.resume-experience-item--dates-left {
		grid-template-columns: 1fr;
		gap: 2mm;
	}

	.resume-a4 {
		width: min(100%, 210mm);
		margin: 0 auto;
	}

	.resume-header,
	.resume-content-grid {
		grid-template-columns: 1fr;
	}

	.resume-picture-wrap {
		position: relative;
		left: auto;
		top: auto;
		margin-bottom: 8mm;
	}

	.resume-heading,
	.resume-header--logo .resume-logo-wrap {
		grid-column: auto;
	}

	.resume-header--logo .resume-logo-wrap {
		margin-bottom: 8mm;
	}

	.resume-header-top-right {
		right: calc(8mm - var(--resume-header-media-left));
		top: calc(6mm + var(--resume-header-media-top));
	}

	.resume-content-grid {
		padding-top: 10mm;
	}

	.resume-main {
		order: 1;
	}

	.resume-sidebar {
		order: 2;
	}

	.resume-bottom-box {
		order: 3;
	}
}

@page {
	size: A4;
	margin: 0;
}


@media print {
	html,
	body.resume-print-body {
		width: 210mm;
		min-height: 297mm;
		overflow: visible !important;
		background: #ffffff !important;
	}

	.no-print,
	.resume-toolbar {
		display: none !important;
	}

	.resume-a4 {
		width: 210mm;
		min-height: 297mm;
		max-width: 210mm;
		margin: 0;
		transform-origin: top left;
		box-shadow: none;
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}

	.resume-header {
		grid-template-columns: var(--resume-header-columns) !important;
	}

	.resume-content-grid {
		grid-template-columns: var(--resume-content-columns) !important;
		gap: var(--resume-content-gap) !important;
		padding: var(--resume-content-padding) !important;
		-webkit-box-decoration-break: clone;
		box-decoration-break: clone;
	}

	.resume-sidebar,
	.resume-main,
	.resume-bottom-box {
		order: initial !important;
	}



	/* Print: keep desktop/grid layout even when printing from a mobile-sized viewport. */
	.resume-header {
		overflow: visible !important;
		align-items: center !important;
	}

	.resume-header--picture .resume-picture-wrap {
		position: relative !important;
		grid-column: 1 !important;
		justify-self: start !important;
		align-self: center !important;
		left: auto !important;
		top: auto !important;
		margin: var(--resume-header-media-top) 0 0 var(--resume-header-media-left) !important;
	}

	.resume-heading {
		grid-column: 2 !important;
	}

	.resume-header-top-right {
		position: absolute !important;
		right: calc(12mm - var(--resume-header-media-left)) !important;
		top: calc(7mm + var(--resume-header-media-top)) !important;
	}

	.resume-experience-item--logo-top-right {
		padding-right: calc(var(--resume-experience-logo-size) + 4mm) !important;
	}

	.resume-experience-logo-column {
		position: absolute !important;
		right: 0 !important;
		top: 0 !important;
		width: var(--resume-experience-logo-size) !important;
		height: var(--resume-experience-logo-size) !important;
		margin-bottom: 0 !important;
	}

	.resume-experience-item--dates-left {
		display: grid !important;
		grid-template-columns: minmax(var(--resume-experience-date-column-width), auto) 1fr !important;
		gap: var(--resume-experience-date-gap) !important;
		align-items: start !important;
	}

	.resume-experience-item--dates-stacked .resume-experience-date-column {
		display: flex !important;
		flex-direction: column !important;
		gap: 0.4mm !important;
	}

	/* Print pagination: keep first page flush, but give following pages a 10mm safe top margin via @page. */
	.resume-a4 {
		overflow: visible !important;
	}

	.resume-sidebar,
	.resume-main,
	.resume-bottom-box {
		-webkit-box-decoration-break: clone;
		box-decoration-break: clone;
	}

	.resume-section,
	.resume-section-content,
	.resume-richtext,
	.resume-richtext p,
	.resume-item-heading,
	.resume-company,
	.resume-projects,
	.resume-section-title,
	.resume-experience-item,
	.resume-software-category,
	.resume-card,
	.resume-custom-text,
	.resume-custom-gallery,
	.resume-custom-gallery-row,
	.resume-language-item {
		break-inside: avoid;
		page-break-inside: avoid;
		orphans: 3;
		widows: 3;
	}

	.resume-section-title {
		break-after: avoid;
		page-break-after: avoid;
	}

	.resume-section + .resume-section,
	.resume-experience-item + .resume-experience-item,
	.resume-software-category + .resume-software-category,
	.resume-card + .resume-card {
		break-before: auto;
		page-break-before: auto;
	}

	.resume-project-link-icon {
		display: none !important;
	}
}

.resume-linked-text {
	display: inline-flex;
	align-items: baseline;
	gap: 0.25em;
	color: inherit;
	font: inherit;
	font-size: inherit;
	font-style: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	text-decoration: none;
}

.resume-contact-link {
	max-width: 100%;
	word-break: break-word;
}

.resume-project-link-icon--image {
	width: 0.72em;
	height: 0.72em;
	object-fit: contain;
	vertical-align: -0.08em;
}

.resume-linked-text:hover .resume-project-link-icon {
	transform: scale(0.72);
	opacity: 1;
}
