*,*::before,*::after{box-sizing:border-box}
:root{--blue:#246aa5;--pad:104px;--hdr:115px;--line:rgba(0,0,0,.1)}
html{scroll-behavior:smooth;scroll-padding-top:var(--hdr);-webkit-text-size-adjust:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:28px;color:rgba(0,0,0,.8);background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,p,ul,dl,dd,dt{margin:0}
ul{padding:0;list-style:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.sr{position:absolute;left:-9999px;top:0}
.sr:focus{left:8px;top:8px;z-index:100;background:#fff;padding:8px 12px}
.hp{position:absolute;left:-5000px;width:280px}
.h72{font-size:72px;line-height:80px;font-weight:600;letter-spacing:-1.8px;color:#000}
.h24{font-size:24px;line-height:33px;font-weight:600;color:#000}
.l14{font-size:14px;line-height:17px;font-weight:500;letter-spacing:1.4px;color:#000}
.vb{display:inline-flex;align-items:center;justify-content:center;height:60px;padding:0 39px;border-radius:999px;background:var(--blue);color:#fff;font-size:14px;line-height:28px;border:2px solid var(--blue);white-space:nowrap;transition:background .2s,border-color .2s,color .2s}
.vb:hover{background:#1b5486;border-color:#1b5486}
.vb-o{background:#fff;color:#000;border-color:#dbefff}
.vb-o:hover{background:#fff;border-color:var(--blue)}
.vb[disabled]{background:#ccc;border-color:#ccc;cursor:not-allowed}
.lnk{color:var(--blue);font-size:16px;line-height:22px}
.lnk:hover{text-decoration:underline}
.ar{width:64px;height:64px;border-radius:50%;border:1px solid #f2f2f2;background:#fff;color:#000;display:grid;place-items:center;flex:none;transition:background .2s}
.ar:hover,.ar.g{background:#f2f2f2}
.arrs{display:flex;gap:16px}
.car{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}
.car::-webkit-scrollbar{display:none}

/* header */
.vh{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--hdr);background:#fff;border-bottom:1px solid #f2f2f2;display:flex;align-items:center;padding:0 45px 0 var(--pad)}
.vh-home{font-size:13px;line-height:18px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:#000;margin-right:auto}
.vh-nav{display:flex;gap:47px}
.vh-nav a{font-size:16px;color:#000}
.vh-nav a:hover{color:var(--blue)}
.vh-cta{max-width:0;padding:0;border-width:0;opacity:0;overflow:hidden;margin-left:0;transition:max-width .35s,padding .35s,margin .35s,opacity .25s}
.vh.sc .vh-cta{max-width:230px;padding:0 39px;border-width:2px;opacity:1;margin-left:64px}
.vh-burger{display:none;width:44px;height:44px;position:relative;margin-right:-12px}
.vh-burger i{position:absolute;left:12px;width:20px;height:2px;background:#000}
.vh-burger i:first-child{top:16px}
.vh-burger i:last-child{top:25px}
.vm{position:fixed;top:0;left:0;right:0;bottom:0;z-index:60;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:80px 24px 40px;visibility:hidden;opacity:0;transition:opacity .25s,visibility .25s}
.vm.on{visibility:visible;opacity:1}
.vm>a{font-size:32px;line-height:48px;font-weight:600;letter-spacing:-.6px;color:#000}
.vm>a.vb{font-size:14px;line-height:28px;font-weight:400;letter-spacing:0;color:#fff;margin-top:24px}
.vm>a.vm-home{font-size:13px;line-height:18px;letter-spacing:1.4px;text-transform:uppercase;margin-top:32px}
.vx{position:absolute;top:10px;right:12px;width:44px;height:44px;display:grid;place-items:center;color:#000}

/* hero */
.hero{display:grid;grid-template-columns:1fr 1fr;height:100vh;min-height:760px}
.hero-media{display:flex;flex-direction:column;min-height:0;background:#eee}
.hero-main{flex:1;min-height:0;display:block;width:100%;overflow:hidden}
.hero-main img,.hero-thumbs img{width:100%;height:100%;object-fit:cover}
.hero-thumbs{display:grid;grid-template-columns:repeat(3,1fr);height:180px;flex:none}
.hero-thumbs button{position:relative;display:block;overflow:hidden;height:180px}
.hero-thumbs .last::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4)}
.more{position:absolute;z-index:1;right:30px;top:50%;transform:translateY(-50%);height:48px;padding:0 20px;border:1px solid rgba(255,255,255,.4);border-radius:48px;color:#fff;font-size:16px;line-height:46px;white-space:nowrap}
.more em{font-style:normal}
.hero-tx{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 var(--pad) 0 64px}
.hero-tx h1{font-size:72px;line-height:80px;font-weight:600;letter-spacing:-1.8px;color:#000;max-width:552px}
.hero-city{margin-top:26px;font-size:20px;line-height:28px;font-weight:500;letter-spacing:-.4px;color:rgba(0,0,0,.4)}
.hero-price{margin-top:4px;font-size:20px;line-height:28px;font-weight:500;letter-spacing:-.4px;color:#000}
.hero-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:64px}

/* description + stats */
.desc{display:grid;grid-template-columns:minmax(0,505px) minmax(0,560px);justify-content:space-between;align-items:center;gap:64px;padding:160px var(--pad)}
.desc-tx .h24{max-width:505px}
.clamp{margin-top:32px;max-height:252px;overflow:hidden;color:#666}
.clamp.open{max-height:none}
.more-btn{display:inline-flex;align-items:center;gap:10px;margin-top:24px}
.more-btn[hidden]{display:none}
.more-btn svg{transition:transform .2s}
.more-btn.up svg{transform:rotate(180deg)}
.desc-img{width:100%;aspect-ratio:560/640;object-fit:cover}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,345px));justify-content:space-between;gap:32px;padding:64px var(--pad)}
.stats div{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 20px;padding-bottom:60px;border-bottom:1px solid var(--line)}
.stats b{font-size:24px;line-height:33px;font-weight:600;color:#000}
.stats span{font-size:16px;line-height:22px;font-weight:300;color:rgba(0,0,0,.4)}

/* gallery */
.gal{padding:160px 0;--gs:min(889px,calc(100vw - var(--pad) - var(--pad)))}
.gal .h72{margin:0 var(--pad) 64px}
.gal-car{gap:60px;padding:0 calc(100vw - var(--pad) - var(--gs)) 0 var(--pad);scroll-padding-left:var(--pad)}
.g-s{flex:none;width:var(--gs);aspect-ratio:889/500;scroll-snap-align:start;display:block;overflow:hidden;background:#eee}
.g-s img{width:100%;height:100%;object-fit:cover}
.gal-ctl{display:flex;justify-content:space-between;align-items:center;margin:48px var(--pad) 0}
.gal-n{font-size:14px;line-height:28px;color:#000}

/* mortgage calculator */
.mc{background:#246aa4;color:#fff;display:grid;grid-template-columns:minmax(0,542px) minmax(0,542px);justify-content:space-between;gap:64px;padding:160px 110px}
.mc .h72{color:#fff}
.mc-lead{margin-top:16px}
.mc-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 40px;margin-top:26px}
.mc-f label{display:flex;align-items:center;gap:10px;font-size:16px;line-height:28px;color:#fff}
.tip{width:16px;height:16px;border:1px solid #fff;border-radius:50%;font-size:10px;line-height:14px;text-align:center;font-style:normal;cursor:help;flex:none}
.mc-f input,.mc-f select{display:block;width:100%;height:51px;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.55);border-radius:0;color:rgba(255,255,255,.75);font-size:14px;padding:0;outline-offset:2px}
.mc-f input:focus,.mc-f select:focus{color:#fff;border-bottom-color:#fff}
.mc-f select{-webkit-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M7 1v13M2 9l5 5 5-5' fill='none' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;background-size:12px 14px}
.mc-f select option{color:#000}
.mc-2{display:grid;grid-template-columns:1fr 80px}
.mc-2 input:last-child{text-align:right}
.mc-note{margin-top:32px;font-size:12px;line-height:16px}
.mc-reset{display:inline-flex;align-items:center;gap:8px;margin-top:96px;font-size:16px;line-height:22px;color:rgba(255,255,255,.65)}
.mc-reset:hover{color:#fff}
.mc-r{background:#fff;border-radius:4px;color:#000;padding:36px 40px 28px;min-height:760px;display:flex;flex-direction:column}
.donut{position:relative;width:220px;height:220px;margin:0 auto}
.donut svg{display:block;width:220px;height:220px}
.donut-c{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#246aa4}
.donut-c b{font-size:24px;line-height:33px;font-weight:400}
.donut-c span{font-size:16px;line-height:22px}
.leg{margin-top:64px}
.leg li{display:flex;align-items:center;gap:14px;font-size:16px;line-height:28px;color:#000}
.leg li+li{margin-top:16px}
.leg i{width:11px;height:11px;border-radius:50%;flex:none}
.leg b{margin-left:auto;font-weight:400;color:#246aa4}
.share{display:flex;align-items:center;gap:26px;margin-top:auto;padding-top:40px;color:#246aa4}
.share a{color:#000;display:grid;place-items:center;width:24px;height:24px}
.share a:hover{color:#246aa4}
.share svg{fill:currentColor}

/* schedule */
.sch{padding:160px var(--pad);text-align:center}
.sch-days{display:flex;align-items:center;justify-content:center;gap:64px;margin-top:32px}
.sch-car{gap:16px;width:816px;max-width:100%}
.day{flex:none;width:192px;height:192px;border:1px solid #c4c4c4;border-radius:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;scroll-snap-align:start;color:#000;transition:background .2s,color .2s,border-color .2s}
.day span{font-size:14px;line-height:24px}
.day b{font-size:56px;line-height:66px;font-weight:400}
.day:hover{border-color:var(--blue)}
.day.on{background:var(--blue);border-color:var(--blue);color:#fff}
.sch-row{display:flex;justify-content:space-between;align-items:center;gap:24px;width:816px;max-width:100%;margin:48px auto 0}
.sel select{width:280px;max-width:100%;height:49px;background:transparent;border:0;border-bottom:1px solid #000;border-radius:0;font-size:14px;text-transform:uppercase;color:#000;padding:0 28px 0 0;-webkit-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M7 1v13M2 9l5 5 5-5' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;background-size:12px 14px}
.seg{display:flex}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:flex;align-items:center;height:49px;padding:0 40px;border:2px solid transparent;border-radius:999px;font-size:14px;text-transform:uppercase;color:#000;cursor:pointer;white-space:nowrap;transition:border-color .2s,color .2s}
.seg input:checked+span{border-color:#dbefff;color:var(--blue)}
.seg input:focus-visible+span{outline:2px solid var(--blue);outline-offset:3px}
#sch-next{margin-top:64px;min-width:180px}
.sch-lead{max-width:608px;margin:16px auto 0}
.sch-when{display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:6px 20px;margin-top:24px;color:#000}
.sch-when b{font-weight:600}
.sch .uform{max-width:597px;margin:16px auto 0;text-align:left}

/* forms */
.uf{position:relative;border-bottom:1px solid #000}
.uf input,.uf textarea{display:block;width:100%;height:81px;padding:36px 0 0;background:transparent;border:0;border-radius:0;font-size:16px;line-height:28px;color:#000;outline:0}
.uf textarea{height:83px;min-height:83px;resize:vertical;padding-top:40px}
.uf label{position:absolute;left:0;top:40px;font-size:14px;line-height:17px;font-weight:500;text-transform:uppercase;color:#999;pointer-events:none;transition:top .2s,font-size .2s}
.uf input:focus+label,.uf input:not(:placeholder-shown)+label,.uf textarea:focus+label,.uf textarea:not(:placeholder-shown)+label{top:14px;font-size:11px}
.uf:focus-within{border-bottom-color:var(--blue)}
.uf [aria-invalid=true]{box-shadow:0 2px 0 #b3261e}
.chk{display:flex;align-items:flex-start;gap:8px;margin-top:18px;font-size:12px;line-height:15.6px;color:#000;text-align:justify}
.chk input{margin:2px 0 0;width:13px;height:13px;flex:none;accent-color:var(--blue)}
.uform .vb{margin-top:48px}
.f-msg{min-height:20px;margin-top:12px;font-size:13px;line-height:20px;color:#666}
.f-msg.err{color:#b3261e}
.f-done h3{font-size:20px;line-height:32px;font-weight:600;color:#000}

/* amenities */
.am{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,712px);gap:64px;padding:160px var(--pad)}
.am-tabs{display:flex;flex-direction:column;align-items:flex-start;gap:36px}
.am-tabs button{font-size:24px;line-height:33px;font-weight:600;color:#999;text-align:left;transition:color .2s}
.am-tabs button:hover,.am-tabs button[aria-selected=true]{color:#000}
.am-p{display:none}
.am-p.on{display:block}
.am-h{display:none}
.am dl div{padding-bottom:32px;margin-bottom:32px;border-bottom:1px solid rgba(0,0,0,.2)}
.am dl div:last-child{margin-bottom:0;border-bottom:0}
.am dt{font-size:20px;line-height:32px;font-weight:600;color:#000}
.am dd{margin-top:10px;font-size:16px;line-height:28px;color:#000}

/* quote, location, contact, agent */
.qt{padding:160px 248px 250px}
.qt-q{max-width:816px;margin-top:24px;font-size:20px;line-height:32px;font-weight:600;color:#000}
.loc{padding:160px var(--pad)}
.loc-map{margin-top:64px;height:480px;background:#eee}
.loc-map iframe{display:block;width:100%;height:100%;border:0}
.area{padding:160px var(--pad)}
.area img{width:min(889px,100%);aspect-ratio:889/500;object-fit:cover}
.ct{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,597px);gap:64px;padding:64px var(--pad)}
.ct .h72{max-width:435px}
.ag{padding:160px 248px}
.ag-hd{display:flex;align-items:center;gap:72px}
.ag-av{width:140px;height:140px;border-radius:50%;object-fit:cover;object-position:center 20%;background:#f2f2f2;flex:none}
.ag-role{margin-top:27px;color:#999}
.ag-bd{display:grid;grid-template-columns:minmax(0,560px) auto;justify-content:start;gap:64px;margin-top:48px}
.ag-bio{font-size:20px;line-height:28px;font-weight:500;letter-spacing:-.4px;color:#000}
.ag-lic{margin-top:32px;color:#999}
.ag-ct{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding-top:3px}
.soc{display:flex;gap:26px;margin-top:38px}
.soc a{display:grid;place-items:center;width:24px;height:24px;color:#000}
.soc a:hover{color:var(--blue)}
.soc svg{width:14px;height:14px;fill:currentColor}

/* footer */
.vf{padding:64px var(--pad) 48px}
.vf-top{display:flex;justify-content:space-between;align-items:flex-start;gap:48px}
.nl{width:260px;max-width:100%}
.nl-in{display:flex;align-items:center;border-bottom:1px solid #999}
.nl-in input{flex:1;min-width:0;height:48px;border:0;background:transparent;font-size:14px;color:#000;padding:0;outline-offset:2px}
.nl-in input::placeholder{color:#999;opacity:1}
.nl-in button{width:32px;height:32px;display:grid;place-items:center;color:#000;flex:none}
.vf-soc{display:flex;gap:39px;padding-right:156px}
.vf-soc a{font-size:14px;line-height:22px;letter-spacing:1.4px;text-transform:uppercase;color:#000}
.vf-soc a:hover{color:var(--blue)}
.vf-note{margin-top:48px;font-size:12px;line-height:24px;color:rgba(0,0,0,.4)}
.vf-note+.vf-note{margin-top:0}
.vf-bot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px 32px;margin-top:48px;font-size:16px;line-height:28px;color:rgba(0,0,0,.4)}
.vf-brand{display:flex;align-items:center;gap:16px;color:#000}
.vf-brand img{height:36px;width:auto;filter:invert(1)}
.vf-copy a{margin-left:16px;text-decoration:underline;white-space:nowrap}

/* photo viewer */
.lb{position:fixed;top:0;left:0;right:0;bottom:0;z-index:80;background:rgba(0,0,0,.94);display:flex;align-items:center;justify-content:center;padding:64px 96px}
.lb[hidden]{display:none}
.lb img{max-width:100%;max-height:100%;object-fit:contain}
.lb button{position:absolute;width:56px;height:56px;border-radius:50%;color:#fff;display:grid;place-items:center;background:rgba(255,255,255,.12);transition:background .2s}
.lb button:hover{background:rgba(255,255,255,.28)}
.lb-x{top:16px;right:16px}
.lb-p{left:20px;top:50%;margin-top:-28px}
.lb-n{right:20px;top:50%;margin-top:-28px}
.lb-c{position:absolute;left:0;right:0;bottom:20px;text-align:center;color:#fff;font-size:14px}

@media (max-width:1279px){
:root{--pad:64px}
.mc{padding:120px 64px}
.qt{padding:120px 64px 160px}
.ag{padding:120px 64px}
.hero-tx h1,.h72{font-size:56px;line-height:64px;letter-spacing:-1.4px}
.vh-nav{gap:32px}
.vf-soc{padding-right:0}
}
@media (max-width:1023px){
:root{--pad:24px;--hdr:65px}
body{font-size:14px;line-height:26px}
.hero-tx h1,.h72{font-size:36px;line-height:44px;letter-spacing:-.9px}
.vh{padding:0 24px}
.vh-nav,.vh-cta{display:none}
.vh-burger{display:block}
.vh-home{font-size:11px;letter-spacing:1.2px}
.hero{display:block;height:auto;min-height:0;padding-top:var(--hdr)}
.hero-main{flex:none;height:280px}
.hero-thumbs,.hero-thumbs button{height:96px}
.more{right:50%;transform:translate(50%,-50%);padding:0 16px}
.more em{display:none}
.hero-tx{padding:48px 24px 64px}
.hero-city{font-size:16px}
.hero-btns{flex-direction:column;gap:20px;margin-top:64px}
.desc{grid-template-columns:1fr;gap:32px;padding:64px 24px 48px}
.desc-img{order:-1;aspect-ratio:327/310}
.clamp{margin-top:20px;max-height:260px}
.stats{grid-template-columns:1fr;gap:0;padding:0 24px 48px}
.stats div{padding:32px 0;align-items:baseline}
.gal{padding:88px 0 64px}
.gal .h72{margin-bottom:64px}
.gal-car{gap:16px}
.gal-ctl{margin-top:24px}
.ar{width:48px;height:48px}
.mc{grid-template-columns:1fr;gap:0;padding:0 24px 64px}
.mc-r{order:-1;min-height:0;margin:0 -24px 56px;border-radius:0;padding:32px 24px}
.mc-grid{grid-template-columns:1fr;gap:16px}
.mc-reset{margin-top:40px}
.leg{margin-top:40px}
.sch{padding:64px 24px}
.sch-days{gap:12px}
.sch-car{width:auto;flex:1;min-width:0}
.day{width:152px}
.sch-row{flex-direction:column;gap:32px;margin-top:48px}
.seg span{padding:0 14px;font-size:13px}
#sch-next{margin-top:32px}
.am{grid-template-columns:1fr;gap:0;padding:48px 24px}
.am-tabs{display:none}
.am-p{display:block}
.am-p+.am-p{margin-top:48px}
.am-h{display:block;font-size:24px;line-height:32px;font-weight:600;color:#000;margin-bottom:24px}
.am dl div{padding-bottom:20px;margin-bottom:20px}
.am dt{font-size:18px;line-height:28px}
.am dd{margin-top:4px;font-size:14px;line-height:26px}
.qt{padding:96px 24px}
.qt-q{font-size:18px;line-height:28px}
.loc{padding:64px 0}
.loc .h72{margin:0 24px}
.loc-map{margin-top:32px;height:320px}
.area{padding:64px 24px}
.ct{grid-template-columns:1fr;gap:36px;padding:48px 24px}
.uform .vb{width:100%}
.sch .uform .vb{width:100%}
.ag{padding:96px 24px}
.ag-hd{gap:25px}
.ag-av{width:64px;height:64px}
.ag-role{margin-top:4px}
.ag-bd{grid-template-columns:1fr;gap:32px}
.ag-bio{font-size:16px}
.vf{padding:48px 24px 110px}
.vf-top{flex-direction:column}
.vf-bot{flex-direction:column;align-items:flex-start;font-size:14px}
.lb{padding:72px 12px}
.lb-p,.lb-n{top:auto;bottom:12px;margin-top:0}
.lb-p{left:12px}
.lb-n{right:12px}
.lb-c{bottom:28px}
}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*{transition:none!important}
}
