:root {
	--bg-color: #ffffff;
	--text-color: #102041;
	--accent-primary: #20314D;
	--accent-secondary: #872220;
	--color-success: #239919;
	--color-error: #ad1818;
	--glass-bg: rgba(32, 49, 77, 0.05);
	--glass-border: rgba(32, 49, 77, 0.1);
	--font-main: 'Lato', sans-serif;
}

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

html {
	scroll-behavior: smooth;
	scroll-padding-top: 100px;
	/* Per compensare l'header fisso */
}

body {
	font-family: var(--font-main);
	background-color: #ECE3D4;
	/* User requested specific color */
	color: var(--text-color);
	text-align: center;
	position: relative;
	/* Ensure canvas stays within hero */
}

a {
	text-decoration: none;
	color: inherit;
	transition: color 0.3s ease;
}

ul {
	list-style: none;
}

/* Header */
.main-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	padding: 1.5rem 2rem;
	z-index: 100;
	backdrop-filter: blur(10px);
	background: rgba(10, 10, 10, 0.8);
	border-bottom: 1px solid var(--glass-border);
}

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

.logo {
	font-weight: 800;
	font-size: 1.5rem;
	letter-spacing: -0.05em;
	background: linear-gradient(45deg, var(--accent-primary), var(--accent-secondary));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.nav-links {
	display: flex;
	gap: 2rem;
}

.nav-links a:hover {
	color: var(--accent-secondary);
}

/* Hero Section */
.hero-section {
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	padding: 0 2rem;
	overflow: hidden;
}

.hero-content {
	text-align: center;
	z-index: 2;
	max-width: 800px;
	margin-top: 5%;
}

h1 {
	font-size: 8rem;
	line-height: 1.1;
	margin-bottom: 1.5rem;
	font-weight: 800;
}

.gradient-text {
	background: linear-gradient(135deg, var(--accent-secondary), var(--accent-primary));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.hero-content p {
	font-size: 1.25rem;
	color: rgba(255, 255, 255, 0.8);
	margin-bottom: 2.5rem;
}

.cta-button {
	display: inline-block;
	padding: 1rem 2.5rem;
	background: linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));
	border-radius: 50px;
	font-weight: 400;
	color: white;
	box-shadow: 0 10px 30px rgba(135, 34, 32, 0.3);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	font-size: 1.1rem;
}

.cta-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 15px 40px rgba(135, 34, 32, 0.4);

}

/* Visual Elements */
.glowing-orb {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, rgba(32, 49, 77, 0.2) 0%, rgba(0, 0, 0, 0) 70%);
	border-radius: 50%;
	z-index: 1;
	pointer-events: none;
	filter: blur(60px);
	animation: pulse 8s infinite ease-in-out;
}

@keyframes pulse {

	0%,
	100% {
		transform: translate(-50%, -50%) scale(1);
		opacity: 0.5;
	}

	50% {
		transform: translate(-50%, -50%) scale(1.2);
		opacity: 0.8;
	}
}

/* Responsive */
@media (max-width: 768px) {
	h1 {
		font-size: 3.5rem;
	}

	.hero-section {
		height: 400px;
	}

	.nav-links {
		display: none;
	}

	/* Simple mobile hide for now */
}

/* Mission Section */
.mission-section {
	padding: 8rem 2rem;
	background: linear-gradient(to bottom, var(--bg-color), #111);
	position: relative;
	content-visibility: auto;
	contain-intrinsic-size: 1000px;
	/* Estimate height to prevent scroll jump */
}

.container {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	align-items: center;
}

.mission-text h2 {
	font-size: 3rem;
	margin-bottom: 2rem;
	line-height: 1.2;
}

.mission-text .highlight {
	color: var(--accent-secondary);
	font-style: italic;
}

.mission-text p {
	font-size: 1.1rem;
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: 1.5rem;
	/* max-width: 500px; */
}

.mission-visual {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1.5rem;
}

.glass-card {
	background: var(--glass-bg);
	border: 1px solid var(--glass-border);
	padding: 2rem;
	border-radius: 20px;
	backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	transition: transform 0.3s ease, background 0.3s ease;
	will-change: transform;
}

.glass-card:hover {
	transform: translateY(-10px);
	background: rgba(255, 255, 255, 0.08);
}

.icon-box {
	font-size: 2.5rem;
	margin-bottom: 1rem;
}

.glass-card h3 {
	font-size: 1.25rem;
	margin-bottom: 0.5rem;
	color: var(--text-color);
}

.glass-card p {
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.6);
	margin-bottom: 0;
}

@media (max-width: 900px) {
	.container {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.mission-text p {
		margin: 0 auto 1.5rem auto;
	}
}

/* Showcase Section */
.showcase-section {
	padding: 8rem 2rem;
	background-color: var(--bg-color);
	content-visibility: auto;
	contain-intrinsic-size: 1000px;
}

.section-header {
	text-align: center;
	margin-bottom: 4rem;
}

.section-header h2 {
	font-size: 3rem;
	margin-bottom: 1rem;
}

.section-header p {
	color: rgba(255, 255, 255, 0.6);
	font-size: 1.2rem;
}

.showcase-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));

	max-width: 1200px;
	margin: 0 auto;
}


.app-visual {
	/* height: 250px; */
	padding: 2rem;
	background-size: cover;
	background-position: center;
	position: relative;
}

.visual-1 {
	background: linear-gradient(45deg, #20314D, #872220);
	color: white;
}

.visual-2 {
	background: linear-gradient(45deg, #0f2027, #203a43, #2c5364);
}

.visual-3 {
	background: linear-gradient(45deg, #117199, #38afef);
	color: white;
}

.visual-3 h2 {
	color: white;
	font-size: 3rem;
}

.app-info {
	padding-bottom: 2rem;
}

.app-info h3 {
	font-size: 1.5rem;
	margin-bottom: 0.5rem;
}

.app-content-wrapper {
	padding: 2rem 2.5rem;
}

.app-infop {
	font-family: "Lato", sans-serif;
	margin-bottom: 1.5rem;
	font-size: 1.1rem;
	line-height: 1.7;
	text-align: left;
	color: rgba(16, 32, 65, 0.8);
}

.app-infop:last-of-type {
	margin-bottom: 2.5rem;
}

.app-info-title {
	font-size: 1.6rem;
	font-weight: bolder;
	/* background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent; */
}

.action-area {
	text-align: left;
	padding-top: 1rem;
	border-top: 1px solid rgba(16, 32, 65, 0.1);
}

.learn-more {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--accent-secondary);
	font-weight: 700;
	font-size: 1.1rem;
	letter-spacing: 0.5px;
	transition: all 0.3s ease;
}

.learn-more .arrow {
	transition: transform 0.3s ease;
}

.learn-more:hover {
	color: var(--accent-primary);
	text-decoration: none;
}

.learn-more:hover .arrow {
	transform: translateX(5px);
}

/* Contact Section */
.contact-section {
	padding: 2rem;
	text-align: center;
	/* background: linear-gradient(to top, var(--bg-color), #111); */
}

.contact-content {
	max-width: 600px;
	margin: 0 auto;
}

.contact-content h2 {
	font-size: 3rem;
	margin-bottom: 1.5rem;
}

.contact-form {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	max-width: 500px;
	margin: 2rem auto 0;
}

.form-group {
	width: 100%;
}

.contact-form input,
.contact-form textarea {
	width: 100%;
	padding: 1rem 1.5rem;
	border-radius: 20px;
	border: 1px solid var(--glass-border);
	background: rgba(255, 255, 255, 0.05);
	color: white;
	font-family: var(--font-main);
	outline: none;
	transition: border-color 0.3s ease, background 0.3s ease;
	font-size: 1rem;
}

.contact-form textarea {
	resize: vertical;
	min-height: 120px;
}

.contact-form input:focus,
.contact-form textarea:focus {
	border-color: var(--accent-secondary);
	background: #ffffff;
}

.feedback-section {
	box-shadow: rgba(16, 32, 65, 0.05) 0px 10px 30px;
	text-align: center;
	align-content: flex-end;
	width: 400px;
	padding: 2rem;
	border-radius: 2rem;
	margin: auto;
	display: none;
	/* background: #DAEFDF;
	background: radial-gradient(circle, rgba(218, 239, 223, 1) 0%, rgba(255, 255, 255, 1) 0%, rgba(218, 239, 223, 1) 100%); */

	background: #db4b4b;
	background: radial-gradient(circle, rgba(219, 75, 75, 0.3) 0%, rgba(255, 255, 255, 1) 0%, rgba(219, 75, 75, 0.3) 100%);
}

.feedback-section-success {
	background: #DAEFDF;
	background: radial-gradient(circle, rgba(218, 239, 223, 1) 0%, rgba(255, 255, 255, 1) 0%, rgba(218, 239, 223, 1) 100%);
}

.feedback-section-error {
	background: #db4b4b;
	background: radial-gradient(circle, rgba(219, 75, 75, 0.3) 0%, rgba(255, 255, 255, 1) 0%, rgba(219, 75, 75, 0.3) 100%);
}

.feedback-section:hover {
	transform: translateY(-5px);
	box-shadow: rgba(16, 32, 65, 0.1) 0px 15px 40px;
	/* background: rgb(255, 255, 255); */
}

#feedback-ok,
#feedback-error,
#feedback-server-error {
	display: none;
}

.feedback-ok-title,
.feedback-error-title,
.feedback-server-error-title {
	padding: 2rem;
	text-align: center;
	font-size: 1.3rem;
}


.feedback-ok-title {
	color: var(--color-success);
}

.feedback-error-title,
.feedback-server-error-title {
	color: var(--color-error);
}

.icon-big {
	width: 10rem;
}

/* Footer */
.main-footer {
	padding: 4rem 2rem;
	border-top: 1px solid var(--glass-border);
	background: #050505;
	text-align: center;
}

.footer-content {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2rem;
}

.footer-logo {
	font-weight: 800;
	font-size: 1.5rem;
	background: linear-gradient(45deg, var(--accent-primary), var(--accent-secondary));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	/* Standard property */
}

.footer-links {
	display: flex;
	gap: 2rem;
}

.footer-links a {
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.9rem;
}

.footer-links a:hover {
	color: white;
}

.main-footer p {
	color: rgba(255, 255, 255, 0.3);
	font-size: 0.8rem;
}

@media (max-width: 600px) {
	.contact-form {
		width: 100%;
	}

	.feedback-section {
		width: 90%;
	}

}

/* Animations Removed */

/* Light Mode Adjustments & Animations */

/* Logo Detail */
.accent-e {
	position: relative;
	display: inline-block;
}

.accent-e::after {
	content: '';
	position: absolute;
	top: 40%;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: var(--accent-secondary);
	transform: rotate(-15deg);
}

/* Background Animation */
body {
	background: var(--bg-color);
	position: relative;
	overflow-x: hidden;
}

body::before {
	content: '';
	position: fixed;
	top: -50%;
	left: -50%;
	width: 200%;
	height: 200%;
	background: radial-gradient(circle at 50% 50%, rgba(32, 49, 77, 0.03), transparent 60%),
		radial-gradient(circle at 20% 80%, rgba(135, 34, 32, 0.03), transparent 50%);
	z-index: -1;
	animation: bgShift 20s ease-in-out infinite alternate;
}

@keyframes bgShift {
	0% {
		transform: translate(0, 0);
	}

	100% {
		transform: translate(5%, 5%);
	}
}

/* Header Light Mode */
.main-header {
	background: rgba(255, 255, 255, 0.8);
	border-bottom: 1px solid rgba(16, 32, 65, 0.05);
}

.logo,
.footer-logo {
	background: none;
	-webkit-text-fill-color: var(--accent-primary);
	color: var(--accent-primary);
}

.nav-links a:hover {
	color: var(--accent-secondary);
}

/* .hero-section {
	background: #ECE3D4;
	position: relative;
}

#hero-canvas {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
}

.hero-content {
	text-align: center;
	z-index: 10;
	max-width: 800px;
}

@keyframes gradientBG {
	0% {
		background-position: 0% 50%;
	}

	50% {
		background-position: 100% 50%;
	}

	100% {
		background-position: 0% 50%;
	}
}

.hero-content p {
	color: rgba(16, 32, 65, 0.7);
} */

.gradient-text {
	background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.glowing-orb {
	background: radial-gradient(circle, rgba(32, 49, 77, 0.1) 0%, rgba(255, 255, 255, 0) 70%);
}

/* Mission Light Mode */
.mission-section {
	background: linear-gradient(to bottom, #ffffff, #f8f9fa);
}

.mission-text p {
	color: rgba(16, 32, 65, 0.7);
}

.glass-card {
	background: rgba(255, 255, 255, 0.7);
	border: 1px solid rgba(16, 32, 65, 0.05);
	box-shadow: 0 10px 30px rgba(16, 32, 65, 0.05);
}

.glass-card:hover {
	background: #ffffff;
	transform: translateY(-10px);
	box-shadow: 0 15px 40px rgba(16, 32, 65, 0.1);
}

.glass-card h3 {
	color: var(--accent-primary);
}

.glass-card p {
	color: rgba(16, 32, 65, 0.6);
}

/* Showcase Light Mode */
.showcase-section {
	background-color: #ffffff;
}

.section-header p {
	color: rgba(16, 32, 65, 0.6);
}

/* .app-card {
	background: #111;
	
	overflow: hidden;
	position: relative;
	transition: transform 0.4s ease, box-shadow 0.4s ease;

	will-change: transform, box-shadow;
}

.app-card:hover {
	transform: translateY(-15px);
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6);

} */


.app-card {
	background: #ffffff;
	border-radius: 20px;
	overflow: hidden;
	position: relative;
	box-shadow: 0 10px 30px rgba(16, 32, 65, 0.05);
	display: grid;
	grid-template-columns: 0.8fr 1.2fr;
	align-items: center;
}

.app-card:hover {
	/* border-color: var(--accent-primary); */
	box-shadow: 0 20px 50px rgba(16, 32, 65, 0.15);
}

.app-info h3 {
	color: var(--accent-primary);
}

.app-info p {
	color: "white"
}

@media (max-width: 768px) {
	.app-card {
		grid-template-columns: 1fr;
	}

	.app-content-wrapper {
		padding: 1.5rem;
	}

	.hero-content {
		margin-top: 35%;
	}
}

/* Contact Light Mode */
.contact-section {
	/* background: linear-gradient(to top, #f8f9fa, #ffffff); */
	background: linear-gradient(rgb(255, 255, 255), rgb(248, 249, 250));
}

.contact-form input,
.contact-form textarea {
	background: rgba(16, 32, 65, 0.03);
	border: 1px solid rgba(16, 32, 65, 0.1);
	color: var(--accent-primary);
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
	color: rgba(16, 32, 65, 0.4);
}

.contact-form input:focus,
.contact-form textarea:focus {
	border-color: var(--accent-secondary);
	background: #ffffff;
}

/* Footer Light Mode */
.main-footer {
	background: #f8f9fa;
	border-top: 1px solid rgba(16, 32, 65, 0.05);
}

.footer-links a {
	color: rgba(16, 32, 65, 0.6);
}

.footer-links a:hover {
	color: var(--accent-primary);
}

.main-footer p {
	color: rgba(16, 32, 65, 0.4);
}

/* Floating Shapes Animation */
.floating-shape {
	position: absolute;
	border-radius: 50%;
	opacity: 0.6;
	filter: blur(50px);
	z-index: 0;
	animation: floatShape 20s infinite ease-in-out;
}

.shape-1 {
	width: 400px;
	height: 400px;
	background: rgba(32, 49, 77, 0.08);
	top: -10%;
	left: -10%;
	animation-delay: 0s;
}

.shape-2 {
	width: 500px;
	height: 500px;
	background: rgba(135, 34, 32, 0.05);
	bottom: -10%;
	right: -10%;
	animation-delay: -7s;
}

.shape-3 {
	width: 300px;
	height: 300px;
	background: rgba(32, 49, 77, 0.1);
	top: 40%;
	right: 20%;
	animation-delay: -12s;
}

@keyframes floatShape {

	0%,
	100% {
		transform: translate(0, 0) rotate(0deg) scale(1);
	}

	33% {
		transform: translate(50px, -50px) rotate(10deg) scale(1.1);
	}

	66% {
		transform: translate(-30px, 30px) rotate(-5deg) scale(0.95);
	}
}

.icon {
	width: 50px;
	height: 50px;
}