@font-face{font-family:"Geist Mono";src:url("/assets/GeistMono-Variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url("/assets/Geist-Variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{--ease:cubic-bezier(.22,.61,.36,1);--bg:#fafaf9;--card:#fff;--ink:#0c0c0d;--ink2:#2a2a2d;--muted:#6b6b71;--line:#e8e8e5;--soft:#f2f2ef;--r:22px;--r-lg:30px;--max:1240px;--pad:clamp(16px,4vw,40px)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--ink2);font:400 16px/1.65 "Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-wrap:break-word}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
p,li,dd,td,th,a,span,h1,h2,h3,h4,summary,legend,label{overflow-wrap:anywhere;word-break:normal}
p{margin:0 0 1em}
@media (min-width:1800px){:root{--max:1400px}}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.muted{color:var(--muted)}
.skip{position:absolute;left:-9999px;top:8px}
.skip:focus{left:12px;z-index:100;background:#fff;padding:8px 14px;border-radius:999px}
:focus-visible{outline:2px solid #111;outline-offset:2px}

/* type */
.display{font-weight:300;font-size:clamp(2.2rem,1.25rem + 3.9vw,4.6rem);line-height:1.04;letter-spacing:-.035em;color:var(--ink);margin:0 0 .45em}
.display.sm{font-size:clamp(2rem,1.3rem + 2.8vw,3.6rem)}
.title{font-weight:300;font-size:clamp(1.85rem,1.25rem + 2.3vw,3.1rem);line-height:1.08;letter-spacing:-.03em;color:var(--ink);margin:0}
.title.sm{font-size:clamp(1.6rem,1.2rem + 1.5vw,2.4rem)}
.gray{display:block;color:var(--muted)}
.card-title{font-weight:400;font-size:1.3rem;line-height:1.25;letter-spacing:-.015em;color:var(--ink);margin:0 0 .6em}
.sub-title{font-weight:400;font-size:1.25rem;letter-spacing:-.01em;color:var(--ink);margin:48px 0 16px}
.lead{color:var(--muted);font-size:clamp(1rem,.95rem + .25vw,1.13rem);max-width:44rem}
.lead p:last-child{margin-bottom:0}

/* pills */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:42px;padding:9px 20px;border-radius:999px;font:500 14.5px/1.2 "Geist",sans-serif;text-decoration:none;border:1px solid transparent;transition:background .15s,transform .15s;text-align:center;max-width:100%}
.btn svg{flex:none}
.btn:hover{transform:translateY(-1px)}
.btn-dark{background:#111;color:#fff}
.btn-dark:hover{background:#2a2a2a}
.btn-light{background:#ededea;color:#111}
.btn-light:hover{background:#e3e3df}
.btn-sm{min-height:36px;padding:7px 15px;font-size:13.5px}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.chip{display:inline-flex;align-items:center;min-height:32px;padding:5px 13px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13.5px;text-decoration:none;color:var(--ink2)}
.chip:hover{border-color:#cfcfca}
.chip.on{background:#111;color:#fff;border-color:#111}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(250,250,249,.86);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid rgba(0,0,0,.05)}
.hdr{display:flex;align-items:center;gap:20px;min-height:68px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:550;font-size:19px;letter-spacing:-.025em;line-height:1;flex:none}
.brand img{width:34px;height:34px;filter:brightness(.62) contrast(1.25) saturate(.9)}
.nav-desktop{flex:1;display:flex;justify-content:center}
.nav-list{list-style:none;margin:0;padding:0;display:flex;gap:4px;align-items:center}
.nav-list>li{position:relative;display:flex;align-items:center}
.nav-link{display:inline-flex;align-items:center;padding:8px 10px;border-radius:999px;text-decoration:none;font-size:14.5px;color:var(--ink2);cursor:default}
a.nav-link{cursor:pointer}
a.nav-link:hover,.nav-link[aria-current]{background:#efefec}
.dd-btn{border:0;background:none;padding:6px 6px 6px 0;margin-left:-6px;color:var(--muted);cursor:pointer;display:inline-flex;border-radius:999px}
.dd{position:absolute;top:100%;left:50%;transform:translate(-50%,4px);padding-top:10px;z-index:60;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .18s var(--ease),transform .18s var(--ease),visibility 0s linear .18s}
.has-dd:hover>.dd,.has-dd:focus-within>.dd,.has-dd.open>.dd{visibility:visible;opacity:1;pointer-events:auto;transform:translate(-50%,0);transition:opacity .18s var(--ease),transform .18s var(--ease),visibility 0s}
.dd-inner{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 50px rgba(0,0,0,.09);padding:14px;display:grid;gap:4px 18px;min-width:220px}
.mega .dd-inner{grid-template-columns:repeat(3,minmax(200px,1fr));width:min(760px,calc(100vw - 48px))}
.mega .dd{left:50%}
.dd-col{padding:6px}
.dd-head{display:block;font-size:14px;font-weight:500;color:var(--ink);text-decoration:none;padding:6px 8px;border-radius:10px}
.dd ul{list-style:none;margin:0;padding:0}
.dd ul ul{padding-left:10px;border-left:1px solid var(--line);margin:2px 0 4px 8px}
.dd ul a{display:block;padding:5px 8px;border-radius:10px;font-size:13.5px;color:var(--muted);text-decoration:none;line-height:1.35}
.dd a:hover{background:var(--soft);color:var(--ink)}
.hdr-cta{display:flex;align-items:center;gap:8px;flex:none}
.menu-btn{display:none;width:42px;height:42px;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0}
.menu-btn span{display:block;width:16px;height:1.5px;background:#111;transition:transform .2s}
.menu-btn[aria-expanded=true] span:first-child{transform:translateY(3.25px) rotate(45deg)}
.menu-btn[aria-expanded=true] span:last-child{transform:translateY(-3.25px) rotate(-45deg)}
.mnav{position:absolute;left:0;right:0;top:100%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg);box-shadow:0 18px 40px -24px rgba(0,0,0,.25);max-height:calc(100dvh - 68px);overflow-y:auto;overscroll-behavior:contain}
.mnav-inner{padding-top:12px;padding-bottom:24px}
.m-list,.m-list ul{list-style:none;margin:0;padding:0}
.m-list ul{padding-left:14px}
.m-list a,.m-list summary,.m-list span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 4px;text-decoration:none;color:var(--ink);font-size:16px;cursor:pointer;list-style:none;border-bottom:1px solid var(--line)}
.m-list summary::-webkit-details-marker{display:none}
.m-list summary svg{transition:transform .2s;flex:none}
.m-list details[open]>summary svg{transform:rotate(180deg)}
.m-list ul a,.m-list ul summary{font-size:15px;color:var(--ink2)}
.m-cta{display:flex;flex-direction:column;gap:10px;margin-top:20px}
@media (max-width:1100px){.phone-pill{display:none}}
.m-call{display:none}
@media (max-width:960px){.nav-desktop,.hdr-cta>.btn{display:none}.hdr-cta>.m-call{display:inline-flex}.menu-btn{display:flex}.hdr{justify-content:space-between}}

/* photo panels + floating cards */
.photo{position:relative;border-radius:var(--r-lg);background:#e9e7e2 center/cover no-repeat;overflow:hidden}
.float-card{background:rgba(255,255,255,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.7);border-radius:20px;box-shadow:0 14px 44px rgba(0,0,0,.14);padding:20px 22px;color:var(--ink2)}
.float-card p:last-child{margin-bottom:0}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,4vw,56px);align-items:center;padding-top:clamp(28px,6vw,72px);padding-bottom:clamp(24px,4vw,48px)}
.hero-photo{min-height:clamp(380px,42vw,580px);display:flex;align-items:flex-end;justify-content:center;padding:20px}
.hero-photo .cutout{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:min(92%,640px)}
.hero-float{position:relative;z-index:1;display:flex;flex-direction:column;gap:2px;align-self:flex-start;margin-right:auto;max-width:min(320px,100%);font-size:14px}
.hero-float a{text-decoration:none;color:var(--ink)}
.hero-float a:first-child{font-size:1.25rem;font-weight:400;letter-spacing:-.01em}
.hero-float span,.hero-float a:last-child{color:var(--muted)}
@media (max-width:900px){.hero{grid-template-columns:1fr}.hero-photo{min-height:clamp(340px,80vw,520px)}}

.quick .rows{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.quick .rows a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 6px;text-decoration:none;color:var(--ink);font-size:16.5px}
.quick .rows li+li{border-left:1px solid var(--line)}
.quick .rows li+li a{padding-left:20px}
@media (max-width:760px){.quick .rows{grid-template-columns:1fr}.quick .rows li+li{border-left:0;border-top:1px solid var(--line)}.quick .rows li+li a{padding-left:6px}}

.section{padding-top:clamp(56px,8vw,112px)}
.sec-head{margin-bottom:clamp(24px,3vw,40px);max-width:52rem}
.sec-head.center{text-align:center;margin-inline:auto}
.sec-head.row{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 24px;flex-wrap:wrap;max-width:none}
.sec-head .sub{color:var(--muted);margin-top:14px;font-size:1.05rem}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:clamp(20px,2.4vw,28px);min-width:0}
.card blockquote{margin:0 0 1em;padding-left:14px;border-left:2px solid var(--line);color:var(--ink)}
.card blockquote p{margin:0}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
.photo.tall{min-height:520px;display:flex;align-items:flex-end;padding:20px}
.photo.tall .float-card{font-size:1.05rem;color:var(--ink)}
.photo.short{min-height:240px}
.stack{display:grid;gap:20px;align-content:start}
@media (max-width:860px){.split{grid-template-columns:1fr}.photo.tall{min-height:clamp(420px,110vw,620px)}}

.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
@media (max-width:1000px){.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){.grid3,.grid2{grid-template-columns:1fr}}
.pa-card{display:flex;flex-direction:column;align-items:flex-start}
.pa-card p{color:var(--muted)}
.pa-card .btn{margin-top:auto}
.pill-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:10px}
.pill-grid a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;border-radius:16px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:15px}
.pill-grid a:hover{border-color:#cfcfca}
.pill-grid svg{flex:none;color:var(--muted)}

.team{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
@media (max-width:1000px){.team{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.team{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
.person .ph{border-radius:20px;overflow:hidden;background:var(--soft);aspect-ratio:1/1}
.person .ph img{width:100%;height:100%;object-fit:cover}
.pn{font-size:1.05rem;color:var(--ink);font-weight:450;margin:12px 0 0;letter-spacing:-.01em}
.pr{color:var(--muted);font-size:14.5px;margin:0}

.cta-photo{min-height:clamp(420px,40vw,560px);display:flex;align-items:center;padding:clamp(16px,4vw,48px)}
.cta-card{max-width:520px}
.cta-card .title{margin-bottom:.5em}
.cta-card .btn{margin-top:8px}
.band{display:flex;justify-content:space-between;align-items:center;gap:16px 24px;flex-wrap:wrap}

.faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:760px){.faq{grid-template-columns:1fr}}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:18px;padding:0 20px;align-self:start}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 0;cursor:pointer;list-style:none;color:var(--ink);font-size:16px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary svg{flex:none;color:var(--muted)}
.faq-item summary .v{transition:opacity .2s}
.faq-item[open] summary .v{opacity:0}
.faq-a{color:var(--muted);padding-bottom:18px}

.post-card{padding:0;overflow:hidden;display:flex}
.pc-link{display:flex;flex-direction:column;text-decoration:none;color:inherit;width:100%}
.pc-img{aspect-ratio:16/10;overflow:hidden;background:var(--soft)}
.pc-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.post-card:hover .pc-img img{transform:scale(1.03)}
.pc-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1;align-items:flex-start}
.pc-body h2,.pc-body h3{font-weight:400;font-size:1.15rem;line-height:1.3;color:var(--ink);margin:0 0 .5em;letter-spacing:-.01em}
.pc-body p{color:var(--muted);font-size:15px}
.more{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--ink)}
.area-card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.area-card .pc-body p{font-size:15px}
.area-card .btn{margin-top:auto}
.pager{display:flex;gap:8px;justify-content:center;margin-top:32px;flex-wrap:wrap}

/* page hero */
.page-hero{padding-top:clamp(32px,6vw,72px);padding-bottom:8px;display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
.page-hero.has-photo{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center}
.page-photo{min-height:clamp(240px,26vw,380px)}
@media (max-width:900px){.page-hero.has-photo{grid-template-columns:1fr}.page-photo{min-height:clamp(200px,52vw,360px)}}

/* article */
.article-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(24px,4vw,64px);padding-top:clamp(32px,5vw,64px);align-items:start}
@media (max-width:1000px){.article-wrap{grid-template-columns:minmax(0,1fr)}}
.prose{max-width:46rem;font-size:17px;line-height:1.75;color:var(--ink2);min-width:0}
.prose h2 strong,.prose h3 strong,.prose h4 strong,.card-title strong{font-weight:inherit}
.prose h2{font-weight:350;font-size:clamp(1.5rem,1.2rem + 1vw,2rem);line-height:1.2;letter-spacing:-.022em;color:var(--ink);margin:2em 0 .6em}
.prose h3{font-weight:450;font-size:1.2rem;line-height:1.35;color:var(--ink);margin:1.7em 0 .5em}
.prose h4,.prose h5{font-weight:500;font-size:1.05rem;color:var(--ink);margin:1.5em 0 .4em}
.prose>:first-child{margin-top:0}
.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:#c9c9c4;text-underline-offset:3px}
.prose a:hover{text-decoration-color:#111}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1.2em}
.prose li{margin:.3em 0}
.prose li::marker{color:#a5a5a0}
.prose table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.prose td,.prose th{border:1px solid var(--line);padding:8px 10px}
.prose blockquote{margin:1.4em 0;padding:4px 0 4px 18px;border-left:2px solid var(--line);color:var(--ink)}
.prose iframe{width:100%;max-width:100%;border:0;border-radius:16px}
.sidebar{display:grid;gap:16px;position:sticky;top:88px;min-width:0}
@media (max-width:1000px){.sidebar{position:static}}
.side-h{font-weight:450;font-size:1.05rem;color:var(--ink);margin:0 0 10px}
.side-menu ul,.related ul{list-style:none;margin:0;padding:0}
.side-menu a,.related a{display:block;padding:6px 0;text-decoration:none;color:var(--muted);font-size:14.5px;line-height:1.4}
.side-menu a:hover,.related a:hover{color:var(--ink)}
.side-menu a[aria-current]{color:var(--ink);font-weight:500}
.side-menu .grp{font-size:14.5px;color:var(--ink);padding:10px 0 4px;font-weight:450}
.side-call{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.call-big{font-size:1.5rem;font-weight:350;letter-spacing:-.02em;color:var(--ink);text-decoration:none}
.side-call .btn{margin-top:10px}
.share{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.post-nav a{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink);font-size:15px;line-height:1.4}
.post-nav .pn-next{text-align:right;grid-column:2}
.post-nav .muted{font-size:13px}
@media (max-width:600px){.post-nav{grid-template-columns:1fr}.post-nav .pn-next{grid-column:1;text-align:left}}

/* about */
.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
@media (max-width:900px){.duo{grid-template-columns:1fr}}
.duo-photo{min-height:520px;display:flex;align-items:flex-end;padding:20px}
.duo-photo .float-card{max-width:520px}
.bios{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
@media (max-width:1100px){.bios{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bios{grid-template-columns:1fr}}
.bio{padding:0;overflow:hidden;align-self:start}
.bio-img{aspect-ratio:1/1;background:var(--soft)}
.bio-img img{width:100%;height:100%;object-fit:cover}
.bio-body{padding:18px 22px 22px;font-size:15px;color:var(--ink2)}
.bio-body .pn{margin:0;font-size:1.2rem;font-weight:400}
.bio-body .pr{margin-bottom:12px}
.more-bio summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;list-style:none;font-size:14px;font-weight:500;color:var(--ink);padding:6px 14px;border-radius:999px;background:#ededea;margin-top:4px}
.more-bio summary::-webkit-details-marker{display:none}
.more-bio[open] summary svg{transform:rotate(180deg)}
.more-bio[open] summary{margin-bottom:12px}

/* results, contact, reviews */
.results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
@media (max-width:900px){.results{grid-template-columns:1fr}}
.result p{color:var(--ink2)}
.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-card .title{margin-bottom:.5em}
.map{padding:0;overflow:hidden;min-height:380px;display:flex}
.map iframe{border:0;width:100%;min-height:380px;flex:1}
.reviews{min-height:200px}
.reviews iframe{max-width:100%}

/* consultation + footer */
.consult{padding-top:clamp(56px,8vw,112px)}
.consult-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,56px);background:var(--soft);border-radius:var(--r-lg);padding:clamp(22px,4vw,48px)}
@media (max-width:900px){.consult-card{grid-template-columns:1fr}}
.contact-list{list-style:none;margin:24px 0;padding:0;display:grid;gap:8px;color:var(--muted)}
.contact-list a{color:var(--ink);text-decoration:none}
.contact-list.big{font-size:1.05rem}
.socials{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.socials .muted{margin-right:4px;font-size:14px}
.consult-form{background:#fff;border-radius:22px;padding:clamp(18px,2.5vw,28px);border:1px solid var(--line);min-width:0}
.lk-form{display:grid;gap:14px}
.form-title{font-weight:400;font-size:1.2rem;margin:0;color:var(--ink)}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:480px){.row2{grid-template-columns:1fr}}
.field{display:grid;gap:6px;font-size:13.5px;color:var(--muted);min-width:0}
.field input{width:100%;min-width:0;font:inherit;font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:11px 13px}
.field input:focus{outline:none;border-color:#9a9a95;background:#fff}
.radios{border:0;margin:0;padding:0;display:grid;gap:8px;min-width:0}
.radios legend{font-size:13.5px;color:var(--muted);margin-bottom:8px;padding:0}
.radio{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--ink2);cursor:pointer}
.radio input{margin:4px 0 0;accent-color:#111;flex:none}
.lk-form .btn{justify-self:start;cursor:pointer}
.form-note{margin:0;padding:12px 14px;border-radius:12px;background:var(--soft);color:var(--ink);font-size:14px}
.site-footer{padding:48px 0 40px}
.foot-top{display:flex;gap:24px 48px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;padding-bottom:28px;border-bottom:1px solid var(--line)}
.foot-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,auto));gap:6px 28px}
@media (max-width:700px){.foot-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
.foot-links a{color:var(--muted);text-decoration:none;font-size:14px}
.foot-links a:hover{color:var(--ink)}
.foot-legal{color:var(--muted);font-size:13px;margin:20px 0 0}
.foot-legal a{color:var(--muted)}
.related li+li{border-top:1px solid var(--line)}
.related a{padding:10px 0}
.related .rt{display:block;color:var(--ink);font-size:14.5px}
.related .rx{display:block;color:var(--muted);font-size:13px;margin-top:3px;line-height:1.45}
@media (max-width:359px){.hdr{gap:10px}.brand{font-size:17px;gap:8px}.brand img{width:30px;height:30px}.hdr-cta{gap:6px}.m-call{padding:7px 12px}}

/* motion: quick, ease-out, transform/opacity only */
.btn{transition:background-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
.btn:active{transform:translateY(0) scale(.98);transition-duration:.12s}
.chip,.pill-grid a,.dd a,.dd-head,.nav-link,.side-menu a,.related a,.foot-links a,.contact-list a,.quick .rows a{transition:background-color .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease),transform .2s var(--ease)}
.pill-grid a:hover{transform:translateY(-1px)}
.pill-grid svg,.quick .rows svg,.more svg{transition:transform .2s var(--ease)}
.pill-grid a:hover svg,.quick .rows a:hover svg,.post-card:hover .more svg{transform:translateX(3px)}
.post-card,.area-card,.post-nav a,.pa-card{transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}
.post-card:hover,.area-card:hover,.post-nav a:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(0,0,0,.06);border-color:#dededa}
.post-card:active,.area-card:active,.post-nav a:active{transform:translateY(0);transition-duration:.12s}
.pc-img img{transition:transform .3s var(--ease)}
.faq-item{transition:border-color .2s var(--ease)}
.faq-item:hover{border-color:#d6d6d1}
.faq-item summary svg path,.m-list summary svg,.more-bio summary svg{transition:transform .22s var(--ease),opacity .22s var(--ease)}
.mnav{transition:opacity .2s var(--ease),transform .2s var(--ease)}
.mnav.is-entering,.mnav.is-leaving{opacity:0;transform:translateY(-6px)}
.motion :is(.sec-head,.grid3>*,.grid2>*,.team>li,.bios>*,.faq>*,.pill-grid,.results>*,.split>*,.duo>*,.consult-card,.page-photo,.contact-grid>*,.band,.cta-photo,.post-nav,.share,.sidebar,.facts-row>*,.all-areas):not(.in){opacity:0;transform:translateY(10px)}
.motion :is(.sec-head,.grid3>*,.grid2>*,.team>li,.bios>*,.faq>*,.pill-grid,.results>*,.split>*,.duo>*,.consult-card,.page-photo,.contact-grid>*,.band,.cta-photo,.post-nav,.share,.sidebar,.facts-row>*,.all-areas).in{transition:opacity .3s var(--ease) var(--d,0ms),transform .3s var(--ease) var(--d,0ms)}
.motion.motion-done:not(.motion-js) :is(.sec-head,.grid3>*,.grid2>*,.team>li,.bios>*,.faq>*,.pill-grid,.results>*,.split>*,.duo>*,.consult-card,.page-photo,.contact-grid>*,.band,.cta-photo,.post-nav,.share,.sidebar,.facts-row>*,.all-areas){opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.post-card:hover,.area-card:hover,.post-nav a:hover,.pill-grid a:hover,.btn:hover{transform:none}}

/* the reviews widget loads after the page; reserve room so the sections below do not jump when it arrives */
.reviews{min-height:max(100svh,900px);position:relative;overflow-anchor:none}
/* The widget is several screens tall. Keep a little less than its measured height (Nov 2026: 1 column 8,000 to 11,100 px,
   2 columns 4,500, 3 columns 3,200, 4 columns 2,570) so a fast scroll never reaches the content below before it loads.
   app.js scrolls by any remaining growth when the content below is in view. */
@media (max-width:374px){.reviews{min-height:10100px}}
@media (min-width:375px) and (max-width:479px){.reviews{min-height:9000px}}
@media (min-width:480px) and (max-width:767px){.reviews{min-height:7900px}}
@media (min-width:768px) and (max-width:899px){.reviews{min-height:7600px}}
@media (min-width:900px) and (max-width:1179px){.reviews{min-height:4300px}}
@media (min-width:1180px) and (max-width:1919px){.reviews{min-height:3050px}}
@media (min-width:1920px){.reviews{min-height:2450px}}
.reviews > :not(script){transition:opacity .3s var(--ease)}
/* while loading, the widget lays out out of flow and unseen, so its own reflows never move the page */
.reviews.loading > :not(script){position:absolute!important;left:clamp(20px,2.4vw,28px)!important;right:clamp(20px,2.4vw,28px)!important;top:clamp(20px,2.4vw,28px)!important;visibility:hidden!important;opacity:0!important}
/* the widget root sets "all: initial" inline, hence !important; app.js reveals it once settled, or after 8s at most */
/* Until the widget settles (it reflows once more as it appears), what comes after it stays unseen too. Someone who scrolls straight to the bottom
   sees it appear in place once, instead of watching it get pushed down. */
html.js body:has(.reviews:is(.loading,.settling)) :is(main,section):has(.reviews) ~ *{visibility:hidden}
.reviews.loading::before{content:"Loading reviews";display:block;color:var(--gray);font-size:15px;padding:8px 4px}
@media (prefers-reduced-motion:reduce){.reviews > :not(script){transition:none}}

/* ---- pass 2: calmer, one action per screen ---- */
.mono{font-family:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-feature-settings:"tnum" 1;letter-spacing:-.01em}
.hdr-phone{font-size:13.5px;color:var(--muted);text-decoration:none;padding:6px 8px;white-space:nowrap;transition:color .2s var(--ease)}
.hdr-phone:hover{color:var(--ink)}
@media (max-width:1100px){.hdr-phone{display:none}}
.text-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 6px;color:var(--muted);text-decoration:none;font-size:15px;transition:color .2s var(--ease)}
.text-link:hover{color:var(--ink)}
.text-link .mono{color:var(--ink)}
.hero-float{gap:0;font-size:14px;max-width:min(340px,100%)}
.hero-float .k{font-size:13px;color:var(--muted);margin-top:10px}
.hero-float .k:first-child{margin-top:0}
.hero-float a,.hero-float a:first-child,.hero-float a:last-child{font-size:14.5px;color:var(--ink);line-height:1.45}
.hero-float .mono{color:var(--ink);font-size:14px}
.all-areas{margin-top:20px}
.all-areas .sub-title{margin:0 0 14px}
.area-list{list-style:none;margin:0;padding:0;columns:3 220px;column-gap:32px}
.area-list li{break-inside:avoid}
.area-list a{display:block;padding:7px 0;color:var(--ink2);text-decoration:none;font-size:15px;line-height:1.4;border-bottom:1px solid var(--line);transition:color .2s var(--ease)}
.area-list a:hover{color:var(--ink)}
.facts{padding-top:clamp(40px,6vw,72px)}
.facts-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.facts-row li{display:flex;flex-direction:column;gap:4px;padding:20px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);min-width:0}
.facts-row .dots{margin-bottom:12px;max-width:100%;height:auto}
.facts-row .n{font-size:clamp(1.3rem,1rem + .9vw,1.75rem);color:var(--ink);line-height:1.15;font-weight:400}
.facts-row .l{font-size:14px;color:var(--muted)}
@media (max-width:900px){.facts-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.facts-row li{padding:16px}}
.dots circle{fill:#dcdcd7}
.dots circle.on{fill:var(--ink)}
.consult-text{color:var(--ink2);margin:18px 0 6px;max-width:52ch}
.consult-text p{margin:0 0 .8em}
.foot-brand{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.toc li{counter-increment:t}
.toc a{display:grid;grid-template-columns:26px 1fr;gap:4px;padding:6px 0;color:var(--muted);text-decoration:none;font-size:14px;line-height:1.4;transition:color .2s var(--ease)}
.toc a::before{content:counter(t,decimal-leading-zero);font-family:"Geist Mono",ui-monospace,monospace;font-size:12px;color:#a6a6a0;padding-top:1px}
.toc a:hover,.toc a.on{color:var(--ink)}
.side-more{padding:0}
.side-more summary{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 20px;cursor:pointer;list-style:none;color:var(--ink);font-size:15px}
.side-more summary::-webkit-details-marker{display:none}
.side-more summary svg{transition:transform .22s var(--ease);flex:none}
.side-more[open] summary svg{transform:rotate(180deg)}
.side-more .side-menu{padding:0 20px 16px}
@media (min-width:1001px){.sidebar{max-height:calc(100vh - 104px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}
.prose h2{scroll-margin-top:96px}
@media (max-width:600px){.hero-float{display:none}}
/* team update: 4 on the home grid, 8 bios; keep rows full at every width */
.team{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:700px){.team{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bios{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:640px){.bios{grid-template-columns:1fr}}
.bio{align-self:stretch}
@media (min-width:641px){.bio-img{aspect-ratio:4/3}.bio-img img{object-position:50% 18%}}
/* odd team count: the first bio spans the row so the rest pair up with no orphan */
@media (min-width:641px){
.bios:not(.bios-pending)>.bio:first-child:nth-last-child(2n+1){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.bios:not(.bios-pending)>.bio:first-child:nth-last-child(2n+1) .bio-img{height:100%;aspect-ratio:auto;min-height:320px}
.bios:not(.bios-pending)>.bio:first-child:nth-last-child(2n+1) .bio-body{padding:clamp(20px,3vw,40px)}
}
/* team from data/team.json: 6 with photos, placeholders in a compact row */
.team{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:700px){.team{grid-template-columns:repeat(2,minmax(0,1fr))}}
.person .ps{margin:6px 0 0;font-size:14px;line-height:1.5;color:var(--ink2)}
.person .ps.muted,.bio .muted{color:var(--muted)}
.initials{display:flex;align-items:center;justify-content:center;background:var(--soft);border:1px solid var(--line);border-radius:50%;aspect-ratio:1/1}
.initials span{font-weight:300;letter-spacing:-.02em;color:var(--ink);font-size:20px;line-height:1}
.team-pending,.bios-pending{margin-top:20px;grid-template-columns:repeat(3,minmax(0,1fr))}
.team-pending .person,.bios-pending .bio{display:flex;align-items:center;gap:14px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);min-width:0}
.team-pending .ph,.bios-pending .bio-img{width:52px;height:52px;flex:none;aspect-ratio:1/1;border-radius:50%}
.team-pending .pn,.bios-pending .pn{margin:0;font-size:16px}
.team-pending .ps,.bios-pending .bio-body p{margin:2px 0 0;font-size:13.5px}
.bios-pending .bio-body{padding:0;min-width:0}
.bios-pending .bio{align-self:stretch}
@media (max-width:640px){.bios-pending{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.team-pending .person,.bios-pending .bio{flex-direction:column;align-items:center;text-align:center;gap:8px;padding:14px 8px}.team-pending .ps,.bios-pending .bio-body p{font-size:12.5px}}
.team-pending .pt{min-width:0}
/* team counts change live from the staff portal: rows stay full or centered at any count */
.team:not(.team-pending){display:flex;flex-wrap:wrap;justify-content:center;gap:20px}
.team:not(.team-pending)>li{flex:0 0 calc((100% - 40px)/3);min-width:0}
.team-pending,.bios-pending{display:flex;flex-wrap:wrap;gap:20px}
.team-pending>li,.bios-pending>.bio{flex:1 1 calc((100% - 40px)/3);min-width:0}
@media (max-width:700px){.team:not(.team-pending),.team-pending{gap:14px}.team:not(.team-pending)>li{flex-basis:calc((100% - 14px)/2)}.team-pending>li{flex-basis:calc((100% - 28px)/3)}}

/* ---- color (Nov 14): sand, sage and clay used as quiet tints ---- */
:root{--bg:#f8f7f4;--line:#e7e5df;--soft:#f1efea;
--sand:#b38f5f;--sand-ink:#7a5c33;--sand-tint:#f6f1e8;--sand-line:#e9dcc6;
--sage:#6f9f80;--sage-ink:#2f6a45;--sage-tint:#edf4ef;--sage-line:#cfe2d5;
--clay:#c2805f;--clay-ink:#97512f;--clay-tint:#f8eee8;--clay-line:#efd5c6;--night:#151513}
.g1{--g:var(--sage);--g-tint:var(--sage-tint);--g-line:var(--sage-line)}
.g2{--g:var(--sand);--g-tint:var(--sand-tint);--g-line:var(--sand-line)}
.g3{--g:var(--clay);--g-tint:var(--clay-tint);--g-line:var(--clay-line)}
.site-header{background:rgba(248,247,244,.86)}
a.nav-link:hover,.nav-link[aria-current]{background:var(--sand-tint);color:var(--ink)}
.dd a:hover{background:var(--sand-tint)}
:focus-visible{outline-color:var(--sage-ink)}
.btn-dark{background:var(--night)}
.btn-dark:hover{background:#2b2b27}
.btn-light{background:#fff;border-color:var(--line);color:var(--ink)}
.btn-light:hover{background:var(--sand-tint);border-color:var(--sand-line)}
.chip:hover{border-color:var(--sand-line);background:var(--sand-tint)}
.prose a{text-decoration-color:var(--sand)}
.prose blockquote,.card blockquote{border-left-color:var(--sand)}

/* hero: a small light card with the office details */
.hero-float span:not(.k){color:var(--ink)}

/* practice cards: a thin color edge on top, nothing else */
.pa-card{box-shadow:inset 0 3px 0 var(--g-line,transparent)}
.pa-card:hover{border-color:var(--g-line)}

/* facts: one joined row of plain numbers */
.facts-row{gap:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.facts-row li{border:0;border-radius:0;background:none;padding:20px 24px}
.facts-row li+li{border-left:1px solid var(--line)}
.facts-row .dots{display:none}
.facts-row .n{font-family:inherit;font-size:clamp(1.25rem,1.1rem + .5vw,1.6rem);font-weight:300;letter-spacing:-.02em;color:var(--ink)}
@media (max-width:900px){.facts-row li:nth-child(3){border-left:0}.facts-row li:nth-child(n+3){border-top:1px solid var(--line)}}

/* welcome split: tinted panels */
.stack .card:first-child{background:var(--sand-tint);border-color:var(--sand-line)}
.stack .card:last-child{background:var(--sage-tint);border-color:var(--sage-line)}
.stack .card:last-child blockquote{border-left-color:var(--sage)}

/* team */
.person .ph,.bio-img{background:var(--sand-tint)}
.initials{background:var(--sage-tint);border-color:var(--sage-line)}
.initials span{color:var(--sage-ink)}

/* testimonials band, FAQ and consultation: flat tints */
.band{background:var(--sage-tint);border-color:var(--sage-line)}
.faq-item[open]{border-color:var(--sand-line)}
.consult-card{background:var(--sand-tint);border:1px solid var(--sand-line)}
.kvs{gap:0}
.kvs li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:14px;padding:11px 0;border-top:1px solid rgba(0,0,0,.06);color:var(--ink2)}
.kvs li:last-child{border-bottom:1px solid rgba(0,0,0,.06)}
.kvs .k{font-size:13px;color:var(--muted);padding-top:1px}
.kvs a{color:var(--ink)}
.kvs a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--sand)}
@media (max-width:380px){.kvs li{grid-template-columns:1fr;gap:2px}}
.field input:focus{border-color:var(--sage-line);box-shadow:0 0 0 4px rgba(47,106,69,.08)}
.radio input{accent-color:var(--sage-ink)}
.form-note{background:var(--sage-tint);color:var(--sage-ink)}

/* articles: light call card, clean tables */
.side-call .k{font-size:13px;color:var(--muted)}
.toc li{border-left:2px solid transparent;padding-left:10px;margin-left:-12px;transition:border-color .2s var(--ease)}
.toc li:has(a.on){border-left-color:var(--sage)}
.prose table{border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:16px;background:#fff}
.prose td,.prose th{border:0;border-top:1px solid var(--line);padding:10px 14px;font-size:15px}
.prose tr:first-child>td,.prose tr:first-child>th{border-top:0}
.prose th,.prose thead td{font-size:13px;font-weight:500;color:var(--ink2);background:var(--soft)}
.post-card:hover,.area-card:hover{border-color:var(--sand-line)}
/* consultation form: honeypot, error note, invalid fields */
.hp{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.form-note.is-error{background:#fbeeec;color:#8a1f14}
.field input[aria-invalid="true"]{border-color:#b42318}
.lk-form .btn:disabled{opacity:.6;cursor:progress}
