@font-face{font-family:Montserrat;src:url('/fonts/montserrat-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Montserrat;src:url('/fonts/montserrat-italic.woff2') format('woff2');font-style:italic;font-weight:400 800;font-display:swap}
@font-face{font-family:Lora;src:url('/fonts/lora-regular.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}
:root{--forest:#354a35;--forest-deep:#26382c;--leaf:#7fb6a4;--orange:#efaa5c;--paper:#f0eee3;--white:#fffef8;--ink:#24362a;--muted:#5b6c5c;--line:rgba(38,56,44,.2);--max:1320px;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Montserrat,Arial,sans-serif;font-size:16px;line-height:1.65}
img{display:block;max-width:100%}
a{color:inherit;text-underline-offset:.26em}
button{font:inherit}
::selection{background:var(--leaf);color:var(--forest-deep)}
::-webkit-scrollbar{width:12px}
::-webkit-scrollbar-track{background:var(--paper)}
::-webkit-scrollbar-thumb{background:var(--forest);border:3px solid var(--paper);border-radius:12px}
:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
.skip-link{position:fixed;top:-100px;left:20px;z-index:20;background:var(--forest-deep);color:white;padding:10px 16px}
.skip-link:focus{top:12px}
.preview-banner{background:#17281f;color:white;text-align:center;padding:8px 16px;font-size:.84rem}
.preview-banner a{color:#f7c78b}
.site-header{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:40px;min-height:104px;padding:14px max(28px,calc((100vw - var(--max))/2));background:var(--paper);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;min-width:0}
.brand-logo{width:68px;height:68px;object-fit:contain;flex:none}
.brand span{display:flex;flex-direction:column;line-height:1.13;min-width:0}
.brand strong{font-family:Lora,Georgia,serif;font-size:1.48rem;letter-spacing:-.025em;color:var(--forest-deep);white-space:nowrap}
.brand small{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:5px}
.desktop-nav{display:flex;align-items:center;gap:clamp(22px,3vw,48px)}
.desktop-nav a,.mobile-nav a{position:relative;text-decoration:none;font-size:.79rem;font-weight:600;letter-spacing:.04em;white-space:nowrap}
.desktop-nav a{padding:10px 0}
.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:5px;height:2px;background:var(--forest);transition:right .28s ease}
.desktop-nav a:hover:after,.desktop-nav a[aria-current="page"]:after{right:0}
.menu-toggle,.mobile-nav{display:none}
main{min-height:50vh}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{line-height:1.17}
h1,h2{font-family:Lora,Georgia,serif;font-weight:400;letter-spacing:-.03em}
p{max-width:72ch}
.home-hero{display:grid;grid-template-columns:minmax(0,46%) minmax(0,54%);min-height:660px;background:var(--forest);color:var(--white)}
.hero-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:74px clamp(34px,5.2vw,92px) 80px max(34px,calc((100vw - var(--max))/2));max-width:760px}
.hero-logo{width:105px;height:105px;object-fit:contain;margin-bottom:32px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.11))}
.hero-copy h1{font-size:clamp(2.7rem,3.6vw,4.3rem);line-height:1.08;max-width:14ch}
.hero-subtitle{margin-top:25px;color:#d7e4d5;font-size:.86rem;text-transform:uppercase;letter-spacing:.18em;font-weight:600}
.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:43px}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:50px;padding:10px 23px;text-decoration:none;font-weight:600;font-size:.8rem;letter-spacing:.035em;transition:transform .25s ease,background .25s ease}
.button:hover{transform:translateY(-3px)}
.button-light{background:var(--paper);color:var(--forest-deep)}
.button-light:hover{background:white}
.text-action{font-size:.82rem;font-weight:600;color:white;text-underline-offset:.4em}
.hero-facade{position:relative;overflow:hidden;min-height:600px;background:#26352e}
.hero-facade img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center;animation:facade-settle 1.3s cubic-bezier(.19,1,.22,1) both}
@keyframes facade-settle{from{transform:scale(1.05);filter:brightness(.85)}to{transform:scale(1);filter:brightness(1)}}
.hero-facade figcaption{position:absolute;left:32px;bottom:30px;background:rgba(28,44,33,.84);color:white;padding:8px 13px;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}
.home-intro{display:grid;grid-template-columns:30% 1fr;gap:7vw;max-width:var(--max);margin:auto;padding:115px 28px 120px}
.intro-label{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--forest);padding-top:20px;color:var(--forest);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.home-intro h2{font-size:clamp(2.4rem,4vw,4.25rem);max-width:12ch;margin-bottom:30px}
.home-intro p{font-size:1.03rem;line-height:1.9;max-width:67ch}
.underlined-link{display:inline-block;font-size:.82rem;font-weight:600;margin-top:30px;text-underline-offset:.5em}
.home-paths{background:#e6ebe3;padding:100px max(28px,calc((100vw - var(--max))/2)) 112px}
.home-paths h2{font-size:clamp(2.3rem,3.4vw,3.7rem);margin-bottom:45px}
.path-list{border-top:1px solid var(--line)}
.path-item{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);text-decoration:none;padding:19px 5px;font-family:Lora,Georgia,serif;font-size:clamp(1.35rem,2vw,2rem);transition:color .22s ease}
.path-item:hover{color:var(--forest)}
.interior-head{background:var(--forest);color:var(--white);padding:95px max(28px,calc((100vw - var(--max))/2)) 105px}
.interior-head h1{font-size:clamp(3rem,5.8vw,6rem);margin-bottom:26px}
.interior-head p{font-size:1.08rem;max-width:78ch;line-height:1.9;color:#edf3e8}
.team-list{max-width:var(--max);margin:auto;padding:60px 28px 130px}
.person{display:grid;grid-template-columns:minmax(260px,38%) 1fr;align-items:start;gap:clamp(35px,7vw,110px);padding:70px 0;border-bottom:1px solid var(--line)}
.person:nth-child(even){grid-template-columns:1fr minmax(260px,38%)}
.person:nth-child(even) .person-photo{order:2}
.person-photo{position:relative;aspect-ratio:4/4.5;overflow:hidden;background:#dde3da}
.person-photo img{width:100%;height:100%;object-fit:cover;object-position:center 27%}
.person-copy{padding-top:15px}
.person-copy h2{font-size:clamp(2.3rem,3.4vw,4rem);max-width:15ch;margin-bottom:11px}
.person-role{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:600;color:var(--forest);margin-bottom:10px}
.person-phone{display:inline-block;font-size:.86rem;font-weight:600;margin:5px 0 32px;text-underline-offset:.35em}
.person-bio{max-width:67ch}
.person-bio p{font-size:.93rem;line-height:1.88;margin-bottom:17px}
.person-bio h3{font-family:Lora,Georgia,serif;margin:22px 0 12px}
.resource-section{padding:70px max(28px,calc((100vw - var(--max))/2));background:#e6ebe3}
.resource-section h2{font-size:clamp(2rem,3vw,3.1rem);margin-bottom:32px}
.resource-links{border-top:1px solid var(--line)}
.resource-link{display:block;padding:16px 2px;border-bottom:1px solid var(--line);font-size:.88rem;font-weight:600;text-decoration:none}
.resource-link:hover{text-decoration:underline;text-underline-offset:.3em}
.approach-hero{display:grid;grid-template-columns:43% 57%;min-height:600px;background:var(--forest);color:white}
.approach-heading{display:flex;flex-direction:column;justify-content:center;padding:80px clamp(36px,5vw,80px) 84px max(34px,calc((100vw - var(--max))/2))}
.approach-heading h1{font-size:clamp(3.2rem,5vw,5.7rem);margin-bottom:35px}
.approach-heading h2{font-size:clamp(1.65rem,2.3vw,2.6rem);line-height:1.3;color:#e7eee0}
.approach-hero figure{position:relative;overflow:hidden}
.approach-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.approach-copy{display:grid;grid-template-columns:1fr 1fr;gap:8vw;max-width:var(--max);margin:auto;padding:115px 28px 125px}
.approach-statement{font-family:Lora,Georgia,serif;font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.6}
.approach-detail{font-size:1rem;line-height:1.9;padding-top:8px}
.approach-finish{display:grid;grid-template-columns:42% 1fr;background:#e6ebe3;min-height:470px}
.approach-finish figure{position:relative;min-height:470px;overflow:hidden}
.approach-finish img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%}
.approach-finish>div{display:flex;flex-direction:column;justify-content:center;padding:65px 7vw}
.approach-finish h2{font-size:clamp(2rem,3vw,3.6rem)}
.approach-finish .resource-section{padding:20px 0 0;background:transparent}
.approach-finish .resource-section h2{display:none}
.contact-head{padding:95px max(28px,calc((100vw - var(--max))/2)) 80px;background:var(--forest);color:white}
.contact-head h1{font-size:clamp(3.2rem,5vw,5.7rem)}
.contact-head p{font-size:1.05rem;margin-top:22px;color:#e6eee3}
.contact-layout{display:grid;grid-template-columns:50% 50%;min-height:620px}
.contact-info{padding:90px clamp(28px,6vw,100px) 95px max(28px,calc((100vw - var(--max))/2))}
.contact-info h2{font-size:clamp(2rem,2.8vw,3.3rem);margin-bottom:25px}
.contact-info address{font-style:normal;font-size:1.1rem;line-height:1.8;max-width:29ch;margin-bottom:45px}
.contact-method{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding:20px 0}
.contact-method span{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:var(--muted)}
.contact-method a{font-family:Lora,Georgia,serif;font-size:clamp(1.2rem,2vw,1.9rem);overflow-wrap:anywhere}
.contact-info .resource-section{padding:25px 0 0;background:transparent}
.contact-info .resource-section h2{font-family:Montserrat,Arial,sans-serif;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;font-weight:600;margin-bottom:12px}
.contact-info .resource-link{font-size:.9rem}
.contact-facade{position:relative;overflow:hidden;background:#d8ddd6}
.contact-facade img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.contact-map{display:grid;grid-template-columns:30% 1fr;gap:60px;max-width:var(--max);margin:auto;padding:100px 28px 120px;align-items:start}
.contact-map h2{font-size:clamp(2.1rem,3vw,3.3rem);margin-bottom:13px}
.contact-map img{width:100%;height:auto;max-height:500px;object-fit:cover}
.extra-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;max-width:var(--max);margin:50px auto;padding:0 28px}
.extra-images img{width:100%;max-height:400px;object-fit:cover}
.generic-content{max-width:var(--max);margin:auto;padding:90px 28px}
.generic-content>*+*{margin-top:20px}
.generic-content h2{font-size:2.6rem}
.site-footer{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:8vw;padding:85px max(28px,calc((100vw - var(--max))/2)) 28px;background:var(--forest-deep);color:var(--white)}
.site-footer>div{min-width:0}
.site-footer strong{font-family:Lora,Georgia,serif;font-size:1.65rem;font-weight:400}
.site-footer span{display:block;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:#cbdacd;font-weight:600;margin-bottom:15px}
.site-footer p,.site-footer a{font-size:.86rem;color:#e4efe1;line-height:1.8;display:block;overflow-wrap:anywhere}
.site-footer a{width:max-content;max-width:100%}
.footer-end{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.25);padding-top:28px;font-size:.72rem;color:#bed1bf}
@media(max-width:900px){.site-header{min-height:85px;padding:10px 25px}.brand-logo{width:55px;height:55px}.desktop-nav{display:none}.menu-toggle{display:flex;position:relative;flex-direction:column;justify-content:center;gap:6px;width:46px;height:46px;align-items:center;border:1px solid var(--line);background:transparent;cursor:pointer}.menu-toggle span{display:block;width:21px;height:2px;background:var(--forest)}.mobile-nav:not([hidden]){display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;padding:13px 25px 28px;background:var(--paper);box-shadow:0 18px 30px rgba(15,35,22,.16)}.mobile-nav a{padding:12px 0;border-bottom:1px solid var(--line)}.home-hero,.approach-hero{grid-template-columns:1fr}.hero-copy{max-width:none;min-height:520px;padding:75px 7vw}.hero-facade{height:460px;min-height:0}.approach-heading{min-height:480px;padding:70px 7vw}.approach-hero figure{min-height:430px}.home-intro{grid-template-columns:1fr;gap:38px;padding:90px 7vw}.intro-label{flex-direction:row;gap:25px}.person,.person:nth-child(even){grid-template-columns:34% 1fr;gap:35px}.person:nth-child(even) .person-photo{order:0}.contact-layout{grid-template-columns:1fr}.contact-info{padding:80px 7vw}.contact-facade{height:460px}.contact-map{grid-template-columns:1fr;gap:30px;padding:85px 7vw}.site-footer{gap:45px;padding:70px 7vw 25px}}
@media(max-width:620px){body{font-size:15px}.site-header{padding:9px 18px;min-height:76px}.brand{gap:7px}.brand-logo{width:49px;height:49px}.brand strong{font-size:1.22rem}.brand small{font-size:.48rem;letter-spacing:.15em}.hero-copy{padding:64px 25px 72px;min-height:0}.hero-logo{width:78px;height:78px;margin-bottom:24px}.hero-copy h1{font-size:clamp(2.55rem,11vw,4rem)}.hero-subtitle{margin-top:20px}.hero-actions{gap:20px;margin-top:32px}.hero-facade{height:310px}.hero-facade figcaption{left:14px;bottom:13px;font-size:.58rem}.home-intro{padding:73px 25px 82px}.intro-label{font-size:.62rem}.home-intro h2{font-size:2.75rem}.home-intro p{font-size:.94rem}.home-paths{padding:72px 25px 80px}.home-paths h2{margin-bottom:30px}.path-item{padding:16px 0}.interior-head{padding:73px 25px 79px}.interior-head h1{font-size:3.5rem}.interior-head p{font-size:.93rem}.team-list{padding:10px 25px 85px}.person,.person:nth-child(even){display:flex;flex-direction:column;gap:25px;padding:55px 0}.person-photo{width:100%;aspect-ratio:1/1.08}.person-copy{padding:0}.person-copy h2{font-size:2.75rem}.person-phone{margin-bottom:25px}.resource-section{padding:65px 25px}.approach-heading{padding:72px 25px;min-height:0}.approach-heading h1{font-size:3.5rem}.approach-heading h2{font-size:2rem}.approach-hero figure{min-height:310px}.approach-copy{grid-template-columns:1fr;gap:40px;padding:75px 25px 84px}.approach-statement{font-size:1.45rem}.approach-finish{grid-template-columns:1fr}.approach-finish figure{min-height:285px}.approach-finish>div{padding:65px 25px}.contact-head{padding:72px 25px}.contact-head h1{font-size:3.7rem}.contact-info{padding:70px 25px}.contact-facade{height:325px}.contact-map{padding:75px 25px 85px}.contact-map img{max-height:300px}.site-footer{display:flex;flex-direction:column;gap:35px;padding:65px 25px 25px}.footer-end{padding-top:25px}.extra-images{padding:0 25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-facade img{animation:none}.button,.path-item,.desktop-nav a:after{transition:none}}
