/* Fixed typography: screen width changes the grid, not desktop type size. */
:root { --type-display-xl:48px; --type-display-lg:48px; --type-card:28px; }
.hero h1 { font-size:60px; line-height:1.16; letter-spacing:-.045em; }
h2,.services-heading h2,.work-intro h2,.values-title,.impact-copy h2,.approach-copy h2,.about-copy h2,.partnership-copy h2,.questions-intro h2 { font-size:48px; line-height:1.18; letter-spacing:-.025em; }
.contact-copy h2 { font-size:56px; line-height:1.18; }
.service-slide-copy h3 { font-size:40px; line-height:1.18; }
.value-card h3 { font-size:30px; line-height:1.25; }
.process-card h3 { font-size:32px; line-height:1.25; }
.case-story h3 { font-size:34px; line-height:1.25; }
.case-small-body h3 { font-size:27px; line-height:1.3; }
.impact-stats b { font-size:56px; }
.search-body strong,.editorial-page strong,.strategy-board strong { font-size:30px; line-height:1.2; }
.hero .lede { font-size:18px; line-height:1.7; }
.about-copy .about-lede { font-size:21px; line-height:1.55; }
.partnership-copy .partnership-lede { font-size:16px; }
.brand { flex-shrink:0; }
.brand .official-logo { width:166px; height:auto; display:block; margin:0; }
.footer .brand .official-logo { width:186px; filter:brightness(0) invert(1); }

/* Image 1: a readable quotation with whitespace, not a display headline. */
.manifesto { grid-template-columns:.9fr 1.25fr .6fr; gap:40px; padding-top:48px; margin-top:56px; align-items:center; }
.manifesto blockquote { font-size:26px; line-height:1.5; letter-spacing:0; max-width:480px; padding:18px 0; text-wrap:pretty; }
.manifesto>div:first-child>p:not(.eyebrow) { font-size:14px; line-height:1.75; }
.manifesto .eyebrow { font-size:10px; letter-spacing:.1em; }
.manifesto-visual { min-height:270px; }
.manifesto-visual span { font-size:9px; }

/* Image 2: smaller commitment quote and deliberate vertical rhythm. */
.promise { padding:28px; margin-top:28px; border-radius:10px; }
.promise-person { margin-bottom:24px; gap:14px; }
.promise-person img { width:52px; height:52px; }
.promise-person b { font-size:20px; line-height:1.3; }
.promise-person span { font-size:10px; line-height:1.6; letter-spacing:.07em; }
.promise>small { font-size:10px; line-height:1.5; letter-spacing:.09em; margin-bottom:12px; }
.promise>strong { font-size:24px; line-height:1.5; letter-spacing:0; margin:0 0 18px; max-width:430px; text-wrap:pretty; }
.promise>p { font-size:14px; line-height:1.8; margin-bottom:24px; }
.promise-points { gap:12px; padding-top:14px; }
.promise-points span { padding:0; font-size:9px; letter-spacing:.02em; line-height:1.6; }
.promise-points span+span { padding-left:12px; }

/* Image 3: three aligned cards with one label above the group. */
.partnership-practice-label { position:relative; z-index:2; margin:42px auto 16px; width:min(100%,var(--container)); font-size:11px; letter-spacing:.12em; }
.partnership-rail { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:0; border:0; }
.partnership-rail>article { min-height:0; display:grid; grid-template-rows:auto 58px auto; align-content:start; padding:26px; border:1px solid #dce2d4; border-radius:10px; background:#fcfaf4; }
.partnership-rail>article+article,.partnership-rail>*:nth-child(even),.partnership-rail>*:nth-child(n+3) { border:1px solid #dce2d4; }
.partnership-rail article>span { position:static; font-family:var(--sans); font-size:11px; color:#6b7d55; margin-bottom:20px; line-height:1.5; }
.partnership-rail h3 { font-size:24px; line-height:1.25; letter-spacing:-.015em; margin:0; }
.partnership-rail p { margin:12px 0 0; font-size:14px; line-height:1.75; }

/* Restore the branch. Shared paper and soft image edges join the sections. */
.hero { background:#f8f6ee; }
.hero-foliage-depth { mask-image:linear-gradient(#000,transparent 85%); }
.services { background:#f8f6ee; padding-top:64px; }
.services::before { display:none; }
.services-atmosphere { height:440px; overflow:visible; pointer-events:none; }
.services-top-branch { width:640px; max-width:51%; right:-18px; top:-74px; opacity:1; filter:saturate(.88); mask-image:linear-gradient(180deg,#000 0%,#000 70%,transparent 100%); }
.services-hero { min-height:380px; padding-bottom:48px; }
.services-heading { width:65%; }
.services-heading h2 { max-width:700px; }
.services-heading>p:not(.eyebrow) { max-width:530px; }
.services-mantra { right:5%; top:245px; padding:8px 10px; background:rgba(248,246,238,.9); border-radius:4px; font-size:10px; }

/* Forests occupy their own bottom margin, never behind reading content. */
.values,.questions { padding-bottom:calc(var(--section-pad) + 155px); }
.section-forest { position:absolute; bottom:0; left:0; width:100%; height:190px; object-fit:contain; object-position:left bottom; pointer-events:none; z-index:0; }
.values>.section-forest { width:780px; max-width:100%; height:auto; max-height:260px; opacity:.85; }
.questions>.section-forest { height:220px; object-fit:cover; object-position:center bottom; opacity:.8; }
.questions-intro,.question-list { position:relative; z-index:1; }

@media(max-width:1200px) {
 .manifesto { gap:28px; }
 .manifesto blockquote { font-size:26px; }
 .manifesto-visual { min-height:230px; }
 .partnership-rail>article { padding:22px; }
 .partnership-rail h3 { font-size:24px; }
}
@media(max-width:980px) {
 .hero h1 { font-size:44px; }
 .services-top-branch { width:470px; max-width:49%; top:-35px; right:-25px; }
 .services-heading { width:67%; }
 .services-heading h2 { font-size:40px; }
 .manifesto { grid-template-columns:1fr 1.25fr; gap:32px; }
 .manifesto-visual { grid-column:2; width:220px; min-height:220px; justify-self:end; }
 .manifesto blockquote { font-size:25px; }
 .promise { padding:24px; }
 .promise>strong { font-size:23px; }
 .promise-points { grid-template-columns:1fr; gap:8px; }
 .promise-points span+span { border:0; padding-left:0; }
 .partnership-rail { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
 .partnership-rail>article { padding:20px; grid-template-rows:auto 58px auto; }
 .partnership-rail h3 { font-size:22px; }
 .partnership-rail p { font-size:13px; }
}
@media(max-width:760px) {
 :root { --type-display-xl:38px; --type-display-lg:38px; --type-card:27px; }
 .brand .official-logo { width:142px; }
 .hero h1 { font-size:44px; }
 h2,.services-heading h2,.work-intro h2,.values-title,.impact-copy h2,.approach-copy h2,.about-copy h2,.partnership-copy h2,.questions-intro h2 { font-size:38px; }
 .contact-copy h2 { font-size:44px; }
 .service-slide-copy h3 { font-size:36px; }
 .case-story h3 { font-size:30px; }
 .case-small-body h3 { font-size:27px; }
 .services { padding-top:50px; }
 .services-atmosphere { height:270px; }
 .services-top-branch { max-width:none; width:340px; top:-10px; right:-190px; opacity:.7; mask-image:linear-gradient(180deg,#000,transparent 95%); }
 .services-heading { width:100%; }
 .services-heading h2 { padding-right:24px; }
 .services-hero { min-height:0; padding-bottom:32px; }
 .services-heading>p:not(.eyebrow) { font-size:15px; }
 .manifesto { grid-template-columns:1fr; gap:24px; padding-top:32px; margin-top:40px; }
 .manifesto blockquote { font-size:25px; line-height:1.5; padding:12px 0; max-width:520px; }
 .manifesto-visual { grid-column:auto; justify-self:center; width:240px; min-height:240px; }
 .promise { padding:24px; }
 .promise>strong { font-size:23px; }
 .promise-points { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
 .promise-points span+span { border-left:1px solid var(--line); padding-left:12px; }
 .partnership-rail { grid-template-columns:1fr; gap:14px; }
 .partnership-rail>article { padding:24px; grid-template-rows:auto auto auto; }
 .partnership-rail article>span { margin-bottom:12px; }
 .partnership-rail h3 { font-size:24px; }
 .partnership-rail p { font-size:14px; margin-top:12px; }
 .values,.questions { padding-bottom:calc(var(--section-pad) + 100px); }
 .section-forest { height:125px; }
 .values>.section-forest,.questions>.section-forest { max-height:125px; }
}
@media(max-width:460px) {
 .hero h1 { font-size:40px; }
 h2,.services-heading h2,.work-intro h2,.values-title,.impact-copy h2,.approach-copy h2,.about-copy h2,.partnership-copy h2,.questions-intro h2 { font-size:35px; }
 .contact-copy h2 { font-size:40px; }
 .manifesto blockquote { font-size:23px; }
 .promise { padding:22px; }
 .promise>strong { font-size:22px; }
 .promise-points { grid-template-columns:1fr; gap:9px; }
 .promise-points span+span { border:0; padding:0; }
 .services-top-branch { width:290px; right:-178px; }
.partnership-practice-label { margin-top:32px; }
}

/* Nature framing: distinct silhouettes, open content, a clear section change. */
.hero { border-bottom:1px solid #cbd3bf; }
.services { background:#edf0e5; padding-top:76px; }
.services-top-branch { top:-30px; right:-65px; width:600px; max-width:46%; filter:none; mask-image:none; opacity:.92; }
.services-mantra { background:#edf0e5; }
.brand .official-logo { width:162px; }
.footer .brand .official-logo { width:180px; }
.values { padding-bottom:calc(var(--section-pad) + 210px); }
.values>.section-forest { width:860px; height:auto; max-width:75%; max-height:none; opacity:.78; }
.questions { overflow:hidden; padding-bottom:calc(var(--section-pad) + 230px); }
.questions>.section-forest { width:100%; height:230px; max-height:none; object-fit:cover; object-position:center bottom; opacity:.72; }
.approach { overflow:clip; }
.nature-branch { position:absolute; pointer-events:none; z-index:0; }
.nature-branch-distant { left:-125px; bottom:40px; width:370px; opacity:.23; filter:blur(2px); }
.approach-copy,.process { position:relative; z-index:1; }
@media(min-width:1700px) {
 .nature-branch-distant { left:-70px; width:430px; opacity:.3; }
}
@media(max-width:980px) {
 .services-top-branch { width:450px; max-width:44%; right:-60px; }
 .values>.section-forest { max-width:90%; }
}
@media(max-width:760px) {
 .brand .official-logo { width:142px; }
 .services { padding-top:52px; }
 .services-top-branch { width:310px; max-width:none; right:-165px; top:-20px; opacity:.65; }
 .values,.questions { padding-bottom:calc(var(--section-pad) + 120px); }
 .values>.section-forest { width:600px; max-width:none; height:150px; object-fit:contain; object-position:left bottom; }
 .questions>.section-forest { height:135px; }
.nature-branch-distant { width:250px; left:-145px; bottom:25px; opacity:.17; }
}

/* Remove the forest strips and their reserved space. */
.values,.questions { padding-bottom:var(--section-pad); }
.services-top-branch { top:-55px; right:-18px; width:640px; max-width:51%; opacity:1; }

/* Dark woodland palette with layered glass, keeping the existing composition. */
.about {
 --forest:#f5f4e9; --muted:#c7d3c9; --olive:#b9c99e; --line:rgba(222,237,216,.18);
 color:#f5f4e9;
 background:linear-gradient(90deg,rgba(8,25,17,.9) 0%,rgba(8,25,17,.78) 42%,rgba(8,25,17,.38) 100%),url("assets/botanical/about-sunlit-forest.webp") center / cover no-repeat,#10271e;
 border-block:1px solid #30483a;
 isolation:isolate;
}
.about-copy h2,.about-copy .about-lede { color:#f5f4e9; }
.about-copy h2 em { color:#c6d5ae; }
.about .eyebrow { color:#c6d5ae; }
.about .eyebrow span { background:rgba(198,213,174,.45); }
.about-principles { padding:8px 22px; border:1px solid rgba(228,240,219,.18); border-radius:16px; background:rgba(230,242,222,.055); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); box-shadow:inset 0 1px 0 rgba(255,255,255,.08); }
.about-principles>div:last-child { border-bottom:0; }
.about .button-outline { color:#f5f4e9; border-color:rgba(228,240,219,.45); background:rgba(235,245,227,.07); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.about .button-outline:hover { color:#10271e; background:#e3ebd7; border-color:#e3ebd7; }
.about .button-outline:focus-visible { outline:2px solid #e3ebd7; outline-offset:5px; }
.about-facts { color:#c7d3c9; }
.about .founder-card { background:linear-gradient(135deg,rgba(245,251,237,.15),rgba(217,235,207,.045)); border:1px solid rgba(228,240,219,.3); border-radius:20px; backdrop-filter:blur(24px) saturate(115%); -webkit-backdrop-filter:blur(24px) saturate(115%); box-shadow:0 24px 64px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.2); }
.about .founder-photo { background:#283f31; border:1px solid rgba(228,240,219,.2); border-radius:12px; }
.about .founder-note { margin-top:20px; padding:20px; border:1px solid rgba(228,240,219,.14); border-radius:12px; background:rgba(9,27,19,.3); }
.about .founder-disciplines span { color:#dae4ce; border-color:rgba(228,240,219,.23); background:rgba(229,241,218,.06); }
@media(max-width:980px) {
 .services-top-branch { width:470px; max-width:49%; top:-35px; right:-25px; }
}
@media(max-width:760px) {
 .services-top-branch { max-width:none; width:340px; top:-10px; right:-190px; opacity:.7; }
 .about-principles { padding:6px 16px; }
 .about .founder-note { padding:18px; }
 .about { background-image:linear-gradient(180deg,rgba(8,25,17,.86),rgba(8,25,17,.64)),url("assets/botanical/about-sunlit-forest.webp"); background-position:center,62% center; }
}

/* Stick within the process section without creating a nested scroll container. */
body { overflow-x:clip; }
@media(min-width:981px) {
 .approach-copy { position:sticky; top:116px; align-self:start; }
}
@media(max-width:980px) {
 .approach-copy { position:relative; top:auto; }
}
