@font-face{font-family:Forum;src:url(forum-latin-400-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Hanken;src:url(hanken-grotesk-latin-300-normal.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:Hanken;src:url(hanken-grotesk-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Hanken;src:url(hanken-grotesk-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --ink:#26211c;
  --graphite:#4a433a;
  --steel:#6a6155;
  --paper:#f8f3e9;
  --sand:#ece2d0;
  --deep:#dccdb4;
  --line:#d6c9b3;
  --gut:clamp(20px,4vw,64px);
  --display:Forum,Georgia,serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:300 clamp(16px,1.1vw,18px)/1.65 Hanken,system-ui,sans-serif}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,ul,ol,figure{margin:0;padding:0}
ul,ol{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}
[hidden]{display:none!important}

html[lang=es] .en,html[lang=en] .es{display:none!important}

.skip{position:absolute;left:-999px;background:var(--paper);color:var(--ink);padding:8px 12px;z-index:50}
.skip:focus{left:8px;top:8px}
.wrap{padding-inline:var(--gut);max-width:1560px;margin-inline:auto}

/* Header */
.top{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px var(--gut);color:var(--ink);background:var(--paper)}
.brand{font:400 22px/1 var(--display);text-decoration:none;white-space:nowrap}
nav{display:flex;align-items:center;gap:clamp(14px,1.8vw,30px);font-size:14.5px;font-weight:400}
nav a{text-decoration:none;padding:6px 0;border-bottom:1px solid transparent;white-space:nowrap}
nav a:hover,nav a[aria-current=page]{border-color:currentColor}
.lang{display:flex;gap:10px;margin-left:8px;padding-left:16px;border-left:1px solid var(--line)}
.lang button{opacity:.6;font-size:13.5px}
.lang button[aria-pressed=true]{opacity:1;text-decoration:underline;text-underline-offset:4px}
.menu-btn{display:none;font-size:15px;font-weight:400}

/* Hero */
.hero{position:relative;background:var(--paper);color:var(--ink);height:calc(100svh - 72px);min-height:600px;overflow:hidden}
.hero-img{position:absolute;top:0;right:0;width:53%;height:100%;object-fit:cover;object-position:52% 22%;animation:reveal 1.3s cubic-bezier(.2,.7,.2,1) both}
.hero-intro{position:absolute;z-index:2;left:var(--gut);top:clamp(32px,8vh,90px);width:min(36%,470px)}
.hero-intro p{font-size:clamp(18px,1.5vw,23px);line-height:1.5;margin-bottom:30px}
.hero-name{position:absolute;z-index:2;left:var(--gut);bottom:clamp(16px,3vh,36px);font:400 clamp(72px,11.6vw,205px)/.9 var(--display);letter-spacing:-.01em}
.hero-name span{display:block}
@keyframes reveal{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}
@media (prefers-reduced-motion:reduce){.hero-img{animation:none}}

/* Buttons and links */
.btn{display:inline-block;border:1px solid currentColor;padding:13px 24px;font-weight:400;font-size:15px;text-decoration:none;transition:background .2s,color .2s}
.btn:hover{background:var(--ink);color:var(--paper)}
.contact-body .btn{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.contact-body .btn:hover{background:var(--graphite)}
.link{text-underline-offset:5px;font-weight:400}

/* Statement */
.statement{padding-block:clamp(72px,11vw,170px)}
.big{font:400 clamp(32px,4.4vw,72px)/1.12 var(--display);max-width:21em}
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,64px);margin-top:clamp(56px,7vw,110px);border-top:1px solid var(--ink);padding-top:26px}
.services h2{font:400 28px/1.2 var(--display);margin-bottom:10px}
.services p{color:var(--graphite);max-width:34ch}

.bleed img{width:100%;height:min(88vh,920px);object-fit:cover;object-position:50% 45%}
.bleed.short img{height:min(70vh,720px);object-position:50% 40%}

.cities{display:grid;grid-template-columns:repeat(3,1fr);padding-block:0}
.cities a{padding:clamp(30px,4vw,56px) clamp(18px,3vw,44px) clamp(36px,4vw,60px) 0;text-decoration:none}
.cities a+a{padding-left:clamp(18px,3vw,44px);border-left:1px solid var(--line)}
.cities h2{font:400 clamp(38px,4.6vw,76px)/1.05 var(--display);margin-bottom:8px}
.cities a:hover h2{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}
.cities p{color:var(--steel)}

/* Sections */
.block{padding-block:clamp(64px,8vw,120px)}
.block-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap}
.title{font:400 clamp(32px,3.8vw,60px)/1.1 var(--display)}
.sample-note{color:var(--steel);font-size:15px;margin:10px 0 36px}

.grid-props{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(36px,4vw,64px) clamp(20px,2.4vw,36px)}
.card{display:block;width:100%;text-align:left}
.grid-props>.card:nth-child(4n+1),.grid-props>.card:nth-child(4n){grid-column:span 2}
.card .ph{display:block;position:relative;overflow:hidden;height:clamp(280px,32vw,500px);background:var(--sand)}
.card .ph img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .6s ease}
.card:hover .ph img{transform:scale(1.03)}
.card .badge{position:absolute;left:0;top:0;background:var(--paper);color:var(--ink);font-size:13px;font-weight:400;padding:5px 11px;z-index:1}
.tile{display:grid;place-items:center;width:100%;height:100%;min-height:280px;position:absolute;inset:0;background:var(--deep);color:var(--graphite);font:400 clamp(44px,5vw,84px)/1 var(--display)}
.card h3{font:400 25px/1.2 var(--display);margin-top:14px}
.card .where{color:var(--steel);font-size:15px}
.card .price{font-weight:400;margin-top:2px}

.dark{background:var(--sand);color:var(--ink)}
.split{display:grid;grid-template-columns:1fr 1fr;align-items:center}
.split img{width:100%;height:min(92vh,860px);object-fit:cover;object-position:50% 40%}
.split>div{padding:clamp(40px,7vw,120px)}
.split p{margin:20px 0 30px;color:var(--graphite);max-width:42ch}

/* Page head */
.page-head{padding-block:clamp(56px,8vw,120px) clamp(24px,3vw,44px)}
.page-head h1{font:400 clamp(50px,9vw,150px)/1 var(--display)}
.lead{font-size:clamp(20px,1.8vw,27px);line-height:1.45;max-width:36em;margin-top:18px}

.about{display:grid;grid-template-columns:7fr 5fr;gap:clamp(28px,5vw,88px);padding-bottom:clamp(64px,8vw,120px);align-items:end}
.about img{width:100%}
.about .lead{margin:0 0 22px;font:400 clamp(26px,2.5vw,38px)/1.22 var(--display)}
.about p+p{margin-bottom:16px;color:var(--graphite)}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,64px);padding-block:clamp(56px,7vw,100px)}
.values h2{font:400 34px/1.15 var(--display);margin-bottom:10px}
.values p{color:var(--graphite);max-width:34ch}

/* Investments */
.compare{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,36px);padding-block:clamp(24px,3vw,44px) clamp(64px,8vw,110px)}
.compare img,.compare .tile{position:static;aspect-ratio:4/5;width:100%;height:auto;object-fit:cover}
.compare .tile{min-height:0}
.compare h2{font:400 30px/1.2 var(--display);margin-top:16px}
.fig{font:400 clamp(36px,3.6vw,56px)/1.1 var(--display);margin:12px 0 8px}
.compare p:last-child{color:var(--graphite);max-width:38ch}
.steps-wrap{padding-block:clamp(56px,7vw,100px)}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,48px);margin-top:44px}
.steps li{counter-increment:s;border-top:1px solid var(--ink);padding-top:16px}
.steps li::before{content:counter(s);font:400 22px/1 var(--display);color:var(--steel)}
.steps h3{font:400 28px/1.2 var(--display);margin:10px 0 6px}
.steps p{color:var(--graphite)}
.fine{padding-block:26px 40px;font-size:14px;color:var(--steel)}
.fine p{max-width:76ch}

/* Guides */
.guides-layout{display:grid;grid-template-columns:4fr 8fr;gap:clamp(28px,5vw,88px);padding-block:clamp(16px,2vw,28px) clamp(64px,8vw,110px);align-items:start}
.guides-layout img{width:100%;height:auto;position:sticky;top:24px}
.guides details{border-top:1px solid var(--ink)}
.guides details:last-child{border-bottom:1px solid var(--ink)}
.guides summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:18px;padding:22px 0;font:400 clamp(25px,2.5vw,38px)/1.18 var(--display)}
.guides summary::-webkit-details-marker{display:none}
.guides summary::after{content:"+";flex:none;font-family:Hanken,sans-serif;font-weight:300}
.guides details[open] summary::after{content:"−"}
.guides ul{padding-bottom:26px;max-width:62ch}
.guides li{padding:7px 0;color:var(--graphite)}

/* Contact */
.contact{display:grid;grid-template-columns:5fr 7fr}
.contact>img{width:100%;height:100%;min-height:100%;object-fit:cover;object-position:50% 40%}
.contact-body{padding:clamp(40px,6vw,96px) var(--gut)}
.contact-body h1{font:400 clamp(40px,5vw,84px)/1.05 var(--display);max-width:12em;margin-bottom:14px}
form{display:grid;gap:18px;max-width:560px;margin-top:32px}
form label{display:grid;gap:4px;font-size:15px;font-weight:400}
input,select,textarea{font:inherit;font-weight:300;font-size:16px;width:100%;padding:10px 0;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:none;color:inherit}
input:focus,select:focus,textarea:focus{outline:0;border-bottom-width:2px}
.check{display:flex!important;align-items:flex-start;gap:10px;font-weight:300!important}
.check input{width:auto;margin-top:5px}
.status{color:var(--graphite);font-size:15px}

/* Footer */
.foot{background:var(--deep);color:var(--ink);padding-block:clamp(44px,5vw,72px)}
.foot-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.foot-name{font:400 34px/1.1 var(--display)}
.fine-foot{color:var(--graphite);font-size:14px;max-width:58ch}

/* Dialog */
dialog{border:0;padding:0;width:min(1040px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;background:var(--paper);color:var(--ink)}
dialog::backdrop{background:rgba(38,33,28,.55)}
.close{position:absolute;right:0;top:0;z-index:3;background:var(--paper);color:var(--ink);width:46px;height:46px;font-size:26px;line-height:1}
.detail{display:grid;grid-template-columns:1fr 1fr}
.detail .ph{position:relative;min-height:440px;background:var(--deep)}
.detail .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.detail .tx{padding:clamp(24px,3.4vw,44px)}
.detail h2{font:400 clamp(30px,3vw,42px)/1.12 var(--display)}
.detail .price{font-weight:400;font-size:20px;margin:10px 0 18px}
.detail dl{display:grid;grid-template-columns:auto 1fr;gap:6px 22px;margin:20px 0 24px;font-size:15px}
.detail dt{color:var(--steel)}
.detail dd{margin:0;font-weight:400}
.detail .btn{color:var(--paper);background:var(--ink);border-color:var(--ink)}

/* Responsive */
@media (max-width:1180px){
  .menu-btn{display:block}
  nav{display:none;position:fixed;inset:0;z-index:30;background:var(--paper);color:var(--ink);flex-direction:column;align-items:flex-start;justify-content:center;gap:14px;padding:70px var(--gut) 40px;font:400 34px/1.2 var(--display)}
  nav.open{display:flex}
  .menu-btn{position:relative;z-index:31}
  .lang{margin:18px 0 0;padding:0;border:0;font-family:Hanken,sans-serif}
  .lang button{font-size:16px}
  body.menu-open{overflow:hidden}
  .brand{position:relative;z-index:31}
}
@media (max-width:820px){
  .hero{height:auto;min-height:0;display:flex;flex-direction:column}
  .hero-img{position:relative;order:0;width:100%;height:112vw;max-height:78svh;object-position:50% 12%}
  .hero-name{position:relative;order:1;left:0;bottom:0;padding:22px var(--gut) 0;font-size:21.5vw}
    .hero-intro{position:relative;order:2;left:0;top:0;width:auto;padding:24px var(--gut) 40px}
  .services,.values,.compare,.split,.about,.guides-layout,.contact,.detail{grid-template-columns:1fr}
  .cities{grid-template-columns:1fr}
  .cities a,.cities a+a{padding:24px 0;border-left:0;border-top:1px solid var(--line)}
  .steps{grid-template-columns:1fr 1fr}
  .grid-props{grid-template-columns:1fr}
  .grid-props>.card:nth-child(4n+1),.grid-props>.card:nth-child(4n){grid-column:auto}
  .card .ph{height:auto;aspect-ratio:4/3}
  .tile{min-height:0}
  .bleed img{height:62vw}
  .split img{height:auto;aspect-ratio:4/5}
  .guides-layout img{position:static;max-height:60vw;object-fit:cover}
  .contact>img{height:80vw;min-height:0}
  .detail .ph{min-height:0;aspect-ratio:4/3}
}
.filters{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:34px;border-bottom:1px solid var(--line);padding-bottom:10px}
.filters button{font-weight:400;padding:4px 0;color:var(--steel)}
.filters button[aria-pressed=true]{color:var(--ink);text-decoration:underline;text-underline-offset:6px}
[data-view=propiedades]{padding-bottom:clamp(64px,8vw,110px)}
