:root{--ink:#1f3533;--ink2:#2a4542;--cream:#f3eee3;--cream2:#e9e2d2;--sage:#a9b79b;--sage-d:#566852;--hair:rgba(169,183,155,.3);--haird:rgba(31,53,51,.16);--display:'Cormorant Garamond',Georgia,serif;--sans:'Jost',system-ui,sans-serif}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{font-family:var(--sans);background:var(--cream);color:var(--ink);font-size:1.05rem;line-height:1.75;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:300;line-height:1.12}
h1{font-size:clamp(2.6rem,5.6vw,4.6rem)}
h2{font-size:clamp(2.1rem,4.2vw,3.2rem)}
a{color:inherit;transition:opacity .3s,color .3s,border-color .3s,background .3s}
.caps,.eyebrow,.btn,.navbar .nav-link,dt{font-family:var(--sans);font-size:.68rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase}
.eyebrow{display:block;color:var(--sage-d);margin-bottom:1.1rem}
.dark .eyebrow,.hero .eyebrow{color:var(--sage)}
.lede{font-family:var(--display);font-style:italic;font-weight:300;font-size:1.4rem;line-height:1.5;opacity:.85;max-width:720px}
section{padding:96px 0}
.dark{background:var(--ink);color:var(--cream)}
.alt{background:var(--cream2)}
.btn{border-radius:0;padding:15px 40px;border:1px solid transparent}
.btn-sage{background:var(--sage);color:var(--ink);border-color:var(--sage)}
.btn-sage:hover{opacity:.85;color:var(--ink)}
.btn-ghost{border-color:rgba(243,238,227,.35);color:var(--cream)}
.btn-ghost:hover{border-color:var(--cream);color:var(--cream)}
.btn-ghost-d{border-color:var(--haird);color:var(--ink)}
.btn-ghost-d:hover{border-color:var(--ink);color:var(--ink)}
/* nav (c): centered logo above link row */
.navbar{background:rgba(31,53,51,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:14px 0;border-bottom:1px solid var(--hair)}
.navbar .container{flex-direction:column;align-items:center}
.brand{display:flex;align-items:center;gap:14px;color:var(--cream);text-decoration:none}
.brand svg{width:34px;height:34px;flex:none}
.brand-name{font-family:var(--display);font-weight:300;font-size:1.45rem;letter-spacing:.3em;text-transform:uppercase;line-height:1}
.navbar-toggler{border:1px solid var(--hair);border-radius:0;position:absolute;right:12px;top:14px;padding:6px 10px}
.navbar-toggler-icon{filter:invert(1)}
.navbar .nav-link{color:var(--cream);opacity:.8;padding:.5rem 1.1rem}
.navbar .nav-link:hover{opacity:1;color:var(--sage)}
.navbar-collapse{justify-content:center}
.nav-call{color:var(--sage)!important;opacity:1!important}
@media(max-width:991px){.navbar .container{align-items:flex-start;padding-right:64px}.brand-name{font-size:1.05rem;letter-spacing:.2em}.navbar-collapse{width:100%}}
/* hero */
.hero{background:linear-gradient(180deg,#223a38 0%,#1a2e2c 100%);color:var(--cream);padding:90px 0 110px;position:relative;overflow:hidden}
.hero h1{margin-bottom:1.4rem}
.hero h1 em{font-style:italic;color:var(--sage)}
.hero .lede{opacity:.82;margin-bottom:2.2rem}
.compass-bg{position:absolute;right:-120px;top:-60px;width:620px;opacity:.07;pointer-events:none}
.arch{border-radius:300px 300px 0 0;overflow:hidden;border:1px solid var(--hair);padding:10px;max-width:340px;margin:0 auto}
.arch img{width:100%;display:block;border-radius:290px 290px 0 0;object-position:50% 20%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.92)}
.arch-cap{text-align:center;margin-top:1.2rem;color:var(--cream)}
.arch-cap span{display:block;opacity:.6;margin-top:.3rem}
/* strip */
.strip{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:var(--ink2);color:var(--cream);padding:30px 0}
.strip .col{text-align:center;padding:6px 14px}
.strip b{display:block;font-family:var(--display);font-weight:300;font-size:1.5rem;line-height:1.2}
.strip span{opacity:.7}
/* practice index */
.idx{border-top:1px solid var(--haird);margin-top:2.5rem}
.idx details{border-bottom:1px solid var(--haird);padding:0}
.idx summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:26px 0;font-family:var(--display);font-weight:300;font-size:clamp(1.7rem,3.2vw,2.4rem)}
.idx summary::-webkit-details-marker{display:none}
.idx summary::after{content:'+';font-family:var(--sans);font-weight:300;color:var(--sage-d);font-size:1.6rem;transition:transform .3s}
.idx details[open] summary::after{content:'–'}
.idx summary:hover{color:var(--sage-d)}
.idx .body{padding:0 0 30px;max-width:760px;opacity:.9}
.idx .body p{margin-bottom:.8rem}
/* maura */
.cred dt{color:var(--sage-d);margin-top:1.6rem}
.cred dd{margin:.3rem 0 0}
.quote{border-left:1px solid var(--sage);padding:.2rem 0 .2rem 1.6rem;margin:0 0 1.8rem;font-family:var(--display);font-style:italic;font-size:1.35rem;line-height:1.5}
.quote cite{display:block;font-family:var(--sans);font-style:normal;font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;margin-top:.5rem;opacity:.6}
.band{position:relative;min-height:420px;background:url('img/boston.webp') center 35%/cover no-repeat;display:flex;align-items:center;justify-content:center;padding:96px 0}
.band::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 75% 65% at 50% 48%,rgba(20,34,32,.55) 0%,rgba(20,34,32,.2) 100%),linear-gradient(to bottom,rgba(20,34,32,.35),rgba(20,34,32,.5))}
.band .in{position:relative;text-align:center;color:var(--cream);max-width:820px;padding:30px;background:rgba(20,34,32,.25);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.band h2{text-shadow:0 0 4px rgba(0,0,0,1),0 2px 20px rgba(0,0,0,.95),0 0 60px rgba(0,0,0,.8)}
.band .eyebrow{text-shadow:0 0 3px rgba(0,0,0,1),0 1px 12px rgba(0,0,0,.95),0 0 30px rgba(0,0,0,.8)}
.band p{text-shadow:0 0 3px rgba(0,0,0,1),0 2px 16px rgba(0,0,0,.95),0 0 40px rgba(0,0,0,.85)}
/* team */
.person{text-align:center;padding:0 10px}
.person .ph{width:160px;height:160px;border-radius:50%;overflow:hidden;margin:0 auto 1.2rem;border:1px solid var(--hair);padding:6px}
.person .ph img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.person h3{font-size:1.7rem;margin-bottom:.2rem}
.person .role{color:var(--sage-d);display:block;margin-bottom:.8rem}
.dark .person .role{color:var(--sage)}
.person p{font-size:.97rem;opacity:.88;text-align:left}
.roster{border-top:1px solid var(--hair);margin-top:3rem;padding-top:1.6rem;text-align:center;opacity:.85}
/* contact */
.contact dl{margin:0}
.contact dt{color:var(--sage-d);margin-top:1.5rem}
.contact dd{margin:.3rem 0 0;font-family:var(--display);font-size:1.5rem;line-height:1.35}
.contact dd a{text-decoration:none;border-bottom:1px solid var(--sage)}
.map{border:1px solid var(--haird);padding:8px}
.map iframe{width:100%;height:420px;border:0;display:block}
footer.site{background:#162826;color:var(--cream);padding:56px 0 30px;text-align:center}
footer.site svg{width:44px;opacity:.7;margin-bottom:1rem}
footer.site small{display:block;opacity:.65;max-width:760px;margin:1rem auto 0;font-size:.8rem;line-height:1.6}
footer.site a{color:var(--sage)}
.compass line,.compass circle,.compass path{stroke:currentColor;fill:none;stroke-width:1}
@media(max-width:767px){section{padding:64px 0}.hero{padding:56px 0 70px}.compass-bg{width:380px;right:-140px}.strip .col{padding:10px}}
