/* Responsive layer, loaded after site.css. Breakpoints: tablet 1120 px,
   phone-and-small-tablet 900 px, phone 760 px, small phone 560 px. Touch targets
   are 44 px from 900 px down. */

html,body{max-width:100%}
body{overflow-x:hidden}

/* ---------- tablet ---------- */
@media (max-width:1120px){
  .cw-amrow,.cw-amrow--flip{gap:48px}
  .cw-wrap,.cw-foot__inner{padding:0 32px}
  .cw-nav__inner{padding:0 32px}
  .cw-split{gap:48px}
  .cw-foot__top{grid-template-columns:1fr 1fr;gap:34px 32px;padding:52px 0 40px}
  .cw-foot__brand{grid-column:1/-1;max-width:420px}
  .cw-feature{grid-template-columns:1fr 1fr;gap:40px}
  .cw-pg__body{gap:36px}
  .cw-units .cw-btn--sm{padding:10px 12px}
}

@media (max-width:1000px){
  .cw-nav__phone{display:none}
  .cw-units-wrap{overflow-x:auto}
}

/* ---------- phones and small tablets ---------- */
@media (max-width:900px){
  :where(:root){--nav-h:72px;--t:.12s}
  .cw-wrap,.cw-foot__inner{padding:0 20px}
  .cw-nav__inner{padding:0 20px;column-gap:16px}
  .cw-nav__logo .wordmark{width:70px}
  .cw-nav__res{display:none}
  .cw-menu__inner{padding:100px 22px 34px;justify-content:flex-start}
  .cw-menu__nav{grid-template-columns:1fr}
  .cw-menu__link span{font-size:24px}
  .cw-band{padding:64px 0 56px}
  .cw-band--tight{padding:48px 0}
  .cw-pagehead{padding:44px 0 36px}
  .cw-split,.cw-split--wide{grid-template-columns:1fr;gap:28px}
  .cw-h1{font-size:clamp(32px,8.6vw,46px);line-height:1.08}
  .cw-h2{font-size:clamp(25px,6.2vw,34px);line-height:1.12}
  .cw-close .cw-h2{font-size:clamp(30px,8vw,40px)}
  .cw-photo,.cw-photo--tall{height:auto;aspect-ratio:3/2}
  .cw-imgband>img{height:auto;aspect-ratio:3/2}
  .cw-imgband__copy{position:static;display:block}
  .cw-imgband__copy>.cw-wrap{padding:0}
  .cw-panel{max-width:none;background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none;border:0;box-shadow:none;padding:32px 20px 38px}
  .cw-index{grid-template-columns:1fr;margin-top:28px}
  .cw-index__render{display:none}
  .cw-index__row{grid-template-columns:1fr auto;gap:2px 14px;padding:14px 4px;min-height:56px}
  .cw-index__name{font-size:26px;grid-column:1;grid-row:1}
  .cw-index__price{grid-column:2;grid-row:1/span 2}
  .cw-index__cell{grid-row:2;font-size:13px}
  .cw-index__row .cw-index__cell{display:inline}
  .cw-index__specs{grid-column:1;grid-row:2;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--muted)}
  .cw-rows--two{grid-template-columns:1fr}
  .cw-amrow,.cw-amrow--flip{grid-template-columns:minmax(0,1fr);gap:28px;margin-top:40px}
  .cw-amrow .cw-amgroup{order:-1}
  .cw-amrow--list{margin-top:48px}
  .cw-amrow--list .cw-amlist{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cw-amrow--list .cw-amlist li:nth-child(3){border-top:0}
  .cw-ammedia{height:auto;grid-template-rows:auto;gap:8px}
  .cw-amrow .cw-amshot--lead{grid-row:auto;grid-column:1/-1}
  .cw-amrow .cw-ammedia{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cw-amrow .cw-amshot>div{height:auto;aspect-ratio:4/3}
  .cw-amrow .cw-amshot--lead>div{aspect-ratio:3/2}
  .cw-amgroup__h{font-size:24px;margin-bottom:12px}
  .cw-feature{grid-template-columns:1fr;gap:28px;padding:44px 0}
  .cw-feature__name{font-size:34px}
  .cw-jrow{flex-wrap:wrap}
  .cw-tile{flex:1 1 calc(50% - 5px);aspect-ratio:3/2}
  .cw-tourgrid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
  .cw-band--tight{padding:56px 0 60px}
  .cw-doc{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:40px;padding-bottom:64px}
  .cw-doc>*{min-width:0;max-width:100%}
  .cw-prose td,.cw-prose th{overflow-wrap:break-word}
  .cw-toc{position:static;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
  .cw-toc summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;cursor:pointer;font-size:14px;color:var(--ink)}
  .cw-toc summary::-webkit-details-marker{display:none}
  .cw-toc summary::after{content:'';width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .25s ease}
  .cw-toc details[open] summary::after{transform:translateY(2px) rotate(-135deg)}
  .cw-toc ol{margin:0 0 8px}
  .cw-toc li:last-child a{border-bottom:0}
  .cw-foot__col:not(.cw-foot__col--prose) a,.cw-foot__inline a,.cw-foot__policy a{display:inline-flex;align-items:center;min-height:44px}
  .cw-nav__toggle{min-width:44px;justify-content:center}
  /* Text links: a taller hit area without moving the underline. */
  .cw-link{position:relative}
  .cw-link::before{content:"";position:absolute;left:0;right:0;top:-8px;bottom:-8px}
  .cw-foot__col{gap:0}
  .cw-foot__col{border-top:1px solid color-mix(in srgb,var(--foot-text) 15%,transparent);padding-top:24px}

  /* plans and availability: header stacks, render full width above the list */
  .cw-pg{padding:44px 0 52px}
  .cw-pg__name{font-size:36px}
  .cw-pg__head{flex-direction:column;align-items:flex-start;gap:12px}
  .cw-pg__meta{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:4px 14px;text-align:left}
  .cw-pg__meta .cw-rent{font-size:26px}
  .cw-pg__body{grid-template-columns:minmax(0,1fr);gap:24px;margin-top:24px}
  .cw-pg__render{position:static}
  .cw-ul__btn{grid-template-columns:minmax(0,1fr) auto 36px;gap:2px 12px;min-height:72px;padding:12px 0 12px 4px}
  .cw-ul__unit{grid-column:1;grid-row:1}
  .cw-ul__when{grid-column:1;grid-row:2;font-size:13.5px}
  .cw-ul__rent{grid-column:2;grid-row:1/span 2;font-size:24px}
  .cw-ul__chev{grid-column:3;grid-row:1/span 2;width:36px}
  .cw-ul__inner{padding:4px 4px 26px}
  .cw-specs--unit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .cw-specs--unit>div,.cw-specs--unit>div+div{padding:10px 8px 10px 0;border-left:0}
  .cw-specs--unit>div:nth-child(n+4){border-top:1px solid var(--rule)}
  .cw-ul__acts{display:grid;grid-template-columns:1fr 1fr}
  .cw-ul__acts .cw-btn{width:100%}

}

/* ---------- phones ---------- */
@media (max-width:760px){
  .form-grid{grid-template-columns:1fr}
  .cw-form__inner{padding:56px 20px 64px}
  /* privacy services table: label over value */
  .cw-svc thead{display:none}
  .cw-svc,.cw-svc tbody,.cw-svc tr,.cw-svc td{display:block;width:100%}
  .cw-svc tr{padding:14px 0;border-bottom:1px solid var(--rule)}
  .cw-svc td{border:0;padding:2px 0}
  .cw-svc td[data-label="Service"]{font-weight:400;font-size:15px;padding-bottom:6px}
  .cw-svc td[data-label="Host"]::before,.cw-svc td[data-label="Purpose"]::before,.cw-svc td[data-label="When"]::before{content:attr(data-label);display:block;font-size:12px;color:var(--muted)}
  .cw-svc td[data-label="Purpose"],.cw-svc td[data-label="When"]{margin-top:8px}
  .cw-hero{height:78svh;min-height:540px}
  .cw-hero__bar{flex-direction:column;align-items:stretch;gap:12px;padding:0 20px 28px}
  .cw-hero__h1{font-size:40px}
  .cw-hero__live{align-self:flex-end;font-size:21px;min-height:44px;display:inline-flex;align-items:center}
  .cw-nav__tour{padding:8px 12px;letter-spacing:.12em}
  .cw-nav__word{display:none}
  .cw-close .cw-btns{flex-direction:column;align-items:stretch}
  .cw-btns--stack{flex-direction:column;align-items:stretch}
  .cw-btns--stack .cw-btn{width:100%}

  /* filters collapse to one control that opens a sheet */
  .cw-sheetbtn{display:inline-flex}
  .cw-filters{position:fixed;left:0;right:0;bottom:0;z-index:4200;background:var(--paper);border-top:2px solid var(--pine);padding:22px 20px 26px;box-shadow:0 -18px 44px -26px rgba(24,20,14,.5);
    flex-direction:column;align-items:stretch;gap:18px;transform:translateY(110%);visibility:hidden;transition:transform .5s var(--ease),visibility 0s linear .5s}
  .cw-filters.is-open{transform:none;visibility:visible;transition:transform .5s var(--ease)}
  .cw-filters__group{flex-direction:column;align-items:flex-start;gap:8px}
  .cw-filters__group legend{float:none;margin:0 0 8px}
  .cw-filters__done{display:inline-flex!important}
  .cw-filterhead{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:16px 0;border-bottom:1px solid var(--rule)}
  .cw-active{display:flex;flex-wrap:wrap;gap:8px}
  .cw-active button{min-height:36px;padding:6px 12px;border:1px solid var(--pine);background:var(--white);font-size:12.5px;cursor:pointer}
  .cw-active button::after{content:" ×";color:var(--muted)}

  /* units table becomes one card per row */
  .cw-units thead{display:none}
  .cw-units,.cw-units tbody,.cw-units tr,.cw-units td{display:block;width:100%}
  .cw-units tr{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:18px 0;border-bottom:1px solid var(--rule)}
  .cw-units td{border:0;padding:0}
  .cw-units td[data-k="unit"]{grid-column:1;grid-row:1}
  .cw-units td[data-k="rent"]{grid-column:2;grid-row:1;text-align:right}
  .cw-units td[data-k="spec"]{grid-column:1/-1;font-weight:300;color:var(--muted)}
  .cw-units td[data-k="when"]{grid-column:1/-1}
  .cw-units td[data-k="act"]{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;text-align:left}
  .cw-units td[data-k="act"] .cw-btn{width:100%;margin:0!important}
  .cw-units .cw-col-wide{display:none}
  .cw-units caption{display:block;width:100%;padding:0 0 4px;white-space:normal;text-wrap:pretty}
  .cw-fees{grid-template-columns:1fr 1fr}
  .cw-fees>div,.cw-fees>div:not(:nth-child(3n+1)){padding:16px 14px 16px 0;border-left:0}
  .cw-fees>div:nth-child(2n){padding-left:14px;border-left:1px solid var(--rule)}
  .cw-fees__amt{font-size:20px}
  .cw-specs dd{font-size:14px}
  .cw-dl>div{grid-template-columns:96px 1fr}
}
@media (min-width:761px){
  .cw-units td[data-k="spec"]{display:none}
  .cw-filterhead{display:none}
  .cw-filters__done{display:none!important}
}

@media (max-width:640px){
  .cw-amgrid{grid-template-columns:minmax(0,1fr);gap:40px}
  .cw-amrow--list .cw-amlist{grid-template-columns:minmax(0,1fr)}
  .cw-amrow--list .cw-amlist li:nth-child(2){border-top:0}
  /* Phones: one photo per community group (the others stay reachable in the lightbox
     carousel and the gallery), so the first screen does not load six photos at once. */
  .cw-amrow .cw-amshot:not(.cw-amshot--lead){display:none}
  .cw-amlist li{font-size:14px;min-height:48px}
  .cw-foot__top{grid-template-columns:1fr;gap:28px;padding:44px 0 32px}
  .cw-foot__legal{flex-direction:column;gap:16px}
  .cw-foot__bar{flex-direction:column;gap:12px}
  .cw-rows li{font-size:13.5px}
  .cw-jrow{flex-direction:column}
  .cw-tile{flex:none;width:100%}
}

@media (max-width:560px){
  .cw-wrap,.cw-foot__inner{padding:0 16px}
  .cw-band{padding:56px 0 48px}
  .cw-frame__tab{min-height:44px}
}

@media (max-width:400px){
  /* The tour button may wrap to two lines rather than push the page sideways
     (WCAG 1.4.12 text spacing at 320 px). */
  .cw-nav__inner{padding:0 14px;column-gap:8px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  .cw-nav__logo{padding:0 2px}
  .cw-nav__tour{padding:6px 10px;letter-spacing:.08em;white-space:normal}
  .cw-index__price .cw-rent,.cw-index__price .cw-wait{white-space:normal;text-align:right}
}

/* ---------- phone hero ----------
   The hero line sits low on a light photo at phone width, so the lower scrim starts higher and runs darker. */
@media (max-width:700px){
  .cw-hero__scrim{background:linear-gradient(180deg,rgba(18,17,14,.66) 0,rgba(18,17,14,.54) 10%,rgba(18,17,14,.18) 18%,rgba(18,17,14,0) 27%,rgba(18,17,14,0) 50%,rgba(18,17,14,.5) 68%,rgba(18,17,14,.78) 100%)}
}

/* ---------- short landscape screens (phones turned sideways) ----------
   The hero fits the screen, so the headline and Explore show without scrolling. */
@media (max-height:500px) and (orientation:landscape){
  .cw-hero{height:100vh;height:100svh;min-height:320px}
  .cw-hero__bar{padding-bottom:20px}
  .cw-hero__h1{font-size:34px}
}

/* ---------- building explorer ---------- */
@media (max-width: 1100px) {
  .ex-body { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .explorer { padding: 0 0 56px; }
  main > .explorer .explorer-head, main > .explorer .ex-toolbar, main > .explorer .ex-side, main > .explorer .ex-status { padding-left: 22px; padding-right: 22px; }
  .ex-filter-toggle { display: inline-flex; }
  .ex-bar > .ex-group { width: 100%; }
  .ex-bar > .ex-group > .label { display: none; }
  .ex-tabs { display: flex; width: 100%; }
  .ex-tabs button { flex: 1 1 0; min-width: 0; padding: 0 6px; }
  .ex-filter-toggle { width: 100%; justify-content: center; }
  .ex-filters { display: none; }
  .ex-filters.is-open { display: flex; position: fixed; inset: auto 0 0 0; z-index: 70; background: var(--paper); flex-direction: column; align-items: stretch; padding: 18px 22px 22px; gap: 16px; border-top: 1px solid var(--line); box-shadow: 0 -12px 44px color-mix(in srgb, var(--ink) 20%, transparent); max-height: 80dvh; overflow: auto; }
  .ex-filters.is-open .ex-group { justify-content: space-between; }
  .ex-filters-close { display: inline-flex; }
  .ex-chips { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
  .ex-chips button { min-height: 36px; padding: 0 12px; font-size: 12px; background: var(--mist); display: inline-flex; gap: 8px; align-items: center; }
  .ex-stage { aspect-ratio: 4 / 3; min-height: 0; }
  .ex-hint { display: none; }
  .ex-compass { width: 42px; height: 42px; }
  .ex-controls { left: 8px; bottom: 8px; right: 8px; }
  .ex-controls button { min-width: 44px; padding: 0 8px; }
  .unit-card { position: fixed; inset: auto 0 0 0; width: 100%; max-width: none; max-height: 86dvh; border: 0; border-radius: 0; box-shadow: 0 -12px 44px color-mix(in srgb, var(--ink) 20%, transparent); }
  .unit-card[open] { animation: sheet-in 0.35s var(--ease-out); }
  @keyframes sheet-in { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
}
@media (min-width: 761px) {
  .ex-filters-close { display: none; }
}
@media (max-width: 760px) {
  .ex-filters { display: none; }
  .ex-filters.is-open .ex-group { flex-direction: column; align-items: stretch; gap: 8px; }
  .ex-filters-head { order: -1; margin: 0; justify-content: space-between; width: 100%; }
  .ex-filters-head > span { display: inline; font-size: 18px; }
  .ex-chipset button { min-height: 44px; flex: 1 0 auto; }
  .ex-sort button { min-height: 40px; }
  .ex-results { max-height: none; padding-right: 0; }
  .ex-res { gap: 12px; padding: 10px 58px 10px 14px; }
  .tour-360.ex-res-tour { right: 9px; }
  .ex-stage { aspect-ratio: 1 / 1; }
  .ex-ladder { left: 8px; gap: 6px; }
  .ex-rung {width: 54px; height: 40px; font-size: 13px;}
  .ex-rung.is-all { font-size: 12px; }
  .ex-empty { left: 70px; right: 8px; }
  .ex-date { flex-wrap: nowrap; }
  .ex-date input[type="date"] { flex: 1 1 auto; min-height: 44px; font-size: 16px; }
}
@media (max-width:900px){:where(:root){--gutter:20px}}
