/* Components */
.button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    display: inline-flex;
    font-size: .95rem;
    font-weight: 600;
    justify-content: center;
    min-height: 52px;
    padding: 0 24px;
    transition: transform var(--transition), background var(--transition), border-color var(--transition);
}
.button:hover {
    transform: translateY(-2px);
}
.button--primary {
    background: var(--color-primary);
    color: var(--color-dark);
}
.button--primary:hover {
    background: var(--color-primary-dark);
}
.button--ghost {
    border-color: var(--color-border);
}
.button--ghost:hover {
    border-color: var(--color-dark);
}
.button--dark {
    background: var(--color-dark);
    color: var(--color-white);
}
.button--small {
    min-height: 44px;
    padding: 0 18px;
}
.button--full {
    width: 100%;
}
.brand {
    align-items: center;
    display: inline-flex;
    font-size: 1.2rem;
    font-weight: 700;
    gap: 10px;
}
.brand__mark {
    align-items: center;
    background: var(--color-primary);
    border-radius: 10px;
    color: var(--color-dark);
    display: inline-flex;
    height: 38px;
    justify-content: center;
    width: 38px;
}
.brand--light {
    color: var(--color-white);
}
.eyebrow {
    align-items: center;
    color: var(--color-dark);
    display: inline-flex;
    font-size: .76rem;
    font-weight: 700;
    gap: 9px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.eyebrow__dot {
    background: var(--color-primary);
    border-radius: 50%;
    height: 9px;
    width: 9px;
}
.eyebrow--dark {
    color: rgba(255, 255, 255, .72);
}
.section-heading {
    align-items: end;
    display: grid;
    gap: 50px;
    grid-template-columns: 1.2fr .8fr;
    margin-bottom: 52px;
}
.section-heading h2,
.process h2,
.faq-layout h2,
.contact-card h2 {
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.12;
    margin-top: 14px;
}
.section-heading p,
.process__content > p,
.faq-layout > div > p {
    color: var(--color-muted);
    max-width: 560px;
}
.section-heading--light p {
    color: rgba(255, 255, 255, .68);
}
.text-link {
    align-items: center;
    display: inline-flex;
    font-weight: 600;
    gap: 10px;
    margin-top: 24px;
}
.icon-box {
    align-items: center;
    background: var(--color-primary);
    border-radius: 14px;
    display: inline-flex;
    font-size: 1.2rem;
    height: 48px;
    justify-content: center;
    width: 48px;
}
