/**
 * www.TorbenSorensen.com CSS template
 */

:root {
	--bg-primary: #CDA13D; /* The main gold/orange background */
	--bg-content: #fbfbfb;
	--bg-resume-header: #CCAD71; /* A lighter gold for section headers */
	--bg-nav-link: #f0f0f0;
	--text-primary: #000; /* Back to black for contrast */
	--text-nav-accent: #62490F; /* A dark brown for accents */
	--border-nav: #ddd;
	--border-light: #ccc;
	--border-dark: #000;
	--link-hover: #9D710D; /* A darker gold for hover states */
	--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
	--font-family-serif: Verdana, sans-serif;
}

body {
	/* Use a modern, system-native font stack for better performance and readability */
	font-family: var(--font-family-sans);
	font-size: 1rem; /* 1rem is typically 16px, a good base size */
	line-height: 1.6; /* Improve readability of text blocks */
	color: var(--text-primary);
	background-color: var(--bg-primary);
	margin: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

#content {
	/* Simplified for single column */
	margin-left: auto;
	margin-right: auto;
	background-color: var(--bg-primary);
	max-width: 960px; /* A standard container width */
}

.bodycontent {
	margin-left: auto;
	margin-right: auto;
	max-width: 960px;
	text-align: left;
}

#banner {
	/* Remove background image and set positioning context */
	position: relative;
	width: 100%; /* Make banner full width of its container */
	min-height: 80px; /* Use min-height to allow content to expand */
	box-sizing: border-box; /* Ensures padding is included in height */
}

.banner-subtitle {
	text-align: center;
	font-weight: 600; /* Bolder */
	font-size: 1.5rem; /* Larger */
	color: var(--text-primary);
}

.banner-title {
	text-align: left;
	font-size: 3.75rem; /* 150% larger than the previous 2.5rem */
	font-weight: 900; /* Thicker font weight */
	margin: 0; /* Remove all margins */
	padding-left: 32px;
	text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); /* A more pronounced light grey shadow */
}
.banner-title a {
	text-decoration: none;
	color: var(--text-primary);
}
.banner-title span {
	font-size: 1.5rem; /* Significantly smaller font size for .com */
	font-weight: 600; /* Less bold */
	color: #777; /* A lighter grey color */
	vertical-align: middle; /* Align with the middle of the name */
}
.banner-title a:hover {
	color: var(--text-primary); /* Keep color the same on hover */
}

.headerbackground {
	/* Replaced tileheader4.gif with a modern, fast-loading CSS gradient */
	background-image: linear-gradient(to bottom, #E2C98F, #CDA13D);
	background-repeat: repeat-x;
}

hr {
	margin-top: 25px;
	margin-bottom: 25px;
	border: 0;
	height: 1px;
	background-color: var(--border-light);
	width: 20%;
}

#centercontent {
	padding: 0 2rem 2rem;
	text-align: left;
	background-color: var(--bg-content); /* Give center content a white background */
	box-shadow: 0 0 10px rgba(0,0,0,0.05);
}

#footer {
	background-color: var(--bg-primary);
	font-size: 0.75rem; /* ~12px */
	text-align: center;
	padding: 20px 10px;
}

/* This can be replaced with an <img src="resume.svg"> or an inline SVG */
#resumeimage {
	/* background: url("/images/allimages.gif")
		no-repeat 0 0; */
	display: none; /* Hiding old image sprite */
	/* width: 116px;
	height: 152px; */
}

#breadcrumb {
	font-size: 0.875rem; /* ~14px */
	color: var(--text-primary);
	text-align: left;
	padding: 2px 10px 9px;
}

.resumeheader {
	font-size: 1rem;
	font-weight: 700;
	text-align: left;
	color: var(--text-primary);
	background-color: var(--bg-resume-header);
	border: 1px var(--border-dark) solid;
	padding: 3px 14px;
}

#job-title-header {
	font-size: 1.5rem; /* Much larger font size */
	text-align: center; /* Centered text */
	padding: 2px 14px; /* More vertical padding */
	margin-top: 0; /* Add some space above it */
	border: 1px var(--border-dark) solid;
	background-color: var(--bg-resume-header);
}

#job-title-header a {
	text-decoration: none;
	color: var(--text-primary);
}

.resumetext {
	text-align: left;
	border-inline: 1px var(--border-light) solid;
	border-bottom: 1px var(--border-light) solid;
	padding: 10px 20px;
}

.contact-info {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
}

.contact-info-left {
	text-align: left;
}

.email-link {
	display: inline-flex;
	align-items: center;
	vertical-align: middle; /* Helps align with text on the same line if any */
}

.email-link svg {
	width: 1em;
	height: 1em;
	margin-right: 8px;
	fill: currentColor;
}

/* Add vertical spacing between paragraphs for better readability */
.resumetext p {
	margin-top: 0;
	margin-bottom: 1em;
}

.job-entry {
	border: 1px solid var(--border-light);
	border-radius: 8px;
	padding-top: 4px;
	padding-bottom: 4px;
	padding-left: 20px;
	padding-right: 20px;
	margin-left: 2px;
	margin-right: 2px;
	margin-bottom: 25px;
	background-color: #fff;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.resumetext ul {
	font-size: 0.95rem; /* Slightly smaller than body text */
	list-style-type: square;
	padding-left: 25px;
	margin: 1em 0;
}

.resumetext li {
	padding-bottom: 0.5em; /* Add space between list items */
}

.summarytext {
	font-size: 1.1rem;
	padding: 12px 30px 22px;
}

.job-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap; /* Allows items to wrap on small screens */
}

.resumecompany {
	font-family: var(--font-family-serif);
	font-size: 1.2rem;
	font-weight: 700;
	text-align: left;
	padding: 2px;
}

.resumedate {
	font-size: 0.875rem;
	text-align: right;
	padding: 2px;
}

.resumejobheading {
	font-size: 1.1rem;
	font-weight: 700;
	text-align: left;
	padding: 2px;
	margin-left: 10px;
	margin-right: 10px;
}

.resumejobheading + ul {
	margin-bottom: 2px;
	padding-left: 10px;
	padding-right: 10px;
}

.accomplishment-subheading {
	font-weight: bold;
	margin-top: 1em;
	margin-bottom: 0.5em;
}

.navtextheader {
	font-family: var(--font-family-serif);
	font-size: 1.2rem;
	text-align: center;
	font-weight: 700;
	color: var(--text-primary);
	padding: 6px 4px 0;
}

.navtext, .rightnavtext {
	text-align: left;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--text-nav-accent);
	margin-left: 10px;
}

.navlink {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--text-primary);
	/* background-color: var(--bg-nav-link); */
	border-block: 1px var(--border-nav) solid;
	/* border-inline: 4px var(--border-nav) solid; */
	margin: 2px 0;
	padding: 8px 15px;
}

a.navlinka {
	color: #000;
	text-decoration: none;
}

a.navlinka:hover {
	color: var(--link-hover);
}

.skillsheading {
	font-size: 1rem;
	font-weight: bold;
	padding-top: 4px;
	padding-bottom: 0px;
}

.skillsheading + ul {
	margin-top: 4px;
	margin-bottom: 4px;
}

.skillsheading + ul li {
	padding-bottom: 2px;
}

.skillsheader {
	font-size: 0.875rem;
	font-weight: bold;
}

.skillsname {
	font-size: 0.95rem;
	font-weight: bold;
}

ul {
	padding-top: 0;
	padding-bottom: 4px;
	margin-top: 4px;
	margin-bottom: 4px;
}

#resumeimage span {
	display: none;
}

a.dropdownmenuitem,a.dropdownmenuitem:link,a.dropdownmenuitem:visited,a.dropdownmenuitem:active
	{
	color: var(--border-light);
	text-decoration: none;
}

.bannerpadding {
	padding-left: 0; /* Remove old padding to allow true centering */
}

.header-actions-left {
	position: absolute;
	top: 10px;
	left: 20px;
	text-align: left;
}

.header-actions {
	position: absolute;
	top: 10px;
	right: 20px;
	text-align: right;
}

.last-updated {
	font-size: 0.75rem; /* Very small text */
	color: #999;
	margin-top: 0;
}

.table-of-contents {
	background-color: var(--bg-content);
	padding: 0 15px;
	margin-bottom: 0;
	text-align: center;
}

.table-of-contents ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	justify-content: center;
}

.table-of-contents li a {
	display: block;
	padding: 8px 20px;
	text-decoration: none;
	color: var(--text-primary);
	font-weight: 600;
	border-bottom: 3px solid transparent;
	transition: border-color 0.3s ease, color 0.3s ease;
}

.table-of-contents li a:hover {
	color: var(--link-hover);
	border-bottom-color: var(--link-hover);
}

.linkedin-button {
	display: inline-block;
	background-color: #0077b5; /* LinkedIn blue */
	color: #fff;
	padding: 2px 20px;
	text-decoration: none;
	font-weight: bold;
	border-radius: 4px;
	transition: background-color 0.3s ease;
	display: inline-flex; /* Use flexbox for alignment */
	align-items: center; /* Center items vertically */
	justify-content: center; /* Center items horizontally */
}

.linkedin-button svg {
	width: 1em; /* Set width relative to font size */
	height: 1em; /* Set height relative to font size */
	margin-right: 8px; /* Add space between icon and text */
	fill: currentColor; /* Make the icon color the same as the text color */
}

.linkedin-button:hover {
	background-color: #005582; /* Darker LinkedIn blue */
	color: #fff;
}

.download-pdf-button {
	display: inline-block;
	background-color: var(--text-nav-accent); /* A dark color for contrast */
	color: #fff;
	padding: 2px 20px;
	text-decoration: none;
	font-weight: bold;
	border-radius: 4px;
	transition: background-color 0.3s ease;
	display: inline-flex; /* Use flexbox for alignment */
	align-items: center; /* Center items vertically */
	justify-content: center; /* Center items horizontally */
}

.download-pdf-button svg {
	width: 1em; /* Set width relative to font size */
	height: 1em; /* Set height relative to font size */
	margin-right: 8px; /* Add space between icon and text */
	fill: currentColor; /* Make the icon color the same as the text color */
}

.download-pdf-button:hover {
	background-color: var(--link-hover); /* Use the existing hover color */
	color: #fff;
}

/* --- Responsive Styles for Mobile --- */
/* These styles will apply on screens 900px or smaller */
@media (max-width: 900px) {
	.bodycontent, #content {
		width: 100%; /* Full width on mobile */
	}
	#centercontent {
		padding: 1rem; /* Reduce padding on mobile */
	}

	.banner-title {
		font-size: 2.5rem; /* Reduce font size for smaller screens */
		text-align: center;
		padding-left: 0;
	}

	.banner-title span {
		font-size: 1rem;
	}

	.header-actions {
		position: static;
		text-align: center;
		padding: 10px 0;
	}

	.header-actions-left {
		position: static;
		text-align: center;
		padding-bottom: 10px;
	}

	.contact-info {
		flex-direction: column; /* Stack contact items vertically */
		gap: 15px;
	}

	.table-of-contents ul {
		flex-direction: column; /* Stack nav items vertically */
		gap: 5px;
	}

	.job-header {
		flex-direction: column; /* Stack company and date */
		align-items: flex-start;
	}
}

/* --- Back to Top Button --- */
#back-to-top {
	display: none; /* Hidden by default, shown with JS */
	position: fixed;
	bottom: 20px;
	right: 30px;
	z-index: 99;
	border: none;
	outline: none;
	background-color: var(--text-nav-accent);
	color: white;
	cursor: pointer;
	border-radius: 50%;
	width: 50px;
	height: 50px;
	font-size: 24px;
	text-decoration: none;
	transition: background-color 0.3s ease;
	align-items: center;
	justify-content: center;
}

#back-to-top:hover {
	background-color: var(--link-hover);
}