/* Shared layout refinements; palettes and silhouettes stay theme-specific. */
body.air{--accent:#397b91;--muted:#536b74;--line:#d6e5e9}
body.glass{--accent:#326eea;--muted:#596b83;--line:#dce3ed}
body.motion{--accent:#db8561}
body.atelier{--accent:#c18c6c}
.residences :is(button,a,input,textarea,summary):focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.residences :is(h1,:is(h2,.page-heading),h3){text-wrap:balance}
.residences p{ text-wrap:pretty }
.residences .nav a{position:relative;padding-block:9px}
.residences .nav a[aria-current=page]::after{content:'';position:absolute;bottom:1px;left:0;right:0;height:2px;background:var(--accent)}
.residences .intro{gap:clamp(32px,6vw,90px)}
.residences .section-head{gap:clamp(28px,5vw,72px)}
.residences .page-opening .section-head{align-items:center}
.residences .catalogue-page .section-head :is(h2,.page-heading){font-size:clamp(34px,4.2vw,58px);line-height:1.12}
.residences .filters>.filter-tools{border:0;box-shadow:none;background:transparent;padding:0;margin:0}
.residences .rooms button{white-space:nowrap}
.residences .card{display:flex;flex-direction:column}
.residences .card-body{display:flex;flex:1;flex-direction:column}
.residences .card-action{margin-top:auto;padding-top:18px}
.residences .card .price{font-variant-numeric:tabular-nums}
.residences .card .plan img{transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.residences .feature-overlay .eyebrow{color:#eef4ed}
.residences .feature-overlay p{max-width:55ch}
.residences .news-card h3{line-height:1.2}
.residences .news-card>img{transition:filter .35s}
.residences .news-card:hover>img{filter:brightness(1.06)}
.residences .gallery img{object-fit:cover;width:100%}
.residences .field input,.residences .field textarea{font:inherit;font-size:15px}
.residences .lead-band+.contact-band{padding-block:32px}
.residences .lead-band+.contact-band :is(h2,.page-heading){font-size:clamp(28px,3vw,40px)}
.residences .places strong{font-size:clamp(25px,3vw,38px)}
.residences .places span{display:block;margin-top:8px;line-height:1.5}
.air .benefit{padding:24px;border:1px solid #dce8eb;border-radius:22px;background:#fff;box-shadow:0 14px 32px #2f586409}
.air .benefit>span{color:#397b91;font-size:28px}
.air .benefit h3{font-size:21px;line-height:1.25;margin:18px 0 12px}
.air .benefit p{font-size:14px;line-height:1.65;margin:0;color:#536b74}
.air .gallery img,.air .news-card>img{border-radius:24px}
.air .news-card{overflow:hidden}
.air .news-card>img{border-bottom-left-radius:0;border-bottom-right-radius:0}
.air .section :is(h2,.page-heading) em{color:#397b91}
.air .intro :is(h2,.page-heading){font-size:clamp(36px,4.3vw,60px);font-weight:700}
.glass .intro .stats{padding:24px;border:1px solid #fff;gap:20px}
.glass .gallery img,.glass .split>img{border-radius:24px}
.glass .feature-image{border-radius:28px;overflow:hidden}
.glass .sort-menu,.air .sort-menu{border-color:var(--line)}
.glass .sort-menu button,.air .sort-menu button{color:#253b4b}
.motion .split>img{clip-path:inset(0)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.residences .card:hover .plan img{transform:scale(1.035)}}
@media(min-width:761px) and (max-width:1100px){
 .residences .header{height:auto;min-height:0;display:flex;flex-wrap:wrap;gap:14px;padding-block:18px}
 .residences .header .logo{margin-right:auto}
 .residences .header .header-contact{margin-left:auto}
 .residences .header .nav{order:3;flex-basis:100%;width:100%;margin:0;justify-content:space-between;gap:18px;overflow:visible}
 .residences .intro{gap:36px}
 .residences .intro :is(h2,.page-heading){font-size:42px}
 .residences .benefits{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
 .residences .places{gap:18px}
 .residences .places strong{font-size:28px}
 .residences .unit-main{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
}
@media(max-width:760px){
 .residences .design-switch{justify-content:flex-start;padding-inline:16px;gap:18px}
 .residences .design-switch>span{display:none}
 .residences .design-switch a{min-height:36px;display:flex;align-items:center}
 .residences .header .nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:2px 18px;overflow:visible;white-space:normal;order:3;font-size:12px;margin:0}
 .residences .header .nav a{min-height:38px;display:flex;align-items:center;line-height:1.4}
 .residences .header .nav a[aria-current=page]::after{right:auto;width:24px}
 .residences .header{row-gap:12px}
 .residences .page-opening{padding-top:16px}
 .residences .page-opening .section-breadcrumb{margin-bottom:20px}
 .residences .catalogue-page .section-head :is(h2,.page-heading){font-size:34px;line-height:1.1;margin-bottom:18px}
 .residences .page-opening .section-head p{font-size:14px;line-height:1.65}
 .residences .filters{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:14px}
 .residences .rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
 .residences .rooms button{font-size:12px;min-height:44px;padding:10px 8px}
 .residences .filters>.filter-tools{display:block;width:100%}
 .residences .sort-picker{width:100%;min-width:0}
 .residences .filter-tools:has(>.filter-input){display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px}
 .residences .filter-tools .filter-input{width:100%;max-width:none;min-width:0;font-size:12px}
 .residences .filter-tools:has(>.filter-input)>button{grid-column:1/-1;min-height:42px}
 .residences .card-head{padding:18px 18px 0}
 .residences .card .plan{height:210px;padding:16px 24px}
 .residences .card-body{padding:0 18px 20px}
 .residences .card-facts strong{font-size:22px}
 .residences .card-facts span{font-size:11px}
 .residences .card .price{font-size:28px}
 .residences .card-action{padding-top:14px}
 .residences .intro{gap:24px}
 .residences .intro :is(h2,.page-heading){font-size:36px}
 .residences .intro .stats{gap:12px}
 .residences .intro .stats strong{font-size:30px}
 .residences .intro .stats span{font-size:10px;line-height:1.5}
 .air .benefits{gap:12px}
 .air .benefit{padding:18px}
 .air .benefit h3{font-size:18px}
 .air .benefit p{font-size:12px}
 .residences .places strong{font-size:28px}
 .residences .places span{font-size:12px}
 .residences .field input,.residences .field textarea{font-size:16px}
 .residences .contact-band .btn{min-height:44px}
 .glass .intro .stats{padding:18px}
 .glass .feature-image,.glass .split>img,.glass .gallery img{border-radius:20px}
}
@media(prefers-reduced-motion:reduce){.residences .card .plan img,.residences .news-card>img{transition:none}}
@media(max-width:760px){.residences .page-opening .section-head{gap:0}.residences .page-opening .section-head :is(h2,.page-heading){margin-bottom:18px}.residences .page-opening .section-head>div{margin-bottom:0}}
.residences .section.page-opening{padding-top:24px}
.motion .section.page-opening::before{display:none}
@media(max-width:760px){.residences .section.page-opening{padding-top:16px}}
/* Accessibility and responsive audit. */
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;background:#fff;color:#182c29;padding:14px 20px;border-radius:8px;transform:translateY(-160%)}
.skip-link:focus{transform:none}
#main-content{scroll-margin-top:160px;outline:none}
.residences :is(button,a,summary,input,label){touch-action:manipulation}
.residences :is(.split-copy,.section-head>div,.hero-content,.card-body,.program,.field){min-width:0}
.residences dialog{overscroll-behavior:contain}
.residences .mobile-unit-bar{padding-bottom:max(13px,env(safe-area-inset-bottom))}
.residences .section-breadcrumb{color:var(--muted)}
.motion .page-opening .section-head:before{display:none}
.residences .unit-plan-space{overflow:hidden}
.residences .news-card{min-width:0}
.motion .motion-toggle{position:fixed;bottom:18px;right:18px;z-index:25;min-height:44px;padding:11px 16px;border:1px solid #9cae9f;background:#15241fed;color:#f5f4e9;font:12px var(--sans);backdrop-filter:blur(12px);cursor:pointer}
.motion.unit-page .motion-toggle{bottom:85px}
.motion .motion-image-frame{overflow:hidden;min-width:0;display:block;align-self:stretch}
.motion .motion-image-frame>img{height:100%;width:100%;object-fit:cover}
.residences .quiet-reveal{animation:quiet-arrive .65s cubic-bezier(.2,.7,.2,1) both}
@keyframes quiet-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(min-width:1000px){
 body.residences:not(.city) .news-grid{grid-template-columns:1.35fr 1fr 1fr;align-items:start}
 body.residences:not(.city) .news-card:first-child>img{aspect-ratio:1.1}
 .city:not(.air):not(.glass):not(.atelier):not(.motion) .benefits{gap:0;border-block:1px solid var(--line)}
 .city:not(.air):not(.glass):not(.atelier):not(.motion) .benefit{padding:30px;border-top:0;border-right:1px solid var(--line)}
 .city:not(.air):not(.glass):not(.atelier):not(.motion) .benefit:last-child{border-right:0}
 .atelier .news-grid{grid-template-columns:1.5fr 1fr;align-items:start}
 .atelier .news-card:first-child{grid-row:span 2}
 .atelier .news-card:first-child>img{aspect-ratio:.9}
 .atelier .news-card:not(:first-child){display:grid;grid-template-columns:42% 1fr;column-gap:22px}
 .atelier .news-card:not(:first-child)>img{grid-row:span 5;height:100%;min-height:210px;aspect-ratio:auto}
 .atelier .news-card:not(:first-child)>:not(img){margin-left:0;margin-right:0}
 .air .benefits{grid-template-columns:1.15fr 1fr 1fr 1.15fr;align-items:start}
 .air .benefit:nth-child(even){margin-top:32px}
 .glass .benefits{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 .glass .benefit{display:grid;grid-template-columns:60px 1fr;column-gap:24px;background:linear-gradient(135deg,#fff,#edf2f8);padding:28px;border:1px solid white;border-radius:24px;box-shadow:0 12px 35px #3d567710}
 .glass .benefit>span{grid-row:span 2;font-size:32px;color:#326eea}
 .glass .benefit h3{margin:0 0 10px}
 .glass .benefit p{grid-column:2;margin:0}
}
@media(max-width:760px){
 .residences .hero-meta{grid-template-columns:repeat(3,minmax(0,1fr))}
 .residences .hero-meta strong{white-space:normal;font-size:clamp(14px,4.3vw,19px);line-height:1.25}
 .residences .hero-meta span{min-width:0;overflow-wrap:break-word}
 .residences .section-head :is(h2,.page-heading),.residences .section-head .page-heading{overflow-wrap:anywhere}
 .motion .finance :is(h2,.page-heading),.motion .finance .page-heading{font-size:clamp(28px,7.5vw,38px)}
 .motion .motion-toggle{bottom:12px;right:12px;font-size:11px;padding:10px 12px}
 .motion .footer{padding-bottom:90px}
 .residences .header .header-contact .btn{font-size:11px;min-height:44px}
}
@media(max-width:380px){
 .residences .header .logo{font-size:19px;letter-spacing:.07em}
 .residences .header .logo small{font-size:6px}
 .residences .header .header-contact .btn{font-size:10px;max-width:145px;padding:10px 12px}
 .residences .header{column-gap:10px}
 .residences .hero-meta{gap:7px}
 .residences .hero-meta span{padding-left:7px}
 .glass .hero-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
 .residences .stats strong{font-size:27px}
}
@media(prefers-reduced-motion:reduce){.residences .quiet-reveal{animation:none}.residences *, .residences *:before,.residences *:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@media(max-width:760px){.residences .finance .section-head :is(h2,.page-heading){font-size:clamp(26px,7vw,38px);line-height:1.15;overflow-wrap:normal}}
/* Text contrast on both light cards and dark editorial surfaces. */
body.residences:not(.city){--muted:#5b6b61}
body.city:not(.atelier):not(.motion){--muted:#4e606c}
.city:not(.atelier):not(.motion) .program{color:#253b43}
.city:not(.atelier):not(.motion) .program>span{color:#253b43}
.city:not(.atelier):not(.motion) .program small{color:#53636a}
.atelier .catalogue .section-head p,.atelier .card-type,.atelier .card-facts span,.atelier .card .price-per{color:#526057}
.air{--accent:#326d83}
.air .eyebrow{color:#466c78}
.air .btn:not(.light):not(.outline),.air .rooms button[aria-pressed=true],.air .finance-tabs button.active,.air .choice:has(input:checked){background:#326d83;border-color:#326d83}
.air .text-link{color:#326d83}
.air #location .section-head p,.air #location .places span,.air .finance .section-head p{color:#45636d}
.air .feature-overlay .eyebrow{color:#eef4ed}
.glass .eyebrow{color:#3d6596}
.glass .text-link{color:#245bc0}
.glass .feature-overlay .eyebrow{color:#eef4ed}
.motion .intro p,.motion .intro .stats span,.motion .split-copy p,.motion .benefit p,.motion .gallery-caption,.motion .progress p,.motion .faq p{color:#b6c4bd}
.motion .catalogue .text-link,.motion .catalogue .btn.outline{color:#804127;border-color:#a55f3f}
.motion .catalogue .mini-label{color:#526057}
.motion .amenity p,.glass .amenity p,.air .amenity p{color:#475c62}
@media(min-width:1000px){.atelier .news-card:first-child>img{height:440px;aspect-ratio:auto}}
@media(max-width:760px){.residences .page-title h1{font-size:clamp(32px,9vw,44px);line-height:1.12;overflow-wrap:anywhere}}
body.residences:not(.city){--muted:#526157}
body.residences:not(.city) .footer .mini-label{color:#bdcbc2}
.atelier .catalogue .mini-label{color:#526057}
.atelier .catalogue-bottom .btn.outline,.atelier .catalogue-bottom .text-link{color:#794326;border-color:#986449}
.atelier .amenity p{color:#47574d}
.atelier .map-label{background:#292f29;color:#f6eee4}
.atelier .calculator .eyebrow{color:#65513f}
.atelier .lead-band :is(p,.eyebrow,.mini-label,.consent,.form-extras summary,.consent a){color:#17251c}
.air .calculator .eyebrow{color:#466c78}
.glass .form-extras summary{color:#245bc0}
.motion .catalogue .card .btn.outline{color:#fff;border-color:#264333}
.motion .split-copy .btn.outline{background:transparent;color:#e9a385;border-color:#c78d70}
.motion .calculator :is(.eyebrow,label,p,.range-value){color:#465d48}
.motion .calculator span{color:#465d48}
.motion .lead-band :is(p,.eyebrow,.mini-label,.consent,.form-extras summary,.consent a){color:#182a1d}
.motion .gallery>a{overflow:hidden;display:block}
.city:not(.air):not(.glass):not(.atelier):not(.motion) .unit-journey .eyebrow{color:#cbd6ed}
.city:not(.air):not(.glass):not(.atelier):not(.motion) .finance .section-breadcrumb{color:#d8e4f5}
.atelier .manager-avatar,.motion .manager-avatar{color:#26382b}
.air .visual-tabs button[aria-pressed=true]{background:#326d83}
.air .journey-grid p{color:#45636d}
.motion .contact-band p,.motion .breadcrumb,.motion .section-breadcrumb,.motion .unit-top p,.motion .print-link,.motion .unit-facts span{color:#b6c4bd}
.motion .unit-purchase .btn.outline{background:transparent;color:#efb69b;border-color:#c78d70}

.motion .lead-drawer :is(.eyebrow,.form-extras summary),.atelier .lead-drawer :is(.eyebrow,.form-extras summary){color:#82472d}
