:root {--ivory:#f2f0eb;--cream:#e8e0cc;--blush:#c7a38a;--taupe:#9e8c73;--ink:#332b26;--muted:#6e6256;--line:rgba(51,43,38,.22);--gutter:clamp(24px,6.25vw,110px)}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:110px}
body {margin:0;background:var(--ivory);color:var(--ink);font-family:"astoria",sans-serif;font-weight:300;font-size:18px;line-height:1.65}
button, input, select, textarea {font:inherit}
button, a {-webkit-tap-highlight-color:transparent}
a {color:inherit;text-decoration:none}
button {color:inherit;border:0;background:none;cursor:pointer}
img {display:block;max-width:100%;height:auto}
h1, h2, h3, p, figure {margin:0}
h1, h2, h3 {font-weight:300;line-height:1.06;letter-spacing:-.035em}
h2 {font-size:clamp(48px,5.3vw,82px)}
h3 {font-size:clamp(31px,3.1vw,48px)}
p+p {margin-top:22px}
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {outline:2px solid var(--taupe);outline-offset:6px}
::selection {background:var(--blush);color:var(--ink)}
.skip-link {position:fixed;top:0;left:20px;z-index:100;background:var(--ivory);padding:12px;transform:translateY(-120%)}
.skip-link:focus {transform:translateY(0)}
.eyebrow {font-size:12px;line-height:1.4;letter-spacing:.16em;text-transform:uppercase;font-weight:300}
.section-space {padding:110px var(--gutter)}
.text-link {display:inline-flex;align-items:center;justify-content:space-between;gap:34px;border-bottom:1px solid var(--taupe);font-size:15px;font-weight:300;padding:12px 0 9px;line-height:1.4}
.text-link span {font-size:24px;line-height:1;transition:transform .2s}
.text-link:hover span {transform:translate(3px,-3px)}
.header {position:absolute;left:0;top:0;width:100%;z-index:30;display:grid;grid-template-columns:1fr 280px 1fr;align-items:center;padding:30px var(--gutter);height:118px;color:var(--ivory);transition:background .3s,color .3s,box-shadow .3s}
.header.is-sticky {position:fixed;background:var(--ivory);color:var(--ink);height:94px;padding-top:20px;padding-bottom:20px;box-shadow:0 1px 0 var(--line)}
.brand {display:flex;justify-content:center}
.brand img {width:246px;height:auto;filter:brightness(0) invert(1);transition:filter .2s}
.header.is-sticky .brand img {filter:none}
.header nav {display:flex;gap:27px;font-size:14px;font-weight:300;white-space:nowrap}
.nav-right {justify-content:flex-end}
.header nav a {position:relative}
.header nav a:after {content:"";position:absolute;left:0;bottom:-6px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.header nav a:hover:after {transform:scaleX(1)}
.nav-enquire {display:flex;gap:22px}
.menu-toggle {display:none}
.mobile-menu[hidden] {display:none}
.hero {height:100svh;min-height:650px;max-height:1200px;position:relative;background:var(--ink);color:var(--ivory);overflow:hidden}
/* Top fade retains 75% strength; bottom fade is 70% of its original opacity. */
.hero-shade {position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,24,20,.33),transparent 30%),linear-gradient(180deg,transparent 30%,rgba(25,24,20,.056) 48%,rgba(25,24,20,.469))}
.hero-content {position:absolute;bottom:10%;left:var(--gutter);max-width:850px}
.hero-content .eyebrow {margin-bottom:23px}
.hero h1 {font-size:clamp(58px,6vw,96px);line-height:1.01}
.hero-scroll {position:absolute;right:var(--gutter);bottom:11%;display:flex;align-items:center;gap:22px;font-size:13px;letter-spacing:.02em}
.round-arrow {display:grid;place-items:center;width:50px;height:50px;border:1px solid #ffffff70;border-radius:50%;font-size:23px;transition:background .2s}
.hero-scroll:hover .round-arrow {background:#ffffff20}
.introduction {text-align:center;padding-top:105px;padding-bottom:120px;max-width:1100px;margin:auto}
.monogram {height:65px;width:auto;margin:0 auto 33px}
.introduction .eyebrow {margin-bottom:28px}
.introduction h2 {font-size:clamp(55px,5.8vw,88px)}
.intro-copy {max-width:590px;margin:30px auto 22px;font-size:20px;line-height:1.6}
.architecture {display:grid;grid-template-columns:1.1fr 1fr;gap:10%;background:var(--cream);padding-top:100px;padding-bottom:100px}
.architecture figure {position:relative}
figcaption {position:absolute;bottom:13px;right:16px;font-size:10px;color:white;text-shadow:0 1px 5px #0008}
.section-heading {display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:end;margin-bottom:60px}
.section-heading .eyebrow {margin-bottom:25px}
.heading-copy {max-width:490px;margin-left:auto}
.heading-copy .text-link {margin-top:18px}
.residences {padding-bottom:95px}
.gallery-image-wrap {position:relative}
.gallery-media {width:100%;display:block;padding:0;position:relative;overflow:hidden}
.gallery-media>img {width:100%;height:auto;aspect-ratio:1.7;object-fit:cover;transition:transform .6s}
.image-caption {position:absolute;bottom:14px;right:20px;color:white;font-size:10px;text-shadow:0 1px 5px #0008;pointer-events:none}
.gallery-toolbar {display:flex;justify-content:center;gap:30px;padding:0;min-height:84px}
.gallery-controls {display:flex;align-items:center;gap:17px;white-space:nowrap}
.gallery-controls span {font-size:13px;letter-spacing:.08em}
.gallery-controls button {font-size:25px;width:35px;height:44px;line-height:1}
.gardens {background:var(--ink);color:var(--ivory)}
.garden-intro {display:grid;grid-template-columns:1fr 1.2fr 1.1fr;gap:7%;align-items:center;padding-top:105px;padding-bottom:85px}
.garden-intro .eyebrow {align-self:start;padding-top:8px;color:var(--blush)}
.garden-intro h2 {font-size:clamp(48px,5vw,76px)}
.garden-intro>p:not(.eyebrow) {font-size:18px}
.garden-panorama {position:relative;margin:0 var(--gutter)}
.garden-panorama img {width:100%;aspect-ratio:2.25/1;max-height:540px;object-fit:cover;object-position:50% 65%}
.amenity-story {display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-top:95px;padding-bottom:110px}
.neighbourhood {padding-bottom:100px}
.village-image img {width:100%;aspect-ratio:16/8;object-fit:cover}
.location-facts {display:grid;grid-template-columns:1fr 1fr 1.2fr;margin-top:40px}
.location-facts>div {padding:0 30px;border-right:1px solid var(--line)}
.location-facts>div:first-child {padding-left:0}
.location-facts>div:last-child {border:0}
.location-facts strong {display:block;font-weight:300;font-size:clamp(32px,3.3vw,48px);line-height:1.3;letter-spacing:-.03em}
.location-facts span {display:block;font-size:13px;letter-spacing:.02em;margin-top:8px}
.team {background:var(--cream);text-align:center;padding-top:90px;padding-bottom:95px}
.team>.eyebrow {margin-bottom:25px}
.team h2 {font-size:clamp(45px,4.8vw,70px)}
.team-intro {max-width:620px;margin:25px auto 0}
.team-grid {display:grid;grid-template-columns:repeat(4,1fr);margin-top:65px}
.team-grid>div {padding:0 20px;border-right:1px solid var(--line)}
.team-grid>div:last-child {border:0}
.team-grid .eyebrow {font-size:10px;letter-spacing:.1em;min-height:30px}
.team-grid h3 {font-size:32px;line-height:1.2;margin-top:20px}
.enquire {display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-top:110px;padding-bottom:120px}
.enquire-copy>.eyebrow {margin-bottom:24px}
.enquire-copy>p:not(.eyebrow) {max-width:390px;margin-top:28px}
.contact-details {margin-top:42px;font-size:16px}
.contact-details .eyebrow {font-size:10px;margin-top:30px;margin-bottom:10px}
.contact-details>a:not(.text-link) {font-size:15px;overflow-wrap:anywhere}
.contact-details>a:not(.text-link) span {margin-left:12px}
.contact-details>p:not(.eyebrow) {margin-top:0;line-height:1.65}
.contact-details .text-link {margin-top:7px;font-size:14px}
.form-heading {font-size:25px}
.form-row {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--enquiry-row-gap);column-gap:25px}
.enquiry-field label {display:block;font-size:13px;line-height:var(--enquiry-label-height)}
.enquiry-field--budget {padding-top:var(--enquiry-label-height)}
#enquiry-form input, #enquiry-form select {height:46px}
.enquiry-field input[aria-invalid="true"] {border-bottom-color:#922b24}
.field-error {display:block;margin-top:6px;color:#922b24;font-size:13px;line-height:1.4}
input, textarea, select {display:block;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:9px 0 10px;color:var(--ink);font-size:17px;font-weight:300;line-height:1.5}
input:focus, textarea:focus, select:focus {border-bottom-color:var(--ink);outline-offset:3px}
textarea {resize:vertical;min-height:95px}
textarea::placeholder {color:#928575;font-size:16px}
.primary-button {width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--ink);color:var(--ivory);padding:20px 25px;font-size:15px;transition:background .2s}
.primary-button:hover {background:#514438}
.primary-button span {font-size:24px;line-height:1}
[hidden] {display:none!important}
footer {background:var(--ink);color:var(--ivory);padding:60px var(--gutter) 25px}
.footer-top {display:flex;justify-content:space-between;gap:40px;align-items:center;padding-bottom:55px}
.footer-top img {width:260px;height:auto}
.footer-top>p {font-size:14px}
.back-top {display:flex;gap:35px;align-items:center;font-size:13px}
.back-top span {font-size:25px}
.footer-bottom {border-top:1px solid #f2f0eb33;padding-top:23px;display:flex;align-items:center;gap:45px;font-size:11px;color:#ddd3c6}
.subtle-button {padding:0;font-size:inherit;text-decoration:underline;text-underline-offset:3px}
dialog {border:0;background:var(--ivory);color:var(--ink);padding:0}
dialog::backdrop {background:#1b1816de}
#disclaimer {max-width:650px;width:calc(100vw - 40px);padding:55px}
#disclaimer h2 {font-size:45px;margin:20px 0 25px}
#disclaimer p:not(.eyebrow) {font-size:16px}
#disclaimer-close {position:absolute;right:20px;top:10px;font-size:30px}
.no-scroll {overflow:hidden}
@media(min-width:1700px) {
  .section-space {padding-left:max(var(--gutter),calc((100vw - 1480px)/2));padding-right:max(var(--gutter),calc((100vw - 1480px)/2))}
  .introduction {padding-left:80px;padding-right:80px}
}
@media(max-width:1100px) {
  .header {grid-template-columns:1fr 230px 1fr;padding-left:35px;padding-right:35px}
  .header nav {gap:16px;font-size:12px}
  .brand img {width:210px}
  .hero-scroll>span:first-child {display:none}
  .section-space {padding-top:80px;padding-bottom:80px}
  .architecture {gap:7%}
  .gallery-controls {gap:8px}
  .garden-intro {grid-template-columns:1fr 1.3fr;gap:30px}
  .garden-intro>.eyebrow {grid-column:1/-1;padding:0}
  .amenity-story {gap:8%}
  .team-grid h3 {font-size:27px}
  .enquire {gap:8%}
  .enquire h2 {font-size:59px}
}
@media(max-width:760px) {
  html {scroll-padding-top:85px}
  body {font-size:17px}
  .section-space {padding:70px 24px}
  .header, .header.is-sticky {height:88px;padding:22px 24px;grid-template-columns:1fr 100px}
  .header .brand {justify-content:flex-start}
  .brand img {width:190px}
  .header nav {display:none}
  .menu-toggle {display:flex;align-items:center;justify-content:flex-end;gap:13px;padding:8px 0;font-size:12px}
  .menu-icon {display:block;width:22px}
  .menu-icon i {display:block;height:1px;background:currentColor;width:22px;margin:6px 0;transition:transform .2s}
  .menu-toggle[aria-expanded=true] .menu-icon i:first-child {transform:translateY(3.5px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] .menu-icon i:last-child {transform:translateY(-3.5px) rotate(-45deg)}
  .header.menu-open {position:fixed;background:var(--ivory);color:var(--ink)}
  .header.menu-open .brand img {filter:none}
  .mobile-menu {position:fixed;z-index:25;inset:88px 0 0;background:var(--ivory);padding:35px 28px;overflow:auto}
  .mobile-menu nav {display:flex;flex-direction:column;gap:15px;font-size:31px;line-height:1.4}
  .mobile-menu p {font-size:12px;letter-spacing:.04em;margin-top:40px;color:var(--muted)}
  .hero {height:91svh;min-height:620px;max-height:1000px}
  .hero-shade {background:linear-gradient(180deg,rgba(33,30,27,.297058824),transparent 30%),linear-gradient(180deg,transparent 30%,rgba(33,30,27,.043921569) 45%,rgba(33,30,27,.532549020))}
  .hero-content {left:24px;right:20px;bottom:95px}
  .hero h1 {font-size:clamp(46px,10.6vw,75px);line-height:1.08;letter-spacing:-.035em}
  .hero-content .eyebrow {font-size:10px;margin-bottom:19px;letter-spacing:.14em}
  .hero-scroll {bottom:29px;left:24px;right:auto;gap:17px}
  .hero-scroll>span:first-child {display:block;font-size:11px}
  .round-arrow {width:34px;height:34px;font-size:18px}
  .introduction .monogram {height:50px;margin-bottom:28px}
  .introduction .eyebrow {font-size:10px;margin-bottom:24px}
  .introduction h2 {font-size:54px}
  .intro-copy {font-size:18px;margin-top:25px}
  .introduction .text-link {font-size:14px}
  .architecture {display:flex;flex-direction:column;gap:40px}
  .section-heading {grid-template-columns:1fr;gap:28px;margin-bottom:35px}
  .section-heading h2 {font-size:53px}
  .section-heading .eyebrow {font-size:11px;margin-bottom:21px}
  .heading-copy {max-width:none;margin:0}
  .heading-copy .text-link {margin-top:13px}
  .residences {padding-bottom:65px}
  .gallery-media>img {aspect-ratio:1.12;object-position:50%}
  .gallery-toolbar {flex-direction:column;gap:0;min-height:0}
  .gallery-controls {justify-content:center;min-height:58px;gap:15px}
  .garden-intro {display:block}
  .garden-intro .eyebrow {margin-bottom:23px;font-size:10px}
  .garden-intro h2 {font-size:55px;margin-bottom:28px}
  .garden-intro h2 br {display:none}
  .garden-intro>p:not(.eyebrow) {font-size:17px}
  .garden-panorama {margin:0}
  .garden-panorama img {aspect-ratio:1.6;max-height:340px;object-position:56% 65%}
  .amenity-story {display:flex;flex-direction:column;gap:35px;padding-top:50px}
  .village-image {margin-left:-24px;margin-right:-24px}
  .village-image img {aspect-ratio:1.25;object-position:55%}
  .location-facts {grid-template-columns:1fr 1fr;gap:30px 0;margin-top:32px}
  .location-facts>div {padding:0 16px}
  .location-facts>div:nth-child(2) {border:0}
  .location-facts>div:last-child {grid-column:1/-1;padding:25px 0 0;border-top:1px solid var(--line)}
  .location-facts strong {font-size:34px}
  .location-facts span {font-size:11px}
  .team h2 {font-size:43px}
  .team>.eyebrow {font-size:10px}
  .team-intro {font-size:17px}
  .team-grid {grid-template-columns:1fr 1fr;margin-top:40px;gap:38px 0}
  .team-grid>div {padding:0 15px}
  .team-grid>div:nth-child(2) {border:0}
  .team-grid .eyebrow {font-size:9px}
  .team-grid h3 {font-size:27px;margin-top:12px}
  .enquire {grid-template-columns:1fr;gap:50px}
  .enquire h2 {font-size:57px}
  .enquire-copy>.eyebrow {font-size:11px}
  .enquire-copy>p:not(.eyebrow) {max-width:100%}
  .contact-details {margin-top:30px}
  .form-heading {font-size:24px}
  .form-row {column-gap:20px}
  .primary-button {padding:19px 22px}
  footer {padding:45px 24px 25px}
  .footer-top {display:grid;grid-template-columns:1fr 1fr;gap:32px 15px;padding-bottom:35px}
  .footer-top>a:first-child {grid-column:1/-1}
  .footer-top img {width:220px}
  .footer-top>p {font-size:12px}
  .back-top {justify-content:flex-end;font-size:12px;gap:16px}
  .footer-bottom {font-size:9px;gap:20px;flex-wrap:wrap}
  #disclaimer {padding:42px 27px}
  #disclaimer h2 {font-size:38px}
}
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  *, *:before, *:after {animation:none!important;transition:none!important}
}
@media(max-width:760px) {
  .header .brand img {width:min(190px,50vw)}
  .team-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-grid>div {min-width:0}
  .team-grid h3 {font-size:clamp(21px,6vw,27px)}
}
@media(max-width:360px) {
  .header, .header.is-sticky {grid-template-columns:minmax(0,1fr) 80px}
  .team-grid>div {padding:0 10px}
  .team-grid .eyebrow {font-size:8px;letter-spacing:.04em}
  .form-row {grid-template-columns:1fr}
  .enquire h2 {font-size:50px}
  .hero h1 {font-size:43px}
  .intro-copy {font-size:17px}
}
/* The footer keeps contact information in three clearly labelled groups. */
.footer-top {display:grid;grid-template-columns:1.1fr 1fr 1.2fr .9fr;align-items:start;gap:32px;padding-bottom:48px}
.footer-top .footer-brand {padding-top:4px}
.footer-top img {width:230px;max-width:100%}
.footer-location, .footer-phone {font-size:14px;line-height:1.65}
.footer-location .eyebrow, .footer-phone .eyebrow {font-size:10px;color:var(--taupe);margin-bottom:17px;letter-spacing:.12em}
.footer-location a {display:block}
.footer-appointment {font-size:11px;color:#d3c7b8;margin-top:10px}
.footer-phone>a {font-size:24px;white-space:nowrap;line-height:1.3;letter-spacing:-.02em}
.footer-bottom .back-top {font-size:11px;gap:18px;margin-left:auto;justify-content:flex-end}
.footer-bottom .back-top span {font-size:20px}
@media(max-width:1100px) and (min-width:761px) {
  .footer-top {grid-template-columns:1fr 1fr 1fr;gap:35px}
  .footer-top .footer-brand {grid-column:1/-1}
  .footer-top img {width:240px}
}
@media(max-width:760px) {
  .footer-top {grid-template-columns:1fr 1fr;gap:34px 20px}
  .footer-top .footer-brand {grid-column:1/-1}
  .footer-phone {grid-column:1/-1}
  .footer-location {font-size:13px}
  .footer-location .eyebrow, .footer-phone .eyebrow {font-size:9px;letter-spacing:.08em;margin-bottom:12px}
  .footer-top img {width:220px}
  .footer-phone>a {font-size:28px}
  .footer-bottom {gap:18px 24px;display:grid;grid-template-columns:1fr auto}
  .footer-bottom .back-top {grid-column:2;grid-row:1;font-size:10px}
  .footer-bottom .subtle-button {grid-row:2;grid-column:1;text-align:left;justify-self:start}
}
@media(max-width:360px) {
  .footer-top {grid-template-columns:1fr}
  .footer-top .footer-brand, .footer-phone {grid-column:auto}
}
.village-image {overflow:hidden;background:var(--cream)}
.village-image img {width:100%;height:auto;aspect-ratio:2.2/1;max-height:540px;object-fit:cover;object-position:50% 53%}
.village-toolbar {display:flex;align-items:center;justify-content:center;min-height:84px}
.village-controls {display:flex;align-items:center;justify-content:center;gap:17px;white-space:nowrap}
.village-controls>span {font-size:13px;letter-spacing:.08em}
.village-controls button {display:grid;place-items:center;width:44px;height:44px;font-size:26px;line-height:1;border:1px solid var(--line);border-radius:50%;transition:background .2s}
.village-controls button:hover {background:var(--cream)}
@media(max-width:760px) {
  .village-image img {aspect-ratio:1.5;max-height:400px;object-position:50%}
  .village-toolbar {min-height:58px}
  .village-controls {gap:15px;min-height:58px}
  .village-controls button {width:40px;height:40px;font-size:23px}
  .team-grid h3 {font-size:clamp(20px,5.9vw,27px)}
}
@media(max-width:360px) {
  .team-grid>div {padding:0 10px}
}
/* Action links and building presentation. */
.text-link {min-height:52px;border:1px solid var(--taupe);border-radius:999px;padding:13px 24px;gap:24px;line-height:1.4;background:transparent;transition:background .2s,color .2s,border-color .2s}
.text-link span {font-size:20px;line-height:1;transition:transform .2s}
.text-link:hover {background:var(--cream);color:var(--ink);border-color:var(--taupe)}
.text-link:hover span {transform:translateX(4px)}
.introduction .text-link {margin-top:10px;padding:15px 28px}
.building {border-bottom:1px solid var(--line);padding-bottom:90px}
.building-panorama {position:relative;overflow:hidden}
.building-panorama img {width:100%;height:auto;aspect-ratio:15/8;object-fit:cover}
.building-story {display:grid;grid-template-columns:1fr 2fr;gap:10%;align-items:start;padding-top:32px}
.building-story>.eyebrow {padding-top:5px}
.building-story>p:last-child {font-size:18px;max-width:740px;margin:0}
@media(max-width:1100px) {
  .building-story {grid-template-columns:1fr 2.1fr;gap:6%}
}
@media(max-width:760px) {
  .text-link {min-height:50px;padding:12px 22px;gap:22px}
  .introduction .text-link {padding:14px 25px}
  .building-panorama {margin:0 -24px}
  .building-panorama img {aspect-ratio:15/8}
  .building-story {grid-template-columns:1fr;gap:18px;padding-top:27px}
  .building-story>.eyebrow {font-size:10px;padding:0}
  .building-story>p:last-child {font-size:17px}
  .building {padding-bottom:65px}
}
@media(prefers-reduced-motion:reduce) {
  .text-link, .text-link span {transition:none}
}
/* Preserve each photograph’s full original proportions. */
.garden-panorama img, .village-image img {width:100%;height:auto;max-height:none;object-fit:initial}
.garden-panorama img {aspect-ratio:2/1}
.village-image img {aspect-ratio:2000/1333}
.garden-toolbar {display:flex;align-items:center;justify-content:center;min-height:84px;margin:0 var(--gutter);border-bottom:0}
.garden-controls {display:flex;align-items:center;justify-content:center;gap:17px;white-space:nowrap}
.garden-controls>span {font-size:13px;letter-spacing:.08em}
.garden-controls button {display:grid;place-items:center;width:44px;height:44px;font-size:26px;line-height:1;border:1px solid #f2f0eb55;border-radius:50%;transition:background .2s}
.garden-controls button:hover {background:#f2f0eb15}
.private-appointment {margin-top:36px;padding-top:28px;border-top:1px solid var(--line);max-width:390px}
.private-appointment .eyebrow {font-size:10px;margin-bottom:12px}
.private-appointment>a {display:inline-block;font-size:32px;line-height:1.3;letter-spacing:-.02em}
@media(max-width:760px) {
  .garden-toolbar {margin:0 24px;min-height:58px}
  .garden-controls {gap:15px;min-height:58px}
  .garden-controls button {width:40px;height:40px;font-size:23px}
  .private-appointment {margin-top:30px;padding-top:25px;max-width:none}
}

.hero-video {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero-content {max-width:940px}
.hero h1 {font-size:clamp(58px,6vw,96px)}
.architecture {display:block}
.architecture-heading {display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:start;margin-bottom:56px}
.architecture-heading .eyebrow {margin-bottom:25px}
.architecture-heading h2 {font-size:clamp(48px,4.4vw,68px)}
.architecture-description {max-width:490px;margin-left:auto;padding-top:3px}
.architecture-images {display:grid;grid-template-columns:1fr 1fr;gap:35px}
.architecture-images figure {position:relative;overflow:hidden}
.architecture-overview {grid-column:1/-1}
.architecture-overview img {width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.architecture-entry img, .architecture-detail img {width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.architecture-entry img {object-position:50% 66%}
.architecture-detail img {object-position:55% 43%}
.garden-panorama img {aspect-ratio:8/5;object-fit:cover;object-position:50% 58%}
.partner-logo {height:105px;display:flex;align-items:center;justify-content:center;margin-top:14px}
.partner-logo img {width:210px;max-width:100%;height:auto;max-height:75px;object-fit:contain}
.partner-ptw img {width:130px}
.partner-360-degrees img {width:145px}
.enquire-copy .private-appointment {border-top:0;padding-top:0;margin-top:38px}
.enquire-copy .contact-details {max-width:390px;border-top:1px solid var(--line);padding-top:25px;margin-top:28px}
.enquire-copy .contact-details>.eyebrow:first-child {margin-top:0}
.footer-bottom {display:grid;grid-template-columns:1fr auto 1fr;gap:30px}
.footer-legal {display:flex;align-items:center;gap:34px}
.footer-legal>p {margin:0;font-size:11px;font-weight:300;line-height:1.4;letter-spacing:.12em;text-transform:uppercase}
.footer-developer {display:block;justify-self:center}
.footer-developer img {width:200px;height:auto}
.footer-bottom .back-top {margin-left:0;justify-self:end}
@media(max-width:1100px) {
  .architecture-heading {gap:7%}
  .architecture-images {gap:25px}
  .partner-logo img {width:180px}
  .partner-ptw img {width:115px}
  .partner-360-degrees img {width:130px}
  .footer-developer img {width:175px}
  .footer-legal {gap:20px}
  .footer-bottom {gap:25px}
}
@media(max-width:760px) {
  .hero h1 {font-size:clamp(44px,10.2vw,75px)}
  .hero-content {bottom:110px}
  .architecture-heading {grid-template-columns:1fr;gap:28px;margin-bottom:35px}
  .architecture-heading h2 {font-size:52px}
  .architecture-description {max-width:none;margin:0;padding:0}
  .architecture-heading .eyebrow {font-size:10px;margin-bottom:22px}
  .architecture-images {gap:20px}
  .architecture-overview img {aspect-ratio:16/9}
  .architecture-entry img, .architecture-detail img {aspect-ratio:4/5;object-position:50% 58%}
  .partner-logo {height:75px;margin-top:10px}
  .partner-logo img {width:145px;max-height:58px}
  .partner-ptw img {width:100px}
  .partner-360-degrees img {width:110px}
  .enquire-copy .private-appointment {margin-top:30px}
  .enquire-copy .contact-details {max-width:none}
  .footer-bottom {grid-template-columns:1fr auto;gap:27px 20px;align-items:center}
  .footer-developer {grid-row:1;grid-column:1;justify-self:start}
  .footer-developer img {width:160px}
  .footer-bottom .back-top {grid-row:1;grid-column:2}
  .footer-legal {grid-row:2;grid-column:1/-1;justify-content:space-between}
  .footer-bottom .subtle-button {grid-row:auto;grid-column:auto}
}
@media(max-width:360px) {
  .footer-developer img {width:140px}
  .partner-logo img {max-height:48px}
  .hero h1 {font-size:43px}
  .architecture-images {gap:14px}
}
.architecture-entry img, .architecture-detail img {aspect-ratio:1/1}
.partner-ptw img {width:90px}
.partner-360-degrees img {width:100px}
.team-grid {gap:32px;align-items:stretch}
.partner-card {display:flex;flex-direction:column;min-width:0;text-align:left}
.partner-card>.eyebrow {text-align:center;width:100%;min-height:30px}
.partner-card .partner-logo {width:100%;height:82px;flex-shrink:0;margin:8px 0 22px}
.partner-project-image {overflow:hidden;width:100%;position:relative}
.partner-project-image img {width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:50% 50%}
.partner-card:first-child .partner-project-image img {object-position:75% 50%}
.partner-project-name {font-size:11px;line-height:1.5;color:var(--muted);margin-top:12px}
.partner-description {font-size:15px;line-height:1.6;margin:16px 0 24px;flex:1}
.partner-website {display:inline-flex;align-items:center;justify-content:space-between;align-self:flex-start;gap:18px;min-height:44px;padding:10px 17px;border:1px solid var(--taupe);border-radius:999px;font-size:13px;line-height:1.3}
.partner-website:hover {background:var(--ivory)}
.partner-website>span {font-size:18px;line-height:1}
@media(max-width:1100px) {
  .team-grid {gap:24px}
  .partner-description {font-size:14px}
  .partner-ptw img {width:85px}
  .partner-360-degrees img {width:95px}
  .partner-card>.eyebrow {font-size:9px}
  .partner-card .partner-logo {margin-bottom:18px}
}
@media(max-width:760px) {
  .architecture-entry img, .architecture-detail img {aspect-ratio:1/1}
  .team-grid {gap:40px 22px}
  .partner-card .partner-logo {height:65px;margin:5px 0 18px}
  .partner-ptw img {width:76px}
  .partner-360-degrees img {width:82px}
  .partner-card>.eyebrow {font-size:8px;letter-spacing:.08em;min-height:27px}
  .partner-project-name {font-size:10px;margin-top:10px}
  .partner-description {font-size:14px;margin:12px 0 18px}
  .partner-website {font-size:12px;padding:9px 12px;gap:10px}
}
@media(max-width:360px) {
  .team-grid {gap:35px 18px}
  .partner-ptw img {width:68px}
  .partner-360-degrees img {width:74px}
  .partner-description {font-size:13px}
  .partner-website {padding:9px 10px;gap:8px}
}
/* Fine-line arrows and quiet partner links. */
.arrow-icon {display:inline-block;width:23px;height:23px;vertical-align:middle;flex-shrink:0;pointer-events:none}
.garden-controls button, .village-controls button, .gallery-controls button {display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:0;background:transparent;transition:opacity .2s}
.garden-controls button:hover, .village-controls button:hover, .gallery-controls button:hover {background:transparent;opacity:.55}
.round-arrow {border:0;border-radius:0;background:none}
.hero-scroll:hover .round-arrow {background:none}
.text-link span, .primary-button span, .back-top span {display:inline-flex;align-items:center}
.partner-website {border:0;border-bottom:1px solid var(--taupe);border-radius:0;padding:8px 0;gap:22px;min-height:44px;font-size:13px}
.partner-website:hover {background:none;border-bottom-color:var(--ink)}
.partner-website .arrow-icon {width:19px;height:19px}
.scheme-section {padding-top:85px;background:var(--cream)}
.scheme-section .section-heading {align-items:center}
.scheme-section h2 {font-size:clamp(46px,4.8vw,72px)}
.comparison-hint {font-size:14px;color:var(--muted);margin-top:20px}
.scheme-comparison {position:relative;overflow:hidden;aspect-ratio:3/2;isolation:isolate;background:var(--ink)}
.scheme-comparison>img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none}
.scheme-overlay {clip-path:inset(0 calc(100% - var(--reveal)) 0 0)}
.scheme-label {position:absolute;top:24px;color:white;font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-shadow:none;pointer-events:none}
.scheme-pearl {left:24px}
.scheme-amber {right:24px}
.comparison-divider {position:absolute;top:0;bottom:0;left:var(--reveal);width:1px;background:#fff;pointer-events:none;transform:translateX(-.5px)}
.comparison-divider>span {position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:50px;height:50px;border:1px solid #fff;border-radius:50%;background:#332b2680;color:white;font-size:24px;white-space:nowrap;line-height:1}
#scheme-range {position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:ew-resize;touch-action:pan-y}
.scheme-comparison:has(#scheme-range:focus-visible) .comparison-divider>span {outline:2px solid white;outline-offset:4px}
.scheme-detail {font-size:16px;max-width:740px;margin:32px auto 0;text-align:center}
@media(max-width:760px) {
  .scheme-section h2 {font-size:46px}
  .scheme-comparison {margin:0 -24px;aspect-ratio:3/2}
  .scheme-label {top:16px;font-size:10px}
  .scheme-pearl {left:16px}
  .scheme-amber {right:16px}
  .comparison-divider>span {width:42px;height:42px;font-size:20px}
  .scheme-detail {font-size:15px}
}
.partner-card .partner-ptw img, .partner-card .partner-360-degrees img, .partner-card .partner-westbourne img {transform:scale(.85);transform-origin:center}
/* Consistent frames for the wide residence and rooftop carousels. */
.gallery-media>img, .garden-panorama img {width:100%;height:auto;aspect-ratio:8/5;object-fit:cover}
@media(max-width:760px) {
  .gallery-image-wrap {margin-left:-24px;margin-right:-24px}
}
/* Alternating section tones and understated partner actions. */
.team {background:var(--ivory)}
.neighbourhood {background:var(--cream)}
.partner-card .partner-website {position:relative;border:0;border-radius:0;background:transparent;min-height:44px;padding:9px 0;gap:12px;font-size:11px;line-height:1.4;letter-spacing:.12em;text-transform:uppercase;justify-content:flex-start}
.partner-card .partner-website .arrow-icon {width:15px;height:15px;transition:transform .25s ease}
.partner-card .partner-website:after {content:"";position:absolute;left:0;bottom:7px;width:calc(100% - 27px);height:1px;background:var(--taupe);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.partner-card .partner-website:hover, .partner-card .partner-website:focus-visible {background:transparent}
.partner-card .partner-website:hover:after, .partner-card .partner-website:focus-visible:after {transform:scaleX(1)}
.partner-card .partner-website:hover .arrow-icon {transform:translate(2px,-2px)}
/* One shared action style across the site. */
.text-link.action-link, .primary-button.action-link, .hero-scroll.action-link, .back-top.action-link, .nav-enquire.action-link, .subtle-button.action-link, .partner-card .partner-website.action-link {border:0;border-radius:0;background:transparent;min-height:44px;padding:9px 0;gap:12px;font-size:11px;font-weight:300;line-height:1.4;letter-spacing:.12em;text-transform:uppercase;justify-content:flex-start;text-decoration:none;transition:color .25s ease}
.text-link.action-link, .primary-button.action-link, .back-top.action-link, .nav-enquire.action-link, .subtle-button.action-link, .partner-card .partner-website.action-link {position:relative;display:inline-flex;align-items:center;width:auto}
.primary-button.action-link {color:var(--ink)}
.action-link .arrow-icon {width:15px;height:15px;transition:transform .25s ease}
.action-link .round-arrow {width:auto;height:auto;border:0;background:none}
.action-link:after {content:"";position:absolute;left:0;bottom:7px;width:calc(100% - 27px);height:1px;background:currentColor;opacity:.55;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.action-link:hover:after, .action-link:focus-visible:after {transform:scaleX(1)}
.text-link.action-link:hover, .primary-button.action-link:hover, .partner-card .partner-website.action-link:hover {background:transparent;color:inherit}
.action-link:hover .arrow-icon {transform:translate(2px,-2px)}
.action-link:hover>span {transform:none}
.subtle-button.action-link:after {width:100%}
.gallery-controls .arrow-icon, .garden-controls .arrow-icon, .village-controls .arrow-icon {width:18px;height:18px}
@media(max-width:760px) {
  .menu-toggle {font-size:11px}
}
.header nav {align-items:center}
/* Generous spacing, square photo frames and scroll entrances. */
.section-space {padding-top:180px;padding-bottom:180px}
.introduction {padding-top:175px;padding-bottom:192px}
.architecture {padding-top:168px;padding-bottom:168px}
.building {padding-bottom:160px}
.residences {padding-bottom:164px}
.scheme-section {padding-top:152px}
.garden-intro {padding-top:175px;padding-bottom:152px}
.amenity-story {padding-top:132px;padding-bottom:150px}
.team {padding-top:160px;padding-bottom:164px}
.neighbourhood {padding-bottom:172px}
.enquire {padding-top:184px;padding-bottom:196px}
.section-heading {margin-bottom:104px}
.architecture-heading {margin-bottom:100px}
.team-grid {margin-top:108px}
.location-facts {margin-top:72px}
footer {padding-top:104px}
.footer-top {padding-bottom:84px}
.architecture-images figure, .building-panorama, .gallery-media, .scheme-comparison, .garden-panorama, .village-image, .partner-project-image {border-radius:0;overflow:hidden}
.scroll-reveal {opacity:0;transform:translateY(44px);transition:opacity 1.25s cubic-bezier(.25,.1,.25,1),transform 1.25s cubic-bezier(.2,.65,.3,1);transition-delay:var(--entry-delay,0ms)}
.scroll-reveal.is-revealed, .scroll-reveal:focus-within {opacity:1;transform:none}
@media(max-width:1100px) {
  .section-space {padding-top:136px;padding-bottom:136px}
  .section-heading, .architecture-heading {margin-bottom:76px}
}
@media(max-width:760px) {
  .section-space {padding-top:112px;padding-bottom:112px}
  .section-heading, .architecture-heading {margin-bottom:62px}
  .team-grid {margin-top:70px;row-gap:68px}
  .location-facts {margin-top:54px}
  footer {padding-top:80px}
  .footer-top {padding-bottom:60px}
  .architecture-images figure, .building-panorama, .gallery-media, .scheme-comparison, .garden-panorama, .village-image, .partner-project-image {border-radius:0}
  .scroll-reveal {transform:translateY(32px)}
  .scroll-reveal.is-revealed, .scroll-reveal:focus-within {transform:none}
}
@media(prefers-reduced-motion:reduce) {
  .scroll-reveal {opacity:1;transform:none;transition:none}
}
/* Vector handle arrows stay optically centred across browsers. */
.comparison-divider>span {line-height:0;font-size:0}
.comparison-divider>span>svg {display:block;width:32px;height:20px}
.partner-card .partner-description {margin-top:30px}
.location-facts>.location-fact {display:flex;align-items:center;gap:20px}
@media(max-width:760px) {
  .comparison-divider>span>svg {width:28px;height:18px}
  .partner-card .partner-description {margin-top:24px}
  .location-facts>.location-fact {gap:10px;align-items:flex-start}
}
@media(max-width:360px) {
  .location-facts>.location-fact {gap:8px}
}
/* Annotated aerial photograph. */
.village-image.is-aerial img {object-fit:cover;object-position:center top}
.location-facts>.location-fact {gap:22px}
@media(max-width:1100px) {
  .location-facts>.location-fact {gap:16px}
}
@media(max-width:760px) {
  .location-facts>.location-fact {flex-direction:column;gap:12px}
  .village-image.is-aerial {background:var(--cream)}
}
/* Text-only location facts, aligned to the left of each column. */
.location-facts>.location-fact {display:block;text-align:left}
/* Astoria Light throughout, including native controls and emphasized text. */
body, body * {font-family:"astoria",sans-serif;font-weight:300;font-synthesis:none}
/* Pure white invitation section. */
#enquire {background:#fff}
#enquiry-form {--enquiry-row-gap:24px;--enquiry-label-height:21px;display:grid;row-gap:var(--enquiry-row-gap);min-width:0;align-self:start;background:var(--ivory);padding:clamp(24px,3vw,44px);border-radius:0}

/* Reveal the partner row as one composition, without staggered card movement. */
.team-grid.scroll-reveal{transform:none}

/* Lower architecture photographs share one entrance and their existing grid gap. */
.architecture-image-pair{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:inherit}

/* Directional slides stay clipped inside the existing, fixed-size image frames. */
.gallery-media,.garden-panorama,.village-image{position:relative}
.carousel-swipe-surface{touch-action:pan-y pinch-zoom;cursor:grab;user-select:none;-webkit-user-select:none}
.carousel-swipe-surface.is-swiping{cursor:grabbing}
.carousel-swipe-surface>img{transition:none;-webkit-user-drag:none}
.garden-panorama>figcaption{z-index:1}

/* A brief, transform-only opening curtain; no ongoing scroll animation. */
.site-preloader{position:fixed;inset:0;z-index:10000;display:none;place-items:center;background:var(--ivory,#f2f0eb);perspective:900px;transition:transform .95s cubic-bezier(.76,0,.24,1);will-change:transform}
html.is-loading .site-preloader,.site-preloader.is-leaving{display:grid}
html.is-loading{overflow:hidden}
.site-preloader img{width:clamp(104px,12vw,164px);height:auto;animation:monogram-turn 2.8s linear infinite;backface-visibility:visible;will-change:transform}
.site-preloader.is-leaving{transform:translateY(-100%);pointer-events:none}
@keyframes monogram-turn{from{transform:rotateY(0deg)}to{transform:rotateY(360deg)}}
@media(prefers-reduced-motion:reduce){.site-preloader{transition:none}.site-preloader img{animation:none;will-change:auto}}

.scheme-kitchens{display:flex;flex-wrap:wrap;gap:12px;margin:-12px 0 28px}
.scheme-kitchens button {
  min-height:44px;
  padding:10px 22px;
  border:1px solid var(--ink);
  border-radius:9999px;
  background:transparent;
  color:var(--ink);
  font-size:14px;
  font-weight:400;
  line-height:1.4;
  transition:background .2s,color .2s,border-color .2s;
}
.scheme-kitchens button:hover{background:var(--ivory)}
.scheme-kitchens button[aria-pressed="true"]{background:var(--ink);color:var(--ivory)}
.scheme-kitchens button[aria-pressed="true"]:hover{background:var(--muted);border-color:var(--muted)}
.scheme-kitchens button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.scheme-switch-status{font-size:14px;margin:0 0 20px}
@media(max-width:1100px){.scheme-kitchens button{font-size:12px}}
@media(max-width:760px){.scheme-kitchens{margin:0 0 22px}}

/* The primary enquiry action remains distinct in both header states. */
.header nav a.nav-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 22px;border-radius:9999px;background:var(--ivory);color:var(--ink);font-weight:400;line-height:1.4;transition:background .2s,color .2s}
.header nav a.nav-cta:after{display:none}
.header nav a.nav-cta:hover{background:var(--cream)}
.header.is-sticky nav a.nav-cta{background:var(--ink);color:var(--ivory)}
.header.is-sticky nav a.nav-cta:hover{background:var(--muted)}
.header nav a.nav-cta:focus-visible{outline:2px solid currentColor;outline-offset:4px}

/* Show the three private amenities together beneath their shared introduction. */
.amenity-story{display:block;padding-top:196px;padding-bottom:216px}
.amenity-heading{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:end;margin-bottom:96px}
.amenity-heading .eyebrow{color:var(--blush);margin-bottom:25px}
.amenity-heading h3{font-size:clamp(34px,3.4vw,52px);line-height:1.13;margin:0}
.amenity-heading>p{font-size:18px;margin:0}
.amenity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.amenity-card{margin:0;min-width:0}
.amenity-card-media{position:relative;overflow:hidden}
.amenity-card-media img{width:100%;height:auto;aspect-ratio:1/1.1;object-fit:cover;object-position:center;display:block}
.amenity-card>figcaption{position:static;text-shadow:none;color:var(--ivory);margin-top:20px;font-size:18px;line-height:1.4}
@media(max-width:760px){.amenity-story{padding-top:168px;padding-bottom:190px}.amenity-heading{grid-template-columns:1fr;gap:25px;margin-bottom:64px}.amenity-heading>p{font-size:17px}.amenity-grid{grid-template-columns:1fr;gap:38px}.amenity-card-media img{aspect-ratio:1/1}.amenity-card>figcaption{margin-top:16px}}

.enquiry-actions {display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px}
.enquiry-status {flex:1 1 180px;font-size:14px;line-height:1.4}
.enquiry-status:empty {position:absolute}
.enquiry-actions button:disabled {opacity:.65;cursor:wait}

#enquiry-form .primary-button.action-link{background:var(--ink);color:var(--ivory);padding:10px 22px;min-height:44px;border-radius:9999px;font-size:14px;font-weight:400;line-height:1.4;letter-spacing:normal;text-transform:none;justify-content:center;transition:background .2s,color .2s}
#enquiry-form .primary-button.action-link:hover{background:var(--muted)}
#enquiry-form .primary-button.action-link:after{display:none}
#enquiry-form .primary-button.action-link:focus-visible{outline:2px solid var(--ink);outline-offset:4px}

.menu-toggle {font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:300}

@media(max-width:1100px){#enquiry-form .primary-button.action-link{font-size:12px}}

/* Keep the expanded navigation clear of the centred logo on tablets. */
@media(min-width:761px) and (max-width:1000px) {
  .header, .header.is-sticky {height:88px;padding:22px 24px;grid-template-columns:1fr 100px}
  .header .brand {justify-content:flex-start}
  .brand img {width:190px}
  .header nav {display:none}
  .menu-toggle {display:flex;align-items:center;justify-content:flex-end;gap:13px;padding:8px 0;font-size:12px}
  .menu-icon {display:block;width:22px}
  .menu-icon i {display:block;height:1px;background:currentColor;width:22px;margin:6px 0;transition:transform .2s}
  .menu-toggle[aria-expanded=true] .menu-icon i:first-child {transform:translateY(3.5px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] .menu-icon i:last-child {transform:translateY(-3.5px) rotate(-45deg)}
  .header.menu-open {position:fixed;background:var(--ivory);color:var(--ink)}
  .header.menu-open .brand img {filter:none}
  .mobile-menu {position:fixed;z-index:25;inset:88px 0 0;background:var(--ivory);padding:35px 28px;overflow:auto}
  .mobile-menu nav {display:flex;flex-direction:column;gap:15px;font-size:31px;line-height:1.4}
  .mobile-menu p {font-size:12px;letter-spacing:.04em;margin-top:40px;color:var(--muted)}
}

/* A compact, balanced footer with readable labels and grouped links. */
.footer-top {grid-template-columns:1.6fr 1fr 1.2fr 1fr;gap:32px 24px;padding-bottom:56px}
.footer-top .footer-brand {grid-column:1/-1;padding-bottom:6px}
.footer-nav {font-size:14px;line-height:1.65}
.footer-nav-links {display:grid;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:4px}
.footer-nav a {display:block;padding-block:3px}
.footer-nav a:last-child {grid-column:1/-1}
.footer-top .eyebrow, .news-page .footer-top .eyebrow {font-size:11px;color:#e2d8ca;margin-bottom:16px;letter-spacing:.1em}
@media(max-width:1000px) and (min-width:761px) {
  .footer-top {grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}
  .footer-nav {grid-column:1/-1;max-width:430px;width:100%}
}
@media(max-width:760px) {
  .footer-top {grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px;padding-bottom:40px}
  .footer-nav {grid-column:1/-1;font-size:14px}
  .footer-nav-links {max-width:440px;gap:0 24px}
  .footer-nav a {min-height:44px;display:flex;align-items:center;padding-block:4px}
  .footer-top .eyebrow {font-size:11px;margin-bottom:12px}
  .footer-phone {grid-column:1/-1}
}
@media(max-width:400px) {
  .footer-top {column-gap:18px}
  .footer-location {font-size:12px}
}
