/* Homepage content follows the public header/footer palette. */
.home-page .public-main { padding-bottom: 0 !important; }
.home-content { --home-ink: #173d31; --home-muted: #54685d; --home-line: #dbe5dc; background: #fff; }
.home-content a { text-decoration: none; }
.home-content a:focus-visible { outline: 3px solid #739e4f; outline-offset: 5px; }
.home-content h2 { color: var(--home-ink); font-size: clamp(1.75rem, 2.8vw, 2.6rem); line-height: 1.15; letter-spacing: -.035em; font-weight: 650; margin: 0 0 1rem; }
.home-content h3 { color: var(--home-ink); font-weight: 650; letter-spacing: -.015em; }
.home-section { padding-block: clamp(2.75rem, 5.8vw, 5rem); }
.home-eyebrow { margin: 0 0 1rem; color: #466d50; font-size: .7rem; text-transform: uppercase; font-weight: 700; letter-spacing: .16em; }
.home-section-intro > p:not(.home-eyebrow), .home-section-heading > div > p:not(.home-eyebrow) { color: var(--home-muted); font-size: .96rem; line-height: 1.75; max-width: 590px; margin-bottom: 1.5rem; }
.home-text-link { display: inline-flex; align-items: center; gap: .85rem; min-height: 44px; color: #245c40; font-size: .85rem; font-weight: 650; }
.home-text-link:hover { color: #122f27; text-decoration: underline; text-underline-offset: 5px; }
.home-services-layout { display: grid; grid-template-columns: .85fr 1.4fr; align-items: start; gap: clamp(2rem, 6vw, 6rem); }
.home-section-intro { padding-top: .7rem; }
.home-service-list { border-top: 1px solid var(--home-line); }
.home-service { display: grid; grid-template-columns: 42px 1fr 20px; align-items: center; gap: 1rem; padding: 1.2rem .5rem; border-bottom: 1px solid var(--home-line); color: var(--home-ink); transition: background .18s ease; }
.home-service:hover { background: #f3f7ef; color: var(--home-ink); }
.home-service-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 8px; background: #edf4e9; font-size: 1.35rem; color: #477442; }
.home-service h3 { font-size: 1rem; line-height: 1.4; margin: 0 0 .3rem; }
.home-service-copy > span { display: block; color: var(--home-muted); font-size: .84rem; line-height: 1.6; }
.home-service-arrow { color: #3f6b4b; font-size: .9rem; }
.home-projects { background: #f2f5ef; border-block: 1px solid #e6ece1; }
.home-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem 3rem; margin-bottom: 2rem; }
.home-section-heading > div > p:last-child { margin-bottom: 0; }
.home-section-heading > .home-text-link { flex-shrink: 0; }
.home-project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.home-project { min-width: 0; background: #fff; border: 1px solid #dce6d6; border-radius: 10px; overflow: hidden; transition: border-color .18s ease, box-shadow .18s ease; }
.home-project:has(a:hover), .home-project:focus-within { border-color: #8eae7d; box-shadow: 0 8px 24px #1d39200b; }
.home-project-link { display: flex; flex-direction: column; height: 100%; color: var(--home-muted); }
.home-project-link:hover { color: var(--home-muted); }
.home-project-image { aspect-ratio: 16 / 10; overflow: hidden; background: #e9eee5; }
.home-project-image img { width: 100%; height: 100%; object-fit: cover; }
.home-project-body { display: flex; flex-direction: column; flex: 1; padding: 1.65rem; }
.home-project-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin-bottom: 1.35rem; }
.home-project-status { border: 1px solid #dce3dc; border-radius: 4px; background: #f4f6f2; padding: .25rem .5rem; font-size: .67rem; color: #4e6254; font-weight: 650; }
.home-project-status.is-complete { background: #eaf3e4; border-color: #d5e5cb; color: #315b35; }
.home-project-category { font-size: .7rem; color: #54685d; overflow-wrap: anywhere; }
.home-project h3 { font-size: 1.2rem; line-height: 1.45; margin: 0 0 1rem; overflow-wrap: anywhere; }
.home-project-body > p { font-size: .85rem; line-height: 1.75; margin-bottom: 1rem; }
.home-project-location { display: flex; align-items: baseline; gap: .4rem; color: #647366; font-size: .75rem; line-height: 1.6; margin-top: auto; overflow-wrap: anywhere; }
.home-project-location .bi { flex-shrink: 0; }
.home-project-readmore { display: flex; align-items: center; justify-content: space-between; padding-top: 1rem; margin-top: 1.25rem; border-top: 1px solid #e5ece1; color: #245c40; font-size: .8rem; font-weight: 650; }
.home-about-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(2rem, 6vw, 6rem); }
.home-fieldwork { margin: 0; min-width: 0; }
.home-fieldwork-images { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: #e7ede3; border-radius: 10px; }
.home-fieldwork .page-hero-controls { margin-top: .8rem; gap: .5rem; }
.home-fieldwork .page-hero-controls button { background: #fff; color: #245c40; border-color: #b7cbb7; }
.home-fieldwork .page-hero-controls button:hover { background: #edf4e9; }
.home-fieldwork .page-hero-controls button:focus-visible { outline-color: #245c40; }
.home-about-layout.home-about-text-only { grid-template-columns: 1fr; max-width: 850px; }
.home-fieldwork figcaption { display: flex; align-items: baseline; flex-wrap: wrap; gap: .3rem .75rem; color: #5c6b60; font-size: .72rem; line-height: 1.6; margin-top: .85rem; }
.home-image-caption-label { color: #36543c; font-weight: 700; }
.home-about-intro { color: var(--home-muted); font-size: .95rem; line-height: 1.8; margin: 0 0 1.5rem; }
.home-principles { list-style: none; margin: 0 0 1rem; padding: 0; }
.home-principles li { display: grid; grid-template-columns: 30px 1fr; gap: .9rem; padding: 1rem 0; border-top: 1px solid var(--home-line); }
.home-principles li > span { color: #668353; font-size: .72rem; font-weight: 700; padding-top: .25rem; }
.home-principles h3 { font-size: .95rem; margin: 0 0 .35rem; }
.home-principles p { font-size: .83rem; line-height: 1.65; color: var(--home-muted); margin: 0; }
.home-team { background: #f8faf6; border-top: 1px solid #e6ece1; }
.home-team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem; }
.home-person { min-width: 0; }
.home-person-link { display: flex; flex-direction: column; height: 100%; color: var(--home-muted); border-radius: 8px; }
.home-person-link:hover { color: var(--home-muted); }
.home-person-image { aspect-ratio: 6 / 5; overflow: hidden; background: #e7ede3; border: 1px solid #e0e8da; border-radius: 8px; }
.home-person-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; }
.home-person-copy { padding-top: 1.1rem; display: flex; flex-direction: column; flex: 1; }
.home-person h3 { font-size: 1.1rem; line-height: 1.4; margin: 0 0 .3rem; overflow-wrap: anywhere; }
.home-person p { color: var(--home-muted); font-size: .83rem; line-height: 1.6; margin: 0 0 .75rem; overflow-wrap: anywhere; }
.home-person-copy > span { display: flex; align-items: center; gap: .65rem; color: #245c40; font-size: .78rem; font-weight: 650; min-height: 38px; margin-top: auto; }
.home-person-link:hover .home-person-copy > span { text-decoration: underline; text-underline-offset: 4px; }
.home-empty { border: 1px solid var(--home-line); border-radius: 8px; padding: 1.5rem; color: var(--home-muted); background: #fff; }
.home-empty p { margin-bottom: .5rem; line-height: 1.7; }
.home-page .page-hero-home { min-height: 470px; }
.home-page .page-hero-home .page-hero-content { padding-block: 3.5rem; }
.home-page .page-hero-home h1 { max-width: 880px; }
@media (max-width: 991.98px) {
    .home-services-layout { grid-template-columns: 1fr 1.4fr; gap: 2rem; }
    .home-project-grid { gap: 1rem; }
    .home-project-body { padding: 1.25rem; }
    .home-project h3 { font-size: 1.05rem; }
    .home-about-layout { gap: 2rem; }
    .home-team-grid { gap: 1.1rem; }
    .home-section-heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
}
@media (max-width: 767.98px) {
    .home-services-layout, .home-about-layout { grid-template-columns: 1fr; gap: 1.5rem; }
    .home-section-intro { padding-top: 0; }
    .home-section-intro > p:not(.home-eyebrow) { margin-bottom: .5rem; }
    .home-service { grid-template-columns: 36px 1fr 16px; gap: .7rem; padding: 1rem 0; }
    .home-service-icon { width: 36px; height: 36px; font-size: 1.15rem; }
    .home-service h3 { font-size: .94rem; }
    .home-service-copy > span { font-size: .8rem; }
    .home-project-grid, .home-team-grid { grid-template-columns: 1fr; gap: 1rem; }
    .home-project-meta { margin-bottom: .9rem; }
    .home-project h3 { font-size: 1.1rem; margin-bottom: .65rem; }
    .home-project-readmore { margin-top: .8rem; padding-top: .8rem; }
    .home-project-image { aspect-ratio: 16 / 8; }
    .home-about-copy { grid-row: 1; }
    .home-fieldwork-images { aspect-ratio: 4 / 3; max-height: 360px; }
    .home-person-link { display: grid; grid-template-columns: 100px 1fr; gap: 1rem; padding: 1rem 0; border-top: 1px solid var(--home-line); border-radius: 0; }
    .home-person-image { aspect-ratio: 4 / 5; }
    .home-person-copy { padding: 0; }
    .home-person h3 { font-size: 1rem; }
    .home-person-copy > span { min-height: 32px; }
    .home-team-grid { gap: 0; }
    .home-page .page-hero-home { min-height: 350px; }
    .home-page .page-hero-home .page-hero-content { padding-block: 2.75rem; }
}
@media (prefers-reduced-motion: reduce) { .home-service, .home-project { transition: none; } }

/* Homepage polish, coordinated with the public service and portfolio pages. */
.home-content{--home-ink:#143342;--home-muted:#536c75;--home-line:#d7e4e1;background:#f4f7f6}
.home-content h2{font-size:clamp(2rem,3.2vw,3.2rem);font-weight:700;letter-spacing:-.045em}
.home-content .home-eyebrow{color:#876126;letter-spacing:.18em;font-size:.74rem}
.home-content a:focus-visible{outline-color:#146772}.home-content .home-text-link{color:#146772;gap:1rem;font-size:.9rem}.home-content .home-text-link i{transition:transform .3s}
.home-explore{display:flex;align-items:center;gap:1rem 2rem;flex-wrap:wrap;padding-block:1.3rem;border-bottom:1px solid var(--home-line)}
.home-explore>span{text-transform:uppercase;letter-spacing:.13em;font-size:.7rem;font-weight:750;color:#876126;margin-right:auto}.home-explore>a{display:inline-flex;align-items:center;gap:1.25rem;min-height:44px;color:#146772;font-size:.85rem;font-weight:650}.home-explore>a>span{color:#876126}
.home-content .home-section{scroll-margin-top:100px}.home-services{background:radial-gradient(ellipse at 100% 0,#deeeea,transparent 60%)}
.home-content .home-service-list{border:0;display:grid;gap:.8rem}.home-content .home-service{border:1px solid #d7e4e1;background:#fff;border-radius:16px;padding:1.25rem;box-shadow:0 4px 16px #14334206;transition:transform .3s,box-shadow .3s,border-color .3s}
.home-content .home-service-icon{background:#e7f1ed;color:#146772;border-radius:13px;transition:background .3s,color .3s,transform .3s}.home-content .home-service-arrow{color:#146772;transition:transform .3s}.home-content .home-service h3{font-size:1.05rem}.home-content .home-service-copy>span{line-height:1.75}
.home-content .home-projects{background:#eaf1ee;border-color:#d7e4e1}.home-content .home-project{border-color:#d7e4e1;border-radius:20px;box-shadow:0 5px 20px #14334208;transition:transform .35s,box-shadow .35s,border-color .35s}.home-content .home-project-image{background:#e2eeea;position:relative;isolation:isolate}.home-content .home-project-image:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#14334226);pointer-events:none}.home-content .home-project-image img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.home-content .home-project-status{border-radius:999px;padding:.35rem .7rem;background:#e9f3f4;color:#205965;border-color:#d5e5e5}.home-content .home-project-status.is-complete{background:#e4f3e9;color:#215736;border-color:#cee4d5}.home-content .home-project-readmore{color:#146772}.home-content .home-project-readmore i{display:grid;place-items:center;width:34px;height:34px;background:#eaf3ef;border-radius:50%;transition:background .3s,color .3s,transform .3s}
.home-content .home-about{background:#fff}.home-content .home-fieldwork-images{border-radius:24px;box-shadow:0 18px 46px #14334212;border:1px solid #d7e4e1}.home-content .home-fieldwork figcaption{background:#eef4f1;border-radius:12px;padding:1rem;line-height:1.7}.home-content .home-image-caption-label{color:#146772}.home-content .home-fieldwork .page-hero-controls button{color:#146772;border-color:#bfd7ce}
.home-content .home-principles li{grid-template-columns:38px 1fr;gap:1rem;padding:1.25rem 0}.home-content .home-principles li>span{display:grid;place-items:center;align-self:start;width:36px;height:36px;border-radius:50%;padding:0;background:#e9f2ed;color:#146772}.home-content .home-principles h3{font-size:1rem}.home-content .home-principles p{line-height:1.8}
.home-content .home-team{background:radial-gradient(ellipse at 0 100%,#deeeea,transparent 55%),#f4f7f6;border-color:#d7e4e1}.home-content .home-person{background:white;border:1px solid #d7e4e1;border-radius:20px;overflow:hidden;box-shadow:0 5px 20px #14334208;transition:transform .35s,box-shadow .35s}.home-content .home-person-image{border:0;border-radius:0}.home-content .home-person-image img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}.home-content .home-person-copy{padding:1.5rem}.home-content .home-person-copy>span{border-top:1px solid var(--home-line);padding-top:1rem;justify-content:space-between;color:#146772}.home-content .home-person-copy>span>i{transition:transform .3s}.home-content .home-empty{border-radius:18px;padding:2rem}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.home-content .home-service:hover{transform:translateX(5px);border-color:#aacbc2;box-shadow:0 10px 24px #1433420d}.home-content .home-service:hover .home-service-icon{background:#146772;color:white;transform:rotate(-4deg)}.home-content .home-service:hover .home-service-arrow,.home-content .home-text-link:hover i{transform:translate(3px,-3px)}.home-content .home-project:hover,.home-content .home-person:hover{transform:translateY(-6px);box-shadow:0 20px 38px #14334216}.home-content .home-project:hover img,.home-content .home-person:hover img{transform:scale(1.04)}.home-content .home-project:hover .home-project-readmore i{background:#146772;color:white;transform:rotate(45deg)}.home-content .home-person:hover .home-person-copy>span>i{transform:translate(3px,-3px)}}
@keyframes home-arrive{from{opacity:.2;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){.home-content .home-arriving{animation:home-arrive .65s cubic-bezier(.2,.7,.2,1) both}}
@media(max-width:767.98px){.home-explore{gap:.25rem 1.25rem;padding-block:1rem}.home-explore>span{flex-basis:100%}.home-explore>a{font-size:.8rem;gap:.5rem}.home-content .home-service{padding:1rem}.home-content .home-team-grid{gap:1rem}.home-content .home-person-link{border:0;padding:1rem;gap:1rem;border-radius:18px}.home-content .home-person-image{border-radius:12px}.home-content .home-person-copy{padding:0}.home-content .home-person-copy>span{padding-top:.5rem}.home-content .home-fieldwork-images{border-radius:18px}}
@media(prefers-reduced-motion:reduce){.home-content .home-arriving,.home-content .home-service,.home-content .home-service *,.home-content .home-project,.home-content .home-project *,.home-content .home-person,.home-content .home-person *,.home-content .home-text-link i{animation:none!important;transition:none!important}}
