/* Layout concept: a quiet land brokerage. Full-bleed photography, a light serif for headlines, tracked small caps for wayfinding, hairline rules instead of boxes, one brass accent. */
:root{
  --paper:#FAFAF7; --stone:#F0EFEA; --card:#FFFFFF; --ink:#191C19; --ink-2:#3C423D; --muted:#6E746F; --line:#E3E1DA; --line-2:#C8C5BB;
  --forest:#06302A; --on-forest:#EEECE6; --on-forest-2:#A9B2AB;
  --brass:#8F7142; --btn:#191C19; --btn-fg:#FAFAF7;
  --map-sea:#F4F4F0; --map-land:#E6E4DC; --map-served:#CDD2C3; --map-hover:#B9C0AD; --map-active:#A7B098; --map-edge:#FAFAF7;
  --serif:"Cormorant Garamond",Garamond,"Times New Roman",serif;
  --sans:"Jost","Futura","Century Gothic",system-ui,sans-serif;
  --hdr:84px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#111412; --stone:#171B18; --card:#1A1E1B; --ink:#ECEAE3; --ink-2:#C9CCC6; --muted:#959C96; --line:#272C28; --line-2:#3A413C;
  --forest:#0B0E0C; --on-forest:#ECEAE3; --on-forest-2:#9AA39C;
  --brass:#CBAA70; --btn:#ECEAE3; --btn-fg:#111412;
  --map-sea:#141815; --map-land:#1E2420; --map-served:#2E3A32; --map-hover:#3A483F; --map-active:#46564B; --map-edge:#111412; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#111412; --stone:#171B18; --card:#1A1E1B; --ink:#ECEAE3; --ink-2:#C9CCC6; --muted:#959C96; --line:#272C28; --line-2:#3A413C;
  --forest:#0B0E0C; --on-forest:#ECEAE3; --on-forest-2:#9AA39C;
  --brass:#CBAA70; --btn:#ECEAE3; --btn-fg:#111412;
  --map-sea:#141815; --map-land:#1E2420; --map-served:#2E3A32; --map-hover:#3A483F; --map-active:#46564B; --map-edge:#111412; color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font:400 16px/1.7 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
img{display:block}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.02;margin:0;text-wrap:balance;letter-spacing:-.005em;font-variant-numeric:lining-nums}
p{margin:0}
em{font-style:italic}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:1.5px solid var(--brass);outline-offset:3px}
.wrap{max-width:1320px;margin-inline:auto;padding-inline:clamp(16px,4.5vw,56px)}
.label{font:500 11px/1.3 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.label.brass{color:var(--brass)}
.num{font-variant-numeric:tabular-nums lining-nums}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7em;border:0;cursor:pointer;background:var(--btn);color:var(--btn-fg);font:500 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;padding:18px 28px;transition:opacity .3s}
.btn:hover{opacity:.86}
.btn.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}
.btn.line:hover{box-shadow:inset 0 0 0 1px var(--ink);opacity:1}
.btn.block{width:100%}
.more{font:500 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;display:inline-flex;gap:.8em;align-items:center;padding-bottom:6px;border-bottom:1px solid var(--line-2);transition:border-color .3s,gap .3s;background:none;border-top:0;border-left:0;border-right:0;cursor:pointer;color:inherit}
.more:hover{border-color:var(--ink);gap:1.1em}

/* ---------- brand ---------- */
.brand{display:flex;align-items:center;gap:12px;flex:none;line-height:1}
.brand .mark{width:40px;height:40px;flex:none}
.brand .wm{display:flex;flex-direction:column}
.brand b{font:500 24px/1 var(--serif);letter-spacing:.01em;white-space:nowrap}
.brand b i{font-weight:400;padding-inline:.04em}
.brand small{font:500 9px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;opacity:.7;margin-top:7px;white-space:nowrap}

/* ---------- header ---------- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);color:#FFFFFF;transition:background .4s,color .4s,box-shadow .4s}
.hdr .wrap{height:var(--hdr);display:flex;align-items:center;gap:40px}
.hdr.solid{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.nav{display:flex;gap:32px;margin-inline:auto}
.nav a{font:500 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;padding:8px 0;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav .m-only{display:none}
.hdr-right{display:flex;align-items:center;gap:24px}
.hdr-phone{font:400 14px/1 var(--sans);letter-spacing:.06em;opacity:.9}
.hdr .btn{background:transparent;color:inherit;box-shadow:inset 0 0 0 1px currentColor;padding:14px 20px}
.hdr.solid .btn{background:var(--btn);color:var(--btn-fg);box-shadow:none}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer;color:inherit;margin-left:auto}
@media (max-width:1120px){.hdr-phone{display:none}.nav{gap:24px}}
@media (max-width:940px){
  .nav{position:fixed;inset:0;background:var(--paper);color:var(--ink);flex-direction:column;justify-content:center;align-items:center;gap:26px;margin:0;opacity:0;pointer-events:none;transition:opacity .3s}
  .nav a{font:400 34px/1 var(--serif);letter-spacing:0;text-transform:none}
  .nav .m-only{display:block;font:500 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;margin-top:18px;color:var(--muted)}
  .nav.open{opacity:1;pointer-events:auto}
  .burger{display:block;position:relative;z-index:2}
  .hdr .brand{position:relative;z-index:2}
  .hdr.menu{color:var(--ink)}
  .hdr-right{display:none}
}
@media (max-width:420px){.brand b{font-size:21px}.brand .mark{width:34px;height:34px}.brand small{letter-spacing:.24em}}

/* ---------- hero ---------- */
.hero,.page-hero{position:relative;display:flex;align-items:flex-end;color:#FFFFFF;overflow:hidden;isolation:isolate;background:#2B2A22}
.hero{min-height:clamp(600px,88vh,920px);padding-top:calc(var(--hdr) + 40px)}
.page-hero{min-height:clamp(440px,64vh,660px)}
.hero>img,.page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;z-index:-2;animation:settle 2.8s cubic-bezier(.2,.6,.2,1) both}
.hero::after,.page-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(14,16,12,.58) 0%,rgba(14,16,12,.32) 38%,rgba(14,16,12,0) 68%),linear-gradient(180deg,rgba(14,16,12,.45) 0%,rgba(14,16,12,0) 26%,rgba(14,16,12,0) 46%,rgba(14,16,12,.62) 100%)}
@media (max-width:700px){.hero::after,.page-hero::after{background:linear-gradient(180deg,rgba(14,16,12,.5) 0%,rgba(14,16,12,.28) 40%,rgba(14,16,12,.7) 100%)}}
@keyframes settle{from{transform:scale(1.07)}to{transform:scale(1)}}
@keyframes rise{from{transform:translateY(18px);opacity:.001}to{transform:none;opacity:1}}
.hero .wrap{width:100%;padding-block:0 clamp(108px,12vw,150px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:end}
.page-hero .wrap{width:100%;padding-block:0 clamp(48px,7vw,88px)}
.hero .label,.page-hero .label{color:rgba(255,255,255,.82);line-height:1.8;animation:rise 1.1s .2s both}
.hero-title{font-family:var(--serif);margin:0;text-wrap:balance;font-variant-numeric:lining-nums}
.hero .hero-title{font-weight:300;font-size:clamp(3.1rem,min(8.2vw,12vh),7.6rem);line-height:.92;letter-spacing:-.02em;margin-top:22px;max-width:11ch;animation:rise 1.2s .35s both}
.page-hero h1{font-weight:300;font-size:clamp(2.8rem,7vw,6.4rem);line-height:.95;letter-spacing:-.02em;margin-top:20px;max-width:13ch;animation:rise 1.2s .35s both}
.hero .lede,.page-hero .lede{font-size:clamp(1rem,1.3vw,1.15rem);font-weight:300;max-width:46ch;margin-top:24px;color:rgba(255,255,255,.88);animation:rise 1.2s .5s both}
.spot{position:relative;display:block;width:340px;max-width:100%;height:120px;background:rgba(20,22,18,.32);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);animation:rise 1.2s .7s both;overflow:hidden}
.spot-s{position:absolute;inset:0;display:grid;grid-template-columns:104px 1fr;gap:16px;align-items:center;padding:12px 16px 12px 12px;color:#fff;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s .9s}
.spot-s.on{opacity:1;visibility:visible;transition:opacity .9s ease,visibility 0s}
.spot-s img{width:104px;height:78px;object-fit:cover;background:rgba(255,255,255,.08);transition:transform 1.2s ease}
.spot-s:hover img,.spot-s:focus-visible img{transform:scale(1.04)}
.spot-s:focus-visible{outline:2px solid #fff;outline-offset:-4px}
.spot-s>div{min-width:0}
.spot .label{color:rgba(255,255,255,.7);font-size:10px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spot p{font:400 21px/1.15 var(--serif);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.spot span.p{font-size:13px;letter-spacing:.06em;opacity:.85}
.spot-bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.12);pointer-events:none}
.spot-bar i{display:block;height:100%;width:100%;background:rgba(255,255,255,.7);transform-origin:left;transform:scaleX(0)}
.spot-bar i.run{animation:spotbar 3s linear forwards}
.spot.paused .spot-bar i{animation-play-state:paused}
@keyframes spotbar{to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.spot-bar{display:none}.spot-s,.spot-s.on{transition:none}}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.spot{display:none}}

/* search panel */
.finder{position:relative;z-index:5;margin-top:-58px}
.finder form{background:var(--card);display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;box-shadow:0 30px 60px -30px rgba(10,14,10,.35),0 0 0 1px var(--line)}
.ff{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:20px 26px;min-width:0;position:relative}
.ff + .ff::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--line)}
.ff label{font:500 10.5px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.ff select{appearance:none;-webkit-appearance:none;border:0;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23888' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat right center;padding:0 18px 0 0;font:400 17px/1.3 var(--sans);width:100%;cursor:pointer;outline:none;color:var(--ink)}
.ff select option{background:var(--card);color:var(--ink)}
.finder .btn{padding-inline:38px;min-height:84px}
@media (max-width:900px){.finder{margin-top:-40px}.finder form{grid-template-columns:1fr 1fr}.ff{padding:16px 18px}.ff:nth-child(3)::before{display:none}.ff:nth-child(n+3){border-top:1px solid var(--line)}.finder .btn{grid-column:1/-1;min-height:60px}}

/* ---------- sections ---------- */
.sec{padding-block:clamp(72px,11vw,150px)}
.sec.stone{background:var(--stone)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 32px;flex-wrap:wrap;margin-bottom:clamp(36px,5vw,64px)}
.sec-head h2{font-size:clamp(2.4rem,5vw,4.4rem);font-weight:300;margin-top:18px;max-width:16ch}
.sec-head h2 em{color:var(--brass)}
.sec-head>p{max-width:40ch;color:var(--muted);font-weight:300}

.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:clamp(28px,6vw,96px)}
.intro .statement{font:300 clamp(1.6rem,3vw,2.6rem)/1.24 var(--serif);text-wrap:pretty}
.intro .statement em{color:var(--brass)}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(36px,5vw,64px);border-top:1px solid var(--line)}
.stat{padding:26px 24px 0 0}
.stat + .stat{padding-left:24px;border-left:1px solid var(--line)}
.stat b{display:block;font:300 clamp(2.6rem,4.4vw,3.8rem)/1 var(--serif)}
.stat span{display:block;margin-top:10px;font-size:14px;color:var(--muted);max-width:22ch;line-height:1.5}
@media (max-width:860px){.intro{grid-template-columns:1fr}}
@media (max-width:560px){.stats{grid-template-columns:1fr}.stat{padding-right:0}.stat + .stat{border-left:0;padding-left:0;border-top:1px solid var(--line);margin-top:22px}}

/* cards */
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(36px,4vw,56px) clamp(20px,2.4vw,32px)}
.feature-grid .card:first-child{grid-column:span 2;grid-row:span 2}
.feature-grid .card:first-child .card-img{aspect-ratio:auto;flex:1;min-height:360px}
.feature-grid .card:first-child .card-title{font-size:clamp(2rem,3vw,2.7rem)}
.list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(40px,4vw,60px) clamp(20px,2.4vw,32px)}
@media (max-width:980px){.feature-grid,.list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feature-grid .card:first-child{grid-row:auto}}
@media (max-width:620px){.feature-grid,.list-grid{grid-template-columns:1fr}.feature-grid .card:first-child{grid-column:auto}.feature-grid .card:first-child .card-img{aspect-ratio:4/3;min-height:0}.feature-grid .card:first-child .card-title{font-size:clamp(1.55rem,6vw,1.85rem)}}
.card{display:flex;flex-direction:column;min-width:0}
.card-img{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--stone)}
.card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.card:hover .card-img img{transform:scale(1.045)}
.ph{position:absolute;inset:0;display:grid;place-items:center;font:300 42px/1 var(--serif);color:var(--muted)}
.badge{position:absolute;left:16px;top:16px;font:500 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#FFFFFF;padding:8px 10px;background:rgba(18,20,16,.42);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.badge.right{left:auto;right:16px}
.card-info{padding-top:20px;display:grid;gap:8px}
.card-loc{font:500 10.5px/1.3 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.card-title{font:400 clamp(1.55rem,2vw,1.85rem)/1.08 var(--serif)}
.card-title a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s}
.card:hover .card-title a{background-size:100% 1px}
.card-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid var(--line);padding-top:12px;margin-top:6px;font-size:14.5px}
.card-price{font-weight:500;letter-spacing:.03em}
.card-meta{color:var(--muted);font-size:13.5px;text-align:right}

/* quote band */
.band{position:relative;min-height:clamp(440px,70vh,720px);display:flex;align-items:center;color:#FFFFFF;isolation:isolate;overflow:hidden}
.band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,13,10,.66),rgba(12,13,10,.18) 70%)}
.band blockquote{margin:0;font:300 clamp(2.2rem,5vw,4.6rem)/1.05 var(--serif);max-width:16ch;font-style:italic}
.band cite{display:block;font:500 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;font-style:normal;margin-top:30px;color:rgba(255,255,255,.8)}
.band .more{margin-top:40px;border-color:rgba(255,255,255,.5)}

/* process */
.process{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(40px,7vw,120px);align-items:start}
.process figure{margin:0;position:sticky;top:calc(var(--hdr) + 32px);aspect-ratio:4/5;overflow:hidden}
.process figure img{width:100%;height:100%;object-fit:cover}
.steps{list-style:none;margin:40px 0 0;padding:0}
.steps li{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:30px 0;border-top:1px solid var(--line-2)}
.steps li:last-child{border-bottom:1px solid var(--line-2)}
.steps .n{font:300 40px/1 var(--serif);color:var(--brass)}
.steps h3{font-size:1.9rem;font-weight:400}
.steps p{color:var(--ink-2);margin-top:10px;max-width:46ch;font-weight:300}
@media (max-width:860px){.process{grid-template-columns:1fr}.process figure{position:static;aspect-ratio:16/10}}
@media (max-width:480px){.steps li{grid-template-columns:44px 1fr;gap:12px}.steps .n{font-size:30px}}

input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:20px;background:transparent;cursor:pointer;--p:50%}
input[type=range]::-webkit-slider-runnable-track{height:1px;background:linear-gradient(currentColor,currentColor) 0/var(--p) 100% no-repeat,color-mix(in srgb,currentColor 25%,transparent)}
input[type=range]::-moz-range-track{height:1px;background:color-mix(in srgb,currentColor 25%,transparent)}
input[type=range]::-moz-range-progress{height:1px;background:currentColor}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:17px;height:17px;border-radius:50%;background:currentColor;margin-top:-8px;border:0}
input[type=range]::-moz-range-thumb{width:17px;height:17px;border-radius:50%;background:currentColor;border:0}
.fine{font-size:12.5px;opacity:.65;line-height:1.55}

/* states */
.states{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.state{position:relative;aspect-ratio:3/4.4;overflow:hidden;color:#FFFFFF;cursor:pointer;border:0;padding:0;background:var(--stone);text-align:left}
.state img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.state:hover img{transform:scale(1.06)}
.state::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,9,0) 40%,rgba(10,12,9,.7))}
.state div{position:absolute;left:22px;right:22px;bottom:22px;z-index:1}
.state h3{font-size:clamp(1.7rem,2.3vw,2.2rem);font-weight:400}
.state span{display:block;margin-top:8px;font:500 10.5px/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;opacity:.85}
@media (max-width:1000px){.states{grid-template-columns:repeat(6,minmax(230px,1fr));overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;margin-right:calc(-1 * clamp(16px,4.5vw,56px))}.state{scroll-snap-align:start}}
@media (max-width:520px){.states{grid-template-columns:repeat(6,72vw)}}

/* journal */
.journal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-2)}
.post{padding:30px 30px 6px 0;display:flex;flex-direction:column;gap:14px;min-width:0}
.post + .post{padding-left:30px;border-left:1px solid var(--line)}
.post h3{font-size:1.75rem;font-weight:400;line-height:1.12}
.post p{color:var(--muted);font-weight:300;font-size:15px}
.post .more{align-self:flex-start;margin-top:auto}
@media (max-width:860px){.journal{grid-template-columns:1fr}.post{padding-right:0;padding-bottom:30px}.post + .post{padding-left:0;border-left:0;border-top:1px solid var(--line)}}

/* alerts */
.alerts{background:var(--forest);color:var(--on-forest);text-align:center}
.alerts h2{font-size:clamp(2.4rem,5vw,4.4rem);font-weight:300;margin:18px auto 0;max-width:14ch}
.alerts .label{color:var(--on-forest-2)}
.alerts form{display:flex;max-width:560px;margin:44px auto 0;border-bottom:1px solid var(--on-forest-2)}
.alerts input{flex:1;min-width:0;background:transparent;border:0;padding:16px 4px;font-size:17px;font-weight:300;outline:none;color:var(--on-forest)}
.alerts input::placeholder{color:var(--on-forest-2)}
.alerts button{background:none;border:0;cursor:pointer;font:500 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--on-forest);padding-inline:6px;white-space:nowrap}
.alerts .note{margin-top:16px;font-size:13px;color:var(--on-forest-2)}

/* footer */
.ftr{background:var(--forest);color:var(--on-forest-2);border-top:1px solid rgba(255,255,255,.08)}
.ftr .wrap{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-block:72px 36px}
.ftr .brand{color:var(--on-forest)}
.ftr .brand .mark{width:52px;height:52px}
.ftr h4{font:500 10.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--on-forest);margin:0 0 20px}
.ftr a:not(.brand){display:block;padding:4px 0;font-weight:300}
.ftr a:hover{color:var(--on-forest)}
.ftr p{font-weight:300}
.ftr .legal{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);padding-top:28px;font-size:12.5px}
@media (max-width:860px){.ftr .wrap{grid-template-columns:1fr 1fr}.ftr .wrap>div:first-child{grid-column:1/-1}}

/* ---------- inner pages ---------- */
.inner{padding-top:var(--hdr)}
.page-title{padding-block:clamp(48px,7vw,96px) 40px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.page-title h1{font-size:clamp(3rem,7vw,6rem);font-weight:300;letter-spacing:-.02em;margin-top:16px}
.page-title p{max-width:42ch;color:var(--muted);font-weight:300}

/* listings */
.filterbar{position:sticky;top:calc(var(--hdr) + env(safe-area-inset-top,0px));z-index:20;background:var(--paper);border-block:1px solid var(--line)}
.filterbar .wrap{display:flex;align-items:stretch;flex-wrap:wrap}
.filterbar .ff{padding:16px 24px 16px 0;flex:1 1 140px}
.filterbar .ff + .ff{padding-left:24px}
.filterbar .ff select{font-size:15.5px}
.filterbar .count{display:flex;align-items:center;gap:20px;margin-left:auto;padding-left:24px;font-size:14px;color:var(--muted);white-space:nowrap}
.filterbar .count .reset{background:none;border:0;cursor:pointer;font:500 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--line-2);padding:0 0 4px}
.seg{display:inline-flex;box-shadow:inset 0 0 0 1px var(--line-2)}
.seg button{background:none;border:0;cursor:pointer;padding:10px 14px;font:500 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--btn);color:var(--btn-fg)}
@media (max-width:900px){.filterbar{position:static}.filterbar .ff{flex-basis:45%;padding:14px 12px 14px 0}.filterbar .ff + .ff{padding-left:0}.filterbar .ff::before{display:none}.filterbar .count{flex-basis:100%;padding:14px 0;margin:0;border-top:1px solid var(--line);justify-content:space-between}}
.listing-body{padding-block:48px 0}
.empty{padding:80px 20px;text-align:center;border-block:1px solid var(--line)}
.empty h3{font-size:2rem;font-weight:300}
.empty p{color:var(--muted);margin-top:10px}

/* map */
.map-view{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,1fr);border-bottom:1px solid var(--line)}
.map-stage{position:sticky;top:calc(var(--hdr) + 80px);height:calc(100vh - var(--hdr) - 80px);min-height:500px;max-height:860px;background:var(--map-sea);overflow:hidden}
.lmap{position:absolute;inset:0}
.map-hint{position:absolute;left:20px;top:18px;z-index:3;font:500 10.5px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);pointer-events:none}
.map-card{position:absolute;left:16px;bottom:16px;z-index:4;width:min(380px,calc(100% - 32px));display:grid;grid-template-columns:120px 1fr;gap:16px;padding:12px;background:var(--card);box-shadow:0 0 0 1px var(--line),0 24px 50px -24px rgba(0,0,0,.4)}
.map-card img{width:120px;height:100%;min-height:96px;object-fit:cover}
.map-card h3{font-size:1.45rem;margin-top:4px}
.map-card .row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;font-size:14px}
.map-card .x{position:absolute;right:6px;top:4px;background:none;border:0;cursor:pointer;font-size:20px;line-height:1;color:var(--muted);padding:4px}
.map-list{padding:4px clamp(16px,3vw,40px) 40px;min-width:0}
.mrow{display:grid;grid-template-columns:112px 1fr;gap:18px;align-items:center;width:100%;padding:18px 0;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;color:inherit}
.mrow img{width:112px;height:84px;object-fit:cover}
.mrow .t{display:block;font:400 1.35rem/1.1 var(--serif);margin-top:4px;transition:color .2s}
.mrow .p{display:block;font-size:14px;margin-top:6px}
.mrow:hover .t,.mrow.on .t{color:var(--brass)}
.map-off{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;color:var(--muted)}
@media (max-width:900px){.map-view{grid-template-columns:1fr}.map-stage{position:relative;top:auto;height:min(62vh,520px);min-height:380px}.map-hint{display:none}}
.jvm-container{touch-action:none;position:relative;overflow:hidden;height:100%;width:100%}
.jvm-container svg{touch-action:none;display:block}
.lmap .jvm-region{fill:var(--map-land);stroke:var(--map-edge);stroke-width:1px;vector-effect:non-scaling-stroke;transition:fill .3s}
.lmap .jvm-region.served{fill:var(--map-served);cursor:pointer}
.lmap .jvm-region.served:hover{fill:var(--map-hover)}
.lmap .jvm-region.active{fill:var(--map-active)}
.lmap.static .jvm-region.served{cursor:default}
.lmap .jvm-marker{fill:var(--ink);stroke:var(--map-edge);stroke-width:2.5px;cursor:pointer;transform-box:fill-box;transform-origin:center;transition:transform .25s,fill .25s}
.lmap .jvm-marker:hover,.lmap .jvm-marker.on{fill:var(--brass);transform:scale(1.45)}
.lmap .jvm-marker.off{display:none}
.jvm-zoom-btn{position:absolute;right:16px;z-index:3;width:38px;height:38px;display:grid;place-items:center;background:var(--card);color:var(--ink);box-shadow:0 0 0 1px var(--line);cursor:pointer;font:300 20px/1 var(--sans);user-select:none;-webkit-user-select:none}
.jvm-zoomin{top:16px}.jvm-zoomout{top:55px}
.jvm-tooltip{position:absolute;display:none;z-index:90;background:var(--ink);color:var(--paper);font:400 13px/1.4 var(--sans);padding:10px 14px;white-space:nowrap;pointer-events:none;box-shadow:0 14px 30px -14px rgba(0,0,0,.5)}
.jvm-tooltip.active{display:block}
.jvm-tooltip b{display:block;font:500 17px/1.2 var(--serif)}
.jvm-tooltip span{opacity:.75}

/* detail */
.crumbs{padding-block:28px;font:500 10.5px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap}
.crumbs a:hover{color:var(--ink)}
.gallery{display:grid;gap:8px;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;height:clamp(320px,62vh,640px)}
.gallery.one{grid-template-columns:1fr;grid-template-rows:1fr}
.gallery.two{grid-template-columns:1fr 1fr;grid-template-rows:1fr}
.gallery .g{position:relative;overflow:hidden;background:var(--stone);min-height:0}
.gallery:not(.one):not(.two) .g:first-child{grid-row:1/3}
.gallery img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.gallery,.gallery.two{grid-template-columns:1fr;grid-template-rows:1fr;height:auto}.gallery .g{aspect-ratio:4/3}.gallery .g:not(:first-child){display:none}.gallery:not(.one):not(.two) .g:first-child{grid-row:auto}}
.d-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 32px;align-items:end;padding-block:44px 36px;border-bottom:1px solid var(--line)}
.d-head h1{font-size:clamp(2.4rem,5.4vw,4.8rem);font-weight:300;margin-top:16px;letter-spacing:-.015em}
.d-price{text-align:right}
.d-price b{display:block;font:300 clamp(2.4rem,4vw,3.4rem)/1 var(--serif)}
.d-price span{display:block;margin-top:10px;font-size:13.5px;color:var(--muted)}
@media (max-width:700px){.d-head{grid-template-columns:1fr}.d-price{text-align:left}}
.facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--line);margin:0}
.facts div{padding:26px 20px 26px 0;min-width:0}
.facts div + div{padding-left:20px;border-left:1px solid var(--line)}
.facts dt{font:500 10.5px/1.3 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.facts dd{margin:10px 0 0;font:400 1.45rem/1.15 var(--serif);overflow-wrap:anywhere}
@media (max-width:860px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.facts div{border-left:0!important;padding:20px 12px 20px 0!important;border-top:1px solid var(--line)}.facts div:nth-child(-n+2){border-top:0}}
.d-body{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(40px,7vw,110px);padding-block:56px}
@media (max-width:980px){.d-body{grid-template-columns:1fr}}
.prose{display:grid;gap:22px;max-width:64ch;min-width:0}
.prose h2{font-size:2.1rem;font-weight:400;margin-top:26px}
.prose p:not(.label){font-weight:300;font-size:17px;color:var(--ink-2)}
.prose .lead{font:300 1.65rem/1.35 var(--serif);color:var(--ink)}
.ulist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ulist li{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.ulist li span:first-child{color:var(--muted);font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding-top:3px;flex:none}
.ulist li span:last-child{text-align:right}
.disclaimer{font-size:13px;color:var(--muted);font-weight:300;line-height:1.6}
.loc-map{position:relative;height:360px;background:var(--map-sea);overflow:hidden}
.loc-map .lmap{position:absolute;inset:0}
.loc{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--line)}
.loc code{font:400 15px/1 var(--sans);letter-spacing:.04em}
.side{position:sticky;top:calc(var(--hdr) + 28px);align-self:start;display:grid;gap:22px}
.side-card{background:var(--card);box-shadow:0 0 0 1px var(--line);padding:32px;display:grid;gap:16px}
.side-card h3{font-size:1.9rem;font-weight:400}
.side-card p{font-size:14.5px;color:var(--muted);font-weight:300}
.side-card .ok{font-size:13.5px;color:var(--ink-2)}
@media (max-width:980px){.side{position:static}}
@media (max-width:480px){.side-card{padding:24px 20px}}
.uline{width:100%;border:0;border-bottom:1px solid var(--line-2);background:transparent;padding:12px 0;font-weight:300;outline:none;border-radius:0}
.uline:focus{border-color:var(--ink)}
textarea.uline{resize:vertical;min-height:70px}
select.uline{appearance:none;-webkit-appearance:none;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23888' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat right center;cursor:pointer}
select.uline option{background:var(--card);color:var(--ink)}
.phone-row{display:flex;justify-content:space-between;align-items:center;font-size:15px;letter-spacing:.04em;padding-top:6px}
.copy{background:none;border:0;border-bottom:1px solid var(--line-2);cursor:pointer;font:500 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;padding:0 0 4px}
.pn{display:flex;justify-content:space-between;gap:20px;padding-block:36px;border-top:1px solid var(--line);flex-wrap:wrap}

/* about */
.values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-2)}
.value{padding:30px 28px 0 0;min-width:0}
.value + .value{padding-left:28px;border-left:1px solid var(--line)}
.value h3{font-size:1.75rem;font-weight:400}
.value p:not(.label){color:var(--muted);font-weight:300;font-size:15.5px;margin-top:12px}
@media (max-width:980px){.values{grid-template-columns:1fr 1fr}.value:nth-child(3){padding-left:0;border-left:0}.value:nth-child(n+3){border-top:1px solid var(--line);margin-top:30px}}
@media (max-width:560px){.values{grid-template-columns:1fr}.value{padding-right:0}.value + .value{padding-left:0;border-left:0;border-top:1px solid var(--line);margin-top:30px}}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,7vw,120px);align-items:center}
.split figure{margin:0;aspect-ratio:4/5;overflow:hidden}
.split figure img{width:100%;height:100%;object-fit:cover}
.split .copy-col{display:grid;gap:22px}
.split h2{font-size:clamp(2.4rem,4.4vw,3.8rem);font-weight:300}
.split h2 em{color:var(--brass)}
.split p:not(.label){font-weight:300;font-size:17px;color:var(--ink-2);max-width:52ch}
.buyers{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid var(--line)}
.buyers li{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}
.buyers li b{font:400 1.35rem/1.2 var(--serif)}
.buyers li span{color:var(--muted);font-weight:300;font-size:15.5px}
@media (max-width:860px){.split{grid-template-columns:1fr}.split figure{aspect-ratio:16/10}}
@media (max-width:480px){.buyers li{grid-template-columns:1fr;gap:4px}}
.team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,32px)}
.person .portrait{aspect-ratio:4/5;background:var(--stone);display:grid;place-items:center;position:relative;overflow:hidden}
.person .portrait span{font:300 clamp(4rem,7vw,6rem)/1 var(--serif);color:var(--line-2);letter-spacing:.02em}
.person .portrait small{position:absolute;left:16px;bottom:14px;font:500 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.person h3{font-size:1.9rem;font-weight:400;margin-top:20px}
.person p{color:var(--muted);font-size:14.5px;margin-top:6px}
.person.more-people .portrait{background:var(--forest);color:var(--on-forest);place-items:end start;padding:28px}
.person.more-people .portrait b{display:block;font:300 clamp(4rem,7vw,6rem)/1 var(--serif)}
.person.more-people .portrait em{display:block;font:300 1.5rem/1.25 var(--serif);font-style:normal;color:var(--on-forest-2);margin-top:10px;max-width:16ch}
@media (max-width:860px){.team{grid-template-columns:1fr 1fr}.person.more-people{grid-column:1/-1}.person.more-people .portrait{aspect-ratio:auto;min-height:220px}}
@media (max-width:520px){.team{grid-template-columns:1fr}.person .portrait{aspect-ratio:16/10}}
.videos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,32px);margin-top:clamp(36px,5vw,56px)}
.video{position:relative;aspect-ratio:16/10;overflow:hidden;color:#FFFFFF;display:block}
.video img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.video:hover img{transform:scale(1.04)}
.video::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,9,.1),rgba(10,12,9,.65))}
.video .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;width:76px;height:76px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8);display:grid;place-items:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:rgba(255,255,255,.08);transition:background .3s}
.video:hover .play{background:rgba(255,255,255,.2)}
.video .cap{position:absolute;left:24px;right:24px;bottom:22px;z-index:1}
.video .cap b{display:block;font:400 clamp(1.5rem,2.4vw,2rem)/1.1 var(--serif)}
.video .cap span{font:500 10.5px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;opacity:.8}
@media (max-width:700px){.videos{grid-template-columns:1fr}}
.cta-band{display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;padding-block:clamp(48px,6vw,72px);border-top:1px solid var(--line)}
.cta-band h2{font-size:clamp(2rem,4vw,3.2rem);font-weight:300;max-width:18ch}
.cta-band h2 em{color:var(--brass)}
.cta-band .acts{display:flex;gap:14px;flex-wrap:wrap}

/* faq */
.faq-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(40px,7vw,110px);padding-block:24px 96px}
.faq-nav{position:sticky;top:calc(var(--hdr) + 32px);align-self:start;display:grid;gap:4px}
.faq-nav a:not(.btn){font:500 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:12px 0;border-bottom:1px solid var(--line)}
.faq-nav a:not(.btn):hover{color:var(--ink)}
.faq-nav .ask{margin-top:28px;display:grid;gap:12px}
.faq-nav .ask p{font:300 1.35rem/1.3 var(--serif);color:var(--ink)}
.faq-group{scroll-margin-top:calc(var(--hdr) + 24px)}
.faq-group + .faq-group{margin-top:64px}
.faq-group h2{font-size:clamp(2rem,3.4vw,2.8rem);font-weight:300;margin-bottom:12px}
.faq-group h2 em{color:var(--brass)}
details.q{border-top:1px solid var(--line)}
details.q:last-child{border-bottom:1px solid var(--line)}
details.q summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:24px 0;font:400 clamp(1.35rem,2vw,1.65rem)/1.25 var(--serif)}
details.q summary::-webkit-details-marker{display:none}
details.q summary::after{content:"+";flex:none;font:300 26px/1 var(--sans);color:var(--brass);transition:transform .3s}
details.q[open] summary::after{transform:rotate(45deg)}
details.q p{padding:0 0 26px;max-width:64ch;color:var(--ink-2);font-weight:300;font-size:16.5px}
@media (max-width:860px){.faq-layout{grid-template-columns:1fr}.faq-nav{position:static;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}.faq-nav .ask{grid-column:1/-1}}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(40px,7vw,120px);padding-block:24px 96px}
.c-info{display:grid;gap:28px;align-content:start}
.c-info .lead{font:300 clamp(1.5rem,2.4vw,2rem)/1.3 var(--serif)}
.c-info figure{margin:0;aspect-ratio:16/11;overflow:hidden}
.c-info figure img{width:100%;height:100%;object-fit:cover}
.cform{display:grid;grid-template-columns:1fr 1fr;gap:30px 28px;align-content:start}
.cform .full{grid-column:1/-1}
.cform label.label{display:block;margin-bottom:2px}
.cform .chk{display:flex;gap:10px;align-items:center;font-weight:300;font-size:15px;color:var(--ink-2)}
.cform .chk input{accent-color:var(--ink);width:16px;height:16px}
@media (max-width:900px){.contact{grid-template-columns:1fr}.c-info figure{display:none}}
@media (max-width:520px){.cform{grid-template-columns:1fr}}

/* google badge */
.gbadge{display:inline-block;width:136px;line-height:0;transition:transform .3s}
.gbadge svg{display:block;width:100%;height:auto}
.gbadge:hover{transform:translateY(-2px)}
.gbadge.sm{width:112px}
.hero .gbadge{margin-top:30px;animation:rise 1.2s .65s both}
.ftr .gbadge{display:inline-block;padding:0;margin-top:24px}
.side-card .gbadge{justify-self:start}

/* team */
.stat .est{font-size:.42em;font-style:italic;color:var(--muted);vertical-align:.55em;margin-right:.1em}
.people{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,72px)}
.bio{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,3vw,36px);align-items:start}
.bio figure{margin:0;aspect-ratio:4/5;overflow:hidden;background:var(--paper)}
.bio figure img{width:100%;height:100%;object-fit:cover;filter:saturate(.92)}
.bio h3{font-size:clamp(2rem,2.8vw,2.5rem);margin-top:12px}
.bio-lead{font-weight:300;color:var(--ink-2);margin-top:16px;font-size:16px}
.more-bio{margin-top:16px}
.more-bio summary{cursor:pointer;list-style:none;display:inline-block;font:500 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--line-2);padding-bottom:6px}
.more-bio summary::-webkit-details-marker{display:none}
.more-bio[open] summary{color:var(--muted)}
.more-bio p{font-weight:300;color:var(--ink-2);font-size:15px;margin-top:14px}
.creds{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.creds li{font-size:12px;letter-spacing:.04em;padding:5px 10px;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink-2)}
.team-more{display:flex;gap:24px;align-items:baseline;margin-top:clamp(48px,6vw,80px);padding-top:28px;border-top:1px solid var(--line-2)}
.team-more b{font:300 clamp(2.6rem,4vw,3.6rem)/1 var(--serif);flex:none}
.team-more p{font:300 clamp(1.25rem,2vw,1.6rem)/1.3 var(--serif);max-width:44ch}
@media (max-width:1100px){.people{grid-template-columns:1fr}}
@media (max-width:600px){.bio{grid-template-columns:1fr}.bio figure{aspect-ratio:1/1}.team-more{flex-direction:column;gap:8px}}

/* reviews */
.band-q{transition:opacity .45s}
.band-q.fade{opacity:0}
.band blockquote.long{font-size:clamp(1.7rem,3.2vw,2.8rem);max-width:26ch;line-height:1.15}
.band-ctl{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:40px}
.band-ctl .more{margin-top:0}
.band-arrows{display:inline-flex;align-items:center;gap:14px;font:500 13px/1 var(--sans);letter-spacing:.1em}
.band-arrows button{width:44px;height:44px;border-radius:50%;background:transparent;color:#FFFFFF;border:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);cursor:pointer;font-size:16px;transition:background .3s}
.band-arrows button:hover{background:rgba(255,255,255,.14)}
.rating{display:grid;gap:6px;justify-items:end;text-align:right}
.rating b{font:300 clamp(3rem,5vw,4.4rem)/1 var(--serif)}
.rating .stars{color:var(--brass);letter-spacing:.24em;font-size:15px}
.rating span:last-of-type{font-size:14px;color:var(--muted)}
@media (max-width:700px){.rating{justify-items:start;text-align:left}}
.reviews-grid{columns:3 300px;column-gap:clamp(20px,2.4vw,32px);margin-top:clamp(40px,5vw,64px)}
.review{break-inside:avoid;margin:0 0 clamp(20px,2.4vw,32px);padding:clamp(24px,3vw,34px);background:var(--card);box-shadow:0 0 0 1px var(--line);display:grid;gap:18px;align-content:start}
.review .stars{color:var(--brass);letter-spacing:.24em;font-size:13px}
.review blockquote{margin:0;font:300 1.45rem/1.35 var(--serif);color:var(--ink)}
.review blockquote.long{font-size:1.2rem;line-height:1.45}
.review footer{display:grid;gap:4px;padding-top:16px;border-top:1px solid var(--line)}
.review footer b{font-weight:500;font-size:15px}
.review-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,32px);align-items:start}
@media (max-width:900px){.review-row{grid-template-columns:1fr}}

.toast{position:fixed;left:50%;bottom:calc(28px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:14px 22px;font-size:14px;letter-spacing:.02em;z-index:80;box-shadow:0 20px 40px -20px rgba(0,0,0,.5);max-width:calc(100% - 32px)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- 1.0.1 audit fixes (same design, better readability) ---------- */
/* Darker body and meta text */
:root:not([data-theme="dark"]){--muted:#575D58;--ink-2:#2F3531}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--muted:#A3AAA4;--ink-2:#D3D6D0}}
.sec-head>p,.steps p,.post p,.ftr a:not(.brand),.ftr p,.page-title p,.prose p:not(.label),.disclaimer,.side-card p,.value p:not(.label),.split p:not(.label),.buyers li span,details.q p,.cform .chk,.bio-lead,.more-bio p{font-weight:400}
.ftr p,.ftr a:not(.brand){color:var(--on-forest)}
/* Filter and small-caps labels at least 12px */
.ff label,.filterbar .count .reset,.seg button,.card-loc,.facts dt,.crumbs{font-size:12px}
/* Quote band: lighter tint, dark only behind the text */
.band>img{filter:saturate(1.08) brightness(1.04)}
.band::after{background:linear-gradient(90deg,rgba(12,13,10,.64) 0%,rgba(12,13,10,.42) 45%,rgba(12,13,10,.06) 82%)}
.band blockquote,.band cite,.band-ctl{text-shadow:0 1px 14px rgba(0,0,0,.45)}
.band cite{color:#FFFFFF}
.band .more{border-color:rgba(255,255,255,.8);color:#FFFFFF}
.band-arrows{color:#FFFFFF}
.band-arrows button{box-shadow:inset 0 0 0 1px rgba(255,255,255,.85)}
/* State tiles: soft tint while photos load */
.state{background:linear-gradient(160deg,#C9CDBA,#8E9A83)}
/* Mobile menu (1.0.2): HTML bars (iOS Safari ignores CSS transforms on SVG paths reliably), X when open */
.burger{width:42px;height:42px;padding:0;position:relative}
.burger .bar{position:absolute;left:8px;right:8px;height:1.5px;background:currentColor;transition:transform .3s,top .3s}
.burger .b1{top:15px}.burger .b2{top:26px}
.burger[aria-expanded="true"] .b1{top:20px;transform:rotate(45deg)}
.burger[aria-expanded="true"] .b2{top:20px;transform:rotate(-45deg)}
@media (max-width:940px){
  /* Opaque header bar while open; the overlay starts below it and scrolls if it doesn't fit */
  .hdr.menu{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--line)}
  .nav{justify-content:flex-start;gap:clamp(14px,3.2vh,26px);top:calc(var(--hdr) + env(safe-area-inset-top,0px));padding:24px 24px calc(32px + env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .nav>:first-child{margin-top:auto}.nav>:last-child{margin-bottom:auto}
  .nav a{font-size:clamp(26px,5vh,34px)}
  .nav .m-cta{display:inline-flex;flex:none;margin-top:8px;color:var(--btn-fg);background:var(--btn);font:500 12px/1 var(--sans);letter-spacing:.2em;padding:18px 28px}
  .nav .m-cta::after{display:none}
}
/* Quote band (1.0.2): heavier, larger attribution and counter on a soft backing */
.band cite{font-weight:600;font-size:13px;line-height:1.5;letter-spacing:.2em;display:inline-block;padding:8px 12px;background:rgba(12,13,10,.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-shadow:none}
.band-arrows{font-weight:600;font-size:15px;padding:4px 6px 4px 4px;border-radius:30px;background:rgba(12,13,10,.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-shadow:none}
.band-arrows button{box-shadow:inset 0 0 0 1.5px #FFFFFF}
.band .more{font-weight:600;text-shadow:0 1px 8px rgba(0,0,0,.6)}

/* ---------- 1.0.3 palette A: Sage & Clay ---------- */
/* Linen paper, sand panels, sage-pine dark sections, red-clay CTAs.
   Button fill is a deeper clay (#A85A31) so 12px white button text passes AA (5.03:1); #B5653A is 4.30:1. */
:root{
  --paper:#F7F4EC; --stone:#ECE6D8; --card:#FFFFFF; --ink:#1F2620; --line:#E2DBCB; --line-2:#C9C0AC;
  --forest:#2F4A3A; --on-forest:#F2EFE6; --on-forest-2:#C2CCC4;
  --clay:#B5653A; --brass:#9A5230; --btn:#A85A31; --btn-hover:#8E4B29; --btn-fg:#FFFFFF;
  --map-sea:#F2EEE3; --map-land:#E3DCCB; --map-served:#C9D2C3; --map-hover:#B3C0AE; --map-active:#9DAE98; --map-edge:#F7F4EC;
}
:root:not([data-theme="dark"]){--muted:#575D58;--ink-2:#2F3531}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#121613; --stone:#18201B; --card:#1A1E1B; --ink:#ECEAE3; --line:#28302A; --line-2:#3B453E;
  --forest:#1B2A21; --on-forest:#ECEAE3; --on-forest-2:#A9B5AC;
  --clay:#C9774A; --brass:#E09A6E; --btn:#A85A31; --btn-hover:#BE6A3D; --btn-fg:#FFFFFF;
  --map-sea:#141815; --map-land:#1E2420; --map-served:#2F3D33; --map-hover:#3C4C41; --map-active:#4A5D4F; --map-edge:#121613}}
:root[data-theme="dark"]{
  --paper:#121613; --stone:#18201B; --card:#1A1E1B; --ink:#ECEAE3; --line:#28302A; --line-2:#3B453E; --muted:#A3AAA4; --ink-2:#D3D6D0;
  --forest:#1B2A21; --on-forest:#ECEAE3; --on-forest-2:#A9B5AC;
  --clay:#C9774A; --brass:#E09A6E; --btn:#A85A31; --btn-hover:#BE6A3D; --btn-fg:#FFFFFF;
  --map-sea:#141815; --map-land:#1E2420; --map-served:#2F3D33; --map-hover:#3C4C41; --map-active:#4A5D4F; --map-edge:#121613}
.btn:hover{opacity:1;background:var(--btn-hover)}
.btn.line:hover,.hdr .btn:hover{background:transparent}
.hdr.solid .btn:hover{background:var(--btn-hover)}
.steps .n{color:var(--clay)}
/* Hero: no full-frame wash; a bottom gradient keeps the headline readable */
.hero,.page-hero{background:#2F4A3A}
.hero::after,.page-hero::after{background:linear-gradient(180deg,rgba(18,24,20,.3) 0%,rgba(18,24,20,0) 16%,rgba(18,24,20,0) 28%,rgba(18,24,20,.45) 55%,rgba(18,24,20,.82) 100%)}
.hero .hero-title,.hero .lede,.hero .label,.page-hero h1,.page-hero .lede,.page-hero .label{text-shadow:0 1px 2px rgba(0,0,0,.35),0 2px 22px rgba(0,0,0,.45)}
@media (max-width:700px){
  .hero::after,.page-hero::after{background:linear-gradient(180deg,rgba(18,24,20,.3) 0%,rgba(18,24,20,0) 22%,rgba(18,24,20,.25) 50%,rgba(18,24,20,.78) 100%)}
  /* Shorter mobile hero so the search card shows sooner */
  .hero{min-height:clamp(460px,72svh,620px)}
  .hero .wrap{padding-bottom:72px}
  .hero .hero-title{font-size:clamp(2.6rem,11vw,3.4rem);margin-top:14px}
  .hero .lede{margin-top:14px}
}
/* Trust strip */
.trust-strip{margin-top:clamp(20px,3vw,32px)}
.trust-strip ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line)}
.trust-strip li{padding:18px 20px;display:flex}
.trust-strip li + li{border-left:1px solid var(--line)}
.trust-strip li>a{display:flex;flex-direction:column;flex:1}
.trust-strip b{display:block;font:400 1.5rem/1.1 var(--serif);color:var(--ink)}
.trust-strip .stars{color:var(--clay)}
.trust-strip li span:not(.stars){display:block;margin-top:6px;font-size:13px;color:var(--muted);line-height:1.4}
.trust-strip li>a:hover b{color:var(--brass)}
.trust-strip li{flex-direction:column}
@media (max-width:900px){.trust-strip ul{grid-template-columns:1fr 1fr}.trust-strip li:nth-child(3){border-left:0}.trust-strip li:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:420px){.trust-strip li{padding:14px 12px}.trust-strip b{font-size:1.3rem}}

/* ---------- 1.0.4 Sage & Clay Bold (option 4) with option 1's lighter, roomier sections ---------- */
:root:not([data-theme="dark"]){
  --paper:#F7F4EC; --stone:#F1ECE0; --card:#FFFDF8; --line:#E2DBCB; --line-2:#CFC6B2;
  --forest:#2E4636; --on-forest:#F4EFE3; --on-forest-2:#C3CBB6; --clay-on-forest:#E8A27A;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--paper:#121613;--stone:#18201B;--card:#1A1E1B;--line:#28302A;--line-2:#3B453E;--muted:#A3AAA4;--ink-2:#D3D6D0;--forest:#1B2A21;--on-forest:#F4EFE3;--on-forest-2:#C3CBB6;--clay-on-forest:#E8A27A}}
:root[data-theme="dark"]{--forest:#1B2A21;--on-forest:#F4EFE3;--on-forest-2:#C3CBB6;--clay-on-forest:#E8A27A}
/* Header: solid pine everywhere (also over the hero), clay CTA */
.hdr,.hdr.solid,.hdr.menu{background:var(--forest);color:var(--on-forest);box-shadow:0 1px 0 rgba(0,0,0,.12)}
.hdr .btn,.hdr.solid .btn{background:var(--btn);color:var(--btn-fg);box-shadow:none}
.hdr .btn:hover,.hdr.solid .btn:hover{background:var(--btn-hover)}
.hdr-phone{opacity:1}
.hero{padding-top:calc(var(--hdr) + 56px)}
/* Hero: bottom gradient only (pine-tinted), no top wash */
.hero::after,.page-hero::after{background:linear-gradient(180deg,rgba(20,30,22,0) 0%,rgba(20,30,22,0) 32%,rgba(30,48,36,.55) 62%,rgba(30,48,36,.9) 100%)}
@media (max-width:700px){.hero::after,.page-hero::after{background:linear-gradient(180deg,rgba(20,30,22,0) 0%,rgba(20,30,22,.15) 25%,rgba(30,48,36,.6) 55%,rgba(30,48,36,.92) 100%)}}
.hero .label,.page-hero .label,.hero .lede,.page-hero .lede{color:rgba(255,255,255,.95)}
/* Quote band: pine-tinted on the text side only */
.band::after{background:linear-gradient(90deg,rgba(46,70,54,.78) 0%,rgba(46,70,54,.5) 45%,rgba(46,70,54,.06) 82%)}
/* Light, roomy sections */
.sec{padding-block:clamp(88px,12vw,168px)}
.sec.stone{background:var(--stone)}
.sec-head{margin-bottom:clamp(40px,5vw,72px)}
.trust-strip{margin-top:clamp(28px,4vw,48px)}
.trust-strip li{padding:22px 24px}
/* Pine signup band and footer; accents lighten on pine to keep AA */
.alerts{background:var(--forest);color:var(--on-forest)}
.alerts h2 em,.alerts .label,.ftr .label{color:var(--clay-on-forest)}
.ftr{background:var(--forest);color:var(--on-forest-2)}
.ftr .brand,.ftr h4{color:var(--on-forest)}
.ftr p,.ftr a:not(.brand){color:var(--on-forest-2)}
.ftr a:not(.brand):hover{color:var(--on-forest)}
@media (max-width:420px){.sec{padding-block:72px}}

.hero h1.label{margin:0;max-width:44ch}
/* 1.0.19 interactive touches */
.badge.is-new{background:rgba(47,74,58,.88)}
.card-ppa{display:block;font-size:12px;color:var(--muted);text-align:right;margin-top:3px;letter-spacing:.02em}
.d-acts .share-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;border-bottom:1px solid var(--line-2);padding:0 0 4px;font:500 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.d-acts .share-btn:hover{border-color:var(--ink)}
.share-btn svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.recent{padding-top:28px}
.recent-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:12px}
.rv{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;color:inherit;text-decoration:none;padding:8px;border:1px solid var(--line);transition:border-color .2s}
.rv:hover{border-color:var(--ink)}
.rv img,.rv .rv-ph{width:72px;height:54px;object-fit:cover;background:var(--line)}
.rv b{display:block;font:400 16px/1.2 var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rv span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
@media (max-width:980px){.recent-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.recent-list{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.rv{flex:0 0 78%;scroll-snap-align:start}}
.map-chips{display:flex;flex-wrap:wrap;gap:6px;max-width:calc(100vw - 60px)}
.map-chips button{font:500 11px/1 var(--sans);letter-spacing:.12em;padding:8px 10px;background:rgba(255,255,255,.94);border:1px solid rgba(0,0,0,.12);color:#1d1f1a;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.map-chips button[aria-pressed="true"]{background:#2F4A3A;color:#fff;border-color:#2F4A3A}
.stat b.counting{font-variant-numeric:tabular-nums}
.mtip-wrap{padding:6px;border-radius:0;border:0;box-shadow:0 6px 20px rgba(0,0,0,.18)}
.mtip{display:flex;gap:0;align-items:center;max-width:240px;white-space:normal}
.leaflet-container .mtip img{width:64px!important;height:48px!important;max-width:64px!important;object-fit:cover;flex:0 0 64px;margin-right:12px}
.mtip>span{min-width:0;width:150px}
.mtip b{display:block;font:400 15px/1.2 var(--serif);color:#1d1f1a}
.mtip i{display:block;font-style:normal;font-size:12px;color:#6b6b62;margin-top:2px}
.badges{position:absolute;left:16px;top:16px;display:flex;flex-wrap:wrap;gap:6px;max-width:calc(100% - 72px);pointer-events:none}
.badges:empty{display:none}
.badges .badge{position:static}
.badge.is-hot,.hot-tag,.mtip-hot{display:inline-flex;align-items:center;gap:5px;background:#B5653A;color:#fff}
.badge.is-hot svg,.hot-tag svg,.mtip-hot svg{flex:none}
.hot-tag{font:500 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;padding:6px 8px;margin-left:12px;vertical-align:1px}
.hot-slot:empty{display:none}
.mtip-hot{font:500 9px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;padding:4px 6px;margin-bottom:4px;width:max-content}
.mtip-shift:before{display:none}

/* 1.0.26: understated realtor note on listings */
.realtor-note{margin:22px 0 0;padding:16px 0 0;border-top:1px solid var(--line)}
.realtor-note .rn-head{font:400 20px/1.2 var(--serif);color:var(--ink);margin:0 0 6px}
.realtor-note p{font-size:14px;line-height:1.6;color:var(--ink-2);margin:0}
.realtor-note a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:3px;white-space:nowrap}
/* 1.0.26: bigger touch targets for filter fields and breadcrumbs */
@media (pointer:coarse){.filters select,.filters input[type=search],.filterbar select,.ff select,.ff input{min-height:44px}.crumbs a{display:inline-block;padding-block:6px}}

/* 1.0.26: hero <picture> wrapper for the mobile crop */
.hero>picture{display:contents}.hero>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;z-index:-2;animation:settle 2.8s cubic-bezier(.2,.6,.2,1) both}

/* 1.0.27 framing: whole-photo tiles for square/portrait/panoramic gallery images */
.gallery .g.fit::before{content:"";position:absolute;inset:-24px;background:var(--g-bg) center/cover no-repeat;filter:blur(22px) saturate(.9);opacity:.75;z-index:0}
.gallery .g.fit img{object-fit:contain;z-index:1}
.gallery .g.fit>span:not(.ribbon){z-index:2}
