.activ8-section-heading {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.activ8-section-heading--center {
    align-items: center;
    text-align: center;
}

.activ8-section-heading--right {
    align-items: flex-end;
    text-align: right;
}

.activ8-section-heading--left {
    align-items: flex-start;
    text-align: left;
}

/* ── Label with line ─────────────────────────────────────────
   Short coloured rule that sits above the label text.
   ─────────────────────────────────────────────────────────── */

.activ8-section-heading__label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--sh-label, var(--color-primary));
}

.activ8-section-heading__label::before {
    content: '';
    display: block;
    width: 100px;
    height: 2px;
    background: var(--sh-line, var(--color-primary));
    flex-shrink: 0;
}

/* ── Title ───────────────────────────────────────────────────*/

.activ8-section-heading__title {
    font-size: clamp(var(--text-2xl), 3.5vw, var(--text-3xl));
    font-weight: 700;
    line-height: var(--leading-tight);
    color: var(--sh-heading, var(--color-black));
    margin: 0;
}

.activ8-section-heading__title strong {
    color: var(--sh-line, var(--color-primary));
    font-weight: inherit;
}

/* ── Subheading ──────────────────────────────────────────────*/

.activ8-section-heading__sub {
    font-size: var(--text-base);
    line-height: var(--leading-normal);
    color: var(--sh-sub, var(--color-grey-dark));
    margin: 0;
    width: 1200px;
    max-width: 80%;
}
