:root {
  --teal:      #1a8f8c;
  --teal-dark: #136f6c;
  --green:     #3aaa35;
  --yellow:    #f5c400;
  --orange:    #f07c30;
  --purple:    #8e44ad;
  --cream:     #fdfaf3;
  --text:      #1a2e1a;
  --text-light:#3d5a3d;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Nunito', sans-serif; background: var(--cream); color: var(--text); overflow-x: hidden; }

.icon-img { width:52px;height:52px;border-radius:14px;object-fit:cover;flex-shrink:0; }
.icon-img.round { width:58px;height:58px;border-radius:50%;margin:0 auto .9rem;display:block; }
.icon-img.small { width:48px;height:48px;border-radius:14px; }

nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  padding: .8rem 2rem;
  background: rgba(253,250,243,.93);
  backdrop-filter: blur(10px);
  border-bottom: 2px solid var(--yellow);
  transition: box-shadow .3s;
}
nav.scrolled { box-shadow: 0 4px 20px rgba(0,0,0,.1); }
.nav-logo { font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:900;color:var(--teal-dark);text-decoration:none;line-height:1.1; }
.nav-logo span { color: var(--orange); }
.nav-links { display:flex;gap:1.6rem;list-style:none; }
.nav-links a { text-decoration:none;color:var(--text-light);font-weight:700;font-size:.9rem;letter-spacing:.03em;transition:color .2s; }
.nav-links a:hover { color: var(--teal); }
.hamburger { display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px; }
.hamburger span { display:block;width:26px;height:3px;background:var(--teal-dark);border-radius:3px;transition:transform .3s,opacity .3s; }
.hamburger.open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

#hero {
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:7rem 2rem 4rem;position:relative;overflow:hidden;
  background:linear-gradient(160deg,#e8f8f7 0%,#f0faf0 50%,#fffde8 100%);
}
.hero-blobs { position:absolute;inset:0;pointer-events:none;overflow:hidden; }
.blob { position:absolute;border-radius:50%;filter:blur(60px);opacity:.35;animation:float 8s ease-in-out infinite; }
.blob-1 { width:500px;height:500px;background:var(--teal);top:-150px;left:-150px;animation-delay:0s; }
.blob-2 { width:400px;height:400px;background:var(--yellow);bottom:-100px;right:-100px;animation-delay:2s; }
.blob-3 { width:300px;height:300px;background:var(--green);top:40%;left:60%;animation-delay:4s; }
.blob-4 { width:200px;height:200px;background:var(--orange);top:20%;right:10%;animation-delay:1s; }
@keyframes float { 0%,100%{transform:translateY(0) scale(1)} 50%{transform:translateY(-30px) scale(1.06)} }

.hero-content { position:relative;z-index:1;max-width:700px; }
.hero-badge { display:inline-block;background:var(--yellow);color:var(--text);font-weight:800;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;padding:.4rem 1.2rem;border-radius:100px;margin-bottom:1.4rem;animation:fadeDown .6s ease both; }
.hero-title { font-family:'Playfair Display',serif;font-size:clamp(3rem,9vw,5.5rem);font-weight:900;line-height:1;color:var(--teal-dark);animation:fadeDown .7s .1s ease both; }
.hero-title .accent { color: var(--orange); }
.hero-subtitle { margin:1.4rem auto 2rem;font-size:clamp(1rem,2.5vw,1.2rem);color:var(--text-light);line-height:1.6;max-width:540px;font-weight:600;animation:fadeDown .7s .2s ease both; }
.hero-cta { display:inline-flex;gap:1rem;flex-wrap:wrap;justify-content:center;animation:fadeDown .7s .3s ease both; }
.btn { display:inline-block;padding:.85rem 2.2rem;border-radius:100px;font-family:'Nunito',sans-serif;font-weight:800;font-size:.95rem;text-decoration:none;transition:transform .2s,box-shadow .2s;cursor:pointer;border:none; }
.btn:hover { transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,.15); }
.btn-primary  { background:var(--teal);color:#fff; }
.btn-secondary{ background:var(--yellow);color:var(--text); }

section { padding:5rem 2rem; }
.container { max-width:1000px;margin:0 auto; }
.section-label { font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.6rem; }
.section-title { font-family:'Playfair Display',serif;font-size:clamp(2rem,5vw,3rem);font-weight:900;line-height:1.1;margin-bottom:1.5rem; }
.section-text  { font-size:1.05rem;line-height:1.8;color:var(--text-light);font-weight:600;max-width:680px; }

#chisiamo { background:var(--teal);color:#fff; }
#chisiamo .section-label { color:var(--yellow); }
#chisiamo .section-title { color:#fff; }
#chisiamo .section-text  { color:rgba(255,255,255,.85);max-width:100%; }
.chisiamo-grid { display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center; }
.chisiamo-visual { display:flex;flex-direction:column;gap:1rem; }
.chisiamo-card { background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:1.4rem 1.6rem;display:flex;align-items:center;gap:1rem;backdrop-filter:blur(8px);transition:transform .25s; }
.chisiamo-card:hover { transform:translateX(6px); }
.chisiamo-card p { font-weight:700;color:#fff;font-size:.95rem;line-height:1.4; }

#valori { background:var(--cream); }
#valori .section-label { color:var(--teal); }
.pillars { display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-top:2.5rem; }
.pillar { background:#fff;border-radius:24px;padding:2rem 1.6rem;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,.06);border-top:5px solid var(--color,var(--teal));transition:transform .25s,box-shadow .25s; }
.pillar:hover { transform:translateY(-6px);box-shadow:0 14px 40px rgba(0,0,0,.1); }
.pillar h3 { font-weight:900;font-size:1rem;color:var(--text);margin-bottom:.4rem; }
.pillar p  { font-size:.88rem;color:var(--text-light);line-height:1.5;font-weight:600; }

#sedeorari { background:linear-gradient(135deg,var(--green) 0%,var(--teal) 100%);color:#fff; }
.sedeorari-grid { display:grid;grid-template-columns:1fr 1fr;gap:2rem; }
.sedeorari-card { background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.25);border-radius:24px;padding:2.4rem 2rem;backdrop-filter:blur(10px);transition:transform .25s; }
.sedeorari-card:hover { transform:translateY(-4px); }
.sedeorari-card .ic-label { font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--yellow);margin-bottom:.5rem; }
.sedeorari-card h2 { font-family:'Playfair Display',serif;font-size:1.8rem;font-weight:900;color:#fff;margin-bottom:1.2rem; }
.sedeorari-card p, .sedeorari-card address { font-style:normal;font-size:1rem;line-height:1.7;color:rgba(255,255,255,.88);font-weight:600; }
.sedeorari-card .highlight { display:inline-block;background:var(--yellow);color:var(--text);border-radius:100px;padding:.3rem 1rem;font-weight:900;font-size:1rem;margin-bottom:.6rem; }
.map-link { display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;color:var(--yellow);font-weight:800;font-size:.9rem;text-decoration:none;transition:opacity .2s; }
.map-link:hover { opacity:.75; }

#contatti { background:var(--cream); }
#contatti .section-label { color:var(--green); }
.contact-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.4rem;margin-top:2.5rem; }
.contact-item { background:#fff;border-radius:20px;padding:1.8rem 1.6rem;display:flex;align-items:flex-start;gap:1.2rem;box-shadow:0 4px 16px rgba(0,0,0,.06);transition:transform .22s;text-decoration:none;color:inherit; }
.contact-item:hover { transform:translateY(-4px); }
.contact-item .ci-label { font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light);margin-bottom:.25rem; }
.contact-item span { font-size:.95rem;font-weight:700;color:var(--text);word-break:break-all; }

footer { background:var(--teal-dark);color:rgba(255,255,255,.75);text-align:center;padding:2.5rem 2rem;font-size:.85rem;font-weight:600; }
footer strong { color:#fff; }
footer .cf { margin-top:.4rem;font-size:.78rem;opacity:.6; }

@keyframes fadeDown { from{opacity:0;transform:translateY(-22px)} to{opacity:1;transform:translateY(0)} }
.reveal { opacity:0;transform:translateY(30px);transition:opacity .65s ease,transform .65s ease; }
.reveal.visible { opacity:1;transform:translateY(0); }

@media (max-width:768px) {
  .nav-links { display:none;flex-direction:column;position:fixed;top:60px;left:0;right:0;background:rgba(253,250,243,.97);padding:1.5rem 2rem 2rem;border-bottom:2px solid var(--yellow);gap:1.2rem;backdrop-filter:blur(10px); }
  .nav-links.open { display:flex; }
  .hamburger { display:flex; }
  .chisiamo-grid { grid-template-columns:1fr; }
  .sedeorari-grid { grid-template-columns:1fr; }
  .hero-title { font-size:clamp(2.6rem,12vw,4rem); }
}
@media (max-width:480px) {
  section { padding:3.5rem 1.2rem; }
  nav { padding:.8rem 1.2rem; }
  .btn { padding:.75rem 1.6rem;font-size:.88rem; }
}
