/* ===== THE RESERVE, Showcase (big-image bands + expanding gallery) ===== */
:root{
  --ink:#2b1f15; --ink-soft:#67503c; --paper:#f5f1e9; --paper-2:#ece2d3; --line:#e0d5c6;
  --graphite:#241a11; --white:#fffdf9;
  --serif:'EB Garamond','Cormorant Garamond',Georgia,serif; --sans:'Helvetica Neue','Arimo',Helvetica,Arial,sans-serif;
  --mx:7vw; --ease:cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--paper);line-height:1.8;font-size:16.5px;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.sec{padding:clamp(5rem,12vh,10rem) var(--mx)}

.eyebrow{font-family:var(--sans);text-transform:uppercase;letter-spacing:.4em;font-size:.68rem;color:var(--ink-soft);display:block;margin-bottom:1.5rem}
.eyebrow--l{color:rgba(255,253,249,.82)}
.display{font-family:var(--serif);font-weight:500;font-size:clamp(2.4rem,5vw,4.4rem);line-height:1.03;letter-spacing:-.02em;max-width:18ch}
.display--l{color:var(--white)}
.head{margin-bottom:clamp(2.6rem,6vh,4.5rem)}
.head--pad{padding:0 var(--mx)}
.btn{display:inline-block;font-family:var(--sans);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;padding:1.1rem 2.5rem;background:var(--ink);color:var(--paper);border:1px solid var(--ink);cursor:pointer;transition:.4s var(--ease)}
.btn:hover{background:transparent;color:var(--ink)}.btn.full{width:100%}
.link{font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:.35rem;transition:.3s;display:inline-block}
.link--l{color:var(--white);border-color:rgba(255,253,249,.6)}.link--l:hover{opacity:.7}
.ph{margin-top:1.4rem;font-size:.7rem;color:#8a7f6b;border-left:2px solid rgba(138,127,107,.5);padding-left:.7rem}

/* header */
.hd{position:fixed;top:0;left:0;width:100%;z-index:100;background:var(--paper);box-shadow:0 1px 0 var(--line);transition:background .5s var(--ease),box-shadow .5s var(--ease),padding .5s var(--ease)}
.hd__in{display:flex;align-items:center;justify-content:space-between;padding:1.9rem var(--mx);transition:padding .5s var(--ease)}
.hd__brand{font-family:var(--sans);font-weight:500;font-size:.9rem;letter-spacing:.4em;color:var(--ink);transition:color .5s}
.hd__nav{display:flex;align-items:center;gap:2.1rem}
.hd__nav a{font-size:.73rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink);opacity:.82;transition:.3s}
.hd__nav a:hover{opacity:1;color:var(--brass)}
.hd__cta{border:1px solid var(--ink);padding:.58rem 1.2rem}
.hd__cta:hover{background:var(--ink);color:var(--paper)!important}
.hd.solid{background:var(--paper);box-shadow:0 1px 0 var(--line)}
.hd.solid .hd__in{padding:1rem var(--mx)}
.hd.solid .hd__brand,.hd.solid .hd__nav a{color:var(--ink)}
.hd.solid .hd__cta{border-color:var(--ink)}
.hd.solid .hd__cta:hover{background:var(--ink);color:var(--paper)!important}
.hd__burger{display:none;flex-direction:column;gap:6px;background:none;border:0;cursor:pointer;padding:6px;z-index:110}
.hd__burger span{width:26px;height:1.5px;background:var(--ink);transition:.3s}
.hd.solid .hd__burger span{background:var(--ink)}

/* hero */
.hero{position:relative;height:100vh;min-height:620px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 var(--mx);overflow:hidden}
.hero__img{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.05);animation:kb 16s var(--ease) forwards;will-change:transform}
@keyframes kb{to{transform:scale(1)}}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,15,10,.4),rgba(18,15,10,.08) 34%,rgba(18,15,10,.5))}
.hero__in{position:relative;color:var(--white)}
.hero__title{font-family:var(--serif);font-weight:500;font-size:clamp(3.6rem,10vw,8.5rem);line-height:.96;letter-spacing:-.01em;margin:.3rem 0}
.hero__tag{font-family:var(--serif);font-style:italic;font-size:clamp(1.2rem,2.2vw,1.7rem);color:rgba(255,253,249,.92);margin-top:1rem}
.hero__scroll{position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);color:rgba(255,253,249,.85);font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;writing-mode:vertical-rl}

/* intro */
.intro{max-width:1100px}
.intro .display{margin-bottom:1.8rem}
.intro__p{font-size:1.1rem;color:var(--ink-soft);max-width:52ch}

/* RESIDENCES, full-bleed big image bands */
.band{position:relative;height:92vh;min-height:600px;overflow:hidden;display:flex;align-items:flex-end}
.band__img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 1.4s var(--ease)}
.band:hover .band__img{transform:scale(1.05)}
.band__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,12,8,.78),rgba(16,12,8,.35) 45%,transparent 70%)}
.band--right{align-items:flex-end;justify-content:flex-end;text-align:right}
.band--right .band__scrim{background:linear-gradient(270deg,rgba(16,12,8,.78),rgba(16,12,8,.35) 45%,transparent 70%)}
.band__t{position:relative;color:var(--white);padding:0 var(--mx) clamp(3rem,8vh,6rem);max-width:640px}
.band__n{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,253,249,.8);display:block;margin-bottom:1rem}
.band__t h3{font-family:var(--serif);font-weight:500;font-size:clamp(2.6rem,6vw,5rem);line-height:1;margin-bottom:.8rem}
.band__t p{color:rgba(255,253,249,.9);font-size:1.05rem;margin-bottom:1.6rem;max-width:42ch;margin-left:0}
.band--right .band__t{margin-left:auto}.band--right .band__t p{margin-left:auto}

/* explorer */
.plans{background:var(--paper-2)}
.explorer{background:#fff;border:1px solid var(--line);box-shadow:0 32px 70px -46px rgba(20,20,25,.4)}
.explorer__tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.ptab{flex:1;min-width:52px;background:transparent;border:0;padding:1.3rem .5rem;font-family:var(--serif);font-size:1.4rem;color:var(--ink-soft);cursor:pointer;transition:.3s;position:relative}
.ptab::after{content:"";position:absolute;left:50%;bottom:0;width:0;height:2px;background:var(--ink);transform:translateX(-50%);transition:width .35s var(--ease)}
.ptab:hover{color:var(--ink)}.ptab.is-active{color:var(--ink)}.ptab.is-active::after{width:60%}
.explorer__body{display:grid;grid-template-columns:1.55fr 1fr}
.explorer__plan{background:var(--paper);display:flex;align-items:center;justify-content:center;padding:3rem;border-right:1px solid var(--line)}
.explorer__plan img{width:100%;max-height:540px;object-fit:contain;mix-blend-mode:multiply}
.explorer__info{padding:3rem 2.8rem;display:flex;flex-direction:column}
.explorer__type{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft)}
.explorer__name{font-family:var(--serif);font-weight:500;font-size:2.3rem;margin:.4rem 0 1.6rem}
.explorer__stats{list-style:none;border-top:1px solid var(--line)}
.explorer__stats li{display:flex;justify-content:space-between;align-items:center;padding:.92rem 0;border-bottom:1px solid var(--line)}
.explorer__stats span{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.explorer__stats b{font-family:var(--serif);font-weight:500;font-size:1.35rem}
.explorer__rooms{font-size:.9rem;color:var(--ink-soft);margin:1.4rem 0 1.9rem;line-height:1.75}
.explorer__info .btn{align-self:flex-start}

/* ===== LIFE, EXPANDING GALLERY ===== */
.life{background:var(--graphite);padding:clamp(5rem,12vh,9rem) 0}
.life .head{padding:0 var(--mx)}
.expo{display:flex;gap:6px;height:74vh;min-height:460px;padding:0 var(--mx)}
.expo__panel{position:relative;flex:1;overflow:hidden;cursor:pointer;transition:flex .7s var(--ease);min-width:44px}
.expo__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.expo__panel::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(12,10,7,.82));transition:opacity .5s}
.expo__panel:hover,.expo__panel:focus,.expo__panel.is-open{flex:6}
.expo__panel:hover .expo__img,.expo__panel.is-open .expo__img{transform:scale(1.04)}
.expo__label{position:absolute;left:0;bottom:0;padding:1.6rem 1.8rem;color:var(--white);font-family:var(--serif);font-size:1.5rem;white-space:nowrap;display:flex;align-items:baseline;gap:1rem;opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease) .1s,transform .5s var(--ease) .1s}
.expo__label span{font-family:var(--sans);font-size:.66rem;letter-spacing:.2em;color:rgba(255,253,249,.7)}
.expo__panel:hover .expo__label,.expo__panel:focus .expo__label,.expo__panel.is-open .expo__label{opacity:1;transform:none}
.amore{margin-top:2.6rem;padding:0 var(--mx);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,253,249,.7);text-align:center}

/* interiors feature full-bleed */
.feat{position:relative;height:96vh;min-height:560px;display:flex;align-items:center;overflow:hidden}
.feat__img{position:absolute;inset:0;background-size:cover;background-position:center}
.feat__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,12,8,.72),rgba(16,12,8,.28) 55%,transparent)}
.feat__t{position:relative;padding:0 var(--mx);max-width:600px}
.feat__t p{color:rgba(255,253,249,.88);margin-top:1.3rem;max-width:40ch}

/* loc / dev / enquire */
.loc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5.5rem);align-items:center}
.loc--rev .dev__img{order:-1}
.loc__lead{font-size:1.08rem;color:var(--ink-soft);margin:1.4rem 0 0;max-width:44ch}
.loc__list{list-style:none;margin:1.8rem 0 0}
.loc__list li{padding:.85rem 0;border-bottom:1px solid var(--line);font-size:1rem;color:var(--ink-soft)}
.loc__list strong{color:var(--ink);font-family:var(--serif);font-size:1.2rem;font-weight:500;margin-right:.5rem}
.loc__map{height:520px;overflow:hidden;box-shadow:0 32px 70px -44px rgba(20,20,25,.4)}
.loc__map iframe{width:100%;height:100%;border:0;filter:grayscale(1) contrast(.96) brightness(1.02);transition:filter .6s}
.loc__map:hover iframe{filter:grayscale(.25)}
.dev{background:var(--paper-2)}
.dev__img img{width:100%;height:600px;object-fit:cover;box-shadow:0 32px 70px -44px rgba(20,20,25,.42)}
.dev__list{list-style:none;margin:1.6rem 0}
.dev__list li{padding:.8rem 0;border-bottom:1px solid var(--line);font-size:.98rem;color:var(--ink-soft)}.dev__list strong{color:var(--ink)}
.enq__c{list-style:none;margin-top:2rem}
.enq__c li{padding:.78rem 0;border-bottom:1px solid var(--line);font-size:.98rem}
.enq__c span{display:inline-block;min-width:108px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.1em;font-size:.66rem}
.enq__c a:hover{opacity:.6}
.enq__form{background:#fff;padding:3rem;border:1px solid var(--line)}
.fld{margin-bottom:1.2rem}
.fld label{display:block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.5rem}
.fld label i{font-style:normal;text-transform:none;letter-spacing:0}
.fld input,.fld select,.fld textarea{width:100%;padding:.95rem 1rem;border:1px solid var(--line);background:var(--paper);font-family:var(--sans);font-size:.95rem;color:var(--ink);transition:border-color .3s}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--ink)}
.fld.bad input,.fld.bad select{border-color:#b5462f;background:#fbf2ef}
.note{margin-top:1rem;font-size:.9rem;text-align:center;min-height:1.2em}.note.ok{color:#3c7a3a}.note.err{color:#b5462f}

.ft{background:var(--graphite);color:var(--paper);padding:4.5rem var(--mx) 2.6rem}
.ft__in{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1.5rem}
.ft__mark{font-family:var(--sans);font-weight:500;font-size:1.1rem;letter-spacing:.4em}
.ft__tag{font-family:var(--serif);font-style:italic;color:rgba(245,241,233,.65);margin-top:.7rem;font-size:1.1rem}
.ft__base{font-size:.76rem;color:rgba(245,241,233,.5);max-width:40ch;text-align:right}

.dock{position:fixed;right:1.6rem;bottom:1.6rem;z-index:90;background:var(--ink);color:var(--paper);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:1rem 1.8rem;box-shadow:0 16px 40px -16px rgba(0,0,0,.5);opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.dock.show{opacity:1;transform:none;pointer-events:auto}.dock:hover{opacity:.85}
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}.reveal.in{opacity:1;transform:none}

@media(max-width:900px){
  .band{height:78vh}.band__t{max-width:none}
  .expo{flex-direction:column;height:auto}
  .expo__panel{flex:none;height:240px}
  .expo__panel.is-open,.expo__panel:hover{flex:none}
  .expo__label{opacity:1;transform:none}
}
@media(max-width:820px){.explorer__body{grid-template-columns:1fr}.explorer__plan{border-right:0;border-bottom:1px solid var(--line);padding:2rem}.explorer__plan img{max-height:400px}}
@media(max-width:760px){
  :root{--mx:6vw}
  .hd__nav{position:fixed;inset:0 0 0 auto;width:82%;max-width:330px;height:100vh;background:var(--graphite);flex-direction:column;justify-content:center;align-items:flex-start;padding:0 2.4rem;gap:1.7rem;transform:translateX(100%);transition:transform .5s var(--ease)}
  .hd__nav.open{transform:none}.hd__nav a{color:var(--paper);font-size:1.05rem}
  .hd__burger{display:flex}
  .loc,.loc--rev{grid-template-columns:1fr;gap:2.5rem}.loc--rev .dev__img{order:0}
  .band__t p{max-width:none}
  .ft__in{flex-direction:column;align-items:flex-start}.ft__base{text-align:left}
}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important}.hero__img{animation:none}.expo__panel{transition:none}}

/* ================= MASTHEAD HERO, split: type + CTA | full-height render ================= */
:root{ --brass:#b1974a; }
.mast{ position:relative; min-height:100vh; display:grid; grid-template-columns:1.02fr .98fr; background:var(--paper); }
.mast__left{ display:flex; flex-direction:column; justify-content:center; padding:clamp(7rem,14vh,10rem) clamp(2rem,5vw,5.5rem) clamp(3rem,7vh,5rem); }
.mast__eye{ font-size:.66rem; letter-spacing:.32em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:1.4rem; }
.mast__title{ font-family:var(--serif); font-weight:500; font-size:clamp(3.6rem,8.5vw,8.5rem); line-height:.86; letter-spacing:-.03em; color:var(--ink); }
.mast__tag{ font-family:var(--serif); font-style:italic; font-size:clamp(1.3rem,2vw,1.9rem); color:var(--ink-soft); margin-top:1rem; }
.mast__tag em{ color:var(--brass); }
.mast__intro{ font-size:1.02rem; color:var(--ink-soft); max-width:42ch; margin-top:1.6rem; }
.mast__btn{ align-self:flex-start; margin-top:2rem; display:inline-block; font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--paper); background:var(--ink); border:1px solid var(--ink); padding:1.05rem 2.6rem; transition:.4s var(--ease); }
.mast__btn:hover{ background:transparent; color:var(--ink); }
.mast__facts{ list-style:none; display:flex; flex-wrap:wrap; gap:1.4rem 2.4rem; margin-top:2.4rem; padding-top:1.6rem; border-top:1px solid var(--line); }
.mast__facts li{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.mast__facts b{ font-family:var(--serif); font-weight:500; font-size:1.15rem; letter-spacing:0; text-transform:none; color:var(--ink); margin-right:.3rem; }
.mast__media{ position:relative; overflow:hidden; }
.mast__media img{ width:100%; height:100%; object-fit:cover; transform:scale(1.06); animation:kb 18s var(--ease) forwards; }
.mast__cue{ position:absolute; left:calc(51% - 22px); bottom:1.8rem; z-index:3; width:24px; height:40px; border:1px solid rgba(255,253,249,.55); border-radius:14px; }
.mast__cue span{ position:absolute; top:8px; left:50%; width:3px; height:7px; background:#fff; border-radius:2px; transform:translateX(-50%); animation:cue 1.7s infinite; }
@keyframes cue{0%{opacity:0;top:8px}50%{opacity:1}100%{opacity:0;top:22px}}
@media(max-width:820px){
  .mast{ grid-template-columns:1fr; min-height:auto; }
  .mast__media{ height:56vh; order:-1; }
  .mast__left{ padding:2.6rem var(--mx) 3rem; }
  .mast__cue{ display:none; }
}
@media(max-width:820px){ .mast__grid{ grid-template-columns:1fr; gap:2rem; align-items:start } .mast__aside{ border-left:0; border-top:1px solid var(--line); padding:1.6rem 0 0; max-width:none } .mast__band{ height:38vh } }

/* ================= CONTRAST FIXES ================= */
/* expanding-gallery labels: always crisp white with a real backing */
.expo__panel::after{ background:linear-gradient(transparent 40%, rgba(10,8,5,.9)); }
.expo__label{ color:#fff; text-shadow:0 1px 16px rgba(0,0,0,.75); z-index:2; }
.expo__label span{ color:rgba(255,253,249,.85); }
/* residence band text: stronger scrim so copy never washes out */
.band__scrim{ background:linear-gradient(90deg, rgba(14,10,6,.85), rgba(14,10,6,.4) 48%, rgba(14,10,6,.05) 74%) !important; }
.band--right .band__scrim{ background:linear-gradient(270deg, rgba(14,10,6,.85), rgba(14,10,6,.4) 48%, rgba(14,10,6,.05) 74%) !important; }
.band__t p{ color:#fff !important; }
/* feature + amore + nav-on-dark safety */
.feat__t p{ color:#fff !important; }

/* ================= LOCATION, connectivity index (no map) ================= */
.loc2{ background:var(--paper); }
.loc2__head{ max-width:900px; margin-bottom:clamp(3rem,7vh,5rem); }
.loc2__coord{ font-size:1.05rem; color:var(--ink-soft); margin-top:1.4rem; max-width:56ch; }
.loc2__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); }
.loc2__item{ display:flex; align-items:baseline; gap:1.1rem; padding:2.2rem 1.6rem 2.2rem 0; border-bottom:1px solid var(--line); border-right:1px solid var(--line); }
.loc2__item:last-child{ border-right:0; }
.loc2__min{ font-family:var(--serif); font-weight:500; font-size:clamp(3rem,5vw,4.6rem); line-height:.8; color:var(--ink); }
.loc2__min::after{ content:"′"; font-size:.4em; color:var(--brass); vertical-align:super; margin-left:.1em; }
.loc2__d b{ display:block; font-family:var(--serif); font-weight:500; font-size:1.35rem; color:var(--ink); }
.loc2__d span{ font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); }
.loc2__note{ margin-top:2rem; font-size:.8rem; letter-spacing:.06em; color:var(--ink-soft); }
.loc2__link{ text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:.2rem; margin-left:.6rem; }
.loc2__link:hover{ color:var(--brass); border-color:var(--brass); }
@media(max-width:900px){ .loc2__grid{ grid-template-columns:1fr 1fr } .loc2__item:nth-child(2){ border-right:0 } }
@media(max-width:560px){ .loc2__grid{ grid-template-columns:1fr } .loc2__item{ border-right:0 } }

/* ================= HEADER, minimal bar + full-screen overlay menu ================= */
.hd__right{ display:flex; align-items:center; gap:1.8rem; }
.hd__enq{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:.25rem; transition:.3s; }
.hd__enq:hover{ color:var(--brass); border-color:var(--brass); }
.hd__menu{ display:inline-flex; align-items:center; gap:.6rem; background:none; border:0; cursor:pointer; font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); padding:.4rem 0; }
.hd__menu i{ display:block; width:20px; height:1.4px; background:var(--ink); }
.hd__menu i+i{ margin-left:-20px; margin-top:6px; }        /* stack the two lines into a 2-bar icon */
.hd__menu{ position:relative; padding-left:30px; }
.hd__menu i{ position:absolute; left:0; }
.hd__menu i:first-child{ top:calc(50% - 3px); }
.hd__menu i:last-child{ top:calc(50% + 3px); margin:0; }

/* overlay */
.menu{ position:fixed; inset:0; z-index:200; background:var(--graphite); color:var(--paper); display:flex; flex-direction:column; justify-content:center; padding:clamp(4rem,10vh,8rem) var(--mx); opacity:0; visibility:hidden; transform:translateY(-12px); transition:opacity .55s var(--ease), transform .55s var(--ease), visibility .55s; }
.menu.open{ opacity:1; visibility:visible; transform:none; }
.menu__close{ position:absolute; top:1.7rem; right:var(--mx); width:34px; height:34px; background:none; border:0; cursor:pointer; }
.menu__close span{ position:absolute; left:4px; top:16px; width:26px; height:1.4px; background:var(--paper); }
.menu__close span:first-child{ transform:rotate(45deg); } .menu__close span:last-child{ transform:rotate(-45deg); }
.menu__nav{ display:flex; flex-direction:column; gap:clamp(.4rem,1.4vh,1rem); }
.menu__nav a{ font-family:var(--serif); font-weight:500; font-size:clamp(2.2rem,6vw,4.6rem); line-height:1.06; color:var(--paper); letter-spacing:-.01em; display:flex; align-items:baseline; gap:1.2rem; transition:color .3s, padding-left .4s var(--ease); }
.menu__nav a i{ font-family:var(--sans); font-style:normal; font-size:.7rem; letter-spacing:.2em; color:var(--brass); opacity:.8; }
.menu__nav a:hover{ color:var(--brass); padding-left:.8rem; }
.menu__sub{ display:flex; flex-direction:column; gap:.25rem; margin:.35rem 0 .55rem 2.6rem; }
.menu__sub a{ font-family:var(--sans); font-weight:400; font-size:clamp(.9rem,1.5vw,1.05rem); letter-spacing:.02em; color:rgba(245,241,233,.6); display:inline-flex; align-items:center; gap:.6rem; transition:color .3s, padding-left .3s; }
.menu__sub a::before{ content:""; width:16px; height:1px; background:var(--brass); opacity:.7; display:inline-block; }
.menu__sub a:hover{ color:var(--paper); padding-left:.35rem; }
.menu__foot{ position:absolute; left:var(--mx); bottom:2.2rem; display:flex; flex-direction:column; gap:.3rem; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(243,239,230,.6); }
@media(max-width:760px){ .hd__enq{ display:none } .menu__foot{ position:static; margin-top:2.5rem } }

/* ================= RESIDENCES, broken rhythm + specs ================= */
/* spec triplet used on bands (light) and editorial */
.spec3{ list-style:none; display:flex; flex-wrap:wrap; gap:1.6rem 2.6rem; margin:1.4rem 0 1.8rem; }
.spec3 li{ display:flex; flex-direction:column; gap:.25rem; font-family:var(--serif); font-size:1.25rem; color:var(--ink); }
.spec3 li span{ font-family:var(--sans); font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); }
.spec3--l li{ color:#fff; } .spec3--l li span{ color:rgba(255,253,249,.72); }

/* middle residence, light editorial split (breaks the 3-full-screen monotony) */
.edit{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:center; padding:clamp(4rem,9vh,7rem) var(--mx); background:var(--paper); }
.edit__img{ overflow:hidden; aspect-ratio:4/3.2; box-shadow:0 32px 70px -44px rgba(20,20,25,.45); }
.edit__img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.edit:hover .edit__img img{ transform:scale(1.04); }
.edit__n{ font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--brass); display:block; margin-bottom:1rem; }
.edit__t h3{ font-family:var(--serif); font-weight:500; font-size:clamp(2.2rem,4vw,3.4rem); margin-bottom:.8rem; }
.edit__t p{ color:var(--ink-soft); max-width:42ch; }
@media(max-width:820px){ .edit{ grid-template-columns:1fr; } .edit__img{ order:-1; aspect-ratio:16/10; } }

/* ================= THE PROJECT, added sections ================= */
/* 01 overview */
.pintro__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2.5rem,6vw,5.5rem); align-items:start; }
.pintro__lead{ font-size:1.15rem; color:var(--ink-soft); margin-top:1.4rem; max-width:52ch; }
.statbar{ list-style:none; display:flex; flex-wrap:wrap; gap:2rem 3rem; margin-top:2.4rem; padding-top:1.8rem; border-top:1px solid var(--line); }
.statbar b{ display:block; font-family:var(--serif); font-weight:500; font-size:2rem; color:var(--ink); }
.statbar span{ font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); }
.pintro__quote{ border-left:1px solid var(--line); padding-left:clamp(1.5rem,2.5vw,2.6rem); }
.pintro__quote blockquote{ font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(1.5rem,2.4vw,2.1rem); line-height:1.3; color:var(--ink); }
.pintro__quote figcaption{ margin-top:1.4rem; font-family:var(--serif); font-style:italic; font-size:1.15rem; color:var(--brass); }
.pintro__quote figcaption span{ display:block; font-family:var(--sans); font-style:normal; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); margin-top:.4rem; }

/* 02 design vision */
.dv{ display:grid; gap:clamp(3rem,7vh,5rem); }
.dv__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,5rem); align-items:center; }
.dv__h{ font-family:var(--serif); font-weight:500; font-size:clamp(1.8rem,3.2vw,2.8rem); margin-bottom:1rem; }
.dv__p{ color:var(--ink-soft); max-width:46ch; }
.palette{ list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem 1.8rem; }
.palette li{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.palette .sw{ display:block; height:96px; margin-bottom:.7rem; box-shadow:inset 0 0 0 1px rgba(0,0,0,.06); }
.partners{ text-align:center; border-top:1px solid var(--line); padding-top:clamp(2.5rem,5vh,3.5rem); }
.partners__lbl{ font-size:.66rem; letter-spacing:.28em; text-transform:uppercase; color:var(--brass); }
.partners__row{ display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(2rem,6vw,5rem); margin-top:1.6rem; font-family:var(--serif); font-size:clamp(1.3rem,2.4vw,2rem); color:var(--ink); letter-spacing:.06em; }
.partners .ph{ display:inline-block; margin-top:1.6rem; text-align:left; }

/* 03 floor plans explorer cta */
.explorer__cta{ display:flex; align-items:center; gap:1.6rem; flex-wrap:wrap; }
.fp{ padding-bottom:0; }

/* 04/05 portfolio cards */
.portfolio--alt{ background:var(--paper-2); }
.pf__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.6rem,3vw,2.6rem); }
.pf__grid--2{ grid-template-columns:repeat(2,1fr); max-width:900px; }
.pf{ display:flex; flex-direction:column; }
.pf figure{ overflow:hidden; aspect-ratio:4/3; margin-bottom:1.3rem; position:relative; box-shadow:0 30px 66px -46px rgba(20,20,25,.4); }
.pf img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.pf:hover img{ transform:scale(1.05); }
.pf__ph{ aspect-ratio:4/3; margin-bottom:1.3rem; background:repeating-linear-gradient(45deg,var(--paper-2),var(--paper-2) 12px,#e6dfce 12px,#e6dfce 24px); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; }
.pf__ph::after{ content:"COMING SOON"; font-size:.66rem; letter-spacing:.24em; color:var(--ink-soft); }
.pf__tag{ position:absolute; top:1rem; left:1rem; background:var(--ink); color:var(--paper); font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; padding:.4rem .8rem; }
.pf__b h3{ font-family:var(--serif); font-weight:500; font-size:1.7rem; margin-bottom:.5rem; }
.pf__b p{ color:var(--ink-soft); font-size:.95rem; margin-bottom:.9rem; }

/* catalog band */
.catalog{ position:relative; background:var(--graphite); color:var(--paper); padding:clamp(4rem,8vh,6rem) var(--mx); text-align:center; border-bottom:1px solid rgba(245,241,233,.08); }
.catalog__in{ max-width:760px; margin:0 auto; }
.catalog__p{ color:rgba(245,241,233,.8); max-width:52ch; margin:1.4rem auto 2rem; }
.btn--ivory{ background:var(--paper); color:var(--graphite); border-color:var(--paper); }
.btn--ivory:hover{ background:transparent; color:var(--paper); }
.catalog .ph--l{ display:inline-block; margin-top:1.6rem; color:rgba(245,241,233,.6); border-color:rgba(245,241,233,.3); }

/* amenity categories */
.amcat{ display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; padding:clamp(3rem,6vh,4.5rem) var(--mx) 0; }
.amcat__col h4{ font-family:var(--serif); font-weight:500; font-size:1.35rem; color:var(--paper); margin-bottom:.7rem; }
.amcat__col p{ font-size:.92rem; color:rgba(245,241,233,.7); line-height:1.7; }

/* investment block */
.invest{ margin-top:clamp(3rem,6vh,4.5rem); padding-top:2.4rem; border-top:1px solid var(--line); max-width:820px; }
.invest h4{ font-family:var(--serif); font-weight:500; font-size:1.6rem; margin-bottom:1rem; }
.invest ul{ list-style:none; }
.invest li{ padding:.7rem 0; border-bottom:1px solid var(--line); font-size:.98rem; color:var(--ink-soft); }
.invest li b{ color:var(--ink); }

/* gallery */
.galgrid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:260px; gap:1rem; }
.gg{ position:relative; overflow:hidden; box-shadow:0 24px 60px -46px rgba(20,20,25,.4); }
.gg img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.gg:hover img{ transform:scale(1.05); }
.gg figcaption{ position:absolute; left:0; bottom:0; padding:1.2rem; color:var(--white); font-family:var(--serif); font-size:1.2rem; background:linear-gradient(transparent,rgba(16,12,8,.85)); width:100%; }
.gg--w{ grid-column:span 2; }
.gal__extra{ display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-top:2rem; }
.film{ display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:.6rem; background:var(--paper-2); border:1px solid var(--line); padding:2.4rem; }
.film__play{ width:52px; height:52px; border:1px solid var(--ink); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.85rem; color:var(--ink); }
.film__t{ font-family:var(--serif); font-size:1.5rem; }
.prog{ background:var(--paper-2); border:1px solid var(--line); padding:2.4rem; }
.prog h4{ font-family:var(--serif); font-weight:500; font-size:1.5rem; margin-bottom:.6rem; }
.reassure{ margin-top:1.6rem; font-size:.8rem; letter-spacing:.05em; color:var(--ink-soft); }

/* footer per sitemap */
.pf-foot{ background:var(--graphite); color:var(--paper); padding:clamp(4rem,9vh,6rem) var(--mx) 2.4rem; }
.pf-foot__top{ display:grid; grid-template-columns:1.2fr 2fr; gap:2.5rem; padding-bottom:3rem; border-bottom:1px solid rgba(245,241,233,.12); }
.pf-foot__brand .ft__mark{ font-family:var(--sans); font-weight:500; font-size:1.2rem; letter-spacing:.4em; }
.pf-foot__brand .ft__tag{ font-family:var(--serif); font-style:italic; color:rgba(245,241,233,.65); margin-top:.8rem; }
.pf-foot__cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.pf-foot__cols h5{ font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); margin-bottom:1rem; }
.pf-foot__cols a{ display:block; font-size:.9rem; color:rgba(245,241,233,.72); padding:.3rem 0; transition:.3s; }
.pf-foot__cols a:hover{ color:var(--paper); }
.pf-foot__base{ padding-top:2rem; font-size:.74rem; color:rgba(245,241,233,.5); }

@media(max-width:900px){
  .pintro__grid,.dv__grid,.gal__extra,.pf-foot__top{ grid-template-columns:1fr; }
  .pintro__quote{ border-left:0; border-top:1px solid var(--line); padding:1.6rem 0 0; }
  .palette{ grid-template-columns:repeat(3,1fr); }
  .pf__grid,.pf__grid--2{ grid-template-columns:1fr 1fr; }
  .amcat{ grid-template-columns:1fr 1fr; }
  .galgrid{ grid-template-columns:repeat(2,1fr); } .gg--w{ grid-column:span 2; }
  .pf-foot__cols{ grid-template-columns:1fr; }
}
@media(max-width:600px){ .pf__grid,.pf__grid--2,.amcat,.galgrid{ grid-template-columns:1fr; } .gg--w{ grid-column:span 1; } .statbar b{ font-size:1.6rem; } }

/* menu robustness, fit all links, never overlap footer */
.menu{ justify-content:flex-start; overflow-y:auto; padding:clamp(6rem,12vh,8rem) var(--mx) 3rem; }
.menu__nav a{ font-size:clamp(1.5rem,3.8vw,3rem); line-height:1.05; }
.menu__nav{ gap:clamp(.2rem,1vh,.65rem); }
.menu__foot{ position:static; margin-top:2.6rem; }
.menu__close{ position:fixed; }

/* ================= PROJECT III, persistent side index + centered full-bleed hero ================= */
/* header transparent over hero, solid on scroll */
.hd{ background:transparent; box-shadow:none; }
.hd.solid{ background:var(--paper); box-shadow:0 1px 0 var(--line); }
.hd__brand,.hd__enq,.hd__menu{ color:#fff; } .hd__enq{ border-color:#fff; } .hd__menu i{ background:#fff; }
.hd.solid .hd__brand,.hd.solid .hd__enq,.hd.solid .hd__menu{ color:var(--ink); } .hd.solid .hd__enq{ border-color:var(--ink); } .hd.solid .hd__menu i{ background:var(--ink); }

/* centered full-bleed hero */
.chero{ position:relative; height:100vh; min-height:640px; overflow:hidden; display:flex; align-items:center; justify-content:center; text-align:center; }
.chero__img{ position:absolute; inset:0; } .chero__img img{ width:100%; height:100%; object-fit:cover; transform:scale(1.06); animation:kb 18s var(--ease) forwards; }
.chero__scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(16,12,8,.5), rgba(16,12,8,.18) 40%, rgba(16,12,8,.55)); }
.chero__in{ position:relative; color:#fff; padding:0 var(--mx); }
.chero__eye{ font-size:.68rem; letter-spacing:.34em; text-transform:uppercase; color:rgba(255,253,249,.85); margin-bottom:1.6rem; }
.chero__title{ font-family:var(--serif); font-weight:500; font-size:clamp(3.8rem,10vw,9rem); line-height:.96; letter-spacing:-.02em; }
.chero__tag{ font-family:var(--serif); font-style:italic; font-size:clamp(1.3rem,2.2vw,1.9rem); color:rgba(255,253,249,.92); margin-top:1rem; }
.chero__tag em{ color:#d8b47a; }
.chero__btn{ display:inline-block; margin-top:2.2rem; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:#fff; border:1px solid rgba(255,253,249,.6); padding:1.05rem 2.6rem; transition:.4s var(--ease); }
.chero__btn:hover{ background:#fff; color:var(--ink); border-color:#fff; }
.chero__cue{ position:absolute; left:50%; bottom:2.2rem; transform:translateX(-50%); width:24px; height:40px; border:1px solid rgba(255,253,249,.5); border-radius:14px; }
.chero__cue span{ position:absolute; top:8px; left:50%; width:3px; height:7px; background:#fff; border-radius:2px; transform:translateX(-50%); animation:cue 1.7s infinite; }

/* persistent section index (scroll-spy) */
.sindex{ position:fixed; right:1.7rem; top:50%; transform:translateY(-50%); z-index:80; display:flex; flex-direction:column; gap:.55rem; }
.sindex a{ display:flex; align-items:center; justify-content:flex-end; gap:.85rem; color:var(--ink-soft); opacity:.55; transition:opacity .3s, color .3s; }
.sindex a i{ font-family:var(--sans); font-style:normal; font-size:.58rem; letter-spacing:.1em; min-width:16px; text-align:right; }
.sindex a em{ font-family:var(--sans); font-style:normal; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; white-space:nowrap; max-width:0; opacity:0; overflow:hidden; transition:max-width .4s var(--ease), opacity .35s var(--ease); }
.sindex a:hover{ opacity:1; } .sindex a:hover em{ max-width:180px; opacity:1; }
.sindex a.active{ opacity:1; color:var(--ink); } .sindex a.active em{ max-width:180px; opacity:1; }
.sindex.on-dark a{ color:rgba(255,253,249,.7); } .sindex.on-dark a.active{ color:#fff; }
@media(max-width:1100px){ .sindex{ display:none; } }
@media(max-width:620px){ .chero__tag{ max-width:24ch; margin-left:auto; margin-right:auto; } }

/* ================= PORTFOLIO, editorial project rows (replaces old card grid) ================= */
.projrow{ display:grid; grid-template-columns:84px 1.25fr 1fr; gap:clamp(2rem,4vw,4rem); align-items:center; padding:clamp(2.4rem,5vh,3.6rem) 0; border-top:1px solid var(--line); }
.projlist .projrow:last-child{ border-bottom:1px solid var(--line); }
.projrow__ix{ font-family:var(--serif); font-weight:500; font-size:clamp(2rem,3vw,3rem); color:var(--ink-soft); opacity:.45; }
.projrow__media{ position:relative; overflow:hidden; aspect-ratio:16/10; box-shadow:0 30px 66px -46px rgba(20,20,25,.4); }
.projrow__media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.projrow--live:hover .projrow__media img{ transform:scale(1.05); }
.projrow__media--soon{ background:#fdfbf6; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; box-shadow:none; }
.projrow__media--soon span{ font-size:.64rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-soft); }
.projrow__tag{ position:absolute; top:1rem; left:1rem; background:var(--ink); color:var(--paper); font-size:.56rem; letter-spacing:.2em; text-transform:uppercase; padding:.42rem .8rem; }
.projrow__meta h3{ font-family:var(--serif); font-weight:500; font-size:clamp(1.9rem,3vw,2.6rem); margin-bottom:.5rem; }
.projrow__sub{ color:var(--ink-soft); font-size:.98rem; }
.projrow__facts{ list-style:none; display:flex; flex-wrap:wrap; gap:.5rem 1.3rem; margin:1.1rem 0; }
.projrow__facts li{ font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.projrow__go{ font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--brass); padding-bottom:.3rem; transition:.3s; display:inline-block; margin-top:.4rem; }
.projrow--live:hover .projrow__go{ color:var(--brass); }
@media(max-width:900px){ .projrow{ grid-template-columns:1fr; gap:1.1rem; } .projrow__ix{ font-size:1.5rem; } .projrow__media{ order:-1; } }


/* ===== two-tier overlay menu: Main Pages + On this page (per sitemap) ===== */
.menu__cols{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,6vw,6rem); align-items:start; width:100%; max-width:1080px; }
.menu__lbl{ font-family:var(--sans); font-size:.6rem; letter-spacing:.3em; text-transform:uppercase; color:var(--brass); margin-bottom:1.3rem; }
.menu__main{ display:flex; flex-direction:column; gap:clamp(.3rem,1.2vh,.85rem); }
.menu__main a{ display:flex; align-items:baseline; gap:.9rem; font-family:var(--serif); font-weight:500; font-size:clamp(1.9rem,4.4vw,3.3rem); line-height:1.1; color:var(--paper); transition:color .3s, padding-left .4s var(--ease); }
.menu__main a em{ font-family:var(--sans); font-style:normal; font-size:.7rem; letter-spacing:.12em; color:rgba(245,241,233,.4); }
.menu__main a:hover{ color:var(--brass); padding-left:.6rem; }
.menu__main a.is-current{ color:var(--brass); }
.menu__main a.is-current em{ color:rgba(154,124,69,.75); }
.menu__sections{ display:flex; flex-direction:column; gap:.55rem; border-left:1px solid rgba(245,241,233,.13); padding-left:clamp(1.4rem,3vw,2.6rem); }
.menu__sections>a{ font-family:var(--sans); font-size:clamp(.95rem,1.5vw,1.08rem); color:rgba(245,241,233,.72); letter-spacing:.01em; transition:color .3s, padding-left .3s; }
.menu__sections>a:hover{ color:var(--paper); padding-left:.3rem; }
@media(max-width:760px){ .menu__cols{ grid-template-columns:1fr; gap:2rem; } .menu__sections{ border-left:0; border-top:1px solid rgba(245,241,233,.13); padding-left:0; padding-top:1.6rem; } }
/* ================= HOME overview page ================= */
.chero__cta{ display:flex; align-items:center; gap:1.8rem 2.4rem; flex-wrap:wrap; justify-content:center; margin-top:2.2rem; }
.chero__cta .chero__btn{ margin-top:0; }
.chero__btn2{ font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:#fff; border-bottom:1px solid rgba(255,253,249,.5); padding-bottom:.35rem; transition:.3s var(--ease); }
.chero__btn2:hover{ border-color:#fff; color:#d8b47a; }

/* amenities highlights footer row */
.life__more{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.2rem 2rem; padding:clamp(2.2rem,5vh,3.4rem) var(--mx) 0; }
.life__more p{ color:rgba(245,241,233,.62); font-size:.92rem; letter-spacing:.02em; }

/* gallery strip, horizontal scroll */
.gstrip-sec{ overflow:hidden; }
.gstrip{ display:flex; gap:14px; overflow-x:auto; padding:.4rem var(--mx) 1rem; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.gstrip::-webkit-scrollbar{ display:none; }
.gstrip figure{ position:relative; flex:0 0 auto; width:min(76vw,440px); aspect-ratio:4/5; overflow:hidden; scroll-snap-align:start; box-shadow:0 30px 66px -46px rgba(20,20,25,.4); }
.gstrip img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.gstrip figure:hover img{ transform:scale(1.05); }
.gstrip figcaption{ position:absolute; left:0; bottom:0; width:100%; padding:1.4rem 1.4rem 1.1rem; color:#fff; font-family:var(--serif); font-size:1.35rem; background:linear-gradient(transparent, rgba(12,10,7,.72)); }
.gstrip__hint{ padding:1.1rem var(--mx) 0; font-size:.64rem; letter-spacing:.26em; text-transform:uppercase; color:var(--ink-soft); }

.partners-sec{ padding-top:clamp(3rem,7vh,5rem); padding-bottom:clamp(3rem,7vh,5rem); }
.partners-sec .partners{ border-top:0; padding-top:0; }

/* =================================================================
   HOME, distinct layout language (brand landing, not a Project clone)
   ================================================================= */

/* 1 · HERO, cover with bottom-left copy + fact rail */
/* CRO: not a full-viewport dead-end, hero sits ~88vh so the next section peeks above the fold and invites the scroll */
.hhero{ position:relative; min-height:88vh; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; color:#fff; padding-top:clamp(90px,11vh,120px); }
@media(max-width:760px){ .hhero{ min-height:92vh; } }
.hhero__img{ position:absolute; inset:0; } .hhero__img img{ width:100%; height:100%; object-fit:cover; transform:scale(1.05); animation:kb 18s var(--ease) forwards; }
.hhero__scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(16,12,8,.2), rgba(16,12,8,.12) 38%, rgba(16,12,8,.85)); }
.hhero__in{ position:relative; padding:0 var(--mx); max-width:920px; margin-bottom:clamp(2.4rem,5vh,3.6rem); }
.hhero__eye{ font-size:.68rem; letter-spacing:.34em; text-transform:uppercase; color:rgba(255,253,249,.85); margin-bottom:1.2rem; }
.hhero__title{ font-family:var(--serif); font-weight:500; font-size:clamp(2.9rem,6.2vw,5.6rem); line-height:1; letter-spacing:-.02em; }
.hhero__lede{ font-family:var(--serif); font-weight:400; font-size:clamp(1.3rem,2.4vw,2rem); color:rgba(255,253,249,.94); max-width:32ch; margin-top:1.1rem; line-height:1.32; }
.hhero__lede em{ font-style:italic; color:#e3c48f; }
.hhero__cta{ display:flex; align-items:center; gap:1.4rem 2.2rem; flex-wrap:wrap; margin-top:2.1rem; }
.hhero__link{ font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:#fff; border-bottom:1px solid rgba(255,253,249,.5); padding-bottom:.35rem; transition:.3s var(--ease); }
.hhero__link:hover{ color:#e3c48f; border-color:#fff; }
.hhero__facts{ position:relative; list-style:none; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,253,249,.22); }
.hhero__facts li{ padding:1.25rem 1.4rem; border-right:1px solid rgba(255,253,249,.14); }
.hhero__facts li:first-child{ padding-left:var(--mx); } .hhero__facts li:last-child{ border-right:0; }
.hhero__facts b{ display:block; font-family:var(--serif); font-weight:500; font-size:clamp(1.5rem,2.4vw,2.1rem); line-height:1; }
.hhero__facts span{ font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,253,249,.7); }

/* 2 · WHY, value pillars */
.hwhy__lead{ max-width:58ch; margin-top:1.4rem; color:var(--ink-soft); font-size:1.08rem; }
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(2.2rem,4.5vw,4.5rem); margin-top:clamp(2.6rem,5vh,3.6rem); }
.pillar{ }
.pillar::before{ content:""; display:block; width:38px; height:2px; background:var(--brass); margin-bottom:1.5rem; }
.pillar__n{ font-family:var(--serif); font-size:1.1rem; color:var(--ink-soft); }
.pillar h3{ font-family:var(--serif); font-weight:500; font-size:clamp(1.5rem,2.3vw,2rem); margin:.35rem 0 .7rem; }
.pillar p{ color:var(--ink-soft); font-size:.98rem; }
.hwhy__cta{ margin-top:clamp(2rem,4vh,3rem); }
@media(max-width:820px){ .pillars{ grid-template-columns:1fr; gap:0; } .pillar{ padding:1.9rem 0; border-top:1px solid var(--line); } .pillar:first-child{ border-top:0; } }

/* 3 · AMENITIES, feature tiles */
.amgrid{ display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:14px; height:clamp(380px,54vh,560px); }
.amtile{ position:relative; overflow:hidden; height:100%; box-shadow:0 30px 66px -46px rgba(20,20,25,.4); }
.amtile img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.amtile:hover img{ transform:scale(1.05); }
.amtile figcaption{ position:absolute; left:0; bottom:0; width:100%; padding:1.5rem 1.5rem 1.3rem; color:#fff; background:linear-gradient(transparent, rgba(12,10,7,.82)); }
.amtile figcaption b{ display:block; font-family:var(--serif); font-weight:500; font-size:clamp(1.3rem,1.8vw,1.6rem); }
.amtile figcaption span{ font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,253,249,.75); }
.hamen__more{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem 2rem; margin-top:clamp(2rem,4vh,3rem); }
.hamen__more p{ color:var(--ink-soft); font-size:.95rem; max-width:62ch; }
@media(max-width:820px){ .amgrid{ grid-template-columns:1fr; height:auto; } .amtile{ aspect-ratio:16/10; } }

/* 4 · LOCATION teaser, image + drive-times */
.locteaser{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.locteaser__img{ position:relative; overflow:hidden; aspect-ratio:4/5; box-shadow:0 34px 70px -46px rgba(20,20,25,.45); }
.locteaser__img img{ width:100%; height:100%; object-fit:cover; }
.locteaser__pin{ position:absolute; left:1.2rem; top:1.2rem; background:rgba(20,19,15,.72); color:#fff; font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; padding:.5rem .9rem; }
.locteaser__p{ color:var(--ink-soft); margin:1.2rem 0 1.7rem; max-width:44ch; }
.drives{ list-style:none; border-top:1px solid var(--line); margin-bottom:1.7rem; }
.drives li{ display:flex; align-items:baseline; gap:1rem; padding:.85rem 0; border-bottom:1px solid var(--line); }
.drives b{ font-family:var(--serif); font-weight:500; font-size:1.3rem; color:var(--ink); min-width:3.4ch; }
.drives b::after{ content:" min"; font-size:.52rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.drives span{ color:var(--ink-soft); font-size:.95rem; }
@media(max-width:820px){ .locteaser{ grid-template-columns:1fr; gap:2rem; } .locteaser__img{ aspect-ratio:16/10; } }

/* 6 · PARTNERS, framed logo placeholder boxes */
.hpartners{ text-align:center; }
.hpartners__lbl{ font-size:.6rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:clamp(2rem,4vh,2.8rem); }
.plogos{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.5vw,2rem); max-width:1000px; margin:0 auto; }
.plogo{ aspect-ratio:3/2; border:1px solid var(--line); background:#fdfbf6; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.55rem; transition:border-color .3s; }
.plogo:hover{ border-color:var(--brass); }
.plogo__name{ font-family:var(--serif); font-size:clamp(1.3rem,2.1vw,1.8rem); color:var(--ink); }
.plogo__tag{ font-size:.54rem; letter-spacing:.24em; text-transform:uppercase; color:#b0a488; }
@media(max-width:680px){ .plogos{ grid-template-columns:1fr; } .plogo{ aspect-ratio:5/2; } }

/* 8 · CATALOG, cover placeholder box + copy */
.catalog--home{ text-align:left; }
.catrow{ display:grid; grid-template-columns:auto 1fr; gap:clamp(2.4rem,6vw,5rem); align-items:center; max-width:1000px; margin:0 auto; }
.catrow__cover{ width:clamp(178px,22vw,258px); aspect-ratio:3/4; border:1px solid rgba(245,241,233,.28); background:linear-gradient(160deg,#26251f,#181712); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; text-align:center; padding:1.6rem; }
.catrow__mark{ font-family:var(--sans); font-weight:500; font-size:.68rem; letter-spacing:.34em; color:rgba(245,241,233,.85); }
.catrow__sub{ font-family:var(--serif); font-size:1.6rem; color:#e3c48f; margin-top:.2rem; }
.catrow__tag{ margin-top:.5rem; font-size:.52rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(245,241,233,.45); }
.catalog--home .catalog__p{ margin:1.2rem 0 1.9rem; max-width:46ch; }
@media(max-width:680px){ .catrow{ grid-template-columns:1fr; justify-items:start; gap:2rem; } }

/* hero fact rail, 2x2 on phones */
@media(max-width:560px){
  .hhero__facts{ grid-template-columns:1fr 1fr; }
  .hhero__facts li:nth-child(2){ border-right:0; }
  .hhero__facts li:nth-child(3){ padding-left:var(--mx); border-top:1px solid rgba(255,253,249,.14); }
  .hhero__facts li:nth-child(4){ border-top:1px solid rgba(255,253,249,.14); }
}

/* About, founders pull quote (company) */
.hquote{ margin-top:clamp(3rem,7vh,5rem); max-width:920px; border-top:1px solid var(--line); padding-top:clamp(2rem,4vh,3rem); }
.hquote blockquote{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:clamp(1.5rem,3vw,2.4rem); line-height:1.3; color:var(--ink); letter-spacing:-.01em; }
.hquote figcaption{ margin-top:1.4rem; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); }
.hquote figcaption span{ display:block; margin-top:.3rem; letter-spacing:.14em; color:var(--ink-soft); }

/* Flagship spotlight, CTA row on the dark amenities band */
.flag__more{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.2rem 2.5rem; padding:clamp(2.2rem,5vh,3.4rem) var(--mx) 0; }
.flag__more p{ color:rgba(245,241,233,.66); font-size:.95rem; max-width:60ch; }

/* hero scroll cue (full-screen hero, CRO: signal there's more below) */
.hhero__cue{ position:absolute; left:50%; transform:translateX(-50%); bottom:calc(clamp(70px,9vh,96px) + 18px); width:23px; height:38px; border:1px solid rgba(255,253,249,.5); border-radius:13px; z-index:2; }
.hhero__cue span{ position:absolute; top:8px; left:50%; width:3px; height:7px; background:#fff; border-radius:2px; transform:translateX(-50%); animation:cue 1.7s infinite; }
@media(max-width:560px){ .hhero__cue{ display:none; } }
/* ================= INQUIRY / CONTACT pages ================= */
.pageintro{ padding:clamp(9rem,19vh,13rem) var(--mx) clamp(1.6rem,3vh,2.6rem); }
.pageintro .display{ max-width:20ch; }
.pageintro__lead{ max-width:56ch; margin-top:1.4rem; color:var(--ink-soft); font-size:1.08rem; }
.enquire--page{ padding-top:clamp(1.5rem,3vh,3rem); }

/* contact methods */
.cmethods{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2vw,1.6rem); }
.cmethod{ display:flex; flex-direction:column; gap:.7rem; padding:clamp(2rem,3.5vw,3rem); border:1px solid var(--line); background:#fdfbf6; transition:border-color .3s var(--ease), transform .3s var(--ease); min-height:clamp(200px,26vh,260px); justify-content:flex-end; }
.cmethod:hover{ border-color:var(--brass); transform:translateY(-3px); }
.cmethod__k{ font-size:.62rem; letter-spacing:.28em; text-transform:uppercase; color:var(--ink-soft); }
.cmethod__v{ font-family:var(--serif); font-weight:500; font-size:clamp(1.4rem,2vw,1.9rem); color:var(--ink); line-height:1.15; }
.cmethod__v .nb{ white-space:nowrap; }
.cmethod__v--phone{ font-size:clamp(1.15rem,1.7vw,1.55rem); line-height:1.28; display:inline-block; text-align:right; font-family:ui-monospace,SFMono-Regular,Menlo,"Liberation Mono",monospace; }
.cmethod__go{ margin-top:.4rem; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); }
@media(max-width:760px){ .cmethods{ grid-template-columns:1fr; } .cmethod{ min-height:0; } }

/* visit */
.visit__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,5rem); align-items:center; }
.visit__list{ list-style:none; border-top:1px solid var(--line); margin:1.6rem 0 2rem; }
.visit__list li{ display:flex; justify-content:space-between; align-items:baseline; gap:1.5rem; padding:.95rem 0; border-bottom:1px solid var(--line); }
.visit__list span{ font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); flex:none; }
.visit__list b{ font-family:var(--serif); font-weight:500; font-size:1.2rem; text-align:right; }
.visit__list a{ font-size:1rem; color:var(--ink); border-bottom:1px solid var(--brass); }
.visit__map{ position:relative; aspect-ratio:4/3; border:1px solid var(--line); background:var(--paper-2); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; }
.visit__pin{ font-family:var(--serif); font-size:clamp(1.4rem,2.2vw,1.9rem); color:var(--ink); }
.visit__maptag{ font-size:.56rem; letter-spacing:.24em; text-transform:uppercase; color:#a99e86; }
@media(max-width:820px){ .visit__grid{ grid-template-columns:1fr; gap:2rem; } .visit__map{ order:0; aspect-ratio:16/10; margin-top:.5rem; } }

/* This page has no dark hero, keep the header solid & legible from the very top */
.hd{ background:var(--paper); box-shadow:0 1px 0 var(--line); }
.hd__brand,.hd__enq,.hd__menu{ color:var(--ink); }
.hd__enq{ border-color:var(--ink); }
.hd__menu i{ background:var(--ink); }
/* ================= PREMIUM MOBILE POLISH ================= */
@media(max-width:600px){
  /* tighter, richer vertical rhythm, desktop padding reads as empty gaps on phones */
  .sec{ padding-top:clamp(3rem,8vh,4.6rem); padding-bottom:clamp(3rem,8vh,4.6rem); }
  .head{ margin-bottom:1.7rem; }
  .life{ padding-top:clamp(3rem,8vh,4.6rem); padding-bottom:clamp(3rem,8vh,4.6rem); }
  .catalog{ padding-top:clamp(3.2rem,8vh,5rem); padding-bottom:clamp(3.2rem,8vh,5rem); }
  .pageintro{ padding-top:clamp(6.4rem,20vh,8rem); padding-bottom:1rem; }
  .pf-foot{ padding-top:clamp(3.2rem,8vh,4.6rem); }
  /* comfortable thumb targets */
  .btn{ padding:1.15rem 2rem; }
  .cmethod{ padding:1.7rem 1.6rem; }
  /* form fields a touch taller for easy tapping */
  .fld input,.fld select,.fld textarea{ font-size:16px; }
}


/* floating WhatsApp button, bottom-right, mobile + desktop */
.wa-fab{ position:fixed; right:clamp(1rem,3vw,1.6rem); bottom:clamp(1rem,3vw,1.6rem); z-index:95;
  width:56px; height:56px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 30px -8px rgba(0,0,0,.45); transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s; -webkit-tap-highlight-color:transparent; }
.wa-fab::before{ content:""; position:absolute; inset:0; border-radius:50%; background:#25D366; z-index:-1; animation:wapulse 2.6s ease-out infinite; }
.wa-fab:hover{ transform:scale(1.08); box-shadow:0 16px 40px -8px rgba(37,211,102,.55); }
.wa-fab svg{ width:30px; height:30px; fill:#fff; }
@keyframes wapulse{ 0%{ transform:scale(1); opacity:.5 } 70%{ transform:scale(1.7); opacity:0 } 100%{ opacity:0 } }
@media(max-width:600px){ .wa-fab{ width:54px; height:54px; } .wa-fab svg{ width:28px; height:28px; } }
@media(prefers-reduced-motion:reduce){ .wa-fab::before{ animation:none; opacity:0 } }
/* stack the Enquire dock above the WhatsApp button where both exist */
.dock{ bottom:calc(clamp(1rem,3vw,1.6rem) + 68px); }

/* E-Catalogue link in the top bar (this page has a solid header) */
.hd__right{ display:flex; align-items:center; gap:clamp(.9rem,2.2vw,1.8rem); }
.hd__cat{ font-family:var(--sans); font-weight:500; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); transition:color .3s; white-space:nowrap; }
.hd__cat:hover{ color:#b1974a; }
@media(max-width:600px){ .hd__cat{ font-size:.62rem; letter-spacing:.13em; } }
@media(max-width:360px){ .hd__cat{ display:none; } }
/* hero credential line + site-wide footer CTA */
.hhero__cred{font-family:var(--sans);text-transform:uppercase;letter-spacing:.24em;font-size:.7rem;color:var(--brass,#b1974a);margin-top:1rem}
.footcta{position:relative;padding:clamp(4.5rem,13vh,8rem) var(--mx,7vw);text-align:center;overflow:hidden;color:#fffdf9}
.footcta__media{position:absolute;inset:0;z-index:0}
.footcta__vid{width:100%;height:100%;object-fit:cover}
.footcta__scrim{position:absolute;inset:0;background:linear-gradient(rgba(31,22,14,.62),rgba(31,22,14,.8))}
.footcta__in{position:relative;z-index:1}
.footcta__p{color:rgba(255,253,249,.82);margin:.6rem 0 2rem}
.footcta__btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.footcta .eyebrow::after{margin-left:auto;margin-right:auto}
.footcta .display{max-width:26ch;margin-left:auto;margin-right:auto}
.btn--ghost{background:transparent;color:#fffdf9;border-color:rgba(255,253,249,.6)}
.btn--ghost:hover{background:#fffdf9;color:var(--ink,#2b1f15)}

/* ── brand palette · oxblood reserved for pull-quotes only ── */
:root{ --wine:#743430; }
.founder blockquote,.fword blockquote{ border-left-color:var(--wine); }
.pintro__quote blockquote{ border-left:2px solid var(--wine); padding-left:1.15rem; }

/* footer social icons */
.pf-social{display:flex;gap:16px;justify-content:center;align-items:center;padding:1.6rem 0 .2rem;border-top:1px solid var(--line);margin-top:1.6rem}
.pf-social a{color:var(--ink-soft);display:inline-flex;transition:color .3s}
.pf-social a:hover{color:var(--brass)}

/* brand red · chapter-accent rule under section eyebrows (max 5%) */
.eyebrow::after{ content:""; display:block; width:26px; height:2px; background:#743430; margin-top:.9rem; }
.eyebrow--l::after{ background:#743430; }

/* brand logo (dark, header is solid on these pages) */
.hd__logo{ height:16px; width:auto; display:block; filter:brightness(0); }

/* footer brand logo (Cavalier, white on dark) */
.ft__logo{ height:16px; width:auto; display:block; filter:brightness(0) invert(1); }


/* branded text selection (replaces default browser blue) */
::selection{ background:#b1974a; color:#2b1f15; }
::-moz-selection{ background:#b1974a; color:#2b1f15; }

.pf-foot__cols a.ft__phone{display:inline-block;text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,"Liberation Mono",monospace}
