/* Approved homepage composition. Shared navigation lives in brand.css. */
.home-page { --soft:#c4c8bd; }
.home-page .wrap { max-width:1424px; width:calc(100% - 112px); }
.home-page .hero { padding:66px 0 52px; }
.hero-topline { display:flex; justify-content:space-between; gap:20px; }
.hero-topline .eyebrow { margin:0 0 46px; color:var(--brass); font-size:.6875rem; }
.home-page .hero h1 { font-size:inherit; max-width:none; line-height:1; letter-spacing:0; }
.hero-title-primary { display:block; font-family:var(--sans); font-size:clamp(3.25rem,6.4vw,6.2rem); font-weight:500; letter-spacing:-.065em; line-height:1.08; }
.hero-mobile-break { display:none; }
.hero-title-partnership { display:block; padding-left:14%; font-family:var(--serif); font-size:clamp(5.25rem,10.5vw,10rem); line-height:1.05; letter-spacing:-.035em; margin-top:6px; }
.hero-title-partnership em { font-style:italic; }
.home-page .hero-introduction { margin-top:54px; padding-top:32px; gap:40px; grid-template-columns:1fr auto; }
.home-page .hero-description { max-width:51ch; font-size:1.0625rem; color:var(--soft); line-height:1.6; }
.home-page .hero-actions { gap:28px; }
.home-page .button { min-height:56px; padding:16px 24px; }
.home-page .hero .button-light { background:var(--brass); border-color:var(--brass); }
.home-page .hero .button-light:hover { background:var(--cream); }
.home-page .section-light,.home-page .section-dark { padding-block:94px; }
/* Selected projects share one panel; the feature no longer occupies a second hero. */
.home-page .portfolio.section-dark { padding-block:66px 44px; background:#dce0d7; color:var(--ink); --line:rgba(37,57,46,.23); --line-dark:var(--line); }
.portfolio-heading { padding-bottom:26px; border-bottom:1px solid var(--line); margin-bottom:28px; }
.portfolio-heading h2 { font-family:var(--sans); font-size:2.25rem; font-weight:500; line-height:1.2; letter-spacing:-.045em; }
.portfolio-heading h2 em { font-family:var(--serif); font-size:1.18em; color:var(--ink); font-weight:400; letter-spacing:-.025em; }
.portfolio-layout { display:grid; grid-template-columns:minmax(0,1.38fr) minmax(0,1fr); gap:56px; align-items:start; }
.portfolio-feature { min-width:0; }
.portfolio-figure { margin:0; }
.portfolio-figure figcaption { display:flex; justify-content:space-between; flex-wrap:wrap; gap:3px 18px; font-size:.6875rem; line-height:1.55; color:#52614e; padding-bottom:11px; }
.portfolio-figure>a { display:block; }
.portfolio-figure img { display:block; width:100%; height:auto; }
.portfolio-copy { padding-top:25px; }
.portfolio-type { font:400 .6875rem/1.5 var(--mono); color:#52614e; text-transform:uppercase; letter-spacing:.055em; }
.portfolio-copy h3 { font:400 clamp(3.25rem,4.6vw,4rem)/1.05 var(--serif); letter-spacing:-.035em; margin:10px 0 13px; }
.portfolio-street { white-space:nowrap; }
.portfolio-location { font-size:.8125rem; color:#52614e; line-height:1.55; }
.portfolio-summary { font-size:1rem; line-height:1.65; max-width:58ch; margin:18px 0 8px; }
.portfolio-action-row { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:4px 20px; }
.portfolio-stage { display:inline-flex; gap:7px; align-items:center; color:#52614e; font-size:.6875rem; line-height:1.6; }
.portfolio-stage::before { content:''; display:block; width:4px; height:4px; border-radius:50%; background:var(--brass-ink); flex-shrink:0; }
.portfolio-link { display:inline-flex; justify-content:space-between; align-items:center; gap:18px; min-height:44px; color:var(--ink); text-decoration:none; font-size:.8125rem; line-height:1.5; }
.portfolio-link>span { display:inline-block; }
.portfolio-link:hover { text-decoration:underline; text-decoration-thickness:1px; }
.portfolio a:focus-visible { outline-color:var(--brass-ink); }
.portfolio-copy .portfolio-action-row { margin-top:17px; padding-top:10px; border-top:1px solid var(--line); }
.portfolio-index { list-style:none; margin:0; padding:0 0 0 32px; border-left:1px solid var(--line); }
.portfolio-index>li { padding:20px 0 14px; border-top:1px solid var(--line); }
.portfolio-index>li:first-child { padding-top:0; border-top:0; }
.portfolio-index>li:last-child { padding-bottom:0; }
.opportunity h3 { font:400 2rem/1.12 var(--serif); letter-spacing:-.02em; }
.opportunity-meta { font-size:.75rem; color:#52614e; line-height:1.5; margin-top:7px; }
.opportunity-summary { margin:10px 0 4px; font-size:.875rem; line-height:1.6; color:#3f5143; }
.opportunity .portfolio-link { font-size:.75rem; }
.portfolio-note { margin-top:30px; padding-top:19px; border-top:1px solid var(--line); color:#52614e; font-size:.75rem; line-height:1.65; }
.portfolio-note>span { display:inline-block; }
@media (max-width:1100px) and (min-width:901px) {
 .portfolio-layout { gap:40px; }
 .portfolio-index { padding-left:24px; }
 .portfolio-copy h3 { font-size:3.25rem; }
 .portfolio-action-row { gap:4px 12px; }
 .portfolio-index .portfolio-action-row { display:block; margin-top:10px; }
 .portfolio-index .portfolio-stage { display:flex; }
 .portfolio-index .portfolio-link { min-height:40px; }
}
@media (max-width:900px) {
 .portfolio-layout { grid-template-columns:1fr; gap:34px; }
 .portfolio-index { padding-left:0; border-left:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:32px; }
 .portfolio-index>li,.portfolio-index>li:first-child { border-top:1px solid var(--line); padding-top:24px; }
 .portfolio-copy h3 { font-size:3.5rem; }
 .portfolio-copy .portfolio-action-row { justify-content:flex-start; gap:16px 36px; }
 .portfolio-index .portfolio-action-row { display:block; margin-top:10px; }
 .portfolio-index .portfolio-stage { display:flex; }
}
@media (max-width:700px) {
 .home-page .portfolio.section-dark { padding-block:40px 32px; }
 .portfolio-heading { padding-bottom:20px; margin-bottom:22px; }
 .portfolio-heading h2 { font-size:1.875rem; }
 .portfolio-heading h2 em { white-space:nowrap; }
 .portfolio-figure figcaption { display:block; font-size:.625rem; line-height:1.6; padding-bottom:10px; }
 .portfolio-figure figcaption>span { display:block; }
 .portfolio-copy { padding-top:19px; }
 .portfolio-copy h3 { font-size:2.75rem; margin:9px 0 10px; }
 .portfolio-type { font-size:.625rem; }
 .portfolio-location { font-size:.75rem; }
 .portfolio-summary { font-size:.9375rem; margin-top:14px; }
 .portfolio-copy .portfolio-action-row { justify-content:space-between; margin-top:14px; gap:4px 16px; padding-top:6px; }
 .portfolio-stage { font-size:.6875rem; }
 .portfolio-link { font-size:.75rem; gap:12px; }
 .portfolio-layout { gap:28px; }
 .portfolio-index { display:block; }
 .portfolio-index>li,.portfolio-index>li:first-child { padding:22px 0 18px; }
 .portfolio-index>li:last-child { padding-bottom:0; }
 .opportunity h3 { font-size:2rem; }
 .opportunity-meta { font-size:.75rem; }
 .opportunity-summary { font-size:.9375rem; }
 .portfolio-index .portfolio-action-row { display:flex; margin-top:7px; }
 .portfolio-note { margin-top:23px; font-size:.6875rem; }
}
@media (prefers-reduced-motion:no-preference) and (hover:hover) {
 .portfolio-link>span { transition:transform 160ms ease; }
 .portfolio-link:hover>span { transform:translate(2px,-2px); }
}
@media print {
 .home-page .portfolio.section-dark { padding-block:25px; }
 .portfolio-layout { grid-template-columns:1.3fr 1fr; gap:24px; }
 .portfolio-copy h3 { font-size:28pt; }
 .portfolio-heading h2 { font-size:24pt; }
 .portfolio-index { padding-left:20px; }
 .portfolio-link { display:none; }
 .portfolio-index>li { break-inside:avoid; }
}
.home-page .approach { background:var(--forest-2); }
.home-page .approach .section-heading { margin-bottom:54px; }
.home-page .approach .eyebrow { color:var(--brass); }
.home-page .approach h2 { font-family:var(--sans); font-weight:500; font-size:clamp(2.9rem,5.4vw,5rem); letter-spacing:-.055em; line-height:1.07; }
.home-page .approach h2 em { font-family:var(--serif); font-size:1.14em; letter-spacing:-.03em; color:var(--brass); }
.home-page .approach .ways-grid { gap:0; background:none; border-top:1px solid var(--line-dark); }
.home-page .approach .ways-grid > article { padding:30px 40px 0; background:none; border:0; border-left:1px solid var(--line-dark); }
.home-page .approach .ways-grid > article:first-child { padding-left:0; border-left:0; }
.home-page .approach .ways-grid > article:last-child { padding-right:0; }
.home-page .approach .ways-grid h3 { color:var(--cream); font-size:2.7rem; letter-spacing:-.02em; margin-bottom:26px; }
.home-page .approach .ways-grid p { color:var(--soft); font-size:.9375rem; line-height:1.7; margin-bottom:28px; }
.home-page .approach .ways-grid .text-link { color:var(--cream); font-weight:400; }
.home-page .approach .ways-grid .text-link:hover { color:var(--brass); }
.people-layout { display:grid; grid-template-columns:.4fr 2fr; gap:60px; align-items:start; }
.home-page .people .section-heading { display:block; margin:0; }
.home-page .people .eyebrow { color:var(--brass-ink); }
.home-page .people h2 { font-size:5.7rem; line-height:.95; margin-top:22px; }
.home-page .people .people-grid { gap:0 40px; }
.home-page .people .person-card { grid-template-columns:128px minmax(0,1fr); gap:22px; padding:26px 0 34px; }
.home-page .people .person-portrait { width:128px; height:160px; }
.home-page .people .person-content h3 { font-size:1.3rem; }
.home-page .people .person-content .person-role { font-size:.8125rem; }
.home-page .people .person-content .person-description,.home-page .people .person-content .person-evidence { font-size:.9375rem; line-height:1.65; }
.home-page .contact-layout { grid-template-columns:1fr 1.08fr; column-gap:100px; row-gap:48px; }
.home-page .contact-copy h2 { font-size:clamp(5rem,8.8vw,8rem); letter-spacing:-.045em; line-height:1; }
.home-page .contact-copy > p:not(.eyebrow) { font-size:1.125rem; max-width:30ch; margin-top:24px; }
.home-page .mail-link { margin-top:30px; }
.home-page .inquiry-panel { background:var(--paper); color:var(--ink); padding:36px; }
.home-page .inquiry-panel h3 { color:var(--ink); font-size:2.5rem; margin-bottom:26px; }
.home-page .inquiry-panel label { color:var(--ink); font-size:.8125rem; }
.home-page .inquiry-panel input,.home-page .inquiry-panel select,.home-page .inquiry-panel textarea { color:var(--ink); background:transparent; border-color:#7b8778; }
.home-page .inquiry-panel input::placeholder { color:#626b61; }
.home-page .inquiry-panel .optional,.home-page .inquiry-panel .form-guidance,.home-page .inquiry-panel .form-privacy { color:#586354; }
.home-page .inquiry-panel .form-privacy a { color:var(--ink); }
.home-page .inquiry-panel .button { background:var(--forest); color:var(--cream); }
.home-page .inquiry-panel .button:hover { background:#304335; }
.home-page .inquiry-panel :focus-visible { outline-color:var(--brass-ink); }
.home-page .office-details { max-width:400px; }
@media (min-width:1400px) { .people-layout .section-heading { position:sticky; top:126px; } }
@media (max-width:1200px) {
 .home-page .people-layout { grid-template-columns:1fr; gap:30px; }
 .home-page .people h2 { font-size:4.4rem; margin-top:14px; }
 .home-page .people h2 br { display:none; }
 .home-page .people .section-heading .eyebrow { margin:0; }
 .home-page .people .people-grid { grid-template-columns:1fr 1fr; }
 .home-page .contact-layout { column-gap:50px; }
}
@media (max-width:1100px) {
 .home-page .wrap { width:calc(100% - 64px); }
 .home-page .hero { padding-top:50px; }
 .hero-topline .eyebrow { margin-bottom:36px; }
 .home-page .hero-introduction { margin-top:42px; grid-template-columns:1fr; gap:26px; }
 .home-page .hero-description { max-width:57ch; }
 .home-page .approach .ways-grid > article { padding-inline:26px; }
 .home-page .approach .ways-grid h3 { font-size:2.2rem; }
 .home-page .people .person-card { grid-template-columns:120px minmax(0,1fr); gap:18px; }
 .home-page .people .person-portrait { width:120px; height:150px; }
 .home-page .people .people-grid { gap:0 30px; }
 .home-page .contact-layout { grid-template-columns:.85fr 1.15fr; gap:40px; }
 .home-page .inquiry-panel { padding:28px; }
}
@media (max-width:900px) and (min-width:701px) {
 .home-page .hero h1 .hero-title-partnership { font-size:10.3vw; }
 .home-page .people .people-grid { grid-template-columns:1fr; }
 .home-page .people .person-card { grid-template-columns:140px minmax(0,1fr); gap:30px; }
 .home-page .people .person-portrait { width:140px; height:175px; }
 .home-page .contact-layout { grid-template-columns:1fr 1.2fr; gap:28px; }
 .home-page .inquiry-panel .form-pair { grid-template-columns:1fr; }
}
@media (max-width:700px) {
 .home-page .wrap { width:calc(100% - 40px); }
 .home-page .hero { padding:32px 0 34px; }
 .hero-topline { align-items:start; gap:16px; }
 .hero-topline .eyebrow { margin:0 0 29px; font-size:.625rem; letter-spacing:.04em; }
 .hero-mobile-break { display:block; }
 .hero-title-primary { font-size:clamp(2.6rem,12.5vw,5rem); letter-spacing:-.058em; line-height:1.06; }
 .hero-title-partnership { font-size:clamp(3.6rem,17vw,6.7rem); padding-left:0; line-height:1.01; margin-top:18px; max-width:12ch; }
 .hero-title-partnership em { display:block; }
 .home-page .hero-introduction { margin-top:30px; padding-top:22px; gap:18px; }
 .home-page .hero-description { font-size:.9375rem; line-height:1.6; max-width:44ch; }
 .home-page .hero-actions { gap:10px 20px; }
 .home-page .hero .button { font-size:.8125rem; padding:13px 16px; min-height:50px; gap:24px; }
 .home-page .hero-actions .text-link { font-size:.8125rem; gap:10px; }
 .home-page .section-light,.home-page .section-dark { padding-block:52px; }
 .home-page .approach .section-heading { margin-bottom:30px; }
 .home-page .approach h2 { font-size:2.9rem; }
 .home-page .approach .ways-grid { grid-template-columns:1fr; }
 .home-page .approach .ways-grid > article,.home-page .approach .ways-grid > article:first-child,.home-page .approach .ways-grid > article:last-child { padding:26px 0; border:0; border-bottom:1px solid var(--line-dark); }
 .home-page .approach .ways-grid > article:last-child { border-bottom:0; padding-bottom:0; }
 .home-page .approach .ways-grid h3 { min-height:0; font-size:2.5rem; max-width:17ch; margin-bottom:16px; }
 .home-page .approach .ways-grid p { max-width:45ch; margin-bottom:12px; }
 .home-page .people-layout { gap:28px; }
 .home-page .people h2 { font-size:3.8rem; }
 .home-page .people .people-grid { grid-template-columns:1fr; }
 .home-page .people .person-card { grid-template-columns:96px minmax(0,1fr); column-gap:20px; row-gap:7px; padding:24px 0; }
 .home-page .people .person-portrait { width:96px; height:120px; }
 .home-page .people .person-content h3 { font-size:1.5rem; }
 .home-page .people .person-content .person-role { font-size:.8125rem; }
 .home-page .people .person-content .person-description,.home-page .people .person-content .person-evidence { font-size:.9375rem; }
 .home-page .contact-layout { grid-template-columns:1fr; row-gap:32px; }
 .home-page .contact-copy h2 { font-size:5rem; }
 .home-page .contact-copy > p:not(.eyebrow) { font-size:1rem; }
 .home-page .inquiry-panel { padding:26px 20px; }
 .home-page .inquiry-panel .form-pair { grid-template-columns:1fr; gap:20px; }
 .home-page .office-details { margin-top:4px; }

}
@media (min-width:601px) and (max-width:700px) {
 .home-page .people .person-content { display:block; }
 .home-page .people .person-portrait { grid-row:1; }
}
@media (prefers-reduced-motion:no-preference) {
 .home-page .hero-title-primary,.home-page .hero-title-partnership { animation:hero-settle 650ms cubic-bezier(.16,1,.3,1) both; }
 .home-page .hero-title-partnership { animation-delay:70ms; }
 @keyframes hero-settle { from { transform:translateY(12px); } to { transform:translateY(0); } }
}
@media print {
 .home-page .wrap { width:100%; }
 .home-page .hero-title-primary { font-size:36pt; }
 .home-page .hero-title-partnership { font-size:48pt; padding:0; }
 .home-page .section-dark { color:#111; }
 .home-page .approach .ways-grid h3,.home-page .approach .ways-grid p { color:#111; }
 .home-page .people-layout { display:block; }
 .home-page .people h2 { font-size:32pt; }
}
