/* Crosswood Park — responsive layer, loaded after site.css.
   Breakpoints follow the Aria responsive.css: 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-amfacts{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px 48px}
  .cw-amfacts__photo{grid-column:1/-1}
  .cw-amfacts__photo img{aspect-ratio:21/9}
  .cw-amrow,.cw-amrow--flip,.cw-amhome{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-nb{grid-template-columns:200px 300px 1fr}
  .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){
  :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 img{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:26px}
  .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,.cw-amhome{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-amhome .cw-ammedia{position:static;order:-1;gap:8px}
  .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-tile__cap{opacity:1}
  .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}
  .cw-nb .maplibregl-ctrl-group button{width:44px;height:44px}
  /* 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 rgba(216,210,196,.15);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%}

  /* neighborhood explorer: h1, map at 55svh, one scrolling chip row, list */
  .cw-nb{display:flex;flex-direction:column;height:auto;min-height:0}
  .cw-nb__rail{display:contents}
  .cw-nb__rail h1{order:0;font-size:30px;margin:0;padding:22px 20px 18px;background:var(--paper)}
  .cw-nb__map{order:1;height:55svh;min-height:340px}
  .cw-nb__cats{order:2;flex-direction:row;flex-wrap:nowrap;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding:0 16px;padding:12px 16px;background:var(--paper);border-bottom:1px solid var(--rule);scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
  .cw-nb__cats{min-height:69px} /* the chip row is filled by script; reserve it so the list below does not shift */
  .cw-nb__cats::-webkit-scrollbar{display:none}
  .cw-nb__cats.is-end{-webkit-mask-image:none;mask-image:none}
  .cw-nb__cat{width:auto;flex:none;scroll-snap-align:start;white-space:nowrap;border:1px solid var(--rule);min-height:44px;padding:8px 13px;gap:10px}
  .cw-nb__cat[aria-pressed="true"]{border-color:var(--pine);border-left-color:var(--pine)}
  .cw-nb__list{order:3;max-height:none}
  .cw-nb__badge{left:12px;top:12px;padding:8px 12px}
  .cw-nb__badge strong{font-size:17px}
  .cw-nb__recentre{right:12px;top:12px}
  .cw-nb .maplibregl-popup{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;transform:none!important;max-width:none!important;z-index:3800}
  .cw-nb .maplibregl-popup-tip{display:none}
  .cw-nb .maplibregl-popup-content{border-top:2px solid var(--pine);padding:18px 52px 22px 20px!important;box-shadow:0 -18px 44px -26px rgba(24,20,14,.5)!important}
}

/* ---------- phones ---------- */
@media (max-width:760px){
  /* 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{content:attr(data-label);display:block;font-size:12px;color:var(--muted)}
  .cw-svc td[data-label="Purpose"]{margin-top:8px}
  .cw-hero{height:78svh;min-height:540px}
  .cw-hero__mark{padding-bottom:22vh}
  .cw-hero__mark img{width:200px}
  .cw-hero__bar{flex-direction:column;align-items:stretch;gap:18px;padding:0 20px 28px}
  .cw-hero__h1{font-size:40px}
  .cw-hero__acts{align-items:center;gap:16px;border-top:1px solid rgba(248,245,238,.35);padding-top:12px}
  .cw-hero__live{flex:1;max-width:none;text-align:left;font-size:21px;border-bottom:0;padding:0;min-height:44px;display:flex;align-items:center}
  .cw-hero__cue{display:none}
  .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__count{margin-left:0}
  .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,.cw-amfacts{grid-template-columns:minmax(0,1fr);gap:40px}
  .cw-amfacts__photo img{aspect-ratio:3/2}
  .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}
  .cw-foot__kiara a{gap:8px;letter-spacing:.12em}
}

/* ---------- 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__mark{padding-bottom:30vh}
  .cw-hero__mark img{width:min(22vw,150px)}
  .cw-hero__bar{padding-bottom:20px}
  .cw-hero__h1{font-size:34px}
  .cw-hero__cue{display:none}
}
