

  /* ===========================

     MASTER CURRICULUM (Elementor)

     Scoped styles: .mc-wrap ...

     =========================== */



  .mc-wrap{

    --bg: #f7f8fb;

    --card: #ffffff;

    --text: #111827;

    --muted: #6b7280;

    --line: #e5e7eb;

    --accent: #2563eb;

    --accent-2:#0ea5e9;

    --shadow: 0 10px 30px rgba(17,24,39,.08);

    --radius: 18px;

    --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace;

    --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";



    font-family: var(--sans);

    color: var(--text);

  }



  .mc-hero{

    padding: 42px 20px 18px;

    max-width: 1180px;

    margin: 0 auto;

    background:

      radial-gradient(1200px 700px at 85% 10%, rgba(37,99,235,.10), transparent 55%),

      radial-gradient(900px 600px at 10% 0%, rgba(14,165,233,.10), transparent 55%),

      var(--bg);

    border-radius: 24px;

    border: 1px solid var(--line);

    box-shadow: var(--shadow);

  }



  .mc-topbar{

    display:flex;

    align-items:flex-start;

    justify-content:space-between;

    gap:16px;

    flex-wrap:wrap;

  }



  .mc-brand{display:flex; flex-direction:column; gap:10px;}



  .mc-badge{

    display:inline-flex; align-items:center; gap:8px;

    padding:8px 12px;

    border:1px solid var(--line);

    border-radius:999px;

    background: rgba(255,255,255,.75);

    backdrop-filter: blur(8px);

    width: fit-content;

    color: var(--muted);

    font-size: 13px;

  }

  .mc-badge b{color: var(--text); font-weight: 650}



  .mc-title{

    margin:0;

    font-size: clamp(26px, 3vw, 40px);

    letter-spacing: -0.02em;

    line-height:1.1;

  }



  .mc-subtitle{

    margin: 8px 0 0;

    max-width: 80ch;

    color: var(--muted);

    font-size: 15.5px;

    line-height: 1.45;

  }



  .mc-meta{

    display:flex;

    gap:10px;

    flex-wrap:wrap;

    justify-content:flex-end;

    align-items:center;

  }



  .mc-pill{

    border:1px solid var(--line);

    background: rgba(255,255,255,.75);

    border-radius: 999px;

    padding: 10px 12px;

    font-size: 13px;

    color: var(--muted);

    backdrop-filter: blur(8px);

    display:flex;

    gap:8px;

    align-items:center;

  }

  .mc-pill span{

    font-family: var(--mono);

    color: var(--text);

    font-size: 12.5px;

  }

  .mc-badge-linkall{

    cursor:pointer;

  }

  

  .mc-badge-linkall:hover{

    text-decoration:none;

    border-color: rgba(37,99,235,.28);

  }

  

  .mc-badge-linkall:hover span,

  .mc-badge-linkall:hover b{

    color: var(--accent);

  }

  /* NEWS */

  .sm2-news{

    border:1px solid rgba(14,165,233,.55);

    background: linear-gradient(135deg, rgba(14,165,113,.14), rgba(124,58,237,.10));

    border-left: 6px solid var(--accent);

    border-radius: 16px;

    padding: 12px 14px;

    box-shadow: 0 10px 26px rgba(14,165,233,.12);

    margin-top: 12px;

  }

  .sm2-news-h{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:10px;

    margin-bottom: 6px;

  }

  .sm2-news-title{

    display:inline-flex;

    align-items:center;

    gap:10px;

    font-weight: 800;

    letter-spacing: .2px;

  }

  .sm2-news-dot{

    width:10px;height:10px;border-radius:999px;

    background: linear-gradient(135deg, var(--accent), var(--accent2));

    box-shadow: 0 0 0 4px rgba(14,165,233,.14);

  }

  .sm2-news-tag{

    padding:6px 10px;

    border-radius:999px;

    border:1px solid rgba(17,24,39,.10);

    background: rgba(255,255,255,.75);

    color: var(--muted);

    font-size: 12.5px;

    font-weight: 700;

    white-space:nowrap;

  }

  .sm2-news p{

    margin:0;

    color: var(--text);

    font-size: 14.5px;

  }

  .sm2-news b{ font-weight: 800; 

      

  }




  .mc-controls{

    max-width: none;

    margin: 6px 0 6px;

    padding: 0;

    display: flex;

    gap: 10px;

    flex-wrap: wrap;

    justify-content: flex-end; /* ← tutto a destra */

  }



  .mc-btn{

    appearance: none;

    border: 1px solid #e5e7eb;

    background: rgba(255,255,255,.8);

    backdrop-filter: blur(6px);

    border-radius: 999px;

    padding: 10px 16px;

    font-size: 13px;

    cursor: pointer;

    color: #111827;

    transition: all .15s ease;

  }



  .mc-btn:hover{

    background: rgba(37,99,235,.08);

    border-color: #c7d2fe;

  }




.partners-section-title{

  font-family: inherit;

  margin: 0 0 14px;

  font-weight: 700;

  line-height: 1.15;

}



.partners-card{

  background:#fff;

  border:1px solid rgba(0,0,0,.12);

  border-radius:14px;

  padding:18px;

}



.partners-grid{

  display:grid;

  grid-template-columns:repeat(5, minmax(0,1fr));

  gap:18px;

  align-items:stretch;

}



@media (max-width:1024px){

  .partners-grid{ grid-template-columns:repeat(3,1fr); }

}

@media (max-width:767px){

  .partners-grid{ grid-template-columns:repeat(2,1fr); }

}



.partner-logo-card{

  display:flex;

  align-items:center;

  justify-content:center;

  min-height:130px;

  padding:18px;

  border:1px solid rgba(0,0,0,.12);

  border-radius:16px;

  background:#fff;

  text-decoration:none;

  transition:transform .12s ease, box-shadow .12s ease;

}



.partner-logo-card:hover{

  transform:translateY(-2px);

  box-shadow:0 10px 22px rgba(0,0,0,.08);

}



.partner-logo-wrap{

  width:100%;

  height:84px;

  display:flex;

  align-items:center;

  justify-content:center;

  overflow:hidden;

  border-radius:12px;

  background:#fff;

}



.partner-logo{

  max-width:100%;

  max-height:100%;

  width:auto;

  height:auto;

  display:block;

  object-fit:contain;

}




    :root{

      --bg: #f7f8fb;

      --card: #ffffff;

      --text: #111827;

      --muted: #6b7280;

      --line: #e5e7eb;

      --accent: #2563eb;

      --accent-2:#0ea5e9;

      --shadow: 0 10px 30px rgba(17,24,39,.08);

      --radius: 18px;

      --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace;

      --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";

    }

    *{box-sizing:border-box}

    body{

      margin:0;

      font-family: var(--sans);

      color: var(--text);

      background:

        radial-gradient(1200px 700px at 85% 10%, rgba(37,99,235,.10), transparent 55%),

        radial-gradient(900px 600px at 10% 0%, rgba(14,165,233,.10), transparent 55%),

        var(--bg);

    }

    a{color:var(--accent); text-decoration:none}

    a:hover{text-decoration:underline}

    header{

      padding: 42px 20px 18px;

      max-width: 1180px;

      margin: 0 auto;

    }

    .topbar{

      display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap;

    }

    .brand{display:flex; flex-direction:column; gap:10px;}

    .badge{

      display:inline-flex; align-items:center; gap:8px;

      padding:8px 12px;

      border:1px solid var(--line);

      border-radius:999px;

      background: rgba(255,255,255,.75);

      backdrop-filter: blur(8px);

      width: fit-content;

      color: var(--muted);

      font-size: 13px;

    }

    .badge b{color: var(--text); font-weight: 650}

    h1{

      margin:0;

      font-size: clamp(26px, 3vw, 40px);

      letter-spacing: -0.02em;

      line-height:1.1;

    }

    .subtitle{

      margin: 8px 0 0;

      max-width: 80ch;

      color: var(--muted);

      font-size: 15.5px;

      line-height: 1.45;

    }

    .meta{display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; align-items:center;}

    .pill{

      border:1px solid var(--line);

      background: rgba(255,255,255,.75);

      border-radius: 999px;

      padding: 10px 12px;

      font-size: 13px;

      color: var(--muted);

      backdrop-filter: blur(8px);

      display:flex; gap:8px; align-items:center;

    }

    .pill span{font-family: var(--mono); color: var(--text); font-size: 12.5px}

    main{max-width: 1180px; margin: 0 auto; padding: 0 20px 64px;}

    .grid{display:grid; grid-template-columns: 320px 1fr; gap: 18px; align-items:start;}

    @media (max-width: 980px){.grid{grid-template-columns:1fr}.sticky{position: static !important}}

    .card{background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);}

    .card .inner{padding: 16px 16px}

    .toc{padding: 14px 14px;}

    .toc h2{margin: 6px 10px 10px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted);}

    .toc a{

      display:flex; justify-content:space-between; align-items:center;

      padding: 10px 10px; border-radius: 12px; color: var(--text); border: 1px solid transparent;

    }

    .toc a:hover{border-color: var(--line); background: rgba(37,99,235,.04); text-decoration:none;}

    .toc small{color: var(--muted); font-family: var(--mono); font-size: 12px;}

    .sticky{position: sticky; top: 16px;}

    details{border-top: 1px solid var(--line);}

    details:first-of-type{border-top: none}

    summary{

      list-style:none; cursor:pointer;

      padding: 16px 18px;

      display:flex; gap: 14px;

      align-items:flex-start; justify-content:space-between;

    }

    summary::-webkit-details-marker{display:none}

    .m-title{display:flex; flex-direction:column; gap:6px; min-width: 0;}

    .m-title h3{margin:0; font-size: 16px; line-height:1.2; letter-spacing:-.01em;}

    .m-title p{margin:0; color: var(--muted); font-size: 13.5px; line-height:1.35;}

    .tag{

      display:inline-flex; align-items:center; gap:6px;

      padding: 7px 10px;

      border-radius: 999px;

      border: 1px solid var(--line);

      background: rgba(255,255,255,.65);

      color: var(--muted);

      font-size: 12.5px;

      white-space: nowrap;

      font-family: var(--mono);

    }

    .content{

      padding: 0 18px 18px;

      display:grid;

      grid-template-columns: 1.15fr .85fr;

      gap: 14px;

    }

    @media (max-width: 900px){.content{grid-template-columns:1fr}}

    .box{

      border: 1px solid var(--line);

      border-radius: 14px;

      padding: 12px 12px;

      background: rgba(247,248,251,.6);

    }

    .box h4{

      margin: 0 0 8px;

      font-size: 12px;

      text-transform: uppercase;

      letter-spacing: .08em;

      color: var(--muted);

    }

    .box p{margin:0; color: var(--text); font-size: 14px; line-height: 1.55;}

    .scope{display:grid; gap: 10px;}

    .schedule{display:grid; gap: 10px;}

    .field{

      display:flex; flex-direction:column; gap:6px;

      padding: 10px 10px;

      border-radius: 14px;

      border: 1px dashed #cbd5e1;

      background: rgba(255,255,255,.75);

    }

    .field label{

      font-size: 12px;

      color: var(--muted);

      letter-spacing: .06em;

      text-transform: uppercase;

    }

    .field .placeholder{font-family: var(--mono); font-size: 13px; color: #334155;}

    .note{font-size: 12.5px; color: var(--muted); margin-top: 6px;}

    .footer{

      margin-top: 18px;

      padding: 18px;

      color: var(--muted);

      font-size: 13px;

      line-height: 1.5;

      border-top: 1px solid var(--line);

      background: rgba(255,255,255,.7);

      border-radius: var(--radius);

      box-shadow: var(--shadow);

    }

  .status{

    display:inline-flex;

    align-items:center;

    gap:6px;

    margin-left:10px;

    padding:4px 10px;

    border-radius:999px;

    font-size:12px;

    font-weight:800;

    line-height:1;

    border:1px solid rgba(2,6,23,.12);

    background: rgba(248,250,252,.95);

    color:#0b1220;

    vertical-align:middle;

  }

  

  .status.done{

    border-color: rgba(16,185,129,.35);

    background: rgba(16,185,129,.12);

    color: #065f46;

  }

  

  .status.done::before{

    content:"✓";

    font-weight:900;

  }

  .status.next{

    border-color: rgba(249,115,22,.35);   /* orange */

    background: rgba(249,115,22,.12);

    color: #9a3412;

  }

  


/* ===== Grid ===== */

.faculty-grid{

  display:grid;

  grid-template-columns:repeat(3, minmax(0,1fr));

  gap:18px;

}

@media (max-width:1024px){ .faculty-grid{ grid-template-columns:repeat(2,1fr);} }

@media (max-width:767px){ .faculty-grid{ grid-template-columns:1fr;} }



.faculty-card{

  display:flex;

  gap:14px;

  padding:14px;

  border:1px solid rgba(0,0,0,.12);

  border-radius:14px;

  cursor:pointer;

  background:#fff;

  transition:transform .12s ease, box-shadow .12s ease;

}

.faculty-card:hover{

  transform:translateY(-2px);

  box-shadow:0 10px 22px rgba(0,0,0,.08);

}



/* wrapper immagine: soluzione robusta */

.faculty-photo-wrap{

  width:72px;

  height:72px;

  flex:0 0 72px;

  border-radius:16px;

  overflow:hidden;

  background:#f2f2f2;

}



.faculty-photo{

  width:100%;

  height:100%;

  display:block;

  object-fit:cover;

  border-radius:0 !important;

  background:#f2f2f2;

}



.faculty-meta{ min-width:0; }

.faculty-name{ font-weight:700; line-height:1.15; margin:2px 0 4px; }

.faculty-affil{ opacity:.75; font-size:.92em; margin:0 0 8px; }

.faculty-topic{

  display:inline-block;

  font-size:.85em;

  padding:6px 10px;

  border-radius:999px;

  border:1px solid rgba(0,0,0,.12);

  opacity:.9;

}



/* ===== Modal ===== */

.faculty-modal-overlay{

  position:fixed; inset:0;

  background:rgba(0,0,0,.55);

  display:none;

  align-items:center;

  justify-content:center;

  padding:24px;

  z-index:999999;

}

.faculty-modal-overlay.is-open{ display:flex; }



.faculty-modal{

  width:min(920px, 100%);

  background:#fff;

  border-radius:18px;

  overflow:hidden;

  box-shadow:0 30px 80px rgba(0,0,0,.25);

  outline:none;

  max-height: calc(100vh - 48px);

}



.faculty-modal-header{

  display:flex;

  justify-content:space-between;

  align-items:flex-start;

  padding:18px 18px 10px;

  border-bottom:1px solid rgba(0,0,0,.08);

}

.faculty-modal-title{ margin:0; font-size:1.25rem; }

.faculty-modal-sub{ margin:4px 0 0; opacity:.75; }

.faculty-modal-close{

  border:0; background:transparent; font-size:26px; line-height:1;

  cursor:pointer; padding:4px 8px;

}

.faculty-modal-body{

  display:grid;

  grid-template-columns: 220px 1fr;

  gap:18px;

  padding:18px;

  max-height: calc(100vh - 110px);

  overflow:auto;

}

@media (max-width:767px){

  .faculty-modal-body{ grid-template-columns:1fr; }

}



/* wrapper immagine modale */

.faculty-modal-photo-wrap{

  width:220px;

  height:220px;

  border-radius:16px;

  overflow:hidden;

  background:#f2f2f2;

}

@media (max-width:767px){

  .faculty-modal-photo-wrap{

    width:100%;

    max-width:220px;

  }

}



.faculty-modal-photo{

  width:100%;

  height:100%;

  display:block;

  object-fit:cover;

  border-radius:0 !important;

  background:#f2f2f2;

}



.faculty-modal-topic{ margin-top:10px; }

.faculty-modal-bio{ margin:0; line-height:1.55; white-space:pre-line; }

.faculty-links{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }

.faculty-link{

  display:inline-block;

  padding:8px 12px;

  border-radius:10px;

  border:1px solid rgba(0,0,0,.12);

  text-decoration:none;

}



/* opzionale: blocco hero */

.mc-hero{

  padding:42px 20px 18px;

  max-width:1180px;

  margin:0 auto;

  background:

    radial-gradient(1200px 700px at 85% 10%, rgba(37,99,235,.10), transparent 55%),

    radial-gradient(900px 600px at 10% 0%, rgba(14,165,233,.10), transparent 55%),

    var(--bg);

  border-radius:24px;

  border:1px solid var(--line);

  box-shadow:var(--shadow);

}



.faculty-section-title{

  font-family:inherit;

  margin:0 0 14px;

  font-weight:700;

  line-height:1.15;

}

