/* Typography */
@import url("https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@400;600;700&family=Source+Sans+Pro:wght@300;400;600&display=swap");

/* Design Tokens */
:root {
	--color-primary: #008ae0;
	--color-accent: #5a25a5;
	--color-text: #131313;
	--color-text-muted: #505050;
	--color-background: #efefef;
	--color-border: #e5e7eb;
	--font-display: "Crimson Pro", "Georgia", serif;
	--font-body: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--space-xs: 0.5rem;
	--space-sm: 0.8rem;
	--space-md: 1.2rem;
	--space-lg: 2rem;
	--max-width: 1100px;
}

/* Base Reset */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	font: 300 1rem/1.7 var(--font-body);
	color: var(--color-text);
	background: var(--color-background);
	-webkit-font-smoothing: antialiased;
}

/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-display);
	font-weight: 600;
	line-height: 1.3;
}

h1 {
	font-size: 2.5rem;
	font-weight: 700;
}

h2 {
	font-size: 1.75rem;
	margin-bottom: var(--space-md);
	position: relative;
	padding-bottom: var(--space-xs);
}

h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 60px;
	height: 3px;
	background: linear-gradient(90deg, var(--color-accent), transparent);
}

h3 {
	font-size: 1.35rem;
}

h4 {
	font-size: 1.1rem;
	margin: var(--space-md) 0 var(--space-sm);
}

p {
	margin-bottom: var(--space-sm);
}

strong {
	font-weight: 600;
}

/* Layout */
.page-wrapper {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

/* Hero Section */
.hero {
	background: linear-gradient(135deg, var(--color-text), var(--color-primary));
	color: white;
	position: relative;
	overflow: hidden;
}

.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(
		45deg,
		transparent,
		transparent 35px,
		rgba(255, 255, 255, 0.03) 35px,
		rgba(255, 255, 255, 0.03) 70px
	);
	pointer-events: none;
}

.hero-content {
	max-width: var(--max-width);
	margin: 0 auto;
	padding: var(--space-lg);
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: var(--space-md);
	align-items: center;
	position: relative;
	z-index: 1;
}

.profile-photo img {
	width: 100%;
	border-radius: 4px;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
	transition: transform 300ms ease;
}

.profile-photo:hover img {
	transform: scale(1.02);
}

.name {
	display: block;
	font-size: 3rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.tagline {
	display: block;
	font: 400 1.5rem var(--font-body);
	color: rgba(255, 255, 255, 0.85);
}

.location {
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: var(--space-sm);
	font-size: 1.05rem;
}

.contact-links {
	display: flex;
	gap: var(--space-sm);
	flex-wrap: wrap;
}

.contact-link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	color: white;
	background: rgba(255, 255, 255, 0.1);
	padding: var(--space-xs) var(--space-sm);
	border-radius: 2px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	transition: 150ms ease;
	text-decoration: none;
}

.contact-link:hover {
	background: rgba(255, 255, 255, 0.15);
	border-color: rgba(255, 255, 255, 0.3);
	transform: translateY(-1px);
}
.contact-link svg:is(:where(.contact-link):hover *) {
	color: #008ae0;
}

.contact-link svg {
	flex-shrink: 0;
}

/* Main Content */
.content {
	max-width: var(--max-width);
	margin: 0 auto;
	padding: var(--space-lg);
	flex: 1;
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: var(--space-lg);
}

/* Shared card styles */
.summary,
.experience,
.sidebar-sections .section {
	background: white;
	border-radius: 4px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

/* Summary Section */
.summary {
	grid-column: 1 / -1;
	padding: var(--space-lg);
}

.lead {
	font: 400 1.25rem var(--font-display);
	color: var(--color-primary);
	margin-bottom: var(--space-md);
}

/* Experience Section */
.experience {
	padding: var(--space-lg);
}

.role-header h3 {
	color: var(--color-primary);
}

.role-period {
	color: var(--color-text-muted);
	font-size: 0.95rem;
	margin-bottom: var(--space-sm);
}

.role-description {
	margin-bottom: var(--space-md);
}

.expertise h4 {
	color: var(--color-primary);
	font-size: 1.15rem;
}

.list {
	list-style: none;
	display: grid;
	/* agj May26 was: grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); */
	grid-template-columns: 1fr;
	gap: var(--space-xs);
}

.list li {
	padding-left: var(--space-md);
	position: relative;
	/* agj May26: was:  font-size: 0.95rem; */
	color: var(--color-text-muted);
	/* agj May26: added: 
	font-weight: 600;*/
}

.list li::before {
	content: "→";
	position: absolute;
	left: 0;
	color: var(--color-accent);
	font-weight: 600;

}

/* Sidebar */
.sidebar-sections {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

.sidebar-sections .section {
	padding: var(--space-md);
}

.sidebar-sections h2 {
	font-size: 1.35rem;
	margin-bottom: var(--space-sm);
}

.sidebar-sections h2::after {
	width: 40px;
}

.skills-list,
.languages-list,
ul {
	list-style: none;
}

.skills-list li,
.languages-list li {
	padding: var(--space-xs) 0;
	border-bottom: 1px solid var(--color-border);
	font-size: 0.95rem;
}

.skills-list li:last-child,
.languages-list li:last-child {
	border-bottom: none;
}

.education-item h3 {
	font-size: 1.1rem;
	color: var(--color-primary);
	margin-bottom: var(--space-xs);
}

.patents p {
	color: var(--color-text-muted);
	font-size: 0.95rem;
}

/* Footer */
.footer {
	background: var(--color-primary);
	color: white;
	text-align: center;
	padding: var(--space-md);
	font-size: 0.9rem;
}

/* Responsive - Tablet */
@media (max-width: 900px) {
	.content,
	.strategy-list {
		grid-template-columns: 1fr;
	}
	.hero-content {
		grid-template-columns: 150px 1fr;
	}
	.name {
		font-size: 2.25rem;
	}
	.tagline {
		font-size: 1.25rem;
	}
	.experience {
		order: 9999;
	}
}

/* Responsive - Mobile */
@media (max-width: 600px) {
	.hero-content {
		grid-template-columns: 1fr;
		text-align: center;
	}
	.profile-photo {
		max-width: 200px;
		margin: 0 auto;
	}
	.contact-links {
		justify-content: center;
	}
	.name {
		font-size: 1.85rem;
	}
	.tagline {
		font-size: 1.1rem;
	}
	h2 {
		font-size: 1.5rem;
	}
	.summary,
	.experience,
	.sidebar-sections .section {
		padding: var(--space-md);
	}
}

/* Print Styles */
@media print {
	body {
		background: white;
	}
	.hero {
		background: var(--color-primary);
		color: white;
		print-color-adjust: exact;
		-webkit-print-color-adjust: exact;
	}
	.content {
		grid-template-columns: 2fr 1fr;
	}
	a {
		text-decoration: underline;
	}
	.contact-link {
		border: 1px solid rgba(255, 255, 255, 0.5);
	}
}
