/* Stili base per la landing */
:root{
	--blue-primary: #004A8B;
	--text-color: #101F33;
	--azzurro: #00C9FF;
	--magenta: #CC0066;
	--white: #ffffff;
	--light-gray: #EEEEEE;
}

body{
	font-family: 'Open Sans', 'Strichpunkt Sans', Arial, Helvetica, sans-serif;
	background:var(--white);
	color:var(--text-color);
	-webkit-font-smoothing:antialiased;
}

h1, h2, h3, h4, h5, h6{
	font-weight:700;
}

.text-small{
	font-size:12px;
}

/* ===== HEADER / TOPBAR ===== */
.site-header{
	background:var(--blue-primary);
	padding:8px 0;
	text-align:center;
}

.site-header .navbar{
	justify-content:center;
	padding:0;
}

.site-header .navbar-brand{
	margin:0;
}

.site-header .navbar-brand img{
	height:50px;
}

@media (max-width:767px){
	.site-header .navbar-brand img{
		height:40px;
	}
	.site-header {
		padding:4px 0;
	}
}

/* ===== HERO SECTION ===== */
.hero{
	position:relative;
	min-height:720px;
	background-image:linear-gradient(0deg, rgba(0, 74, 139, 0) 10%, rgba(0,74,139, 150) 90%), url('img/teaser-image-2.jpg');
	background-size:cover;
	background-position:center;
	background-attachment:fixed;
	padding-bottom: 4rem;
}

.hero .hero-content{
	padding:80px 30px;
	position:relative;
	z-index:2;
}

.hero h6{
	letter-spacing:1.5px;
	color:rgba(255,255,255,0.95);
	font-weight:700;
	font-size:13px;
	margin-bottom:16px;
}

.hero .display-5{
	font-size:36px;
	line-height:1.08;
	font-weight:800;
	text-shadow:0 6px 18px rgba(4,12,28,0.45);
	margin-bottom:20px;
}

.hero .lead{
	opacity:0.92;
	font-size:16px;
	max-width:650px;
	line-height:1.6;
}

.hero .mt-4{
	display:flex;
	align-items:center;
	gap:20px;
	margin-top:30px !important;
}

/* Custom button style */
.btn-custom{
	background:var(--white);
	color:var(--magenta);
	border:1px solid var(--magenta);
	border-bottom:2px solid var(--magenta);
	padding:12px 28px;
	font-weight:700;
	font-size:14px;
	text-transform:uppercase;
	border-radius:0;
	transition:all 0.3s ease;
	text-decoration:none;
	display: flex;
	align-items: center;
	justify-content: center;
}

.btn-custom:hover{
	background:var(--magenta);
	color:var(--white);
	transform:translateY(-2px);
	box-shadow:0 8px 20px rgba(204,0,102,0.3);
}

.btn-custom:hover img{
	filter:brightness(0) invert(1);
}

.btn-phone{
	font-size:20px;
}

/* phone pill in hero */
.phone-pill{
	display:inline-flex;
	align-items:center;
	color:var(--white);
	font-weight:700;
	font-size:13px;
	letter-spacing:0.5px;
}

/* Contact Card */
.contact-card{
	margin-left:auto;
	width:450px;
	max-width:100%;
	z-index:50;
	border:none;
	background:var(--light-gray);
	padding:40px;
	box-shadow:0 20px 60px rgba(16,31,51,0.25);
	border-radius:8px;
}

.contact-card h4{
	font-size:18px;
	font-weight:700;
	color:var(--blue-primary);
	margin-bottom:24px;
}

.contact-card .form-control{
	border:0;
	border-radius:4px;
	background:var(--white);
	font-size: 15px;
	padding:8px 12px;
}

.contact-card .form-control::placeholder{
	color:#999;
}

.contact-card .form-control:focus{
	border-color:var(--magenta);
	box-shadow:0 0 0 0.15rem rgba(204,0,102,0.15);
}

.contact-card .btn-custom{
	width:100%;
	margin-top:8px;
}

/* Honeypot anti-spam: nascosto agli utenti, visibile ai bot */
.hp-field{
	position:absolute;
	left:-9999px;
	width:1px;
	height:1px;
	overflow:hidden;
}

/* Messaggi di errore per campo */
.form-error{
	color:var(--magenta);
	font-size:12px;
	margin-top:4px;
	min-height:0;
}

.form-error:empty{
	margin-top:0;
}

.form-control.is-invalid{
	border:1px solid var(--magenta);
	box-shadow:0 0 0 0.15rem rgba(204,0,102,0.15);
}

/* Box di feedback generale (successo / errore) */
.form-feedback{
	font-size:13px;
	padding:10px 12px;
	border-radius:4px;
	margin-bottom:12px;
}

.form-feedback-success{
	background:#e6f7ec;
	color:#1b7a3d;
	border:1px solid #b7e3c5;
}

.form-feedback-error{
	background:#fdeaf1;
	color:var(--magenta);
	border:1px solid #f5c2d6;
}

/* ===== PROBLEMS SECTION ===== */
.problems-section{
	min-height:600px;
	background:#f5f7fa;
	display:flex;
	align-items:stretch;
	width:100%;
	min-width:100%;
}

.problems-images-column{
	position:relative;
	background:#000;
	min-height:600px;
}

.problems-image-stack{
	display:flex;
	flex-direction:column;
	height:100%;
	position:relative;
}

.problem-image{
	flex:1;
	background-size:cover;
	background-position:center;
	position:relative;
}

.problem-image::after{
	content:"";
	position:absolute;
	inset:0;
	background: #9b004d94;
}

.problems-overlay{
	position:absolute;
	inset:0;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	z-index:10;
	padding:40px;
	text-align:center;
}

.problems-overlay-title{
	color:var(--white);
	font-weight:800;
	font-size:32px;
	margin-bottom:30px;
	text-shadow:0 2px 8px rgba(0,0,0,0.3);
}

.problems-list{
	list-style:none;
	padding:0;
	margin:0;
	color:var(--white);
	font-size:15px;
	line-height:1.8;
}

.problems-list li{
	margin-bottom:12px;
	text-shadow:0 1px 4px rgba(0,0,0,0.3);
	font-weight:600;
	font-size:24px;
}

.problems-cards-column{
	display:flex;
	align-items:center;
	padding:60px 50px;
	background:var(--white);
}

.problems-cards-wrapper{
	width:100%;
}

.problems-cards-wrapper h3{
	font-size:28px;
	font-weight:800;
	color:var(--text-color);
	margin-bottom:36px;
	line-height:1.2;
}

.grid-2x2{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:20px;
}

@media (max-width:767px){
	.grid-2x2{
		grid-template-columns:1fr;
	}
}

.feature-card{
	background:linear-gradient(180deg, rgba(0,74,139,0.15) 0%, transparent 100%), var(--azzurro);	
	min-height:140px;
	display:flex;
	flex-direction:column;
	justify-content:center;
	transition:all 0.3s ease;
	border-radius:4px;
}

.feature-card h6{
	color:var(--white);
	margin-bottom:10px;
	font-size:16px;
	font-weight:800;
	text-align:center;
	text-transform: uppercase;
}

.feature-card p{
	font-size:15px;
	line-height:1.4;
	color: var(--white);
	margin:0;
	text-align:center;
}

/* ===== SERVICES SECTION ===== */
.services-band{
	background-image:linear-gradient(180deg, rgba(0,74,139,0.6) 0%, rgba(0,74,139,0.5) 100%), url('img/aleide-bg.jpg');
	background-size:cover;
	background-position:center;
	padding:60px 30px;
	position:relative;
	min-height:500px;
}

.services-band::before{
	content:"";
	position:absolute;
	inset:0;
	background:rgba(0,74,139,0.5);
	z-index:1;
}

.services-band .container-fluid{
	position:relative;
	z-index:2;
}

.services-band h3{
	color:var(--white);
	font-weight:800;
	margin-bottom:40px;
	font-size:32px;
	text-align:center;
}

.grid-5x2{
	display:grid;
	grid-template-columns:repeat(5, 1fr);
	gap:20px;
}

@media (max-width:991px){
	.grid-5x2{
		grid-template-columns:repeat(2, 1fr);
	}
}

.service{
	background:var(--white);
	border-radius:4px;
	padding:20px;
	display:flex;
	flex-direction:row;
	gap:12px;
	align-items:center;
	justify-content:start;
	box-shadow:0 4px 12px rgba(16,31,51,0.08);
}

.service img{
	width:50px;
	height:50px;
	filter:brightness(0.7);
}

.service p {
	font-size:18px;
	font-weight:700;
	color:var(--text-color);
	margin:0;
	line-height:1.2;
}

@media (max-width:767px){
	.grid-5x2{
		grid-template-columns:1fr;
	}
	.service{
		justify-content:center;
		padding:10px;
	}
	.service img{
		width:40px;
		height:40px;
	}
	.service p {
		font-size:16px;
	}
}

/* 5 columns per row */
.col-lg-5ths{
	width:20%;
	flex:0 0 20%;
}

/* ===== CTA SECTION ===== */
.cta-band{
	background:var(--white);
	padding:60px 30px;
	border-top:2px solid rgba(16,31,51,0.1);
	text-align:center;
}

.cta-band h4{
	font-weight:800;
	font-size:28px;
	margin-bottom:16px;
	color:var(--text-color);
}

.cta-band p{
	color:#666;
	font-size:16px;
	margin-bottom:24px;
	max-width:600px;
	margin-left:auto;
	margin-right:auto;
}

/* ===== FOOTER ===== */
footer{
	padding-top:30px;
	padding-bottom:30px;
	background:#1a2332;
	border-top:1px solid rgba(255,255,255,0.1);
	font-size:13px;
	color:rgba(255,255,255,0.7);
}

/* ===== ANIMATIONS ===== */
.animate{
	opacity:0;
	transform:translateY(20px);
	transition:opacity 0.6s ease, transform 0.6s ease;
}

.animate.in-view{
	opacity:1;
	transform:translateY(0);
}

/* ===== RESPONSIVE ===== */
@media (max-width:991px){
	.hero{
		min-height:600px;
		padding-bottom: 2rem;
	}

	.hero .display-5{
		font-size:32px;
	}

	.contact-card{
		position:static;
		margin-top:30px;
		width:100%;
	}

	.problems-section{
		min-height:auto;
	}

	.problems-images-column{
		min-height:600px;
	}

	.problems-cards-column{
		padding:40px 20px;
	}

	.col-lg-5ths{
		width:50%;
		flex:0 0 50%;
	}

	.problems-list h3{
		font-size:24px;
		margin-bottom:20px;
	}

	.problems-list li{
		font-size:18px;
	}
}

@media (max-width:768px){
	.hero {
		padding-bottom: 1rem;
	}

	.hero .hero-content{
		padding:40px 20px;
	}

	.hero .display-5{
		font-size:24px;
		line-height:1.15;
	}

	.hero .lead{
		font-size:14px;
	}

	.hero .mt-4{
		flex-direction:column;
		gap:16px;
	}

	.btn-custom{
		width:100%;
	}

	.contact-card{
		padding:30px;
	}

	.problems-cards-wrapper h3{
		font-size:22px;
		margin-bottom:24px;
	}

	.services-band{
		padding:40px 15px;
	}

	.services-band h3{
		font-size:24px;
		margin-bottom:30px;
	}

	.col-lg-5ths{
		width:50%;
		flex:0 0 50%;
	}

	.cta-band h4{
		font-size:22px;
	}

	.cta-band p{
		font-size:14px;
	}
}

@media (max-width:480px){

	.hero{
		min-height:500px;
	}

	.hero .display-5{
		font-size:22px;
		line-height:1.15;
	}

	.col-lg-5ths{
		width:100%;
		flex:0 0 100%;
	}
}

