/* Cacloo – Modulo contatti */
.cc-wrap{
	--cc-navy:#141f2b;
	--cc-navy-2:#1d2c3d;
	--cc-red:#ff3b33;
	--cc-red-dark:#e02a22;
	--cc-teal:#6fe3d4;
	--cc-text:#242424;
	--cc-muted:#6b7684;
	--cc-line:#dfe3e8;
	--cc-bg:#f5f7f9;
	font-family:"Fira Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
	color:var(--cc-text);
	max-width:1100px;
	margin:48px auto;
	padding:0 16px;
	box-sizing:border-box;
}
.cc-wrap *,.cc-wrap *::before,.cc-wrap *::after{box-sizing:border-box}

.cc-card{
	display:grid;
	grid-template-columns:minmax(0,5fr) minmax(0,7fr);
	background:#fff;
	border-radius:18px;
	overflow:hidden;
	box-shadow:0 20px 50px -20px rgba(20,31,43,.35);
}

/* Colonna scura */
.cc-side{
	position:relative;
	background:linear-gradient(160deg,var(--cc-navy) 0%,var(--cc-navy-2) 100%);
	color:#fff;
	padding:48px 40px;
	overflow:hidden;
}
.cc-side::before,.cc-side::after{
	content:"";position:absolute;border-radius:50%;pointer-events:none;
}
.cc-side::before{width:240px;height:240px;right:-90px;bottom:-90px;background:var(--cc-red);opacity:.9}
.cc-side::after{width:130px;height:130px;right:90px;bottom:-60px;background:var(--cc-teal);opacity:.85}
.cc-side>*{position:relative;z-index:1}
.cc-eyebrow{
	display:inline-block;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
	color:var(--cc-teal);margin-bottom:14px;
}
.cc-title{
	font-family:inherit;font-size:34px;line-height:1.15;font-weight:700;color:#fff;margin:0 0 14px;
}
.cc-lead{font-size:16px;line-height:1.6;color:rgba(255,255,255,.78);margin:0 0 32px}
.cc-info{list-style:none;margin:0;padding:0}
.cc-info li{display:flex;gap:14px;align-items:flex-start;margin:0 0 18px;font-size:15px;line-height:1.5;color:rgba(255,255,255,.9)}
.cc-info svg{flex:0 0 22px;width:22px;height:22px;fill:var(--cc-red);margin-top:1px}

/* Form */
.cc-form{padding:44px 40px}
.cc-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cc-field{position:relative;margin-bottom:18px}
.cc-field input,.cc-field textarea{
	width:100%;display:block;
	font:inherit;font-size:16px;color:var(--cc-text);
	background:var(--cc-bg);
	border:1.5px solid transparent;border-radius:10px;
	padding:24px 16px 10px;
	outline:none;
	transition:border-color .2s,background .2s,box-shadow .2s;
	box-shadow:none;margin:0;
}
.cc-field textarea{resize:vertical;min-height:150px}
.cc-field label{
	position:absolute;left:17px;top:17px;
	font-size:15px;color:var(--cc-muted);
	pointer-events:none;transform-origin:left top;
	transition:transform .18s ease,color .18s ease;
	margin:0;font-weight:400;
}
.cc-field input:focus,.cc-field textarea:focus{
	background:#fff;border-color:var(--cc-navy);
	box-shadow:0 0 0 4px rgba(20,31,43,.08);
}
.cc-field input:focus+label,.cc-field textarea:focus+label,
.cc-field input:not(:placeholder-shown)+label,.cc-field textarea:not(:placeholder-shown)+label{
	transform:translateY(-10px) scale(.78);color:var(--cc-navy);font-weight:500;
}
.cc-invalid input,.cc-invalid textarea{border-color:var(--cc-red)!important;background:#fff5f4}
.cc-invalid label{color:var(--cc-red)!important}

/* Checkbox privacy */
.cc-check{
	display:flex;gap:12px;align-items:flex-start;cursor:pointer;
	font-size:14px;line-height:1.5;color:var(--cc-muted);margin:4px 0 26px;
}
.cc-check input{position:absolute;opacity:0;width:1px;height:1px}
.cc-box{
	flex:0 0 20px;width:20px;height:20px;border-radius:6px;margin-top:1px;
	border:1.5px solid var(--cc-line);background:#fff;position:relative;transition:all .15s;
}
.cc-check input:checked+.cc-box{background:var(--cc-navy);border-color:var(--cc-navy)}
.cc-check input:checked+.cc-box::after{
	content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;
	border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);
}
.cc-check input:focus-visible+.cc-box{box-shadow:0 0 0 4px rgba(20,31,43,.12)}
.cc-check.cc-invalid .cc-box{border-color:var(--cc-red)}
.cc-check a{color:var(--cc-navy);font-weight:500;text-decoration:underline;text-underline-offset:2px}

/* Honeypot */
.cc-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* Bottone */
.cc-btn{
	display:inline-flex;align-items:center;gap:10px;
	font:inherit;font-size:16px;font-weight:600;letter-spacing:.01em;
	color:#fff;background:var(--cc-red);
	border:0;border-radius:999px;padding:15px 30px;cursor:pointer;
	box-shadow:0 10px 24px -10px rgba(255,59,51,.7);
	transition:transform .15s,background .2s,box-shadow .2s;
	text-transform:none;line-height:1.2;
}
.cc-btn svg{width:18px;height:18px;fill:currentColor;transition:transform .2s}
.cc-btn:hover{background:var(--cc-red-dark);transform:translateY(-2px);box-shadow:0 14px 28px -12px rgba(255,59,51,.8)}
.cc-btn:hover svg{transform:translateX(3px)}
.cc-btn:focus-visible{outline:3px solid var(--cc-navy);outline-offset:3px}
.cc-btn.cc-loading{pointer-events:none;opacity:.75}
.cc-btn.cc-loading svg{animation:cc-fly 1s ease-in-out infinite}
@keyframes cc-fly{50%{transform:translateX(6px)}}

/* Avvisi */
.cc-alert{padding:14px 18px;border-radius:10px;font-size:15px;margin-bottom:22px;border-left:4px solid}
.cc-alert--success{background:#e9fbf8;border-color:#23b8a4;color:#0f5c52}
.cc-alert--error{background:#fff1f0;border-color:var(--cc-red);color:#9b1c16}

/* Responsive */
@media (max-width:860px){
	.cc-card{grid-template-columns:1fr}
	.cc-side{padding:36px 28px 90px}
	.cc-form{padding:32px 24px}
	.cc-title{font-size:28px}
}
@media (max-width:560px){
	.cc-row{grid-template-columns:1fr;gap:0}
	.cc-wrap{margin:28px auto}
	.cc-btn{width:100%;justify-content:center}
}
