@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@1,400&family=Inter:wght@400;700&family=Noto+Sans:wght@300;400;600;700&family=Noto+Serif:wght@400&display=swap');
:root{--cream:#f9f4eb;--ink:#1b1b19;--muted:#77736b;--line:#d7d1c7;--button:#727268;--dark:#1b1d19;--header-h:118px;--gallery-label-h:42px}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--cream);color:var(--ink);font-family:'Noto Sans',Arial,sans-serif;overflow-x:hidden;max-width:100vw}img,video,svg{max-width:100%}
.header{height:var(--header-h);position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(249,244,235,.98);display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;padding:0 6.2vw}
.menuBtn{justify-self:start;width:42px;height:42px;border:0;background:transparent;display:grid;place-content:center;gap:5px;cursor:pointer}.menuBtn span{display:block;width:20px;height:2px;background:var(--ink)}
.brand{justify-self:center;text-align:center;text-decoration:none;color:var(--ink);transform:translateY(-4px)}.brandTitle{font:300 48px/1 'Noto Sans',sans-serif;letter-spacing:.035em;white-space:nowrap}.brandSub{margin-top:10px;font:700 12px/1 'Noto Sans',sans-serif;letter-spacing:.22em}
.reserve{justify-self:end;background:var(--button);color:#fff!important;text-decoration:none;padding:21px 38px;font:700 11px/1 'Noto Sans',sans-serif;letter-spacing:.09em}
.hero{height:100vh;height:100dvh;min-height:560px;background:#071f1d;overflow:hidden}.hero video{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.32)}
.section{padding:58px 6vw 58px}.pageTag{font:400 10px/1 'Noto Sans';letter-spacing:.32em;color:var(--muted);text-transform:uppercase;margin-bottom:30px}
.label{font:700 16px/1.2 'Noto Sans';letter-spacing:.14em;text-transform:uppercase;margin-bottom:25px}
.serif30{font:400 40px/1.22 'Noto Serif',serif;margin:0}.body14{font:400 18px/1.55 'Noto Sans';color:var(--muted)}
.introTop{display:grid;grid-template-columns:1fr 1.35fr;gap:9vw;align-items:start}.introTop .body14{margin:4px 0 0}
.accessTitle{margin-top:62px}.accessTitle .label{margin-bottom:20px}.accessGrid{margin-top:40px;display:grid;grid-template-columns:repeat(4,1fr);gap:35px}.accessGrid div{font:400 17px/1.45 'Inter',sans-serif}.accessGrid strong{font-weight:400;display:block}.divider{height:1px;background:var(--line);margin-top:58px}
.reservation .body14{max-width:920px}.section.reservation{padding-top:30px}.cta{display:inline-block;margin-top:30px;background:var(--button);color:#fff;text-decoration:none;padding:20px 44px;font:700 11px/1 'Noto Sans';letter-spacing:.13em}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;margin-top:26px}.cards img{width:100%;aspect-ratio:1.23/1;object-fit:cover;display:block}.cardTitle{font:700 15px/1.2 'Inter';letter-spacing:.22em;margin-top:19px}.cardCopy{font:italic 400 20px/1.25 'Cormorant Garamond',serif;margin-top:5px}
.detailsWrap{display:grid;grid-template-columns:1fr 1fr;gap:16vw}.detailsList{list-style:none;margin:26px 0 0;padding:0}.detailsList li{font:400 18px/1.25 'Noto Sans';padding:17px 0;border-bottom:1px solid var(--line)}
.story{background:var(--dark);color:var(--cream);padding-top:86px;padding-bottom:86px}.story .label{font-size:13px}.quote{border-left:4px solid var(--cream);padding-left:18px;font:400 22px/1.45 'Noto Serif',serif;max-width:1050px;margin:30px 0 25px}.quoteBy{font:400 13px/1 'Noto Sans';letter-spacing:.12em}.story .body14{color:var(--cream);max-width:1100px;margin-top:70px}
.gallery{position:relative;background:#111;padding:0 6.8vw}.gallery img{display:block;width:100%;height:550px;object-fit:cover}.arr{position:absolute;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#fff;font:300 72px/1 'Noto Sans';cursor:pointer}.prev{left:7.5vw}.next{right:7.5vw}.glabel{height:60px;display:flex;align-items:center;justify-content:center;background:var(--cream);font:400 9px/1 'Noto Sans';letter-spacing:.14em}
.privateBlock{max-width:1150px}.privateBlock .body14{max-width:1080px}.kitchen{margin-top:60px}
.summaryTop{display:grid;grid-template-columns:1.3fr 2fr;gap:7vw}.summaryCols{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.num{font:700 16px 'Noto Sans';color:var(--muted)}.sumTitle{font:400 16px 'Noto Serif';margin:25px 0}.sumCopy{font:400 16px/1.45 'Noto Sans';color:var(--muted)}.privateCape{margin-top:70px;max-width:1000px}
.footer{background:#111;color:#fff;padding:28px 6vw;display:flex;justify-content:space-between;font:400 10px/1.4 'Noto Sans';letter-spacing:.11em}
.menu{display:none;position:fixed;inset:0;background:var(--cream);z-index:100;padding:11vh 10vw}.menu.open{display:block}.menu a{display:block;color:var(--ink);text-decoration:none;font:400 34px/1.1 'Noto Serif';padding:13px 0;border-bottom:1px solid var(--line)}.close{position:absolute;right:4vw;top:3vh;border:0;background:transparent;font-size:38px}
.page{min-height:100vh;min-height:100dvh;width:100%;max-width:100vw;overflow-x:hidden}.experienceHero{height:400px;background-size:cover;background-position:center}.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;margin-top:42px}.cols3 article{border-top:1px solid var(--line);padding-top:32px}.cols3 h2{font:400 27px 'Noto Serif';margin:0 0 25px}.cols3 p{font:400 15px/1.5 'Noto Sans';color:var(--muted)}
.mapbox{height:430px;background:#d4d2cd;margin-top:55px;display:grid;place-items:center;text-align:center;font:400 27px 'Noto Serif';color:#666}
.form{max-width:1120px;margin:auto}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:26px 45px;margin:44px 0 20px}.formgrid label{font:700 16px/1.3 'Noto Sans'}.formgrid input,.formgrid select,.formgrid textarea{width:100%;border:0;border-bottom:1px solid var(--ink);background:transparent;padding:12px 0;font:400 16px 'Noto Sans'}.full{grid-column:1/-1}.consent{display:flex;align-items:center;gap:10px;font-weight:400!important}.consent input{width:auto}.submit{background:var(--button);color:#fff;border:0;padding:19px 36px;font:700 11px 'Noto Sans';letter-spacing:.12em}.status{min-height:38px}.back{display:inline-block;margin-top:20px;color:var(--muted);text-decoration:none;font:400 11px 'Noto Sans';letter-spacing:.13em}.rateGuide{margin-top:60px;display:grid;grid-template-columns:1fr 2fr;gap:60px}.rates{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.rates div{font:400 18px 'Noto Sans'}
.redirect{height:100vh;display:grid;place-items:center;text-align:center}.redirect a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);font:700 11px 'Noto Sans';letter-spacing:.13em}
@media(max-width:900px){.header{height:var(--header-h);padding:0 20px}.brandTitle{font-size:28px}.brandSub{font-size:8px;margin-top:8px}.reserve{padding:16px 18px}.hero{height:52vw;min-height:310px}.section{padding:44px 22px}.introTop,.detailsWrap,.summaryTop{grid-template-columns:1fr;gap:30px}.accessGrid{grid-template-columns:1fr 1fr}.cards,.cols3,.summaryCols,.rates{grid-template-columns:1fr}.cards{gap:35px}.gallery{padding:0}.gallery img{height:68vw;min-height:320px}.prev{left:15px}.next{right:15px}.formgrid,.rateGuide{grid-template-columns:1fr}.full{grid-column:auto}.footer{display:block;line-height:1.8}.menu a{font-size:28px}.page{min-height:calc(100vh - 92px)}}
/* Gallery v0.5: 40-photo approved slider */
.gallery{position:relative;background:#111;padding:0}
.galleryStage{width:100%;overflow:hidden;background:#111}
.galleryStage img{display:block;width:100%;height:100%;object-fit:cover}
.arr{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:84px;border:0;background:transparent!important;padding:0;cursor:pointer;z-index:5}
.arr svg{width:100%;height:100%;display:block;overflow:visible}
.arr path{fill:none;stroke:#fff;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 3px rgba(0,0,0,.55))}
.prev{left:22px}.next{right:22px}
.glabel{height:var(--gallery-label-h);background:#f9f4eb;display:flex;align-items:center;justify-content:center;font:400 9px/1 'Noto Sans',sans-serif;letter-spacing:.18em}
@media(max-width:820px){.galleryStage img{height:68vw;min-height:320px}.arr{width:38px;height:64px}.prev{left:10px}.next{right:10px}}

/* v1.0 canonical layout contract */
html{overflow-x:hidden}
body{padding-top:0!important;overflow-x:hidden;max-width:100vw}
.header{
  position:fixed!important;
  top:0;left:0;right:0;
  z-index:1000;
  height:var(--header-h)!important;
  width:100%;
  max-width:100vw;
  background:rgba(249,244,235,.98);
  backdrop-filter:saturate(120%) blur(2px);
}
.header .brand,.header .brandTitle,.header .title{
  font-family:'Noto Sans',Arial,sans-serif!important;
  font-weight:400!important;
  letter-spacing:.067em!important;
}
.header .location,.header .subbrand{
  font-family:'Noto Sans',Arial,sans-serif!important;
  font-weight:700!important;
  letter-spacing:.23em!important;
}
main{position:relative;z-index:1}
.hero{
  height:100vh!important;
  height:100dvh!important;
  min-height:560px!important;
  max-width:100vw;
  overflow:hidden;
}
.gallery{
  height:calc(100vh - 56px)!important;
  height:calc(100dvh - 56px)!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr) var(--gallery-label-h)!important;
  overflow:hidden!important;
  max-width:100vw;
}
.galleryStage{height:auto!important;min-height:0!important;overflow:hidden}
.galleryStage img{
  width:100%;
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:scale(1.06);
  display:block;
}
.glabel{height:var(--gallery-label-h)!important}
.page{min-height:100vh;min-height:100dvh;max-width:100vw;overflow-x:hidden}
.section,#gallery,.page{scroll-margin-top:var(--header-h)}
@media(max-width:900px){
  :root{--header-h:88px;--gallery-label-h:40px}
  .header{height:var(--header-h)!important}
  .hero{height:100vh!important;height:100dvh!important}.gallery{height:calc(100vh - 44px)!important;height:calc(100dvh - 44px)!important}
}

/* RECOVERY CANDIDATE v1 — normalized approved overrides */
:root{--button:#111111}
.reserve,.cta,.submit{background:#111!important;color:#fff!important}
.pageTag{display:none!important}

/* Header: fixed, compact dropdown menu, not fullscreen */
.menu{
  display:none;
  position:fixed!important;
  inset:auto auto auto 6vw!important;
  top:calc(var(--header-h) - 8px)!important;
  width:min(360px,88vw)!important;
  max-height:calc(100vh - var(--header-h) - 24px)!important;
  overflow:auto!important;
  background:rgba(249,244,235,.99)!important;
  z-index:1200!important;
  padding:22px 24px 24px!important;
  border:1px solid var(--line)!important;
  box-shadow:0 18px 50px rgba(0,0,0,.14)!important;
}
.menu.open{display:block!important}
.menu a{font:400 17px/1.2 'Noto Serif',serif!important;padding:11px 0!important}
.menu .close{position:static!important;float:right!important;font-size:28px!important;line-height:1!important;margin:-4px 0 8px 12px!important}

/* Story: only the approved House Elysian paragraph */
.story{background:#1b1d19!important;color:#f9f4eb!important;padding:86px 6vw!important}
.storyOnly{
  margin:0 auto;
  max-width:1080px;
  font:400 30px/1.45 'Noto Serif',serif;
  color:#f9f4eb;
}

/* Public location: live grayscale map, no exact address */
.locationMapWrap{margin-top:52px;width:100%;height:430px;overflow:hidden;background:#d4d2cd}
.locationMap{width:100%;height:100%;border:0;filter:grayscale(1) contrast(.92) brightness(1.03)}
.privacyCopy{font:400 14px/1.55 'Noto Sans';color:var(--muted);margin:18px 0 0}
.locationZones{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px;border-top:1px solid var(--line);padding-top:22px}
.locationZones span{font:400 13px/1.2 'Noto Sans';letter-spacing:.08em}

/* Getting Here: exact approved PPT image */
.gettingMaster{padding-top:var(--header-h);background:#111;min-height:100vh}
.gettingMaster img{display:block;width:100%;height:auto;min-height:calc(100vh - var(--header-h));object-fit:cover}

/* Request/modify top bars */
.bar{height:70px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d3cdc3;background:#f8f3ea;position:sticky;top:0;z-index:20}
.bar .brand{font-family:'Noto Serif',serif;letter-spacing:.14em;transform:none}
.qa{letter-spacing:.14em;color:#777;text-decoration:none;font-size:11px}

/* Modify approved compact layout */
main.form.page{padding-top:56px!important;min-height:calc(100vh - 70px)!important}
main.form.page .formgrid{margin-top:32px}
main.form.page .rateGuide{margin-top:45px}

@media(max-width:900px){
 .menu{left:16px!important;top:calc(var(--header-h) - 4px)!important}
 .storyOnly{font-size:24px}
 .locationZones{grid-template-columns:1fr 1fr}
 .gettingMaster img{min-height:auto}
}
