/**
 * home.css — Editorial landing page
 */

.hero-section {
    padding-top: var(--space-16);
    padding-bottom: var(--space-24);
}

.hero-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-12);
    align-items: end;
}

@media (min-width: 900px) {
    .hero-container {
        grid-template-columns: minmax(0, 1.15fr) minmax(240px, 0.7fr);
        gap: var(--space-16);
    }
}

.hero__eyebrow {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--clr-accent);
    margin-bottom: var(--space-6);
}

.hero__headline {
    font-size: clamp(2.4rem, 7vw, 4.4rem);
    font-weight: 500;
    margin-bottom: var(--space-6);
    max-width: 16ch;
    text-wrap: balance;
}

.hero__sentence {
    font-size: var(--text-xl);
    max-width: 38rem;
    margin-bottom: var(--space-4);
    line-height: 1.45;
}

.hero__subheadline {
    font-size: var(--text-lg);
    color: var(--clr-text-muted);
    max-width: 38rem;
    margin-bottom: var(--space-8);
}

.hero__actions {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.hero__photo {
    margin: 0;
    max-width: 22rem;
}

.hero__photo img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    filter: sepia(0.12) contrast(1.04);
}

.hero__photo figcaption {
    font-family: var(--font-ui);
    font-size: var(--text-xs);
    color: var(--clr-text-muted);
    margin-top: var(--space-3);
    font-style: italic;
}

@media (min-width: 900px) {
    .hero__photo {
        transform: translateY(1.5rem);
        justify-self: end;
    }
}

.work-index {
    padding-bottom: 0;
}

.case-study {
    padding-block: var(--space-16);
    border-top: 1px solid var(--clr-rule);
}

.case-study__inner {
    max-width: 720px;
}

.case-study__kicker {
    display: flex;
    align-items: baseline;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--clr-accent);
}

.case-study__number {
    font-variant-numeric: tabular-nums;
}

.case-study__title {
    font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl));
    margin-bottom: var(--space-4);
}

.case-study__lede {
    font-size: var(--text-xl);
    font-style: italic;
    margin-bottom: var(--space-12);
    max-width: 40rem;
}

.case-study__body {
    display: grid;
    gap: var(--space-8);
    margin-bottom: var(--space-10);
}

@media (min-width: 720px) {
    .case-study__body {
        grid-template-columns: 1fr 1fr;
    }

    .case-study__body > div:last-child {
        grid-column: 1 / -1;
    }
}

.case-study__body h3 {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0;
    margin-bottom: var(--space-2);
}

.case-study__body p {
    color: var(--clr-text-muted);
}

.case-study__quote {
    border-left: 2px solid var(--clr-accent);
    padding-left: var(--space-6);
    margin: 0 0 var(--space-8);
}

.case-study__quote p {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-style: italic;
    line-height: 1.4;
}

.case-study__stack {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--clr-text-muted);
    margin-bottom: var(--space-8);
}

.case-study__actions {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.stack-list {
    border-top: 1px solid var(--clr-rule);
}

.stack-list__row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-2);
    padding-block: var(--space-5);
    border-bottom: 1px solid var(--clr-rule);
}

@media (min-width: 640px) {
    .stack-list__row {
        grid-template-columns: 8rem 1fr;
        gap: var(--space-8);
        align-items: baseline;
    }
}

.stack-list dt {
    font-family: var(--font-heading);
    font-size: var(--text-lg);
    font-weight: 500;
}

.stack-list dd {
    color: var(--clr-text-muted);
}

.index-list {
    list-style: none;
}

.index-list__item {
    padding-block: var(--space-8);
    border-top: 1px solid var(--clr-rule);
}

.index-list__item:last-child {
    border-bottom: 1px solid var(--clr-rule);
}

.index-list__meta {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--clr-accent);
}

.index-list h3 {
    font-size: var(--text-2xl);
    margin: var(--space-2) 0 var(--space-3);
}

.index-list p {
    color: var(--clr-text-muted);
    max-width: 40rem;
}

.index-list__stack {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    margin-top: var(--space-3);
}

.cert-list {
    list-style: none;
    border-top: 1px solid var(--clr-rule);
}

.cert-list li {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-1);
    padding-block: var(--space-5);
    border-bottom: 1px solid var(--clr-rule);
}

@media (min-width: 640px) {
    .cert-list li {
        grid-template-columns: 7rem 1fr auto;
        gap: var(--space-6);
        align-items: baseline;
    }
}

.cert-list__year {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--clr-text-muted);
}

.cert-list__title {
    font-family: var(--font-heading);
    font-size: var(--text-lg);
}

.cert-list__issuer {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--clr-text-muted);
}

.about-content {
    max-width: 40rem;
}

.about-content p {
    font-size: var(--text-lg);
    margin-bottom: var(--space-5);
}

.about-section,
.building-section {
    border-top: 1px solid var(--clr-rule);
}

.contact-section {
    border-top: 1px solid var(--clr-rule);
}

.contact-close {
    max-width: 36rem;
}

.contact-close h2 {
    font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl));
    margin: var(--space-3) 0 var(--space-4);
}

.contact-close > p {
    font-size: var(--text-lg);
    color: var(--clr-text-muted);
    margin-bottom: var(--space-8);
}

.contact-close__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-6);
}

.contact-close__links a {
    font-family: var(--font-ui);
    color: var(--clr-text-base);
    text-decoration: underline;
    text-underline-offset: 0.22em;
}

.contact-close__links a:hover {
    color: var(--clr-accent);
}

@media (max-width: 640px) {
    .hero-section {
        padding-top: var(--space-12);
        padding-bottom: var(--space-16);
    }

    .hero__actions,
    .case-study__actions {
        flex-direction: column;
        align-items: stretch;
    }
}
