.phone-field {
	width: 100%;
	box-sizing: border-box;
}

.phone-row {
	max-width: 760px; /* allow a longer, more geometric layout on wider screens */
}

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

@media (max-width: 600px) {
	#phoneLocal {
		width: 100%;
		font-size: 1em;
		padding: 0.35em 0.5em;
	}
}
/* Improved phone code dropdown and label styles */
.phone-code.form-input {
								border-radius: 6px;
								padding: 0.15em 0.5em;
								border: 1px solid #888;
								background: #fff;
								font-size: 0.9em;
								color: #222;
								margin-top: 0.25em;
								letter-spacing: 0.5px;
								text-align: center;
								width: 100%;
								max-width: 90px;
								box-sizing: border-box;
					}

					@media (max-width: 600px) {
						.phone-code.form-input {
							font-size: 0.95em;
							padding: 0.2em 0.4em;
							max-width: 100%;
						}
					}

.phone-label {
	font-weight: 500;
	margin-bottom: 0.25em;
	display: block;
}
/* --- Footer Copyright --- */
.footer-copyright {
	text-align: center;
	color: #64748b;
	font-size: 0.97rem;
	padding: 18px 0 18px 0;
	margin-top: 12px;
	border-top: 1px solid #222;
	background: #181818;
}
/* --- Contact Pics Slider --- */
/* Bigger, better-looking contact slider */
.contact-pics-slider {
	width: 100%;
	max-width: 480px;
	height: 320px;
	border-radius: 22px;
	overflow: hidden;
	background: linear-gradient(135deg, #232526 0%, #414345 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 32px rgba(16,185,129,.18), 0 2.5px 16px rgba(16,185,129,.15);
	margin: 38px auto 0 auto;
	cursor: pointer;
	position: relative;
	border: 3px solid #10b981;
	transition: box-shadow 0.22s, border-color 0.18s;
}
.contact-pics-slider:hover {
	box-shadow: 0 16px 48px rgba(16,185,129,.28), 0 4px 24px rgba(16,185,129,.18);
	border-color: #fb7185;
}

/* Animated color-changing ring */
.contact-pics-wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0; /* no padding so SVG can sit on image edge */
	border-radius: 14px;
	background: transparent;
}
.contact-pics-wrap { position: relative; overflow: visible; }
.contact-pics-slider { position: relative; z-index: 2; border: none; }

:root { --ring-gap: 8px; }

@keyframes rotateRing {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}
.contact-pics-slider img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: opacity 0.5s;
}
/* Fade effect for slider */
.contact-pics-slider img {
	opacity: 0;
	pointer-events: none;
	position: absolute;
	top: 0; left: 0; width: 100%; height: 100%;
	transition: opacity 0.7s cubic-bezier(.4,2,.6,1);
}
.contact-pics-slider .contact-pic-active {
	opacity: 1;
	pointer-events: auto;
	z-index: 1;
}
@media (max-width: 900px) {
	.contact-pics-slider {
		max-width: 98vw;
		height: 180px;
		margin: 18px auto 0 auto;
		border-radius: 14px;
	}
}

/* Contact form phone row */
.phone-row{display:flex;gap:6px;align-items:center;margin:8px 0}
/* match form inputs (mobile default) */
.phone-code, .phone-local {
	box-sizing: border-box;
	padding: .6rem .8rem;
	border: 1px solid #cdecdc;
	border-radius: 10px;
	font-size: 1rem;
	background: #fff;
	line-height: 1.2;
}
.phone-code{min-width:86px;text-align:center}
.phone-local{flex:1}
/* ensure select text aligns vertically on some browsers */
.phone-code, .phone-row input {line-height:1.2}

/* Helper: visually hide labels but keep accessible to screen readers */
.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;border:0;padding:0;margin:-1px}

/* small tweak: placeholder option for select should be subtle */
.phone-code option:disabled { color: #6b7280 }

/* ensure phone-row doesn't shrink too small on desktop */
@media (min-width: 700px) {
	.phone-row { max-width: 520px }
	/* match desktop form input sizing */
	.phone-code, .phone-local {
		padding: 1rem 1.2rem;
		border: 2px solid #cdecdc;
		border-radius: 14px;
		font-size: 1.1rem;
	}
	.phone-code{min-width:100px}
}

.phone-field-wrap{position:relative;flex:1}
.phone-error{position:absolute;left:8px;bottom:-22px;font-size:0.85rem;color:#b91c1c}

/* Quick contacts */
/* quick contacts removed */
/* --- Footer Pics Slider --- */
.footer-pics-slider {
	width: 160px;
	height: 120px;
	border-radius: 12px;
	overflow: hidden;
	background: #222;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 12px rgba(0,0,0,0.18);
	margin-left: 18px;
	cursor: pointer;
	position: relative;
}
.footer-pics-slider img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: opacity 0.5s;
}
.footer-pics-slider .footer-pic-hidden {
	opacity: 0;
	pointer-events: none;
	position: absolute;
	top: 0; left: 0; width: 100%; height: 100%;
}
.footer-pics-slider .footer-pic-active {
	opacity: 1;
	z-index: 1;
	position: absolute;
	top: 0; left: 0; width: 100%; height: 100%;
}
@media (max-width: 900px) {
	.footer-pics-slider {
		width: 100px;
		height: 70px;
		margin: 18px auto 0 auto;
	}
}
/* --- Footer Redesign --- */
.footer {
	background: #181818;
	color: #e5e5e5;
	padding: 54px 0 0 0;
	margin-top: 48px;
	font-family: 'Montserrat', sans-serif;
}
.footer-content.new-footer {
	max-width: 1300px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 38px;
	padding: 0 24px;
}
.footer-col {
	margin-bottom: 24px;
}
.footer-title-main {
	font-size: 2rem;
	font-weight: 800;
	margin-bottom: 12px;
	letter-spacing: 0.5px;
}
.footer-green { color: #10b981; }
.footer-red { color: #fb7185; }
.footer-desc {
	font-size: 1.08rem;
	margin-bottom: 12px;
	color: #e5e5e5;
}
.footer-address {
	color: #94a3b8;
	font-size: 1rem;
}
.footer-heading {
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 10px;
}
.links-col .footer-heading { margin-bottom: 14px; }
.footer-links {
	list-style: none;
	padding: 0;
	margin: 0;
}
.footer-links li {
	margin-bottom: 8px;
}
.footer-links a {
	color: #fff;
	text-decoration: none;
	font-size: 1.08rem;
	transition: color 0.18s;
}
.footer-links a:hover {
	color: #10b981;
}
.footer-contacts {
	list-style: none;
	padding: 0;
	margin: 0;
}
.footer-contacts li {
	margin-bottom: 10px;
	font-size: 1.08rem;
	display: flex;
	align-items: center;
}
.footer-contacts .footer-icon {
	margin-right: 8px;
	font-size: 1.15em;
	color: #fb7185;
	width: 22px;
	display: inline-block;
	text-align: center;
}
.footer-contacts .footer-piva {
	color: #64748b;
	font-size: 0.98rem;
	margin-top: 8px;
}
@media (min-width: 900px) {
	.footer-content.new-footer {
		flex-direction: row;
		gap: 0;
		justify-content: space-between;
		align-items: flex-start;
		padding: 0 48px;
	}
	.footer-col {
		flex: 1 1 0;
		min-width: 260px;
		margin-bottom: 0;
	}
	.brand-col { max-width: 420px; }
	.links-col { max-width: 260px; }
	.contact-col { max-width: 320px; }
}
/* --- PC version: Show servizi carousel as 4-column grid on desktop --- */
@media (min-width: 900px) {
	#servicesCarousel .carousel-track {
		display: grid !important;
		grid-template-columns: repeat(4, 1fr);
		gap: 32px;
		overflow: visible;
		padding: 18px 0 8px 0;
	}
	#servicesCarousel .card {
		min-width: 0 !important;
		border: 2px solid var(--emerald-light);
		border-radius: 28px;
		background: linear-gradient(135deg, #f0fdf4 0%, #e0f2fe 100%);
		box-shadow: 0 8px 32px rgba(16,185,129,.10), 0 1.5px 8px rgba(16,185,129,.08);
		padding: 38px 28px 32px 28px;
		align-items: flex-start;
		min-height: 210px;
		max-width: 340px;
		width: 100%;
		margin: 0 auto;
		font-size: 1.08rem;
		display: flex;
		flex-direction: column;
		transition: box-shadow 0.22s cubic-bezier(.4,2,.6,1), border-color 0.18s, background 0.22s, transform 0.18s cubic-bezier(.4,2,.6,1);
		overflow: visible;
		position: relative;
	}

	#servicesCarousel .card:hover {
		box-shadow: 0 16px 48px rgba(16,185,129,.18), 0 2.5px 16px rgba(16,185,129,.15), 0 0 0 6px #a7f3d0cc;
		border-color: #10b981;
		background: linear-gradient(135deg, #e0f2fe 0%, #f0fdf4 100%);
		transform: scale(1.035);
		z-index: 2;
	}

	#servicesCarousel .card-inner {
		display: flex;
		flex-direction: column;
		width: 100%;
		height: 100%;
		justify-content: center;
		align-items: flex-start;
		box-sizing: border-box;
	}
	#servicesCarousel .card .icobubble {
		width: 70px;
		height: 70px;
		font-size: 2.3rem;
		margin-bottom: 32px;
		background: linear-gradient(135deg, #d1fae5 60%, #e0f2fe 100%);
		box-shadow: 0 2px 12px #a7f3d0cc;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 50%;
		border: 2.5px solid #bbf7d0;
		transition: box-shadow 0.18s, border-color 0.18s;
	}
	#servicesCarousel .card:hover .icobubble {
		box-shadow: 0 4px 24px #6ee7b7cc;
		border-color: #10b981;
	}
	#servicesCarousel .c-title {
		font-weight: 800;
		font-size: 1.22rem;
		color: var(--emerald-700);
		margin-bottom: 14px;
		letter-spacing: 0.5px;
	}
	#servicesCarousel .c-body {
		color: #334155;
		font-size: 1.09rem;
		line-height: 1.6;
		font-weight: 500;
		letter-spacing: 0.01em;
	}
	#servicesCarousel .carousel-nav {
		display: none !important;
	}
}
/* Thank you modal box for contact form */
#formThanks {
	display: none;
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: #fff;
	border: 2px solid var(--emerald-700);
	box-shadow: 0 8px 32px rgba(0,0,0,0.18);
	border-radius: 18px;
	padding: 2.5em 2em 2em 2em;
	min-width: 320px;
	max-width: 90vw;
	z-index: 9999;
	text-align: center;
	font-size: 1.25em;
	color: var(--emerald-700);
	font-weight: 700;
	animation: popin .4s cubic-bezier(.4,2,.6,1);
}

@keyframes popin {
	0% { transform: translate(-50%, -60%) scale(0.8); opacity: 0; }
	100% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}
/* Enhanced color palette for red & green theme */
/* Color palette for red & green theme */
:root{
	--emerald:#10b981;
	--emerald-700:#047857;
	--emerald-light:#d1fae5;
	--red:#ef4444;
	--red-dark:#b91c1c;
	--red-light:#fee2e2;
	--bg:#ffffff;
	--text:#0b1b17;
	--muted:#f0f9f5;
	--accent-gradient: linear-gradient(90deg, #10b981 0%, #ef4444 100%);
}
*{box-sizing:border-box}
html,body{
	margin:0;
	padding:0;
	overflow-x: hidden;
}
body{
	font-family:Montserrat,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
	color:var(--text);
	background:var(--bg);
	font-size:18px;
}

/* Navbar (mobile default) */
/* Menu bar improvements for all devices */
/* Restore original mobile menu bar */
.nav-wrap{
	position:fixed;
	top:12px;
	left:0;
	width:100vw;
	z-index:100;
	background:transparent;
}
.nav{max-width:1100px;margin-left:auto;margin-right:auto;padding:0 .75rem;border:1px solid #cff3e1;background:rgba(255,255,255,.8);backdrop-filter:blur(6px);border-radius:999px;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;min-height:52px;}
.brand{display:flex;align-items:center;gap:.25rem}
.brand-logo{height:32px;width:auto;object-fit:contain}
.brand-name{font-weight:700;font-size:16px}
.brand-name .accent{color:var(--red)}
.menu-btn{border:1px solid #cdecdc;background:#fff;border-radius:999px;padding:.4rem .6rem;display:none}
.links{display:flex;gap:1rem}
.links a{color:#065f46;text-decoration:none;font-weight:600;line-height:1.1;display:inline-block;}
.links a {
	transition: color 0.18s cubic-bezier(.4,2,.6,1);
}
.links a:hover {
	color: var(--red);
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-thickness: 2px;
}
.links a.active {
	color: var(--red-dark);
}
@media(max-width:768px){.menu-btn{display:block}.links{display:none;position:fixed;right:.75rem;top:52px;background:#fff;border:1px solid #cdecdc;border-radius:14px;padding:10px;flex-direction:column;gap:.75rem}.links.open{display:flex}}

/* Desktop (PC) enhancements */
@media (min-width: 900px) {
	html, body {
		overflow-x: hidden;
	}
	.nav-wrap { top: 18px; }
	.nav {
		max-width: 1400px;
		margin-left: auto;
		margin-right: auto;
		padding: 0 2.5rem;
		border: 2px solid var(--emerald-light);
		background: rgba(255,255,255,.92);
		backdrop-filter: blur(8px);
		min-height: 70px;
		box-shadow: 0 4px 24px rgba(16,185,129,.08);
		border-radius: 18px;
		display: flex;
		align-items: center;
		justify-content: space-between;
		box-sizing: border-box;
	}
	.brand { gap: .75rem; }
	.brand-logo { height: 40px; }
	.brand-name { font-weight: 700; font-size: 18px; letter-spacing: 1px; }
	.brand-name .accent { color: var(--red); text-shadow: 0 2px 8px var(--red-light); }
	.menu-btn { border: 2px solid var(--emerald-light); padding: .6rem 1.1rem; font-size: 1.5rem; color: var(--emerald-700); }
	.links {
		gap: 1.5rem;
		align-items: center;
		flex-direction: row !important;
		display: flex !important;
		white-space: nowrap;
		flex-wrap: nowrap;
		min-width: 0;
	}
	.links a {
		white-space: nowrap;
		font-size: 0.98rem;
		padding: 0 0.1em;
		min-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.links a {
		color: var(--emerald-700);
		font-weight: 600;
		letter-spacing: 0.04em;
		background: none;
		position: relative;
		text-transform: uppercase;
		line-height: 1.1;
		display: inline-block;
		border-bottom: none;
		box-shadow: none;
	}
}

/* Hero (mobile default) */
.soft-bg{position:absolute;inset:-10% -20% auto -20%;height:60vh;background:radial-gradient(60% 60% at 30% 30%, rgba(16,185,129,0.25), transparent 60%), radial-gradient(40% 40% at 70% 40%, rgba(244,63,94,0.15), transparent 60%);filter:blur(28px);z-index:0}
.hero{position:relative;padding:24px 12px 28px;max-width:1100px;margin-left:auto;margin-right:auto;box-sizing:border-box;margin-top:48px;}
.hero-card{position:relative;max-width:1100px;margin:0 auto;padding:20px 16px;background:linear-gradient(to top right,#fff,#effcf6);border:1px solid rgba(16,185,129,.2);border-radius:24px;box-shadow:0 10px 50px rgba(16,185,129,.12);box-sizing:border-box;}
.title{font-family:'Bebas Neue',sans-serif;line-height:.95;margin:0;color:#064e3b;font-size:40px}
.title .em1{color:var(--emerald)}.title .em2{color:var(--red)}
.subtitle{margin:10px 0 0;color:#0b1b17cc;max-width:700px}
.cta-row{display:flex;gap:.6rem;margin-top:14px;flex-wrap:wrap}
.btn{border-radius:999px;padding:.65rem 1rem;font-weight:700;border:1px solid transparent;cursor:pointer;text-decoration:none;display:inline-block}
.btn-primary{background:var(--emerald);color:#fff}
.btn-outline{border-color:#fecaca;color:var(--red);background:#fff}
.badges{display:flex;gap:1rem;margin-top:14px;color:#14532d;font-size:13px}
.badge .dot{display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--emerald);margin-right:6px}

@media (min-width: 900px) {
	.soft-bg{filter:blur(32px);}
	.hero{padding:48px 24px 56px;}
	.hero-card{max-width:1300px;padding:48px 40px 40px 40px;border:2px solid rgba(16,185,129,.18);border-radius:32px;box-shadow:0 10px 60px rgba(16,185,129,.13);}
		.title{
			color:var(--emerald-700);
			font-size:64px;
			letter-spacing:2px;
			background:none;
			background-clip:unset;
			-webkit-background-clip:unset;
			-webkit-text-fill-color:unset;
		}
		.title .em1{color:var(--emerald);}
		.title .em2{color:var(--red);}
	.subtitle{margin:18px 0 0;max-width:900px;font-size:1.35rem;}
	.cta-row{gap:1.2rem;margin-top:24px;}
	.btn{padding:1rem 2.2rem;font-weight:800;border:2px solid transparent;font-size:1.15rem;}
	.btn-primary{box-shadow:0 2px 12px rgba(16,185,129,.13);}
	.btn-outline{border-color:var(--red-light);}
	.btn-outline:hover{background:var(--red-light);color:var(--red-dark);}
	.badges{gap:1.5rem;margin-top:18px;font-size:1.1rem}
	.badge .dot{width:10px;height:10px;margin-right:8px}
}

/* Sections (mobile default) */
.section{padding:28px 12px;max-width:1100px;margin-left:auto;margin-right:auto;box-sizing:border-box;}
.section:first-of-type {
	margin-top:48px;
}
.section-muted{background:var(--muted)}
.section-title {
	text-align: center;
	font-family: 'Bebas Neue', sans-serif;
	font-size: 28px;
	margin: 0 0 16px;
	color: var(--emerald-700);
	background: var(--accent-gradient);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

@media (min-width: 900px) {
       .section{padding:48px 24px;}
       .section-title{
		font-size:56px;
		margin:0 0 28px;
		letter-spacing:1px;
       }
}

/* Carousel Servizi (mobile default) */
.carousel{position:relative;max-width:1100px;margin-left:auto;margin-right:auto;box-sizing:border-box;}
.carousel-track{display:flex;gap:12px;overflow:auto;scroll-snap-type:x mandatory;padding:6px 0}
.card{min-width:85%;scroll-snap-align:start;background:#fff;border:1px solid #cdecdc;border-radius:16px;box-shadow:0 10px 30px rgba(16,185,129,.08);padding:16px}
.card .icobubble{width:44px;height:44px;border-radius:999px;background:#d1fae5;color:#065f46;display:grid;place-items:center;margin-bottom:8px}
.carousel-nav{position:absolute;top:50%;transform:translateY(-50%);background:#fff;border:1px solid #cdecdc;border-radius:999px;width:34px;height:34px}
.carousel-nav.prev{left:-6px}.carousel-nav.next{right:-6px}

@media (min-width: 900px) {
	.carousel{max-width:1300px;}
	.carousel-track{gap:24px;padding:12px 0;}
	.card{
		min-width:55%;
		border:2px solid var(--emerald-light);
		border-radius:24px;
		box-shadow:0 10px 30px rgba(16,185,129,.10);
		padding:32px 28px;
		font-size:1.15rem;
		display:flex;flex-direction:column;align-items:flex-start;
	}
	.card .icobubble{
		width:56px;height:56px;margin-bottom:14px;font-size:2rem;
	}
	.carousel-nav{width:44px;height:44px;font-size:1.5rem;border:2px solid var(--emerald-light);box-shadow:0 2px 8px rgba(16,185,129,.08);}
	.carousel-nav.prev{left:-16px}
	.carousel-nav.next{right:-16px}
}

/* Partner marquee (mobile default) */
.marquee-wrap{max-width:1100px;margin-left:auto;margin-right:auto;box-sizing:border-box;}
.marquee-header{text-align:left;color:#065f46;font-weight:700;margin:0 0 8px 8px}
.marquee-mask{position:relative;overflow:hidden;border:1px solid #cff3e1;border-radius:16px;background:rgba(16,185,129,.08)}
.marquee{display:flex;gap:8px;align-items:center;padding:10px;animation:vx-marquee 28s linear infinite;width:max-content}
@keyframes vx-marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.marquee:hover{animation-play-state:paused}
.badge-logo{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e2f6ee;border-radius:999px;padding:6px 10px;box-shadow:0 2px 6px rgba(16,185,129,.06);white-space:nowrap}
.badge-logo img{height:22px;width:auto;object-fit:contain}

@media (min-width: 900px) {
	.marquee-wrap{max-width:1300px;}
	.marquee-header{color:var(--emerald-700);font-weight:800;margin:0 0 12px 12px;font-size:1.3rem;}
	.marquee-mask{border:2px solid var(--emerald-light);border-radius:24px;background:rgba(16,185,129,.10)}
	.marquee{gap:18px;padding:16px;}
	.badge-logo{gap:12px;border:2px solid var(--emerald-light);padding:10px 18px;box-shadow:0 2px 8px rgba(16,185,129,.08);font-weight:600;}
	.badge-logo img{height:32px;}
}

/* Tabs + grid (mobile default) */
.tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.tab{border:1px solid #cdecdc;background:#ecfdf5;color:#065f46;border-radius:999px;padding:.4rem .8rem;font-weight:600}
.tab.active{background:#fff}
.search input{padding:.5rem .75rem;border:1px solid #cdecdc;border-radius:10px;width:260px;max-width:72vw}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.grid .cell{display:flex;align-items:center;gap:8px;border:1px solid #cdecdc;background:#fff;border-radius:12px;padding:8px 10px}
.grid .cell .pin{width:18px;height:18px;background:#d1fae5;border-radius:999px}
@media(min-width:768px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

@media (min-width: 900px) {
	.tabs{gap:18px;}
	.tab{
		border:2px solid var(--emerald-light);
		background:var(--emerald-light);
		color:var(--emerald-700);
		padding:.7rem 1.6rem;
		font-weight:700;
		font-size:1.1rem;
		transition:background 0.2s, color 0.2s;
	}
	.tab.active{background:#fff;color:var(--red);border-color:var(--red-light);}
	.search input{padding:.7rem 1.2rem;border:2px solid var(--emerald-light);border-radius:14px;width:320px;max-width:72vw;font-size:1.1rem;}
	.grid{gap:18px;margin-top:24px}
	.grid .cell{gap:14px;border:2px solid var(--emerald-light);border-radius:16px;padding:16px 18px;font-size:1.1rem;}
	.grid .cell .pin{width:22px;height:22px;background:var(--emerald-light);}
}

/* Stats compact (mobile default) */
.stats{display:grid;gap:10px}
.stat-row{display:flex;align-items:center;gap:10px;border:1px solid #e2f6ee;background:#fff;border-radius:14px;padding:10px}
.stat-val{font-family:'Bebas Neue',sans-serif;font-size:22px;color:#065f46}
.stat-label{font-size:12px;color:#475569}
.details{
	border:1px solid #e2f6ee;
	background:#fff;
	border-radius:14px;
	padding:8px; /* slightly tighter padding for a compact look */
}
.details summary{
	cursor: pointer;
	color: #065f46;
	font-weight: 600;
	display: flex; /* align arrow and text neatly */
	align-items: center;
	gap: 8px;
	font-size: 0.95rem; /* slightly smaller for compact look */
	padding: 8px 10px; /* keep padding symmetric, arrow will be inline */
	margin: 0;
	border-radius: 8px;
	line-height: 1.2;
	box-sizing: border-box;
	white-space: normal;
}
/* hide native marker so our caret (if present) or none remains consistent */
.details summary::-webkit-details-marker,
.details summary::marker { display: none; }

/* Left-side open/close arrow for details summary */
.details summary {
	position: relative; /* anchor for pseudo-element */
	padding-left: 36px; /* room for the arrow */
}
.details summary::before {
	content: "▶"; /* closed = right-pointing */
	display: inline-flex; /* sit inline to the left of the text */
	align-items: center;
	justify-content: center;
	margin-right: 8px;
	font-family: monospace;
	font-size: 0.9rem; /* slightly smaller arrow */
	color: var(--emerald-700);
	transition: transform 180ms ease, color 180ms ease, content 180ms ease;
	pointer-events: none; /* avoid interfering with clicks */
}
.details[open] summary::before {
	content: "▼"; /* open = down-pointing */
	color: var(--red);
}

/* spacing for the content inside details when opened */
.details > *:not(summary) {
	margin-top:10px;
	font-size:0.95rem;
	color: #334155;
	line-height:1.45;
}

/* Make stats inside the collapsible 'Altri numeri' smaller and more compact */
.details .stat-row {
	padding: 8px 10px;
	border: none;
	background: transparent;
}
.details .stat-val {
	font-family: 'Bebas Neue', sans-serif;
	font-size: 18px; /* a little bigger */
	line-height: 1.05;
	color: #065f46;
}
.details .stat-label {
	font-size: 0.9rem;
	color: #475569;
	font-weight: 600;
}

@media (min-width: 900px) {
	.stats{gap:18px}
	.stat-row{gap:18px;border:2px solid var(--emerald-light);border-radius:18px;padding:18px 22px;}
	.stat-val{font-size:32px;color:var(--emerald-700);} 
	.stat-label{font-size:1rem;}
	/* Slightly larger but still compact on desktop */
	.details{border:2px solid #e2f6ee;border-radius:18px;padding:12px}
	.details summary{color:var(--emerald-700);font-weight:700;font-size:1rem;padding:10px 14px}
	.details > *:not(summary) { margin-top:12px }
	/* desktop tweak: slightly larger but still smaller than main stats */
	.details .stat-val { font-size: 20px }
	.details .stat-label { font-size: 0.98rem }
}

/* Accordion (mobile default) */
.accordion .item{border:1px solid #e2f6ee;border-radius:14px;background:#fff;margin-bottom:10px}
.accordion .head{padding:10px 12px;display:flex;align-items:center;gap:10px;font-weight:700;color:#065f46;cursor:pointer}
.accordion .body{padding:0 12px 10px 12px;color:#334155;display:none}
.accordion .item.open .body{display:block}

/* Caret styling for accordions and details summary (text-content based) */
.accordion .head .caret,
.details summary .caret {
	margin-left: auto; /* push caret to the right */
	font-weight: 800;
	color: var(--emerald-700);
	transition: color 180ms ease, transform 180ms ease;
	display: inline-block;
	font-family: monospace;
	font-size: 1.05rem;
}
/* closed: show '><'  , open: show '<>' */
.accordion .head .caret::before,
.details summary .caret::before { content: "˅"; display: inline-block; }
.accordion .item.open .head .caret::before,
.details[open] summary .caret::before { content: "˄"; color: var(--red); }
.details summary { cursor: pointer; }
.details summary .caret { margin-left: 8px; }

/* Remove caret/arrow for details-based summaries (e.g. "Altri numeri") */
.details summary .caret { display: none !important; }

@media (min-width: 900px) {
	.accordion .item{border:2px solid #e2f6ee;border-radius:18px;margin-bottom:16px;box-shadow:0 2px 8px rgba(16,185,129,.05);}
	.accordion .head{padding:18px 22px;gap:14px;font-weight:800;color:var(--emerald-700);font-size:1.15rem;}
	.accordion .item.open .head{color:var(--red);}
	.accordion .body{padding:0 22px 18px 22px;font-size:1.05rem;}
}

/* Testimonials (mobile default) */
.testimonials{max-width:1100px;margin-left:auto;margin-right:auto;box-sizing:border-box;}
.tcard{border:1px solid #e2f6ee;border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(16,185,129,.08);padding:16px}
.tdots{display:flex;gap:6px;margin-top:10px}
.tdots .d{height:6px;border-radius:999px;background:#cdecdc;width:12px}
.tdots .d.active{background:#065f46;width:28px}

@media (min-width: 900px) {
	.testimonials{max-width:1300px;}
	.tcard{border:2px solid #e2f6ee;border-radius:28px;box-shadow:0 10px 40px rgba(16,185,129,.10);padding:32px 40px;}
	.tdots{gap:10px;margin-top:18px}
	.tdots .d{height:8px;background:var(--emerald-light);width:18px}
	.tdots .d.active{background:var(--red);width:38px}
}

/* Contact (mobile default) */
.contact{display:grid;gap:16px;grid-template-columns:1fr;max-width:1100px;margin-left:auto;margin-right:auto;box-sizing:border-box;}
.form{display:grid;gap:10px}
.form input,.form textarea{padding:.6rem .8rem;border:1px solid #cdecdc;border-radius:10px}
.contact-card{border:1px solid #e2f6ee;background:#ecfdf5;border-radius:16px;padding:14px}
.card-title{color:#065f46;font-weight:700}
.note{color:#64748b;font-size:12px;margin-top:8px}

@media (min-width: 900px) {
	.contact{gap:32px;grid-template-columns:1fr 1fr;max-width:1100px;margin:0 auto;align-items:start;}
	.form{gap:18px}
	.form input,.form textarea{padding:1rem 1.2rem;border:2px solid #cdecdc;border-radius:14px;font-size:1.1rem;}
	.form button{font-size:1.1rem;}
	.contact-card{border:2px solid #e2f6ee;border-radius:22px;padding:24px 28px;box-shadow:0 2px 8px rgba(16,185,129,.06);font-size:1.1rem;}
	.card-title{color:var(--emerald-700);font-weight:800;font-size:1.3rem;}
	.note{font-size:1rem;margin-top:14px}
}

/* Float WhatsApp (mobile default) */
.wa-float{position:fixed;right:16px;bottom:16px;background:#10b981;color:#fff;border-radius:999px;width:48px;height:48px;display:grid;place-items:center;text-decoration:none;box-shadow:0 8px 16px rgba(0,0,0,.15);z-index:60}

@media (min-width: 900px) {
	.wa-float{right:32px;bottom:32px;width:60px;height:60px;box-shadow:0 8px 24px rgba(16,185,129,.18);font-size:2rem;}
}

/* Toast (mobile default) */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:20px;background:#065f46;color:#fff;border-radius:12px;padding:10px 14px;display:none;z-index:70}
.toast.show{display:block}

@media (min-width: 900px) {
	.toast{bottom:32px;background:var(--emerald-700);border-radius:16px;padding:16px 24px;font-size:1.1rem;box-shadow:0 2px 8px rgba(16,185,129,.13);}
}

/* --- Mobile footer improvements (stack, center, better tap targets) --- */
@media (max-width: 900px) {
	.footer {
		padding: 28px 12px 20px;
	}
	.footer-content.new-footer {
		padding: 0 12px;
		gap: 18px;
		align-items: center;
		text-align: center;
	}
	.footer-col {
		width: 100%;
		margin-bottom: 6px;
	}
	.brand-col .footer-title-main {
		font-size: 1.3rem; /* slightly smaller for mobile */
		line-height: 1.05;
	}
	.brand-col .footer-desc { margin-top: 6px; max-width: 100%; font-size:0.96rem }

	/* Links: show inline, touch-friendly spacing */
	.links-col .footer-links {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 6px 10px;
		padding: 4px 0;
	}
	.links-col .footer-links li { margin: 0; }
	.links-col .footer-links a { font-size: 0.92rem; padding: 6px 8px; display: inline-block; }

	/* Contacts: stack and center, slightly larger icons */
	.contact-col .footer-contacts { display:flex; flex-direction:column; align-items:center; gap:6px; padding: 4px 0; }
	.footer-contacts li { width:100%; justify-content:center; font-size:0.92rem }
	.footer-contacts .footer-icon { width:26px; margin-right:8px; font-size:0.95rem; }

	/* Make P.IVA less prominent but readable */
	.footer-piva { margin-top:6px; color:#94a3b8; font-size:0.9rem; text-align:center }

	.footer-copyright { font-size:0.85rem; padding:10px 8px; }
}
