@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;800;900&family=Open+Sans:wght@300;400;600&display=swap');

/* ── RESET & ROOT ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#1A6FC4;
  --blue-light:#00BFFF;
  --magenta:#C71585;
  --yellow:#F1C40F;
  --orange:#E67E22;
  --purple:#9B59B6;
  --green:#2e7d32;
  --bg:#F8FAFF;
  --text:#1A1A2E;
  --white:#fff;
  --shadow:0 4px 24px rgba(26,111,196,0.10);
  --radius:14px;
  --tr:0.3s cubic-bezier(.4,0,.2,1);
}

html{scroll-behavior:smooth;height:100%}
body{font-family:'Open Sans',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;display:flex;flex-direction:column;min-height:100vh}

main{
  flex:1;
  width:100%;
}


::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:#e8f0ff}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--blue),var(--blue-light));border-radius:3px}

/* ── NAVBAR ── */
#navbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:#fff;
  padding:12px 40px;
  display:flex;align-items:center;justify-content:space-between;
  transition:var(--tr);
  border-bottom:2px solid transparent;
}
#navbar.scrolled{
  box-shadow:0 2px 30px rgba(26,111,196,0.15);
  border-bottom-color:rgba(26,111,196,0.12);
}
.nav-logo{display:flex;align-items:center;gap:0;text-decoration:none;flex-shrink:0}
.nav-links{display:flex;align-items:center;gap:4px;list-style:none}
.nav-links a{
  text-decoration:none;color:var(--text);
  font-family:'Montserrat',sans-serif;font-size:13px;font-weight:600;
  padding:8px 14px;border-radius:8px;
  transition:var(--tr);position:relative;letter-spacing:.3px;
}
.nav-links a::after{
  content:'';position:absolute;bottom:4px;left:14px;right:14px;height:2px;
  background:linear-gradient(90deg,var(--blue),var(--blue-light));
  border-radius:2px;transform:scaleX(0);transition:var(--tr);
}
.nav-links a:hover{color:var(--blue)}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-links a.active{color:var(--blue)}
.nav-links a.active::after{transform:scaleX(1)}

.btn-nav-cta{
  background:linear-gradient(135deg,var(--blue),var(--blue-light));
  color:#fff!important;font-weight:700!important;
  padding:10px 22px!important;border-radius:50px!important;
  box-shadow:0 4px 14px rgba(26,111,196,0.3);
  transition:var(--tr)!important;text-decoration:none!important;
}
.btn-nav-cta::after{display:none!important}
.btn-nav-cta:hover{
  background:linear-gradient(135deg,var(--magenta),#e91e8c)!important;
  transform:translateY(-1px);box-shadow:0 6px 20px rgba(199,21,133,0.35)!important;
}

.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;background:none;border:none}
.hamburger span{display:block;width:24px;height:2.5px;background:var(--blue);border-radius:2px;transition:var(--tr)}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── DROPDOWN MENU ── */
.nav-item{position:relative;display:inline-block}
.nav-links .dropdown-trigger{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--text);font-family:'Montserrat',sans-serif;font-size:13px;font-weight:600;padding:8px 14px;border-radius:8px;transition:all 0.3s ease;position:relative;letter-spacing:.3px}
.nav-links .dropdown-trigger:hover{color:var(--blue);background:rgba(26,111,196,0.05)}
.dropdown-trigger::before{content:'▼';font-size:8px;transition:transform 0.3s ease;transform:rotate(0deg);display:inline-block}
.nav-item.open .dropdown-trigger::before{transform:rotate(180deg);color:var(--blue)}
.nav-item.open .dropdown-trigger{color:var(--blue)}
.dropdown-menu{position:absolute;top:100%;left:0;min-width:200px;background:#fff;border:1px solid #e0e8f7;border-radius:10px;box-shadow:0 10px 30px rgba(26,111,196,0.15);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all 0.3s cubic-bezier(0.4,0,0.2,1);z-index:2000;margin-top:6px;padding:8px 0;display:flex;flex-direction:column}
.nav-item.open .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown-menu a{display:block;padding:12px 18px;color:var(--text);text-decoration:none;font-size:14px;font-weight:500;transition:all 0.2s ease;border-bottom:1px solid #f0f4fa;cursor:pointer}
.dropdown-menu a:last-child{border-bottom:none}
.dropdown-menu a:hover{background:#1a6fc4;color:#fff;padding-left:22px}
.dropdown-menu a::after{display:none!important}

/* ── FOOTER ── */
footer{
  background:#0d1a2e;
  color:#c8d4e8;
  padding:70px 40px 0;
  width:100%;
  margin-top:auto;
}
.footer-grid{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:50px;
  padding-bottom:50px;
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.footer-brand p{font-size:14px;color:#8a9ab5;line-height:1.8;margin:16px 0 22px}
.footer-social{display:flex;gap:10px}
.social-btn{
  width:36px;height:36px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,0.07);transition:var(--tr);
}
.social-btn:hover{background:var(--blue);transform:translateY(-2px)}
.social-btn svg{width:16px;height:16px;fill:#c8d4e8}
.footer-col h4{
  font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;
  color:#fff;text-transform:uppercase;letter-spacing:1px;margin-bottom:20px;
  position:relative;padding-bottom:10px;
}
.footer-col h4::after{
  content:'';position:absolute;bottom:0;left:0;width:28px;height:2px;
  background:linear-gradient(90deg,var(--blue),var(--blue-light));border-radius:2px;
}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:10px}
.footer-col ul li a{color:#8a9ab5;text-decoration:none;font-size:14px;transition:var(--tr)}
.footer-col ul li a:hover{color:var(--blue-light)}
.footer-contact-item{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px;font-size:14px;color:#8a9ab5}
.footer-contact-icon{color:var(--blue-light);flex-shrink:0;margin-top:1px}
.footer-bottom{
  max-width:1200px;margin:0 auto;
  padding:22px 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-size:13px;color:#5a6a8a;
}
.footer-bottom a{color:#5a6a8a;text-decoration:none;transition:var(--tr)}
.footer-bottom a:hover{color:var(--blue-light)}

/* ── RESPONSIVE ── */
@media(max-width:768px){
  #navbar{padding:12px 20px}
  .nav-links{display:none;position:fixed;top:74px;left:0;right:0;max-height:calc(100vh - 74px);background:#fff;flex-direction:column;padding:16px 20px 24px;gap:6px;overflow-y:auto;border-radius:0 0 20px 20px;box-shadow:0 16px 40px rgba(13,20,40,0.18)}
  .nav-links.open{display:flex}
  .nav-links a{width:100%;padding:12px 16px}
  .hamburger{display:flex}
  .footer-grid{grid-template-columns:1fr 1fr;gap:40px}

  /* Sottomenu "Corsi": su mobile diventa una fisarmonica inline invece di un
     riquadro flottante in position:absolute (che su touch restava bloccato
     aperto/vuoto e rompeva il menu). */
  .nav-item{position:static!important;display:block!important;width:100%}
  .nav-item .dropdown-trigger{width:100%;padding:12px 16px;justify-content:center}
  .dropdown-menu{
    position:static!important;top:auto!important;left:auto!important;
    opacity:1!important;visibility:visible!important;transform:none!important;
    min-width:0!important;width:100%;border:none!important;box-shadow:none!important;
    margin-top:0!important;padding:0!important;
    max-height:0;overflow:hidden;
    transition:max-height .3s ease,padding .3s ease;
  }
  .nav-item.open .dropdown-menu{max-height:500px!important;padding:4px 0 8px 0!important}
  .dropdown-menu a{padding:10px 16px!important;border-bottom:none!important;text-align:center}
}
@media(max-width:480px){
  .footer-grid{grid-template-columns:1fr}
}
