:root {
  --ink: #13241e;
  --ink-soft: #3d534b;
  --green: #1b3d33;
  --green-2: #245246;
  --gold: #c4a35a;
  --gold-2: #a8863e;
  --paper: #faf7f1;
  --cream: #f1ebe0;
  --line: #ddd4c4;
  --white: #fffdf8;
  --danger: #8a3b2b;
  --ok: #2b6b4f;
  --shadow: 0 18px 50px rgba(19, 36, 30, 0.08);
  --radius: 18px;
  --max: 1120px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "DM Sans", system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.55;
}
img { max-width: 100%; display: block; }
a { color: var(--green-2); }
.wrap { width: min(var(--max), calc(100% - 40px)); margin-inline: auto; }
.skip {
  position: absolute; left: -999px; top: 8px;
}
.skip:focus { left: 8px; background: #fff; padding: 8px 12px; z-index: 20; }

.topbar {
  position: sticky; top: 0; z-index: 40;
  background: rgba(250,247,241,.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
}
.topbar-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; min-height: 72px;
}
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); }
.brand img { width: 42px; height: 42px; object-fit: contain; }
.brand strong { display: block; font-size: 13px; letter-spacing: .04em; }
.brand span { display: block; font-size: 11px; color: var(--ink-soft); }
nav { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
nav a { text-decoration: none; color: var(--ink); font-size: 14px; }
nav a[aria-current="page"] { color: var(--gold-2); font-weight: 600; }
.lang { display: flex; gap: 8px; font-size: 12px; }
.lang a { text-decoration: none; color: var(--ink-soft); }
.lang a[aria-current="true"] { color: var(--ink); font-weight: 700; }
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; border-radius: 999px; text-decoration: none;
  padding: 12px 18px; font-weight: 600; border: 1px solid transparent;
  cursor: pointer; font-family: inherit; font-size: 14px;
}
.btn-gold { background: var(--gold); color: var(--ink); }
.btn-gold:hover { background: #d4b56c; }
.btn-dark { background: var(--green); color: #fff; }
.btn-line { background: transparent; border-color: var(--line); color: var(--ink); }
.hero {
  padding: 56px 0 28px;
  background:
    radial-gradient(1200px 400px at 10% -10%, #e8d7b0 0%, transparent 50%),
    linear-gradient(180deg, #efe7d8 0%, var(--paper) 100%);
}
.kicker { letter-spacing: .14em; text-transform: uppercase; font-size: 12px; color: var(--gold-2); font-weight: 700; }
h1, h2, h3 { font-family: "Fraunces", Georgia, serif; line-height: 1.15; margin: 8px 0 12px; }
h1 { font-size: clamp(34px, 5vw, 58px); max-width: 18ch; }
h2 { font-size: clamp(26px, 3vw, 38px); }
.lede { font-size: 18px; max-width: 62ch; color: var(--ink-soft); }
.facts { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0; }
.fact {
  background: var(--white); border: 1px solid var(--line); border-radius: 999px;
  padding: 8px 14px; font-size: 14px;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.notice {
  margin-top: 22px; padding: 14px 16px; border-radius: 14px;
  background: #fff7e6; border: 1px solid #ead7a6; color: #5c4a20; font-size: 14px;
}
section { padding: 56px 0; }
.muted { color: var(--ink-soft); }
.grid-3, .grid-4, .grid-2 { display: grid; gap: 16px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.card {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
  overflow: hidden; box-shadow: var(--shadow);
}
.card .body { padding: 18px; }
.card h3 { margin-top: 0; font-size: 22px; }
.price { font-size: 20px; font-weight: 700; }
.meta { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: var(--ink-soft); margin: 8px 0 14px; }
.photo {
  aspect-ratio: 4/3; background: #d7cfc0 center/cover no-repeat;
}
.photo.empty {
  display: grid; place-items: center; background:
    repeating-linear-gradient(45deg, #ece4d6, #ece4d6 12px, #e4dccb 12px, #e4dccb 24px);
  color: var(--ink-soft); text-align: center; padding: 20px; font-size: 14px;
}
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
th { background: var(--cream); font-weight: 600; }
.place { padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); }
.place small { display: block; color: var(--ink-soft); margin-top: 6px; }
.faq details { background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.faq + .faq { margin-top: 8px; }
form { display: grid; gap: 12px; background: var(--white); border: 1px solid var(--line); border-radius: 18px; padding: 20px; }
label { font-size: 13px; font-weight: 600; display: grid; gap: 6px; }
input, select, textarea {
  font: inherit; padding: 11px 12px; border-radius: 10px; border: 1px solid var(--line); background: #fff;
}
.form-error { color: var(--danger); font-size: 13px; }
.preview {
  white-space: pre-wrap; background: var(--cream); border-radius: 12px; padding: 14px; font-size: 14px;
}
footer { padding: 36px 0 48px; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 14px; }
.foot-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 24px; }
.chip { font-size: 12px; border: 1px solid var(--line); border-radius: 999px; padding: 3px 8px; }
.menu-btn { display: none; }
@media (max-width: 880px) {
  .grid-3, .grid-4, .grid-2, .foot-grid { grid-template-columns: 1fr; }
  .menu-btn { display: inline-flex; }
  nav { display: none; }
  nav.open { display: flex; position: absolute; inset: 72px 16px auto; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 16px; flex-direction: column; }
}
.photo { width:100%; height:auto; object-fit:cover; }
.form-wrap { max-width:850px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.consent { display:flex; align-items:flex-start; gap:10px; font-weight:400; }
.consent input { margin-top:5px; min-width:18px; min-height:18px; }
.hp { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.form-status { margin:0; color:var(--danger); }
.form-status.success { color:var(--ok); }
button:disabled { opacity:.7; cursor:default; }
input,select,textarea { min-width:0; width:100%; }
.consent input { width:auto; }
:focus-visible { outline:3px solid #a8863e; outline-offset:3px; }
section[id], article[id] { scroll-margin-top:100px; }
summary { cursor:pointer; font-weight:600; }
details.faq { padding:18px; border:1px solid var(--line); border-radius:12px; }
@media(max-width:600px) {
  .form-grid { grid-template-columns:1fr; }
  .topbar-inner { gap:8px; }
  .nav-cta { display:none; }
  .brand strong { font-size:11px; }
  .brand img { width:32px; height:32px; }
  .menu-btn { padding:9px 12px; }
}

/* A real panorama and a map-led flyover of the surrounding neighbourhood. */
.setting-tour { grid-column:1 / -1; min-width:0; margin-top:58px; scroll-margin-top:100px; }
.tour-intro { display:flex; justify-content:space-between; align-items:end; gap:28px; margin-bottom:24px; }
.tour-intro h3 { font:400 clamp(30px,3vw,42px)/1.15 Georgia,serif; max-width:21ch; margin:0 0 10px; color:#183a2d; }
.tour-intro p { max-width:65ch; margin:0; color:#3d5647; line-height:1.65; }
.tour-intro > span { max-width:160px; flex-shrink:0; color:#587160; text-align:right; font-size:11px; line-height:1.5; letter-spacing:.04em; text-transform:uppercase; }
.tour-panorama { margin:0 0 22px; background:#c7d4c8; overflow:hidden; border-radius:14px; }
.tour-panorama-scroll { overflow-x:auto; overflow-y:hidden; overscroll-behavior-inline:contain; scrollbar-width:thin; scrollbar-color:#315746 #c7d4c8; scroll-behavior:smooth; }
.tour-panorama-scroll:focus-visible { outline:3px solid #a77d35; outline-offset:-3px; }
.tour-panorama-scroll img { display:block; width:auto; max-width:none; height:clamp(240px,27vw,330px); }
.tour-panorama figcaption { display:flex; justify-content:space-between; gap:16px; padding:10px 16px 12px; color:#274534; font-size:11px; line-height:1.4; }
.tour-panorama figcaption span { font-weight:700; }
.tour-map-layout { display:grid; grid-template-columns:minmax(0,1fr) 345px; min-height:640px; overflow:hidden; border-radius:16px; background:#173b2c; box-shadow:0 22px 42px #152c1c20; }
.tour-map-frame { position:relative; min-width:0; min-height:640px; overflow:hidden; }
.tour-map-canvas { position:absolute; inset:0; background:#b5c7b5; }
.tour-map-fallback { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; }
.tour-map-tag { position:absolute; top:20px; right:20px; z-index:600; padding:9px 13px; border-radius:7px; background:#fffdf0f0; color:#193e2f; font-size:11px; font-weight:700; letter-spacing:.04em; box-shadow:0 5px 15px #15301d22; }
.tour-map-canvas .leaflet-control-attribution { color:#294934; font:10px/1.4 system-ui,sans-serif; background:#fffdf0ed; }
.tour-map-canvas .leaflet-control-attribution a { color:#164931; }
.tour-map-rail { display:flex; flex-direction:column; min-width:0; padding:28px 26px 22px; color:#faf5e8; }
.tour-rail-heading h4 { margin:0 0 9px; color:#fff9e8; font:400 27px/1.2 Georgia,serif; }
.tour-rail-heading p { margin:0; color:#d1ded1; font-size:12px; line-height:1.55; }
.tour-controls { display:flex; gap:9px; margin:23px 0 14px; }
.tour-controls .btn { min-height:43px; padding:11px 15px; font-size:12px; cursor:pointer; }
.tour-controls .btn-dark { background:#e9c376; color:#193a2a; border-color:#e9c376; }
.tour-controls .btn-line { color:#fff9e8; border-color:#cbd9cb; }
.tour-current { min-height:33px; margin:0 0 11px; color:#efd18f; font-size:12px; font-weight:600; line-height:1.45; }
.tour-stops { display:grid; gap:2px; list-style:none; margin:0; padding:0; overflow-y:auto; scrollbar-width:thin; scrollbar-color:#779b76 #244632; }
.tour-stops li { margin:0; }
.tour-stops button { display:flex; align-items:center; gap:12px; width:100%; min-height:40px; padding:7px 9px; border:0; border-radius:7px; background:transparent; color:#eff3e9; font:500 12px/1.35 system-ui,sans-serif; text-align:left; cursor:pointer; }
.tour-stops button span { flex:none; font:italic 16px Georgia,serif; color:#cbb47e; }
.tour-stops button:hover, .tour-stops button[aria-pressed=true] { background:#ffffff20; }
.tour-stops button:focus-visible, .tour-controls button:focus-visible { outline:3px solid #efd18f; outline-offset:2px; }
.tour-precision { border-top:1px solid #ffffff36; margin:15px 0 0; padding-top:13px; color:#d1ded1; font-size:10px; line-height:1.55; }
.tour-map-links { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:baseline; margin:16px 0 0; color:#48614f; font-size:11px; }
.tour-map-links a { color:#204e37; font-weight:600; text-underline-offset:3px; }
@media(max-width:900px) {
  .tour-map-layout { grid-template-columns:minmax(0,1fr) 300px; }
  .tour-map-rail { padding:23px 19px 19px; }
}
@media(max-width:700px) {
  .setting-tour { margin-top:26px; }
  .tour-intro { display:block; }
  .tour-intro > span { display:block; max-width:none; text-align:left; margin-top:14px; }
  .tour-panorama figcaption { flex-wrap:wrap; }
  .tour-map-layout { display:block; }
  .tour-map-frame { min-height:430px; }
  .tour-map-rail { padding:24px 19px; }
  .tour-stops { grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; overflow:visible; }
  .tour-stops button { font-size:11px; min-height:48px; }
  .tour-map-tag { top:14px; right:14px; max-width:140px; text-align:right; }
}
@media(max-width:350px) {
  .tour-map-frame { min-height:380px; }
  .tour-stops { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
  .tour-panorama-scroll { scroll-behavior:auto; }
}
@media(prefers-reduced-motion:reduce) { html {scroll-behavior:auto;} }

/* Section design: warm residential palette, calm movement, clear calls to action. */
section { padding-block: clamp(48px, 7vw, 88px); }
.hero { position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.hero-home { padding-block:64px 80px; background:radial-gradient(ellipse at 0 0, #ebd9b5, transparent 65%),linear-gradient(120deg,#f4eee3,#faf7f1); }
.hero-layout { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:56px; }
.hero-copy { position:relative; z-index:1; }
.hero-copy h1 { font-size:clamp(40px,4.5vw,64px); letter-spacing:-.035em; }
.hero-copy .lede { font-size:17px; }
.hero-visual { position:relative; margin:0; padding:12px; border:1px solid #c8b99d; border-radius:180px 180px 28px 28px; background:#fffcf5; box-shadow:0 28px 65px #183e3320; }
.hero-visual .photo { aspect-ratio:4/5; border-radius:170px 170px 20px 20px; object-fit:cover; }
.hero-visual figcaption { position:absolute; bottom:32px; left:28px; right:28px; background:#fffdf8f2; padding:18px 22px; border-radius:14px; box-shadow:0 8px 24px #14271e18; }
.hero-visual figcaption span { display:block; font-family:Georgia,serif; font-size:23px; line-height:1.25; }
.hero-visual figcaption strong { display:block; margin-top:8px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.fact { background:#fffcf3aa; font-size:13px; }
.kicker { color:#806225; }
.section-location { background:radial-gradient(ellipse at 100% 0,#315c4d,transparent 65%),#173c31; color:var(--paper); }
.section-location .kicker { color:#e5c37d; }
.section-location .lede { color:#dde7df; margin-bottom:32px; }
.section-location .place { background:#ffffff08; border-color:#ffffff30; box-shadow:none; }
.section-location .place p { color:#dde7df; }
.section-location a { color:#f0d89f; text-underline-offset:5px; }
.section-location h3 { font-size:25px; }
.place { padding:26px; }
.place p { line-height:1.7; }
.section-apartments { background:linear-gradient(180deg,#faf7f1,#f0e9db); }
.grid-2, .grid-3 { gap:24px; }
.card { position:relative; border-color:#d9d0bf; box-shadow:0 6px 24px #13241e08; }
.card .body { padding:26px; position:relative; background:var(--white); }
.card .photo { transition:transform .65s cubic-bezier(.2,.7,.2,1); }
.card h3 { font-size:29px; }
.card .meta { min-height:40px; }
.card .btn { width:100%; }
.photo.empty { background:radial-gradient(ellipse at 75% 20%,#d5dfcf,transparent 65%),linear-gradient(135deg,#e5dcc7,#f8f2e5); }
.photo.empty span { max-width:28ch; line-height:1.8; }
.section-benefits { background:#e7ecdf; }
.section-benefits .place { background:#f9faf3; border-color:#ccd5c5; padding:36px; }
.section-benefits li { margin-block:10px; }
.section-consult { background:radial-gradient(ellipse at 5% 0,#e9d5ac,transparent 60%),#f1eadc; border-top:1px solid #d7ccb8; }
.section-consult form { padding:clamp(20px,4vw,40px); box-shadow:0 20px 60px #332b1710; border-top:4px solid var(--gold); }
.section-consult .lede { margin-bottom:28px; }
input,select,textarea { transition:border-color .2s,box-shadow .2s; }
input:focus,select:focus,textarea:focus { border-color:var(--green-2); box-shadow:0 0 0 3px #24524612; }
.btn { transition:transform .22s,box-shadow .22s,background-color .22s; }
.btn-dark:hover { background:#2d5e4e; }
.btn:active { transform:translateY(1px); }
.card, .place { transition:transform .3s,box-shadow .3s,border-color .3s; }
.card:focus-within { border-color:var(--green-2); box-shadow:0 14px 38px #13241e18; }
footer { background:#e8e3d8; }
footer a { text-underline-offset:4px; }
nav a { position:relative; padding-block:8px; }
nav a::after { content:''; position:absolute; bottom:0; left:0; width:100%; height:2px; background:var(--gold-2); transform:scaleX(0); transform-origin:left; transition:transform .2s; }
nav a:hover::after,nav a:focus-visible::after { transform:scaleX(1); }
.hero > .grid-2 { align-items:center; }
.hero > .grid-2 > .photo { border-radius:24px; box-shadow:var(--shadow); }
@media(hover:hover) and (pointer:fine) {
  .card:hover { transform:translateY(-7px); box-shadow:0 22px 46px #13241e20; border-color:#b5ad98; }
  .card:hover .photo:not(.empty) { transform:scale(1.035); }
  .place:hover { transform:translateY(-4px); box-shadow:0 12px 30px #13241e12; }
  .btn:hover { transform:translateY(-2px); box-shadow:0 7px 16px #13241e18; }
}
@media(prefers-reduced-motion:no-preference) {
  .enter-view { animation:enter-view .65s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes enter-view { from { opacity:.45; translate:0 22px; } to { opacity:1; translate:0 0; } }
}
@media(max-width:880px) {
  .hero-layout { grid-template-columns:1fr; gap:32px; }
  .hero-copy h1 { max-width:18ch; }
  .hero-visual { max-width:520px; width:100%; margin-inline:auto; border-radius:120px 120px 24px 24px; }
  .hero-visual .photo { aspect-ratio:5/4; border-radius:110px 110px 16px 16px; }
  .hero-home { padding-top:36px; padding-bottom:48px; }
  .section-benefits .place { padding:26px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

/* Photo library: thumbnails load on demand; full-size images open in a native dialog. */
.gallery-teaser { background:#e8eddf; }
.gallery-preview { overflow:hidden; border-radius:20px; display:block; }
.gallery-preview img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; transition:transform .4s; }
.gallery-preview:hover img { transform:scale(1.035); }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.gallery-item { margin:0; background:var(--white); border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.gallery-item a { display:block; position:relative; overflow:hidden; }
.gallery-item img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; transition:transform .4s; }
.gallery-item a:hover img { transform:scale(1.035); }
.gallery-item figcaption { padding:14px 16px; font-size:14px; }
.gallery-expand { position:absolute; right:12px; bottom:12px; background:var(--white); border-radius:50%; width:32px; height:32px; display:grid; place-items:center; }
.gallery-filters { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
.gallery-filters button[aria-pressed="true"] { background:var(--green); color:white; }
[hidden] { display:none!important; }
.photo-dialog { width:min(1200px,calc(100% - 24px)); max-height:94dvh; border:0; border-radius:18px; padding:20px; background:#13241e; color:white; }
.photo-dialog::backdrop { background:#0b1715e8; }
.photo-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.photo-toolbar .btn { color:white; }
.photo-stage { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; gap:12px; }
.photo-stage img { width:100%; height:65dvh; object-fit:contain; }
.photo-arrow { width:44px; height:44px; border:1px solid #ffffff70; border-radius:50%; background:transparent; color:white; font-size:24px; cursor:pointer; }
.photo-open { overflow:hidden; }
@media(max-width:880px) { .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } }
@media(max-width:520px) { .gallery-grid { grid-template-columns:1fr; } .photo-dialog { padding:12px; } .photo-stage { gap:6px; grid-template-columns:36px minmax(0,1fr) 36px; } .photo-arrow { width:36px; height:44px; } .photo-stage img { height:55dvh; } }

/* Residential homepage: real exteriors, floor-by-floor catalogue and local directory. */
.hero-home { isolation:isolate; min-height:690px; padding-block:100px 70px; color:var(--white); background:#19352c; display:flex; align-items:center; }
.hero-backdrop { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 47%; z-index:-2; }
.hero-home::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#102a24ef 0%,#102a24d9 36%,#122e2370 70%,#142f2440 100%),linear-gradient(0deg,#102a2490,transparent 45%); }
.hero-home-inner { display:flex; gap:60px; align-items:flex-end; justify-content:space-between; }
.hero-home .hero-copy { max-width:625px; }
.hero-home h1 { max-width:16ch; font-size:clamp(44px,5.4vw,72px); line-height:1.04; font-weight:400; }
.hero-home .lede { color:#f0f0e8; max-width:49ch; font-size:18px; }
.hero-home .kicker { color:#f0d393; }
.hero-home .fact { color:white; background:#ffffff0c; border-color:#ffffff45; }
.hero-home .btn-line { color:white; border-color:#ffffff75; }
.hero-availability { color:#e0e5dd; font-size:13px; max-width:45ch; margin-top:20px; }
.hero-photo-link { color:white; padding:22px; border:1px solid #ffffff70; border-radius:16px; text-decoration:none; width:235px; flex-shrink:0; background:#183c3190; backdrop-filter:blur(8px); font-family:Georgia,serif; font-size:25px; line-height:1.25; }
.hero-photo-link span { display:block; font:600 12px/1.4 system-ui,sans-serif; margin-top:12px; text-transform:uppercase; letter-spacing:.04em; color:#f0d393; }
.section-heading { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:48px; margin-bottom:38px; }
.section-heading h2 { max-width:19ch; margin-bottom:0; font-weight:400; font-size:clamp(32px,3.6vw,47px); }
.section-heading .lede { margin:0; font-size:16px; }
.section-building { background:#f8f5ee; position:relative; overflow:hidden; }
.section-building::before { content:''; position:absolute; inset:0; background:linear-gradient(#faf7f1ee,#faf7f1f2),url('/photos/exteriores-img-7307-1600.webp') center 40%/cover; pointer-events:none; }
.section-building > .wrap { position:relative; }
.building-features { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; border-top:1px solid #c7c4b4; }
.building-features article { padding:28px 26px 4px; border-left:1px solid #c7c4b4; }
.building-features article:first-child { border-left:0; padding-left:0; }
.building-features article:last-child { padding-right:0; }
.feature-index { display:block; color:#806225; font:italic 23px Georgia,serif; margin-bottom:22px; }
.building-features h3 { font-size:24px; font-weight:400; }
.building-features p, .building-features li { font-size:14px; color:var(--ink-soft); }
.building-features ul { padding-left:18px; }
.building-features a { font-size:13px; text-underline-offset:4px; }
.section-setting { background:#e7eadf; }
.setting-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:80px; align-items:center; }
.setting-photos { position:relative; padding:0 70px 60px 0; }
.setting-main { width:100%; aspect-ratio:4/5; height:auto; object-fit:cover; border-radius:160px 160px 8px 8px; box-shadow:0 24px 40px #13241e18; }
.setting-detail { position:absolute; bottom:0; right:0; width:53%; aspect-ratio:1.25; height:auto; object-fit:cover; border:7px solid #e7eadf; border-radius:12px; }
.photo-label { position:absolute; bottom:22px; left:0; font:italic 19px Georgia,serif; max-width:43%; color:#425e4b; }
.setting-copy h2 { font-size:clamp(34px,3.6vw,46px); font-weight:400; max-width:18ch; }
.setting-copy .lede { font-size:17px; }
.setting-copy > p:not(.kicker) { color:var(--ink-soft); line-height:1.8; }
.setting-links { margin-top:26px; display:grid; gap:16px; }
.setting-links a { font-weight:600; text-underline-offset:5px; font-size:14px; }
.section-reputation { color:var(--white); background:linear-gradient(#143c31ef,#143c31f5),url('/photos/exteriores-img-7319-1600.webp') center/cover; }
.section-reputation .kicker { color:#e7c781; }
.section-reputation .lede { color:#dce6dd; }
.reputation-layout { display:grid; grid-template-columns:1.4fr 1fr; gap:40px; }
.rating-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.rating-card { display:flex; flex-direction:column; padding:28px; border:1px solid #c6d1bb4d; border-radius:18px; background:#ffffff08; }
.rating-card h3 { font:500 16px/1.5 system-ui,sans-serif; margin-bottom:0; }
.rating-number { font:60px/1 Georgia,serif; margin:12px 0 20px; letter-spacing:-.04em; }
.rating-number span { font:20px system-ui,sans-serif; letter-spacing:0; margin-left:4px; color:#ccd9c9; }
.rating-card > p:not(.rating-number,.kicker) { font-size:13px; color:#d7e1d5; }
.rating-card a { display:block; color:#f1d89c; font-size:13px; margin-top:auto; padding-top:22px; text-underline-offset:5px; }
.rating-attributes { padding:0; margin:10px 0 18px; list-style:none; }
.rating-attributes li { display:flex; justify-content:space-between; padding:7px 0; border-bottom:1px solid #ffffff26; font-size:13px; }
.rating-attributes small { color:#ccd9c9; font-weight:400; margin-left:2px; }
.review-quotes { display:grid; align-content:center; gap:22px; }
.review-quote { margin:0; padding:18px 0 24px; border-bottom:1px solid #ffffff3b; }
.review-quote blockquote, .review-summary { font:italic 25px/1.5 Georgia,serif; margin:0 0 16px; }
.review-quote figcaption { color:#cfdbce; font-size:12px; letter-spacing:.04em; }
.rating-date { color:#c5d2c6; font-size:12px; margin:26px 0 0; }
.floor-group { background:#ffffff85; border:1px solid #d8cfbb; padding:32px; border-radius:24px; margin-top:32px; box-shadow:0 10px 36px #13241e06; }
.floor-heading { display:flex; align-items:center; gap:26px; padding-bottom:22px; }
.floor-heading h3 { font-size:36px; font-weight:400; margin:3px 0; }
.floor-heading p { margin:5px 0 0; font-size:13px; color:var(--ink-soft); }
.floor-heading .kicker { font-size:10px; color:#806225; }
.floor-number { font:72px/1 Georgia,serif; color:#bda36e; letter-spacing:-.06em; }
.equipment-chips { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0 0 25px; padding:0; }
.equipment-chips li { font-size:12px; padding:5px 11px; background:#ececdf; color:#3d5144; border-radius:7px; }
.floor-apartments { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.floor-scroll-hint { display:none; }
.floor-apartments .card { display:flex; flex-direction:column; border-radius:14px; }
.floor-apartments .body { padding:20px; display:flex; flex-direction:column; flex:1; }
.floor-apartments h4 { font:26px/1.2 Georgia,serif; margin:0 0 14px; }
.floor-apartments .price { font-size:17px; margin:0 0 10px; }
.floor-apartments .kicker { font-size:10px; }
.floor-apartments .meta { font-size:12px; margin-bottom:20px; }
.floor-apartments .btn { margin-top:auto; }
.floor-apartments .photo { aspect-ratio:4/3; }
.section-consult { background:linear-gradient(#16382dde,#16382de8),url('/photos/exteriores-img-7296-1600.webp') center/cover; }
.section-consult .wrap > .kicker { color:#e7c781; }
.section-consult .wrap > h2 { color:var(--white); font-weight:400; }
.section-consult .wrap > .lede { color:#e0e6d9; }
.section-daily { background:linear-gradient(180deg,#f7f3eb,#e8eddf); }
.directory-panel { padding:30px; border:1px solid #d0d3c3; border-radius:22px; background:#ffffffba; box-shadow:0 18px 45px #203b2908; }
.filter-label { font-size:13px; font-weight:600; margin:0 0 14px; }
.need-menu { display:flex; gap:9px; flex-wrap:wrap; padding-bottom:25px; border-bottom:1px solid #d4d8ca; }
.need-button { font:500 13px/1.4 system-ui,sans-serif; border:1px solid #cbd1c1; background:transparent; color:#203b2b; border-radius:999px; padding:11px 16px; cursor:pointer; }
.need-button[aria-pressed=true] { background:var(--green); color:var(--white); border-color:var(--green); }
.need-button:hover { border-color:var(--green); }
.directory-tools { display:grid; grid-template-columns:1.6fr 1fr auto; align-items:end; gap:16px; margin-top:22px; }
.directory-tools input, .directory-tools select { font-size:14px; min-height:46px; }
.proximity-note { font-size:12px; color:#52614e; max-width:82ch; margin-top:22px; }
.places-count { font-weight:600; font-size:13px; margin-block:24px 16px; }
.poi-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.poi-card { display:flex; flex-direction:column; padding:23px; border:1px solid #d4d8ca; border-radius:14px; background:#fffdf8; }
.poi-meta { display:flex; flex-wrap:wrap; gap:6px 12px; justify-content:space-between; color:#536749; font-size:10px; text-transform:uppercase; letter-spacing:.03em; }
.poi-meta span:last-child { font-weight:700; }
.poi-card h3 { font-size:23px; font-weight:400; margin-top:18px; }
.poi-card .poi-sector { font-size:12px; margin:0; color:#806225; }
.poi-card p { font-size:13px; color:var(--ink-soft); }
.poi-card a { margin-top:auto; padding-top:10px; font-size:12px; font-weight:600; text-underline-offset:4px; }
.poi-photo { margin:-23px -23px 20px; }
.poi-photo img { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:13px 13px 0 0; }
.poi-photo figcaption { padding:7px 23px 0; line-height:1.4; font-size:10px; color:var(--ink-soft); }
.poi-photo figcaption a { padding:0; font-size:10px; font-weight:400; color:var(--ink-soft); }
.more-places { display:flex; margin:26px auto 0; }
.no-places { background:#f2efdd; padding:20px; border-radius:12px; }
@media(max-width:1000px) {
  .building-features { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
  .building-features article { padding:22px 0 0; border:0; }
  .feature-index { margin-bottom:12px; }
  .setting-layout { gap:40px; }
  .reputation-layout { grid-template-columns:1fr; gap:24px; }
  .review-quotes { grid-template-columns:1fr 1fr; gap:30px; }
  .floor-group { padding:24px; }
  .floor-apartments .body { padding:16px; }
  .floor-apartments h4 { font-size:23px; }
}
@media(max-width:880px) {
  .hero-home { min-height:660px; padding-block:64px 40px; }
  .hero-home-inner { align-items:flex-start; flex-direction:column; gap:24px; }
  .hero-home::after { background:linear-gradient(90deg,#102a24ed,#102a24a0),linear-gradient(0deg,#102a2480,transparent); }
  .hero-home .hero-copy { max-width:580px; }
  .hero-photo-link { width:auto; padding:12px 18px; font-size:19px; }
  .hero-photo-link span { margin-top:5px; }
  .section-heading { grid-template-columns:1fr; gap:20px; }
  .section-heading h2 { max-width:21ch; }
  .setting-layout { grid-template-columns:1fr 1fr; gap:28px; }
  .setting-photos { padding:0 32px 55px 0; }
  .floor-apartments { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
  .floor-apartments .body { padding:14px; }
  .floor-apartments h4 { font-size:23px; }
  .floor-apartments .price { font-size:16px; }
  .floor-group { max-width:none; margin-inline:auto; }
  .poi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .directory-tools { grid-template-columns:1fr 1fr; }
  .directory-tools label:first-child { grid-column:1/-1; }
}
@media(max-width:600px) {
  .hero-home { padding-top:42px; min-height:710px; }
  .hero-home h1 { font-size:46px; }
  .hero-home .lede { font-size:16px; }
  .hero-home .fact { font-size:12px; }
  .hero-home .hero-actions { gap:9px; }
  .hero-home .btn { font-size:13px; padding:12px 15px; }
  .hero-backdrop { object-position:61% center; }
  .hero-home::after { background:linear-gradient(90deg,#102a24ec,#102a24a6),linear-gradient(0deg,#102a24af,transparent); }
  .building-features { gap:24px 20px; }
  .building-features h3 { font-size:22px; }
  .building-features p { font-size:13px; }
  .setting-layout { grid-template-columns:1fr; gap:36px; }
  .setting-photos { padding-right:75px; max-width:480px; }
  .setting-main { aspect-ratio:4/5; max-height:430px; border-radius:130px 130px 8px 8px; }
  .setting-detail { width:53%; }
  .rating-grid, .review-quotes { grid-template-columns:1fr; }
  .rating-card { padding:25px; }
  .rating-card h3 { max-width:28ch; }
  .rating-number { font-size:60px; }
  .review-quote blockquote, .review-summary { font-size:24px; }
  .floor-group { padding:17px; margin-top:26px; }
  .floor-heading { gap:18px; align-items:flex-start; }
  .floor-number { font-size:62px; }
  .floor-heading h3 { font-size:30px; }
  .floor-heading .kicker { letter-spacing:.05em; line-height:1.6; }
  .equipment-chips { gap:6px; }
  .equipment-chips li { padding:5px 8px; font-size:11px; }
  .floor-apartments { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:min(270px,78vw); overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; padding:3px 2px 14px; scroll-padding-inline:2px; scrollbar-width:thin; scrollbar-color:var(--green-2) #e5e2d7; }
  .floor-apartments .card { scroll-snap-align:start; }
  .floor-scroll-hint { display:block; font-size:12px; color:var(--ink-soft); margin:0 0 14px; }
  .floor-apartments .body { padding:19px; }
  .floor-apartments h4 { font-size:26px; }
  .floor-apartments .price { font-size:18px; }
  .directory-panel { padding:18px; }
  .need-menu { gap:7px; }
  .need-button { padding:10px 12px; font-size:12px; }
  .directory-tools { gap:16px 10px; }
  .directory-tools .btn { font-size:12px; padding-inline:10px; min-height:46px; }
  .poi-grid { grid-template-columns:1fr; }
  .poi-card { padding:23px; }
}
