:root  {
  --forest:#173c32;
  --deep:#112e27;
  --sage:#d5e3b0;
  --cream:#f7f6f0;
  --paper:#fffefa;
  --ink:#223b32;
  --muted:#6b746a;
  --line:#dce0d5;
  --serif:Georgia,"Times New Roman",serif;
  --sans:"Segoe UI",Arial,sans-serif
}

*,*::before,*::after  {
  box-sizing:border-box
}

html  {
  scroll-behavior:smooth;
  scroll-padding-top:95px
}

body  {
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font:15px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased
}

body.modal-open  {
  overflow:hidden
}

button,input,textarea,select  {
  font:inherit
}

a  {
  color:inherit;
  text-decoration:none
}

button  {
  cursor:pointer;
  color:inherit;
  background:none;
  border:0
}

button:disabled  {
  cursor:not-allowed;
  opacity:.45
}

img,video  {
  display:block;
  width:100%;
  object-fit:cover
}

svg  {
  display:block
}

a,button  {
  touch-action:manipulation
}

a,button,input,select,textarea,summary  {
  outline-offset:5px
}

:focus-visible  {
  outline:2px solid #7b9260
}

input:focus,textarea:focus,select:focus  {
  outline:2px solid #59735b;
  outline-offset:1px
}

[hidden]  {
  display:none!important
}

h1,h2,h3,p  {
  margin-top:0
}

h1,h2,h3  {
  font-weight:400
}

h2  {
  font:clamp(36px,4vw,56px)/1.14 var(--serif);
  letter-spacing:-1.6px;
  margin-bottom:26px
}

p  {
  margin-bottom:20px
}

.container  {
  width:min(1280px,calc(100% - 112px));
  margin-inline:auto
}

.section  {
  padding:110px 0
}

.eyebrow  {
  font-size:10px;
  letter-spacing:2px;
  font-weight:600;
  margin-bottom:24px;
  text-transform:uppercase;
  color:#58705a
}

.eyebrow.light  {
  color:var(--sage)
}

.small-line  {
  display:inline-block;
  width:27px;
  height:1px;
  background:currentColor;
  vertical-align:middle;
  margin-right:13px
}

.button  {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:32px;
  padding:16px 25px;
  font-size:13px;
  font-weight:600;
  border-radius:4px;
  min-height:52px;
  transition:background .2s,transform .2s
}

.button:hover  {
  transform:translateY(-2px)
}

.button span[aria-hidden]  {
  font-size:21px;
  line-height:1
}

.button-sage  {
  background:var(--sage);
  color:var(--deep)
}

.button-sage:hover  {
  background:#e3edc9
}

.button-forest  {
  background:var(--forest);
  color:white
}

.button-forest:hover  {
  background:#285346
}

.button-white  {
  background:var(--cream);
  color:var(--forest)
}

.button-outline  {
  border:1px solid #cdd3c6;
  color:var(--forest)
}

.text-link  {
  display:inline-flex;
  align-items:center;
  gap:32px;
  font-size:13px;
  font-weight:600;
  border-bottom:1px solid #abb6a2;
  padding:8px 0
}

.text-link span  {
  font-size:22px
}

.inline-link  {
  text-decoration:underline;
  padding:0;
  font-size:inherit
}

.sr-only  {
  position:absolute!important;
  width:1px;
  height:1px;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap
}

.skip-link  {
  position:absolute;
  left:20px;
  top:-100px;
  z-index:200;
  background:var(--paper);
  padding:14px
}

.skip-link:focus  {
  top:12px
}

.demo-banner  {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:7px 40px;
  background:var(--sage);
  font-size:10px;
  font-weight:500;
  letter-spacing:.3px;
  min-height:32px
}

.demo-banner a  {
  position:absolute;
  right:56px;
  font-weight:600
}

.live-dot  {
  display:inline-block;
  width:6px;
  height:6px;
  background:#476644;
  border-radius:50%;
  flex:none
}

.site-header  {
  position:sticky;
  top:0;
  z-index:30;
  background:var(--cream);
  border-bottom:1px solid #173c3214
}

.nav-inner  {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:88px
}

.brand  {
  display:flex;
  align-items:center;
  gap:12px;
  flex:none
}

.brand>svg  {
  width:44px;
  height:42px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.3
}

.brand>span  {
  font:20px/1.15 var(--serif);
  letter-spacing:1.1px
}

.brand small  {
  display:block;
  font:8px var(--sans);
  letter-spacing:2.3px;
  margin-top:6px
}

.site-header nav  {
  display:flex;
  align-items:center;
  gap:29px;
  font-size:12px
}

.site-header nav>a:hover  {
  color:#7d865a
}

.site-header nav>a.active  {
  box-shadow:0 1px 0 var(--forest)
}

.nav-cta  {
  border:1px solid #c5cbbb;
  border-radius:3px;
  padding:12px 17px;
  margin-left:8px;
  display:flex;
  gap:25px;
  align-items:center
}

.nav-cta span  {
  font-size:18px
}

.menu-toggle  {
  display:none
}

.hero  {
  position:relative;
  min-height:610px;
  height:min(770px,calc(100svh - 120px));
  color:white;
  background:var(--deep);
  isolation:isolate;
  overflow:hidden
}

.hero-image,.hero-video,.hero-shade  {
  position:absolute;
  inset:0;
  width:100%;
  height:100%
}

.hero-image,.hero-video  {
  object-position:62% 48%
}

.hero-video  {
  opacity:0;
  transition:opacity .7s
}

.hero-video.playing  {
  opacity:1
}

.hero-shade  {
  background:linear-gradient(90deg,#091d19c2 0%,#091d1970 50%,#091d1908 100%),linear-gradient(0deg,#091d19b3,transparent 35%)
}

.hero-inner  {
  position:relative;
  padding-top:clamp(86px,10vh,130px)
}

.hero h1  {
  font:clamp(54px,5.7vw,83px)/1.08 var(--serif);
  letter-spacing:-2.5px;
  max-width:950px;
  margin-bottom:25px;
  text-shadow:0 2px 20px #112e2720
}

.hero h1 em  {
  color:#e2eac9
}

.hero-description  {
  color:#e7e9df;
  font-size:15px;
  line-height:1.85;
  margin-bottom:33px;
  max-width:510px
}

.hero-actions  {
  display:flex;
  align-items:center;
  gap:35px
}

.hero-text-link  {
  font-size:12px;
  display:flex;
  gap:22px;
  align-items:center;
  border-bottom:1px solid #ffffff50;
  padding:12px 0
}

.hero-text-link span  {
  font-size:20px
}

.hero-bottom  {
  position:absolute;
  bottom:34px;
  left:0;
  right:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid #ffffff38;
  padding-top:20px
}

.hero-bottom>span  {
  font-size:9px;
  letter-spacing:2px;
  color:#e4e9db
}

.video-toggle  {
  color:#f8faef;
  font-size:11px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:5px 0
}

.video-toggle>span  {
  width:26px;
  height:26px;
  border:1px solid #ffffff60;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:13px
}

.hero-caption  {
  position:absolute;
  bottom:9px;
  right:56px;
  font-size:8px;
  color:#ffffffb0
}

.project-strip  {
  border-bottom:1px solid var(--line)
}

.strip-grid  {
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1.25fr;
  align-items:center;
  min-height:130px;
  gap:30px
}

.strip-grid>div  {
  border-right:1px solid var(--line)
}

.strip-grid strong  {
  font:27px/1.2 var(--serif);
  letter-spacing:-.5px;
  display:block
}

.strip-grid strong span  {
  font-size:20px
}

.strip-grid small  {
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-top:9px
}

.strip-grid>a  {
  display:flex;
  align-items:center;
  gap:20px;
  font-size:12px;
  max-width:240px;
  margin-left:auto
}

.strip-grid>a span  {
  font-size:27px
}

.project-grid  {
  display:grid;
  grid-template-columns:1.04fr 1fr;
  gap:90px;
  align-items:center
}

.project-photo  {
  position:relative;
  align-self:stretch;
  min-height:540px;
  padding-bottom:28px
}

.project-photo img  {
  height:100%;
  position:absolute;
  inset:0;
  max-height:calc(100% - 28px);
  object-position:38% 50%;
  border-radius:80px 2px 2px 2px
}

.photo-label  {
  position:absolute;
  bottom:58px;
  left:30px;
  color:#fff;
  font-size:9px;
  letter-spacing:2px;
  background:#173c3299;
  padding:8px 12px
}

.project-photo>small  {
  position:absolute;
  bottom:0;
  left:0;
  font-size:9px;
  color:var(--muted)
}

.project-copy>p:not(.eyebrow)  {
  font-size:14px;
  color:var(--muted);
  max-width:460px
}

.project-principles  {
  border-top:1px solid var(--line);
  margin-top:30px;
  padding-top:25px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px
}

.project-principles>div  {
  position:relative;
  padding-top:30px
}

.project-principles h3  {
  font-size:13px;
  font-weight:600;
  margin-bottom:8px
}

.project-principles p  {
  font-size:12px;
  color:var(--muted);
  line-height:1.6
}

.project-copy>.text-link  {
  margin-top:5px
}

.inventory-section  {
  background:#edeee6;
  border-block:1px solid var(--line)
}

.section-heading  {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:35px;
  margin-bottom:40px
}

.section-heading h2  {
  margin-bottom:0
}

.section-heading>p  {
  color:var(--muted);
  font-size:13px;
  line-height:1.9;
  max-width:350px;
  margin-bottom:4px
}

.catalog-toolbar  {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:22px
}

.segmented  {
  display:flex;
  gap:3px;
  padding:4px;
  background:#e0e4d8;
  border:1px solid #d9dece;
  border-radius:5px
}

.segmented button  {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  padding:11px 20px;
  border-radius:3px;
  min-height:43px
}

.segmented button.active  {
  background:var(--paper);
  box-shadow:0 1px 3px #173c3210;
  font-weight:600
}

.catalog-filters  {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  background:#f8f9f2;
  border:1px solid #d4dacb;
  padding:14px;
  border-radius:5px
}

.catalog-filters label  {
  flex:1;
  min-width:150px
}

.catalog-filters .search-field  {
  flex:1.4
}

.catalog-filters input,.catalog-filters select  {
  background:var(--paper);
  border:1px solid #dce1d4;
  width:100%;
  border-radius:3px;
  padding:11px 13px;
  font-size:12px;
  color:var(--ink);
  height:44px
}

.search-field  {
  display:flex;
  position:relative;
  align-items:center
}

.search-field>span[aria-hidden]  {
  position:absolute;
  left:13px;
  font-size:23px
}

.catalog-filters .search-field input  {
  padding-left:40px
}

.clear-filters  {
  font-size:11px;
  padding:10px 12px;
  min-height:44px
}

.clear-filters span  {
  margin-left:12px
}

.catalog-meta  {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin:19px 0 13px;
  font-size:11px
}

.catalog-meta>p  {
  margin:0
}

.catalog-meta>span  {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:10px;
  color:#5c6859
}

.legend-dot  {
  width:7px;
  height:7px;
  border-radius:50%;
  display:inline-block;
  margin-left:10px
}

.legend-dot.available  {
  background:#6c8751
}

.legend-dot.reserved  {
  background:#b99a59
}

.legend-dot.sold  {
  background:#9a9d93
}

.masterplan  {
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  background:var(--paper);
  border:1px solid #d6dcce;
  border-radius:5px;
  overflow:hidden;
  min-height:520px
}

.map-canvas  {
  position:relative;
  background-color:#e3e7d8;
  background-image:radial-gradient(ellipse at 75% 20%,#c5d2ad60,transparent 65%),repeating-radial-gradient(ellipse at 100% 0,transparent 0,transparent 24px,#c0cbb555 25px,transparent 26px,transparent 44px);
  overflow:hidden;
  min-height:520px
}

.map-top-label  {
  position:absolute;
  top:23px;
  left:24px;
  z-index:1;
  font-size:9px;
  letter-spacing:1px;
  line-height:1.5;
  pointer-events:none
}

.map-top-label .live-dot  {
  margin-right:6px
}

.map-top-label small  {
  display:block;
  font-size:7px;
  letter-spacing:1.2px;
  margin-top:3px;
  opacity:.6
}

.map-controls  {
  position:absolute;
  left:20px;
  bottom:40px;
  display:flex;
  flex-direction:column;
  gap:1px;
  background:#cad1bc;
  box-shadow:0 2px 8px #173c3215;
  border:1px solid #c9d1bd;
  border-radius:3px;
  overflow:hidden
}

.map-controls button  {
  background:var(--paper);
  width:37px;
  height:37px;
  font-size:22px;
  display:grid;
  place-items:center
}

.map-controls button:hover  {
  background:var(--sage)
}

.map-compass  {
  position:absolute;
  right:25px;
  top:25px;
  font-size:10px;
  text-align:center;
  line-height:1.2
}

.map-compass>span  {
  display:block;
  font-size:27px
}

.map-caption  {
  position:absolute;
  left:20px;
  bottom:12px;
  font-size:8px;
  color:#5c6e57;
  pointer-events:none
}

.map-empty  {
  position:absolute;
  inset:0;
  background:#edeee6dd;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-direction:column;
  padding:30px;
  font-size:14px;
  text-align:center
}

.map-empty button  {
  margin-top:16px
}

.lot-detail  {
  padding:0;
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  border-left:1px solid var(--line)
}

.detail-placeholder  {
  padding:70px 32px;
  text-align:center;
  margin:auto
}

.detail-placeholder>span  {
  display:block;
  font-size:45px;
  color:#8b9c73;
  margin-bottom:20px
}

.detail-placeholder h3  {
  font:28px/1.25 var(--serif)
}

.detail-placeholder p  {
  font-size:12px;
  color:var(--muted)
}

.detail-image  {
  height:148px;
  position:relative;
  overflow:hidden
}

.detail-image img  {
  height:100%;
  object-position:50% 70%
}

.detail-image>small  {
  position:absolute;
  bottom:7px;
  right:10px;
  color:white;
  font-size:8px;
  background:#173c3280;
  padding:1px 5px
}

.detail-body  {
  padding:24px;
  display:flex;
  flex:1;
  flex-direction:column
}

.status-pill  {
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:9px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.7px;
  padding:4px 9px;
  border-radius:20px;
  background:#e8eddd;
  color:#425b35;
  width:max-content
}

.status-pill::before  {
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:currentColor
}

.status-pill.reservada  {
  background:#f2ebd7;
  color:#80662d
}

.status-pill.vendida  {
  background:#e9eae4;
  color:#616b5c
}

.detail-body h3  {
  font:32px/1.2 var(--serif);
  margin:13px 0 15px
}

.detail-specs  {
  display:flex;
  gap:20px;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
  margin-bottom:15px
}

.detail-specs small  {
  display:block;
  color:var(--muted);
  font-size:9px;
  margin-bottom:3px
}

.detail-specs strong  {
  font-size:17px;
  font-weight:500;
  letter-spacing:-.5px
}

.detail-body>p  {
  font-size:11px;
  color:var(--muted);
  line-height:1.7;
  margin-bottom:18px
}

.detail-body>.button  {
  margin-top:auto;
  font-size:11px;
  min-height:45px;
  padding:12px 15px;
  gap:16px
}

.lot-grid  {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px
}

.lot-card  {
  background:var(--paper);
  border:1px solid #d6dcce;
  border-radius:4px;
  overflow:hidden;
  position:relative
}

.lot-card .detail-image  {
  height:180px
}

.lot-card .detail-body  {
  padding:22px
}

.lot-card .detail-body h3  {
  font-size:29px
}

.card-actions  {
  display:flex;
  gap:10px
}

.card-actions .button  {
  flex:1;
  min-height:43px;
  padding:10px;
  font-size:11px;
  gap:10px
}

.list-footer  {
  display:flex;
  justify-content:center;
  align-items:center;
  flex-direction:column;
  gap:20px;
  margin-top:25px;
  font-size:11px;
  color:var(--muted)
}

.empty-list  {
  grid-column:1/-1;
  padding:70px 30px;
  text-align:center;
  border:1px dashed #a6b299
}

.empty-list h3  {
  font:28px var(--serif)
}

.data-note  {
  font-size:10px;
  color:#687361;
  line-height:1.7;
  margin:19px 0 0;
  display:flex;
  gap:8px
}

.data-note>span  {
  font-size:15px;
  line-height:1.2
}

.inline-error  {
  color:#9d3e29;
  padding:20px;
  border:1px solid #b66646;
  background:#fff7ef;
  border-radius:4px
}

.purchase .section-heading  {
  align-items:center
}

.steps  {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px;
  margin-top:55px
}

.steps article  {
  border-top:1px solid #bbc5ac;
  padding:25px 0 0
}

.steps article>span  {
  font-size:9px;
  letter-spacing:1.4px;
  color:#6c795e
}

.steps h3  {
  font:25px/1.3 var(--serif);
  margin:25px 0 12px
}

.steps p  {
  font-size:13px;
  line-height:1.8;
  color:var(--muted);
  max-width:310px;
  margin-bottom:0
}

.faq-section  {
  background:#eeefe7;
  border-block:1px solid var(--line)
}

.faq-grid  {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:100px
}

.faq-grid>div>p:not(.eyebrow)  {
  color:var(--muted);
  font-size:13px;
  line-height:1.8
}

.faq-grid .text-link  {
  margin-top:15px
}

.faq-list  {
  border-top:1px solid #cdd4c2
}

.faq-list details  {
  border-bottom:1px solid #cdd4c2
}

.faq-list summary  {
  list-style:none;
  cursor:pointer;
  font-size:13px;
  font-weight:500;
  padding:23px 35px 23px 0;
  position:relative;
  line-height:1.5
}

.faq-list summary::-webkit-details-marker  {
  display:none
}

.faq-list summary::after  {
  content:"+";
  font-size:22px;
  font-weight:300;
  position:absolute;
  right:4px;
  top:19px
}

.faq-list details[open] summary::after  {
  content:"−"
}

.faq-list details p  {
  font-size:12px;
  color:#66705d;
  line-height:1.9;
  padding-right:35px;
  margin-bottom:23px
}

.contact-section  {
  background:var(--forest);
  color:var(--cream);
  position:relative;
  overflow:hidden
}

.contact-section::before  {
  content:"";
  position:absolute;
  inset:0 50% 0 0;
  pointer-events:none;
  opacity:.16;
  background:repeating-radial-gradient(ellipse at -40% 90%,transparent 0,transparent 42px,#a3b986 43px,transparent 44px,transparent 66px)
}

.contact-grid  {
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:100px;
  position:relative
}

.contact-copy  {
  padding-top:24px
}

.contact-copy h2  {
  font-size:clamp(40px,4vw,59px);
  color:var(--cream)
}

.contact-copy h2 em  {
  color:#d1e0ad
}

.contact-copy>p:not(.eyebrow)  {
  color:#c0cfbc;
  font-size:13px;
  line-height:1.9;
  max-width:330px
}

.contact-whatsapp  {
  display:flex;
  gap:16px;
  align-items:center;
  padding:22px 0;
  margin:33px 0 12px;
  border-block:1px solid #c3d6b431;
  max-width:365px
}

.wa-symbol  {
  border:1px solid #a4ba8b70;
  border-radius:50%;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  font-size:25px;
  color:var(--sage);
  flex:none
}

.contact-whatsapp small  {
  display:block;
  font-size:8px;
  letter-spacing:1px;
  color:#c3d6b4;
  margin-bottom:4px
}

.contact-whatsapp strong  {
  font-size:21px;
  font-weight:400;
  letter-spacing:.7px
}

.contact-whatsapp>span:last-child  {
  margin-left:auto;
  font-size:24px;
  color:var(--sage)
}

.contact-email  {
  font-size:13px;
  text-decoration:underline;
  display:block;
  margin-bottom:18px;
  overflow-wrap:anywhere
}

.contact-location  {
  display:flex;
  gap:18px;
  margin-top:32px;
  max-width:350px
}

.contact-location>span  {
  font-size:23px;
  line-height:1.1;
  color:var(--sage)
}

.contact-location strong  {
  font-size:12px;
  font-weight:500
}

.contact-location p  {
  font-size:11px;
  color:#afc2aa;
  line-height:1.8;
  margin:8px 0
}

.light-link  {
  font-size:10px;
  text-decoration:underline;
  text-underline-offset:4px;
  color:#d6e4bd
}

.contact-copy .contact-signature  {
  font-size:8px!important;
  letter-spacing:1.2px;
  margin-top:60px
}

.contact-signature strong  {
  display:block;
  font-weight:500;
  font-size:19px;
  letter-spacing:-.5px;
  color:#d5e3c0;
  margin-top:5px
}

.form-card  {
  background:var(--paper);
  color:var(--ink);
  padding:35px 36px;
  border-radius:5px
}

.form-heading .eyebrow  {
  font-size:8px;
  letter-spacing:1.5px
}

.form-heading h3  {
  font:28px/1.25 var(--serif);
  margin:10px 0
}

.form-heading>p  {
  font-size:11px;
  color:var(--muted);
  margin-bottom:26px
}

.form-row  {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px
}

.field  {
  margin-bottom:16px;
  min-width:0
}

.field label  {
  display:block;
  font-size:10px;
  font-weight:500;
  margin-bottom:7px
}

.field label>span:not(.optional)  {
  color:#9b6745
}

.field .optional  {
  font-size:9px;
  color:var(--muted);
  font-weight:400
}

.field input,.field select,.field textarea  {
  display:block;
  background:#f7f8f2;
  border:1px solid #dce0d4;
  border-radius:3px;
  color:var(--ink);
  padding:11px 13px;
  font-size:12px;
  width:100%;
  min-height:43px;
  max-width:100%
}

.field textarea  {
  resize:vertical;
  min-height:90px
}

.field input::placeholder,.field textarea::placeholder  {
  color:#909989;
  font-size:11px
}

.field>small  {
  display:block;
  font-size:9px;
  color:var(--muted);
  margin-top:6px
}

.consent  {
  display:flex;
  align-items:flex-start;
  gap:9px;
  font-size:9px;
  color:#68725e;
  line-height:1.7;
  margin:6px 0 20px
}

.consent>input  {
  accent-color:var(--forest);
  width:14px;
  height:14px;
  flex:none;
  margin:2px 0 0
}

.consent>span>span  {
  color:#9b6745
}

.submit-button  {
  width:100%;
  justify-content:space-between;
  font-size:12px;
  min-height:47px;
  padding:12px 20px
}

.form-footnote  {
  font-size:8px;
  color:#818974;
  text-align:center;
  margin:10px 0 0
}

.form-feedback  {
  font-size:12px;
  padding:16px;
  background:#edf2df;
  border:1px solid #c5d3b0;
  margin-top:18px;
  border-radius:4px
}

.form-feedback.error  {
  background:#fff2e9;
  border-color:#d9a68b;
  color:#8e3d26
}

.form-feedback p  {
  margin-bottom:10px
}

.form-feedback a  {
  display:inline-block;
  text-decoration:underline;
  font-weight:600;
  margin-right:15px
}

.form-feedback strong  {
  overflow-wrap:anywhere
}

.honeypot  {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden
}

.site-footer  {
  padding:55px 0 26px
}

.footer-top  {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:40px;
  border-bottom:1px solid var(--line);
  gap:30px
}

.footer-top>p  {
  font:21px/1.4 var(--serif);
  letter-spacing:-.3px;
  margin:0
}

.footer-bottom  {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:9px;
  color:var(--muted);
  gap:20px;
  margin-top:22px
}

.footer-bottom p  {
  margin:0
}

.footer-bottom>div  {
  display:flex;
  gap:23px
}

.footer-disclaimer  {
  font-size:8px;
  line-height:1.7;
  color:#858c7b;
  max-width:1000px;
  margin:18px 0 0
}

.floating-contact  {
  position:fixed;
  bottom:25px;
  right:25px;
  z-index:35;
  background:var(--forest);
  border:1px solid #c2d5a870;
  box-shadow:0 5px 20px #112e2720;
  border-radius:40px;
  color:var(--cream);
  padding:12px 19px 12px 14px;
  display:flex;
  align-items:center;
  gap:9px
}

.floating-contact:hover  {
  background:#2c5643
}

.floating-contact svg  {
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.3
}

.floating-contact>span  {
  font-size:11px
}

.floating-contact.contact-visible  {
  opacity:0;
  pointer-events:none
}

.modal  {
  background:var(--paper);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:6px;
  padding:35px;
  max-width:min(950px,calc(100vw - 36px));
  width:950px;
  max-height:85svh;
  box-shadow:0 20px 80px #112e2730
}

.modal::backdrop  {
  background:#102e28b8;
  backdrop-filter:blur(4px)
}

.modal-heading  {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  margin-bottom:25px
}

.modal-heading h2  {
  font-size:32px;
  margin:0
}

.modal-heading .eyebrow  {
  font-size:8px;
  margin-bottom:10px
}

.icon-button  {
  min-width:36px;
  height:36px;
  line-height:1;
  border:1px solid var(--line);
  border-radius:50%;
  font-size:25px
}

.privacy-modal  {
  max-width:650px
}

.privacy-modal>p  {
  font-size:13px;
  color:var(--muted);
  line-height:1.9
}

.toast  {
  position:fixed;
  bottom:25px;
  left:50%;
  transform:translateX(-50%);
  z-index:100;
  background:var(--deep);
  color:var(--cream);
  padding:13px 20px;
  border:1px solid #799568;
  border-radius:4px;
  font-size:12px;
  max-width:calc(100vw - 36px);
  width:max-content;
  box-shadow:0 5px 20px #173c3220;
  text-align:center
}

@media(min-width:1600px)  {
  .hero-inner  {
    padding-top:130px
  }
  .hero  {
    height:780px
  }
  .hero h1  {
    font-size:88px
  }
}

@media(max-width:1150px)  {
  .container  {
    width:calc(100% - 64px)
  }
  .site-header nav  {
    gap:20px;
    font-size:11px
  }
  .nav-cta  {
    gap:12px;
    padding:10px 13px;
    margin:0
  }
  .brand>span  {
    font-size:18px
  }
  .brand>svg  {
    width:37px
  }
  .project-grid  {
    gap:50px
  }
  .contact-grid  {
    gap:55px
  }
  .faq-grid  {
    gap:60px
  }
  .masterplan  {
    grid-template-columns:minmax(0,1fr) 285px
  }
  .detail-body  {
    padding:20px
  }
  .hero-caption  {
    right:32px
  }
  .demo-banner a  {
    right:32px
  }
  .strip-grid  {
    gap:20px
  }
  .hero h1  {
    font-size:64px
  }
}

@media(max-width:900px)  {
  .site-header nav  {
    gap:15px
  }
  .site-header nav>a[href="#preguntas"]  {
    display:none
  }
  .hero  {
    height:660px;
    min-height:580px
  }
  .hero-inner  {
    padding-top:100px
  }
  .hero h1  {
    font-size:59px
  }
  .section  {
    padding:80px 0
  }
  .project-grid  {
    gap:40px
  }
  .project-photo  {
    min-height:480px
  }
  .project-principles  {
    grid-template-columns:1fr;
    gap:0
  }
  .project-principles>div  {
    padding-top:0;
    padding-left:25px
  }
  .project-principles h3  {
    font-size:12px
  }
  .project-principles p  {
    font-size:11px
  }
  .project-copy>p:not(.eyebrow)  {
    font-size:12px
  }
  .project-copy h2  {
    font-size:40px
  }
  .masterplan  {
    grid-template-columns:minmax(0,1fr) 260px
  }
  .detail-body  {
    padding:18px
  }
  .detail-specs  {
    gap:15px
  }
  .detail-specs strong  {
    font-size:15px
  }
  .detail-body h3  {
    font-size:29px
  }
  .strip-grid  {
    grid-template-columns:1fr 1fr 1fr;
    min-height:110px
  }
  .strip-grid>a  {
    display:none
  }
  .strip-grid>div:last-of-type  {
    border:0
  }
  .strip-grid strong  {
    font-size:23px
  }
  .contact-grid  {
    gap:35px;
    grid-template-columns:.85fr 1.15fr
  }
  .form-card  {
    padding:28px 24px
  }
  .form-row  {
    gap:12px
  }
  .contact-copy h2  {
    font-size:43px
  }
  .contact-whatsapp strong  {
    font-size:18px
  }
  .faq-grid  {
    gap:40px
  }
  .faq-grid h2  {
    font-size:40px
  }
  .lot-grid  {
    gap:15px
  }
  .lot-card .detail-body  {
    padding:18px
  }
  .lot-card .detail-specs  {
    flex-direction:column;
    gap:8px
  }
  .lot-card .detail-specs>div  {
    display:flex;
    align-items:center;
    justify-content:space-between
  }
  .lot-card .detail-specs small  {
    margin:0
  }
  .footer-top>p  {
    font-size:18px
  }
  .demo-banner a  {
    display:none
  }
}

@media(max-width:700px)  {
  html  {
    scroll-padding-top:78px
  }
  .container  {
    width:calc(100% - 40px)
  }
  .demo-banner  {
    font-size:8px;
    padding:6px 12px;
    min-height:28px;
    gap:5px
  }
  .demo-detail  {
    font-size:7px
  }
  .nav-inner  {
    height:72px
  }
  .brand>svg  {
    width:34px;
    height:35px
  }
  .brand>span  {
    font-size:17px
  }
  .brand small  {
    font-size:7px;
    letter-spacing:1.8px
  }
  .menu-toggle  {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    width:42px;
    height:42px;
    border:1px solid var(--line);
    border-radius:3px
  }
  .menu-toggle span  {
    display:block;
    width:19px;
    height:1px;
    background:var(--forest);
    margin-inline:auto;
    transition:transform .2s
  }
  .menu-toggle[aria-expanded=true] span:first-child  {
    transform:translateY(3.5px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child  {
    transform:translateY(-3.5px) rotate(-45deg)
  }
  .site-header nav  {
    display:none;
    position:absolute;
    top:72px;
    left:0;
    right:0;
    background:var(--cream);
    border-bottom:1px solid var(--line);
    padding:15px 20px 25px;
    box-shadow:0 12px 15px #173c3210
  }
  .site-header nav.open  {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0
  }
  .site-header nav>a  {
    padding:13px 8px;
    font-size:13px
  }
  .site-header nav>a[href="#preguntas"]  {
    display:block
  }
  .site-header nav>.nav-cta  {
    margin-top:12px;
    padding:12px;
    justify-content:space-between
  }
  .hero  {
    min-height:610px;
    height:calc(90svh - 100px);
    max-height:740px
  }
  .hero-inner  {
    padding-top:95px
  }
  .hero .eyebrow  {
    font-size:8px;
    letter-spacing:1.3px;
    margin-bottom:25px
  }
  .hero h1  {
    font-size:clamp(41px,8.5vw,58px);
    line-height:1.13;
    letter-spacing:-1.6px;
    margin-bottom:22px
  }
  .hero-description  {
    font-size:12px;
    line-height:1.9;
    max-width:310px
  }
  .desktop-only  {
    display:none
  }
  .hero-image,.hero-video  {
    object-position:58% center
  }
  .hero-shade  {
    background:linear-gradient(90deg,#0d2b24cc,#0d2b2460),linear-gradient(0deg,#0d2b2499,transparent 40%)
  }
  .hero-actions  {
    align-items:flex-start;
    gap:20px;
    flex-direction:column
  }
  .hero-actions .button  {
    font-size:12px;
    padding:15px 22px;
    gap:35px;
    min-height:49px
  }
  .hero-text-link  {
    font-size:11px;
    padding:3px 0 6px
  }
  .hero-bottom  {
    bottom:25px;
    padding-top:15px
  }
  .hero-bottom>span  {
    font-size:7px;
    max-width:145px;
    line-height:1.7;
    letter-spacing:1.1px
  }
  .video-toggle  {
    font-size:9px;
    gap:6px
  }
  .video-toggle>span  {
    width:23px;
    height:23px
  }
  .hero-caption  {
    bottom:5px;
    right:20px;
    font-size:7px
  }
  .strip-grid  {
    min-height:100px;
    gap:14px
  }
  .strip-grid strong  {
    font-size:19px;
    letter-spacing:-.4px
  }
  .strip-grid strong span  {
    font-size:15px
  }
  .strip-grid small  {
    font-size:8px;
    line-height:1.5;
    margin-top:7px;
    max-width:90px
  }
  .section  {
    padding:65px 0
  }
  .project-grid  {
    grid-template-columns:1fr;
    gap:35px
  }
  .project-photo  {
    min-height:340px;
    order:2;
    margin-top:5px
  }
  .project-photo img  {
    border-top-left-radius:60px;
    object-position:50% 50%
  }
  .photo-label  {
    font-size:8px;
    bottom:48px;
    left:20px
  }
  .project-photo>small  {
    font-size:8px
  }
  .project-copy h2,h2  {
    font-size:38px;
    letter-spacing:-1.2px;
    margin-bottom:22px
  }
  .eyebrow  {
    font-size:8px;
    letter-spacing:1.5px;
    margin-bottom:20px
  }
  .project-copy>p:not(.eyebrow)  {
    font-size:13px;
    max-width:none
  }
  .project-principles  {
    grid-template-columns:1fr 1fr;
    gap:22px;
    margin-top:22px;
    padding-top:20px
  }
  .project-principles>div  {
    padding-top:27px;
    padding-left:0
  }
  .section-heading  {
    display:block;
    margin-bottom:28px
  }
  .section-heading h2  {
    font-size:37px
  }
  .section-heading>p  {
    font-size:12px;
    margin-top:20px;
    line-height:1.8
  }
  .catalog-toolbar  {
    gap:10px;
    align-items:stretch
  }
  .segmented  {
    gap:1px;
    padding:3px;
    flex:1
  }
  .segmented button  {
    font-size:11px;
    padding:10px 11px;
    gap:5px;
    min-height:40px;
    flex:1;
    justify-content:center
  }
  .catalog-filters  {
    gap:10px;
    padding:12px
  }
  .catalog-filters .search-field  {
    flex:auto;
    width:100%
  }
  .catalog-filters label  {
    min-width:0;
    flex:1 1 40%
  }
  .catalog-filters input,.catalog-filters select  {
    font-size:11px;
    padding:10px;
    min-width:0
  }
  .clear-filters  {
    font-size:10px;
    padding:3px 1px;
    min-height:27px;
    margin-left:auto
  }
  .catalog-meta  {
    align-items:flex-start;
    font-size:10px;
    margin-top:16px;
    flex-direction:column;
    gap:10px
  }
  .catalog-meta>span  {
    font-size:9px
  }
  .catalog-meta .legend-dot:first-child  {
    margin-left:0
  }
  .masterplan  {
    display:flex;
    flex-direction:column;
    min-height:0
  }
  .map-canvas  {
    min-height:350px
  }
  .map-top-label  {
    top:16px;
    left:17px;
    font-size:8px
  }
  .map-top-label small  {
    font-size:6px
  }
  .map-compass  {
    right:17px;
    top:15px
  }
  .map-controls  {
    left:15px;
    bottom:35px
  }
  .map-controls button  {
    height:33px;
    width:33px;
    font-size:19px
  }
  .map-caption  {
    font-size:7px;
    left:15px;
    bottom:10px;
    max-width:250px
  }
  .lot-detail  {
    border-left:0;
    border-top:1px solid var(--line);
    display:grid;
    grid-template-columns:110px minmax(0,1fr)
  }
  .lot-detail .detail-placeholder  {
    grid-column:1/-1;
    padding:30px;
    max-width:300px
  }
  .detail-placeholder>span  {
    font-size:28px;
    margin-bottom:10px
  }
  .detail-placeholder h3  {
    font-size:24px;
    margin-bottom:10px
  }
  .detail-placeholder p  {
    margin-bottom:0
  }
  .lot-detail .detail-image  {
    height:100%;
    min-height:280px
  }
  .lot-detail .detail-image img  {
    object-position:45% 55%
  }
  .lot-detail .detail-image>small  {
    font-size:6px;
    left:4px;
    right:auto;
    bottom:4px
  }
  .detail-body  {
    padding:18px
  }
  .detail-body h3  {
    font-size:27px;
    margin:10px 0 12px
  }
  .detail-specs  {
    padding-bottom:12px;
    margin-bottom:12px;
    gap:18px
  }
  .detail-specs strong  {
    font-size:16px
  }
  .detail-specs small  {
    font-size:8px
  }
  .detail-body>p  {
    font-size:10px;
    margin-bottom:13px
  }
  .detail-body>.button  {
    font-size:10px;
    padding:10px;
    gap:12px;
    min-height:41px
  }
  .status-pill  {
    font-size:8px;
    padding:3px 7px
  }
  .data-note  {
    font-size:9px;
    line-height:1.8;
    gap:6px;
    margin-top:16px
  }
  .lot-grid  {
    grid-template-columns:1fr 1fr;
    gap:12px
  }
  .lot-card .detail-image  {
    height:130px
  }
  .lot-card .detail-body  {
    padding:15px 12px
  }
  .lot-card .detail-body h3  {
    font-size:24px
  }
  .lot-card .detail-body>p  {
    font-size:10px
  }
  .lot-card .card-actions  {
    flex-direction:column;
    gap:8px
  }
  .lot-card .card-actions .button  {
    font-size:10px;
    padding:9px;
    min-height:38px
  }
  .lot-card .detail-specs strong  {
    font-size:14px
  }
  .lot-card .status-pill  {
    font-size:7px;
    letter-spacing:.4px
  }
  .purchase .section-heading .text-link  {
    margin-top:20px
  }
  .steps  {
    grid-template-columns:1fr;
    gap:30px;
    margin-top:35px
  }
  .steps article  {
    padding-top:20px
  }
  .steps article>span  {
    font-size:8px
  }
  .steps h3  {
    margin-top:15px;
    font-size:26px;
    margin-bottom:10px
  }
  .steps p  {
    max-width:none;
    font-size:12px
  }
  .faq-grid  {
    grid-template-columns:1fr;
    gap:35px
  }
  .faq-grid h2  {
    font-size:38px
  }
  .faq-grid>div>p:not(.eyebrow)  {
    font-size:12px
  }
  .faq-grid .text-link  {
    margin-top:0
  }
  .faq-list summary  {
    font-size:12px;
    padding:22px 30px 22px 0
  }
  .faq-list details p  {
    font-size:12px;
    padding-right:15px
  }
  .contact-grid  {
    grid-template-columns:1fr;
    gap:35px
  }
  .contact-copy  {
    padding-top:0
  }
  .contact-copy h2  {
    font-size:44px
  }
  .contact-copy>p:not(.eyebrow)  {
    font-size:12px;
    max-width:330px
  }
  .contact-whatsapp  {
    margin:27px 0 12px;
    padding:19px 0;
    max-width:none
  }
  .contact-whatsapp strong  {
    font-size:22px
  }
  .contact-location  {
    margin-top:25px
  }
  .contact-copy .contact-signature  {
    margin-top:28px;
    font-size:7px!important
  }
  .contact-signature strong  {
    display:inline;
    margin-left:7px;
    font-size:14px
  }
  .form-card  {
    padding:27px 22px
  }
  .form-heading h3  {
    font-size:27px
  }
  .form-row  {
    gap:13px
  }
  .field input,.field select,.field textarea  {
    font-size:12px;
    padding:11px 10px
  }
  .field label  {
    font-size:9px
  }
  .site-footer  {
    padding:40px 0 80px
  }
  .footer-top  {
    flex-wrap:wrap;
    gap:25px;
    padding-bottom:30px
  }
  .footer-top>.brand  {
    width:100%
  }
  .footer-top>p  {
    font-size:19px
  }
  .footer-top>.text-link  {
    font-size:11px;
    gap:16px
  }
  .footer-bottom  {
    flex-direction:column;
    align-items:flex-start;
    gap:15px;
    font-size:8px
  }
  .footer-bottom>div  {
    gap:19px;
    flex-wrap:wrap
  }
  .footer-disclaimer  {
    font-size:8px;
    margin-top:20px
  }
  .floating-contact  {
    bottom:16px;
    right:16px;
    width:50px;
    height:50px;
    padding:12px;
    justify-content:center
  }
  .floating-contact>span  {
    display:none
  }
  .floating-contact svg  {
    width:25px;
    height:25px
  }
  .modal  {
    padding:24px 20px
  }
  .modal-heading h2  {
    font-size:27px
  }
  .modal-heading .eyebrow  {
    font-size:7px
  }
  .toast  {
    font-size:11px;
    bottom:20px
  }
  .privacy-modal>p  {
    font-size:12px
  }
}

@media(max-width:380px)  {
  .container  {
    width:calc(100% - 32px)
  }
  .demo-detail  {
    display:none
  }
  .hero h1  {
    font-size:38px
  }
  .hero  {
    min-height:610px
  }
  .hero-inner  {
    padding-top:80px
  }
  .segmented button  {
    padding:9px 7px;
    font-size:10px
  }
  .strip-grid strong  {
    font-size:17px
  }
  .lot-detail  {
    grid-template-columns:85px minmax(0,1fr)
  }
  .detail-body  {
    padding:15px
  }
  .detail-specs  {
    gap:12px
  }
  .detail-specs strong  {
    font-size:14px
  }
  .lot-grid  {
    grid-template-columns:1fr
  }
  .lot-card .detail-image  {
    height:180px
  }
  .lot-card .detail-specs  {
    flex-direction:row;
    gap:25px
  }
  .lot-card .detail-specs>div  {
    display:block
  }
  .lot-card .card-actions  {
    flex-direction:row
  }
  .form-row  {
    grid-template-columns:1fr
  }
  .form-card  {
    padding:25px 18px
  }
  .contact-copy h2  {
    font-size:40px
  }
}

@media(prefers-reduced-motion:reduce)  {
  html  {
    scroll-behavior:auto
  }
  *,*::before,*::after  {
    transition:none!important;
    animation:none!important
  }
  .hero-video,.video-toggle  {
    display:none
  }
}

.floating-contact.hero-visible  {
  opacity:0;
  pointer-events:none
}

@media print  {
  .site-header,.demo-banner,.hero,.project-strip,.project,.purchase,.faq-section,.contact-section,.site-footer,.floating-contact,.catalog-toolbar,.catalog-filters,.map-controls,.skip-link,.toast  {
    display:none!important
  }
  .inventory-section  {
    padding:0;
    background:white
  }
  .container  {
    width:100%
  }
  .masterplan  {
    grid-template-columns:1fr 300px
  }
  .lot-detail .detail-body>.button  {
    display:none
  }
  .section-heading  {
    margin-top:20px
  }
}

/* Satellite map and surrounding places. */
.project-principles > div  {
  padding:0;
}

.map-canvas  {
  background:#dce3d4;
  isolation:isolate;
}

#lotMap  {
  width:100%;
  height:520px;
  z-index:0;
  font-family:var(--sans);
  background:#dce3d4;
}

.map-top-label  {
  z-index:500;
  background:#fffefae8;
  padding:8px 10px;
  border-radius:3px;
  top:15px;
  left:15px;
  box-shadow:0 2px 6px #173c3220;
}

.map-controls  {
  z-index:500;
}

.map-compass  {
  z-index:500;
  background:#fffefae8;
  padding:6px 8px;
  border-radius:3px;
  right:16px;
  top:15px;
}

.map-caption  {
  z-index:500;
  background:#173c32bf;
  color:#fff;
  padding:4px 7px;
  border-radius:2px;
  bottom:22px;
  left:15px;
}

.map-empty  {
  z-index:550;
}

.leaflet-container .leaflet-control-attribution  {
  background:#fffefae8;
  font-size:8px;
  max-width:100%;
  line-height:1.5;
}

.leaflet-control-attribution a  {
  text-decoration:underline;
}

.leaflet-interactive:focus-visible  {
  outline:none;
  stroke:#edff9a;
  stroke-width:4px;
}

.satellite-lot-label.leaflet-tooltip  {
  border:0;
  border-radius:2px;
  padding:1px 3px;
  background:#112e27a8;
  color:white;
  font-size:8px;
  font-weight:600;
  box-shadow:none;
  line-height:1.3;
}

.satellite-lot-label.leaflet-tooltip::before  {
  display:none;
}

.map-load-status  {
  position:absolute;
  z-index:510;
  top:77px;
  left:16px;
  right:60px;
  width:max-content;
  max-width:calc(100% - 76px);
  background:#fffefae8;
  padding:6px 10px;
  color:var(--forest);
  border-radius:3px;
  font-size:10px;
}

.map-load-status.error  {
  color:#783d29;
  background:#fff4e9ed;
}

.map-load-status button  {
  text-decoration:underline;
  margin-left:8px;
  padding:4px;
}

.places-section  {
  border-bottom:1px solid var(--line);
  background:#fffefa;
}

.places-heading  {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:30px;
  margin-bottom:35px;
}

.places-heading .eyebrow  {
  margin-bottom:16px;
}

.places-heading h2  {
  font-size:clamp(33px,3.5vw,47px);
  margin-bottom:18px;
}

.places-heading p:not(.eyebrow)  {
  font-size:13px;
  color:var(--muted);
  margin:0;
}

.places-heading > span  {
  font-size:11px;
  color:var(--muted);
  white-space:nowrap;
  margin-top:45px;
}

.places-grid  {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
}

.place-card  {
  border:1px solid var(--line);
  background:var(--paper);
  transition:border-color .2s,transform .2s;
}

.place-card:hover  {
  border-color:#a7b395;
  transform:translateY(-3px);
}

.place-card > a  {
  display:flex;
  flex-direction:column;
  height:100%;
}

.place-image  {
  height:205px;
  position:relative;
  overflow:hidden;
}

.place-image img  {
  width:100%;
  height:100%;
  transition:transform .5s;
}

.place-card:hover .place-image img  {
  transform:scale(1.035);
}

.place-image > span  {
  position:absolute;
  right:12px;
  bottom:12px;
  width:30px;
  height:30px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#173c32a8;
  color:white;
  font-size:18px;
}

.place-body  {
  display:flex;
  flex-direction:column;
  flex:1;
  padding:23px 20px 20px;
}

.place-category  {
  font-size:8px;
  letter-spacing:1.2px;
  color:#788363;
  margin-bottom:10px;
}

.place-body h3  {
  font-size:19px;
  font-weight:500;
  line-height:1.3;
  letter-spacing:-.4px;
  margin-bottom:14px;
}

.place-description  {
  font-size:11px;
  color:var(--muted);
  line-height:1.9;
  margin-bottom:22px;
}

.place-location  {
  border-top:1px solid var(--line);
  padding-top:17px;
  margin-top:auto;
}

.place-location strong  {
  font-size:13px;
  font-weight:500;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.place-location small  {
  display:block;
  margin-top:5px;
  font-size:9px;
  color:var(--muted);
}

.places-note  {
  font-size:10px;
  color:var(--muted);
  margin:20px 0 0;
  line-height:1.8;
}

.photo-credits  {
  font-size:9px;
  color:var(--muted);
  margin-top:12px;
}

.photo-credits summary  {
  cursor:pointer;
  width:max-content;
  text-decoration:underline;
  text-underline-offset:3px;
}

.photo-credits > div  {
  display:flex;
  gap:8px 20px;
  flex-wrap:wrap;
  margin-top:12px;
}

.photo-credits a  {
  text-decoration:underline;
}

.photo-credits > p  {
  font-size:9px;
  margin:10px 0 0;
  max-width:650px;
}

@media(max-width:1000px)  {
  .places-grid  {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
  }
  .place-image  {
    height:230px;
  }
  .place-description  {
    min-height:42px;
  }
}

@media(max-width:700px)  {
  #lotMap  {
    height:380px;
  }
  .map-canvas  {
    min-height:380px;
  }
  .map-top-label  {
    top:12px;
    left:12px;
    font-size:7px;
    max-width:235px;
  }
  .map-load-status  {
    top:68px;
    left:12px;
    font-size:9px;
  }
  .map-compass  {
    top:12px;
    right:12px;
    padding:4px 6px;
  }
  .map-caption  {
    bottom:35px;
    left:12px;
    max-width:220px;
    font-size:7px;
  }
  .map-controls  {
    bottom:58px;
  }
  .leaflet-container .leaflet-control-attribution  {
    font-size:6px;
    max-width:100%;
  }
  .places-heading  {
    display:block;
    margin-bottom:28px;
  }
  .places-heading > span  {
    display:block;
    margin-top:15px;
    font-size:10px;
  }
  .places-heading h2  {
    font-size:37px;
  }
  .places-heading p:not(.eyebrow)  {
    font-size:12px;
    line-height:1.8;
  }
}

@media(max-width:560px)  {
  .places-grid  {
    grid-template-columns:1fr;
    gap:24px;
  }
  .place-image  {
    height:235px;
  }
  .place-body  {
    padding:23px;
  }
  .place-body h3  {
    font-size:22px;
  }
  .place-description  {
    font-size:12px;
    min-height:0;
  }
  .place-location strong  {
    font-size:15px;
  }
}
