:root{--paper:#fafaf7;--ink:#252c29;--muted:#62675f;--white:#fff;--soft:#f0e9df;--line:#dedfd7;--accent:#ac462e;--radius:18px;--font:'DM Sans',Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.65 var(--font);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
img{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,select{cursor:pointer}
a{color:inherit;text-decoration:none}
button{color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-weight:500;line-height:1.12}
h1{font-size:clamp(44px,5.4vw,74px);letter-spacing:-3px}
h1 em{font-style:normal;color:var(--accent)}
h2{font-size:clamp(29px,3.1vw,40px);letter-spacing:-1.4px}
h3{font-size:23px;letter-spacing:-.6px}
.wrap{width:min(90%,1200px);margin-inline:auto}
.icon{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:500;line-height:1.6}
.muted,.small,.micro{color:var(--muted)}
.small{font-size:13px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:1px solid var(--accent);background:var(--accent);color:var(--white);padding:14px 21px;border-radius:var(--radius);font-size:14px;font-weight:500;line-height:1.4;min-height:50px;text-align:center;transition:background .16s,transform .16s}
.button:hover{background:#903821;border-color:#903821;transform:translateY(-1px)}
.button.outline{background:transparent;color:var(--ink);border-color:var(--line)}
.button.outline:hover{background:var(--soft);border-color:var(--ink)}
.text-link{display:inline-flex;align-items:center;gap:15px;border-bottom:1px solid currentColor;padding-bottom:5px;font-size:14px;font-weight:500}
.text-link:hover{color:var(--accent)}
.skip-link{position:absolute;left:16px;top:-100px;padding:14px;background:var(--white);z-index:100000}
.skip-link:focus{top:10px}
body #wpadminbar .screen-reader-shortcut{left:6px;max-width:calc(100vw - 12px);white-space:normal}
.site-header{display:flex;align-items:center;min-height:105px;gap:30px}
.brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0}
.brand-mark{font-size:40px;letter-spacing:-6px;padding-right:6px;font-weight:400;line-height:1}
.brand-name{font-size:11px;letter-spacing:2px;font-weight:500}
.primary-nav{margin-left:auto;display:flex;align-items:center;gap:27px;font-size:14px}
.primary-nav a{padding:10px 0}
.primary-nav a:hover,.primary-nav a[aria-current]{color:var(--accent)}
.menu-toggle{display:none;border:1px solid var(--line);border-radius:12px;background:transparent;align-items:center;gap:7px;padding:10px;min-height:44px}
.hero{padding-top:35px}
.hero-copy{display:grid;grid-template-columns:1.2fr 1fr;gap:0 60px;align-items:center;padding-bottom:35px}
.hero-copy>.eyebrow{grid-column:1/-1;margin-bottom:15px}
.hero-copy h1{align-self:start;margin:10px 0}
.hero-intro{padding:6px 0 0}
.hero-intro>p:first-child{font-size:16px;color:var(--muted);max-width:390px;margin-bottom:22px}
.hero-intro .micro{display:flex;gap:7px;align-items:center;font-size:12px;margin-top:17px}
.micro .icon{width:16px;height:16px}
.photo-mosaic{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:14px;height:400px}
.photo-mosaic figure{position:relative;border-radius:var(--radius);overflow:hidden;min-width:0}
.photo-mosaic figure:nth-child(2){margin-top:32px}
.photo-mosaic a,.photo-mosaic img{width:100%;height:100%;object-fit:cover;display:block}
.photo-mosaic figcaption{position:absolute;left:13px;right:13px;bottom:13px;background:var(--white);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-transform:uppercase;font-size:11px;letter-spacing:.7px;line-height:1.5}
.photo-mosaic .icon{width:15px;height:15px}
.apartment-search{display:grid;grid-template-columns:1fr 1fr auto;gap:18px;align-items:end;padding:24px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);margin-top:26px}
label>span{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:500;margin-bottom:7px}
select,input:not([type=checkbox]),textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;padding:13px;background:var(--white);color:var(--ink);font-size:16px;line-height:1.5;min-height:50px}
textarea{resize:vertical}
input::placeholder,textarea::placeholder{color:#797d76}
.benefits{display:flex;justify-content:space-between;gap:20px;padding:28px 0 15px}
.benefits span{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px}
.benefits .icon{width:18px;height:18px}
.apartment-section{padding-top:55px;padding-bottom:60px;scroll-margin-top:25px}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:30px}
.section-heading h2{margin-top:10px}
.city-tabs{display:flex;gap:6px;flex-shrink:0}
.city-tabs button{border:1px solid var(--line);padding:9px 17px;border-radius:40px;background:transparent;font-size:13px;min-height:42px}
.city-tabs button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--white)}
.city-tabs button:hover{border-color:var(--accent)}
.apartment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.apartment-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);overflow:hidden}
.card-photo{height:245px;display:block;position:relative;overflow:hidden}
.card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.card-photo:hover img{transform:scale(1.025)}
.city-label{position:absolute;left:14px;top:14px;border-radius:30px;background:var(--white);color:var(--ink);padding:6px 12px;font-size:12px}
.card-body{padding:22px}
.card-body h3 a:hover{color:var(--accent)}
.card-address{font-size:13px;color:var(--muted);margin-top:5px}
.apartment-facts{display:flex;flex-wrap:wrap;gap:8px 20px;margin:19px 0;font-size:13px;color:var(--muted)}
.apartment-facts span{display:flex;align-items:center;gap:7px}
.apartment-facts .icon{width:17px;height:17px}
.card-link{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:15px;font-size:14px;font-weight:500}
.card-link:hover{color:var(--accent)}
.card-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 9px;margin:0 0 18px;line-height:1.5}
.card-price strong{font-size:19px;font-weight:500;letter-spacing:-.5px}
.card-price span{font-size:12px;color:var(--muted)}
.sleeping-info{display:flex;align-items:center;gap:9px;margin:0 0 22px;font-size:14px;color:var(--muted)}
.full-amenities{border:1px solid var(--line);border-radius:14px;margin-top:25px;padding:16px 18px;background:var(--white)}
.full-amenities summary{cursor:pointer;font-size:14px;font-weight:500}
.full-amenities summary span{font-size:12px;font-weight:400;color:var(--muted);margin-left:8px}
.full-amenities ul{display:grid;grid-template-columns:1fr 1fr;gap:12px 27px;padding:20px 0 0 20px;margin:0;font-size:13px}
.request-panel .price-unit{font-size:15px;margin-top:-7px}
.request-panel .extra-price{border-top:1px solid var(--line);padding-top:18px;margin:20px 0;font-size:13px}
.request-panel .extra-price strong{color:var(--ink);font-weight:500}
@media(max-width:540px){.full-amenities ul{grid-template-columns:1fr}.full-amenities summary span{display:block;margin-left:16px;margin-top:4px}}
.catalog-bottom{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:28px;flex-wrap:wrap}
.result-count{font-size:13px;color:var(--muted)}
.empty-state{padding:25px 0;color:var(--muted)}
.empty-state a{text-decoration:underline}
.story{scroll-margin-top:25px}
.story-inner{display:grid;grid-template-columns:.85fr 1fr;gap:55px;align-items:center;padding:40px;background:var(--soft);border-radius:var(--radius)}
.story-photo{height:360px;border-radius:var(--radius);overflow:hidden}
.story-photo img{width:100%;height:100%;object-fit:cover;object-position:center 63%}
.story h2{margin:13px 0 20px}
.story-copy{color:var(--muted);margin-bottom:24px;max-width:470px}
.story-copy p+p{margin-top:14px}
.contact-band{padding-top:40px}
.contact-band-inner{display:flex;align-items:center;justify-content:space-between;gap:35px;border-radius:var(--radius);background:var(--accent);color:var(--white);padding:38px 42px}
.contact-band h2{margin:10px 0 12px}
.contact-band .button{background:var(--white);color:var(--accent);border-color:var(--white);flex-shrink:0}
.contact-band .button:hover{background:var(--soft)}
.site-footer{display:flex;align-items:center;gap:30px;padding-top:45px;padding-bottom:65px;font-size:12px}
.site-footer nav{display:flex;gap:23px;margin-left:auto}
.site-footer a:hover{color:var(--accent)}
.site-footer small{color:var(--muted);font-size:11px}
.content-page{padding-top:45px;min-height:60vh;padding-bottom:35px}
.content-page h1{margin:16px 0 35px;font-size:clamp(38px,5vw,60px);overflow-wrap:anywhere}
.prose{max-width:800px;overflow-wrap:anywhere}
.prose p{margin:0 0 20px}
.prose h2{font-size:30px;margin:35px 0 18px}
.prose h3{font-size:24px;margin:28px 0 14px}
.prose h4{font-size:19px;font-weight:500;margin:20px 0 12px}
.prose a{color:var(--accent);text-decoration:underline}
.prose ul{padding-left:24px}
.back-link{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;margin:20px 0 32px}
.back-link:hover{color:var(--accent)}
.apartment-page{padding-top:10px}
.apartment-title{display:flex;justify-content:space-between;align-items:center;gap:30px;margin:12px 0 30px}
.apartment-title h1{font-size:clamp(42px,5vw,64px);letter-spacing:-2px;margin-bottom:16px}
.address{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}
.apartment-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:190px 190px;gap:12px;overflow:hidden;border-radius:var(--radius)}
.apartment-gallery a{position:relative;min-width:0;overflow:hidden}
.apartment-gallery a:first-child{grid-column:1;grid-row:1/3}
.apartment-gallery a:nth-child(n+6){display:none}
.apartment-gallery img{width:100%;height:100%;object-fit:cover}
.apartment-gallery:has(a:last-child:nth-child(3)){grid-template-columns:2fr 1fr;grid-template-rows:190px 190px}
.apartment-gallery:has(a:last-child:nth-child(4)){grid-template-columns:repeat(3,1fr);grid-template-rows:190px 190px}
.apartment-gallery:has(a:last-child:nth-child(4)) a:nth-child(2){grid-column:2/4}
.gallery-hint{position:absolute;left:15px;bottom:15px;display:flex;align-items:center;gap:8px;padding:9px 13px;border-radius:10px;background:var(--white);font-size:12px}
.apartment-detail-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:70px;padding:48px 0 30px;align-items:start}
.apartment-description h2{margin:12px 0 22px}
.apartment-description h3{margin:32px 0 18px}
.detail-facts{display:flex;gap:25px;flex-wrap:wrap;margin-bottom:25px;padding-bottom:23px;border-bottom:1px solid var(--line);font-size:14px}
.detail-facts span{display:flex;align-items:center;gap:8px}
.amenity-list{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:18px 16px;font-size:14px}
.amenity-list li{display:flex;gap:10px;align-items:start}
.request-panel{border:1px solid var(--line);border-radius:var(--radius);padding:30px;background:var(--white)}
.request-panel h2{font-size:30px;margin:12px 0 18px}
.request-panel p:not(.eyebrow){color:var(--muted)}
.request-panel .button{width:100%;margin:22px 0 14px}
.request-panel .small{text-align:center;font-size:12px}
.phone-link{display:flex;justify-content:center;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:24px;font-size:14px}
.related{padding:30px 0 10px}
.lightbox{padding:20px;border:0;border-radius:16px;background:#202622;color:#fff;width:min(94vw,1100px);max-width:1100px;max-height:94dvh;overflow:auto}
.lightbox::backdrop{background:#151b17e8}
.lightbox img{object-fit:contain;max-height:72dvh;width:100%;height:auto}
.lightbox-toolbar,.lightbox-controls{display:flex;align-items:center;justify-content:space-between;gap:20px}
.lightbox-toolbar{padding-bottom:12px;font-size:13px}
.lightbox-controls{justify-content:center;padding-top:15px}
.lightbox button{width:44px;height:44px;display:grid;place-items:center;background:transparent;border:1px solid #778179;color:#fff;border-radius:50%}
.contact-page{padding-top:35px;padding-bottom:15px}
.contact-page h1{margin:16px 0 22px}
.page-intro{font-size:18px;color:var(--muted);max-width:600px;margin-bottom:35px}
.contact-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:65px;align-items:start}
.contact-form-panel{padding:32px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}
.contact-form-panel h2{font-size:30px;margin-bottom:13px}
.contact-form-panel>.muted{font-size:14px;margin-bottom:26px}
.enquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.enquiry-form .full{grid-column:1/-1}
.enquiry-form label>span{letter-spacing:.6px}
.enquiry-form abbr{text-decoration:none;color:var(--accent)}
.optional{font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0}
.form-hint{font-size:12px;color:var(--muted);align-self:center;line-height:1.6}
.enquiry-form .consent{display:flex;gap:12px;align-items:start;padding-top:3px}
.consent input{margin:4px 0 0;width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}
.consent span{font-size:12px;line-height:1.7;text-transform:none;letter-spacing:0;font-weight:400;margin:0}
.consent a{text-decoration:underline;color:var(--accent)}
.form-caption{font-size:12px;color:var(--muted)}
.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.form-errors,.form-success{padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--soft);margin-bottom:24px}
.form-errors{border-color:#a33221;background:#fff3ed}
.form-errors h3,.form-success h3{font-size:22px;margin-bottom:12px}
.form-errors ul{padding-left:20px;font-size:14px;margin-bottom:0}
.form-success p{margin:12px 0 20px}
.contact-info{padding:24px 0}
.contact-info h2{font-size:32px;margin:12px 0 20px}
.contact-info>p:not(.eyebrow){color:var(--muted)}
.contact-direct{display:flex;align-items:center;gap:15px;margin-top:28px;overflow-wrap:anywhere}
.contact-direct small{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}
.contact-direct:hover{color:var(--accent)}
.contact-address{padding-top:28px;margin-top:30px;border-top:1px solid var(--line)}
.contact-address h3{font-size:20px;margin-bottom:10px}
.contact-address .small{margin-top:20px}
@media(min-width:1400px){.photo-mosaic{height:440px}}
@media(max-width:1050px){
 .site-header{gap:22px}.primary-nav{gap:18px}.brand-name{letter-spacing:1.3px}.header-cta{padding:13px 16px}
 .hero-copy{gap:0 35px}.hero-intro>p:first-child{font-size:15px}.hero-intro .micro{font-size:11px}
 .photo-mosaic{height:350px}.photo-mosaic figcaption{font-size:11px;padding:9px}
 .section-heading{align-items:start;flex-direction:column;gap:22px}.apartment-grid{gap:18px}.card-photo{height:210px}.card-body{padding:18px}
 .apartment-detail-grid{gap:35px}.contact-layout{gap:35px}.site-footer{gap:20px;flex-wrap:wrap}
 .site-footer small{width:100%}
}
@media(max-width:760px){
 .site-header{min-height:85px;flex-wrap:wrap;gap:0;position:relative;align-content:center}.header-cta{display:none}.menu-toggle{display:inline-flex;margin-left:auto}
 .primary-nav{width:100%;order:3;margin:0;justify-content:space-between;padding:12px 0 8px;border-top:1px solid var(--line);gap:15px}.js .primary-nav{display:none}.js .primary-nav.is-open{display:flex}
 .brand-mark{font-size:36px}.brand-name{font-size:10px;letter-spacing:1.5px}
 .hero{padding-top:22px}.hero-copy{grid-template-columns:1fr 1fr;gap:0 22px}.hero-copy h1{font-size:46px;letter-spacing:-2px}.hero-intro>p:first-child{font-size:14px}.hero-intro .micro{align-items:start;line-height:1.5}
 .photo-mosaic{height:310px;gap:10px}.photo-mosaic figcaption .icon{display:none}
 .apartment-search{gap:14px;padding:18px;grid-template-columns:1fr 1fr}.apartment-search .button{grid-column:1/-1}
 .benefits{display:grid;grid-template-columns:1fr 1fr;gap:16px 10px}.benefits span{font-size:12px}
 .apartment-grid{grid-template-columns:1fr 1fr}.card-photo{height:220px}.story-inner{gap:28px;padding:28px}.story-photo{height:320px}.story h2{font-size:30px}
 .contact-band-inner{align-items:start;flex-direction:column;gap:22px;padding:30px}.site-footer nav{margin-left:0}
 .apartment-title{align-items:start;flex-direction:column;gap:22px}.apartment-detail-grid{grid-template-columns:1fr;gap:30px}.request-panel{max-width:none}
 .apartment-gallery{grid-template-columns:1.3fr 1fr;grid-template-rows:160px 160px}.apartment-gallery a:nth-child(n+4){display:none}
 .apartment-gallery:has(a:last-child:nth-child(3)),.apartment-gallery:has(a:last-child:nth-child(4)){grid-template-columns:1.3fr 1fr;grid-template-rows:160px 160px}.apartment-gallery:has(a:last-child:nth-child(4)) a:nth-child(2){grid-column:auto}
 .contact-layout{grid-template-columns:1fr;gap:24px}.contact-info{padding:0 0 20px}.contact-page{padding-top:20px}
}
@media(max-width:540px){
 h1{font-size:46px;letter-spacing:-2px}h2{font-size:29px}
 .hero-copy{display:block;padding-bottom:28px}.hero-copy>.eyebrow{margin-bottom:16px}.hero-copy h1{font-size:clamp(42px,10.7vw,58px);margin:0 0 20px}.hero-intro{padding:0}.hero-intro>p:first-child{font-size:15px;max-width:none;margin-bottom:20px}.hero-intro .micro{font-size:11px}
 .photo-mosaic{grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;height:285px;gap:8px}.photo-mosaic figure:first-child{grid-row:1/3}.photo-mosaic figure:nth-child(2){margin-top:0}.photo-mosaic figcaption{left:6px;right:6px;bottom:6px;font-size:11px;letter-spacing:0;padding:6px}
 .apartment-search{padding:15px;gap:13px 10px;margin-top:20px}.apartment-search label>span{font-size:10px;letter-spacing:.3px;min-height:32px;margin-bottom:5px}.apartment-search select{padding:11px 6px;font-size:16px}.benefits{padding-top:23px}.benefits span{font-size:11px;gap:7px}.benefits .icon{width:17px;height:17px}
 .apartment-section{padding-top:38px;padding-bottom:40px}.section-heading{margin-bottom:24px;gap:20px}.city-tabs{width:100%;gap:5px}.city-tabs button{padding:9px 15px;min-height:44px}
 .apartment-grid{grid-template-columns:1fr;gap:22px}.card-photo{height:260px}.card-body{padding:20px}.card-address{font-size:13px}.catalog-bottom{gap:15px;margin-top:24px}
 .story-inner{grid-template-columns:1fr;padding:22px;gap:26px}.story-photo{height:250px}.story-copy{font-size:15px}.story h2{font-size:29px}
 .contact-band{padding-top:28px}.contact-band-inner{padding:26px;gap:23px}.contact-band-inner p:not(.eyebrow){font-size:14px}.contact-band .button{width:100%}
 .site-footer{gap:20px;padding-top:32px;padding-bottom:65px}.footer-cities{font-size:11px}.site-footer nav{width:100%;justify-content:space-between;gap:18px}
 .apartment-title h1{font-size:42px}.apartment-title>.button{width:100%}.address{align-items:start;font-size:13px}.apartment-page .eyebrow{font-size:10px}
 .apartment-gallery,.apartment-gallery:has(a:last-child:nth-child(3)),.apartment-gallery:has(a:last-child:nth-child(4)){grid-template-columns:1fr 1fr;grid-template-rows:290px 140px;gap:8px}.apartment-gallery a:first-child{grid-row:1;grid-column:1/-1}
 .apartment-description h2{font-size:29px}.apartment-detail-grid{padding-top:35px}.detail-facts{gap:13px;font-size:13px}.amenity-list{grid-template-columns:1fr;gap:15px}.request-panel{padding:25px}.request-panel h2{font-size:29px}.related{padding-top:15px}
 .contact-page h1{font-size:46px}.page-intro{font-size:16px}.contact-form-panel{padding:22px}.contact-form-panel h2{font-size:26px}.enquiry-form{grid-template-columns:1fr;gap:18px}.enquiry-form .full{grid-column:auto}.form-hint{display:none}.enquiry-form label>span{font-size:11px}.contact-info h2{font-size:29px}
 .content-page{padding-top:28px}.content-page h1{font-size:38px;letter-spacing:-1.7px}.prose{font-size:15px}.prose h2{font-size:26px}.prose h3{font-size:22px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
