@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Source+Sans+Pro:wght@300;400;500;600&display=swap');

:root{
  --primary:#7fb8b8;
  --primary-light:#a8d8d8;
  --primary-lighter:#c8e6e6;
  --dark:#1a2828;
  --gray:#f8f9f9;
  --gray-mid:#d0d4d4;
  --text:#2c3e3e;
  --text-light:#647575;
  --accent-warm:#e8d5c4;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Source Sans Pro',sans-serif;color:var(--text);background:#fff;line-height:1.65;}
a{color:inherit;}
section{scroll-margin-top:90px;}

/* HEADER */
header{position:fixed;top:0;width:100%;background:rgba(248,249,249,.98);backdrop-filter:blur(10px);border-bottom:1px solid var(--gray-mid);z-index:200;padding:1.1rem 0;}
.nav-container{max-width:1280px;margin:0 auto;padding:0 3rem;display:flex;justify-content:space-between;align-items:center;}
.logo{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:700;color:var(--dark);letter-spacing:.2em;}
nav{display:flex;gap:2.2rem;}
nav a{text-decoration:none;color:var(--text);font-size:.88rem;font-weight:500;letter-spacing:.03em;position:relative;transition:color .3s ease;}
nav a::after{content:'';position:absolute;bottom:-8px;left:0;width:0;height:2px;background:var(--primary);transition:width .3s ease;}
nav a:hover{color:var(--primary);}
nav a:hover::after{width:100%;}
.btn-header{background:var(--primary);color:#fff;padding:.65rem 1.7rem;border:none;cursor:pointer;font-weight:600;font-size:.82rem;letter-spacing:.05em;transition:all .3s ease;font-family:'Source Sans Pro',sans-serif;text-decoration:none;display:inline-block;}
.btn-header:hover{background:var(--primary-light);transform:translateY(-2px);}
.nav-toggle{display:none;background:none;border:none;font-size:1.6rem;color:var(--dark);cursor:pointer;}
@media (max-width:860px){
  nav{position:fixed;top:64px;left:0;right:0;background:#fff;flex-direction:column;padding:1.5rem 2rem;gap:1.2rem;border-bottom:1px solid var(--gray-mid);display:none;}
  nav.open{display:flex;}
  .nav-toggle{display:block;}
  .nav-container{padding:0 1.3rem;}
}

/* HERO */
.hero{margin-top:60px;min-height:92vh;display:flex;align-items:center;background:linear-gradient(to bottom right,var(--primary-lighter) 0%,#fff 100%);position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;right:-10%;top:-30%;width:600px;height:600px;background:radial-gradient(circle,rgba(127,184,184,.15) 0%,transparent 70%);border-radius:50%;}
.hero-content{max-width:900px;z-index:1;padding:2rem 3rem;}
.hero-line{width:4px;height:60px;background:var(--primary);margin-bottom:2rem;}
.hero h1{font-family:'Playfair Display',serif;font-size:3.2rem;font-weight:700;line-height:1.15;color:var(--dark);margin-bottom:1.3rem;letter-spacing:-0.02em;}
.hero-subtitle{font-size:1.15rem;color:var(--text-light);font-weight:300;margin-bottom:1.6rem;max-width:620px;}
.hero-trust{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:2.2rem;}
.hero-trust span{color:var(--text);font-size:.92rem;font-weight:500;}
.hero-trust strong{color:var(--primary);margin-right:.35rem;}
.hero-buttons{display:flex;flex-wrap:wrap;gap:1.2rem;}
.btn-primary{background:var(--primary);color:#fff;padding:1rem 2.6rem;border:none;font-size:.92rem;font-weight:600;letter-spacing:.05em;cursor:pointer;transition:all .3s ease;font-family:'Source Sans Pro',sans-serif;text-decoration:none;display:inline-block;}
.btn-primary:hover{background:var(--primary-light);transform:translateY(-3px);box-shadow:0 12px 35px rgba(127,184,184,.25);}
.btn-secondary{background:transparent;color:var(--dark);padding:1rem 2.6rem;border:2px solid var(--dark);font-size:.92rem;font-weight:600;letter-spacing:.05em;cursor:pointer;transition:all .3s ease;font-family:'Source Sans Pro',sans-serif;text-decoration:none;display:inline-block;}
.btn-secondary:hover{background:var(--dark);color:#fff;}

/* SECTION HEADER */
.section-header{max-width:700px;margin-bottom:3.5rem;}
.section-header.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-header.center .section-line{margin-left:auto;margin-right:auto;}
.section-line{width:4px;height:50px;background:var(--primary);margin-bottom:1.5rem;}
.section-title{font-family:'Playfair Display',serif;font-size:2.6rem;font-weight:700;color:var(--dark);margin-bottom:1rem;letter-spacing:-0.02em;}
.section-description{color:var(--text-light);font-size:1.02rem;font-weight:300;line-height:1.8;}

/* BENEFITS / VANTAGGI */
.benefits{background:#fff;padding:6rem 3rem;}
.benefits-container{max-width:1280px;margin:0 auto;}
.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2.5rem;margin-top:1rem;}
.benefit-box{display:flex;gap:1.3rem;}
.benefit-check{font-size:1.4rem;color:var(--primary);font-weight:700;flex-shrink:0;}
.benefit-content h4{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--dark);margin-bottom:.4rem;font-weight:600;}
.benefit-content p{color:var(--text-light);font-size:.93rem;line-height:1.75;}

/* SERVICES */
.services{max-width:1280px;margin:6rem auto;padding:0 3rem;}
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2.2rem;margin-top:1rem;}
.service-card{background:#fff;padding:2.4rem;border-top:3px solid var(--primary);transition:all .35s ease;box-shadow:0 2px 14px rgba(44,62,62,.05);}
.service-card:hover{box-shadow:0 20px 50px rgba(44,62,62,.08);transform:translateY(-5px);}
.service-icon{font-size:1.9rem;margin-bottom:1rem;width:56px;height:56px;background:var(--primary-lighter);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--primary);}
.service-card h3{font-family:'Playfair Display',serif;font-size:1.25rem;color:var(--dark);margin-bottom:.7rem;font-weight:600;}
.service-card p{color:var(--text-light);line-height:1.75;font-size:.92rem;}
.services-extra-wrap{background:var(--gray);padding:6rem 3rem;}
.tag-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem;}
.tag-chip{background:#fff;border:1px solid var(--gray-mid);color:var(--text);padding:.55rem 1.1rem;font-size:.85rem;border-radius:30px;}

/* PROCESS */
.process{padding:6rem 3rem;}
.process-container{max-width:1280px;margin:0 auto;}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.8rem;margin-top:1rem;}
.process-step{background:var(--gray);padding:2.2rem 1.8rem;text-align:center;}
.step-number{font-family:'Playfair Display',serif;font-size:3rem;font-weight:300;color:var(--primary);margin-bottom:.8rem;}
.process-step h4{font-family:'Playfair Display',serif;font-size:1.1rem;color:var(--dark);margin-bottom:.7rem;font-weight:600;}
.process-step p{color:var(--text-light);line-height:1.7;font-size:.9rem;}
@media (max-width:900px){.process-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.process-grid{grid-template-columns:1fr;}}

/* CHI SIAMO */
.about{background:var(--dark);color:rgba(255,255,255,.9);padding:6rem 3rem;}
.about-container{max-width:1000px;margin:0 auto;}
.about .section-line{background:var(--primary-light);}
.about .section-title{color:#fff;}
.about p{font-size:1.02rem;line-height:1.9;color:rgba(255,255,255,.8);margin-bottom:1.2rem;font-weight:300;}
.about-note{background:rgba(255,255,255,.06);border-left:3px solid var(--primary-light);padding:1.2rem 1.5rem;font-size:.9rem;color:rgba(255,255,255,.7);margin-top:1.5rem;}

/* RECENSIONI placeholder */
.reviews{background:var(--gray);padding:5rem 3rem;text-align:center;}
.reviews-container{max-width:700px;margin:0 auto;}
.reviews p{color:var(--text-light);font-size:1rem;line-height:1.8;}

/* FAQ */
.faq{max-width:900px;margin:6rem auto;padding:0 3rem;}
.faq-item{border-bottom:1px solid var(--gray-mid);}
.faq-question{width:100%;text-align:left;background:none;border:none;padding:1.4rem 0;font-family:'Source Sans Pro',sans-serif;font-size:1.02rem;font-weight:600;color:var(--dark);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;}
.faq-question .icon{color:var(--primary);font-size:1.3rem;flex-shrink:0;transition:transform .3s ease;}
.faq-item.open .faq-question .icon{transform:rotate(45deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.faq-item.open .faq-answer{max-height:300px;}
.faq-answer p{color:var(--text-light);padding-bottom:1.4rem;line-height:1.8;font-size:.95rem;}

/* CHATBOT WIDGET */
.chat-fab{position:fixed;bottom:5.2rem;right:1.8rem;background:var(--dark);color:#fff;border:none;width:60px;height:60px;border-radius:50%;font-size:1.4rem;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:250;display:flex;align-items:center;justify-content:center;}
.chat-fab:hover{background:var(--primary);}
.chat-window{position:fixed;bottom:9.5rem;right:1.8rem;width:340px;max-width:88vw;max-height:70vh;background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.25);z-index:260;display:none;flex-direction:column;overflow:hidden;}
.chat-window.open{display:flex;}
.chat-head{background:var(--dark);color:#fff;padding:1rem 1.2rem;display:flex;justify-content:space-between;align-items:center;}
.chat-head strong{font-family:'Playfair Display',serif;letter-spacing:.05em;}
.chat-close{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;}
.chat-body{padding:1.2rem;overflow-y:auto;flex:1;font-size:.9rem;}
.chat-bubble{background:var(--gray);padding:.8rem 1rem;border-radius:10px;margin-bottom:1rem;color:var(--text);line-height:1.6;}
.chat-options{display:flex;flex-direction:column;gap:.6rem;}
.chat-opt{background:#fff;border:1.5px solid var(--gray-mid);color:var(--text);padding:.7rem 1rem;border-radius:8px;font-size:.88rem;text-align:left;cursor:pointer;transition:all .2s ease;}
.chat-opt:hover{border-color:var(--primary);color:var(--primary);}
.chat-answer-log{font-size:.8rem;color:var(--text-light);margin-bottom:.8rem;font-style:italic;}

/* CONTACT */
.contact{background:linear-gradient(135deg,var(--primary-lighter) 0%,var(--gray) 100%);padding:6rem 3rem;}
.contact-container{max-width:1280px;margin:0 auto;}
.contact-content{display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;}
.contact-info h3{font-family:'Playfair Display',serif;font-size:1.4rem;color:var(--dark);margin-bottom:2rem;}
.contact-info .section-line{margin-bottom:1.6rem;}
.contact-block{margin-bottom:1.6rem;}
.contact-label{display:block;color:var(--text-light);font-size:.78rem;letter-spacing:.15em;margin-bottom:.4rem;font-weight:600;text-transform:uppercase;}
.contact-value{color:var(--dark);font-size:.98rem;line-height:1.6;}
.contact-value a{color:var(--primary);text-decoration:none;}
.contact-value a:hover{color:var(--dark);}
.map-embed{width:100%;height:230px;border:0;margin-top:.5rem;filter:grayscale(15%);}
.zones{margin-top:1rem;}
.zones .tag-row{margin-top:.8rem;}

/* FOOTER */
footer{background:var(--dark);color:rgba(255,255,255,.85);padding:3.5rem 3rem 1.8rem;}
.footer-content{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-bottom:2.5rem;}
.footer-section h4{color:#fff;margin-bottom:1rem;font-family:'Playfair Display',serif;font-size:.95rem;letter-spacing:.1em;font-weight:600;}
.footer-section p{font-size:.88rem;line-height:1.8;}
.footer-links{display:flex;flex-direction:column;gap:.7rem;}
.footer-links a{color:rgba(255,255,255,.75);text-decoration:none;font-size:.88rem;background:none;border:none;text-align:left;cursor:pointer;font-family:inherit;}
.footer-links a:hover{color:var(--primary-light);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:1.6rem;text-align:center;color:rgba(255,255,255,.6);font-size:.82rem;}
@media (max-width:860px){.footer-content{grid-template-columns:1fr;} .contact-content{grid-template-columns:1fr;}}

/* WHATSAPP FLOAT */
.wa-float{position:fixed;bottom:1.8rem;right:1.8rem;background:#25D366;color:#fff;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.7rem;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:250;}

/* COOKIE BAR */
.cookie-bar{position:fixed;bottom:0;left:0;right:0;background:var(--dark);color:rgba(255,255,255,.9);padding:1.1rem 1.5rem;display:none;align-items:center;justify-content:center;gap:1.5rem;flex-wrap:wrap;z-index:300;font-size:.88rem;}
.cookie-bar.show{display:flex;}
.cookie-bar button{background:var(--primary);color:#fff;border:none;padding:.6rem 1.4rem;font-weight:600;font-size:.85rem;cursor:pointer;}
.cookie-actions{display:flex;gap:.7rem;flex-wrap:wrap;}
.cookie-btn-secondary{background:transparent!important;border:1px solid rgba(255,255,255,.5)!important;color:#fff!important;}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(26,40,40,.7);display:none;align-items:center;justify-content:center;z-index:400;padding:2rem;}
.modal-overlay.open{display:flex;}
.modal-box{background:#fff;max-width:700px;max-height:80vh;overflow-y:auto;padding:2.5rem;border-radius:10px;position:relative;}
.modal-box h3{font-family:'Playfair Display',serif;color:var(--dark);margin-bottom:1rem;}
.modal-box p, .modal-box li{color:var(--text-light);font-size:.92rem;line-height:1.75;margin-bottom:.9rem;}
.modal-close{position:absolute;top:1.2rem;right:1.4rem;background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--text-light);}
.modal-disclaimer{background:var(--gray);border-left:3px solid var(--primary);padding:1rem 1.2rem;font-size:.85rem;color:var(--text);margin-bottom:1.5rem;}

@media (max-width:768px){
  .hero h1{font-size:2.2rem;}
  .section-title{font-size:1.9rem;}
  .contact-content{gap:2rem;}
}
