/* Crosswood Park — shared styles.
   The Aria at Idlewild system (aria-idlewild-website/site.css, responsive.css and
   the inline page styles), rewritten as real classes with the cw- prefix and the
   accent forked from bronze to pine (design brief, Pass 2). Phone and tablet
   overrides live in responsive.css. */

@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/files/fonts/cormorant-garamond-latin.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;src:url(/assets/files/fonts/cormorant-garamond-italic-latin.woff2) format("woff2")}
@font-face{font-family:Jost;font-style:normal;font-weight:300 500;font-display:swap;src:url(/assets/files/fonts/jost-latin.woff2) format("woff2")}

:root{
  --cream:#F3EFE7; --paper:#FAF7F0; --card:#FBF9F3; --white:#FFFFFF;
  --ink:#211D15; --muted:#5F5748; --caption:#6A6151;
  --pine:#3F5B45; --pine-hover:#4A6650; --charcoal:#23282E;
  --sage:#A9BF9C; --sage-hover:#C3D3B5;
  --rule:#E0D8C8; --input:#857A67; --chip:#CFC5B2; --selection:#E4D9C3; --error:#A4452F;
  --hero-text:#F8F5EE; --foot-text:#D8D2C4; --foot-muted:#B6BBC0; --foot-addr:#C3C7CB;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:Jost,"Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --t:.45s;
  --nav-h:104px;
  --shadow-float:0 30px 70px -40px rgba(24,20,14,.6);
  --shadow-panel:0 34px 80px -50px rgba(24,20,14,.55);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  /* WCAG 2.4.11: anything scrolled to (focus, fragment links) lands below the fixed nav,
     and above the cookie notice while it shows (cookie-banner.js sets --acb-h). */
  scroll-padding-top:calc(var(--nav-h) + 16px)}
html.acb-open{scroll-padding-bottom:calc(var(--acb-h,0px) + 16px)}
html.acb-open body{padding-bottom:var(--acb-h,0px)}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:15px;line-height:1.85}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
::selection{background:var(--selection)}
:focus-visible{outline:2px solid var(--pine);outline-offset:3px}
button{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;margin:0;text-wrap:balance;color:var(--ink)}
p{margin:0 0 16px;text-wrap:pretty}
p:last-child{margin-bottom:0}
main{display:block}
main:focus{outline:none}
[hidden]{display:none!important}
.cw-num{font-variant-numeric:tabular-nums lining-nums}
.cw-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cw-skip{position:absolute;left:16px;top:-80px;z-index:5000;background:var(--charcoal);color:var(--cream);padding:12px 18px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;transition:top .2s ease}
.cw-skip:focus{top:16px}

/* ---------- layout ---------- */
.cw-wrap{max-width:1400px;margin:0 auto;padding:0 40px}
.cw-band{padding:104px 0 96px}
.cw-band--tight{padding:72px 0 72px}
.cw-band--paper{background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.cw-band--dark{background:var(--charcoal);color:var(--cream)}
.cw-split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.cw-split--top{align-items:start}
.cw-split--wide{grid-template-columns:7fr 5fr}
.cw-measure{max-width:620px}

/* ---------- type ---------- */
.cw-h1{font-size:56px;line-height:1.06}
.cw-h2{font-size:44px;line-height:1.15}
.cw-h3{font-size:34px;line-height:1.1}
.cw-h4{font-size:22px;line-height:1.2}
.cw-body{font-size:15px;line-height:1.85;color:var(--muted)}
.cw-inner{font-size:14.5px;line-height:1.8;color:var(--muted)}
.cw-label{font-size:12.5px;font-weight:400;line-height:1.4;color:var(--muted)}
.cw-small{font-size:12.5px;line-height:1.7;color:var(--caption)}
.cw-rent{font-family:var(--serif);font-size:26px;line-height:1.1;font-variant-numeric:lining-nums}
.cw-pagehead{padding:72px 0 56px;border-bottom:1px solid var(--rule)}
.cw-pagehead .cw-split{align-items:end}
.cw-pagehead__intro{font-size:15px;line-height:1.85;color:var(--muted);max-width:560px}
.cw-pagehead__links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:18px}

/* ---------- links and buttons ---------- */
.cw-link{color:var(--pine);border-bottom:1px solid currentColor;padding-bottom:2px;transition:color var(--t) ease,border-color var(--t) ease}
.cw-link:hover{color:var(--ink)}
.cw-link--light{color:var(--sage)}
.cw-link--light:hover{color:var(--cream)}
.cw-ext::after{content:"";display:inline-block;width:.72em;height:.72em;margin-left:.35em;vertical-align:.02em;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M4.5 1.5h6v6M10.5 1.5 4 8M8.5 7.5v3h-7v-7h3'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M4.5 1.5h6v6M10.5 1.5 4 8M8.5 7.5v3h-7v-7h3'/%3E%3C/svg%3E") center/contain no-repeat}
.cw-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:14px 28px;border:1px solid var(--charcoal);background:var(--charcoal);color:var(--cream);
  font-family:var(--sans);font-size:12px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;line-height:1.2;cursor:pointer;white-space:nowrap;
  transition:background-color var(--t) ease,color var(--t) ease,border-color var(--t) ease,transform .15s ease-out}
.cw-btn:hover{background:var(--pine);border-color:var(--pine);color:var(--cream)}
.cw-btn:active{transform:scale(.97)}
.cw-btn:disabled,.cw-btn[aria-disabled="true"]{opacity:.5;cursor:default;transform:none;background:var(--charcoal);border-color:var(--charcoal)}
.cw-btn--outline{background:transparent;color:var(--charcoal)}
.cw-btn--outline:hover{background:var(--charcoal);border-color:var(--charcoal);color:var(--cream)}
.cw-btn--light{background:var(--cream);border-color:var(--cream);color:var(--ink)}
.cw-btn--light:hover{background:var(--sage);border-color:var(--sage);color:var(--ink)}
.cw-btn--glass{background:transparent;border-color:rgba(243,239,231,.5);color:var(--cream)}
.cw-btn--glass:hover{background:rgba(243,239,231,.12);border-color:var(--cream);color:var(--cream)}
.cw-btn--sm{min-height:44px;padding:10px 16px;font-size:12px;letter-spacing:.16em}
.cw-btns{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.cw-band--dark :focus-visible,.cw-foot :focus-visible,.cw-menu :focus-visible,.cw-nav :focus-visible,.cw-nb__list :focus-visible,.cw-skip:focus-visible{outline-color:var(--sage)}
/* Over the hero photos a cream ring with a dark halo stays at least 3:1 on any pixel. */
.cw-hero :focus-visible,html:not(.nav-scrolled) .cw-home .cw-nav :focus-visible{outline-color:var(--hero-text);box-shadow:0 0 0 5px rgba(18,17,14,.55)}

/* ---------- nav (ported .ariaNav) ---------- */
.cw-nav{position:sticky;top:0;z-index:4010;height:var(--nav-h);background:rgba(35,40,46,.97);border-bottom:1px solid rgba(243,239,231,.14);transition:background-color .3s ease,border-color .3s ease}
.cw-nav__inner{max-width:1520px;height:100%;margin:0 auto;padding:0 44px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:40px}
.cw-nav__side{display:flex;align-items:center}
.cw-nav__side--end{justify-content:flex-end;gap:26px}
.cw-nav__toggle{display:flex;align-items:center;gap:13px;min-height:44px;padding:6px 2px;background:none;border:0;cursor:pointer;color:var(--cream)}
.cw-nav__bars{display:flex;flex-direction:column;gap:5px;width:26px}
.cw-nav__bar{display:block;height:1px;background:currentColor;transform-origin:50% 50%;transition:width .3s ease,transform .3s var(--ease)}
.cw-nav__bar:first-child{width:20px}.cw-nav__bar:last-child{width:13px}
.cw-nav__toggle:hover .cw-nav__bar{width:26px}
.cw-nav__word{display:grid;font-size:12px;letter-spacing:.24em}
.cw-nav__word>span{grid-area:1/1;transition:opacity .35s ease}
.cw-nav__wordClose{opacity:0}
.cw-nav__logo{display:block;padding:0 12px;transition:opacity .3s ease}
.cw-nav__logo img{width:96px;height:auto}
.cw-nav__phone{font-size:12px;letter-spacing:.16em;color:var(--foot-addr);white-space:nowrap;transition:color var(--t) ease,opacity var(--t) ease}
.cw-nav__phone:hover{color:var(--cream)}
.cw-nav__tour{display:inline-flex;align-items:center;min-height:44px;padding:10px 20px;border:1px solid rgba(243,239,231,.7);color:var(--cream);font-size:12px;letter-spacing:.18em;line-height:1.2;text-align:center;white-space:nowrap;transition:background-color var(--t) ease,color var(--t) ease,opacity var(--t) ease}
.cw-nav__tour:hover{background:var(--cream);color:var(--charcoal)}
.cw-nav__res{font-size:12px;letter-spacing:.18em;color:var(--sage);white-space:nowrap;transition:color var(--t) ease,opacity var(--t) ease}
.cw-nav__res:hover{color:var(--cream)}
/* Home: transparent over the hero until it scrolls behind the nav. */
.cw-home .cw-nav{position:fixed;left:0;right:0}
html:not(.nav-scrolled) .cw-home .cw-nav{background:linear-gradient(rgba(22,26,30,.62),rgba(22,26,30,.34) 70%,rgba(22,26,30,0)) border-box;border-bottom-color:transparent}
html:not(.nav-scrolled) .cw-home .cw-nav__phone,html:not(.nav-scrolled) .cw-home .cw-nav__res{color:var(--hero-text)}
html:not(.nav-scrolled) .cw-home .cw-nav__logo{opacity:0;pointer-events:none}
html.nav-open .cw-nav,html.nav-open .cw-home .cw-nav{background:transparent;border-bottom-color:transparent}
html.nav-open .cw-nav__logo,html.nav-open .cw-nav__phone,html.nav-open .cw-nav__tour,html.nav-open .cw-nav__res{opacity:0;pointer-events:none}
html.nav-open .cw-nav__bar{width:22px}
html.nav-open .cw-nav__bar:first-child{transform:translateY(3px) rotate(45deg)}
html.nav-open .cw-nav__bar:last-child{transform:translateY(-3px) rotate(-45deg)}
html.nav-open .cw-nav__wordMenu{opacity:0}
html.nav-open .cw-nav__wordClose{opacity:1}

/* ---------- menu overlay (ported .ariaMenu) ---------- */
.cw-menu{position:fixed;inset:0;z-index:4000;background:var(--charcoal);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,visibility 0s linear .35s}
html.nav-open .cw-menu{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .35s ease}
.cw-menu__inner{height:100%;overflow-y:auto;max-width:1520px;margin:0 auto;padding:128px 44px 44px;display:flex;flex-direction:column;justify-content:center}
.cw-menu__nav{display:grid;grid-template-columns:1fr}
.cw-menu__link{display:block;padding:11px 0;margin-top:-1px;border-top:1px solid rgba(243,239,231,.12);border-bottom:1px solid rgba(243,239,231,.12);position:relative;transition:border-color .35s ease}
.cw-menu__link span{font-family:var(--serif);font-size:34px;line-height:1.1;color:var(--cream);transition:color .35s ease}
.cw-menu__link:hover{border-color:var(--sage);z-index:1}
.cw-menu__link:hover span,.cw-menu__link[aria-current="page"] span{color:var(--sage)}
.cw-menu__aside{display:flex;flex-wrap:wrap;gap:14px 32px;align-items:baseline;margin-top:38px;padding-top:20px;border-top:1px solid rgba(243,239,231,.14)}
.cw-menu__aside a{font-size:12px;letter-spacing:.2em;color:var(--sage);text-transform:uppercase;min-height:44px;display:inline-flex;align-items:center}
.cw-menu__aside a:hover{color:var(--cream)}
.cw-menu__aside span{font-size:13px;color:#8E949B}

/* ---------- hero (signature element) ---------- */
.cw-hero{position:relative;height:100vh;height:100svh;min-height:620px;overflow:hidden;contain:paint;background:var(--charcoal);color:var(--hero-text)}
.cw-hero__stack{position:absolute;inset:0}
.cw-hero__slide{position:absolute;inset:0}
.cw-hero__slide img{display:block;width:100%;height:100%;object-fit:cover}
.cw-hero__slide+.cw-hero__slide{display:none}
/* site-nav.js adds hero-anim after window load: only then do slides 2 and 3 render
   (and so fetch) and the crossfade start. Slide 1 enters mid-cycle at full opacity. */
html.hero-anim .cw-hero__slide{display:block;animation:heroFade 24s ease-in-out infinite both}
html.hero-anim .cw-hero__slide:nth-child(1){animation-delay:-2s}
html.hero-anim .cw-hero__slide:nth-child(2){animation-delay:6s}
html.hero-anim .cw-hero__slide:nth-child(3){animation-delay:14s}
.cw-hero__slide:nth-child(1) img{object-position:center 60%}
.cw-hero__slide:nth-child(2) img{object-position:center 55%}
.cw-hero__slide:nth-child(3) img{object-position:center 45%}
@keyframes heroFade{0%{opacity:0}8.3333%{opacity:1}41.6667%{opacity:1}50%{opacity:0}100%{opacity:0}}
html.hero-out .cw-hero__slide,html.hero-paused .cw-hero__slide{animation-play-state:paused}
.cw-hero__scrim{position:absolute;inset:0;background:radial-gradient(28% 30% at 50% 40%,rgba(18,17,14,.42) 0%,rgba(18,17,14,0) 100%),radial-gradient(52% 46% at 10% 100%,rgba(18,17,14,.58) 0%,rgba(18,17,14,0) 72%),linear-gradient(180deg,rgba(18,17,14,.48) 0%,rgba(18,17,14,.12) 30%,rgba(18,17,14,.10) 55%,rgba(18,17,14,.62) 100%),rgba(18,17,14,.14)}
.cw-hero__mark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-bottom:10vh;pointer-events:none}
.cw-hero__mark img{width:min(26vw,300px);height:auto;filter:drop-shadow(0 10px 60px rgba(12,11,9,.4))}
.cw-hero__bar{position:absolute;left:0;right:0;bottom:0;max-width:1520px;margin:0 auto;padding:0 44px 52px;display:flex;justify-content:space-between;align-items:flex-end;gap:32px}
.cw-hero__h1{font-size:clamp(42px,4.6vw,66px);line-height:1.06;color:var(--hero-text);text-shadow:0 2px 30px rgba(18,17,14,.45)}
.cw-hero__h1>span{display:block;overflow:hidden;padding-bottom:.04em}
.cw-hero__h1>span>span{display:block;animation:lineUp 1.2s var(--ease) both}
.cw-hero__h1>span:nth-child(1)>span{animation-delay:.6s}
.cw-hero__h1>span:nth-child(2)>span{animation-delay:.75s}
@keyframes lineUp{from{opacity:0;transform:translateY(112%)}to{opacity:1;transform:none}}
.cw-hero__live{display:inline-block;max-width:340px;font-family:var(--serif);font-size:24px;line-height:1.3;color:var(--hero-text);text-align:right;text-shadow:0 2px 24px rgba(18,17,14,.5);border-bottom:1px solid rgba(248,245,238,.6);padding-bottom:4px;animation:fadeIn 1s 1.5s ease both;transition:border-color var(--t) ease,color var(--t) ease}
.cw-hero__live:hover{color:var(--sage-hover);border-color:var(--sage-hover)}
.cw-hero__acts{display:flex;align-items:flex-end;gap:20px}
/* WCAG 2.2.2: the background photos change on their own, so they can be paused.
   site-nav.js unhides the button when the crossfade can run (not under reduced motion). */
.cw-hero__pause{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(248,245,238,.55);background:rgba(18,17,14,.28);color:var(--hero-text);cursor:pointer;
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background-color .3s ease,border-color .3s ease,transform .15s ease-out;animation:fadeIn 1s 1.5s ease both}
.cw-hero__pause:hover{background:rgba(18,17,14,.5);border-color:var(--hero-text)}
.cw-hero__pause:active{transform:scale(.96)}
.cw-hero__pause svg{display:block}
.cw-hero__pause .is-play,.cw-hero__pause.is-paused .is-pause{display:none}
.cw-hero__pause.is-paused .is-play{display:block}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.cw-hero__cue{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;padding:10px;color:rgba(255,253,248,.85)}

/* ---------- home sections ---------- */
.cw-photo{width:100%;height:520px;object-fit:cover}
.cw-photo--tall{height:540px}
.cw-imgband{position:relative;background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.cw-imgband>img{width:100%;height:660px;object-fit:cover}
.cw-imgband__copy{position:absolute;inset:0;display:flex;align-items:center}
.cw-imgband__copy>.cw-wrap{width:100%}
.cw-panel{max-width:560px;background:rgba(250,247,240,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,253,248,.7);padding:40px 42px;box-shadow:var(--shadow-panel)}
.cw-panel .cw-h2{margin-bottom:22px}
.cw-panel .cw-btns{margin-top:30px}

/* plan index */
.cw-index{display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:center;margin-top:44px}
.cw-index__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.cw-index__row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,1.3fr) auto;align-items:baseline;gap:16px;padding:20px 8px;border-bottom:1px solid var(--rule);position:relative;transition:background-color .3s ease}
.cw-index__row:hover,.cw-index__row:focus-within,.cw-index__row.is-on{background:rgba(255,255,255,.55)}
.cw-index__name{font-family:var(--serif);font-size:31px;line-height:1.1}
.cw-index__name a::after{content:"";position:absolute;inset:0}
.cw-index__specs{display:flex;flex-wrap:wrap;gap:4px 18px}
.cw-index__cell{font-size:14px;font-weight:400;color:var(--muted);white-space:nowrap}
.cw-index__price{text-align:right}
.cw-index__price .cw-rent,.cw-index__price .cw-wait{display:block;white-space:nowrap}
.cw-index__price small{display:block;font-size:12.5px;color:var(--caption)}
.cw-index__render{position:relative;aspect-ratio:1/1;background:var(--white);border:1px solid var(--rule)}
.cw-index__render img{position:absolute;inset:6%;width:88%;height:88%;object-fit:contain;opacity:0;transition:opacity .6s ease}
.cw-index__render img.is-on{opacity:1}
.cw-index__foot{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;margin-top:24px}

/* hairline place / amenity rows */
.cw-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.cw-rows li{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:15px 0;border-bottom:1px solid var(--rule);font-size:14px;font-weight:400;line-height:1.5}
.cw-rows li>span:last-child{color:var(--muted);font-weight:300;text-align:right;white-space:nowrap}
.cw-rows--two{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
.cw-meta{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:28px;align-items:baseline}

/* closing band */
.cw-close{text-align:center;padding:96px 0}
.cw-close .cw-h2{font-size:52px;color:var(--cream);margin-bottom:30px}
.cw-close .cw-btns{justify-content:center}
.cw-close__sub{margin-top:26px;font-size:13px}

/* ---------- specs, chips, filter bar ---------- */
.cw-specs{display:flex;margin:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.cw-specs>div{flex:1;padding:10px 14px 10px 0}
.cw-specs>div+div{padding-left:14px;border-left:1px solid var(--rule)}
.cw-specs dt{font-size:12.5px;color:var(--muted);line-height:1.4}
.cw-specs dd{margin:2px 0 0;font-size:15px;font-weight:400;color:var(--ink);font-variant-numeric:tabular-nums}
.cw-filters{display:flex;flex-wrap:wrap;align-items:center;gap:14px 40px;padding:20px 0;border-bottom:1px solid var(--rule)}
.cw-filters__group{display:flex;align-items:center;gap:12px;border:0;margin:0;padding:0;min-width:0}
.cw-filters__group legend{float:left;padding:0;margin-right:12px;font-size:12.5px;color:var(--muted)}
.cw-chips{display:flex;flex-wrap:wrap;gap:8px}
.cw-chip{min-height:40px;padding:8px 16px;border:1px solid var(--chip);background:transparent;color:var(--ink);font-size:13px;font-weight:400;cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease}
.cw-chip:hover{border-color:var(--pine)}
.cw-chip[aria-pressed="true"]{background:var(--pine);border-color:var(--pine);color:var(--cream)}
.cw-filters__count{margin-left:auto;font-size:13px;color:var(--muted)}
.cw-sheetbtn{display:none}
.cw-active{display:none}

/* ---------- plan prices ---------- */
.cw-wait{font-family:var(--serif);font-size:22px;color:var(--muted)}

/* render carousel (3D / 2D / photo) */
.cw-frame{position:relative;background:var(--white);border-bottom:1px solid var(--rule);aspect-ratio:1/1;overflow:hidden}
.cw-frame__slide{position:absolute;inset:4%;width:92%;height:92%;object-fit:contain;opacity:0;transition:opacity .6s ease;pointer-events:none}
.cw-frame__slide.is-on{opacity:1}
.cw-frame__tabs{position:absolute;left:14px;top:14px;display:flex;gap:6px;z-index:5}
.cw-frame__tab{min-height:32px;min-width:44px;padding:4px 12px;border:1px solid var(--rule);background:rgba(255,255,255,.92);font-size:12px;font-weight:400;color:var(--muted);cursor:pointer;transition:background-color .3s ease,color .3s ease,border-color .3s ease}
.cw-frame__tab:hover{border-color:var(--pine);color:var(--ink)}
.cw-frame__tab[aria-pressed="true"]{background:var(--charcoal);border-color:var(--charcoal);color:var(--cream)}
/* 3D tour button: top right of the plan frame, opposite the 3D/2D tabs and clear of the
   lightbox's zoom glyph (bottom right). Opens the tour dialog (tour-modal.js). */
.cw-frame__3d{position:absolute;right:14px;top:14px;z-index:5;display:grid;place-items:center;width:46px;height:46px;padding:0;border:0;background:rgba(33,29,21,.74);color:var(--cream);cursor:pointer;box-shadow:0 0 0 1px rgba(255,255,255,.18);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:background-color .3s ease,transform .15s ease}
.cw-frame__3d:hover{background:var(--pine)}
.cw-frame__3d:active{transform:scale(.96)}
.cw-frame__3d:focus-visible{outline:2px solid var(--pine);outline-offset:3px}
.cw-frame__3d svg{display:block}
/* 3D tour dialog: the lightbox's scrim and close button around a cream card. */
html.cw-tm-open{overflow:hidden}
.cw-tm{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:24px;border:0;background:transparent;display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .25s ease}
.cw-tm[open]{display:flex}
.cw-tm.is-in{opacity:1}
.cw-tm::backdrop{background:rgba(24,21,16,.86);-webkit-backdrop-filter:blur(12px) saturate(.9);backdrop-filter:blur(12px) saturate(.9)}
.cw-tm__card{width:min(1180px,100%);max-height:100%;display:flex;flex-direction:column;background:var(--cream);box-shadow:var(--shadow-float);transform:translateY(8px);transition:transform .3s var(--ease)}
.cw-tm.is-in .cw-tm__card{transform:none}
.cw-tm__head{display:flex;align-items:center;gap:12px 28px;padding:14px 14px 14px 24px;border-bottom:1px solid var(--rule)}
.cw-tm__title{font-size:26px;line-height:1.2;margin:0;margin-right:auto}
.cw-tm__new{font-size:13.5px;white-space:nowrap}
.cw-tm__close{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid var(--rule);background:var(--white);color:var(--ink);cursor:pointer;transition:background-color .3s ease,border-color .3s ease,color .3s ease}
.cw-tm__close:hover{background:var(--pine);border-color:var(--pine);color:var(--cream)}
.cw-tm__frame{position:relative;aspect-ratio:16/9;max-height:calc(100vh - 170px);background:var(--charcoal)}
.cw-tm__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.cw-tm__note{margin:0;padding:10px 24px 12px;font-size:12.5px;color:var(--caption)}
@media (max-width:760px){
  .cw-tm{padding:0;align-items:stretch}
  .cw-tm__card{width:100%;height:100%}
  .cw-tm__head{flex-wrap:wrap;padding:10px 10px 10px 16px}
  .cw-tm__title{font-size:22px;flex:1 1 calc(100% - 96px)}
  .cw-tm__new{order:3;flex:0 0 auto;margin-bottom:4px}
  .cw-tm__frame{flex:1;aspect-ratio:auto;max-height:none}
  .cw-frame__3d{width:46px;height:46px;right:12px;top:12px}
}
@media (prefers-reduced-motion:reduce){.cw-tm,.cw-tm__card{transition:none}.cw-tm__card{transform:none}}
.cw-frame__note{position:absolute;left:14px;bottom:12px;z-index:5;font-size:12px;color:var(--caption);background:rgba(255,255,255,.85);padding:2px 8px}

/* ---------- plans and availability: one section per plan, homes as collapsible rows ---------- */
.cw-pg{padding:64px 0 72px;border-bottom:1px solid var(--rule)}
.cw-pg__head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 48px;flex-wrap:wrap;padding-bottom:22px;border-bottom:1px solid var(--ink)}
.cw-pg__name{font-size:46px;line-height:1.05;text-wrap:balance}
.cw-pg__spec{margin:10px 0 0;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.cw-pg__meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}
.cw-pg__meta .cw-rent{font-size:30px;color:var(--pine)}
.cw-pg__count{font-size:13px;color:var(--muted)}
.cw-pg__body{display:grid;grid-template-columns:minmax(0,460px) minmax(0,1fr);gap:64px;margin-top:36px;align-items:start}
.cw-pg__render{position:sticky;top:calc(var(--nav-h) + 24px)}
.cw-pg__render .cw-frame{border:1px solid var(--rule)}
.cw-pg__units .cw-empty{padding-top:0}
.cw-ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.cw-ul__item{border-bottom:1px solid var(--rule)}
.cw-ul__item[hidden]{display:none}
.cw-ul__h{margin:0;font:inherit}
.cw-ul__btn{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr) auto 44px;align-items:center;gap:16px;width:100%;min-height:76px;padding:12px 0 12px 14px;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer;font:inherit;font-variant-numeric:tabular-nums;transition:background-color .25s ease}
.cw-ul__btn:hover{background:rgba(255,255,255,.65)}
.cw-ul__btn:focus-visible{outline-offset:-2px}
.cw-ul__unit{font-family:var(--serif);font-size:25px;line-height:1.1;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
.cw-ul__kw{font-family:var(--sans);font-size:12.5px;color:var(--muted);margin-right:2px;vertical-align:.2em}
.cw-ul__when{font-size:14px;color:var(--muted)}
.cw-ul__rent{font-family:var(--serif);font-size:26px;white-space:nowrap;text-align:right;font-variant-numeric:lining-nums tabular-nums}
.cw-ul__chev{display:grid;place-items:center;width:44px;height:44px;color:var(--pine);transition:transform .4s var(--ease)}
.cw-ul__item.is-open .cw-ul__btn{background:var(--card)}
.cw-ul__item.is-open .cw-ul__chev{transform:rotate(180deg)}
.cw-ul__panel{display:grid;grid-template-rows:1fr;background:var(--card);scroll-margin-top:84px}
.cw-ul__clip{min-height:0;overflow:hidden}
.cw-js .cw-ul__panel{grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .45s var(--ease),visibility 0s linear .45s}
.cw-js .cw-ul__item.is-open .cw-ul__panel{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .45s var(--ease),visibility 0s}
.cw-ul__inner{display:flex;flex-direction:column;gap:20px;padding:6px 14px 30px}
.cw-specs--unit>div{padding-right:10px}
.cw-specs--unit>div+div{padding-left:12px}
.cw-ul__inner .cw-thumb{width:120px}
.cw-ul__acts{display:flex;flex-wrap:wrap;gap:10px}
.cw-ul__links{margin-top:0;font-size:13.5px}
.cw-ul__none{margin:0;padding:18px 0;border-bottom:1px solid var(--rule);color:var(--muted);font-size:14px}
.cw-ul__none[hidden]{display:none}

/* unit table */
.cw-units{width:100%;border-collapse:collapse;font-size:14px;font-weight:400;font-variant-numeric:tabular-nums}
.cw-units caption{text-align:left;padding:0 0 12px}
.cw-units th{font-size:12.5px;font-weight:400;color:var(--muted);text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--rule);white-space:nowrap}
.cw-units td{padding:14px 12px 14px 0;border-bottom:1px solid var(--rule);vertical-align:middle}
.cw-units tbody tr{transition:background-color .25s ease}
.cw-units tbody tr:hover{background:rgba(255,255,255,.6)}
.cw-units .cw-u{font-family:var(--serif);font-size:22px;font-weight:400}
.cw-units .cw-r{font-family:var(--serif);font-size:26px;white-space:nowrap}
.cw-units .cw-act{text-align:right;white-space:nowrap}
.cw-units .cw-act .cw-btn+.cw-btn{margin-left:8px}
.cw-units .is-num{text-align:right}
/* column rhythm. Compact tables (bedroom pages): unit absorbs spare width, date, rent and actions sit tight at the right.
   Full table (availability): every column gets a share, so Unit / Plan / Beds / Baths / Sq ft / Available / Rent / actions read as one even run. */
@media (min-width:761px){
  .cw-units .cw-fit,.cw-units [data-k="when"],.cw-units [data-k="rent"],.cw-units .cw-act{width:1%;white-space:nowrap}
  .cw-units .cw-fit{padding-left:32px}
  .cw-units [data-k="when"]{padding-left:48px;padding-right:32px}
  .cw-units [data-k="rent"]{text-align:right;padding-right:40px}
  .cw-units:has(.cw-c-plan) th,.cw-units:has(.cw-c-plan) td{width:1%;white-space:nowrap;padding-left:0;padding-right:4px}
  .cw-units:has(.cw-c-plan) .is-num,.cw-units:has(.cw-c-plan) [data-k="rent"]{text-align:left}
  .cw-units:has(.cw-c-plan) .cw-act{padding-right:0;text-align:left}
}
.cw-unitnote{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:baseline;margin-top:16px}
.cw-empty{padding:22px 0;border-bottom:1px solid var(--rule)}
.cw-empty p{margin:0 0 14px}

/* bedroom pages: plan feature */
.cw-feature{display:grid;grid-template-columns:minmax(0,640px) 1fr;gap:64px;padding:72px 0;border-bottom:1px solid var(--rule);align-items:start}
.cw-feature .cw-frame{border:1px solid var(--rule)}
.cw-feature__copy{display:flex;flex-direction:column;gap:20px}
.cw-feature__name{font-size:44px;line-height:1.1}
.cw-disclaimer{padding:32px 0 0;font-size:13px;color:var(--caption)}

/* fees */
.cw-fees__head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap;margin-bottom:28px}
.cw-fees{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border-top:1px solid var(--rule)}
.cw-fees>div{padding:20px 24px 22px 0;border-bottom:1px solid var(--rule)}
.cw-fees>div:not(:nth-child(3n+1)){padding-left:24px;border-left:1px solid var(--rule)}
.cw-fees dt{font-size:12.5px;color:var(--muted);font-weight:300;margin-bottom:6px}
.cw-fees dd{margin:0}
.cw-fees__amt{display:block;font-family:var(--serif);font-size:24px;line-height:1.25;font-variant-numeric:lining-nums tabular-nums;color:var(--ink)}
.cw-fees__note{display:block;margin-top:4px;font-size:13px;line-height:1.6;color:var(--caption);font-weight:300}
.cw-fees__eho{margin-top:18px}
.cw-fees a{color:var(--pine);border-bottom:1px solid currentColor}

/* ---------- amenities (gate item 8f/8g) ----------
   Grouped lists with a line icon per item, photos beside the matching group,
   pets and parking as fact rows. Square corners throughout, as the brand. */
.cw-amrow{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px;align-items:center;margin-top:56px}
.cw-amrow--flip{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.cw-amrow--list{grid-template-columns:minmax(0,1fr);margin-top:72px}
.cw-amrow--list .cw-amlist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;border-top:0}
.cw-amrow--list .cw-amlist li:nth-child(-n+3){border-top:1px solid var(--rule)}
.cw-amgroup__h{font-size:28px;line-height:1.2;margin:0 0 18px}
.cw-amlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.cw-amlist li{display:flex;align-items:center;gap:14px;min-height:52px;padding:10px 0;border-bottom:1px solid var(--rule);font-size:14.5px;font-weight:400;line-height:1.4;text-wrap:pretty}
.cw-ai{flex:none;width:22px;height:22px;color:var(--pine)}
.cw-amtag{margin-left:auto;padding-left:12px;font-size:12px;font-weight:300;color:var(--caption);white-space:nowrap}
.cw-ammedia{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);grid-template-rows:1fr 1fr;gap:12px;height:540px}
.cw-amshot{margin:0;min-width:0;min-height:0}
.cw-amshot--lead{grid-row:1/span 2}
.cw-amshot>div{position:relative;height:100%}
.cw-amshot img{display:block;width:100%;height:100%;object-fit:cover;outline:1px solid rgba(0,0,0,.08);outline-offset:-1px}
.cw-amhead{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px 48px}
.cw-amhead .cw-small{margin:0;max-width:420px}
.cw-amhome{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px;margin-top:48px;align-items:start}
.cw-amgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 40px}
.cw-amhome .cw-ammedia{position:sticky;top:calc(var(--nav-h) + 24px);height:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto}
.cw-amhome .cw-amshot--lead{grid-row:auto;grid-column:1/-1}
.cw-amhome .cw-amshot>div{height:auto;aspect-ratio:1/1}
.cw-amhome .cw-amshot--lead>div{aspect-ratio:3/2}
.cw-amfacts{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr);gap:56px;align-items:start}
.cw-amfacts__photo>div{position:relative}
.cw-amfacts__photo img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}
.cw-dl.cw-facts{margin:22px 0 18px}
.cw-dl.cw-facts>div{grid-template-columns:96px 1fr;padding:12px 0}
.cw-amfact .cw-small{max-width:420px}

/* ---------- gallery ---------- */
.cw-jump{display:flex;gap:24px;flex-wrap:wrap}
.cw-gal{margin-top:40px}
.cw-gal h2{margin-bottom:24px}
.cw-jrow{display:flex;gap:10px;margin-bottom:10px}
.cw-tile{position:relative;flex:var(--ar) 1 0%;aspect-ratio:var(--ar);overflow:hidden;background:var(--paper);border:0;padding:0;margin:0;cursor:zoom-in;display:block}
.cw-tile img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.cw-tile:hover img{transform:scale(1.03)}
.cw-tile__cap{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 9px;font-size:12.5px;line-height:1.3;color:#fff;text-align:left;background:linear-gradient(180deg,rgba(18,17,14,0) 0,rgba(18,17,14,.72) 16px,rgba(18,17,14,.78) 100%);text-shadow:0 1px 2px rgba(18,17,14,.5);opacity:0;transition:opacity .35s ease}
.cw-tile:hover .cw-tile__cap,.cw-tile:focus-visible .cw-tile__cap{opacity:1}
.cw-tile__src{display:block;font-size:12px;opacity:.85}
.cw-band--tight{padding:72px 0 80px}
.cw-tourgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cw-tourcard{background:var(--white);border:1px solid var(--rule);display:flex;flex-direction:column}
.cw-tourcard__img{position:relative;display:block;width:100%;aspect-ratio:4/3;padding:0;border:0;border-bottom:1px solid var(--rule);background:var(--white);cursor:pointer;overflow:hidden}
.cw-tourcard__img img{position:absolute;inset:6%;width:88%;height:88%;object-fit:contain;transition:transform .9s var(--ease)}
.cw-tourcard__img:hover img{transform:scale(1.03)}
.cw-tourcard__img:focus-visible{outline:2px solid var(--pine);outline-offset:-4px}
.cw-tourcard__badge{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:46px;height:46px;background:rgba(33,29,21,.74);color:var(--cream);transition:background-color .3s ease}
.cw-tourcard__img:hover .cw-tourcard__badge{background:var(--pine)}
.cw-tourcard__body{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px}
.cw-tourcard__body .cw-small{margin:2px 0 0}
.cw-index__tour{position:relative;z-index:2;display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:-6px 0;padding:4px 0;border:0;background:none;color:var(--pine);font:inherit;font-size:13px;font-weight:400;cursor:pointer;white-space:nowrap;border-bottom:1px solid transparent;transition:border-color .3s ease}
.cw-index__tour svg{width:26px;height:20px;flex:none}
.cw-index__tour:hover{border-bottom-color:currentColor}
.cw-index__tour:focus-visible{outline:2px solid var(--pine);outline-offset:3px}

/* ---------- neighborhood explorer ---------- */
.cw-nb{display:grid;grid-template-columns:230px 340px 1fr;height:calc(100svh - var(--nav-h) - 64px);min-height:620px;border-bottom:1px solid var(--rule)}
.cw-nb__rail{background:var(--paper);border-right:1px solid var(--rule);padding:32px 22px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.cw-nb__rail h1{font-size:34px;line-height:1.1;margin-bottom:22px}
.cw-nb__cats{display:flex;flex-direction:column;gap:2px;position:relative}
/* Positioned so each chip's screen-reader text stays inside the chip row's scroller (round-3 finding 1). */
.cw-nb__cat{position:relative}
/* Reserve the attribution's box from first paint so the zoom buttons above it do not jump 44 px when it fills in (round-3 finding 3). */
.cw-nb .maplibregl-ctrl-bottom-right{left:0}
.cw-nb .maplibregl-ctrl-attrib.maplibregl-attrib-empty{display:block;visibility:hidden;box-sizing:content-box;min-height:20px;padding:2px 24px 2px 0;margin:10px}
.cw-nb__cat{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;padding:10px 12px;border:0;border-left:2px solid transparent;background:none;text-align:left;cursor:pointer;font-size:14px;font-weight:400;color:var(--ink);transition:background-color .25s ease,border-color .25s ease}
.cw-nb__cat:hover{background:rgba(255,255,255,.6)}
.cw-nb__cat[aria-pressed="true"]{border-left-color:var(--pine);background:var(--white)}
.cw-nb__cat span:last-child{font-size:12.5px;color:var(--muted)}
.cw-nb__list{background:var(--pine);color:var(--cream);overflow-y:auto;padding:28px 0 20px}
.cw-nb__list h2{font-size:26px;color:var(--cream);padding:0 24px;margin-bottom:6px}
.cw-nb__note{font-size:12.5px;color:#D5DECF;padding:0 24px 12px;margin:0}
.cw-nb__places{list-style:none;margin:0;padding:0}
.cw-place{display:grid;grid-template-columns:1fr auto;gap:2px 12px;width:100%;padding:13px 24px;border:0;border-top:1px solid rgba(243,239,231,.14);background:transparent;color:var(--cream);text-align:left;cursor:pointer;font-size:14px;font-weight:400;line-height:1.4;transition:background-color .2s ease}
.cw-place:hover,.cw-place.is-hot{background:var(--pine-hover)}
.cw-place[aria-pressed="true"]{background:#2F4636}
.cw-place__d{font-variant-numeric:tabular-nums;color:#E3EADD;white-space:nowrap}
.cw-place__sub{grid-column:1/-1;font-size:12.5px;font-weight:300;color:#CFD9C8}
.cw-place__off{display:inline-block;margin-left:8px;padding:1px 7px;border:1px solid rgba(243,239,231,.4);font-size:12px;font-weight:400;color:var(--cream);white-space:nowrap}
.cw-place:focus-visible{outline:2px solid var(--sage-hover);outline-offset:-3px}
.cw-nb__map{position:relative;background:#F3F1EC}
.cw-nb__canvas{position:absolute!important;inset:0}
.cw-nb__badge{position:absolute;left:18px;top:18px;z-index:3;background:var(--white);border:1px solid var(--rule);padding:12px 16px;box-shadow:var(--shadow-float);font-size:13px;line-height:1.5}
.cw-nb__badge strong{display:block;font-family:var(--serif);font-weight:400;font-size:20px}
.cw-nb__recentre{position:absolute;right:18px;top:18px;z-index:3}
.cw-nb__fail{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:40px;text-align:center;color:var(--muted)}
.cw-nb__foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;padding:20px 0 28px;font-size:13px}
.cw-pin{width:14px;height:14px;border-radius:50%;background:#313131;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);transition:transform .2s ease,background-color .2s ease;cursor:pointer}
.cw-pin.is-hot,.cw-pin.is-on{transform:scale(1.45);background:var(--pine)}
.cw-home-pin{display:flex;flex-direction:column;align-items:center;pointer-events:none}
.cw-home-pin span{display:grid;place-items:center;width:58px;height:62px;background:var(--pine);border:2px solid #fff;box-shadow:0 10px 24px -10px rgba(0,0,0,.55)}
.cw-home-pin img{display:block;width:38px;height:auto}
.cw-home-pin i{width:2px;height:12px;background:var(--pine)}
.cw-home-pin b{width:12px;height:12px;border-radius:50%;background:var(--pine);border:2px solid #fff}
.maplibregl-popup-content{border-radius:0!important;padding:16px 40px 16px 18px!important;font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--ink);box-shadow:var(--shadow-float)!important}
.maplibregl-popup-content strong{display:block;font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.2;margin-bottom:4px}
.maplibregl-popup-content a{color:var(--pine);border-bottom:1px solid currentColor}
.maplibregl-popup-close-button{width:40px;height:40px;font-size:20px}
.maplibregl-canvas:focus-visible{outline:2px solid var(--pine);outline-offset:-2px}
.maplibregl-cooperative-gesture-screen{background:rgba(33,29,21,.45)!important;font-family:var(--sans)!important;font-size:13px!important;color:#FFFDF8!important}

/* ---------- prose pages ---------- */
.cw-doc{display:grid;grid-template-columns:240px minmax(0,720px);gap:64px;padding-top:64px;padding-bottom:96px}
.cw-toc{position:sticky;top:calc(var(--nav-h) + 24px);align-self:start;font-size:14px}
.cw-toc ol{list-style:none;margin:12px 0 0;padding:0;border-top:1px solid var(--rule)}
.cw-toc li a{display:block;padding:10px 0;border-bottom:1px solid var(--rule);font-weight:400;transition:color .3s ease}
.cw-toc li a:hover{color:var(--pine)}
.cw-toc summary{list-style:none;cursor:default;font-size:12.5px;color:var(--muted)}
.cw-prose{font-size:15px;line-height:1.85;color:var(--muted)}
.cw-prose h2{font-size:34px;line-height:1.15;margin:48px 0 16px}
.cw-prose h2:first-child{margin-top:0}
.cw-prose h3{font-size:22px;margin:28px 0 10px}
.cw-prose ul{padding-left:20px;margin:0 0 16px}
.cw-prose a{color:var(--pine);border-bottom:1px solid currentColor}
.cw-prose table{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0 20px}
.cw-prose th,.cw-prose td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.cw-prose th{font-weight:400;font-size:12.5px;color:var(--muted)}
.cw-prose td{color:var(--ink)}
.cw-dl{margin:0;border-top:1px solid var(--rule)}
.cw-dl>div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--rule);font-size:14.5px;line-height:1.6}
.cw-dl dt{color:var(--muted);font-size:12.5px;padding-top:2px}
.cw-dl dd{margin:0;font-weight:400}
.cw-dl a{color:var(--pine);border-bottom:1px solid currentColor}
/* apply: the OLL embed and its fallback share one reserved 420 px box, so neither shifts the page */
.cw-apply{display:grid;grid-template-rows:auto 1fr;min-height:420px}
.cw-apply__unit{margin:0;padding:12px 18px;background:#E6EBE2;border-left:3px solid var(--pine);font-size:14.5px}
.cw-oll{min-height:0;border:1px solid var(--rule);background:var(--white);padding:32px}
.cw-oll__loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:300px;margin:0;font-size:14.5px;color:var(--muted)}
.cw-oll__loading::before{content:"";width:14px;height:14px;border:1.5px solid var(--chip);border-top-color:var(--pine);border-radius:50%;animation:cwSpin 1s linear infinite}
@keyframes cwSpin{to{transform:rotate(360deg)}}
.cw-apply__help{margin:14px 0 0}
.cw-apply__fallback{display:flex;flex-direction:column;justify-content:center;gap:4px;border:1px solid var(--rule);background:var(--white);padding:40px clamp(24px,6vw,72px);font-size:15px;line-height:1.75;color:var(--ink)}
.cw-apply__fallback p{margin:0;max-width:60ch}
.cw-apply__fallback .cw-apply__lead{font-family:var(--serif);font-size:30px;line-height:1.2;margin-bottom:10px}
.cw-apply__fallback .cw-small{margin-top:14px;color:var(--muted)}
.cw-apply__fallback a{color:var(--pine);border-bottom:1px solid currentColor}
.cw-apply [hidden]{display:none!important}
.cw-notice{background:#E6EBE2;border-left:3px solid var(--pine);padding:16px 20px;font-size:14.5px;line-height:1.7;color:var(--ink)}
.cw-notice a{color:var(--pine);border-bottom:1px solid currentColor}

/* ---------- footer (ported .ariaFoot) ---------- */
.cw-foot{background:var(--charcoal);color:var(--foot-text)}
.cw-foot__inner{max-width:1400px;margin:0 auto;padding:0 40px}
.cw-foot a{color:#E4DFD3;transition:color var(--t) ease}
.cw-foot a:hover{color:var(--sage-hover)}
.cw-foot__top{display:grid;grid-template-columns:1.5fr 1fr .9fr 1.1fr;gap:56px;padding:72px 0 52px}
.cw-foot__top>*{min-width:0}
.cw-foot__logo{width:150px;height:auto}
.cw-foot__address{font-size:13.5px;line-height:1.8;color:var(--foot-addr);margin:22px 0 0;font-style:normal}
.cw-foot__inline{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:16px;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.cw-foot__head{font-family:var(--sans);font-size:12.5px;font-weight:400;letter-spacing:normal;text-transform:none;color:var(--foot-muted);margin:0 0 16px}
.cw-foot__col{display:flex;flex-direction:column;gap:12px;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.cw-foot__col--prose{gap:12px;font-size:13px;line-height:1.75;letter-spacing:normal;text-transform:none;color:var(--foot-addr)}
/* Inline text links: an underline that hugs the words (no inline-flex box), with padding for the hit area. */
.cw-foot__col--prose a{text-decoration:underline;text-decoration-color:rgba(216,210,196,.55);text-decoration-thickness:1px;text-underline-offset:3px;padding:6px 0}
.cw-foot__legal{display:flex;align-items:flex-start;gap:18px;padding:26px 0;color:var(--foot-muted);border-top:1px solid rgba(216,210,196,.15)}
.cw-foot__badges{display:flex;gap:12px;flex:none;color:var(--foot-text);padding-top:2px}
.cw-foot__legal p{font-size:12px;line-height:1.75;margin:0;max-width:880px}
.cw-foot__legal a{color:var(--foot-text);border-bottom:1px solid rgba(216,210,196,.45)}
.cw-foot__bar{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:22px 0 34px;font-size:12px;color:var(--foot-muted);border-top:1px solid rgba(216,210,196,.15)}
.cw-foot__copy{margin:0;line-height:1.75;max-width:620px}
.cw-foot__policy{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:12px}
.cw-foot__policy a{color:var(--foot-addr)}
.cw-foot__kiara{max-width:340px;margin-top:26px;padding-top:20px;border-top:1px solid rgba(216,210,196,.15)}
.cw-foot__kiara a{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--foot-addr);font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.cw-foot__kiara img{height:20px;width:auto}
.cw-foot__kiara img+img{height:17px;filter:brightness(0) invert(.86)}

/* ---------- scroll reveal (home photo sections only) ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.is-in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .cw-hero__slide{animation:none!important}
  .cw-hero__slide+.cw-hero__slide{display:none!important}
  .cw-hero__h1>span>span,.cw-hero__live{animation:none!important}
}

/* plan photo thumbnails (bedroom pages) */
.cw-thumbs{display:flex;gap:10px;flex-wrap:wrap}
.cw-thumb{position:relative;width:132px;aspect-ratio:3/2;padding:0;border:1px solid var(--rule);background:var(--paper);overflow:hidden;cursor:zoom-in}
.cw-thumb img{width:100%;height:100%;object-fit:cover}
.cw-thumb[data-zoom]::after{width:26px!important;height:26px!important;right:6px!important;bottom:6px!important}
.cw-phone-only{display:none}
@media (max-width:760px){.cw-phone-only{display:inline}.cw-units .cw-col-wide{display:none}}

/* The cookie notice stays out of the home hero (headline and live line) until it scrolls away. */
html:not(.nav-scrolled) .cw-home .acb{opacity:0!important;pointer-events:none;visibility:hidden}

/* Numerals in Cormorant: lining, tabular figures everywhere, so a rent or a unit
   number reads the same on every page (Cormorant defaults to old-style figures). */
h1,h2,h3,h4,.cw-menu__link span,.cw-hero__live,.cw-index__name,.cw-wait,.cw-rent,.cw-units .cw-u,.cw-units .cw-r,.cw-ul__unit,.cw-ul__rent,.cw-nb__badge strong,.maplibregl-popup-content strong,.cw-apply__fallback .cw-apply__lead,.acf-title{font-variant-numeric:lining-nums tabular-nums}
