﻿@charset "UTF-8";
:root {
  --viewport-max-width: 1280px;
  --foreground: #212121;
  --text-color: var(--foreground);
  --background: white;
  --background-transparent: rgba(255, 255, 255, 0.6);
  --box-background: #f2f2f2;
  --list-marker: #b9b6b6;
  --accent: #faa12f;
  --transition-duration: .4s;
  --gold: calc(100% - calc(100% / 1.62));
  --half-gold: calc(var(--gold) / 2);
  --line: #dadce0;
  --font: -apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Noto Sans", "Helvetica Neue", Helvetica, sans-serif;
  --font-alt-1: 'Source Sans Pro', sans-serif;
  --font-size: 14pt;
  --font-title: var(--font);
  --font-title-size: 2em;
  --font-title-weight: 300;
  --line-height: 1.5em;
  --shadow-level-1: 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 2px 1px -1px rgba(0, 0, 0, 0.12), 0 1px 3px 0 rgba(0, 0, 0, 0.2);
  --mobile-menu-box-shadow: -1px -1px 2px 0px #e4e4e4, 1px 1px 2px 0px #e4e4e4; }

.body-text + iframe {
  margin-top: 1em; }

iframe {
  width: 100%;
  height: 76vh;
  border-radius: 4px;
  box-shadow: var(--shadow-level-1); }
  @media screen and (max-width: 767px) {
    iframe {
      display: none; } }

@media screen and (max-width: 767px) {
  .desk {
    display: none !important; } }

#home-v3 {
  display: grid;
  grid-template-columns: 1fr;
  grid-column-gap: 6em;
  align-items: start;
  padding-bottom: 2em; }
  #home-v3.evis {
    grid-template-columns: 1fr 2fr; }
    #home-v3.evis .grid.presenter.splay > section > div {
      grid-template-columns: repeat(3, 1fr); }
      @media screen and (max-width: 767px) {
        #home-v3.evis .grid.presenter.splay > section > div {
          grid-template-columns: repeat(2, 1fr); } }
  @media screen and (max-width: 767px) {
    #home-v3 {
      grid-template-columns: 1fr !important;
      grid-row-gap: 2em; } }

#page-banner {
  background-position: center center;
  background-size: cover;
  width: 100%;
  height: 42vh;
  margin-bottom: 1em;
  overflow: hidden;
  display: block;
  color-adjust: exact;
  -webkit-print-color-adjust: exact; }
  #page-banner > video {
    width: 100%;
    border: none;
    margin: 0;
    padding: 0;
    display: block; }
  #page-banner.hero {
    height: 80vh; }
  #page-banner.full {
    height: 100vh; }
  #page-banner .page-banner-object {
    width: 100%;
    height: 100%;
    display: block; }
  #viewport.home #page-banner {
    margin-bottom: 0; }
  #viewport.menu #page-banner {
    display: none; }

#orario-lezioni .toolbar {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-column-gap: 1em;
  grid-template-rows: 1fr;
  width: 100%;
  margin-bottom: 1em;
  align-items: stretch; }
  #orario-lezioni .toolbar input {
    width: 100%;
    max-width: 100%;
    white-space: nowrap; }
  #orario-lezioni .toolbar select {
    width: 34em;
    max-width: 100%; }
  #orario-lezioni .toolbar input, #orario-lezioni .toolbar select {
    font-family: inherit;
    font-size: 1em;
    border: 1px solid var(--line);
    border-radius: 2px;
    caret-color: var(--accent);
    background-color: var(--background);
    color: var(--text-color); }
  @media screen and (max-width: 767px) {
    #orario-lezioni .toolbar {
      grid-template-columns: 1fr;
      grid-template-rows: auto auto;
      grid-row-gap: .4em;
      height: auto;
      padding: 1em;
      width: calc(100% - 2em); }
      #orario-lezioni .toolbar select {
        width: 100%; }
      #orario-lezioni .toolbar .toggle {
        display: none; } }

#orario-lezioni section a {
  text-decoration: none; }
  #orario-lezioni section a.doce {
    display: grid;
    grid-template-columns: auto 1fr;
    height: 1em;
    align-items: center;
    grid-column-gap: 0.2em;
    padding: 0.4em 0.1em; }
    #orario-lezioni section a.doce svg {
      width: 1.1em;
      fill: #5C5E9B;
      stroke: transparent;
      transform: translatey(0.08em); }

#orario-lezioni.affs > section {
  grid-template-columns: repeat(13, 2.4em) 1fr repeat(5, 3em) repeat(6, 3.4em); }
  #orario-lezioni.affs > section .aff {
    display: flex; }

#orario-lezioni .anno {
  grid-column: 1/-1;
  text-align: center;
  padding: .4em 0; }

#orario-lezioni > section {
  display: grid;
  grid-template-columns: 1fr repeat(5, 3em) repeat(6, 3.4em);
  width: 100%;
  grid-template-rows: 1fr;
  background-color: var(--box-background);
  font-size: .8rem; }
  #orario-lezioni > section.header {
    position: sticky;
    top: -1px; }
  #orario-lezioni > section > div, #orario-lezioni > section header {
    padding: .4em .4em;
    text-transform: lowercase;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--background);
    border-radius: 0;
    line-height: normal; }
  #orario-lezioni > section .sem, #orario-lezioni > section .sett {
    text-transform: lowercase; }
  #orario-lezioni > section header {
    font-weight: 600; }
  #orario-lezioni > section div.ins {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    flex-wrap: wrap; }
    #orario-lezioni > section div.ins p {
      font-size: 1em;
      margin: 0;
      font-weight: bold; }
    #orario-lezioni > section div.ins aside {
      font-size: .9em;
      line-height: 1em;
      background-color: #a7a1a1;
      color: white;
      padding: .4em .4em .4em .4em;
      border-radius: .2em;
      margin-top: .2em;
      white-space: nowrap;
      font-weight: bold; }
  #orario-lezioni > section .or-mob {
    display: none;
    padding-top: .6em; }
    #orario-lezioni > section .or-mob .or {
      display: grid;
      grid-template-columns: 3.5em 4em 2em 1fr;
      grid-column-gap: .4em;
      text-align: left; }
      #orario-lezioni > section .or-mob .or .sem, #orario-lezioni > section .or-mob .or .sett {
        display: grid;
        text-transform: lowercase; }
  #orario-lezioni > section .aff {
    display: none; }
  #orario-lezioni > section .tipo {
    text-transform: uppercase; }
  #orario-lezioni > section header, #orario-lezioni > section .or, #orario-lezioni > section .sem, #orario-lezioni > section .sett {
    text-align: center; }
  @media screen and (max-width: 767px) {
    #orario-lezioni > section {
      grid-template-columns: 1fr 2em 2em 2em;
      background-color: var(--box-background);
      margin-bottom: .2em;
      border-radius: 2px; }
      #orario-lezioni > section .anno {
        grid-column-end: span 3; }
      #orario-lezioni > section.header, #orario-lezioni > section header, #orario-lezioni > section .sem, #orario-lezioni > section .sett {
        display: none; }
      #orario-lezioni > section > div, #orario-lezioni > section header {
        border-color: transparent; }
      #orario-lezioni > section .tipo, #orario-lezioni > section .cfa, #orario-lezioni > section .cfahh {
        align-self: baseline; }
      #orario-lezioni > section > .or {
        display: none; }
      #orario-lezioni > section .or-mob {
        display: grid;
        grid-row-gap: .2em; } }

/*
	<div class="switch">
						<label>1° sem.</label> <!-- opzionale -->
						<input type="checkbox" name="sem1" id="sem1" ng-model="q.sem1" />
						<label for="sem1"></label>
					</div>
*/
.switch > label {
  text-align: center; }

.switch > input[type=checkbox] {
  display: none !important; }
  .switch > input[type=checkbox] + label {
    cursor: pointer;
    align-items: center;
    display: flex;
    width: 2em;
    height: 1em;
    border-radius: 1em;
    border: 1px solid var(--line);
    position: relative;
    transition: all .1s ease;
    margin-top: 6px;
    margin-bottom: 6px;
    background-color: var(--box-background); }
    .switch > input[type=checkbox] + label:after {
      content: "";
      background-color: white;
      width: .8em;
      height: .8em;
      position: relative;
      border-radius: .9em;
      background-color: var(--background);
      transition: all .2s ease-in-out;
      border: 1px solid var(--background);
      box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); }
  .switch > input[type=checkbox]:checked + label {
    background-color: transparent; }
    .dark .switch > input[type=checkbox]:checked + label {
      background-color: rgba(255, 255, 255, 0.5);
      border-color: transparent; }
    .switch > input[type=checkbox]:checked + label:after {
      transform: translateX(110%);
      background-color: var(---box-background); }
  .switch > input[type=checkbox]:disabled + label {
    background-color: rgba(0, 0, 0, 0.1);
    cursor: not-allowed; }
    .switch > input[type=checkbox]:disabled + label:after {
      background-color: rgba(0, 0, 0, 0.02); }

.grid {
  display: grid;
  grid-column-gap: .25em;
  grid-row-gap: .25em; }
  .grid.grid-2 {
    grid-template-columns: repeat(2, 1fr); }
    @media screen and (max-width: 767px) {
      .grid.grid-2 {
        grid-template-columns: 1fr;
        grid-row-gap: 0; } }
    @media print {
      .grid.grid-2 {
        grid-template-columns: 1fr;
        width: 88%;
        margin: 0 auto; } }
  .grid.grid-3 {
    grid-template-columns: repeat(3, 1fr); }
    @media screen and (max-width: 767px) {
      .grid.grid-3 {
        grid-template-columns: 1fr;
        grid-row-gap: 0; } }
    @media print {
      .grid.grid-3 {
        grid-template-columns: 1fr;
        width: 88%;
        margin: 0 auto; } }
  .grid.grid-4 {
    grid-template-columns: repeat(4, 1fr); }
    @media screen and (max-width: 767px) {
      .grid.grid-4 {
        grid-template-columns: 1fr;
        grid-row-gap: 0; } }
    @media print {
      .grid.grid-4 {
        grid-template-columns: 1fr;
        width: 88%;
        margin: 0 auto; } }
  .grid.grid-5 {
    grid-template-columns: repeat(5, 1fr); }
    @media screen and (max-width: 767px) {
      .grid.grid-5 {
        grid-template-columns: 1fr;
        grid-row-gap: 0; } }
    @media print {
      .grid.grid-5 {
        grid-template-columns: 1fr;
        width: 88%;
        margin: 0 auto; } }
  .grid.grid-6 {
    grid-template-columns: repeat(6, 1fr); }
    @media screen and (max-width: 767px) {
      .grid.grid-6 {
        grid-template-columns: 1fr;
        grid-row-gap: 0; } }
    @media print {
      .grid.grid-6 {
        grid-template-columns: 1fr;
        width: 88%;
        margin: 0 auto; } }
  .grid.grid-7 {
    grid-template-columns: repeat(7, 1fr); }
    @media screen and (max-width: 767px) {
      .grid.grid-7 {
        grid-template-columns: 1fr;
        grid-row-gap: 0; } }
    @media print {
      .grid.grid-7 {
        grid-template-columns: 1fr;
        width: 88%;
        margin: 0 auto; } }
  .grid.grid-8 {
    grid-template-columns: repeat(8, 1fr); }
    @media screen and (max-width: 767px) {
      .grid.grid-8 {
        grid-template-columns: 1fr;
        grid-row-gap: 0; } }
    @media print {
      .grid.grid-8 {
        grid-template-columns: 1fr;
        width: 88%;
        margin: 0 auto; } }
  .grid.grid-9 {
    grid-template-columns: repeat(9, 1fr); }
    @media screen and (max-width: 767px) {
      .grid.grid-9 {
        grid-template-columns: 1fr;
        grid-row-gap: 0; } }
    @media print {
      .grid.grid-9 {
        grid-template-columns: 1fr;
        width: 88%;
        margin: 0 auto; } }
  .grid.grid-10 {
    grid-template-columns: repeat(10, 1fr); }
    @media screen and (max-width: 767px) {
      .grid.grid-10 {
        grid-template-columns: 1fr;
        grid-row-gap: 0; } }
    @media print {
      .grid.grid-10 {
        grid-template-columns: 1fr;
        width: 88%;
        margin: 0 auto; } }
  .grid.grid-11 {
    grid-template-columns: repeat(11, 1fr); }
    @media screen and (max-width: 767px) {
      .grid.grid-11 {
        grid-template-columns: 1fr;
        grid-row-gap: 0; } }
    @media print {
      .grid.grid-11 {
        grid-template-columns: 1fr;
        width: 88%;
        margin: 0 auto; } }
  .grid > header {
    grid-column: 1 / -1; }
  .grid p {
    margin: 0; }
  .grid .box {
    background-color: var(--box-background);
    display: flex;
    padding: .4em;
    border-radius: 2px;
    flex-direction: column;
    align-content: flex-start;
    justify-content: flex-start;
    align-items: flex-start;
    border: 1px solid var(--background);
    overflow-y: hidden; }
    .grid .box > a {
      display: flex;
      flex-direction: column;
      align-content: flex-start;
      justify-content: flex-start;
      align-items: flex-start; }
    .grid .box > p {
      font-size: .85em;
      line-height: 1.3em;
      opacity: .85; }
    @media print {
      .grid .box {
        padding: 0; } }
    .grid .box.padded {
      padding: .4em; }
    .grid .box.full-row {
      grid-column: 1/-1; }
    .grid .box.center {
      align-items: center;
      justify-content: center; }
    .grid .box time {
      font-size: .8em;
      opacity: .8;
      line-height: 1em; }
    .grid .box header {
      font-weight: 500;
      font-size: 1rem;
      font-family: var(--font-title);
      line-height: 1.2em;
      margin: .2em 0 0 0; }
      @media screen and (max-width: 767px) {
        .grid .box header {
          font-size: 1.1em; } }
      @media screen and (max-width: 767px) {
        .grid .box header:not(:last-child) {
          margin-bottom: 1em; } }
    .grid .box aside {
      font-size: .85rem;
      line-height: 1.3em;
      opacity: .7;
      margin-top: .4rem; }

.grid.presenter {
  display: grid;
  grid-template-columns: 0 1fr 0;
  grid-column-gap: 0;
  grid-row-gap: 0;
  overflow-x: hidden; }
  @media screen and (max-width: 767px) {
    .grid.presenter {
      grid-template-columns: 1fr; } }
  .grid.presenter a {
    text-decoration: none !important; }
  .grid.presenter > nav {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: 1fr auto; }
    .grid.presenter > nav header {
      font-size: 2em;
      margin-bottom: 0.4em; }
      @media screen and (max-width: 767px) {
        .grid.presenter > nav header {
          font-size: 1.2em;
          font-weight: 400; } }
    @media screen and (max-width: 767px) {
      .grid.presenter > nav {
        padding: 0 0; } }
  .grid.presenter .scroller, .grid.presenter .toolbar {
    opacity: .5; }
  .grid.presenter .scroller {
    visibility: visible;
    display: block;
    width: 2rem;
    fill: var(--foreground);
    stroke: var(--foreground);
    cursor: pointer;
    transform: scale(1);
    transition: all .4s ease;
    height: calc(100% - .85rem);
    background-color: var(--background); }
    .grid.presenter .scroller.initium {
      transform: translateX(0); }
      .grid.presenter .scroller.initium.hidden {
        transform: translateX(-100%); }
    .grid.presenter .scroller.finis {
      transform: translateX(-100%); }
      .grid.presenter .scroller.finis.hidden {
        transform: translateX(0); }
    @media screen and (max-width: 767px) {
      .grid.presenter .scroller {
        display: none; } }
  .grid.presenter .roller {
    width: auto;
    overflow-y: hidden;
    overflow-x: auto;
    user-select: none;
    scroll-behavior: smooth;
    display: block; }
    .grid.presenter .roller > div {
      display: grid;
      flex-grow: 1;
      grid-template-rows: 1fr 1fr;
      grid-auto-columns: 18rem;
      grid-auto-rows: 9rem;
      grid-auto-flow: column;
      padding-bottom: .2em;
      user-select: none;
      scroll-behavior: smooth; }
      .grid.presenter .roller > div .descr {
        grid-row-end: span 2; }
      @media screen and (max-width: 767px) {
        .grid.presenter .roller > div {
          grid-auto-columns: 80vw; } }
  .grid.presenter + .grid {
    margin-top: 2em; }
  .grid.presenter.splay {
    grid-template-columns: 1fr; }
    .grid.presenter.splay nav {
      padding: 0 0; }
    .grid.presenter.splay .scroller {
      display: none; }
    .grid.presenter.splay .roller > div {
      grid-template-columns: repeat(5, 1fr);
      grid-auto-flow: row;
      grid-auto-rows: auto; }
      @media screen and (max-width: 767px) {
        .grid.presenter.splay .roller > div {
          grid-template-columns: 1fr; } }
  .grid.presenter.list {
    grid-template-columns: 1fr;
    font-size: 1rem; }
    .grid.presenter.list nav {
      margin-bottom: 1em; }
    .grid.presenter.list .scroller {
      display: none; }
    .grid.presenter.list .roller > div {
      display: block;
      column-count: 3;
      column-fill: balance;
      orphans: 3;
      widows: 3;
      column-gap: 4em;
      column-rule: 1px solid var(--box-background); }
      @media screen and (max-width: 767px) {
        .grid.presenter.list .roller > div {
          column-count: 1; } }
    .grid.presenter.list .roller .box {
      background-color: var(--background);
      color: var(--foreground);
      padding: 0;
      padding-bottom: 1em;
      -webkit-break-inside: avoid-column;
      break-inside: avoid-column; }
      .grid.presenter.list .roller .box:last-child {
        padding-bottom: 0; }
      .grid.presenter.list .roller .box header {
        font-family: var(--font-title);
        font-weight: var(--font-title-weight);
        color: var(--foreground);
        font-size: 1.2em;
        margin: 0; }
      .grid.presenter.list .roller .box time {
        font-size: .7em; }
      .grid.presenter.list .roller .box p {
        font-size: .8em; }
      .grid.presenter.list .roller .box aside {
        margin-top: 0; }

.grid.ps {
  width: 100%;
  grid-template-columns: 1fr 2em 2em;
  font-size: .85em;
  grid-column-gap: 0;
  grid-row-gap: 0; }
  .grid.ps .box {
    justify-content: center; }
    .grid.ps .box.center {
      font-size: .8em; }
    .grid.ps .box p {
      font-size: 1em; }

.col-1 {
  column-count: 1;
  width: 99.9%; }
  .col-1 > *:first-child {
    margin-top: 0;
    padding-top: 0; }
  @media screen and (max-width: 767px) {
    .col-1 {
      column-count: 1;
      width: 100%; } }
  @media print {
    .col-1 {
      column-count: 2;
      width: 100%; } }

.col-2 {
  column-count: 2;
  width: 99.9%; }
  .col-2 > *:first-child {
    margin-top: 0;
    padding-top: 0; }
  @media screen and (max-width: 767px) {
    .col-2 {
      column-count: 1;
      width: 100%; } }
  @media print {
    .col-2 {
      column-count: 2;
      width: 100%; } }

.col-3 {
  column-count: 3;
  width: 99.9%; }
  .col-3 > *:first-child {
    margin-top: 0;
    padding-top: 0; }
  @media screen and (max-width: 767px) {
    .col-3 {
      column-count: 1;
      width: 100%; } }
  @media print {
    .col-3 {
      column-count: 2;
      width: 100%; } }

.col-4 {
  column-count: 4;
  width: 99.9%; }
  .col-4 > *:first-child {
    margin-top: 0;
    padding-top: 0; }
  @media screen and (max-width: 767px) {
    .col-4 {
      column-count: 1;
      width: 100%; } }
  @media print {
    .col-4 {
      column-count: 2;
      width: 100%; } }

.pdfcontent {
  max-width: 100% !important;
  height: 100vh;
  width: 100%;
  display: none;
  border: none;
  margin: 0;
  padding: 0; }
  @media screen and (max-width: 767px) {
    .pdfcontent {
      height: auto;
      display: block; } }
  @media print {
    .pdfcontent {
      display: none; } }
  .pdfcontent .mobile-download {
    display: block;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: center;
    justify-content: center;
    align-items: center;
    background-color: var(--box-background);
    padding: 2rem;
    border-radius: .8em;
    margin: 2rem auto;
    width: 84vw; }
    .pdfcontent .mobile-download h4 {
      margin: 0;
      font-size: 1.2em; }
    @media screen and (max-width: 767px) {
      .pdfcontent .mobile-download {
        display: flex; } }

.toggle {
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  cursor: pointer; }
  .toggle > label {
    text-align: center;
    line-height: 1em;
    cursor: pointer; }
    .toggle > label + label {
      padding-top: .4em;
      font-size: .6em; }
  .toggle > input[type=checkbox] {
    display: none !important; }
    .toggle > input[type=checkbox] + label {
      cursor: pointer;
      align-items: center;
      display: flex;
      width: calc(1em * 2);
      height: 1em;
      border-radius: 1em;
      border: 1px solid var(--line);
      position: relative;
      transition: all .2s ease; }
      .toggle > input[type=checkbox] + label:after {
        content: "";
        width: .7em;
        height: .7em;
        position: relative;
        border-radius: 1em;
        background-color: var(--foreground);
        transition: all .2s ease-in-out;
        display: block;
        border: 1px solid var(--background); }
    .toggle > input[type=checkbox]:checked + label {
      background-color: var(--foreground); }
      .dark .toggle > input[type=checkbox]:checked + label {
        background-color: rgba(255, 255, 255, 0.5);
        border-color: transparent; }
      .toggle > input[type=checkbox]:checked + label:after {
        transform: translateX(1em);
        background-color: var(--background); }
    .toggle > input[type=checkbox]:disabled + label {
      background-color: rgba(0, 0, 0, 0.1);
      cursor: not-allowed; }
      .toggle > input[type=checkbox]:disabled + label:after {
        background-color: rgba(0, 0, 0, 0.02); }

.toolbar {
  display: flex;
  flex-direction: row;
  align-content: center;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap; }
  .toolbar.small {
    font-size: .5em; }
  .toolbar > *:not(input), .toolbar .toolbar-item:not(input) {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: row;
    padding: 0 .2em;
    flex-wrap: nowrap;
    white-space: nowrap;
    overflow: hidden;
    max-width: 14em;
    height: 2em;
    max-height: 100%;
    text-overflow: ellipsis;
    text-transform: lowercase;
    cursor: pointer;
    color: var(--foreground);
    fill: var(--foreground);
    stroke: var(--foreground); }
    .toolbar > *:not(input).box, .toolbar .toolbar-item:not(input).box {
      border: 1px solid var(--line);
      padding: .8em .4em;
      margin-right: .4em;
      border-radius: 2px; }
      .toolbar > *:not(input).box:last-child, .toolbar .toolbar-item:not(input).box:last-child {
        margin-right: 0; }
    .toolbar > *:not(input).active, .toolbar .toolbar-item:not(input).active {
      color: var(--accent);
      fill: var(--accent);
      stroke: var(--accent); }
  @media print {
    .toolbar {
      display: none !important; } }
  @media screen and (max-width: 767px) {
    .toolbar {
      grid-column-gap: .6em; } }
