.hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-lg);
    align-items: center;
    padding-block: var(--spacing-lg) var(--spacing-md);
}

.hero-copy {
    min-width: 0;
    padding-block: var(--spacing-md) var(--spacing-lg);
}

.hero-copy .eyebrow, .hero-copy h1 {
    margin-bottom: var(--spacing-lg);
}

.hero-copy .lead {
    margin-bottom: var(--spacing-lg);
    max-width: calc(var(--spacing-2xl) * 4);
}

.hero-note {
    color: var(--muted);
    font-size: var(--font-xs);
    margin-top: var(--spacing-lg);
}

.hero-visual {
    position: relative;
    min-width: 0;
    height: calc(var(--spacing-2xl) * 4);
    isolation: isolate;
}

.hero-visual::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 calc(-1 * var(--spacing-lg)) 0 var(--spacing-lg);
    border-radius: 50% 32% var(--radius-xs) var(--radius-xs);
    background: linear-gradient(130deg, var(--soft), var(--selected));
    mask-image: linear-gradient(to bottom, var(--ink) 75%, transparent);
}

.hero-annotation {
    position: absolute;
    top: calc(-1 * var(--spacing-sm));
    left: calc(-1 * var(--spacing-md));
    z-index: 1;
    font: var(--font-lg)/var(--leading-tight) var(--font-handwritten);
    transform: rotate(-8deg);
}

.hero-annotation svg {
    display: block;
    width: calc(var(--spacing-lg) * 2);
    height: var(--spacing-lg);
    margin-left: var(--spacing-lg);
    stroke: currentColor;
    stroke-width: var(--border-width);
}

.hero-photo {
    position: absolute;
    inset: var(--spacing-lg) calc(-1 * var(--spacing-md)) var(--spacing-lg) 0;
    border-radius: var(--radius-sm);
    background: var(--soft);
    overflow: hidden;
}

.hero-photo figcaption {
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--overlay);
}

.hero-services {
    position: absolute;
    inset: auto calc(-1 * var(--spacing-lg)) var(--spacing-sm) calc(-1 * var(--spacing-md));
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md);
}

.hero-services > .floating-link {
    position: relative;
    flex: 1 1 max-content;
}

.hero-community {
    width: max-content;
    max-width: 100%;
}

.hero-community .eyebrow, .next-service .eyebrow {
    display: block;
}

.hero-community strong, .next-service strong {
    display: block;
    font-weight: var(--weight-medium);
}

.hero-community strong {
    font-size: var(--font-xs);
}

.hero-community-icon, .next-service-icon {
    flex: 0 0 var(--spacing-lg);
    width: var(--spacing-lg);
    height: var(--spacing-lg);
    color: var(--accent);
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
}

.hero-community-icon {
    background: var(--selected);
}

.hero-community-icon svg, .next-service-icon svg {
    width: var(--spacing-md);
    height: var(--spacing-md);
    stroke: currentColor;
    stroke-width: var(--border-width-thick);
}

.hero-community-link {
    display: block;
    font-size: var(--font-2xs);
    color: var(--muted);
    margin-top: var(--spacing-xs);
}

.next-service-icon {
    background: var(--soft);
}

.next-service strong {
    font-size: var(--font-sm);
    margin-top: var(--spacing-xs);
}

.next-service-arrow {
    margin-left: auto;
    color: var(--accent);
}

.photo-fallback {
    display: grid;
    place-items: center;
    padding: var(--spacing-lg);
}

.photo-fallback span {
    font: italic var(--font-5xl)/var(--leading-heading) var(--display);
    color: var(--accent);
}

.community-strip {
    padding-block: var(--spacing-lg) var(--spacing-lg);
}

.community-values {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md) var(--spacing-xl);
    margin-top: var(--spacing-md);
    color: var(--muted);
    font: var(--font-lg)/var(--leading-tight) var(--display);
}

.community-values a {
    text-decoration: none;
}

.community-values a:hover {
    color: var(--accent);
}

.community-values > :not(:last-child) {
    padding-right: var(--spacing-xl);
    border-right: var(--border-default);
}

@media (max-width: 1024px) {
    .hero-copy h1 {
        font-size: var(--font-5xl);
    }

    .hero-visual {
        height: calc(var(--spacing-2xl) * 3);
    }

    .hero-services {
        left: calc(-1 * var(--spacing-sm));
        right: calc(-1 * (var(--spacing-md) + var(--spacing-sm)));
    }

    .next-service {
        gap: var(--spacing-sm);
    }

    .next-service strong {
        font-size: var(--font-xs);
    }

    .community-values {
        gap: var(--spacing-md) var(--spacing-lg);
        font-size: var(--font-md);
    }

    .community-values > :not(:last-child) {
        padding-right: var(--spacing-lg);
    }
}

.news-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, calc(var(--width-reading) / 2)), 1fr));
}

@media (max-width: 768px) {
    .hero {
        grid-template-columns: minmax(0, 1fr);
    }

    .hero-copy {
        padding: 0;
    }

    .hero-copy .eyebrow {
        margin-bottom: var(--spacing-md);
    }

    .hero-copy h1 {
        font-size: clamp(var(--font-4xl), 10vw, var(--font-5xl));
    }

    .hero-visual {
        margin-top: var(--spacing-lg);
    }

    .hero-visual::before {
        inset: 0 0 0 var(--spacing-md);
    }

    .hero-annotation {
        top: calc(-1 * var(--spacing-md));
        left: var(--spacing-xs);
        font-size: var(--font-xs);
    }

    .hero-photo {
        inset: var(--spacing-lg) 0 var(--spacing-lg);
    }

    .hero-services {
        left: calc(-1 * var(--spacing-xs));
        right: calc(-1 * var(--spacing-xs));
        bottom: var(--spacing-md);
    }

    .hero-community {
        padding: var(--spacing-sm);
    }

    .next-service-arrow {
        display: none;
    }

    .community-values > :not(:last-child) {
        padding-right: 0;
        border-right: 0;
    }
}

@media (max-width: 384px) {
    .hero-copy h1 {
        font-size: var(--font-3xl);
    }

    .hero-visual {
        height: calc(var(--spacing-2xl) + var(--spacing-2xl) + var(--spacing-xl));
    }

}
