:root{
  --blue-light:#BACCDA; --slate:#577D91; --slate-dark:#3D566A; --olive:#4A4733; --olive-light:#7C7E5F;
  --white:#fff; --text:#1d2a33; --muted:#5b6b76;
  --r:24px; --r-sm:16px;
  --font:'Nunito Sans',Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{overflow-x:hidden;font-family:var(--font);font-weight:400;color:var(--text);background:var(--white);line-height:1.5;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-weight:400;line-height:1.15}
.wrap{width:min(1200px,calc(100% - 48px));margin:0 auto}
.upper{text-transform:uppercase;letter-spacing:.02em}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;font:inherit;text-transform:uppercase;letter-spacing:.04em;font-size:15px;color:#fff;background:var(--slate-dark);border-radius:999px;padding:0 44px;height:60px;text-decoration:none;transition:background .2s,transform .2s}
.btn:hover{background:#31465a}
.btn.big{min-width:320px;height:64px}
.btn.ghost{white-space:nowrap;background:transparent;border:1.5px solid rgba(255,255,255,.8);height:44px;padding:0 26px;font-size:13px}
.btn.ghost:hover{background:rgba(255,255,255,.15)}
.sec{padding:96px 0}
.sec-title{text-align:center;font-size:clamp(26px,3.2vw,38px);margin-bottom:56px}

/* header */
.hdr{position:absolute;inset:0 0 auto 0;z-index:5;padding:26px 0}
.hdr .wrap{display:flex;align-items:center;gap:32px}
.logo{color:#fff;text-decoration:none;font-size:22px;letter-spacing:.28em;font-weight:300;white-space:nowrap}
.logo small{display:block;font-size:10px;letter-spacing:.32em;margin-top:2px;opacity:.85}
.nav{display:flex;gap:26px;margin-left:auto}
.nav a{white-space:nowrap;color:#fff;text-decoration:none;font-size:13px;text-transform:uppercase;letter-spacing:.06em;opacity:.95}
.nav a:hover{opacity:.7}
.hdr .phone{color:#fff;text-decoration:none;font-size:14px;white-space:nowrap}
.burger{display:none;margin-left:auto;background:none;border:0;width:40px;height:40px;cursor:pointer}
.burger span{display:block;height:2px;background:#fff;margin:7px 8px}

/* hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,30,40,.35) 0%,rgba(20,30,40,.05) 40%,rgba(20,30,40,.55) 100%);z-index:1}
.hero .wrap{position:relative;z-index:2;padding:140px 0 90px}
.chips{display:flex;flex-wrap:wrap;gap:12px;max-width:760px;margin-bottom:56px}
.chip{background:rgba(255,255,255,.55);color:var(--slate-dark);font-size:13px;font-weight:600;padding:9px 20px;border-radius:999px;backdrop-filter:blur(6px)}
.hero h1{font-size:clamp(28px,3.6vw,46px);max-width:900px;margin-bottom:22px;text-shadow:0 2px 20px rgba(0,0,0,.25)}
.hero p{max-width:640px;font-size:17px;margin-bottom:44px;text-shadow:0 1px 12px rgba(0,0,0,.3)}

/* side tab */
.sidetab{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:20;background:var(--slate);color:#fff;border:0;cursor:pointer;font:inherit;writing-mode:vertical-rl;transform:rotate(180deg) translateY(50%);padding:18px 10px;border-radius:0 12px 12px 0;font-size:14px;letter-spacing:.04em}
.sidetab:hover{background:var(--slate-dark)}

/* carousel */
.slider{position:relative;height:100vh;min-height:640px;overflow:hidden;background:#222}
.slide{position:absolute;inset:0;opacity:0;transition:opacity .6s;color:#fff}
.slide.on{opacity:1}
.slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.55) 100%)}
.slide .txt{position:absolute;left:0;right:0;bottom:120px;z-index:2}
.slide .txt .h{font-size:clamp(24px,3vw,38px);text-transform:uppercase;letter-spacing:.02em;max-width:900px;margin-bottom:18px;line-height:1.15;font-weight:400}
.slide .txt p{max-width:560px;font-size:16px}
.ctrl{position:absolute;left:0;right:0;bottom:56px;z-index:3;color:#fff;display:flex;align-items:center;gap:14px;font-size:14px}
.ctrl button{background:none;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer;opacity:.8;padding:0 4px}
.ctrl button:hover{opacity:1}

/* reasons */
.reasons{background:var(--blue-light);color:var(--slate-dark)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:48px 40px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 32px}
.card img{border-radius:var(--r);aspect-ratio:16/10;object-fit:cover;width:100%}
.card h3{font-size:24px;margin:30px 0 16px}
.card p{font-size:15px;color:#2e4453}

/* nearby */
#nearby .lead{max-width:760px;margin:-28px auto 48px;text-align:center;color:var(--muted);font-size:16px}
#nearby .grid3 .card h3{font-size:20px;margin:22px 0 10px}

/* plans */
#plans .lead{max-width:760px;margin:-28px auto 48px;text-align:center;color:var(--slate-dark);font-size:16px}
.plan-img{background:#F1ECE3;aspect-ratio:4/3;padding:24px;display:flex;align-items:center;justify-content:center}
.plan-img img{width:100%;height:100%;object-fit:contain;border-radius:0}
#plans .card .price{font-weight:600;margin-top:8px}
#plans .cta{display:flex;justify-content:center;margin-top:44px}

/* apartments */
.apts{background:#fff}
.apts .lead{max-width:760px;margin:-28px auto 48px;text-align:center;color:var(--muted);font-size:16px}
.rows{border-top:1px solid #dfe6eb}
.row{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:20px;padding:22px 8px;border-bottom:1px solid #dfe6eb;align-items:center}
.row.head{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;padding:12px 8px}
.row b{font-weight:600}
.row .t{font-size:19px}
.apts .note{color:var(--muted);font-size:14px;margin-top:22px;max-width:820px}
.apts .cta{display:flex;justify-content:center;margin-top:44px}

/* purchase */
.buy{background:var(--slate);color:#fff}
.buy .sec-title{color:#fff}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:20px}
.tile{position:relative;background:rgba(255,255,255,.22);border-radius:var(--r);padding:36px 32px;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end}
.tile .h{text-transform:uppercase;font-size:22px;letter-spacing:.02em;line-height:1.2;font-weight:400}
.tile .ico{position:absolute;top:22px;right:22px;width:52px;height:52px;border-radius:50%;background:var(--blue-light);color:var(--slate-dark);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600}
.tile .tag{display:inline-block;margin-top:14px;background:var(--olive-light);color:#fff;font-size:12px;padding:6px 14px;border-radius:999px;align-self:flex-start}
.wide{background:rgba(255,255,255,.22);border-radius:var(--r);padding:44px 40px;display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:start}
.wide .h{text-transform:uppercase;font-size:24px;line-height:1.2;margin-bottom:16px;font-weight:400}
.wide .sub{text-transform:uppercase;font-size:12px;letter-spacing:.06em;opacity:.85;max-width:260px}
.wide p{font-size:15px;margin-bottom:18px}
.wide .btn{margin-top:8px}

/* numbers */
.nums{background:var(--olive);color:#fff}
.nums .sec-title{color:#fff}
.ngrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ngrid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px}
.ncard{background:rgba(255,255,255,.12);border-radius:var(--r);padding:36px;min-height:260px;position:relative;overflow:hidden}
.ncard .big{white-space:nowrap;font-size:clamp(30px,3.4vw,46px);text-transform:uppercase;line-height:1;margin-bottom:14px}
.ncard .big small{font-size:.45em;margin-right:8px}
.ncard .lbl{text-transform:uppercase;font-size:14px;letter-spacing:.04em;max-width:300px;line-height:1.35}
.ncard img{position:absolute;right:0;top:0;height:100%;width:46%;object-fit:cover;object-position:center top;border-radius:0 var(--r) var(--r) 0;opacity:.95}
.ncard.pic .lbl,.ncard.pic .big{max-width:50%}
.bars{position:absolute;left:36px;bottom:0;display:flex;gap:10px;align-items:flex-end}
.bars i{display:block;width:44px;background:rgba(255,255,255,.14);border-radius:6px 6px 0 0}
.ring{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center}
.ring svg{width:190px;height:190px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-90deg)}
.ring .big{font-size:40px;position:relative;z-index:1}
.ring .lbl{position:relative;z-index:1;font-size:12px;max-width:170px}
.nums .cta{display:flex;justify-content:center;margin-top:52px}

/* faq */
.faq{background:#fff}
.faq .list{max-width:860px;margin:0 auto}
.q{border-bottom:1px solid #dfe6eb}
.q button{width:100%;background:none;border:0;text-align:left;font:inherit;font-size:19px;padding:22px 40px 22px 0;cursor:pointer;position:relative;color:var(--text)}
.q button::after{content:"+";position:absolute;right:6px;top:18px;font-size:26px;color:var(--slate)}
.q.open button::after{content:"–"}
.q .a{display:none;padding:0 0 22px;color:var(--muted);font-size:15px;max-width:760px}
.q.open .a{display:block}

/* footer */
.ftr{background:var(--blue-light);color:var(--slate-dark);padding:80px 0 30px;overflow:hidden}
.fgrid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;font-size:14px}
.fgrid .k{text-transform:uppercase;font-size:11px;letter-spacing:.1em;opacity:.7;margin-bottom:6px}
.fgrid .ph{font-size:22px}
.fgrid a{color:inherit}
.legal{font-size:12px;opacity:.75;margin-top:36px;max-width:960px;line-height:1.5}
.wordmark{margin-top:40px;font-size:clamp(40px,10.5vw,160px);line-height:.9;letter-spacing:.04em;font-weight:300;color:var(--slate-dark);word-break:keep-all;overflow-wrap:normal}

/* modal */
.modal{position:fixed;inset:0;background:rgba(20,30,40,.7);display:none;align-items:center;justify-content:center;z-index:50;padding:20px}
.modal.on{display:flex}
.mbox{background:#fff;border-radius:var(--r);padding:44px 40px;width:min(480px,100%);position:relative;color:var(--text)}
.mbox h3{font-size:24px;text-transform:uppercase;margin-bottom:8px}
.mbox p{color:var(--muted);font-size:14px;margin-bottom:24px}
.mbox input{width:100%;height:54px;border:1px solid #cfd8de;border-radius:14px;padding:0 18px;font:inherit;font-size:15px;margin-bottom:12px}
.mbox label.ck{display:flex;gap:10px;font-size:12px;color:var(--muted);margin:6px 0 20px}
.mbox .btn{width:100%}
.mbox .x{position:absolute;right:18px;top:14px;background:none;border:0;font-size:28px;cursor:pointer;color:var(--muted)}
.mbox .ok{display:none;text-align:center;padding:20px 0}
.mbox .hint-c{font-size:12px;color:var(--muted);margin:-4px 0 14px}
.mbox input.invalid{border-color:#c0392b}
.field-err{background:#fdecea;color:#c0392b;border:1px solid #f3b4ac;border-radius:10px;font-size:12px;padding:8px 12px;margin:-6px 0 12px}

/* cookie */
.cookie{position:fixed;right:20px;bottom:20px;z-index:40;background:#fff;border-radius:var(--r-sm);box-shadow:0 10px 40px rgba(0,0,0,.2);padding:18px 20px;display:flex;gap:18px;align-items:center;max-width:520px;font-size:12px;color:var(--muted)}
.cookie .btn{height:36px;padding:0 20px;font-size:12px}

@media (max-width:980px){
  .nav,.hdr .phone,.hdr .btn.ghost{display:none}
  .burger{display:block}
  .hdr .wrap{gap:12px}
  .logo{font-size:18px;letter-spacing:.22em}
  .nav.open a{font-size:15px}
  .nav.open{display:flex;position:absolute;top:80px;left:0;right:0;flex-direction:column;background:rgba(61,86,106,.96);padding:24px;gap:18px}
  .grid2,.grid3,.ngrid,.ngrid3,.tiles{grid-template-columns:1fr}
  .wide{grid-template-columns:1fr}
  .row{grid-template-columns:1fr 1fr;gap:8px}
  .row.head{display:none}
  .row .t{grid-column:1/-1}
  .fgrid{grid-template-columns:1fr}
  .sec{padding:64px 0}
  .slider{height:80vh}
  .slide .txt{bottom:100px}
  .sidetab{writing-mode:horizontal-tb;transform:none;top:auto;bottom:0;left:0;right:0;border-radius:0;padding:14px;text-align:center;font-size:15px}
  .cookie{bottom:64px}
  .ncard.pic{min-height:420px}
  .ncard.pic img{top:auto;bottom:0;width:100%;height:55%;border-radius:0 0 var(--r) var(--r);object-position:center 30%}
  .ncard.pic .lbl,.ncard.pic .big{max-width:100%}
  .cookie{left:20px;max-width:none}
}
