@layer didactics;

@layer didactics {
  #page-content {
    --didactics-border: light-dark(#d7d7d7, #616568);
    --didactics-surface: light-dark(#f1f1f1, #292d30);
    --didactics-muted: light-dark(#525252, #c9c9c9);
    --didactics-hover: light-dark(#e7e7e7, #33383c);
  }

  .didactics-year {
    color: var(--didactics-muted);
    font-size: 0.9rem;
    margin: 0 0 0.35rem;
  }

  .didactics-current-year-warning {
    background: var(--didactics-surface);
    border-inline-start: 0.25rem solid var(--didactics-border);
    color: var(--pagina-testo);
    margin: 0.9rem 0 0;
    max-width: 62ch;
    padding: 0.7rem 0.9rem;
  }

  .didactics-directory > ul,
  .didactics-teaching-directory > ul,
  .didactics-teachings > ul,
  .didactics-affiliations > ul,
  .didactics-credits > ul,
  .didactics-study-group > ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .didactics-directory > ul {
    columns: 2 19rem;
    column-gap: 2rem;
  }

  .didactics-directory li {
    break-inside: avoid;
    border-block-start: 1px solid var(--didactics-border);
  }

  .didactics-directory a {
    display: block;
    font-size: 1.1rem;
    padding: 0.7rem 0.25rem;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.16em;
  }

  .didactics-teachings {
    margin-top: 2em;

    & ul {
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      list-style-type: none;
    }

    & > div {
      display: grid;
      column-gap: 1em;
      grid-template-columns: minmax(max-content, 26ch) auto;

      & a {
        padding: 0;
      }
    }
  }

    .didactics-teaching-directory li,
    .didactics-teachings li {
      line-height: 1.8;
    }

      .didactics-teaching-directory li > span,
      .didactics-teachings li > span {
        color: var(--didactics-muted);
        font-size: 0.9rem;
        white-space: nowrap;
      }

    .didactics-teaching-directory a,
    .didactics-teachings a,
    .didactics-affiliations a,
    .didactics-study-years a {
      text-decoration: none;
      color: inherit;
    }

  .didactics-detail {
    margin-bottom:.8rem;
    & p {
      margin: 0;
    }

    & a {
      display: inline-block;
      text-decoration: none;
      color: inherit;
      font-weight: 700;
    }
  }

  .didactics-text.course {
    column-count: 3;

    & p {
      margin: 0;

      &:empty {
        display: none;
      }
    }
  }


  .didactics-facts {
    border-block: 1px solid var(--didactics-border);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    margin: 0;
  }

    .didactics-facts > div {
      border-inline-end: 1px solid var(--didactics-border);
      padding: 0.85rem 1rem 0.85rem 0;
    }

    .didactics-facts dt {
      color: var(--didactics-muted);
      font-size: 0.82rem;
      margin-bottom: 0.2rem;
    }

    .didactics-facts dd {
      margin: 0;
    }

  .didactics-text > h2,
  .didactics-teachings > h2,
  .didactics-schedule > h2,
  .didactics-affiliations > h2,
  .didactics-study-plan > h2,
  .didactics-credits > h2 {
    font-family: var(--font-heading-secondary);
    font-size: 1.55rem;
    line-height: 1.2;
    margin: 1em 0 .5em 0;
    text-wrap: balance;
  }

  .didactics-teachings > p {
    color: var(--didactics-muted);
  }

  .didactics-schedule > div {
    max-inline-size: 100%;
    overflow-x: auto;
  }

  .didactics-schedule table {
    border-collapse: collapse;
    inline-size: 100%;
    min-inline-size: 42rem;
  }

  .didactics-schedule :is(th, td) {
    border: 1px solid var(--didactics-border);
    padding: 0.55rem 0.65rem;
    text-align: start;
    vertical-align: top;
  }

  .didactics-schedule th {
    background: var(--didactics-surface);
    font-family: var(--font-heading-secondary);
  }



  .didactics-affiliations {

    & > ul,
    & > div {
      align-items: baseline;
      display: grid;
      grid-template-columns: fit-content(26ch) minmax(0, 1fr);
      gap: .5rem 2rem;
      overflow-wrap: anywhere;
      list-style: none;
      margin: 0;
      padding: 0;
    }

    & li {
      display: contents;
    }

    & span {
      color: var(--didactics-muted);
      font-size: 0.9rem;
    }
  }

  .didactics-study-years {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  }

    .didactics-study-years > section {
      min-inline-size: 0;
    }

      .didactics-study-years > section > h3 {
        font-family: var(--font-heading-secondary);
        font-size: 1.22rem;
        line-height: 1.2;
        margin: 0 0 0.8rem;
      }

  .didactics-study-years li {
    align-items: baseline;
    background: var(--didactics-surface);
    border-block-end: 1px solid var(--didactics-border);
    display: grid;
    gap: 0.4rem;
    grid-template-columns: minmax(0, 1fr) auto auto;
    padding: 0.45rem 0.55rem;
  }

    .didactics-study-years li > span {
      color: var(--didactics-muted);
      font-size: 0.85rem;
      white-space: nowrap;
    }

  .didactics-study-total {
    margin: 0;
    padding-top: 0.5em;
    text-align: end;
  }

  .didactics-study-group + .didactics-study-group {
    margin-top: 1rem;
  }

    .didactics-study-group > h4 {
      align-items: baseline;
      display: flex;
      font-family: var(--font-heading-secondary);
      font-size: .75rem;
      justify-content: space-between;
      margin: 0 0 0.35rem;
      text-transform: lowercase;
      font-weight: normal;
    }

      .didactics-study-group > h4 > span {
        color: var(--didactics-muted);
        font-family: var(--font-body);
        font-size: 0.85rem;
        font-weight: normal;
      }

  .didactics-study-cycle-totals {
    border-block-start: 1px solid var(--didactics-border);
    margin: 1rem 0 0 auto;
    max-inline-size: 24rem;
  }

    .didactics-study-cycle-totals > div {
      align-items: baseline;
      border-block-end: 1px solid var(--didactics-border);
      display: flex;
      gap: 1rem;
      justify-content: space-between;
      padding: 0.45rem 0;
    }

    .didactics-study-cycle-totals dt,
    .didactics-study-cycle-totals dd {
      margin: 0;
    }

  @media (max-width: 38rem) {
    .didactics-study-years li {
      grid-template-columns: minmax(0, 1fr) auto;
    }

  }

  .didactics-credits > ul {
    border-block-start: 1px solid var(--didactics-border);
    max-inline-size: 36rem;
  }

  .didactics-credits li {
    align-items: baseline;
    border-block-end: 1px solid var(--didactics-border);
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.55rem 0.25rem;
  }

  @media (hover: hover) {
    .didactics-directory a:hover,
    .didactics-teaching-directory li:hover,
    .didactics-teachings li:hover,
    .didactics-affiliations li:hover {
      background: var(--didactics-hover);
    }
  }

  @media (width <= 50rem) {
    .didactics-directory > ul {
      columns: 1;
    }

    .didactics-text.course {
      column-count: 1;
    }

    .didactics-teaching-directory li,
    .didactics-teachings li {
      grid-template-columns: minmax(0, 1fr) auto;
    }

      .didactics-teaching-directory li > span:first-of-type,
      .didactics-teachings li > span:first-of-type {
        grid-column: 1;
      }

    .didactics-facts > div {
      border-inline-end: 0;
      border-block-end: 1px solid var(--didactics-border);
    }


    .didactics-teachings {
      margin-top: 2em;

      & a {
        margin-top: 2em;
      }

      & > div {
        grid-template-columns: 1fr;
      }
    }
  }
}
