/* Canonical CTA Module — hierarchy, touch targets and interaction states. */
.bh-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: var(--bh-cta-height);
    padding: 0.65rem var(--bh-cta-padding-inline);
    border: 1px solid currentColor;
    border-radius: var(--bh-cta-radius);
    background: transparent;
    color: var(--bh-ink);
    font-family: var(--bh-sans);
    font-size: var(--bh-cta-font-size);
    font-weight: 700;
    letter-spacing: var(--bh-cta-letter-spacing);
    line-height: 1.2;
    text-align: center;
    transition: background-color var(--bh-motion-fast) ease, border-color var(--bh-motion-fast) ease, color var(--bh-motion-fast) ease, transform var(--bh-motion-fast) ease;
}

.bh-cta.bh-cta--primary {
    border-color: var(--bh-ink);
    background: var(--bh-ink);
    color: var(--bh-paper);
}

.bh-cta.bh-cta--primary:hover,
.bh-cta.bh-cta--primary:focus-visible {
    border-color: var(--bh-accent-ink);
    background: var(--bh-accent-ink);
    color: #fff;
}

.bh-cta.bh-cta--secondary:hover,
.bh-cta.bh-cta--secondary:focus-visible {
    border-color: var(--bh-accent-ink);
    background: var(--bh-accent-soft);
    color: var(--bh-accent-ink);
}

.bh-cta.bh-cta--text,
.bh-text-link,
.bp-panel > a,
.bp-contact a {
    display: inline-flex;
    align-items: center;
    min-height: auto;
    padding: 0 0 0.35rem;
    border: 0;
    border-bottom: 1px solid currentColor;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-family: var(--bh-sans);
    font-size: var(--bh-cta-font-size);
    font-weight: 700;
    letter-spacing: var(--bh-cta-letter-spacing);
}

.bh-cta.bh-cta--text:hover,
.bh-cta.bh-cta--text:focus-visible,
.bh-text-link:hover,
.bh-text-link:focus-visible,
.bp-panel > a:hover,
.bp-panel > a:focus-visible,
.bp-contact a:hover,
.bp-contact a:focus-visible {
    border-color: var(--bh-accent-ink);
    color: var(--bh-accent-ink);
}

.bh-cta.bh-cta--compact {
    min-height: var(--bh-cta-height-compact);
    padding-inline: var(--bh-cta-padding-inline-compact);
    font-size: var(--bh-cta-font-size-compact);
}

.bh-cta.bh-cta--pill {
    border-radius: var(--bh-cta-radius-pill);
}

.bh-hero .bh-cta.bh-cta--primary,
.bh-about-cta .bh-cta.bh-cta--primary,
.article-contact-cta .bh-cta.bh-cta--primary {
    border-color: #fff;
    background: #fff;
    color: var(--bh-ink);
}

.bh-hero .bh-cta.bh-cta--primary:hover,
.bh-hero .bh-cta.bh-cta--primary:focus-visible,
.bh-about-cta .bh-cta.bh-cta--primary:hover,
.bh-about-cta .bh-cta.bh-cta--primary:focus-visible,
.article-contact-cta .bh-cta.bh-cta--primary:hover,
.article-contact-cta .bh-cta.bh-cta--primary:focus-visible {
    border-color: var(--bh-accent);
    background: var(--bh-accent);
    color: var(--bh-ink);
}

.bh-hero .bh-cta.bh-cta--secondary {
    border-color: rgba(255, 255, 255, 0.82);
    color: #fff;
}

.bh-hero .bh-cta.bh-cta--secondary:hover,
.bh-hero .bh-cta.bh-cta--secondary:focus-visible {
    border-color: #fff;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}

.bp-hero-copy > div .bh-cta.bh-cta--primary {
    border-color: #fff;
    background: #fff;
    color: var(--bh-ink);
}

.bp-hero-copy > div .bh-cta.bh-cta--secondary {
    border-color: #fff;
    color: #fff;
}

.bp-hero-copy > div .bh-cta:hover,
.bp-hero-copy > div .bh-cta:focus-visible {
    border-color: var(--bh-accent);
    background: var(--bh-accent);
    color: var(--bh-ink);
}

.bp-contact a:hover,
.bp-contact a:focus-visible {
    border-color: var(--bh-accent);
    color: var(--bh-accent);
}

.bh-cta:focus-visible,
.bh-text-link:focus-visible,
.bp-panel > a:focus-visible,
.bp-contact a:focus-visible {
    outline: 2px solid var(--bh-accent);
    outline-offset: 4px;
}

@media (max-width: 720px) {
    .case-visit-actions .bh-cta,
    .service-cta-row .bh-cta,
    .process-cta-row .bh-cta,
    .contact-final-actions .bh-cta {
        width: 100%;
    }
}
