:root{--paper:#fff;--ink:#1f2b4d;--secondary:#46546b;--sea:#edf2f4;--accent:#f7941d;--accent-hover:#ffac43;--light-ink:#dfe7ed;--display:"Bodoni Moda",Didot,Georgia,serif;--text:Jost,system-ui,sans-serif;--small:1rem;--body:clamp(1.0625rem,1rem + .15vw,1.1875rem);--lead:clamp(1.375rem,1.1rem + .65vw,1.875rem);--heading:clamp(2.5rem,2rem + 2vw,4.5rem);--name:clamp(4.5rem,7.8vw,7.25rem);--gutter:clamp(20px,2.5vw,48px);--section:clamp(88px,10vw,160px);--ease:cubic-bezier(.16,1,.3,1)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-color:var(--ink) var(--sea);scroll-padding-top:112px}
body{margin:0;color:var(--ink);background:var(--paper);font:400 var(--body)/1.6 var(--text);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
::selection{background:var(--accent);color:var(--ink)}
a{color:inherit;text-underline-offset:.24em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
button,input,select,textarea{font:inherit}
button,a,summary,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,select,summary{cursor:pointer}
:focus-visible{outline:3px solid var(--ink);outline-offset:5px}
.moving :focus-visible,.contact :focus-visible{outline-color:var(--accent)}
button:active,.button:active{transform:translateY(1px)}
img{display:block;max-width:100%;height:auto;background:var(--sea)}
figure{margin:0;min-width:0}
figcaption{font:400 var(--small)/1.45 var(--text);color:var(--secondary);margin-top:12px}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:500;letter-spacing:-.035em;line-height:1.04;text-wrap:balance}
h1{font-size:var(--name);line-height:.98;letter-spacing:-.04em}
h2{font-size:var(--heading)}
h3{font-size:clamp(1.875rem,1.5rem + .9vw,2.75rem);letter-spacing:-.025em}
p{margin:0 0 24px;text-wrap:pretty;max-width:66ch}
p:last-child{margin-bottom:0}
ul{padding-left:1.25em}
.frame{width:min(100%,1680px);margin-inline:auto;padding-inline:var(--gutter)}
.section-space{margin-top:var(--section)}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip{position:fixed;top:12px;left:12px;transform:translateY(-180%);z-index:20;padding:12px 20px;background:var(--accent);color:var(--ink)}
.skip:focus{transform:none}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:54px;padding:14px 26px;background:var(--accent);color:var(--ink);font:500 var(--body)/1.25 var(--text);border:0;border-radius:0;text-decoration:none;cursor:pointer;transition:background-color .2s,transform .2s var(--ease);text-align:center}
.button:hover{background:var(--accent-hover);transform:translateY(-2px);text-decoration:none}
.text-link{display:inline-block;padding-block:10px;font-weight:500;min-height:44px}
.site-header{position:sticky;top:0;width:100%;background:var(--paper);z-index:10}
.header-inner{display:flex;align-items:center;gap:24px;min-height:92px}
.wordmark{font:500 1.625rem/1.1 var(--display);letter-spacing:-.035em;text-decoration:none;white-space:nowrap;min-height:44px;display:flex;align-items:center}
.site-header nav{display:flex;align-items:center;gap:clamp(16px,2vw,36px);margin-left:auto}
.site-header nav a,.header-call{font-size:var(--small);font-weight:500;text-decoration:none;padding-block:12px;min-height:44px}
.site-header nav a:hover,.header-call:hover{text-decoration:underline}
.header-call{font-variant-numeric:tabular-nums;white-space:nowrap}
.hero{display:grid;grid-template-columns:1fr 1.08fr;gap:clamp(32px,4vw,72px);min-height:min(780px,calc(100svh - 92px));padding-bottom:24px}
.hero-copy{align-self:center;padding-block:48px}
.hero-description{font-size:var(--lead);line-height:1.3;margin:36px 0 24px;max-width:28ch}
.hero-intro{max-width:32ch;margin-bottom:30px}
.affiliation{font-size:var(--small);line-height:1.5;margin:28px 0 0;color:var(--secondary)}
.hero-photo{position:relative;min-height:620px;overflow:clip}
.hero-photo img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:66% 50%}
.hero-photo figcaption{position:absolute;bottom:20px;left:20px;right:20px;margin:0;padding:8px 12px;width:fit-content;background:var(--paper);color:var(--ink)}
.about{display:grid;grid-template-columns:1fr 1.08fr;gap:clamp(40px,6vw,96px);align-items:start}
.about-image{padding-top:4px}
.about-image img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:30% 50%}
.place-statement{font-size:var(--lead);line-height:1.4;margin-top:28px}
.about-copy h2{margin-bottom:32px}
.about-copy>p{max-width:52ch}
.brokerage-logos{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:center;margin-top:36px;background:var(--paper)}
.brokerage-logos img{width:100%;height:auto;max-height:84px;object-fit:contain;background:var(--paper)}
.section-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:start;margin-bottom:48px}
.section-intro>p{max-width:43ch;margin-top:4px}
.areas{background:var(--sea);padding-block:clamp(48px,6vw,96px)}
.area-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,7vw,112px);align-items:start}
.area-choices{padding-top:4px}
.town-buttons{display:grid;gap:8px}
.town-buttons button{display:flex;align-items:center;justify-content:space-between;gap:16px;background:transparent;color:var(--ink);border:0;text-align:left;padding:16px 20px;font:500 clamp(1.25rem,1.1rem + .55vw,1.625rem)/1.25 var(--text);width:100%;min-height:64px;border-radius:0;transition:background-color .2s,transform .2s var(--ease)}
.town-buttons button:hover{background:var(--paper);transform:translateX(3px)}
.town-buttons button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.selection-mark{font-size:var(--small);font-weight:400;visibility:hidden}
[aria-pressed="true"] .selection-mark{visibility:visible}
.area-footnote{font-size:var(--small);margin:28px 20px 0;max-width:30ch;color:var(--secondary)}
.fallback-towns{list-style:none;padding:0;margin:0}
.fallback-towns a{display:inline-block;padding:10px 0;min-height:44px}
.town-view{position:sticky;top:116px;min-width:0}
.town-photo img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:50% 50%;transition:opacity .2s}
.town-view[aria-busy="true"] #town-image{opacity:.92}
.town-photo figcaption{min-height:24px}
.town-info{padding-top:28px}
.town-info h3{margin-bottom:16px}
.town-info p{max-width:47ch;margin-bottom:12px}
.moving{background:var(--ink);color:var(--paper);padding-block:clamp(48px,6vw,96px)}
.moving .section-intro>p{color:var(--light-ink)}
.moving-columns{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,128px);align-items:start}
.buying{padding-top:40px;max-width:46ch}
.moving h3{margin-bottom:24px}
.editorial-list{padding-left:1.15em;margin:28px 0 36px}
.editorial-list li{padding-left:8px;margin-bottom:16px;max-width:44ch}
.moving figure{margin-bottom:32px}
.moving figure img{width:100%;aspect-ratio:16/9;object-fit:cover}
.moving figcaption{color:var(--light-ink)}
.questions{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,128px);align-items:start}
.question-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:26% 50%}
.question-copy h2{margin-bottom:40px}
details{margin:0 0 20px}
summary{font-weight:500;min-height:48px;padding-block:10px;line-height:1.4;list-style-position:outside;margin-left:20px}
summary:hover{text-decoration:underline;text-underline-offset:.24em}
details[open]>summary{margin-bottom:12px}
details>p{margin-left:20px}
.contact{background:var(--ink);color:var(--paper);padding-block:clamp(48px,6vw,96px)}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,128px);align-items:start}
.contact-copy h2{margin-bottom:32px}
.contact-copy>p{max-width:38ch}
address{font-style:normal;margin:32px 0}
address a{display:block;width:fit-content;max-width:100%;min-height:44px}
.contact-phone{font-size:var(--lead);font-variant-numeric:tabular-nums;text-decoration:none}
.contact-email{overflow-wrap:anywhere}
.social-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin:20px 0 28px}
.social-links a{display:inline-block;min-height:44px;padding-block:10px}
.contact-note,.form-note{font-size:var(--small);color:var(--light-ink);line-height:1.5}
.inquiry-builder{min-width:0}
.inquiry-builder h3,.inquiry-fallback h3{margin-bottom:28px}
fieldset{border:0;margin:0 0 24px;padding:0;min-width:0}
legend{margin-bottom:12px}
.intent-choices{display:flex;flex-wrap:wrap;gap:8px 20px}
.intent-choices label{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
input[type=radio]{accent-color:var(--accent);width:20px;height:20px;margin:0;cursor:pointer}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{margin-bottom:24px;min-width:0}
.field>label{display:block;margin-bottom:10px}
.field label span{color:var(--light-ink)}
select,textarea{width:100%;max-width:100%;background:var(--paper);color:var(--ink);border:2px solid var(--paper);border-radius:0;padding:12px;min-height:52px;caret-color:var(--ink)}
select{padding-right:28px}
textarea{resize:vertical;line-height:1.5}
textarea::placeholder{color:var(--secondary);opacity:1}
.form-note{margin-bottom:24px}
.draft-result{margin-top:48px}
.draft-result>label{display:block;margin-bottom:10px}
#draft-subject{font-weight:500}
.draft-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:24px 0}
.plain-button{color:var(--paper);background:transparent;border:0;min-height:48px;padding:10px 8px;text-decoration:underline;text-underline-offset:.24em;cursor:pointer}
#copy-status{min-height:24px;font-size:var(--small)}
.site-footer{padding-block:64px 32px}
.footer-top{display:grid;grid-template-columns:1fr auto auto;gap:48px;align-items:start;margin-bottom:48px}
.footer-name{font:500 clamp(2.5rem,4vw,4.5rem)/1 var(--display);letter-spacing:-.035em;text-decoration:none}
.footer-top p{font-size:var(--small);margin:0}
.site-footer>p{font-size:var(--small)}
.photo-credits{margin:28px 0}
.photo-credits summary{font-size:var(--small)}
.photo-credits p,.photo-credits li{font-size:var(--small);max-width:90ch}
.photo-credits li{margin-bottom:12px}
.photo-credits a{overflow-wrap:anywhere}
.legal{color:var(--secondary);margin-top:28px}
@media(max-width:1100px){
 .header-inner{flex-wrap:wrap;padding-block:16px;gap:4px 24px;min-height:110px}
 .site-header nav{order:3;flex-basis:100%;justify-content:space-between;margin:0;gap:16px}
 .header-call{margin-left:auto}
 html{scroll-padding-top:148px}
 .hero-photo{min-height:600px}
 .town-view{top:148px}
 .hero{gap:32px}
 .hero-copy{padding-block:32px}
 .hero-intro{max-width:30ch}
 .selection-mark{display:none}
 .town-buttons button[aria-pressed=true]::after{content:"Selected";font-size:var(--small)}
}
@media(max-width:760px){
 :root{--name:clamp(4.5rem,16vw,6rem);--heading:clamp(2.5rem,8.5vw,3.5rem)}
 html{scroll-padding-top:24px}
 .site-header{position:static}
 .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:0;padding-block:14px 16px;gap:6px 16px}
 .wordmark{font-size:1.4rem}
 .header-call{grid-column:2;grid-row:1}
 .hero{display:flex;flex-direction:column;gap:32px;min-height:0;padding-bottom:0}
 .hero-copy{align-self:stretch;padding-block:28px 0}
 h1 br{display:none}
 h1{font-size:clamp(3rem,10.8vw,5rem);white-space:nowrap}
 .hero-description{font-size:1.5rem;line-height:1.35;margin-top:24px}
 .hero-description br{display:none}
 .hero-intro{max-width:38ch;margin-bottom:24px}
 .affiliation{margin-top:24px}
 .hero-photo{min-height:0;aspect-ratio:6/5}
 .hero-photo img{object-position:65% 50%}
 .hero-photo figcaption{bottom:12px;left:12px;right:12px;font-size:1rem}
 .about,.questions,.contact-layout{grid-template-columns:1fr;gap:40px}
 .about-image{order:2;padding-top:0}
 .about-copy h2 br{display:none}
 .about-image img{aspect-ratio:4/3}
 .place-statement{margin-top:24px}
 .about-copy h2{margin-bottom:28px}
 .brokerage-logos{gap:24px;margin-top:32px}
 .section-intro{grid-template-columns:1fr;gap:24px;margin-bottom:32px}
 .section-intro>p{margin:0;max-width:55ch}
 .area-layout{grid-template-columns:1fr;gap:32px}
 .town-view{position:static}
 .town-buttons{grid-template-columns:1fr 1fr;gap:8px}
 .town-buttons button{font-size:1.0625rem;padding:12px;min-height:56px;align-items:center;flex-wrap:wrap;gap:4px}
 .town-buttons button[aria-pressed=true]::after{font-size:.8125rem}
 .area-footnote{margin:20px 0 0;max-width:none}
 .town-photo img{aspect-ratio:4/3}
 .town-info{padding-top:20px}
 .moving-columns{grid-template-columns:1fr;gap:56px}
 .buying{padding:0;max-width:none}
 .editorial-list{margin-block:24px 28px}
 .moving figure{margin-bottom:28px}
 .question-photo{order:2}
 .question-photo img{aspect-ratio:4/3;object-position:25% 50%}
 .question-copy h2{margin-bottom:28px}
 .contact-copy h2 br{display:none}
 .contact-layout{gap:48px}
 .footer-top{grid-template-columns:1fr;gap:24px;margin-bottom:32px}
 .footer-name{font-size:3rem}
 .footer-top .text-link{justify-self:start}
}
@media(max-width:380px){
 .wordmark{font-size:1.25rem}
 .header-inner{gap:6px 10px}
 .field-row{grid-template-columns:1fr;gap:0}
 .brokerage-logos{grid-template-columns:1fr;justify-items:start;gap:28px}
 .brokerage-logos img{max-width:260px}
 .town-buttons{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.site-header,.button,#inquiry-builder,#town-picker,.skip{display:none!important}.section-space{margin-top:32px}.hero,.about,.questions,.contact-layout,.moving-columns,.area-layout{display:block}.hero-photo{height:240px;min-height:0}.moving,.contact{background:var(--paper);color:var(--ink);padding:24px 0}.contact-note,.moving figcaption,.moving .section-intro>p{color:var(--ink)}.town-view{position:static}.site-footer{padding-top:32px}details{break-inside:avoid}}

.area-image-status{margin-top:16px;font-size:var(--small);color:var(--ink)}

@media(max-width:900px){.field-row{grid-template-columns:1fr;gap:0}}

/* Focused mobile QA refinement: readable links and more generous touch height. */
@media(max-width:760px){
 .site-header nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column:1/-1;order:initial;gap:8px 16px;justify-content:normal}
 .site-header nav a{font-size:1rem;min-width:44px;min-height:48px;padding:8px 6px;display:flex;align-items:center;white-space:nowrap}
 .site-header .header-call{font-size:1rem;min-height:48px;display:flex;align-items:center}
}

/* V3: a single coastal motion language, with visible static defaults. */
:root{--t-press:140ms;--t-hover:200ms;--t-state:280ms}
.hero-name-part{display:inline-block}
.photo-window{position:relative;overflow:clip}
.photo-window>img{display:block;width:100%}
.town-photo .photo-window{aspect-ratio:16/10;background:var(--sea)}
.town-photo .photo-window>img{height:100%;object-fit:cover}
.town-photo .photo-window>.town-image-outgoing{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.hero-photo figcaption{z-index:1}
.button{transition:transform var(--t-press) var(--ease),background-color var(--t-hover) ease}
.button:hover{transform:none}
.button:focus-visible{background:var(--accent-hover);transform:translateY(-2px)}
.button:active{transform:translateY(1px)}
.site-header nav a,.header-call,.text-link{transition:text-decoration-color var(--t-hover) ease,text-underline-offset var(--t-state) var(--ease);text-decoration-thickness:2px}
.site-header nav a:focus-visible,.header-call:focus-visible{text-decoration:underline}
.text-link:is(:hover,:focus-visible){text-underline-offset:.34em}
.town-buttons button:hover{transform:none}
.town-buttons button:focus-visible{outline-offset:3px}
.town-buttons button:focus-visible:not([aria-pressed="true"]){background:var(--paper)}
@media(hover:hover) and (pointer:fine){
 .button:hover{transform:translateY(-2px)}
 .town-buttons button:hover{transform:translateX(3px)}
}
@media(max-width:760px){.town-photo .photo-window{aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){
 .button:is(:hover,:focus-visible,:active),.town-buttons button:hover{transform:none}
 .hero-name-part,.photo-window{transform:none}
}
