.home {
    --home-forest: #163a2d;
    --home-text: #1b3025;
    --home-muted: #466052;
    --home-light: #eef5e9;
    --home-border: #d9e3d9;
    padding-block: clamp(14px, 2vw, 26px) 70px;
    color: var(--home-text);
}

.home h1, .home h2, .home h3, .home p, .home figure { margin: 0; }

.home-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr);
    overflow: hidden;
    background: var(--home-forest);
    color: #fff;
    border-radius: 22px;
}

.home-hero-copy { padding: clamp(28px, 5vw, 76px) clamp(23px, 4.4vw, 66px); }
.home-kicker {
    font-size: .74rem;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: .135em;
    text-transform: uppercase;
    color: var(--home-muted);
}
.home-hero .home-kicker, .home-join .home-kicker { color: #bce4ad; }
.home h1 {
    font-size: clamp(2.15rem, 3.8vw, 3.75rem);
    line-height: .99;
    letter-spacing: -.072em;
    overflow-wrap: anywhere;
    margin-block: 18px 21px;
    text-wrap: balance;
}
.home .home-lead { max-width: 39ch; font-size: clamp(1rem, 1.55vw, 1.19rem); color: #e2eee1; }
.home-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 15px 22px; margin-top: 26px; }
.home-button {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-height: 48px;
    background: var(--green);
    color: #0c2416;
    padding: 9px 19px;
    border-radius: 100px;
    text-decoration: none;
    font-weight: 800;
}
.home-button:hover { background: #8dd079; }
.home-textlink { font-weight: 750; }
.home-textlink:hover { text-decoration-thickness: 2px; }
.home-hero-photo { position: relative; min-height: 330px; }
.home-hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 48% center; }
.home-hero-photo figcaption {
    position: absolute;
    bottom: 16px;
    right: 16px;
    border-radius: 50px;
    padding: 5px 12px;
    background: #10251de8;
    color: white;
    font-size: .78rem;
}

.home-section { margin-top: clamp(46px, 7vw, 88px); }
.home-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px 24px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}
.home h2 {
    font-size: clamp(1.5rem, 2.65vw, 2.4rem);
    font-weight: 790;
    line-height: 1.02;
    letter-spacing: -.06em;
    margin-top: 6px;
    text-wrap: balance;
}

.home-projects { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.home-project {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--home-border);
    border-radius: 17px;
    color: inherit;
    text-decoration: none;
}
.home-project:hover h3 { text-decoration: underline; text-underline-offset: .15em; }
.home-project img { display: block; width: 100%; height: 195px; object-fit: cover; object-position: center 65%; }
.home-project-copy { padding: 21px; }
.home-project h3 {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 10px;
    margin-block: 5px 8px;
    font-size: clamp(1.4rem, 2.6vw, 2.3rem);
    letter-spacing: -.047em;
    line-height: 1.12;
}
.home-project-copy > p:last-child { color: var(--home-muted); }
.home-project-plain { justify-content: end; min-height: 245px; background: #e5f1df; position: relative; isolation: isolate; }
.home-project-plain::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 15px 18px auto auto;
    width: 156px;
    aspect-ratio: 1;
    background: repeating-radial-gradient(circle at center, #48ad425e 0 3px, transparent 4px 15px);
    border-radius: 50%;
}
.home-project-plain .home-project-copy { background: #e5f1df; }

.home-join {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px 34px;
    padding: clamp(23px, 4vw, 46px);
    margin-top: clamp(43px, 7vw, 78px);
    border-radius: 17px;
    background: var(--home-forest);
    color: white;
}
.home-join h2 { font-size: clamp(1.45rem, 2.5vw, 2.25rem); margin-bottom: 8px; }
.home-join .home-actions { margin-top: 0; }
.home-about {
    display: grid;
    grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
    gap: 18px 48px;
    align-items: start;
    border-top: 1px solid var(--home-border);
    padding-top: 24px;
}
.home-about .page-content { max-width: 70ch; }
.home-about .page-content p { margin-bottom: 13px; }
/* The initial import included a generated homepage banner. The new hero supersedes it. */
.home-about .home-intro { display: none; }

@media (max-width: 900px) {
    .home-hero-copy { padding: 30px 25px; }
}
@media (max-width: 660px) {
    .home { padding-bottom: 40px; }
    .home-hero, .home-projects, .home-about { grid-template-columns: 1fr; }
    .home h1 { font-size: clamp(1.95rem, 7.2vw, 2.85rem); }
    .home-hero-photo { min-height: 0; aspect-ratio: 1.85; }
    .home-project img { height: 175px; }
    .home-project-plain { min-height: 150px; }
    .home-project-plain::before { width: 120px; inset-inline-end: -25px; inset-block-start: -20px; }
    .home-project-plain .home-project-copy { background: transparent; max-width: 85%; }
}
