/* Global resets & typography */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: 'Roboto Slab', serif;
	font-weight: 300;
	color: #595959;
	background: #FFFFFF;
	line-height: 1.6;
}

a {
	color: #E87A00;
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

/* Header & Navigation */
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	background: #001F3D;
	z-index: 1000;
}

nav {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	align-items: center;       /* vertical centering */
	flex-wrap: wrap;
	justify-content: flex-end;
	padding: 1rem;
}

/* Logo in nav aligned left and vertically centered */
.nav-logo {
	max-height: 40px;
	height: auto;
	margin-right: auto;
}

nav a {
	color: #FFFFFF;
	padding: 0.5rem 0.5rem;
	margin: 0.5rem;
	border-radius: 4px;
	transition: background 0.2s ease-in-out;
	font-weight: 400;
	white-space: normal;
}

nav a:hover {
	background: #E87A00;
}

/* Hero Section */
#hero {
	padding-top: 80px;
	padding-bottom: 80px;
	display: flex; flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 80vh;
	background: #f5f8fa;
}

#hero img {
	width: 20vw;
	max-width: 1000px;
	height: auto;
}

#hero .tagline {
	margin-top: 1.5rem;
	font-family: 'Impact', 'Roboto Slab', serif;
	width: 100%;
	padding: 0 1rem;
}

#hero .tagline p:first-child {
	font-size: 2.5rem;
	font-weight: 500;
	color: #001F3D;
	margin-bottom: 0.5rem;
	word-break: break-word;
}

#hero .tagline p:last-child {
	font-size: 1.5rem;
	font-weight: 400;
	color: #001F3D;
	word-break: break-word;
}

/* LANDING PAGE SPECIFIC*/
	/* Main Content*/
	main {
		max-width: 1200px;
		margin: 2rem auto;
		padding: 0 1rem;
	}

	/* Section Headings */
	h2 {
		font-size: 2.25rem;
		font-weight: 700;
		color: #001F3D;
		letter-spacing: 0.02em;
		margin-bottom: 1rem;
	}

	/* About Us */
	#about p {
		font-size: 1rem;
		line-height: 2;
		padding-bottom:15px
	}

	/* Services Cards */
	#services .cards {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
		gap: 1.5rem;
	}
	.card {
		background: #f9f9f9;
		border-radius: 8px;
		padding: 1.5rem;
		box-shadow: 0 2px 5px rgba(0,0,0,0.05);
		transition: transform 0.2s ease;
	}

	.card:hover {
		transform: translateY(-5px);
	}

	.card h3 {
		font-size: 1.5rem;
		font-weight: 600;
		color: #001F3D;
		margin-bottom: 0.75rem;
	}

	.card p {
		font-size: 0.95rem;
		line-height: 1.6;
	}

/* RESEARCH PAGE + ARTICLES SPECIFIC*/
	/* Main Content Container */
	main {
		max-width: 1200px;
		margin: 100px auto 2rem;
		padding: 0 1rem;
	}

/* RESEARCH PAGE SPECIFIC*/	
	/* Blog Listing */
	#blog-listing h2 {
		font-size: 2.25rem;
		font-weight: 700;
		color: #001F3D;
		margin-bottom: 1rem;
	}
	
	.post-card {
		background: #f9f9f9;
		border-radius: 8px;
		padding: 1.5rem;
		box-shadow: 0 2px 5px rgba(0,0,0,0.05);
		margin-bottom: 1.5rem;
	}
	
	.post-card h3 {
		font-size: 1.75rem;
		font-weight: 600;
		color: #001F3D;
		margin-bottom: 0.5rem;
	}
	
	.post-card time {
		font-size: 0.875rem;
		color: #888888;
	}
	
	.post-card p {
		margin: 0.75rem 0;
		font-size: 1rem;
	}

	.read-more {
		font-weight: 600;
	}
	
	.pagination {
		text-align: center;
		margin-top: 2rem;
	}
	
	.pagination button {
		background: #E87A00;
		color: #FFFFFF;
		border: none;
		padding: 0.75rem 1.5rem;
		border-radius: 4px;
		cursor: pointer;
		font-size: 1rem;
	}
	
	.pagination button:hover {
		background: #cf6200;
	}
	
	/* Section Headings */
	h2.section-title {
		margin: 2rem 0 1rem;
	}

	/* RESEARCH PAGE + ARTICLES SPECIFIC*/
		/* Keywords */
		.keywords {
			font-size:0.875rem;
			color:#888;
			margin-bottom:0.5rem;
			padding-top:1rem
		}
		
		.keywords span {
			background:#f0f0f0;
			padding:0.25rem 0.5rem;
			border-radius:4px;
			margin-right:0.5rem;
		}
			
		/* Post header */
		article.post h1 {
			font-size:2.5rem;
			font-weight:700;
			color:#001F3D;
			margin-bottom:1rem;
		}
		
		.post-tldr h2 {
			margin:0.5rem 0;
			font-size:1rem;
			line-height:1.5;
			font-style: bold italic;
		}
		
		
		.post-tldr p {
			margin:0.5rem 0;
			font-size:0.85rem;
			line-height:1.5;
			font-style: italic;
			text-align: justify;
		}
		
		#caption{
			font-size:0.875rem;
			font-weight:300;
			color:#001F3D;
			font-style: italic;
			margin-bottom:2rem;
		}
		
		.headline-image {
			width:100%;
			max-height:400px;
			object-fit:cover;
			margin-bottom:0.25rem;
		}
				
		.post-meta {
			font-size:0.875rem;
			color:#888;
			margin-bottom:2rem;
		}
		
		.post-meta span, .post-meta time {
			margin-right:0.75rem;
		}
		
		/* Article content */
		
		.post {
		max-width: 700px;
		margin: 100px auto 2rem;
		padding: 0 1rem;
		}
		
		.post-content h2 {
		margin-top:2rem;
		font-size:1.75rem;
		font-weight:600;
		color:#001F3D;
		}
			
		.post-content p {
			margin:1rem 0;
			font-size:1rem;
			line-height:1.7;
			text-align: justify;
		}
		
		.post-content ul {
		/* azzera il margin di default */
		margin: 0 0 1rem 0;
		/* sposta i bullet dentro il padding del main container */
		padding-left: 1rem;
		/* lascia il bullet fuori dal testo, ma entro il padding */
		list-style-position: outside;
		}
			
		.post-content img {
			max-width:100%;
			height:auto;
			margin:0.25rem 0;
		}
		
		/* inline captions inside the main article body */
		.post-content figure figcaption.caption-article {
			font-size:0.875rem;
			font-weight:300;
			color:#888;
			font-style: italic;
			margin-bottom:1rem;
		}
		

/* Footer */
footer {
	background: #001F3D;
	color: #FFFFFF;
	padding: 2rem 1rem;
}

.footer-container {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}

.footer-links, .footer-contact {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.footer-links a, .footer-contact a {
	color: #FFFFFF;
	margin-right: 1.5rem;
	font-size: 0.9rem;
}

.footer-contact img {
	width: 20px;
	height: auto;
	margin-right: 0.5rem;
}

.footer-note {
	width: 100%;
	margin-top: 1rem;
	font-style: italic;
	font-weight: 300;
	font-size: 0.8rem;
	color: #DDDDDD;
}

/* Responsive */
@media (max-width: 768px) {
	nav {
		justify-content: center;
	}
	
	.footer-container {
		flex-direction: column;
		text-align: center;
	}
	
	.footer-links, .footer-contact {
		justify-content: center;
		margin-bottom: 1rem;
	}
	
	#hero .tagline p:first-child {
		font-size: 2rem;
	}
	
	#hero .tagline p:last-child {
		font-size: 1.25rem;
	}
}