:root{
  --bg:#fbfaf7; --paper:#ffffff; --ink:#23262e; --muted:#62666f; --line:#e5e2db;
  --shade:#f1efe9; --dark:#1f2a24; --wa:#1f7a4d;
  --serif:"Newsreader", Georgia, "Times New Roman", serif;
  --sans:"Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:64px}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
[hidden]{display:none !important}
a{color:inherit}
html[data-lang="en"] [data-l="es"], html[data-lang="es"] [data-l="en"]{display:none !important}

.wrap{max-width:1120px;margin:0 auto;padding-inline:20px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1;text-wrap:balance;margin:0}
h2{font-size:clamp(30px,4vw,42px);margin-bottom:12px}
h3{font-size:26px}
.sect-lede{max-width:62ch;color:var(--muted);margin:0 0 28px}

/* header */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;padding:12px 20px;
  background:rgba(251,250,247,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.brand{font-family:var(--serif);font-size:22px;text-decoration:none;margin-right:auto}
.top nav{display:flex;gap:20px;font-size:14.5px}
.top nav a{text-decoration:none;color:var(--muted)}
.top nav a:hover{color:var(--ink)}
.lang{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.lang button{font:600 12px var(--sans);letter-spacing:.06em;padding:6px 9px;border:0;background:transparent;color:var(--muted);cursor:pointer}
.lang button[aria-pressed="true"]{background:var(--ink);color:#fff}
@media (max-width:720px){.top nav{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:8px;background:var(--wa);color:#fff;
  font:600 15px var(--sans);text-decoration:none;border:1px solid var(--wa)}
.btn:hover{filter:brightness(1.08)}
.btn-light{background:rgba(255,255,255,.92);color:var(--ink);border-color:rgba(255,255,255,.92)}
.btn-ghost{background:transparent;color:var(--wa);border-color:var(--wa);padding:9px 14px;font-size:14px}
.btn-ghost:hover{background:var(--wa);color:#fff}
.ico{width:18px;height:18px;flex:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--wa);outline-offset:3px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* hero */
.hero{position:relative;min-height:min(78vh,720px);display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 20%,rgba(10,14,12,.55) 55%,rgba(10,14,12,.8) 100%)}
.hero-text{position:relative;z-index:1;max-width:1120px;width:100%;margin:0 auto;padding:0 20px 44px}
.eyebrow{font:600 12.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;opacity:.9}
.hero h1{font-size:clamp(52px,9vw,104px);letter-spacing:-.01em}
.lede{font-size:clamp(17px,2vw,20px);max-width:44ch;margin:10px 0 22px}

/* intro */
.intro{padding-block:56px 40px;display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:start}
.intro>p{font-family:var(--serif);font-size:clamp(19px,2.1vw,23px);line-height:1.5;margin:0}
.keyfacts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.keyfacts li{background:var(--paper);padding:16px;display:flex;flex-direction:column;gap:2px;color:var(--muted);font-size:14px}
.keyfacts b{font-family:var(--serif);font-weight:500;font-size:30px;color:var(--ink);line-height:1}
@media (max-width:820px){.intro{grid-template-columns:1fr;gap:28px}}

/* stay */
.stay{padding-block:40px 24px;border-top:1px solid var(--line)}
.stay>.wrap:first-child{padding-top:24px}
.cut-wrap{overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px}
.cutaway{width:100%;min-width:560px;height:auto;display:block}
.cutaway .mtn{fill:none;stroke:#bdb6a8;stroke-width:1.3}
.cutaway .sun{fill:none;stroke:#df8a3b;stroke-width:1.6}
.cutaway .sun-rays line{stroke:#df8a3b;stroke-width:1.4}
.cutaway .ground{stroke:var(--ink);stroke-width:2}
.cutaway .lbl{font:italic 12px var(--serif);fill:var(--muted);text-anchor:middle}
.cutaway .slab{fill:none;stroke:var(--ink);stroke-width:1.5}
.cutaway .cu-box{fill:var(--u);fill-opacity:.15;stroke:var(--ink);stroke-width:1.5;transition:fill-opacity .15s}
.cutaway .cu:hover .cu-box,.cutaway .cu:focus .cu-box{fill-opacity:.32}
.cutaway .cu{cursor:pointer;outline:none}
.cutaway .cu-name{font-family:var(--serif);font-weight:500;fill:var(--ink);text-anchor:middle}
.cutaway .cu-sub{font:11px var(--sans);fill:var(--muted);text-anchor:middle}
.cutaway .cs-box{fill:#8a8a8a;fill-opacity:.07;stroke:#9a978f;stroke-width:1.2;stroke-dasharray:5 4}
.cutaway .cs-name{font:13px var(--serif);fill:var(--ink);text-anchor:middle}
.cutaway .perg line{stroke:#7a5a3a;stroke-width:2}
.cutaway .stairs{fill:#7a5a3a;fill-opacity:.14;stroke:#7a5a3a;stroke-width:1.4;stroke-linejoin:round}
.cutaway .patio{fill:#5F7A2E;fill-opacity:.14;stroke:#5F7A2E;stroke-dasharray:3 3}
.cutaway .win{fill:var(--paper);stroke:var(--ink);stroke-width:1.3}
.cut-hint{display:none;font-size:13px;color:var(--muted);margin:0 0 8px}
@media (max-width:600px){.cut-hint{display:block}}
.cut-key{font-size:13.5px;color:var(--muted);margin:10px 0 0}

.floor{padding-top:48px}
.floor-h{font:600 12.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.floor-note{max-width:70ch;color:var(--muted);margin:0 0 20px}

.unit{display:grid;align-content:start;grid-template-columns:1.15fr 1fr;gap:32px;align-items:start;scroll-margin-top:72px}
.unit h3{font-size:34px}
.u-desc{color:var(--u);font-weight:600;font-size:14.5px;margin:6px 0 16px}
.u-body>p{margin:14px 0 18px;max-width:60ch}
.facts{margin:0;display:grid;gap:0;border-top:1px solid var(--line)}
.facts>div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.facts dt{color:var(--muted)} .facts dd{margin:0}
@media (max-width:820px){.unit{grid-template-columns:1fr;gap:18px}}

.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.trio .unit{grid-template-columns:1fr;gap:16px}
.trio .unit h3{font-size:28px}
@media (max-width:980px){.trio{grid-template-columns:1fr;gap:44px}.trio .unit{grid-template-columns:1.15fr 1fr;gap:32px}}
@media (max-width:820px){.trio .unit{grid-template-columns:1fr;gap:18px}}

/* gallery */
.gallery{display:grid;gap:6px}
.gallery img{width:100%;cursor:zoom-in;border-radius:6px;background:var(--shade)}
.g-main{aspect-ratio:3/2;object-fit:cover}
.g-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;position:relative}
.g-thumb{aspect-ratio:3/2;object-fit:cover}
.g-more{position:absolute;right:6px;bottom:6px;background:rgba(20,20,20,.72);color:#fff;font:600 12px var(--sans);padding:3px 7px;border-radius:4px;pointer-events:none}

.whole{margin-top:56px;background:var(--dark);color:#eef1ec;border-radius:14px;padding:28px 32px;display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.whole h3{font-size:30px;margin-bottom:6px}
.whole p{margin:0;max-width:60ch;color:#cfd6cf}

/* house */
.house{padding-block:64px 24px}
.spaces{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.space{margin:0}
.space img{aspect-ratio:4/3;object-fit:cover;border-radius:6px;cursor:zoom-in;width:100%;background:var(--shade)}
.space figcaption{font-size:14.5px;color:var(--muted);margin-top:10px}
.space figcaption b{display:block;color:var(--ink);font-family:var(--serif);font-weight:500;font-size:19px;margin-bottom:2px}
@media (max-width:900px){.spaces{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.spaces{grid-template-columns:1fr}}

.art{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;margin-top:72px}
.art figure{margin:0}
.art img{border-radius:6px;cursor:zoom-in;width:100%}
.art p{max-width:58ch}
.art-small{max-width:260px;margin-top:18px !important}
@media (max-width:820px){.art{grid-template-columns:1fr;gap:24px}}

/* orgiva */
.orgiva{background:var(--shade);padding-block:64px;margin-top:48px}
.two{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:start}
.two p{max-width:60ch}
.dist{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:4px 18px}
.dist>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line);font-size:15px}
.dist>div:first-child{border-top:0}
.dist dt{color:var(--ink)} .dist dd{margin:0;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
@media (max-width:820px){.two{grid-template-columns:1fr;gap:24px}}

/* book */
.book{padding-block:64px}
.steps{margin:0 0 28px;padding:0;list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:900px}
.steps li{counter-increment:s;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:16px 18px 18px;font-size:15px}
.steps li::before{content:counter(s);display:block;font:500 28px var(--serif);color:var(--wa);margin-bottom:4px}
@media (max-width:720px){.steps{grid-template-columns:1fr}}
.num{color:var(--muted);font-size:15px}
.num b{color:var(--ink);font-variant-numeric:tabular-nums;user-select:all}
.rules{margin-top:48px;max-width:760px}
.rules h3{font-size:24px;margin-bottom:10px}
.rules ul{margin:0;padding-left:20px;color:var(--muted)}
.rules li{margin:6px 0}

.foot{border-top:1px solid var(--line);padding-block:24px 36px;font-size:14px;color:var(--muted)}
.foot p{margin:4px 0}

/* lightbox */
.lb{position:fixed;inset:0;z-index:50;background:rgba(12,12,12,.94);display:flex;align-items:center;justify-content:center}
.lb img{max-width:92vw;max-height:84vh;object-fit:contain}
.lb button{position:absolute;background:none;border:0;color:#fff;font:300 44px/1 var(--sans);cursor:pointer;padding:12px 16px}
.lb-x{top:calc(8px + env(safe-area-inset-top,0px));right:8px}
.lb-p{left:4px;top:50%;transform:translateY(-50%)}
.lb-n{right:4px;top:50%;transform:translateY(-50%)}
.lb-c{position:absolute;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:0;right:0;text-align:center;color:#cfcfcf;font-size:13px;margin:0}
