@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&family=Newsreader:ital,opsz,wght@1,6..72,400&display=swap');

:root { --forest:#3f4636; --sage:#818a70; --sand:#d9c7ad; --milk:#f3f0e9; --ink:#24261f; --stone:#cbc6ba; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:108px; }
body { margin:0; overflow-x:hidden; background:var(--milk); color:var(--ink); font-family:'DM Sans',sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
em { font-family:'Newsreader',serif; font-weight:400; }
header { height:108px; position:fixed; z-index:20; inset:0 0 auto; display:flex; align-items:center; justify-content:space-between; padding:10px 3vw; border-bottom:1px solid rgba(38,42,32,.15); background:var(--milk); }
.brand img { width:136px; height:92px; object-fit:contain; mix-blend-mode:normal; image-rendering:auto; }
nav { display:flex; gap:16px; font-size:10px; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.header-actions { display:flex; align-items:center; gap:10px; }
.lang-switch { display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:38px; border:1px solid rgba(38,42,32,.35); font-size:10px; font-weight:500; letter-spacing:.13em; transition:.25s; }
.lang-switch:hover { background:var(--forest); color:white; border-color:var(--forest); }
.contact-button,.primary,.secondary { display:inline-flex; justify-content:space-between; align-items:center; gap:28px; padding:14px 17px; border:1px solid currentColor; font-size:10px; text-transform:uppercase; letter-spacing:.13em; transition:.25s; }
.contact-button:hover,.secondary:hover { background:var(--forest); color:white; }
.hero { position:relative; min-height:100vh; display:grid; grid-template-columns:1.08fr .92fr; overflow:hidden; }
.hero-visual { position:relative; padding:25px 0 25px 25px; }
.hero-visual img { width:100%; height:100%; object-fit:cover; object-position:center; border-radius:0 0 180px 0; }
.hero-property-name { position:absolute; z-index:1; left:50%; top:245px; width:84%; transform:translateX(-50%); color:#faf8f3; font-size:clamp(42px,5vw,78px); line-height:.92; letter-spacing:-.035em; text-align:center; text-shadow:0 2px 22px rgba(20,25,16,.38); }
.hero-property-name em { font-style:italic; }
.hero-content { padding:170px 7vw 80px; display:flex; flex-direction:column; justify-content:center; }
.kicker,.section-label { color:var(--sage); font-weight:500; font-size:9px; letter-spacing:.22em; text-transform:uppercase; }
h1,h2 { margin:0; font-weight:300; line-height:.97; letter-spacing:-.045em; }
h1 { font-size:clamp(58px,6.2vw,100px); }
h2 { font-size:clamp(45px,5.5vw,82px); }
.hero-content>p:not(.kicker) { max-width:470px; margin:30px 0; line-height:1.8; color:#63665a; }
.actions { display:flex; gap:12px; }
.primary { background:var(--forest); color:white; border-color:var(--forest); }
.primary:hover { background:var(--sage); }
.intro { padding:140px 7vw; display:grid; grid-template-columns:.85fr 1.15fr; gap:7vw; align-items:center; }
.intro-copy h2 { margin:20px 0 32px; }
.intro-copy>p:last-child { line-height:1.9; color:#66695e; max-width:600px; }
.intro-exterior { width:100%; height:620px; object-fit:cover; border-radius:160px 0 0 0; }
.residences { padding:130px 7vw; background:#e2ddd2; }
.residence-heading { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:70px; }
.residence-heading>div { max-width:720px; }
.residence-heading>div>p { max-width:640px; margin:28px 0 24px; color:#65665f; line-height:1.8; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #aca89d; }
.cards article { min-height:580px; padding:0 30px 28px; border-right:1px solid #aca89d; display:flex; flex-direction:column; overflow:hidden; }
.cards article:first-child { border-left:1px solid #aca89d; }
.card-photo { width:calc(100% + 60px); height:220px; margin:0 -30px 24px; object-fit:cover; }
.cards article>span,.type { font-size:9px; letter-spacing:.16em; color:#777b6c; }
.cards h3 { margin:35px 0 15px; font-family:'Newsreader',serif; font-style:italic; font-size:52px; font-weight:400; }
.cards article>p:not(.type) { line-height:1.75; color:#65665f; }
.cards article>a { margin-top:auto; padding-top:20px; border-top:1px solid #aaa69b; display:flex; justify-content:space-between; font-size:10px; text-transform:uppercase; letter-spacing:.13em; }
.featured { background:var(--forest); color:white; transform:translateY(-24px); }
.featured p,.featured .type { color:#d6d6cc!important; }
.room-showcases { background:#f3f0e9; }
.room-showcase { display:grid; grid-template-columns:.82fr 1.18fr; min-height:880px; scroll-margin-top:30px; }
.room-showcase.reverse { grid-template-columns:1.18fr .82fr; background:#e2ddd2; }
.room-showcase.reverse .room-copy { order:2; }
.room-showcase.reverse .room-gallery { order:1; }
.room-copy { padding:10vw 6vw; display:flex; flex-direction:column; justify-content:center; }
.room-copy h2 { margin:18px 0 30px; font-size:clamp(44px,5vw,76px); }
.room-copy>p:not(.section-label) { color:#66695e; line-height:1.85; max-width:580px; }
.room-facts { list-style:none; padding:0; margin:35px 0; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid #b8b3a8; }
.room-facts li { padding:13px 8px 13px 0; border-bottom:1px solid #b8b3a8; font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.room-gallery { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1.15fr .85fr .85fr; gap:5px; min-height:880px; }
.room-gallery img { width:100%; height:100%; min-height:0; object-fit:cover; }
.room-gallery .wide { grid-column:1/-1; }
.spaces { padding:150px 7vw; }
.spaces-heading { display:grid; grid-template-columns:.55fr 1.25fr .7fr; gap:55px; align-items:end; margin-bottom:70px; }
.spaces-heading>p:last-child { color:#66695e; line-height:1.85; }
.spaces-gallery { display:grid; grid-template-columns:1.45fr .72fr .72fr; gap:18px; align-items:stretch; }
.spaces-gallery figure { margin:0; overflow:hidden; min-height:560px; }
.spaces-gallery img { width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.spaces-gallery figure:hover img { transform:scale(1.025); }
.gallery-main img { object-position:center; }
.gallery-tall img { object-position:center; }
.rest { display:grid; grid-template-columns:1fr 1fr; min-height:820px; }
.rest-photo { position:relative; }
.rest-photo img { width:100%; height:100%; object-fit:cover; }
.soft-caption { position:absolute; left:28px; bottom:25px; color:white; font-size:10px; letter-spacing:.18em; }
.rest-copy { padding:11vw 7vw; display:flex; flex-direction:column; justify-content:center; }
.rest-copy h2 { font-size:clamp(40px,4.4vw,68px); }
.rest-copy>p:not(.section-label) { margin:30px 0; line-height:1.85; color:#66695e; }
.rest-copy ul { list-style:none; padding:0; margin:0; border-top:1px solid #bbb7ab; }
.rest-copy li { padding:13px 0; border-bottom:1px solid #bbb7ab; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.comfort-title { margin:0 0 14px; font-size:12px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; }
.details { display:grid; grid-template-columns:.8fr 1.2fr; background:#e2ddd2; }
.detail-copy { padding:10vw 7vw; display:flex; flex-direction:column; justify-content:center; }
.detail-copy h2 { margin-top:18px; font-size:clamp(42px,4.7vw,72px); }
.detail-copy>p:last-child { margin-top:30px; line-height:1.9; color:#66695e; max-width:480px; }
.detail-images { display:grid; grid-template-columns:.72fr 1.28fr; min-height:720px; }
.detail-images img { width:100%; height:100%; object-fit:cover; }
.morning { background:var(--sand); display:grid; grid-template-columns:.82fr 1.18fr; align-items:stretch; }
.morning>div { padding:130px 7vw; display:flex; flex-direction:column; justify-content:center; }
.morning h2 { margin:15px 0 28px; }
.morning div>p:last-child { line-height:1.9; max-width:500px; }
.morning>img { width:100%; height:100%; min-height:650px; object-fit:cover; }
.policies { padding:140px 7vw; background:#e2ddd2; }
.policy-heading { display:grid; grid-template-columns:.55fr 1.45fr; align-items:start; gap:50px; margin-bottom:70px; }
.policy-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:2px solid #aaa69b; border-left:2px solid #aaa69b; }
.policy-grid article { min-height:184px; padding:20px 24px; border-right:2px solid #aaa69b; border-bottom:2px solid #aaa69b; }
.policy-grid span { color:var(--sage); font-family:'Newsreader',serif; font-style:italic; font-size:27px; }
.policy-grid h3 { margin:30px 0 12px; font-size:13px; letter-spacing:.12em; text-transform:uppercase; }
.policy-grid p { color:#66695e; line-height:1.7; font-size:13px; }
.area { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.area-copy { padding:12vw 7vw; }
.area-copy>p:not(.section-label) { margin:30px 0; line-height:1.85; color:#66695e; }
.area>img { width:100%; height:100%; object-fit:cover; filter:saturate(.6) sepia(.15); }
.area>img.area-map { object-fit:contain; filter:none; background:#fff; }
.place-list { display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid #b6b2a8; }
.place-tip { position:relative; padding:14px 8px 14px 0; border-bottom:1px solid #b6b2a8; cursor:help; }
.place-tip>strong { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.place-tip:focus-visible { outline:2px solid var(--sage); outline-offset:3px; }
.place-bubble { position:absolute; z-index:12; left:0; bottom:calc(100% + 10px); width:min(310px,80vw); padding:16px 18px; border:1px solid rgba(92,84,73,.16); border-radius:10px; background:#cec5b8; color:#36352f; box-shadow:0 12px 30px rgba(74,67,58,.14); font-size:12px; font-weight:400; line-height:1.65; letter-spacing:0; text-transform:none; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .2s ease,transform .2s ease,visibility .2s ease; pointer-events:none; }
.place-tip:hover .place-bubble,.place-tip:focus-visible .place-bubble { opacity:1; visibility:visible; transform:translateY(0); }
.area-cta { margin-top:28px; }
.nearby { padding:115px 7vw 135px; background:#e2ddd2; }
.nearby-heading { display:grid; grid-template-columns:.45fr 1.55fr; gap:50px; margin-bottom:60px; }
.nearby-heading h2 { font-size:clamp(40px,4.8vw,70px); }
.nearby-intro { max-width:720px; margin:26px 0 0; color:#66695e; line-height:1.8; }
.nearby-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #aaa69b; border-left:1px solid #aaa69b; }
.nearby-grid article { min-height:118px; padding:16px 18px; border-right:1px solid #aaa69b; border-bottom:1px solid #aaa69b; }
.nearby-grid h3 { margin:0 0 9px; font-size:13.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.nearby-grid p { margin:0; color:#66695e; font-size:13.5px; line-height:1.5; }
.cross-brand { text-align:center; color:white; padding:150px 20px; background:linear-gradient(rgba(47,53,39,.91),rgba(47,53,39,.91)),url('assets/shared-place.jpg') center/cover fixed; }
.light { color:#c9d0bb; }
.cross-brand>p:not(.section-label) { max-width:620px; margin:28px auto; line-height:1.85; color:#d5d8cf; }
.light-button { margin-top:18px; }
.cross-actions { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; }
.light-button:hover { background:white; color:var(--forest); }
.disabled-button { cursor:default; pointer-events:none; user-select:none; }
.contact { padding:140px 7vw; text-align:center; }
.contact>p:not(.section-label) { margin:25px 0 50px; color:#66695e; }
.contact-grid { max-width:1050px; margin:auto; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #aaa79d; border-bottom:1px solid #aaa79d; }
.contact-grid a { padding:28px 20px; border-right:1px solid #aaa79d; display:flex; flex-direction:column; gap:10px; font-size:15px; }
.contact-grid a:last-child { border:0; }
.contact-grid small { color:#777b6c; font-size:8px; letter-spacing:.17em; }
.booking-bottom { margin-top:40px; }
footer { background:#24281f; color:#c8cbbc; padding:55px 6vw; display:flex; justify-content:space-between; align-items:center; font-size:11px; }
footer img { width:112px; filter:invert(1); mix-blend-mode:screen; }
/* Individual residence pages */
.room-page { background:var(--milk); }
.room-page header { position:fixed; color:var(--ink); border-color:rgba(38,42,32,.15); }
.room-page header .brand img { filter:none; mix-blend-mode:normal; }
.room-page .contact-button:hover { background:white; color:var(--forest); }
.room-detail-hero { min-height:90vh; position:relative; display:flex; align-items:flex-end; padding:160px 7vw 75px; color:white; background-position:center; background-size:cover; }
.room-detail-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,22,17,.2),rgba(20,22,17,.72)); }
.room-detail-hero-copy { position:relative; z-index:1; max-width:850px; }
.room-detail-hero h1 { margin:14px 0 24px; }
.room-detail-hero p:not(.section-label) { max-width:680px; line-height:1.8; }
.room-meta { display:flex; gap:35px; margin-top:28px; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.room-detail-intro { padding:120px 7vw; display:grid; grid-template-columns:1.05fr .95fr; gap:8vw; }
.room-detail-intro h2 { margin:18px 0 28px; font-size:clamp(42px,5vw,72px); }
.room-detail-intro p { line-height:1.9; color:#66695e; }
.room-detail-facts { list-style:none; padding:0; margin:0; border-top:1px solid #b8b3a8; }
.room-detail-facts li { padding:18px 0; border-bottom:1px solid #b8b3a8; display:flex; justify-content:space-between; gap:20px; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.room-detail-facts strong { font-weight:500; }
.room-detail-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; background:#e2ddd2; }
.room-detail-gallery img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.room-detail-gallery img:first-child { grid-column:1/-1; aspect-ratio:16/9; }
.room-detail-gallery .gallery-image-contained { grid-column:1/-1; aspect-ratio:3/2; object-fit:contain; background:#d7d0c5; }
.room-detail-gallery .gallery-image-half { grid-column:auto; }
.room-detail-cta { padding:115px 7vw; text-align:center; }
.room-detail-cta h2 { margin-bottom:35px; }
.room-detail-cta .actions { justify-content:center; }
@media(max-width:820px){
  html{scroll-padding-top:84px}header{height:84px;padding:6px 18px}.brand img{width:104px;height:72px}nav{display:none}.contact-button{padding:11px 12px}.header-actions{gap:7px}.lang-switch{min-width:34px;height:34px}
  .hero{grid-template-columns:1fr}.hero-visual{padding:0;height:56vh}.hero-visual img{border-radius:0 0 80px 0}.hero-property-name{left:50%;top:195px;width:calc(100% - 44px);font-size:clamp(38px,11vw,58px)}.hero-content{padding:70px 22px 90px}
  .intro{grid-template-columns:1fr;padding:90px 22px;gap:45px}.intro-exterior{height:480px;border-radius:80px 0 0 0}.cards{grid-template-columns:1fr}.residences{padding:90px 22px}.residence-heading{display:block}.residence-heading h2{margin-top:20px}.cards article{border-left:1px solid #aca89d;min-height:520px}.featured{transform:none}.cards h3{margin-top:35px}
  .room-showcase,.room-showcase.reverse{grid-template-columns:1fr}.room-showcase.reverse .room-copy,.room-showcase.reverse .room-gallery{order:initial}.room-copy{padding:90px 22px}.room-gallery{min-height:700px}.room-facts{grid-template-columns:1fr}.room-copy .actions{flex-wrap:wrap}
  .spaces{padding:90px 22px}.spaces-heading{grid-template-columns:1fr;gap:25px}.spaces-gallery{grid-template-columns:1fr 1fr}.spaces-gallery figure{min-height:380px}.gallery-main{grid-column:1/-1}.details,.morning{grid-template-columns:1fr}.detail-copy,.morning>div{padding:90px 22px}.detail-images{min-height:520px}.morning>img{min-height:420px}
  .rest,.area{grid-template-columns:1fr}.rest-photo{height:520px}.rest-copy,.area-copy{padding:90px 22px}.area>img{height:520px}.policies{padding:90px 22px}.policy-heading{grid-template-columns:1fr;gap:25px}.policy-grid{grid-template-columns:1fr}.nearby{padding:85px 22px}.nearby-heading{grid-template-columns:1fr;gap:25px}.nearby-grid{grid-template-columns:1fr}.cross-brand,.contact{padding:100px 22px}
  .contact-grid{grid-template-columns:1fr}.contact-grid a{border-right:0;border-bottom:1px solid #aaa79d}.contact-grid a:last-child{border-bottom:0}footer{flex-direction:column;gap:25px;text-align:center}
  .room-detail-hero{min-height:80vh;padding:130px 22px 55px}.room-meta{flex-wrap:wrap;gap:12px 22px}.room-detail-intro{grid-template-columns:1fr;padding:85px 22px}.room-detail-gallery{grid-template-columns:1fr}.room-detail-gallery img:first-child,.room-detail-gallery .gallery-image-contained{grid-column:auto;aspect-ratio:3/2}.room-detail-cta{padding:90px 22px}.room-detail-cta .actions{flex-direction:column}
}

@media (hover:none){.place-tip.is-open .place-bubble{opacity:1;visibility:visible;transform:translateY(0)}}

@media(max-width:820px){
  .brand,.header-actions{flex-shrink:0}
  .actions{flex-wrap:wrap}
  .place-list{grid-template-columns:1fr}
  .room-page .contact-button{max-width:112px;white-space:normal;line-height:1.2;text-align:center;gap:7px}
  .room-detail-hero h1{font-size:clamp(42px,14vw,58px);overflow-wrap:anywhere}
  .room-detail-facts li{align-items:flex-start}
  .room-detail-facts strong{text-align:right}
}
@media(max-width:370px){
  header{padding-left:12px;padding-right:12px}
  .brand img{width:92px}
  .room-page .contact-button{max-width:98px;padding:9px 7px;font-size:8px}
}
