.wysiwyg {
  h1,
  .h1 {
    font-size: var(--px-40);
    line-height: 1.2;
  }

  /* Header H2: Tanovis Bold 32pkt, line-height 105% */
  h2,
  .h2 {
    font-size: var(--px-24);
    line-height: 1.05;

    @media (min-width: 48rem) {
      font-size: var(--px-32);
    }
  }

  /* Header H3: Tanovis Bold 24pkt, line-height 105% */
  h3,
  .h3 {
    font-size: var(--px-18);
    line-height: 1.05;

    @media (min-width: 48rem) {
      font-size: var(--px-24);
    }
  }

  .preamble {
    font-size: var(--px-32);
    line-height: 1.3;
    font-weight: 700;
    font-family: var(--wp--preset--font-family--tanovis-bold);

    @media (max-width: 64rem) {
      font-size: var(--px-20);
    }

    @media (max-width: 47.998rem) {
      font-size: var(--px-20);
    }
  }

  /* Text:  Suisse Int'l 22pkt, line-height 140% */
  p,
  a,
  li,
  blockquote,
  table,
  th,
  td,
  pre,
  code,
  kbd,
  samp,
  input,
  textarea,
  select,
  option,
  button,
  label,
  legend,
  caption {
    font-size: var(--px-16);
    line-height: 1.4;
    font-weight: 400;

    @media (min-width: 48rem) {
      font-size: var(--px-20);
    }
  }

  /* Spacing for common WYSIWYG content */
  p,
  ul,
  ol,
  pre,
  blockquote,
  figure,
  table {
    margin: 0 0 1em;
  }

  p + p {
    margin-top: -1em !important;
  }

  h1,
  .h1,
  h2,
  .h2,
  h3,
  .h3,
  h4,
  .h4,
  h5,
  .h5,
  h6,
  .h6 {
    margin: var(--px-64) 0 var(--px-20);

    @media (min-width: 48rem) {
      margin: var(--px-80) 0 var(--px-40);
    }
  }

  /* Lists */
  ul,
  ol {
    list-style-position: inside;
  }
  ul:not(.text__table-list),
  ul:not(.text__table-list) li {
    list-style: none;
    font-size: 20px;
  }
  ul:not(.text__table-list) li::before {
    content: "·";
    font-size: 40px;
    vertical-align: middle;
    line-height: 20px;
    margin-right: 12px;
  }
  ol {
    list-style: decimal;
  }
  ol li {
    list-style: decimal;
  }
  li {
    margin: 0.25em 0;
  }
  li > ul,
  li > ol {
    margin-top: 0.5em;
  }

  /* Blockquote */
  blockquote {
    padding-left: 1em;
    border-left: 4px solid #ddd;
    font-style: italic;
  }

  /* Horizontal rule */
  hr {
    border: 0;
    border-top: 1px solid #ddd;
    margin: 2em 0;
  }

  /* Media */
  img,
  video {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 1em 0;
  }
  figure {
    margin: 0 0 1em;
  }
  figcaption {
    font-size: 0.875em;
    opacity: 0.8;
    margin-top: 0.5em;
  }

  /* Tables */
  table {
    width: 100%;
    border-collapse: collapse;
  }
  th,
  td {
    text-align: left;
    padding: 0.5em 0.75em;
    border-bottom: 1px solid #e5e7eb;
  }
  thead th {
    border-bottom: 2px solid #e5e7eb;
  }

  /* Code */
  code,
  kbd,
  samp {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas,
      "Liberation Mono", monospace;
    font-size: 0.95em;
  }
  pre {
    background-color: #f6f8fa;
    padding: 1em;
    border-radius: 4px;
    overflow: auto;
  }
  pre code {
    background: transparent;
    padding: 0;
    font-size: inherit;
  }

  /* Links */
  a {
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  /* Alignment helpers (WordPress common) */
  .alignleft {
    float: left;
    margin: 0.25em 1em 1em 0;
  }
  .alignright {
    float: right;
    margin: 0.25em 0 1em 1em;
  }
  .aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
  }

  /* Clean up */
  p:empty {
    display: none;
  }
  > *:last-child {
    margin-bottom: 0;
  }

  .text__link {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: var(--px-10);
  }

  .link {
    font-size: var(--px-18);
    text-decoration: none;
  }
}
