@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:wght@400;500;600&display=swap');

:root{--cream:#f5f1e8;--ink:#112b1f;--gold:#ba9456;--deep:#1d2923;--muted:#596158}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,78px);background:var(--cream);position:relative;z-index:3}.brand{font-family:'Playfair Display',serif;font-size:24px;letter-spacing:.09em}.brand span{color:var(--gold);font-size:13px;margin-left:4px;letter-spacing:.12em}.header-link{font-size:13px;letter-spacing:.12em;text-transform:uppercase}.header-cta,.button{background:var(--ink);color:var(--cream);padding:14px 21px;font-size:12px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;display:inline-flex;justify-content:center;align-items:center;transition:transform .2s,background .2s}.header-cta:hover,.button:hover{transform:translateY(-2px)}.gold{background:var(--gold);color:var(--ink)}.hero{min-height:calc(100vh - 76px);position:relative;color:var(--cream);display:flex;align-items:flex-end;overflow:hidden}.hero>.photo-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,43,31,.84) 0%,rgba(17,43,31,.40) 49%,rgba(17,43,31,.10) 100%),linear-gradient(0deg,rgba(17,43,31,.62),transparent 58%)}.hero-content{position:relative;width:min(1180px,100%);margin:0 auto;padding:clamp(70px,10vw,145px) clamp(24px,5vw,78px) clamp(42px,6vw,76px)}.eyebrow{color:var(--gold);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin:0 0 18px}.light{color:#e0c086}.hero h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:400;letter-spacing:-.035em}.hero h1{font-size:clamp(44px,6.3vw,88px);line-height:1.02;margin:0;max-width:850px}.hero-copy{max-width:400px;font-size:16px;line-height:1.65;margin:30px 0 44px}.hero-bottom{display:flex;align-items:end;justify-content:space-between;gap:24px}.price-label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.8;margin-bottom:5px}.hero-bottom strong{color:#e0c086;font-size:27px;font-weight:500;letter-spacing:-.04em}.section{max-width:1180px;margin:0 auto;padding:clamp(72px,10vw,135px) clamp(24px,5vw,78px)}.intro-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:start}.intro h2,.section-heading h2,.location h2,.dark-intro h2,.final-cta h2{font-size:clamp(37px,4.2vw,62px);line-height:1.07;margin:0}.intro-grid p,.location p,.dark-intro p,.final-cta p{font-size:16px;line-height:1.8;margin:0 0 18px;color:var(--muted)}.facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:72px;border-top:1px solid #d8d0c1;border-bottom:1px solid #d8d0c1}.facts div{padding:23px 18px 24px 20px;border-right:1px solid #d8d0c1}.facts div:first-child{padding-left:0}.facts div:last-child{border:0}.facts span{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}.facts strong{font-family:'Playfair Display',serif;font-size:25px;font-weight:500}.section-heading{max-width:640px;margin-bottom:48px}.apartment-grid{display:grid;grid-template-columns:1.34fr .66fr;gap:15px}.apartment-grid img{width:100%;display:block;object-fit:cover}.image-large{height:600px}.image-pair{display:grid;gap:15px;grid-template-rows:1fr 1fr}.image-pair img{height:292px}.image-caption{color:var(--muted);font-size:13px;margin:17px 0 0}.dark-section{background:var(--deep);color:var(--cream)}.dark-inner{padding-top:110px;padding-bottom:118px}.dark-intro{display:grid;grid-template-columns:1fr .7fr;gap:80px;margin-bottom:54px}.dark-intro p{color:#c9d0c8}.amenities{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.amenities article{margin:0}.amenities img{width:100%;aspect-ratio:1.06;display:block;object-fit:cover}.amenities h3{font-family:'Playfair Display',serif;font-size:25px;font-weight:400;margin:14px 0 0}.location{display:grid;grid-template-columns:.8fr 1.2fr;gap:74px;align-items:center}.location>.photo-frame{width:100%;height:510px;object-fit:cover}.text-link{display:inline-block;margin-top:20px;font-size:12px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;border-bottom:1px solid var(--gold);padding-bottom:6px}.text-link span{color:var(--gold);font-size:18px;margin-left:8px}.final-cta{background:var(--ink);color:var(--cream);min-height:440px;padding:clamp(65px,8vw,108px) clamp(24px,9vw,145px);display:flex;align-items:end;justify-content:space-between;gap:38px}.final-cta p{color:#d5ddd3;max-width:470px;margin-top:22px}.final-cta .button{min-width:220px;margin-bottom:10px}footer{background:var(--ink);color:#d5ddd3;border-top:1px solid rgba(255,255,255,.17);padding:22px clamp(24px,9vw,145px);display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}@media(max-width:760px){.header-link{display:none}.topbar{height:66px}.hero{min-height:610px}.hero-content{padding-bottom:36px}.hero-bottom{align-items:start;flex-direction:column}.intro-grid,.dark-intro,.location{grid-template-columns:1fr;gap:32px}.facts{grid-template-columns:1fr 1fr;margin-top:48px}.facts div:nth-child(2){border-right:0}.facts div:nth-child(-n+2){border-bottom:1px solid #d8d0c1}.facts div:nth-child(3){padding-left:0}.apartment-grid{grid-template-columns:1fr}.image-large{height:410px}.image-pair{grid-template-columns:1fr 1fr;grid-template-rows:none}.image-pair img{height:230px}.amenities{grid-template-columns:1fr;gap:35px}.amenities img{aspect-ratio:1.5}.location>.photo-frame{height:380px}.final-cta{align-items:start;flex-direction:column}.final-cta .button{margin:0}footer{flex-direction:column;line-height:1.6}}

.photo-section { background: #eae4d9; }
.gallery-heading { max-width: 1180px; }
.gallery-heading > h2 { max-width: 650px; font-size: clamp(37px, 4.2vw, 62px); line-height: 1.07; margin: 0 0 68px; }
.gallery-block { padding: 54px 0 68px; border-top: 1px solid #cfc6b5; }
.gallery-block:last-child { padding-bottom: 0; }
.gallery-copy { display: grid; grid-template-columns: 90px minmax(0, 620px); gap: 18px; margin-bottom: 30px; }
.gallery-copy > span { font-family: 'Playfair Display', Georgia, serif; font-size: 45px; color: #ba9456; line-height: 1; }
.gallery-copy .eyebrow { margin-bottom: 10px; }
.gallery-copy h3 { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(28px, 3vw, 42px); line-height: 1.08; font-weight: 400; margin: 0 0 10px; color: #112b1f; }
.gallery-copy p:last-child { max-width: 500px; margin: 0; color: #596158; font-size: 15px; line-height: 1.6; }
.photo-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.photo-gallery > .photo-frame { display: block; width: 100%; height: 220px; object-fit: cover; }
.gallery-block:first-of-type .photo-gallery > .photo-frame:first-child, .leisure-block .photo-gallery > .photo-frame:first-child, .gallery-block:last-child .photo-gallery > .photo-frame:first-child { grid-column: span 2; grid-row: span 2; height: 450px; }
@media (max-width: 760px) { .gallery-heading > h2 { margin-bottom: 45px; } .gallery-block { padding: 38px 0 48px; } .gallery-copy { grid-template-columns: 46px 1fr; gap: 13px; margin-bottom: 22px; } .gallery-copy > span { font-size: 31px; } .photo-gallery { grid-template-columns: 1fr 1fr; gap: 7px; } .photo-gallery > .photo-frame { height: 150px; } .gallery-block:first-of-type .photo-gallery > .photo-frame:first-child, .leisure-block .photo-gallery > .photo-frame:first-child, .gallery-block:last-child .photo-gallery > .photo-frame:first-child { height: 307px; } }

:root { --page: min(1440px, calc(100vw - 64px)); }
/* Desktop frames use complete rows; no inherited double-row image heights. */
@media (min-width: 761px) {
  main .photo-gallery { display: flex; flex-wrap: wrap; gap: 10px; max-width: none; }
  main .photo-gallery > .photo-frame { flex: 1 1 calc(33.333% - 10px); width: calc(33.333% - 10px); min-width: 0; height: 260px; object-fit: cover; object-position: center; }
  main .photo-gallery > .photo-frame:first-child,
  main .gallery-block:first-of-type .photo-gallery > .photo-frame:first-child,
  main .gallery-block:last-child .photo-gallery > .photo-frame:first-child { height: 340px; flex-basis: calc(50% - 10px); width: calc(50% - 10px); }
  main .photo-gallery > .photo-frame:nth-child(2) { height: 340px; flex-basis: calc(50% - 10px); width: calc(50% - 10px); }
  main .gallery-heading { max-width: 1540px; }
}
body { overflow-x: hidden; }
.topbar { position: sticky; top: 0; height: 66px; border-bottom: 1px solid rgba(17,43,31,.12); background: rgba(245,241,232,.94); backdrop-filter: blur(14px); padding: 0 max(32px, calc((100vw - 1440px) / 2)); }
.topbar:before { content: none; }
@media (min-width: 761px) { .header-link { position: absolute; left: 50%; transform: translateX(-50%); } }
.hero { min-height: min(760px, calc(100vh - 66px)); }
.section { max-width: 1540px; padding: 60px 32px; }
.intro.section { padding-top: 70px; padding-bottom: 70px; }
.intro-grid { gap: 52px; }
.facts { margin-top: 44px; }
.section-heading { margin-bottom: 30px; }
.apartment.section { padding-top: 62px; padding-bottom: 58px; }
.apartment-grid { gap: 12px; }
.image-large { height: 520px; }
.image-pair { gap: 12px; }
.image-pair img { height: 254px; }
.photo-section .section { padding-top: 48px; padding-bottom: 56px; }
.gallery-heading > h2 { margin-bottom: 28px; }
.gallery-block { padding: 26px 0 30px; }
.gallery-copy { grid-template-columns: 58px minmax(0, 690px); margin-bottom: 20px; }
.gallery-copy > span { font-size: 34px; }
.gallery-copy h3 { font-size: clamp(28px, 2.7vw, 39px); }
.photo-gallery { grid-template-columns: repeat(3, 1fr); grid-auto-flow: dense; gap: 8px; }
.photo-gallery > .photo-frame { height: 250px; }
.photo-gallery > .photo-frame:first-child { grid-column: span 2; grid-row: span 2; height: 508px; }
.gallery-03 .photo-gallery, .gallery-09 .photo-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 940px; }
.gallery-03 .photo-gallery > .photo-frame, .gallery-09 .photo-gallery > .photo-frame { height: 380px; }
.gallery-03 .photo-gallery > .photo-frame:first-child, .gallery-09 .photo-gallery > .photo-frame:first-child { grid-column: auto; grid-row: auto; }
.location.section { padding-top: 72px; padding-bottom: 72px; }
.final-cta { min-height: 350px; padding: 70px max(32px, calc((100vw - 1180px) / 2)); }
@media (max-width: 760px) { .topbar { padding: 0 18px; }.topbar:before { display: none; }.section { padding: 52px 18px; }.intro.section { padding: 52px 18px; }.image-large { height: 340px; }.image-pair img { height: 170px; }.photo-section .section { padding: 46px 18px; }.gallery-block { padding: 30px 0 35px; }.photo-gallery { grid-template-columns: repeat(2, 1fr); gap: 5px; }.photo-gallery > .photo-frame { height: 142px; }.photo-gallery > .photo-frame:first-child { grid-column: span 2; grid-row: auto; height: 280px; }.gallery-03 .photo-gallery, .gallery-09 .photo-gallery { grid-template-columns: 1fr; }.gallery-03 .photo-gallery > .photo-frame, .gallery-09 .photo-gallery > .photo-frame { height: 230px; }.final-cta { padding: 58px 22px; } }

.photo-frame{position:relative;display:block;overflow:hidden}.photo-frame>img{width:100%;height:100%;display:block;object-fit:cover;cursor:zoom-in}.photo-frame>img:focus-visible{outline:3px solid #ba9456;outline-offset:-3px}.hero-expand{position:absolute;top:20px;right:20px;z-index:2;background:#112b1fe6;color:white;border:1px solid #ffffff70;padding:10px 16px;border-radius:4px;cursor:pointer;font-size:14px}
#viewer{width:calc(100vw - 24px);max-width:1600px;height:calc(100dvh - 24px);max-height:1100px;padding:16px;border:1px solid #ffffff40;border-radius:8px;background:#101813;color:white;margin:auto}#viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px}#viewer::backdrop{background:#000d}#full-photo{width:100%;height:100%;min-height:0;object-fit:contain}.viewer-header,.viewer-nav{display:flex;justify-content:space-between;align-items:center;gap:12px}#photo-title{font:500 16px/1.4 Arial,sans-serif;margin:0;color:white}#viewer button{min-height:44px;padding:8px 14px;border:1px solid #ffffff60;border-radius:4px;background:transparent;color:white;font-size:14px;cursor:pointer;white-space:nowrap}#viewer button:disabled{opacity:.3;cursor:default}#viewer button:focus-visible{outline:2px solid #ba9456}body.viewing-photo{overflow:hidden}@media(max-width:600px){#viewer{padding:12px}#photo-title{font-size:14px}}
