@layer components-ui {
  /* =======================
     CTAs / Buttons
     ======================= */

  /* zero specificity: applies to both main>a and .md-cta-group a */
  :where(main > a, .md-cta-group a) {
    align-items: center;
    border-width: 0;
    display: inline-flex;
    gap: 10px;
    justify-content: center;
    letter-spacing: .5px;
    text-align: center;
    align-self: center;
    background-color: var(--button-background-color);
    transition: all 0.5s ease;
    border-radius: 36px;
    color: var(--button-text-color);
    font-weight: 700;
    font-style: italic;
    padding: 16px 40px;
    width: 100%;
    max-width: 328px;
  }

  main > a {
    margin-top: 20px;
  }

  main > a:hover {
    background-color: var(--button-background-hover-color);
  }

  /* =======================
     Blockquotes (generic visual treatment)
     ======================= */

  :where(main, .post-body) > blockquote {
    padding-left: 32px;
    border-left: 8px solid var(--brand-color-primary);
    margin-top: 20px;
    margin-bottom: 40px;
  }

  /* generic grid blockquotes (no .post-body scope) */
  section.md-grid-2 blockquote,
  section.md-grid-3 blockquote {
    border-radius: 24px;
    background-color: var(--dark-color-secondary);
    padding: 32px;
    margin: 0;
  }

  section.md-grid-2 blockquote p,
  section.md-grid-3 blockquote p {
    font-size: var(--text-s);
  }

  @media (width <= 767px) {
    :where(main, .post-body) > blockquote {
      font-size: 24px;
    }
  }

  /* =======================
     Icons
     ======================= */

  .md-icon-svg {
    fill: var(--brand-color-secondary);
    width: 40px;
    height: 40px;
  }

  .md-level-svg {
    height: 40px;
  }

  .md-level-svg path {
    stroke-width: 8px;
    fill: white;
    stroke: black;
  }

  .md-level-svg.black path {
    stroke-width: 4px;
    fill: black;
    stroke: white;
  }

  .md-level-svg.gray path {
    fill: gray;
  }

  .md-level-svg.yellow path {
    fill: yellow;
  }

  .md-level-svg.green path {
    fill: green;
  }

  .md-level-svg.blue path {
    fill: blue;
  }

  .md-level-svg.purple path {
    fill: purple;
  }

  .md-level-svg.brown path {
    fill: brown;
  }

  .md-level-svg.red path {
    fill: red;
  }
}
