.quick-links {
  container-name: component;
  container-type: inline-size;

  .quick-links__intro {
    margin-bottom: 36px;
  }

  .quick-links__items {
    border-radius: 50px;
    display: grid;
    flex-wrap: wrap;
    gap: 16px;
    grid-template-columns: 1fr;

    .cta-btn {
      height: 100%;
      width: 100%;
    }
  }

  @container component (width >= calc(768 / 16 * 1rem)) {
    .quick-links__items {
      grid-template-columns: 1fr 1fr;
    }
  }

  @container component (width >= calc(1280 / 16 * 1rem)) {
    .quick-links__items {
      grid-template-columns: 1fr 1fr 1fr;
    }
  }
}

section.quick-links.component {
  .quick-links__items {
    a.cta-btn {
      --background: #fff;
      --border: #173f6c;
      --color: #173f6c;
      --focus-border: #231f20;
      --hover-background: #fff;
      --hover-border: #5d2e8f;
      --hover-color: #5d2e8f;
      --icon-background: transparent;

      align-items: center;
      background-color: transparent;
      color: var(--color);
      cursor: pointer;
      display: inline-flex;
      flex-flow: row nowrap;
      min-height: 81px;
      justify-content: space-between;
      margin: 0;
      padding: 6px 0;
      position: relative;
      transition: all 375ms ease;
      z-index: 5;

      &:after {
        --background: inherit;
        --border: inherit;

        backface-visibility: hidden;
        background-color: var(--background);
        border: 3px solid var(--border);
        box-sizing: content-box;
        content: '';
        display: block;
        height: calc(100% - 0.375rem);
        left: 50%;
        position: absolute;
        top: 50%;
        transform: translate(-50%, -50%);
        transition: all 375ms ease;
        width: calc(100% - 0.375rem);
        z-index: -1;
      }

      &:hover {
        color: var(--hover-color);
        text-decoration: none;

        &:after {
          background: var(--hover-background);
          border-color: var(--hover-border);
          padding: 0.3125rem;
        }
      }

      &.red {
        --background: #e31a4c;
        --border: #e31a4c;
        --color: #fff;
        --focus-border: #231f20;
        --hover-background: #b31257;
        --hover-border: #b31257;
        --hover-color: #fff;
        --icon-background: transparent;
      }
    }

    .cta-btn__icon {
      display: none;
    }

    .cta-btn__text {
      flex-grow: 1;
      line-height: 1.25;
      min-width: 252px;
      padding: 0.75rem 2.5rem;
      text-align: left;
      text-wrap: balance;
    }
  }
}
