@font-face{font-family:Editorial;src:url("assets/editorial.woff2") format("woff2");font-style:normal;font-weight:300 700;font-display:swap}
@font-face{font-family:"Open Sans";src:url("assets/open-sans-latin.woff2") format("woff2");font-style:normal;font-weight:400 600;font-display:swap}
@font-face{font-family:DM Sans;src:url("assets/sans.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}

:root {
  --paper:#fff;
  --surface:#f4f4f4;
  --ink:#000;
  --muted:#4e4e4e;
  --line:#dadada;
  /* System fallbacks from the Compass web type stacks. */
  --serif:Times,"Times New Roman",serif;
  --sans:Helvetica,Arial,sans-serif;
  --legible:"Open Sans",Helvetica,Arial,sans-serif;
  --header:80px;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--sans);
  -webkit-text-size-adjust:100%;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 12px)}
body{margin:0;font-size:16px;line-height:1.5}
h1,h2,h3,p,figure,blockquote,ol{margin:0}
h1,h2{font-family:var(--serif);font-weight:400}
h1,h2{letter-spacing:-.018em;line-height:1.04}
em{font-weight:inherit}
a{color:inherit;text-decoration:none}
/* One upright treatment for every direct and office number. */
a[href^="tel:"]{
  font-family:var(--sans);font-weight:400;font-style:normal;
  font-variant-numeric:lining-nums tabular-nums;letter-spacing:normal;white-space:nowrap
}
button{font:inherit;color:inherit}
img{display:block;max-width:100%}
svg{display:block}
a:focus-visible,button:focus-visible{outline:3px solid #000;outline-offset:5px}
.hero :focus-visible,.contact :focus-visible{outline-color:#fff}
::selection{background:#000;color:#fff}
.wrap,.nav-wrap{width:min(88%,1240px);margin-inline:auto}
.icon-set{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
a svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
.skip-link{position:fixed;left:12px;top:-120px;z-index:100;background:white;color:black;padding:12px 18px}
.skip-link:focus{top:10px}
.eyebrow{
  font-family:var(--legible);font-size:11px;font-weight:500;letter-spacing:.13em;line-height:1.5;text-transform:uppercase
}
.eyebrow{display:flex;align-items:center;gap:14px;color:#4e4e4e}
.eyebrow>span{display:block;width:34px;height:1px;background:#adadad;flex:none}
.eyebrow.centered{justify-content:center}
.masthead{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid #dadada}
.nav-wrap{min-height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:24px}
.identity{display:flex;align-items:center;gap:clamp(14px,2.1vw,30px);flex-shrink:0}
.wordmark{display:inline-flex;flex-flow:column;align-items:center;justify-content:center;min-height:44px;color:#000}
.wordmark-name{font:600 clamp(21px,2.05vw,31px)/1 Editorial,Georgia,serif;letter-spacing:.064em;text-transform:uppercase;white-space:nowrap}
.wordmark-field{font-family:"DM Sans",Arial,sans-serif;font-weight:600;text-transform:uppercase;font-size:8px;letter-spacing:.39em;margin-top:6px;line-height:1;color:#4e4e4e;padding-left:.39em}
.identity-rule{height:28px;width:1px;background:#c9c9c9}
.compass-header{width:clamp(72px,6.5vw,101px);height:auto}
#primary-nav{display:flex;align-items:center;gap:clamp(18px,2vw,37px)}
#primary-nav a:not(.nav-phone){position:relative;display:flex;align-items:center;min-height:44px;font-size:13px;font-weight:500;white-space:nowrap}
#primary-nav a:not(.nav-phone)::after{content:"";position:absolute;bottom:6px;left:0;right:0;height:1px;background:#6c6c6c;transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
#primary-nav a:not(.nav-phone):hover::after,#primary-nav a[aria-current="location"]::after{transform:scaleX(1)}
.nav-phone{min-height:41px;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:#000;color:#fff;padding:0 16px;font-size:15px;transition:background .2s}
.nav-phone:hover{background:#333}
.nav-phone svg{width:14px;height:14px}
.menu-button,.menu-button[hidden]{display:none}

.hero{position:relative;isolation:isolate;overflow:hidden;background:#171717;color:#fff}
.hero-scene,.hero-shade{position:absolute;width:100%;height:100%;inset:0;z-index:-1}
.hero-scene{object-fit:cover;object-position:50% 43%;filter:saturate(.75)}
.hero-shade{background:linear-gradient(90deg,rgba(23,23,23,.94) 0%,rgba(23,23,23,.88) 27%,rgba(23,23,23,.58) 54%,rgba(23,23,23,.26) 79%,rgba(23,23,23,.36) 100%),linear-gradient(0deg,rgba(23,23,23,.55),transparent 35%)}
.hero-inner{display:grid;grid-template-columns:1.25fr .8fr;gap:5.5%;align-items:center;padding-block:clamp(42px,4.1vw,68px) 35px;min-height:460px}
.hero-copy{max-width:700px}
.hero h1{font-size:clamp(54px,5.5vw,80px);line-height:1.01}
.hero h1>span{display:block}
.hero-intro{max-width:465px;color:#e8e8e8;font-size:clamp(15px,1.16vw,18px);line-height:1.66;margin:24px 0}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:47px;padding:11px 23px;font-size:15px;font-weight:500;border:1px solid;transition:background .2s,color .2s,border-color .2s}
.button[href^="tel:"]{font-size:16px}
.button-light{background:#fff;color:#000;border-color:#fff}
.button-light:hover{background:#e8e8e8;border-color:#e8e8e8}
.button-clear{color:white;border-color:#dadada;background:rgba(23,23,23,.3)}
.button-clear:hover{background:#fff;color:#000}
.button-dark{background:#000;color:#fff;border-color:#000}
.button-dark:hover{background:#333;border-color:#333}
.button:active{transform:translateY(1px)}
.section-cta{margin-top:25px}
.process-action{display:flex;justify-content:center;margin-top:44px}
.button svg{width:15px;height:15px}
.headshot{position:relative;overflow:hidden;background:#333;isolation:isolate}
.headshot>img{position:absolute;max-width:none;height:auto}

.process{padding:clamp(62px,6vw,91px) 0 clamp(70px,7vw,105px)}
.section-heading{text-align:center}
.section-heading h2,h2{font-size:clamp(43px,4.1vw,63px)}
.section-heading h2{margin-top:15px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;margin-top:clamp(36px,4.3vw,62px)}
.steps li{padding:0 clamp(15px,2vw,31px);border-left:1px solid var(--line)}
.steps li:first-child{padding-left:0;border-left:0}
.steps li:last-child{padding-right:0}
.step-num{display:block;font:400 16px/1.3 var(--sans);color:#4e4e4e;font-variant-numeric:lining-nums tabular-nums}
.steps h3{margin:18px 0 9px;font:500 clamp(19px,1.5vw,23px)/1.25 var(--sans)}
.steps p,.about-copy>p:not(.eyebrow),.service-copy>p{font-size:16px;line-height:1.5;color:var(--muted)}
.band{padding-block:clamp(66px,7.8vw,116px)}
.about{background:var(--surface)}
.about-grid{display:grid;grid-template-columns:.87fr 1fr;gap:clamp(60px,9vw,145px);align-items:center}
.about-photo{width:100%;max-width:410px;justify-self:center}
.bio-crop{aspect-ratio:4 / 5.05}
.bio-crop>img{width:189.58%;left:-50.83%;top:-69.86%}
.about-copy h2,.contact h2{margin:15px 0 21px}
.service-copy h2{margin-bottom:21px}
.about-copy>p:not(.eyebrow)+p{margin-top:13px}
.about-copy{max-width:535px}
.about-copy>p.about-lead{font-size:19px;line-height:1.5;color:var(--ink)}
.text-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;border-bottom:1px solid #6c6c6c;font-size:13px;font-weight:600;color:#000;letter-spacing:.02em;margin-top:16px}
.text-link svg{width:17px;transition:transform .18s}
.text-link:hover svg{transform:translateX(3px)}
.services{padding-top:0;padding-bottom:clamp(68px,7.5vw,110px)}
.service-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(45px,7vw,110px)}
.service-row+.service-row{margin-top:clamp(48px,5.7vw,84px);padding-top:clamp(48px,5.7vw,84px);border-top:1px solid var(--line)}
.service-copy{max-width:475px}
.listing-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.buying .listing-photo img{aspect-ratio:3/2}
.testimonials{background:var(--surface)}
.quotes{display:grid;grid-template-columns:1fr 1fr;max-width:1010px;margin:clamp(36px,4vw,60px) auto 0}
.quotes figure{padding:0 clamp(15px,3.5vw,66px);text-align:center}
.quotes figure+figure{border-left:1px solid #c9c9c9}
.quote-mark{display:block;font:400 63px/.72 var(--serif);color:#6c6c6c;height:32px}
.quotes blockquote{font:italic 400 clamp(22px,1.8vw,27px)/1.35 var(--serif);letter-spacing:normal}
.quotes .review-context{margin-top:18px;font:400 14px/1.6 var(--legible);color:#4e4e4e}
.quotes figcaption{font-family:var(--legible);margin-top:23px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;color:#4e4e4e}
.quotes figcaption strong{font-weight:600;color:#000}
.quotes figcaption span::before{content:"";display:inline-block;width:14px;height:1px;background:#adadad;vertical-align:middle;margin-right:10px}
.contact{background:#000;color:#fff}
.contact-inner{display:grid;grid-template-columns:1.4fr 1fr;gap:8%;align-items:center}
.contact .eyebrow{color:#e8e8e8}
.contact .eyebrow>span{background:#adadad}
.contact h2{color:#fff;margin-bottom:12px}
.contact p:not(.eyebrow){font-size:15px;color:#e8e8e8}
.contact-actions{justify-self:end}
.contact-phone{display:inline-flex;align-items:center;gap:15px;min-height:44px;font-size:clamp(28px,2.65vw,40px);line-height:1.15}
.contact-phone svg{color:#fff;width:23px;height:23px}
.contact-links{display:flex;align-items:center;gap:13px;margin-top:13px}
.contact-links a{display:inline-flex;align-items:center;min-height:43px;color:#fff;font-size:13px;text-decoration:underline;text-underline-offset:5px}
.contact-links>span{width:1px;height:13px;background:#6c6c6c}
.footer{padding-block:clamp(38px,4.5vw,70px) 20px}
.footer-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,4vw,60px);width:min(88%,1080px);text-align:center}
.footer-group{display:flex;flex-direction:column;align-items:center;gap:12px}
.footer-group>.wordmark,.compass-link{min-height:clamp(52px,6vw,84px)}
.footer .wordmark-name{font-size:clamp(27px,3.65vw,50px)}
.footer .wordmark-field{font-size:clamp(8px,.74vw,11px)}
.compass-link{display:flex;align-items:center;justify-content:center;width:min(90%,440px)}
.compass-link img{width:100%;height:auto}
.footer-main address,.footer-connect{font-size:14px;color:#4e4e4e;line-height:1.8}
.footer-main address{font-style:normal}
.footer-main address strong{color:var(--ink);font-weight:600}
.footer-connect>a{display:block}
.footer a:not(.wordmark):hover{text-decoration:underline;text-underline-offset:4px}
.socials{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin-bottom:clamp(22px,3vw,42px);font-size:14px;color:var(--muted)}
.socials a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:3px}
.footer-bottom{margin-top:clamp(26px,3.4vw,51px);padding-top:19px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:#4e4e4e}
.footer-bottom i{display:inline-block;width:2px;height:2px;border-radius:50%;background:currentColor;vertical-align:middle;margin:0 6px}
.mobile-contact,.mobile-contact[hidden]{display:none}

@media(max-width:1040px){
  :root{--header:70px}
  .wrap,.nav-wrap{width:90%}
  #primary-nav{gap:18px}
  .wordmark-name{font-size:23px}
  .identity{gap:15px}
  .compass-header{width:78px}
  .hero-inner{grid-template-columns:1.2fr .8fr;gap:5%;min-height:400px}
  .hero h1{font-size:clamp(44px,6.2vw,63px)}
  .hero-intro{max-width:408px}
}
@media(max-width:960px){
  .nav-wrap{flex-wrap:wrap;gap:0;position:relative}
  .menu-ready .nav-wrap{flex-wrap:nowrap}
  .masthead .identity{min-height:var(--header)}
  .menu-button:not([hidden]){display:flex;align-items:center;justify-content:center;gap:10px;min-width:50px;min-height:44px;background:none;border:0;cursor:pointer}
  .menu-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
  .menu-lines{width:20px;height:16px;display:block;position:relative}
  .menu-lines::before,.menu-lines::after{content:"";position:absolute;left:0;background:var(--ink);width:20px;height:1px;transition:transform .15s,top .15s}
  .menu-lines::before{top:5px}.menu-lines::after{top:11px}
  .menu-button[aria-expanded="true"] .menu-lines::before{top:8px;transform:rotate(45deg)}
  .menu-button[aria-expanded="true"] .menu-lines::after{top:8px;transform:rotate(-45deg)}
  #primary-nav{display:flex;flex-flow:column;align-items:stretch;gap:0;width:100%;padding:4px 0 16px}
  .menu-ready #primary-nav{position:absolute;top:100%;left:-5.56%;width:111.12%;padding:6px 5.56% 18px;border-bottom:1px solid var(--line);background:#fff;box-shadow:0 7px 12px rgba(0,0,0,.08)}
  .menu-ready #primary-nav:not(.is-open){display:none}
  #primary-nav a:not(.nav-phone){min-height:45px;border-top:1px solid var(--line);font-size:15px}
  #primary-nav a:not(.nav-phone)::after{display:none}
  .nav-phone{align-self:start;margin-top:8px;min-height:44px}
  .steps{grid-template-columns:1fr 1fr;row-gap:30px}
  .steps li{padding-inline:24px}.steps li:nth-child(odd){padding-left:0;border-left:0}
  .about-grid{gap:45px}
  .service-row{gap:40px}
}
@media(max-width:680px){
  :root{--header:63px}
  html{scroll-padding-top:calc(var(--header) + 6px)}
  .wrap,.nav-wrap{width:89%}
  .wordmark-name{font-size:clamp(17px,4.9vw,26px)}
  .wordmark-field{font-size:7px;margin-top:5px}
  .identity{gap:12px}
  .identity-rule{height:21px}
  .compass-header{width:clamp(60px,16vw,83px)}
  .menu-label{display:none}
  .menu-button:not([hidden]){margin-right:-10px}
  .menu-ready #primary-nav{left:-6.2%;width:112.4%;padding-inline:6.2%}
  .hero-inner{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;gap:0;min-height:0;padding-block:37px 20px;align-items:center}
  .hero-copy{display:contents}
  .hero h1{grid-column:1/-1;grid-row:1;font-size:clamp(40px,10.9vw,65px);line-height:1.01}
  .hero-intro{grid-column:1;grid-row:2;margin:20px 0 17px;font-size:15px;line-height:1.52}
  .hero .actions{grid-column:1/-1;grid-row:3;gap:10px;margin-top:8px}
  .hero-shade{background:linear-gradient(90deg,rgba(23,23,23,.90),rgba(23,23,23,.77) 58%,rgba(23,23,23,.49)),linear-gradient(0deg,rgba(23,23,23,.52),transparent 40%)}
  .hero-scene{object-position:49% 48%}
  .button{padding:10px 17px;min-height:45px}
  .eyebrow{font-size:10px;letter-spacing:.12em;gap:9px}
  .eyebrow>span{width:23px}
  .section-heading h2,h2{font-size:clamp(36px,9.4vw,54px)}
  .section-heading h2{margin-top:13px;text-wrap:balance}
  .process{padding-block:44px}
  .process .section-heading h2{font-size:32px;line-height:1.08;max-width:340px;margin-inline:auto}
  .steps{grid-template-columns:1fr;margin-top:24px;row-gap:0}
  .steps li,.steps li:nth-child(odd){display:block;padding:0;border-left:0;border-bottom:1px solid var(--line)}
  .steps li:last-child{border-bottom:0}
  .steps h3{font-size:19px;line-height:1.3;margin:0}
  .steps p{font-size:16px;line-height:1.5;padding-bottom:20px}
  .steps p[hidden]{display:none}
  .step-num{display:none}
  .step-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:58px;padding:15px 0;text-align:left;border:0;background:none;font:inherit;color:inherit;cursor:pointer}
  .step-toggle::after{content:"+";font:400 24px/1 var(--sans);flex:none;width:20px;text-align:center}
  .step-toggle[aria-expanded="true"]::after{content:"−"}
  .process-action{margin-top:24px}
  .band{padding-block:53px}
  .about-grid,.service-row,.contact-inner{grid-template-columns:1fr;gap:26px}
  .about-photo{width:100%;max-width:390px;justify-self:start}
  .about-copy{max-width:none}
  .about-copy>p.about-lead{font-size:18px}
  .service-row+.service-row{margin-top:42px;padding-top:42px}
  .service-copy{max-width:none}
  .selling .service-copy,.buying .service-copy{grid-row:1}
  .services{padding-block:0 54px}
  .text-link{margin-top:10px}
  .quotes{grid-template-columns:1fr;gap:26px;margin-top:30px}
  .quotes figure{padding:0 5%}
  .quotes figure+figure{padding-top:29px;border-left:0;border-top:1px solid #c9c9c9}
  .quotes figcaption{margin-top:13px}
  .quotes blockquote{font-size:22px;line-height:1.35}
  .contact-actions{justify-self:start}
  .contact-phone{font-size:clamp(28px,8.4vw,36px)}
  .contact-links{margin-top:6px}
  .footer-main{grid-template-columns:1fr;gap:32px}
  .footer .wordmark-name{font-size:clamp(26px,7.3vw,40px)}
  .compass-link{width:min(82%,312px)}
  .footer-bottom{align-items:flex-start;flex-direction:column;gap:4px}
  .mobile-contact:not([hidden]){position:fixed;z-index:19;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#fff;padding:8px 5.5% max(8px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}
  .mobile-contact a{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:15px;font-weight:400;border:1px solid #000}
  .mobile-contact .mobile-text{background:#000;color:#fff}
  .mobile-contact .mobile-call{background:#fff;color:#000}
  .mobile-contact a:hover{background:#333;color:#fff}
  html{scroll-padding-bottom:76px}
}
@media(max-width:355px){
  .nav-wrap{width:92%}
  .masthead .identity{gap:8px}
  .masthead .wordmark-name{font-size:15.5px;letter-spacing:.045em}
  .masthead .menu-button{min-width:44px;margin-right:0}
  .menu-ready #primary-nav{left:-4.35%;width:108.7%;padding-inline:4.35%}
  .hero-intro{font-size:14px}
  .hero h1{font-size:clamp(33px,11.75vw,40px)}
  .button{font-size:14px;gap:7px;padding-inline:12px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
