/* =====================
   CONTATTI — page
   ===================== */

/* HERO */
.ct-hero{position:relative;background:radial-gradient(120% 130% at 15% 0%,#0c4a2a 0%,#063018 55%,#04140b 100%);
  color:#fff;overflow:hidden;padding:54px 0 60px}
.ct-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.5;filter:saturate(1.1)}
.ct-hero::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,rgba(4,20,11,.92) 0%,rgba(4,20,11,.6) 52%,rgba(4,20,11,.32) 100%)}
.ct-hero::after{content:"";position:absolute;right:-60px;top:-60px;width:340px;height:340px;border-radius:50%;z-index:1;
  background:radial-gradient(circle,rgba(124,255,178,.18),transparent 70%);pointer-events:none}
.ct-hero-inner{position:relative;z-index:2}
.ct-breadcrumb{display:flex;align-items:center;gap:7px;font-size:12px;color:#9fe6c0;margin-bottom:16px}
.ct-breadcrumb a{color:#9fe6c0;text-decoration:none}
.ct-breadcrumb a:hover{color:#fff}
.ct-breadcrumb .ti{font-size:14px}
.ct-hero h1{font-family:Georgia,serif;font-size:46px;font-weight:400;line-height:1.08;margin-bottom:14px}
.ct-hero h1 em{font-style:italic;color:#7CFFB2}
.ct-hero p{font-size:15px;color:rgba(255,255,255,.82);line-height:1.7;max-width:560px}

/* QUICK CARDS */
.ct-quick{max-width:1200px;margin:-40px auto 0;padding:0 35px;position:relative;z-index:3;
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ct-qcard{background:#fff;border:1px solid #e8ece9;border-radius:14px;padding:24px;text-align:center;
  box-shadow:0 20px 44px -24px rgba(0,40,20,.4);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s}
.ct-qcard:hover{transform:translateY(-6px);box-shadow:0 30px 56px -24px rgba(0,40,20,.5)}
.ct-qicon{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;background:#003d22;color:#fff;
  display:flex;align-items:center;justify-content:center;transition:transform .35s}
.ct-qcard:hover .ct-qicon{transform:scale(1.1) rotate(-5deg)}
.ct-qicon .ti{font-size:26px}
.ct-qcard h3{font-size:13px;font-weight:700;letter-spacing:.5px;color:#071f16;margin-bottom:6px;text-transform:uppercase}
.ct-qcard a,.ct-qcard p{font-size:14px;color:#3a5246;text-decoration:none;line-height:1.6;display:block}
.ct-qcard a:hover{color:#003d22}
.ct-qcard small{display:block;font-size:12px;color:#8a958e;margin-top:4px}

/* MAIN: form + side */
.ct-main{max-width:1200px;margin:56px auto;padding:0 35px;display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:start}
.ct-label{display:inline-block;font-size:11px;font-weight:700;letter-spacing:2px;color:#2e8b57;margin-bottom:10px}
.ct-main h2{font-family:Georgia,serif;font-size:30px;font-weight:400;color:#071f16;margin-bottom:8px;line-height:1.12}
.ct-main .ct-intro{font-size:14px;color:#5b6b62;line-height:1.7;margin-bottom:26px}

/* FORM */
.ct-form{background:#fff;border:1px solid #e8ece9;border-radius:16px;padding:30px;box-shadow:0 16px 40px -26px rgba(0,40,20,.35)}
.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ct-field{margin-bottom:16px}
.ct-field label{display:block;font-size:12px;font-weight:600;color:#33433a;margin-bottom:6px}
.ct-field input,.ct-field select,.ct-field textarea{width:100%;border:1px solid #d6ddd8;border-radius:9px;
  padding:12px 13px;font-size:14px;font-family:inherit;color:#22302a;outline:none;background:#fbfcfb;transition:border-color .2s,box-shadow .2s}
.ct-field input:focus,.ct-field select:focus,.ct-field textarea:focus{border-color:#2e8b57;box-shadow:0 0 0 3px rgba(46,139,87,.12)}
.ct-field textarea{resize:vertical;min-height:130px}
.ct-check{display:flex;align-items:flex-start;gap:9px;font-size:12px;color:#5b6b62;line-height:1.5;margin-bottom:20px}
.ct-check input{width:16px;height:16px;accent-color:#003d22;margin-top:1px;flex-shrink:0}
.ct-check a{color:#003d22;font-weight:600}
.ct-submit{width:100%;border:none;border-radius:10px;background:#003d22;color:#fff;font-size:14px;font-weight:700;
  letter-spacing:.4px;padding:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s,transform .2s}
.ct-submit:hover{background:#0a5a32;transform:translateY(-2px)}
.ct-submit .ti{font-size:17px}
.ct-success{display:none;text-align:center;padding:30px 10px}
.ct-success .ti{font-size:54px;color:#2e8b57;margin-bottom:12px}
.ct-success h3{font-family:Georgia,serif;font-size:24px;color:#071f16;margin-bottom:8px}
.ct-success p{font-size:14px;color:#5b6b62;line-height:1.6}
.ct-form.sent form{display:none}
.ct-form.sent .ct-success{display:block}

/* SIDE */
.ct-side .ct-block{background:#f6f9f6;border:1px solid #e6efe8;border-radius:14px;padding:22px 24px;margin-bottom:18px}
.ct-side h4{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.8px;color:#071f16;text-transform:uppercase;margin-bottom:12px}
.ct-side h4 .ti{color:#2e8b57;font-size:18px}
.ct-side p,.ct-side a{font-size:13.5px;color:#3a5246;line-height:1.85;text-decoration:none;display:block}
.ct-side a:hover{color:#003d22}
.ct-social{display:flex;gap:10px;margin-top:4px}
.ct-social a{width:40px;height:40px;border:1px solid #cdddd2;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:#003d22;font-size:17px;transition:all .22s}
.ct-social a:hover{background:#003d22;color:#fff;border-color:#003d22;transform:translateY(-3px)}

/* MAP */
.ct-map{max-width:1200px;margin:0 auto 60px;padding:0 35px}
.ct-map-frame{width:100%;height:360px;border:0;border-radius:16px;display:block;filter:saturate(.9)}

/* FAQ */
.ct-faq{background:#f7faf8;border-top:1px solid #ecefed;padding:56px 0 64px}
.ct-faq .container{max-width:880px}
.ct-faq h2{font-family:Georgia,serif;font-size:30px;font-weight:400;color:#071f16;margin-bottom:6px}
.ct-faq .ct-intro{font-size:14px;color:#5b6b62;margin-bottom:26px}
.ct-faq-item{background:#fff;border:1px solid #e7ece8;border-radius:12px;margin-bottom:12px;overflow:hidden;transition:box-shadow .3s,border-color .3s}
.ct-faq-item[open]{box-shadow:0 14px 34px -20px rgba(0,40,20,.35);border-color:#cfe0d4}
.ct-faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:17px 20px;font-size:14.5px;font-weight:600;color:#071f16}
.ct-faq-item summary::-webkit-details-marker{display:none}
.ct-faq-item summary .ti{color:#2e8b57;font-size:19px;flex-shrink:0;transition:transform .3s ease}
.ct-faq-item[open] summary .ti{transform:rotate(180deg)}
.ct-faq-a{padding:0 20px 18px;font-size:13.5px;color:#5b6b62;line-height:1.7}
.ct-faq-a a{color:#003d22;font-weight:600;text-decoration:none}

/* RESPONSIVE */
@media(max-width:900px){
  .ct-quick{grid-template-columns:1fr;margin-top:30px}
  .ct-main{grid-template-columns:1fr;gap:30px}
  .ct-hero h1{font-size:34px}
}
@media(max-width:520px){
  .ct-row{grid-template-columns:1fr}
}
