.disclosure-cards {
  --length-xs: calc(10 / 16 * 0.175rem);
  --length-s: calc(10 / 16 * 0.25rem);
  --length-m: calc(10 / 16 * 1rem);
  --length-l: calc(10 / 16 * 1.5rem);
  --length-xl: calc(10 / 16 * 2rem);
  --length-xxl: calc(10 / 16 * 3rem);
  --color-interactive-idle: transparent;
  --color-interactive-hover: gray;
  --color-interactive-hover-text: black;
  --color-interactive-focus: var(--wai-green, #005a6a);
  --color-interactive-focus-text: var(--wai-green, #005a6a);
  --transition-duration-snappy: 0;
  --transition-duration-leisurely: 0;

  @media (forced-colors: active) {
    --color-interactive-idle: Canvas;
    --color-interactive-hover: Highlight;
    --color-interactive-hover-text: Highlight;
    --color-interactive-focus: Highlight;
    --color-interactive-focus-text: Highlight;
  }

  @media (prefers-reduced-motion: no-preference) and (forced-colors: none) {
    --transition-duration-snappy: 0.15s;
    --transition-duration-leisurely: 0.5s;
  }

  font-family: system-ui, sans-serif;
  font-size: var(--length-m);
  line-height: 1.4;
  background-color: ghostwhite;
  margin-inline: -2em;
  padding: 2em;
  interpolate-size: allow-keywords;

  *,
  *::before,
  *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }

  *:focus {
    outline: var(--length-s) solid var(--color-interactive-focus);
    outline-offset: var(--length-s);
  }

  h3 {
    font-size: var(--length-xxl);
    font-weight: 500;
    border-block-end: var(--length-xs) solid currentcolor;
    text-wrap: balance;
  }

  h5 {
    font-style: normal;
    font-size: var(--length-xl);
    font-weight: 600;
    line-height: 1.25;
  }

  button {
    appearance: none;
    font: inherit;
    color: inherit;
    border: none;
    background: none;

    &[aria-expanded] {
      display: inline-flex;
      gap: 0.175ch;
      padding-inline-start: 0.65ch;
      outline: 0;
      font-weight: 600;
      text-decoration: underline;
      text-underline-offset: 1em;
      text-decoration-color: var(--color-interactive-idle);
      text-decoration-thickness: var(--length-s);
      border-inline-start: var(--length-xs) solid lightgray;
      transition:
        color var(--transition-duration-snappy) ease,
        text-underline-offset var(--transition-duration-snappy) ease,
        text-decoration-color var(--transition-duration-snappy) ease;

      svg {
        scale: 0.8;
        rotate: 0deg;
        transition:
          scale var(--transition-duration-snappy) ease,
          rotate var(--transition-duration-snappy) ease;
      }
    }

    &[aria-expanded="true"] svg {
      rotate: -180deg;
    }

    &:not([aria-expanded]) {
      font-size: var(--length-xl);
      padding: 0.5ch 1ch;
      border: 1px solid black;
      color: white;
      font-weight: bold;
      background-color: rebeccapurple;
      border-radius: var(--length-s);

      &:hover,
      &:focus {
        background-color: darkorchid;
      }

      &:active {
        background-color: midnightblue;
      }
    }
  }

  .disclosure-card {
    border: 0.2em solid transparent;
    outline: 0 solid transparent;
    outline-offset: 0;
    transition:
      outline-offset var(--transition-duration-snappy) ease,
      outline-width var(--transition-duration-snappy) ease,
      outline-color var(--transition-duration-snappy) ease,
      border-color var(--transition-duration-snappy) ease;

    &:hover {
      border-color: var(--color-interactive-hover);

      button[aria-expanded] {
        color: var(--color-interactive-hover-text);
        text-underline-offset: 0.2em;
        text-decoration-color: var(--color-interactive-hover-text);
      }
    }

    &:hover,
    &:has(button[aria-expanded]:focus) {
      button[aria-expanded] {
        svg {
          scale: 1;
        }
      }
    }

    &[data-being-pressed],
    &:has(button[aria-expanded]:focus) {
      outline-offset: 0.25em;
      outline-width: 0.3em;
      outline-color: var(--color-interactive-focus);

      &[data-being-pressed] {
        outline-width: 0.6em;
      }

      button[aria-expanded] {
        color: var(--color-interactive-focus-text);
        text-decoration-color: var(--color-interactive-focus);
        text-underline-offset: 0.2em;
      }
    }
  }

  .sessions {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 1em;
    margin-block: 2em;
  }

  .session {
    padding: 1.5em 1.5em 0;
    background-color: white;
    box-shadow: 0 0.25em 0.5em rgba(0 0 0 / 20%);
    margin: 0.25em;
    border-radius: 0.25em;
    max-inline-size: 84ch;

    header,
    hgroup {
      display: flex;
      flex-direction: column;
      gap: 0.5em;
      color: darkslategray;
    }

    hgroup {
      color: black;
      font-weight: 400;

      h4 {
        color: black;
        font-size: 2em;
        font-style: normal;
        font-weight: 700;
      }

      p {
        font-size: 1.8em;
      }
    }

    hgroup + p {
      display: flex;
      flex-wrap: wrap;
      font-size: 1.6em;
      gap: 1ch;
      margin-block-start: var(--length-xs);
    }
  }

  .details {
    block-size: auto;
    opacity: 1;
    overflow-y: clip;
    font-size: 1.6em;
    transition: all var(--transition-duration-leisurely) ease;
    padding-block-end: var(--length-l);

    &[inert] {
      block-size: 0;
      opacity: 0;
    }

    .description {
      display: flex;
      flex-direction: column;
      gap: var(--length-l);
      padding-block-start: var(--length-l);

      > *:first-child {
        border-block-start: var(--length-xs) solid lightgray;
        padding-block-start: var(--length-l);
      }
    }

    form {
      display: flex;
      flex-direction: column;
      gap: var(--length-l);
      margin-block-start: var(--length-l);
      border-block-start: var(--length-xs) solid lightgray;
      padding-block-start: var(--length-l);

      label:has(input[type="checkbox"]) {
        display: flex;
        gap: 0.75ch;
        align-items: baseline;
      }
    }
  }
}
