/* Removed external Google Fonts import for privacy and self‑containment. */
/* Font stacks already provide fallbacks: */
/* DM Sans, Arial, sans-serif for body text */
/* Libre Caslon Display, Georgia, serif for headings */

/* Visually hidden utility for accessible labels */
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap}
:root{--navy:#152c39;--deep:#10232e;--paper:#f8f9f5;--lime:#d6ef86;--ink:#20323c;--muted:#5a6870;--line:#d7dcd8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);font-family:'DM Sans',Arial,sans-serif;color:var(--ink);font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,p{margin:0}h1,h2{font-weight:450;letter-spacing:-.055em;line-height:1.08}h2{font-size:clamp(40px,4.4vw,64px)}em{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;letter-spacing:-.035em}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #80a52a;outline-offset:6px}.skip{position:fixed;top:-70px;left:15px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}header{height:108px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:var(--paper);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:15px}.brand strong{font:700 51px/1 'DM Sans',sans-serif;letter-spacing:-5px}.brand strong>span{font-size:23px;vertical-align:top;display:inline-block;margin:2px 0 0 5px;letter-spacing:0;color:#739242}.brand-text{font-size:15px;font-weight:650;letter-spacing:.08em;border-left:1px solid #bac5c6;padding-left:16px;line-height:1.4}.brand-text small{display:block;font-size:10px;letter-spacing:.08em;margin-top:5px}nav{display:flex;align-items:center;gap:38px;font-size:14px}nav>a:hover{color:#5b742b}.nav-contact{padding:12px 20px;border:1px solid #8b9b9d}.nav-contact span{margin-left:20px}.menu{display:none}.hero{background:var(--navy);color:var(--paper);padding:40px 5% 0}.hero-top{display:flex;justify-content:space-between;align-items:center}.eyebrow,.location{font-size:12px;letter-spacing:.12em}.eyebrow{display:flex;align-items:center;gap:13px}.line{width:27px;height:1px;background:var(--lime)}.location{color:#b7c4cb}.hero-title{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;padding:36px 0 45px}h1{font-size:clamp(48px,5.8vw,85px);max-width:850px}h1 em{color:var(--lime)}.hero-intro{max-width:295px;padding-bottom:4px}.hero-intro p{font-size:16px;color:#d0dadd;margin-bottom:25px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:14px 21px;font-size:14px;font-weight:550;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.light{background:var(--lime);color:var(--navy)}.dark{background:var(--navy);color:white}.hero-visual{position:relative;height:410px;overflow:hidden}.image-wrap{height:100%;width:100%;background:#8b9b9d}.image-wrap img{width:100%;height:100%;object-fit:cover;object-position:center 47%}.architectural-placeholder{height:100%;background:linear-gradient(115deg,#344652,#a9b1b0)}.hero-card{position:absolute;right:0;bottom:0;background:var(--lime);color:var(--navy);width:305px;padding:31px 32px}.small-label{font-size:11px;letter-spacing:.14em}.hero-card p{font-size:23px;line-height:1.45;letter-spacing:-.025em;margin:20px 0}.card-rule{height:1px;background:#9bb453;display:block;margin-bottom:14px}.hero-card>span:last-child{font-size:12px}.visual-caption{position:absolute;left:28px;bottom:27px;display:flex;align-items:center;gap:30px;color:white;text-shadow:0 1px 5px #000}.visual-caption>span{font-size:11px;letter-spacing:.1em;line-height:1.65}.visual-caption a{width:48px;height:48px;border:1px solid #fff8;border-radius:50%;display:grid;place-items:center;font-size:22px}.hero-bottom{display:flex;gap:40px;align-items:center;padding:24px 0;color:#becbd0;font-size:13px}.hero-bottom>a{margin-left:auto;color:var(--lime)}.section{padding:92px 7%}.section-label{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-bottom:60px;font-size:12px;letter-spacing:.07em}.section-label>span:last-child{color:var(--muted);letter-spacing:0}.firm-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:9%}.firm h2 em{color:#697e4d}.firm-copy{max-width:525px}.large-copy{font-size:24px;line-height:1.4;letter-spacing:-.025em;margin-bottom:24px}.firm-copy>p:not(.large-copy){color:var(--muted);margin-bottom:18px}.text-link{display:flex;justify-content:space-between;border-bottom:1px solid var(--ink);padding:17px 0;margin-top:16px;font-size:14px;max-width:305px}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:5%;margin-top:70px}.principles>div{border-top:1px solid var(--line);padding-top:22px}.principles span{float:right;font-size:12px;color:var(--muted)}h3{font-size:21px;font-weight:500;letter-spacing:-.025em}.principles p{font-size:15px;color:var(--muted);max-width:280px;margin-top:10px}.expertise{background:#edf0e9}.expertise-layout{display:grid;grid-template-columns:.9fr 1.2fr;gap:9%}.expertise-heading p{color:var(--muted);margin:28px 0;max-width:350px}.services{border-top:1px solid #aebbb7}.services details{border-bottom:1px solid #bec8c2}.services summary{display:flex;align-items:center;gap:22px;padding:23px 0;cursor:pointer;list-style:none}.services summary::-webkit-details-marker,.more-team summary::-webkit-details-marker{display:none}.service-num{font-size:12px;color:#748176}.services h3{font-size:20px}.toggle{margin-left:auto;font-size:25px;font-weight:400;transition:transform .2s}.services details[open] .toggle{transform:rotate(45deg)}.service-body{padding:0 25px 27px 38px;color:var(--muted);font-size:15px}.service-body ul{padding-left:18px;margin:18px 0}.service-body li{margin:5px 0}.service-body a{color:var(--ink);font-size:14px;border-bottom:1px solid #98a98c;padding-bottom:5px}.people-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:50px}.people-heading p{max-width:390px;color:var(--muted)}.people-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:8%}.person{padding:30px;background:var(--navy);color:white}.person-location{font-size:11px;letter-spacing:.12em;color:#bdcbd0}.person-mark{font:70px 'Libre Caslon Display',Georgia,serif;color:var(--lime);padding:23px 0 32px;display:flex;justify-content:space-between;align-items:center}.person-mark span{font:25px 'DM Sans'}.person h3{font-size:28px}.person .role{font-size:14px;color:#c6d3d9;margin-top:4px}.credentials{border-top:1px solid #49606a;padding-top:20px;margin-top:23px;font-size:13px;line-height:1.8;color:#c6d3d9}.team-list article{display:flex;justify-content:space-between;gap:20px;padding:21px 0;border-bottom:1px solid var(--line)}.team-list article:first-child{padding-top:0}.team-list h3{font-size:19px}.team-list p,.team-list article>span{font-size:13px;color:var(--muted)}.team-list article>span{text-align:right;white-space:nowrap}.more-team summary{padding:20px 0;display:flex;justify-content:space-between;cursor:pointer;font-size:14px}.more-team[open] article{padding-top:20px}.contact{background:var(--navy);color:white}.contact .section-label{border-color:#49606a}.contact .section-label>span:last-child{color:#c6d3d9}.contact-main{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;align-items:center}.contact h2 em{color:var(--lime)}.contact-main p{max-width:410px;color:#c6d3d9;margin-bottom:25px}.phone{font-size:clamp(22px,2.3vw,33px);letter-spacing:-.03em;display:flex;gap:30px;align-items:center}.phone span{color:var(--lime)}.secondary-phone{display:inline-block;font-size:14px;color:#c6d3d9;margin-top:8px}.offices{margin-top:65px;display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;gap:35px;border-top:1px solid #49606a;padding-top:35px}.offices article>span{font-size:10px;letter-spacing:.1em;color:#c6d3d9}.offices h3{margin:12px 0;font-size:21px}.offices address{font-size:13px;line-height:1.9;font-style:normal;color:#c6d3d9}.offices a{display:inline-block;font-size:13px;color:var(--lime);margin-top:16px}footer{padding:35px 5%;display:flex;justify-content:space-between;align-items:center;gap:25px}footer .brand strong{font-size:40px}footer p,footer>a:last-child{font-size:12px;color:var(--muted)}
@media(min-width:1500px){header,.hero,footer{padding-left:max(5%,calc((100vw - 1400px)/2));padding-right:max(5%,calc((100vw - 1400px)/2))}.section{padding-left:max(7%,calc((100vw - 1320px)/2));padding-right:max(7%,calc((100vw - 1320px)/2))}}
@media(max-width:1000px){nav{gap:22px}.hero-title{align-items:start}.hero-intro{max-width:245px}.hero-visual{height:370px}.section{padding:70px 5%}.expertise-layout{gap:6%;grid-template-columns:.8fr 1fr}.services h3{font-size:18px}.offices{grid-template-columns:repeat(2,1fr)}.people-grid{gap:5%}.team-list article{flex-direction:column;gap:3px}.team-list article>span{text-align:left}}
@media(max-width:820px){header{height:85px;position:relative}.brand strong{font-size:42px}.brand-text{font-size:12px;padding-left:12px}.brand-text small{font-size:8px}.brand{gap:11px}.menu{display:flex;gap:14px;border:1px solid #a4b1b3;background:none;padding:10px 13px;font-size:14px}nav{display:none;position:absolute;top:85px;left:0;right:0;z-index:20;background:var(--paper);padding:20px 5%;box-shadow:0 10px 15px #0002}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}nav a{padding:14px 5px}.nav-contact{border:0}.hero{padding-top:25px}.location{display:none}.eyebrow{font-size:10px}.hero-title{display:block;padding:28px 0 30px}h1{font-size:clamp(43px,8.8vw,62px);line-height:1.12}.hero-intro{max-width:100%;margin-top:25px;display:flex;flex-direction:column;align-items:flex-start}.hero-intro p{font-size:15px;margin-bottom:20px}.hero-visual{height:380px}.hero-card{width:230px;padding:22px}.hero-card p{font-size:19px;margin:13px 0}.hero-card .small-label{font-size:10px}.visual-caption{left:16px;bottom:20px}.visual-caption>span{display:none}.visual-caption a{width:42px;height:42px}.hero-bottom{gap:16px;flex-wrap:wrap;padding:22px 0;font-size:11px}.hero-bottom>a{margin-left:0;flex-basis:100%;font-size:13px}.section{padding:55px 6%}.section-label{margin-bottom:35px;gap:20px;font-size:10px}.section-label>span:last-child{max-width:150px;text-align:right;font-size:11px}h2{font-size:43px}.firm-layout,.expertise-layout,.people-grid,.contact-main{grid-template-columns:1fr;gap:35px}.firm-copy{max-width:none}.large-copy{font-size:22px}.principles{margin-top:40px;grid-template-columns:1fr;gap:25px}.principles p{max-width:none}.expertise-heading p{max-width:none}.services summary{gap:13px;padding:22px 0}.services h3{font-size:18px}.service-body{padding-left:27px;padding-right:4px}.people-heading{display:block;margin-bottom:30px}.people-heading p{margin-top:24px}.person{padding:25px}.person-mark{padding:16px 0}.team-list article{flex-direction:row;gap:12px}.team-list article>span{font-size:11px;white-space:normal;max-width:110px;text-align:right}.team-list h3{font-size:18px}.team-list p{font-size:12px}.offices{gap:28px 18px;margin-top:40px}.offices address{font-size:12px}.offices h3{font-size:20px}footer{flex-wrap:wrap;padding:28px 6%}footer .brand{flex-basis:100%}footer p{font-size:11px}.phone{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
