:root{ --bg:#FFFFFF; --bg-alt:#F5F4EF; --ink:#1C2B22; --ink-soft:#5B6B5F; --ink-faint:#8C978E; --green:#2F5D45; --green-deep:#1F4433; --green-light:#E8EFE9; --amber:#C98A2E; --amber-dark:#AD7423; --line:#E6E3DA; }
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body {
  background: var(--bg);
  color: var(--ink);
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  
  /* Nuove regole per incollare il footer in basso */
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
h1,h2,h3,h4{font-family:'Newsreader',serif;color:var(--ink);letter-spacing:-0.01em;font-weight:600;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px;}
.eyebrow{font-family:'Manrope',sans-serif;font-size:0.75rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--amber-dark);margin-bottom:14px;}
header{border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,255,255,0.92);backdrop-filter:blur(6px);z-index:50;}
.nav{display:flex;align-items:center;justify-content:space-between;padding:18px 0;max-width:1080px;margin:0 auto;padding-left:28px;padding-right:28px;}
.logo{font-family:'Newsreader',serif;font-weight:600;font-size:1.15rem;color:var(--ink);}
.nav-links{display:flex;gap:30px;font-size:0.92rem;font-weight:500;color:var(--ink-soft);}
.nav-links a:hover{color:var(--ink);}
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-weight:700;font-size:0.9rem;padding:12px 24px;border-radius:6px;cursor:pointer;border:1.5px solid transparent;transition:all .15s ease;}
.btn-cta{background:var(--amber);color:#fff;}
.btn-cta:hover{background:var(--amber-dark);}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink);}
.btn-ghost:hover{border-color:var(--ink);}
.btn-sm{padding:9px 18px;font-size:0.84rem;}
.hero{padding:96px 0 0;}
.hero .wrap{max-width:760px;text-align:center;}
.hero h1{font-size:clamp(2.2rem,4.4vw,3.3rem);line-height:1.18;margin-bottom:22px;}
.hero p{font-family:'Manrope',sans-serif;font-size:1.06rem;color:var(--ink-soft);max-width:560px;margin:0 auto 34px;}
.hero-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:56px;}
.badge-strip{border-top:1px solid var(--line);padding:28px 0;}
.badge-row{display:flex;justify-content:center;gap:48px;flex-wrap:wrap;}
.badge{text-align:center;}
.badge .big{font-family:'Newsreader',serif;font-weight:600;font-size:1.4rem;color:var(--green);display:block;margin-bottom:4px;}
.badge .small{font-family:'Manrope';font-size:0.76rem;color:var(--ink-faint);letter-spacing:0.03em;}
.manifesto{background:var(--green-deep);padding:60px 0;}
.manifesto .wrap{max-width:760px;text-align:center;}
.manifesto p{font-family:'Newsreader',serif;font-style:italic;font-weight:500;font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.4;color:#F3F0E6;}
.manifesto span{display:block;font-family:'Manrope';font-style:normal;font-size:0.75rem;letter-spacing:0.12em;text-transform:uppercase;color:#9DB8A8;margin-top:20px;}
section{padding:80px 0;}
.section-alt{background:var(--bg-alt);}
.section-head{max-width:560px;margin-bottom:44px;}
.section-head h2{font-size:clamp(1.6rem,2.6vw,2.1rem);}
.section-head p{font-family:'Manrope';color:var(--ink-soft);margin-top:12px;font-size:0.98rem;}
.approach-list{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;}
.approach-item .tag{font-family:'Manrope';font-size:0.72rem;font-weight:800;letter-spacing:0.06em;color:var(--amber-dark);margin-bottom:10px;display:block;}
.approach-item h3{font-size:1.2rem;margin-bottom:8px;font-weight:600;}
.approach-item p{font-family:'Manrope';color:var(--ink-soft);font-size:0.92rem;}
.steps{counter-reset:step;}
.step-row{display:flex;gap:24px;padding:26px 0;border-bottom:1px solid var(--line);}
.step-row:first-child{border-top:1px solid var(--line);}
.step-num{font-family:'Newsreader',serif;font-weight:600;font-size:1.5rem;color:var(--amber);flex-shrink:0;width:44px;}
.step-body h3{font-family:'Manrope';font-weight:700;font-size:1.02rem;margin-bottom:6px;color:var(--ink);}
.step-body p{font-family:'Manrope';color:var(--ink-soft);font-size:0.92rem;}
.service-list{border-top:1px solid var(--line);}
.service-row{display:flex;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);}
.service-row .ic{width:36px;height:36px;flex-shrink:0;color:var(--green);}
.service-row span{font-family:'Manrope';font-weight:600;font-size:1rem;}
.services-note{margin-top:28px;font-family:'Manrope';font-size:0.92rem;color:var(--ink-soft);display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.services-note a{color:var(--green);font-weight:700;}
.reviews-box{background:var(--green-light);border-radius:10px;padding:44px 40px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;}
.reviews-left{display:flex;align-items:center;gap:18px;}
.stars{color:var(--amber);font-size:1.3rem;letter-spacing:2px;}
.reviews-left div h3{font-family:'Manrope';font-weight:700;font-size:1.1rem;color:var(--ink);}
.reviews-left div p{font-family:'Manrope';font-size:0.86rem;color:var(--ink-soft);}
.about-grid{display:grid;grid-template-columns:0.55fr 1.45fr;gap:56px;align-items:start;}
.monogram{width:96px;height:96px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Newsreader',serif;font-weight:600;font-size:1.7rem;margin-bottom:0;}
.about h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin-bottom:16px;}
.about p{font-family:'Manrope';color:var(--ink-soft);margin-bottom:16px;font-size:0.98rem;}
.credentials{display:flex;flex-direction:column;gap:10px;margin:22px 0 28px;padding:20px 22px;background:var(--bg-alt);border-radius:8px;}
.credentials div{font-family:'Manrope';display:flex;gap:10px;font-size:0.9rem;color:var(--ink);align-items:baseline;}
.credentials div::before{content:"—";color:var(--green);font-weight:700;}
.contact{background:var(--ink);color:#fff;}
.contact .wrap{text-align:center;max-width:640px;}
.contact .eyebrow{color:#D6A55B;}
.contact h2{color:#fff;font-size:clamp(1.9rem,3.4vw,2.5rem);margin-bottom:16px;}
.contact p.lede{font-family:'Manrope';color:#C3CBC5;font-size:1.02rem;margin-bottom:34px;}
.contact-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:16px;}
.btn-ghost-dark{background:transparent;border:1.5px solid rgba(255,255,255,0.3);color:#fff;}
.btn-ghost-dark:hover{border-color:#fff;}
.micro{font-family:'Manrope';font-size:0.82rem;color:#93A096;margin-bottom:50px;}
.contact-info{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;padding-top:36px;border-top:1px solid rgba(255,255,255,0.12);font-family:'Manrope';font-size:0.9rem;color:#D2D8D3;text-align:left;}
.contact-info .label{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.08em;color:#D6A55B;font-weight:700;margin-bottom:4px;}
footer {
  padding: 26px 0;
  text-align: center;
  font-family: 'Manrope';
  font-size: 0.8rem;
  color: var(--ink-faint);
  background: var(--ink);
  border-top: 1px solid rgba(255,255,255,0.08);
  margin-top: auto;
}
.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease, transform .5s ease;}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}
@media (max-width:820px){.nav-links{display:none;} .approach-list{grid-template-columns:1fr;gap:28px;} .about-grid{grid-template-columns:1fr;} .badge-row{gap:30px;} .reviews-box{flex-direction:column;text-align:center;} .contact-info{flex-direction:column;align-items:center;text-align:center;gap:20px;}}

/* Animazione Logo - Inversione Colori (Elegante e Minimale) */
.logo-wrapper { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.logo-bg { transition: fill 0.4s ease; }
.logo-e { transition: stroke 0.4s ease; }
.logo-d path { transition: stroke 0.4s ease; }
.logo-subtitle { transition: letter-spacing 0.5s ease, color 0.4s ease; }
.logo-wrapper:hover .logo-bg { fill: var(--green); }
.logo-wrapper:hover .logo-e { stroke: #ffffff; }
.logo-wrapper:hover .logo-d path { stroke: var(--amber); }
.logo-wrapper:hover .logo-subtitle { letter-spacing: 0.18em; color: var(--green); }

/* --- ELEMENTI ESCLUSIVI DESKTOP/MOBILE --- */
.mobile-menu-btn { display: none; background: none; border: none; cursor: pointer; padding: 4px; }
.desktop-only { display: inline-flex; }
.mobile-only { display: none; }

/* --- OTTIMIZZAZIONE SMARTPHONE E TABLET (Max 820px) --- */
@media (max-width: 820px) {
  .desktop-only { display: none; }
  .mobile-only { display: inline-flex; }
  .mobile-menu-btn { display: block; }
  .nav { position: relative; }
  .nav-links {
    display: flex; flex-direction: column; position: absolute; top: 100%; left: 0; width: 100%;
    background: rgba(255, 255, 255, 0.98); backdrop-filter: blur(10px); padding: 30px 20px;
    border-bottom: 1px solid var(--line); gap: 24px; text-align: center; opacity: 0;
    pointer-events: none; transform: translateY(-10px); transition: all 0.3s ease;
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
  }
  .nav-links.active { opacity: 1; pointer-events: auto; transform: translateY(0); }
  .nav-links a { font-size: 1.1rem; }
  .wrap { padding: 0 20px; }
  section { padding: 56px 0; }
  .hero { padding: 40px 0 0; }
  .hero h1 { font-size: 2.1rem; margin-bottom: 16px; }
  .hero p { font-size: 1rem; margin-bottom: 28px; }
  .section-head { margin-bottom: 36px; }
  .section-head h2 { font-size: 1.8rem; }
  .approach-list, .about-grid { grid-template-columns: 1fr; gap: 36px; }
  .badge-strip { padding: 32px 0; }
  .badge-row { flex-direction: column; gap: 24px; align-items: center; }
  .step-row { flex-direction: column; gap: 8px; padding: 20px 0; }
  .step-num { margin-bottom: 4px; font-size: 1.3rem; }
  .reviews-box { flex-direction: column; text-align: center; padding: 32px 24px; }
  .reviews-left { flex-direction: column; gap: 12px; }
  .contact-info { flex-direction: column; align-items: center; text-align: center; gap: 24px; }
  .hero-ctas { flex-direction: column; width: 100%; gap: 12px; margin-bottom: 48px; }
  .hero-ctas .btn { width: 100%; padding: 14px 24px; }
  .form-container { padding: 24px 20px; }
}

/* --- OTTIMIZZAZIONE SMARTPHONE PICCOLI (Max 600px) --- */
@media (max-width: 600px) {
  .btn-wa { width: 60px; height: 60px; padding: 0; border-radius: 50%; }
  .wa-text { display: none; }
  .logo-wrapper svg { width: 34px; height: 34px; }
  .logo-wrapper span:first-child { font-size: 1.05rem !important; }
}

.foto-profilo { width: 490px; height: 490px; border-radius: 50%; object-fit: cover; }
.foto-centrata { width: 190px; height: 190px; border-radius: 40%; object-fit: cover; display: block; margin: 0 auto; }

@media (max-width: 768px) {
  .foto-profilo { width: 100px; height: 100px; margin: 0 auto; display: block; }
}

.link-indirizzo { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; transition: opacity 0.2s ease, color 0.2s ease; }
.link-indirizzo:hover { opacity: 0.7; color: var(--amber-dark); }
.icona-mappa { flex-shrink: 0; }

/* ------------------------------------------------ */
/* TASTI FLUTTUANTI CONTATTI (LINKEDIN + WHATSAPP)  */
/* ------------------------------------------------ */

/* Contenitore fluttuante: posiziona, raggruppa i tasti e crea l'alone */
.floating-contact-container {
    position: fixed;
    bottom: 25px;
    right: 25px;
    z-index: 1000;
    display: flex;
    align-items: center;
    gap: 12px;
    
    
}

/* Stili di base comuni per i pulsanti */
.social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: white;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.social-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 14px rgba(0,0,0,0.3);
}

/* Tasto LinkedIn (quadrato con angoli arrotondati) */
.linkedin-btn {
    width: 48px;
    height: 48px;
    background-color: #0077b5;
    border-radius: 14px; 
}

.linkedin-btn svg {
    width: 24px;
    height: 24px;
}

/* Tasto WhatsApp (forma a pillola lunga) */
.whatsapp-pill-btn {
    background-color: #25D366; 
    padding: 12px 24px;
    border-radius: 50px; 
    font-family: 'Manrope', sans-serif; 
    font-weight: 600;
    font-size: 15px;
    gap: 8px; 
}

.whatsapp-pill-btn svg {
    width: 22px;
    height: 22px;
}