body{background:#fafaf8;color:#232423;font-weight:300}header{height:76px;margin:0;padding:0 3.8%;border:0;background:#fafaf8;gap:28px}.brand b{font-size:52px;letter-spacing:-3px;font-weight:200}.brand span{font-size:10px;letter-spacing:.13em}nav{font-size:14px;letter-spacing:0;gap:28px}.header-note{font-size:11px;letter-spacing:.18em;white-space:nowrap}.header-note span{margin-left:20px;font-size:24px}.hero{position:relative;padding:0;min-height:640px;height: min(52vw,800px)}.hero-photo{position:absolute;inset:0;height:100%;width:100%;object-fit:cover}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(250,248,244,.7),rgba(250,248,244,.35) 42%,transparent 65%);pointer-events:none}.hero-content{position:relative;z-index:1;padding:5.5% 4%;width:58%;max-width:880px}.hero .eyebrow{font-size:12px;letter-spacing:.23em;margin-bottom:24px}.hero h1{font-size:clamp(52px,5.5vw,88px);font-weight:300;letter-spacing:-.055em;line-height:1.02;margin:0 0 15px;max-width:none}.hero-position{font-size:clamp(20px,1.8vw,28px);line-height:1.3;letter-spacing:-.025em;margin-bottom:16px}.hero-copy{font-size:clamp(16px,1.3vw,20px);line-height:1.45;max-width:470px;margin-bottom:25px}.hero-actions{display:flex;align-items:center;gap:32px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:#252726;color:#fff;padding:18px 25px;font-size:12px;letter-spacing:.12em;white-space:nowrap}.button span{font-size:21px;line-height:1}.small-link{font-size:12px;letter-spacing:.12em;white-space:nowrap}.hero-words{position:absolute;z-index:1;right:5%;top:31%;color:#fff;text-shadow:0 1px 8px #222;font-size:12px;letter-spacing:.24em;line-height:1.9}.hero-location{position:absolute;z-index:1;right:4%;bottom:5%;font-size:11px;color:white;letter-spacing:.16em;text-align:right}.hero-location span{font-size:36px}.service-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:25px;padding-top:30px;padding-bottom:36px;text-align:center}.service-icon{display:block;font-size:37px;font-weight:200;height:50px;line-height:1}.service-strip h2{font-size:12px;letter-spacing:.13em;font-weight:500;line-height:1.65;margin:15px 0 12px;min-height:40px}.service-strip p{font-size:14px;line-height:1.5;margin:0;color:#555}.approach-feature{display:grid;grid-template-columns:1.08fr 1fr;background:#f1f1ee}.approach-image{position:relative;min-height:380px}.approach-image img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center 40%}.approach-image span{position:absolute;left:7%;top:10%;color:white;text-shadow:0 1px 8px #222;font-size:11px;letter-spacing:.24em;line-height:2}.approach-copy{padding:7%}.approach-copy h2{font-size:clamp(36px,3.6vw,58px);font-weight:300;letter-spacing:-.05em;line-height:1.04;margin:10px 0 20px}.approach-copy p{font-size:17px;line-height:1.45}.projects{padding-top:38px;padding-bottom:45px}.section-head{align-items:end;margin-bottom:20px}.section-head h2{font-size:clamp(26px,2.7vw,42px);letter-spacing:-.04em;margin:8px 0 0;font-weight:300}.eyebrow{font-size:12px;letter-spacing:.2em}.project-grid{grid-template-columns:repeat(4,1fr);gap:20px}.project-card:nth-child(even){padding:0}.project-card img{height:auto;aspect-ratio:1.8;object-fit:cover}.project-info{padding-top:12px;gap:8px}.project-info h3{font-size:17px;font-weight:400;letter-spacing:-.02em;margin-bottom:5px}.project-info p{font-size:12px;line-height:1.5}.project-info .arrow{font-size:23px}.section{padding-top:60px;padding-bottom:60px}.dark{background:#eaece7;color:#252924}.dark .section-title{font-size:45px;margin-top:20px}.dark .lead,.process p,.process span{color:#51574f}.process{margin-top:35px}.process h3{margin-top:18px}.tech img{height:420px}.tech h2{font-size:44px}.experience{padding-top:15px}.experience-grid img{height:300px}.about p{font-size:21px}.contact{background:linear-gradient(90deg,rgba(16,29,28,.82),rgba(16,29,28,.27)),url('/assets/cape-may-marsh.jpg') center 54%/cover;color:#fff;min-height:370px}.contact h2{font-size:clamp(40px,4.5vw,68px);font-weight:300;margin:14px 0 20px}.contact .lead{font-size:19px;line-height:1.4;max-width:500px}.contact .note{color:#f3f3ec}.contact input,.contact textarea{background:rgba(255,255,255,.93);color:#222}.contact details[open]{background:rgba(20,26,25,.85);padding:20px}.contact summary{font-size:13px;letter-spacing:.12em}.case-hero h1{font-weight:300}.case-photo{max-height:620px}footer{font-size:12px} @media(min-width:1700px){body{max-width:none}}
@media(max-width:1100px){header{gap:16px}.header-note{display:none}nav{gap:22px}.hero{min-height:610px}.hero-content{width:64%;padding-top:6%}.hero h1{font-size:58px}.hero-copy{max-width:410px}.hero-actions{gap:22px}.service-strip{gap:14px}.service-strip p{font-size:14px}.project-info h3{font-size:16px}.project-info .arrow{display:none}}
@media(max-width:800px){header{height:80px}.brand b{font-size:43px}.brand span{font-size:10px}nav{top:80px;font-size:16px}.hero{height:auto;min-height:660px}.hero-content{width:85%;padding:55px 5% 160px}.hero h1{font-size:clamp(44px,7.5vw,62px)}.hero-photo{object-position:62% center}.hero:after{background:linear-gradient(90deg,rgba(250,248,244,.91),rgba(250,248,244,.68) 55%,rgba(250,248,244,.08))}.hero-words{display:none}.hero-location{bottom:25px}.hero-position{font-size:22px}.hero-copy{font-size:17px}.service-strip{grid-template-columns:repeat(2,1fr);gap:30px;padding-top:30px}.service-strip>div:last-child{grid-column:1/-1}.approach-feature{grid-template-columns:1fr}.approach-image{min-height:320px}.approach-copy{padding:40px 5%}.project-grid{grid-template-columns:repeat(2,1fr);gap:30px 18px}.project-info h3{font-size:18px}.project-card img{height:auto}.section-head>.small-link{display:none}.section-head h2{font-size:32px}.tech h2{font-size:38px}.case-hero h1{font-size:56px}.experience-grid img{height:270px}}
@media(max-width:520px){.hero-content{width:100%;padding-top:38px}.hero .eyebrow{font-size:10px;letter-spacing:.16em}.hero h1{font-size:46px}.hero-position{font-size:20px}.desktop-break{display:none}.hero-copy{max-width:340px}.hero-actions{gap:20px;align-items:start;flex-direction:column}.hero{min-height:690px}.button{padding:16px 20px}.hero-location{color:#fff}.service-strip{gap:26px 15px}.service-strip h2{font-size:11px}.service-strip p{font-size:14px}.project-grid{grid-template-columns:1fr}.project-card img{aspect-ratio:1.7}.project-info h3{font-size:21px}.project-info .arrow{display:block}.approach-image{min-height:260px}.contact h2{font-size:44px}.section-title{font-weight:300}.section{padding-top:45px;padding-bottom:45px}}

/* Shared closing section, based on the approved footer reference. */
.footer-cta{min-height:475px;display:flex;align-items:center;padding:70px 4.6%;color:#fff;background:linear-gradient(90deg,rgba(16,29,28,.66),rgba(16,29,28,.24)),url('/assets/cape-may-marsh.jpg') center 54%/cover}
.footer-cta-content{max-width:610px}.footer-cta .eyebrow{font-size:12px;font-weight:600;letter-spacing:.16em}.footer-cta h2{font-weight:300;font-size:clamp(42px,4.5vw,68px);line-height:1.08;letter-spacing:-.045em;margin:24px 0 16px}.footer-cta p{font-size:17px;line-height:1.5;margin:0 0 24px}.footer-cta-button{display:inline-flex;align-items:center;gap:12px;padding:12px 15px;border:1px solid rgba(255,255,255,.85);font-size:13px;font-weight:500;letter-spacing:.025em;background:rgba(255,255,255,.12)}.footer-cta-button:hover{background:#fff;color:#282927}
.site-footer{display:block;background:#fafaf7;color:#27302e;padding:60px 4.6% 25px;font-size:14px;letter-spacing:0}.footer-main{display:grid;grid-template-columns:1.25fr 1.35fr .9fr;gap:35px;align-items:start;min-height:115px}.footer-brand{display:flex;flex-direction:column;gap:5px;align-items:flex-start}.footer-brand strong{font-size:25px;font-weight:500;line-height:1;letter-spacing:-.06em}.footer-brand span{font-size:11px;font-weight:600;letter-spacing:.025em}.site-footer nav{display:flex;flex-wrap:wrap;gap:24px;font-size:13px;letter-spacing:0}.site-footer nav a{padding:0}.site-footer nav a:hover{text-decoration:underline;border:0}.footer-main p{font-size:16px;line-height:1.25;margin:0}.footer-bottom{display:flex;justify-content:space-between;gap:25px;padding-top:19px;border-top:1px solid #d6d7d1;color:#5c625e;font-size:12px}
@media(max-width:760px){.footer-main{grid-template-columns:1fr 1fr;gap:35px;min-height:0;padding-bottom:45px}.footer-main p{grid-column:1/-1}.site-footer nav{gap:12px 18px}.footer-cta{min-height:420px}.footer-desktop-break{display:none}}
@media(max-width:520px){.footer-main{grid-template-columns:1fr}.footer-main p{grid-column:auto}.site-footer{padding:42px 5% 24px}.footer-bottom{flex-direction:column;gap:6px}.footer-cta{padding:65px 5%;min-height:410px}.footer-cta p{font-size:16px}}
.contact summary{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.85);padding:12px 15px;background:rgba(255,255,255,.12);cursor:pointer;list-style:none;font-size:13px;letter-spacing:.025em}.contact summary::-webkit-details-marker{display:none}.contact summary:hover{background:#fff;color:#282927}

/* Founder profile follows About and leads into the contact section. */
.leadership{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(60px,8vw,140px);padding-top:90px;padding-bottom:110px;background:#fafaf7}.leadership-photo{position:relative;width:100%;max-width:520px;aspect-ratio:413/443;overflow:hidden;background:#565459}.leadership-photo img{position:absolute;width:266.34%;max-width:none;height:auto;left:-18.16%;top:-35.44%}.leadership-copy{max-width:600px}.leadership-copy .eyebrow{font-size:12px;font-weight:600;letter-spacing:.15em}.leadership-copy h2{font-size:clamp(38px,3.7vw,60px);line-height:1.07;font-weight:300;letter-spacing:-.045em;margin:23px 0 28px}.leadership-copy p{font-size:16px;line-height:1.55;margin:0 0 20px}.leadership-copy p:last-child{margin-bottom:0}
@media(max-width:850px){.leadership{gap:45px}.leadership-copy h2{font-size:39px}.leadership-copy p{font-size:15px}}
@media(max-width:700px){.leadership{grid-template-columns:1fr;padding-top:65px;padding-bottom:75px}.leadership-photo{max-width:520px}.leadership-copy h2{font-size:clamp(36px,8vw,49px)}.leadership-copy p{font-size:16px}}

/* All case studies: overview above the narrative, without an empty sidebar. */
.case-body{display:block;max-width:1100px;margin:0 auto;padding-top:72px;padding-bottom:100px}
.case-body aside{border-bottom:1px solid #d4d5cd;padding-bottom:31px;margin-bottom:55px}
.case-body aside h2{margin:0 0 12px}
.case-body aside p{margin:0;line-height:1.5}
.case-body article{max-width:880px}
.case-body article section{margin-bottom:55px}
@media(max-width:700px){.case-body{padding-top:48px;padding-bottom:70px}.case-body aside{margin-bottom:39px;padding-bottom:26px}.case-body article section{margin-bottom:43px}}

.leadership-photo img{width:100%;height:100%;max-width:100%;left:0;top:0;object-fit:cover;object-position:center 28%}

@media(max-width:800px){
 header{height:auto;min-height:80px;display:flex;flex-wrap:wrap;align-content:center;justify-content:space-between;gap:0}
 header .menu-toggle{color:#232423;-webkit-text-fill-color:#232423;appearance:none;-webkit-appearance:none;cursor:pointer;min-height:44px}
 header nav{position:static;order:3;flex-basis:100%;width:100%;padding:12px 0 28px;background:#fafaf8;border:0;box-shadow:none;display:none}
 header nav.open{display:flex}
}

/* On mobile the header occupies its own row; the hero starts below it. */
@media(max-width:800px){
 .home-page>header{position:relative;z-index:auto;margin-bottom:0;background:#fafaf8}
 .home-page .hero{clear:both;margin-top:0}
 .home-page .hero-content{padding-top:55px}
}
@media(max-width:520px){
 .home-page .hero-content{padding-top:38px}
}

/* Keep footer links in their footer on mobile; global nav rules target the header. */
@media(max-width:800px){
 .site-footer nav{position:static;top:auto;left:auto;right:auto;z-index:auto;width:auto;padding:0;border:0;background:transparent;flex-direction:row;box-shadow:none}
}

.case-link-arrow{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:currentColor;font-variant-emoji:text;font-size:1.25em;line-height:0;vertical-align:-.04em;margin-left:.3em}

/* About: use the page width for the opening statement and two supporting ideas. */
.about{display:block;padding-top:90px;padding-bottom:110px}
.about>.eyebrow{margin-bottom:44px}
.about-content h2{max-width:1260px;margin:0 0 62px;font-size:clamp(38px,3.65vw,64px);line-height:1.12;letter-spacing:-.045em;font-weight:300}
.about-details{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:8%;border-top:1px solid #cdd0c8}
.about-details p{max-width:none;margin:25px 0 0;font-size:clamp(20px,1.55vw,26px);line-height:1.48;letter-spacing:-.025em}
@media(max-width:800px){.about{padding-top:65px;padding-bottom:75px}.about>.eyebrow{margin-bottom:30px}.about-content h2{font-size:clamp(34px,6vw,48px);margin-bottom:42px}.about-details{gap:5%}.about-details p{font-size:19px}}
@media(max-width:600px){.about-details{grid-template-columns:1fr;gap:4px}.about-details p{font-size:20px;margin-top:25px}.about-content h2{font-size:clamp(33px,9vw,43px)}}

/* Keep the portrait and text together as one balanced editorial group. */
@media(min-width:1101px){
 .leadership{grid-template-columns:minmax(0,520px) minmax(0,760px);gap:clamp(55px,5vw,85px);justify-content:center}
 .leadership-copy{max-width:760px}
 .leadership-copy p{font-size:17px}
}
@media(min-width:701px) and (max-width:1100px){
 .leadership{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:45px}
 .leadership-copy{max-width:none}
}

/* Hero photograph: keep the editorial text legible over the real project image. */
.home-page .hero-photo{object-position:center 52%}
.home-page .hero:after{background:linear-gradient(90deg,rgba(250,248,244,.94) 0%,rgba(250,248,244,.82) 29%,rgba(250,248,244,.26) 67%,transparent 100%)}
@media(max-width:800px){.home-page .hero-photo{object-position:58% center}.home-page .hero:after{background:linear-gradient(90deg,rgba(250,248,244,.94),rgba(250,248,244,.82) 58%,rgba(250,248,244,.34))}}

/* Center the footer navigation independently of the unequal brand/tagline widths. */
@media(min-width:1100px){
 .footer-main{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:40px;align-items:start}
 .site-footer .footer-main nav{justify-content:center;justify-self:center}
 .footer-main p{justify-self:end;text-align:right;max-width:250px}
}
