
:root{--warm:#F7F5F1;--charcoal:#232323;--black:#3A3A3A;--oak:#C9B08A;--sage:#7D857B;--white:#fff;--line:rgba(35,35,35,.15)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"DM Sans",sans-serif;color:var(--charcoal);background:var(--warm);line-height:1.65}img{max-width:100%}a{color:inherit}h1,h2,h3,blockquote{font-family:"Playfair Display",serif;margin:0;line-height:1.06}h1{font-size:clamp(3.4rem,7vw,7.5rem);letter-spacing:-.055em}h2{font-size:clamp(2.3rem,4.5vw,4.7rem);letter-spacing:-.04em}h3{font-size:1.8rem}p{margin:0}.section{padding:7rem 5vw}.warm{background:var(--warm)}.white{background:white}.charcoal{background:var(--charcoal);color:white}.black{background:var(--black);color:white}.sage-bg{background:var(--sage);color:white}.oak-bg{background:var(--oak);color:var(--charcoal)}.kicker,.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:600}.sage{color:var(--sage)}.oak-text{color:var(--oak)}
.site-header{height:104px;position:fixed;inset:0 0 auto;z-index:50;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;background:transparent;border-bottom:1px solid rgba(255,255,255,.25);transition:.3s}.site-header.scrolled,.site-header.inner-page{height:88px;background:rgba(247,245,241,.96);backdrop-filter:blur(14px);border-bottom-color:var(--line);box-shadow:0 8px 28px rgba(0,0,0,.05)}.brand{position:relative;width:245px;height:74px}.logo{position:absolute;left:0;top:50%;transform:translateY(-50%);width:235px;transition:.3s}.logo-black{opacity:0}.site-header.scrolled .logo-black,.site-header.inner-page .logo-black{opacity:1}.site-header.scrolled .logo-white,.site-header.inner-page .logo-white{opacity:0}.site-header nav{display:flex;gap:1.7rem;align-items:center}.site-header nav a{text-decoration:none;color:white;font-size:.88rem;font-weight:500}.site-header.scrolled nav a,.site-header.inner-page nav a{color:var(--charcoal)}.nav-cta{border:1px solid rgba(255,255,255,.8);padding:.82rem 1rem}.site-header.scrolled .nav-cta,.site-header.inner-page .nav-cta{background:var(--sage);border-color:var(--sage);color:white}.menu-toggle{display:none;background:none;border:0}.menu-toggle span{display:block;width:26px;height:2px;background:white;margin:5px}.site-header.scrolled .menu-toggle span,.site-header.inner-page .menu-toggle span{background:var(--charcoal)}
.hero{min-height:100vh;position:relative;display:flex;align-items:flex-end;color:white;padding:11rem 5vw 6rem;background:url("hero.jpg") 63% center/cover}.home-hero{background-image:url("hero.jpg")}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(35,35,35,.78),rgba(58,58,58,.38) 42%,rgba(58,58,58,.05) 74%),linear-gradient(to top,rgba(35,35,35,.35),transparent 50%)}.hero-content{position:relative;z-index:2;max-width:980px}.eyebrow{color:var(--oak);margin-bottom:1rem}.hero-sub{font-size:1.16rem;max-width:760px;color:rgba(255,255,255,.9);margin-top:1.5rem}.hero-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-top:2rem}.button{display:inline-block;padding:1rem 1.35rem;border:0;text-decoration:none;font:inherit;font-weight:600;cursor:pointer}.oak{background:var(--oak);color:var(--charcoal)}.dark-button{background:var(--charcoal);color:white}.outline{border:1px solid var(--sage);color:white;margin-top:2rem}.text-link{text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.2rem;font-weight:600}.light-link{color:white}.hero-scroll{position:absolute;right:5vw;bottom:2rem;z-index:2;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase}
.split-heading{display:grid;grid-template-columns:1fr 1fr;gap:7vw;margin-top:1.3rem}.body-large{font-size:1.12rem;color:var(--sage);display:grid;gap:1rem}.service-band{display:grid;grid-template-columns:repeat(4,1fr)}.service-card{min-height:350px;padding:3.5rem 2rem;text-decoration:none;display:flex;flex-direction:column;justify-content:flex-end;border-right:1px solid rgba(255,255,255,.15)}.service-card span{margin-bottom:auto;opacity:.55}.service-card h3{margin-bottom:.6rem}.service-card p{opacity:.76}.editorial{display:grid;grid-template-columns:1fr .85fr;gap:8vw}.editorial-copy{display:flex;flex-direction:column;gap:1.5rem}.editorial-copy p{color:var(--sage);font-size:1.08rem}.statement-panel{border-left:8px solid var(--oak);padding-left:4vw;display:flex;flex-direction:column;justify-content:center}.statement-panel small{letter-spacing:.16em;color:var(--sage)}.statement-panel blockquote{font-size:clamp(2.2rem,3.6vw,4rem);margin-top:1rem}.process-preview{background:var(--charcoal);color:white}.section-heading.light{display:grid;grid-template-columns:.6fr 1.5fr;gap:4vw;margin-bottom:3.5rem}.preview-steps{border-top:1px solid rgba(255,255,255,.15)}.preview-steps article{display:grid;grid-template-columns:80px 1.4fr 1fr;gap:2rem;padding:2rem 0;border-bottom:1px solid rgba(255,255,255,.15);align-items:center}.preview-steps span{color:var(--sage)}.preview-steps em{color:var(--oak)}.project-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.5rem}.hero-project{margin:0;position:relative}.hero-project img{width:100%;height:70vh;object-fit:cover;display:block}.hero-project:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(35,35,35,.62),transparent 45%)}.hero-project figcaption{position:absolute;z-index:2;left:2rem;bottom:2rem;color:white;display:flex;flex-direction:column;max-width:650px}.hero-project figcaption span{color:var(--oak);text-transform:uppercase;letter-spacing:.16em;font-size:.68rem}.hero-project figcaption strong{font-family:"Playfair Display",serif;font-size:1.7rem}.closing-cta{background:var(--oak);text-align:center}.closing-cta h2{max-width:950px;margin:1rem auto}.closing-cta p:not(.kicker){margin:1rem auto 1.8rem;max-width:650px}
.page-hero{min-height:68vh;display:flex;align-items:flex-end;padding:11rem 5vw 5rem;color:white;position:relative;background:linear-gradient(90deg,rgba(35,35,35,.85),rgba(35,35,35,.38)),url("hero.jpg") center/cover}.page-hero-copy{max-width:1000px;position:relative}.page-hero-copy p:last-child{font-size:1.15rem;max-width:720px;margin-top:1.5rem}.story{display:grid;grid-template-columns:.25fr 1.4fr;gap:4vw}.story-number,.big-num{font-family:"Playfair Display",serif;font-size:clamp(4rem,9vw,10rem);color:var(--oak);line-height:.8}.story>div:last-child{max-width:900px}.story h2{margin:1rem 0 1.5rem}.story p:not(.kicker){font-size:1.08rem;color:var(--sage);margin-top:1rem}.reverse .story-number{color:var(--sage)}.together{background:var(--charcoal);color:white;display:grid;grid-template-columns:1fr 1fr;gap:7vw}.together .body-large{color:rgba(255,255,255,.7)}.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);margin-top:2rem}.value-grid article{background:white;padding:2rem;min-height:260px}.value-grid span{color:var(--sage)}.value-grid h3{margin:3rem 0 .8rem}.value-grid p{color:var(--sage)}
.full-step{padding:7rem 5vw;display:grid;grid-template-columns:.4fr 1.5fr;gap:5vw}.full-step>div:last-child{max-width:950px}.full-step em{font-size:1.15rem;color:var(--sage)}.full-step h2{margin:.6rem 0 1.4rem}.full-step p{font-size:1.12rem;max-width:850px}.sage-section{background:var(--sage);color:white}.sage-section .big-num,.sage-section em{color:var(--oak)}.charcoal-section{background:var(--charcoal);color:white}.charcoal-section em{color:var(--oak)}.oak-section{background:var(--oak)}.oak-section .big-num{color:var(--charcoal);opacity:.35}.soft-section{background:var(--black);color:white}.soft-section em{color:var(--oak)}
.project-category{padding:7rem 5vw}.category-copy{max-width:850px;margin-bottom:2.5rem}.category-copy h2{margin:1rem 0}.category-copy p:last-child{font-size:1.08rem;color:var(--sage)}.gallery-grid{display:grid;grid-template-columns:1.4fr .6fr;grid-template-rows:300px 300px;gap:1rem}.gallery-grid .large{grid-row:1/3;margin:0;position:relative}.gallery-grid img{width:100%;height:100%;object-fit:cover}.gallery-grid figcaption{position:absolute;bottom:1.5rem;left:1.5rem;color:white;font-family:"Playfair Display",serif;font-size:1.5rem}.gallery-placeholder{padding:2rem;display:flex;flex-direction:column;justify-content:flex-end}.gallery-placeholder span{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;opacity:.7}.gallery-placeholder strong{font-family:"Playfair Display",serif;font-size:1.5rem}.placeholder-wide{height:430px;display:grid;place-items:center}.placeholder-wide span{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;opacity:.7}
.contact-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:7vw}.contact-aside h2{margin:1rem 0 1.5rem}.contact-aside>p:not(.kicker){font-size:1.08rem;color:var(--sage)}.contact-details{margin-top:3rem;border-top:1px solid var(--line)}.contact-details div{padding:1rem 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column}.contact-details span{text-transform:uppercase;letter-spacing:.14em;font-size:.65rem;color:var(--sage)}.project-form{background:white;padding:2.2rem;border-top:8px solid var(--sage)}.project-form h3{margin:0 0 1.5rem}.project-form h3:not(:first-child){margin-top:2rem}.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;font-size:.82rem;font-weight:600}input,select,textarea{width:100%;padding:.9rem;border:1px solid #d7d2ca;background:white;font:inherit;border-radius:0}.project-form .button{width:100%}.form-note{font-size:.78rem;color:var(--sage);margin-top:1rem}
.site-footer{background:var(--black);color:white;padding:2.5rem 5vw;text-align:center}.footer-copyright{margin:0;color:rgba(255,255,255,.58);font-size:.78rem}.step-label{align-self:start;color:var(--oak);font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding-top:.4rem}.oak-section .step-label{color:var(--charcoal)}.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.turnstile-wrap{margin:1.25rem 0 1.5rem}.turnstile-wrap p{margin-top:.55rem;color:var(--sage);font-size:.78rem;font-weight:400}.form-message{min-height:1.5em;font-size:.85rem;margin-top:1rem}.form-message.success{color:#2f6d47}.form-message.error{color:#9a2d2d}
.reveal{animation:rise .8s ease both}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(max-width:950px){.site-header nav{display:none;position:absolute;top:88px;left:0;right:0;background:var(--warm);padding:1.5rem 5vw;flex-direction:column;align-items:flex-start}.site-header nav.open{display:flex}.site-header nav.open a{color:var(--charcoal)}.menu-toggle{display:block}.split-heading,.editorial,.together,.contact-layout{grid-template-columns:1fr}.service-band,.value-grid{grid-template-columns:1fr 1fr}.section-heading.light{grid-template-columns:1fr}.preview-steps article{grid-template-columns:60px 1fr}.preview-steps h3{grid-column:2}.full-step{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr;grid-template-rows:480px 260px 260px}.gallery-grid .large{grid-row:auto}}@media(max-width:640px){.site-header{height:80px}.site-header.scrolled,.site-header.inner-page{height:76px}.brand{width:190px;height:58px}.logo{width:185px}.site-header nav{top:76px}.section,.project-category,.full-step{padding:5rem 1.25rem}.hero{padding:9rem 1.25rem 3rem;background-position:61% center}.page-hero{padding:9rem 1.25rem 4rem}.service-band,.value-grid{grid-template-columns:1fr}.service-card{min-height:260px}.story{grid-template-columns:1fr}.story-number{font-size:5rem}.preview-steps article{grid-template-columns:45px 1fr}.project-heading{flex-direction:column;align-items:flex-start}.hero-project img{height:52vh}.row{grid-template-columns:1fr;gap:0}.project-form{padding:1.25rem}.gallery-grid{grid-template-rows:360px 220px 220px}}

/* Meet Katie & Andy photo layout */
.about-hero{min-height:760px;padding-right:42vw;overflow:visible;margin-bottom:8rem}
.about-hero .page-hero-copy{max-width:900px;z-index:3}
.about-hero-portrait{position:absolute;right:5vw;top:8.5rem;bottom:-8rem;width:min(31vw,470px);margin:0;z-index:2;background:#ddd;box-shadow:0 24px 54px rgba(0,0,0,.24)}
.about-hero-portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top}
.story-with-photo{grid-template-columns:minmax(280px,.62fr) minmax(0,1.38fr);align-items:center;gap:6vw}
.story-photo{margin:0;width:100%;aspect-ratio:3/4;overflow:hidden;background:#ddd}
.story-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top}
@media(max-width:950px){.about-hero{padding-right:44vw}.about-hero-portrait{right:3vw;width:37vw}.story-with-photo{grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr);gap:4vw}}
@media(max-width:640px){.about-hero{display:block;min-height:auto;padding:8rem 1.25rem 0;margin-bottom:0}.about-hero .page-hero-copy{padding-bottom:1rem}.about-hero-portrait{position:relative;right:auto;top:auto;bottom:auto;width:min(100%,420px);height:auto;aspect-ratio:3/4;margin:2rem auto -4rem}.story-with-photo{grid-template-columns:1fr;gap:2rem}.story-with-photo:first-of-type{padding-top:8rem}.story-photo{max-width:420px;margin:0 auto}}
