:root{--onyx:#111;--champ:#C8B08A;--bone:#F4F0E8;--sand:#E3DACB;--smoke:#6B6B6B;--line:rgba(17,17,17,.14);--serif:'Bodoni Moda',Didot,serif;--sans:'Jost',system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bone);color:var(--onyx);font:300 17px/1.7 var(--sans)}
img{max-width:100%;display:block;height:auto}a{color:inherit}h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.08;margin:0 0 .5em}
.wrap{max-width:1280px;margin:0 auto;padding:0 32px}.narrow{max-width:900px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#000;color:#fff;padding:8px;z-index:99}
:focus-visible{outline:1px solid var(--champ);outline-offset:4px}
.eyebrow{font:500 12px var(--sans);letter-spacing:.32em;text-transform:uppercase;color:#8d7a58;margin:0 0 18px}.eyebrow.light{color:var(--champ)}
.btn-solid,.btn-line{display:inline-block;padding:15px 30px;font:500 13px var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:.3s;border:1px solid var(--onyx)}
.btn-solid{background:var(--onyx);color:var(--bone)}.btn-solid:hover{background:transparent;color:var(--onyx)}
.btn-line{background:transparent;color:var(--onyx)}.btn-line:hover{background:var(--onyx);color:var(--bone)}.btn-line.light{border-color:var(--champ);color:var(--bone)}.btn-line.light:hover{background:var(--champ);color:var(--onyx)}
.link{font:500 13px var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--champ);padding-bottom:4px}
/* header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:40;transition:background .4s,border-color .4s;border-bottom:1px solid transparent}
.hdr-in{max-width:1400px;margin:0 auto;padding:0 32px;height:88px;display:flex;align-items:center;justify-content:space-between}
.brand svg{height:42px;width:auto}.lg-l{display:none}
.nav{display:flex;align-items:center;gap:34px;font:400 13px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--bone)}
.nav>a,.mega-btn{text-decoration:none;color:inherit;background:none;border:0;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;padding:8px 0;position:relative}
.nav>a[aria-current]:after,.mega-btn[aria-current]:after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--champ)}
.nav .nav-cta{color:var(--bone);border-color:var(--champ);padding:11px 20px}
.home .hdr:not(.solid) .nav .nav-cta:hover{background:var(--champ);color:var(--onyx)}
.hdr.solid,body:not(.home) .hdr{background:rgba(244,240,232,.96);backdrop-filter:blur(10px);border-color:var(--line)}
.hdr.solid .nav,body:not(.home) .nav{color:var(--onyx)}.hdr.solid .lg-d,body:not(.home) .lg-d{display:none}.hdr.solid .lg-l,body:not(.home) .lg-l{display:inline}
.hdr.solid .nav-cta,body:not(.home) .nav-cta{color:var(--onyx);border-color:var(--onyx)}
.has-mega{position:static}
.mega{position:absolute;left:0;right:0;top:88px;background:var(--bone);color:var(--onyx);border-top:1px solid var(--line);border-bottom:1px solid var(--line);opacity:0;visibility:hidden;transform:translateY(-8px);transition:.3s;box-shadow:0 30px 40px -30px rgba(0,0,0,.3)}
.has-mega:hover .mega,.has-mega:focus-within .mega,.has-mega.open .mega{opacity:1;visibility:visible;transform:none}
.mega-in{max-width:1280px;margin:0 auto;padding:40px 32px;display:grid;grid-template-columns:1fr 1fr 1fr 1.3fr;gap:40px;text-transform:none;letter-spacing:0}
.mega h4{font:500 11px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#8d7a58;margin-bottom:16px}
.mega-in>div a{display:block;font:400 22px/1.2 var(--serif);text-decoration:none;padding:6px 0;color:var(--onyx)}.mega-in>div a:hover{color:#8d7a58;padding-left:6px;transition:.2s}
.mega-feat{text-decoration:none;display:block}.mega-feat img{aspect-ratio:16/10;object-fit:cover;width:100%;margin-bottom:12px}.mega-feat .eyebrow{margin:0 0 4px;font-size:10px}.mega-feat b{font:400 22px var(--serif);display:block}.mega-feat small{color:var(--smoke);font-size:14px}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer}.burger span{display:block;width:26px;height:1px;background:currentColor;margin:7px auto;transition:.3s}
.home .burger{color:var(--bone)}.hdr.solid .burger,body:not(.home) .burger{color:var(--onyx)}
/* hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;color:var(--bone);overflow:hidden}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);animation:kb 18s ease-out forwards}@keyframes kb{to{transform:scale(1)}}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.05) 35%,rgba(0,0,0,.6))}
.hero-in{position:relative;z-index:2;padding-bottom:120px;width:100%}
.hero h1{font-size:clamp(46px,7.5vw,112px);letter-spacing:-.02em;margin-bottom:44px}.hero h1 em{font-style:italic;color:#efe3cc}
.search{display:grid;grid-template-columns:repeat(3,1fr) auto;background:rgba(244,240,232,.95);color:var(--onyx);max-width:920px;backdrop-filter:blur(8px)}
.search label{display:grid;padding:16px 22px;border-right:1px solid var(--line)}.search span{font:500 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#8d7a58}
.search select{border:0;background:transparent;font:400 18px var(--serif);padding:4px 0;color:var(--onyx);cursor:pointer}
.search button{background:var(--onyx);color:var(--bone);border:0;padding:0 40px;font:500 12px var(--sans);letter-spacing:.24em;text-transform:uppercase;cursor:pointer}.search button:hover{background:#2a2a2a}
.scroll-cue{position:absolute;right:32px;bottom:40px;z-index:2;font:500 11px var(--sans);letter-spacing:.3em;text-transform:uppercase;text-decoration:none;writing-mode:vertical-rl}
/* sections */
.sec{padding:130px 0}.sec.tight{padding:70px 0}.sec-h{margin-bottom:56px}.sec-h.split{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}.sec h2,.page-h h1{font-size:clamp(36px,4.6vw,64px)}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}.cards-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{text-decoration:none;display:block;color:var(--onyx)}.card .ph{overflow:hidden;aspect-ratio:4/5;position:relative;background:var(--sand)}.cards-2 .card .ph{aspect-ratio:4/3}
.card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.card:hover img{transform:scale(1.06)}
.card .badge{position:absolute;top:16px;left:16px;background:var(--bone);font:500 10px var(--sans);letter-spacing:.24em;text-transform:uppercase;padding:7px 12px}
.card h3{font-size:28px;margin:20px 0 4px}.card .meta{display:flex;justify-content:space-between;gap:12px;font-size:15px;color:var(--smoke);border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
.card .loc{font:500 11px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#8d7a58}.card .pr{font:400 20px var(--serif);color:var(--onyx)}
.manifesto{background:var(--onyx);color:var(--bone)}.manifesto .eyebrow{color:var(--champ)}
.mani-grid{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:center}.mani-img img{aspect-ratio:4/5;object-fit:cover;width:100%}
.nums{display:flex;gap:44px;margin:40px 0 44px;flex-wrap:wrap}.nums b{display:block;font:400 40px var(--serif);color:var(--champ)}.nums span{font-size:13px;letter-spacing:.2em;text-transform:uppercase;opacity:.7}
.manifesto .btn-solid{background:var(--champ);color:var(--onyx);border-color:var(--champ)}.manifesto .btn-solid:hover{background:transparent;color:var(--champ)}
.zone-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:280px 280px;gap:16px}
.zone{position:relative;overflow:hidden;color:var(--bone);text-decoration:none}.zone img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}.zone:hover img{transform:scale(1.07)}
.zone:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(0,0,0,.65))}.zone span{position:absolute;left:24px;bottom:20px;z-index:2}.zone b{display:block;font:400 30px var(--serif)}.zone small{font-size:13px;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.z1{grid-row:span 2}.z4{grid-column:span 2}
.quote-sec{background:var(--sand);text-align:center}.quote-sec blockquote{margin:0}.quote-sec p{font:italic 400 clamp(24px,3vw,38px)/1.35 var(--serif)}.quote-sec footer{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--smoke)}.quote-sec small{text-transform:none;letter-spacing:0}
.cta-sec{background:var(--onyx);color:var(--bone);padding:90px 0}.cta-in{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}.cta-in h2{font-size:clamp(28px,3.4vw,46px);max-width:700px;margin:0}
.page-h{padding:180px 0 50px;border-bottom:1px solid var(--line)}.lead{font-size:20px;color:var(--smoke);max-width:640px}
/* listing */
.list-grid{display:grid;grid-template-columns:280px 1fr;gap:56px;align-items:start}
.filters{position:sticky;top:110px}.filters form{display:grid;gap:26px}
.filters label{display:grid;gap:8px;font:500 11px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#8d7a58}
.filters select,.filters input[type=number]{font:400 17px var(--serif);border:0;border-bottom:1px solid var(--onyx);background:transparent;padding:8px 0;color:var(--onyx);border-radius:0}
fieldset{border:0;margin:0;padding:0}legend{font:500 11px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#8d7a58;margin-bottom:10px}
.seg{display:flex;flex-wrap:wrap;gap:6px}.seg label{display:block;letter-spacing:0;text-transform:none;color:var(--onyx)}.seg input{position:absolute;opacity:0}.seg span{display:block;border:1px solid var(--line);padding:7px 14px;font:400 14px var(--sans);cursor:pointer;transition:.2s}
.seg input:checked+span{background:var(--onyx);color:var(--bone);border-color:var(--onyx)}.seg input:focus-visible+span{outline:1px solid var(--champ);outline-offset:2px}
output{font:400 16px var(--serif);color:var(--onyx);letter-spacing:0;text-transform:none}
input[type=range]{accent-color:var(--onyx);width:100%}
.reset{background:none;border:0;text-align:left;font:500 12px var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:underline;cursor:pointer;padding:0;color:var(--smoke)}
.list-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:16px}.list-bar p{margin:0;font:400 20px var(--serif)}.list-bar label{font-size:14px;color:var(--smoke)}.list-bar select{font:400 15px var(--sans);border:1px solid var(--line);background:transparent;padding:8px 10px;margin-left:6px}
.filters-toggle{display:none}
.empty{text-align:center;padding:60px 20px;border:1px solid var(--line)}
/* ficha */
.ficha-h{padding:140px 0 30px}.crumbs{font-size:13px;color:var(--smoke);margin-bottom:30px}.crumbs a{text-decoration:none}
.ficha-top{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}.ficha-top h1{font-size:clamp(40px,5.4vw,76px);margin:0 0 10px}
.f-price{text-align:right}.f-price span{display:block;font:500 11px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#8d7a58}.f-price b{font:400 38px var(--serif)}
.gallery{display:grid;grid-template-columns:1fr 160px;gap:14px}.g-main{aspect-ratio:16/9;overflow:hidden;background:var(--sand)}.g-main img{width:100%;height:100%;object-fit:cover;transition:opacity .35s}
.g-thumbs{display:grid;gap:14px;align-content:start;max-height:100%;overflow:auto}.g-thumbs button{padding:0;border:0;cursor:pointer;aspect-ratio:4/3;overflow:hidden;opacity:.55;transition:.25s;background:none}.g-thumbs button[aria-current="true"],.g-thumbs button:hover{opacity:1}.g-thumbs img{width:100%;height:100%;object-fit:cover}
.ficha-grid{display:grid;grid-template-columns:1fr 380px;gap:72px;align-items:start}
.specs{list-style:none;padding:0;margin:0 0 40px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.specs li{padding:22px 0;border-left:1px solid var(--line);padding-left:20px}.specs li:first-child{border-left:0;padding-left:0}.specs b{display:block;font:400 32px var(--serif)}.specs span{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--smoke)}
.h3{font-size:30px;margin-top:40px}.amen{columns:2;padding:0;list-style:none}.amen li{padding:8px 0;border-bottom:1px solid var(--line);break-inside:avoid}.amen li:before{content:"— ";color:var(--champ)}
.map{position:relative}.map svg{width:100%;height:260px;display:block}.map span{position:absolute;left:16px;bottom:14px;background:var(--bone);padding:6px 12px;font-size:13px}
.contact-card{position:sticky;top:110px;background:#fff;padding:34px;border:1px solid var(--line)}.contact-card .h3{margin-top:0;font-size:26px}
.cform{display:grid;gap:16px}.cform label{display:grid;gap:6px;font:500 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#8d7a58}
.cform input,.cform textarea,.cform select{font:300 16px var(--sans);border:0;border-bottom:1px solid #bdb5a6;background:transparent;padding:10px 0;color:var(--onyx);border-radius:0}.cform input:focus,.cform textarea:focus,.cform select:focus{outline:none;border-color:var(--onyx)}
.cform .chk{display:flex;gap:10px;align-items:center;text-transform:none;letter-spacing:0;font:300 15px var(--sans);color:var(--smoke)}.fmsg{margin:0;font-size:14px;color:#5a7a4f}
.agent{display:flex;gap:14px;align-items:center;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}.agent small{display:block;color:var(--smoke)}
.av{width:52px;height:52px;border-radius:50%;background:var(--sand);display:grid;place-items:center;font:400 18px var(--serif);flex:none}.av.lg{width:120px;height:120px;font-size:36px;margin-bottom:18px;background:linear-gradient(135deg,var(--sand),#fff)}
/* about / contact */
.values{background:var(--sand)}.val-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px}.val-grid span{font:italic 400 40px var(--serif);color:#8d7a58}.val-grid h3{font-size:26px;margin-top:14px}.val-grid p{color:var(--smoke)}
.process{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s}.process li{counter-increment:s;padding:30px 30px 30px 0;border-top:1px solid var(--onyx)}.process li:before{content:"0" counter(s);font:400 14px var(--serif);color:#8d7a58;display:block;margin-bottom:16px}.process b{font:400 26px var(--serif)}.process p{color:var(--smoke)}
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:36px}.team b{display:block;font:400 22px var(--serif)}.team small{color:var(--smoke);font-size:14px}
.contact-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:80px}.cform.big{gap:24px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.offices{display:grid;gap:30px;align-content:start}.offices h3{font-size:24px;margin:0 0 6px}.offices p{margin:0;color:var(--smoke)}.offices img{aspect-ratio:4/5;object-fit:cover;width:100%}
/* footer */
.ftr{background:var(--onyx);color:#bfb8aa;padding:90px 0 30px;font-size:15px}.ftr-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:44px;padding-bottom:60px}
.ftr svg{height:44px;width:auto;margin-bottom:14px}.ftr h4{color:var(--bone);font-size:20px;margin-bottom:16px}.ftr a{display:block;text-decoration:none;padding:3px 0}.ftr a:hover{color:var(--champ)}.ftr p a{display:inline}
.news{display:flex;border-bottom:1px solid var(--champ)}.news input{flex:1;background:none;border:0;color:var(--bone);font:300 16px var(--sans);padding:10px 0;min-width:0}.news input:focus{outline:none}.news button{background:none;border:0;color:var(--champ);font-size:22px;cursor:pointer}
.ftr-b{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);padding-top:24px;font-size:13px}.demo-note{margin:0;opacity:.6}
.rv{opacity:0;transform:translateY(30px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}.rv.in{opacity:1;transform:none}
@media (max-width:1080px){
 .mani-grid,.ficha-grid,.contact-grid{grid-template-columns:1fr;gap:48px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.val-grid,.process,.team{grid-template-columns:1fr 1fr}.ftr-grid{grid-template-columns:1fr 1fr}
 .list-grid{grid-template-columns:1fr}.filters{position:static;display:none;border:1px solid var(--line);padding:24px;background:#fff}.filters.open{display:block}.filters-toggle{display:inline-block;padding:10px 18px}
 .contact-card{position:static}
 .burger{display:block}.nav{position:fixed;inset:88px 0 0 0;background:var(--bone);color:var(--onyx)!important;flex-direction:column;align-items:flex-start;padding:30px 32px;gap:8px;overflow:auto;transform:translateX(100%);transition:transform .4s;font-size:15px}
 .nav.open{transform:none}.nav>a,.mega-btn{font:400 30px var(--serif);letter-spacing:0;text-transform:none;padding:6px 0}.nav .nav-cta{color:var(--onyx)!important;border-color:var(--onyx)!important;font:500 13px var(--sans);letter-spacing:.2em;text-transform:uppercase;margin-top:16px;padding:14px 22px}
 .mega{position:static;opacity:1;visibility:visible;transform:none;display:none;box-shadow:none;border:0;background:transparent}.has-mega.open .mega{display:block}.mega-in{grid-template-columns:1fr 1fr;padding:10px 0 20px;gap:20px}.mega-feat{display:none}.mega-in>div a{font-size:18px}
 .home .hdr.menu-open{background:var(--bone)}.hdr.menu-open .lg-d{display:none}.hdr.menu-open .lg-l{display:inline}.hdr.menu-open .burger{color:var(--onyx)}
}
@media (max-width:700px){.wrap,.hdr-in{padding:0 20px}.cards,.cards-2{grid-template-columns:minmax(0,1fr)}.search{grid-template-columns:1fr}.search label{border-right:0;border-bottom:1px solid var(--line)}.search button{padding:18px}
 .zone-grid{grid-template-columns:1fr;grid-template-rows:none}.zone{aspect-ratio:4/3}.z1,.z4{grid-row:auto;grid-column:auto}.gallery{grid-template-columns:1fr}.g-thumbs{grid-template-columns:repeat(5,1fr);overflow:visible}
 .specs{grid-template-columns:1fr 1fr}.specs li:nth-child(3){border-left:0;padding-left:0}.val-grid,.process,.team,.ftr-grid,.row2{grid-template-columns:1fr}.amen{columns:1}.sec{padding:80px 0}.hero-in{padding-bottom:80px}.brand svg{height:34px}.scroll-cue{display:none}.f-price{text-align:left}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}html{scroll-behavior:auto}}
