/* Default text-link treatment. Colour follows the link's context; cards may
   supply --bi-link-background when their accent is a gradient. */
.bi-text-link,
.bi-homepage :is(.bi-view-all,
    .bi-professional-card > a, .bi-event-link, .bi-event-partners a, .bi-events-all a) {
    position: relative;
    display: inline-block;
    isolation: isolate;
    max-width: 100%;
    padding: 7px 12px;
    border-radius: 6px;
    text-decoration: none;
    vertical-align: baseline;
}

.bi-text-link::after,
.bi-homepage :is(.bi-view-all,
    .bi-professional-card > a, .bi-event-link, .bi-event-partners a, .bi-events-all a)::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: 12px;
    bottom: 4px;
    left: 12px;
    height: 1px;
    border-radius: 2px;
    background: var(--bi-link-background, currentColor);
    pointer-events: none;
    transition: left 0.3s ease, right 0.3s ease, bottom 0.3s ease,
        height 0.3s ease, opacity 0.3s ease, border-radius 0.3s ease;
}

.bi-text-link:is(:hover, :focus-visible)::after,
.bi-homepage :is(.bi-view-all,
    .bi-professional-card > a, .bi-event-link, .bi-event-partners a,
    .bi-events-all a):is(:hover, :focus-visible)::after {
    right: 0;
    bottom: 0;
    left: 0;
    height: 100%;
    border-radius: 6px;
    opacity: 0.13;
}

@media (pointer: coarse) {
    .bi-text-link,
    .bi-homepage :is(.bi-view-all,
        .bi-professional-card > a, .bi-event-link, .bi-event-partners a, .bi-events-all a) {
        min-height: 44px;
        align-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bi-text-link::after,
    .bi-homepage :is(.bi-view-all,
        .bi-professional-card > a, .bi-event-link, .bi-event-partners a, .bi-events-all a)::after {
        transition: none;
    }
}

/* Complete-list links share their typography across homepage sections. */
.bi-homepage a.bi-browse-link {
    --bi-link-background: currentColor;
    color: #687b90;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.4;
}

/* A shared directory cue for links to the complete list. */
.bi-browse-link > .bi-grid {
    display: inline-block;
    margin-right: .45em;
    font-size: .9em;
    vertical-align: -.025em;
}
