.hero {
    background: #fff;
    padding-block: 64px 80px;
    overflow: hidden;
}

.hero--soft { background: var(--c-purple-50); }
.hero--dark { background: var(--c-purple-deep); color: rgba(255,255,255,0.85); }

.hero__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    align-items: center;
}

.hero__title {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(40px, 6vw, 60px);
    line-height: 1.05;
    letter-spacing: -1.8px;
    color: var(--c-ink);
    margin-top: 24px;
}

.hero__title.is-light { color: #fff; }
.hero__title .accent { display: block; color: var(--c-purple-600); }

.hero__lede {
    font-size: 18px;
    line-height: 1.6;
    color: var(--c-text-muted);
    margin-top: 24px;
    max-width: 560px;
}

.hero--dark .hero__lede { color: rgba(255,255,255,0.7); }

.hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 32px;
}

.hero__media {
    position: relative;
    aspect-ratio: 576 / 402;
}

.hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 16px;
}

.hero--centered .hero__inner { text-align: center; }
.hero--centered .hero__content { margin-inline: auto; max-width: 760px; }
.hero--centered .hero__lede { margin-inline: auto; }
.hero--centered .hero__cta { justify-content: center; }

@media (min-width: 1024px) {
    .hero { padding-block: 80px 96px; }

    .hero__inner.has-media {
        grid-template-columns: minmax(0, 1fr) minmax(0, 0.75fr);
        gap: 64px;
    }

    .hero__inner.has-media .hero__media { margin-right: -8%; }
    .hero__inner.has-media .hero__media img { border-radius: 0; }
}
