@font-face{font-family:Manrope;src:url('assets/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
:root{
  --navy:#073752;--deep:#052b43;--blue:#006c92;--sky:#45c1e2;
  --gold:#d1b77b;--gold-dark:#806025;--cream:#f7f4ec;--white:#fffdf8;
  --ink:#142f3f;--muted:#476070;--line:#dddcd1;
  --serif:Georgia,'Times New Roman',serif;
  font:16px/1.6 Manrope,Arial,sans-serif;color:var(--ink);background:var(--white);
}
*,*::before,*::after{box-sizing:border-box}
body,figure,dl,dd,p,h1,h2,h3{margin:0}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
button:disabled{cursor:default;opacity:.45}
:focus-visible{outline:3px solid #007fa9;outline-offset:4px}
.hero :focus-visible,.contact :focus-visible,.footer :focus-visible{outline-color:var(--sky)}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:100px}
.wrap{width:min(100% - 96px, 1216px);margin-inline:auto}
.section{padding-block:clamp(72px,8vw,120px)}
.skip{position:fixed;top:8px;left:8px;z-index:10;padding:10px;background:white;transform:translateY(-150%)}
.skip:focus{transform:none}
.header{position:sticky;top:0;z-index:5;background:var(--white);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:83px}
.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}
.brand img{object-fit:contain}
.brand span{font-family:var(--serif);font-size:19px;line-height:1.12}
.brand small{display:block;margin-top:6px;font:800 9px/1.2 Manrope,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.header nav{display:flex;align-items:center;gap:clamp(16px,2.6vw,42px);font-size:13px;font-weight:750}
.header nav a:hover,.header nav a:focus-visible{color:var(--blue)}
.header-cta{padding:10px 14px;border:1px solid #b4a47e;color:var(--navy);font-size:12px;font-weight:800;white-space:nowrap}
.header-cta span{margin-left:7px}
.header-cta:hover{background:var(--cream)}
.menu-toggle{display:none}
.hero{position:relative;isolation:isolate;display:grid;align-items:end;min-height:clamp(610px,53vw,820px);overflow:hidden;background:var(--deep);color:white}
.hero-photo,.hero-photo::after{position:absolute;inset:0}
.hero-photo{z-index:-1}
.hero-photo::after{content:"";background:linear-gradient(90deg,rgba(5,33,46,.73) 0%,rgba(5,33,46,.54) 28%,rgba(5,33,46,.12) 56%,transparent 78%),linear-gradient(0deg,rgba(5,29,42,.51),transparent 40%)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 48%}
.hero-content{padding-block:80px 98px}
.eyebrow,.label{font-size:11px;font-weight:800;letter-spacing:.16em;line-height:1.4;text-transform:uppercase}
.eyebrow{display:flex;align-items:center;gap:11px;color:var(--gold-dark)}
.eyebrow>span,.hero-credit>span{display:inline-block;width:30px;height:1px;background:currentColor;flex:none}
.hero .eyebrow,.contact .eyebrow{color:#f2dba4}
h1,h2,h3{font-family:var(--serif);font-weight:400;text-wrap:balance}
h1{margin:20px 0 16px;font-size:clamp(79px,8.1vw,138px);line-height:.86;letter-spacing:-.067em}
.hero-title-type {
  display: block;
  margin-top: .08em;
  color: #f2dba4;
}
h2{font-size:clamp(41px,4.25vw,71px);line-height:.99;letter-spacing:-.052em}
h3{font-size:clamp(25px,2.4vw,38px);line-height:1.05;letter-spacing:-.04em}
.hero-subtitle{font-size:clamp(15px,1.55vw,20px);margin:25px 0 24px;font-weight:650}
.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}
.button{min-height:49px;display:inline-flex;align-items:center;justify-content:center;gap:19px;padding:11px 20px;font-size:13px;font-weight:800}
.gold{background:var(--gold);color:var(--deep);border:1px solid var(--gold)}
.gold:hover{background:#ebd6a1;border-color:#ebd6a1}
.hero-link{font-size:13px;font-weight:800;border-bottom:1px solid #ffffff9c;padding-block:9px}
.hero-link span,.text-link span{margin-left:7px}
.hero-credit{position:absolute;right:max(48px,calc((100% - 1216px)/2));bottom:28px;display:flex;align-items:center;gap:11px;font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}
.hero-credit>span{width:16px;color:var(--gold)}
.facts{background:var(--cream);border-bottom:1px solid var(--line)}
.facts dl{display:grid;grid-template-columns:repeat(3,1fr);padding:27px 0;text-align:center}
.facts dl>div+div{border-left:1px solid #c6c4b5}
.facts dt{color:var(--navy);font:clamp(25px,3vw,41px)/1 var(--serif);letter-spacing:-.04em}
.facts dd{color:var(--muted);font-size:12px;font-weight:720;margin-top:7px}
.intro{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(35px,7vw,112px);align-items:center}
.intro h2,.location h2,.contact h2{margin:14px 0 21px}
.intro-copy>p:not(.eyebrow),.location-copy>p:not(.eyebrow),.contact p:not(.eyebrow){max-width:49ch;margin-bottom:18px}
.editorial-photo{position:relative}
.editorial-photo img{width:100%;height:auto}
.editorial-photo figcaption{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:9px 0;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.text-link{display:inline-block;border-bottom:1px solid var(--gold-dark);padding:5px 0;color:var(--navy);font-size:13px;font-weight:800}
.text-link:hover{color:var(--blue);border-color:var(--blue)}
.leisure,.fips{background:var(--cream)}
.section-heading{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.85fr);align-items:end;gap:30px;margin-bottom:36px}
.section-heading h2{margin-top:13px}
.section-heading>p{color:var(--muted);max-width:43ch}
.albums{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.property img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.album-text{padding:17px 0 3px}
.album-text p,.property-copy>p:not(.label),.fip-copy p:not(.label){margin-top:7px;color:var(--muted);font-size:14px}
.map-layout{display:grid;grid-template-columns:minmax(0,2.16fr) minmax(230px,1fr);gap:24px}
.map-frame{background:var(--navy);padding:8px;align-self:start}
.map-viewport{overflow:auto;overscroll-behavior:contain;aspect-ratio:4961/4079;background:var(--deep);scrollbar-color:#6f8e9c var(--deep)}
.map-image{position:relative;width:100%;min-height:100%;display:flex;align-items:center}
.map-image img{width:100%;height:auto}
#mapa-pontos{position:absolute;inset:0;pointer-events:none}
.map-marker{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;width:32px;height:32px;border:2px solid white;border-radius:50%;background:var(--deep);color:white;font-size:12px;font-weight:800;box-shadow:0 1px 5px #0009}
.map-marker[aria-pressed=true],.map-marker:hover{background:var(--gold);color:var(--deep);z-index:1}
.map-marker:focus-visible{z-index:2;outline-color:white}
.map-toolbar{display:flex;align-items:center;gap:6px;padding:7px 0 0;color:white}
.map-toolbar button,.map-toolbar a{display:grid;place-items:center;min-width:43px;min-height:42px;padding:4px 9px;background:transparent;border:1px solid #7898aa;color:white;font-size:12px;font-weight:800}
.map-toolbar a{display:flex;gap:5px;margin-left:auto}
.map-toolbar button:not(:disabled):hover,.map-toolbar a:hover{background:#ffffff23}
.map-toolbar :focus-visible{outline-color:var(--sky)}
.map-legend{padding:22px;background:var(--cream);border:1px solid var(--line)}
.map-legend .label{color:var(--gold-dark);margin-bottom:9px}
.map-legend ol{list-style:none;padding:0;margin:0}
.map-legend li+li{border-top:1px solid var(--line)}
.map-legend button{display:flex;align-items:center;gap:10px;min-height:42px;padding:5px 0;text-align:left;background:none;border:0;width:100%;font-size:13px;font-weight:760}
.map-legend button span{border-radius:50%;width:25px;height:25px;display:grid;place-items:center;background:var(--navy);color:white;flex:none;font-size:11px}
.map-marker--external, .map-legend button .map-badge--external { border: 2px dashed var(--gold); }
.map-legend button[aria-pressed=true] span,.map-legend button:hover span{background:var(--gold);color:var(--deep)}
.map-detail{border-top:1px solid var(--line);padding-top:11px;color:var(--muted);min-height:68px;font-size:13px}
.caption{font-size:12px;color:var(--muted);margin-top:13px}
.fip-grid,.property-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.fip,.property{border:1px solid var(--line);background:var(--white)}
.fip img{width:100%;height:auto}
.fip-copy,.property-copy{padding:19px 21px 22px}
.fip-copy{display:flex;justify-content:space-between;align-items:end;gap:8px 15px;flex-wrap:wrap;border-top:1px solid var(--line)}
.fip-copy h3,.property h3{margin-top:6px}
.fip-copy .label,.property .label{color:var(--gold-dark)}
.property figure{position:relative}
.property figcaption{position:absolute;left:9px;bottom:9px;color:white;background:var(--deep);padding:4px 8px;font-size:10px}
.property .text-link{margin-top:13px}
.location{padding-block:clamp(45px,6vw,89px);background:#eaf4f6}
.location img{width:100%;height:auto}
.contact{padding-block:clamp(50px,7vw,100px);background:var(--navy);color:white}
.contact-layout{display:flex;align-items:center;justify-content:space-between;gap:24px}
.contact .button{flex:none}
.contact p:not(.eyebrow){margin:0;color:#e3eff4}
.footer{background:var(--deep);color:white;border-top:1px solid #ffffff40}
.footer .brand img{background:var(--white);padding:3px}
dialog{width:min(920px,100% - 28px);max-height:calc(100% - 28px);padding:0;border:0;background:var(--deep);color:white}
dialog::backdrop{background:#021826d9}
.gallery-header,.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 15px}
.gallery-header h2{font-size:clamp(22px,3vw,33px);letter-spacing:-.025em}
.gallery-header button,.gallery-controls button{background:transparent;color:white;border:1px solid #7898aa;min-height:44px;padding:5px 10px;font-size:13px;font-weight:800}
.gallery-header button{min-width:44px;font-size:25px;line-height:1}
.gallery-controls button:hover,.gallery-header button:hover{background:#ffffff25}
.gallery-controls span,#galeria-legenda{font-size:12px}
#galeria img{width:100%;height:min(60vh,570px);object-fit:contain;background:#032033}
#galeria-legenda{padding:7px 15px;color:#e3eff4}
dialog :focus-visible{outline-color:var(--sky)}
body[data-layout=editorial] .hero{grid-template-columns:.85fr 1.15fr;min-height:0;align-items:center}
body[data-layout=editorial] .hero-photo{position:relative;inset:auto;grid-column:2;grid-row:1;height:100%;min-width:0}
body[data-layout=editorial] .hero-photo img{object-position:56% center}
body[data-layout=editorial] .hero-photo::after{background:linear-gradient(0deg,#0218267a,transparent 26%)}
body[data-layout=editorial] .hero-content{grid-column:1;grid-row:1;width:auto;margin-left:max(48px,calc((100vw - 1216px)/2));margin-right:22px;padding-block:100px}
body[data-layout=editorial] h1{font-size:clamp(61px,6.9vw,104px)}
@media(max-width:1060px){
  .wrap{width:calc(100% - 64px)}
  .hero-credit{right:32px}
  .header-inner{gap:15px}
  body[data-layout=editorial] .hero-content{margin-left:32px}
}
@media(max-width:810px){
  html{scroll-padding-top:80px}
  .wrap{width:calc(100% - 38px)}
  .header-inner{min-height:69px}
  .brand img{width:41px;height:44px}
  .brand span{font-size:16px}
  .brand small{font-size:8px;letter-spacing:.10em}
  .header-cta{display:none}
  .menu-toggle{display:inline-flex;gap:7px;align-items:center;min-height:44px;background:transparent;border:1px solid var(--line);padding:5px 10px;font-size:12px;font-weight:800}
  .header nav{position:absolute;top:100%;left:0;right:0;display:none;background:var(--white);border-bottom:1px solid var(--line);padding:8px 19px;box-shadow:0 8px 16px #052b4312}
  .header nav.open{display:grid;grid-template-columns:repeat(2,1fr);gap:0}
  .header nav a{padding:11px 0;min-height:44px}
  .hero{min-height:0;align-items:start}
  .hero-photo{position:relative;aspect-ratio:3/2}
  .hero-photo::after{background:linear-gradient(0deg,#03263c65,transparent 45%)}
  .hero-photo img{object-fit:contain}
  .hero-content{padding-block:30px 38px}
  .hero-credit{display:none}
  h1{font-size:clamp(60px,13vw,97px);margin:14px 0}
  .hero-subtitle{margin:16px 0 15px}
  .facts dl{padding-block:20px}
  .facts dd{font-size:10px;padding-inline:4px}
  .intro{grid-template-columns:1fr;gap:25px}
  .section-heading{grid-template-columns:1fr;gap:11px;margin-bottom:25px}
  .albums{gap:14px}
  .map-layout{grid-template-columns:1fr;gap:10px}
  .map-legend{padding:16px}
  .map-legend ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px}
  .map-legend li+li{border-top:0}
  .map-marker{width:27px;height:27px;font-size:10px}
  .map-detail{min-height:0;margin-top:7px}
  body[data-layout=editorial] .hero{grid-template-columns:1fr}
  body[data-layout=editorial] .hero-content{grid-column:1;grid-row:1;width:calc(100% - 38px);margin-inline:auto;padding-block:38px}
  body[data-layout=editorial] .hero-photo{grid-column:1;grid-row:2}
  body[data-layout=editorial] h1{font-size:clamp(60px,13vw,97px)}
}
@media(max-width:570px){
  .albums{grid-template-columns:1fr;gap:24px}
  .fip-grid,.property-grid{grid-template-columns:1fr;gap:18px}
  .contact-layout{display:grid}
  .contact .button{justify-self:start}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
#mapa-pontos svg{position:absolute;inset:0;width:100%;height:100%;stroke:white;stroke-width:2;filter:drop-shadow(0 1px 2px #000)}

/* Enseada: an editorial sequence from river and coast to the interior of the club. */
:root {
  --lagoon: #dceff5;
  --lagoon-pale: #edf7f9;
  --coast: #075879;
  --navy-ink: #092c41;
}
button.text-link {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--gold-dark);
  padding-inline: 0;
}
.header-cta {
  background: var(--navy);
  color: white;
  border-color: var(--navy);
  padding-inline: 16px;
}
.header-cta:hover { background: var(--coast); }
.header .menu-contact { display: none; }
.facts { background: var(--lagoon); border-bottom-color: #bdd9e3; }
.facts dt { color: var(--navy-ink); }
.facts dl > div + div { border-color: #abcbd7; }
.intro-section { background: var(--white); }
.intro-copy > p + p { margin-top: 11px; }
.intro-copy > .text-link { margin-top: 4px; }

.history {
  background: var(--deep);
  color: white;
}
.history-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: clamp(38px, 7vw, 110px);
  align-items: center;
}
.history-copy h2, .crossing h2 { margin: 14px 0 21px; }
.history-copy p:not(.eyebrow), .crossing p:not(.eyebrow) { color: #e2f0f5; max-width: 54ch; margin-bottom: 17px; }
.history .eyebrow, .crossing .eyebrow, .footer .eyebrow { color: #f2dba4; }
.history .ghost, .crossing .ghost { margin-top: 8px; }
.ghost {
  background: transparent;
  color: white;
  border: 1px solid #bdcdd3;
}
.ghost:hover { background: #ffffff20; }
.history-credit {
  padding-top: 10px;
  color: #cee5ee;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.photo-open, .album-open, .fip-photo {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
}
.photo-open img, .album-open img { width: 100%; height: auto; }
.photo-open span, .album-arrow, .fip-photo span {
  position: absolute;
  right: 13px;
  bottom: 13px;
  display: grid;
  place-items: center;
  width: 45px;
  height: 45px;
  color: var(--navy-ink);
  background: var(--white);
  font-size: 21px;
}
.photo-open:hover span, .album-open:hover .album-arrow, .fip-photo:hover span { background: var(--gold); }
.history :focus-visible, .crossing :focus-visible { outline-color: var(--sky); }

.leisure { background: #f5ecda; }
.albums {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px;
}
.album-card {
  grid-column: span 3;
  background: var(--white);
  border: 1px solid #dfd3b9;
}
.album-card:nth-child(-n + 2) { grid-column: span 6; }
.album-open { overflow: hidden; background: var(--navy); }
.album-open img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
  transition: transform .24s ease;
}
.album-card:nth-child(-n + 2) .album-open img { aspect-ratio: 1.8; }
.album-open:hover img { transform: scale(1.025); }
.album-count {
  position: absolute;
  left: 13px;
  top: 13px;
  padding: 5px 9px;
  background: var(--deep);
  color: white;
  font-size: 11px;
  font-weight: 800;
}
.album-text { padding: 16px 17px 20px; }
.album-text .label { margin: 0 0 8px; color: var(--gold-dark); font-size: 10px; }
.album-card:nth-child(n + 3) h3 { font-size: clamp(23px, 2.15vw, 31px); }
.crossing { padding-block: clamp(48px, 7vw, 104px); background: var(--coast); color: white; }
.crossing-layout {
  display: grid;
  grid-template-columns: minmax(0, .79fr) minmax(0, 1.21fr);
  align-items: center;
  gap: clamp(36px, 7vw, 105px);
}
.crossing .photo-open { border: 1px solid #8fb7c8; }
.crossing-photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 2.4vw, 30px);
  margin-top: clamp(24px, 4vw, 46px);
}
.crossing-photos img { aspect-ratio: 3 / 2; object-fit: cover; }
.crossing-photos figcaption {
  margin-top: 9px;
  color: #e2f0f5;
  font-size: 12px;
}
.beachfront { background: var(--lagoon-pale); }
.beachfront-copy { color: var(--muted); max-width: 49ch; }
.beachfront-copy p + p { margin-top: 10px; }
.beachfront-copy .text-link { margin-top: 9px; }
.beachfront-photos {
  display: grid;
  grid-template-columns: minmax(0, 1.95fr) minmax(0, 1fr);
  gap: clamp(16px, 2.4vw, 28px);
  align-items: start;
}
.beachfront-main { grid-row: span 2; }
.beachfront-photos figure:not(.beachfront-main) img { aspect-ratio: 16 / 9; object-fit: cover; }
.beachfront-photos figcaption { margin-top: 9px; color: var(--muted); font-size: 12px; }
.map-section { background: var(--white); }
.map-toolbar button[data-plan] { margin-left: auto; display: inline-flex; align-items: center; gap: 5px; }
.fips { background: var(--lagoon); }
.fip { border-color: #b6d4e0; }
.fip-photo span { background: var(--lagoon); }
.fip-copy { align-items: start; }
.fip-copy > div { flex: 1 1 230px; }
.fip-copy p:not(.label) { max-width: 48ch; }
.properties { background: var(--white); }
.filters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 20px;
}
.filters button {
  border: 1px solid #abc0c8;
  background: transparent;
  color: var(--navy);
  min-height: 42px;
  padding: 6px 15px;
  font-size: 13px;
  font-weight: 800;
}
.filters button[aria-pressed=true], .filters button:hover { background: var(--navy); color: white; border-color: var(--navy); }
.filters span { margin-left: auto; font-size: 13px; color: var(--muted); }
.property-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.property {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.property-copy {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.property h3 { font-size: clamp(25px, 2.3vw, 34px); }
.property-features {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 7px;
  margin: 11px 0 0;
  padding: 0;
  list-style: none;
}
.property-features li {
  padding: 4px 7px;
  font-size: 10px;
  font-weight: 800;
  color: var(--navy);
  background: var(--lagoon-pale);
}
.property-copy > p:not(.label) { margin-bottom: 14px; }
.property-copy > p.property-price {
  margin-top: auto;
  color: var(--navy);
  font-size: 17px;
  font-weight: 800;
}
.location { background: var(--lagoon-pale); }
.region-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.region-grid article { background: white; border: 1px solid #c9dce2; }
.region-grid img { width: 100%; aspect-ratio: 1.66; object-fit: cover; }
.region-grid article > div { padding: 19px; }
.region-grid .label { color: var(--gold-dark); margin-bottom: 7px; }
.region-grid h3 { font-size: clamp(24px, 2.7vw, 36px); }
.region-grid h3 + p, .region-actions p { color: var(--muted); margin-top: 8px; font-size: 14px; }
.region-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px 22px;
  margin-top: 22px;
  flex-wrap: wrap;
}
.region-actions p { max-width: 65ch; }

.contact { background: var(--navy); }
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr);
  gap: clamp(35px, 7vw, 110px);
}
.contact p.contact-location {
  border-top: 1px solid #99b8ca66;
  margin-top: 24px;
  padding-top: 13px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.lead-form {
  position: relative;
  padding: clamp(20px, 3vw, 37px);
  background: var(--white);
  color: var(--navy-ink);
}
.lead-form h3 { margin-bottom: 19px; }
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.form-grid label { display: grid; align-content: start; gap: 5px; font-size: 12px; font-weight: 800; }
.form-grid .wide { grid-column: 1 / -1; }
.form-grid input, .form-grid select {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 9px 10px;
  color: var(--navy-ink);
  background: white;
  border: 1px solid #9dafb8;
  border-radius: 0;
  font: inherit;
  font-size: 16px;
  font-weight: 500;
}
.form-grid select:disabled { background: var(--lagoon-pale); color: var(--navy-ink); opacity: 1; }
.form-grid .form-trap { position: absolute; top: 0; left: 0; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.contact .lead-form :focus-visible, #contato-modal .lead-form :focus-visible { outline-color: #007fa9; }
.lead-form .form-note, .contact .form-note:not(.eyebrow) { margin: 12px 0; color: var(--muted); font-size: 12px; }
.lead-form .form-feedback, .contact .form-feedback:not(.eyebrow) {
  margin-top: 12px;
  padding: 9px 10px;
  color: var(--ink);
  background: var(--lagoon-pale);
  font-size: 13px;
}
.lead-form .form-feedback[data-state=error] { background: #fff0ea; color: #823a26; }
.lead-form .form-feedback[data-state=success] { background: #e7f5ec; color: #175537; }
#contato-modal { width: min(570px, 100% - 22px); background: var(--white); color: var(--navy-ink); }
#contato-modal .gallery-header { align-items: flex-start; padding: 24px 25px 10px; }
#contato-modal .gallery-header h2 { margin-top: 10px; font-size: clamp(29px, 4vw, 42px); }
#contato-modal .gallery-header button { color: var(--navy-ink); border-color: #abc0c8; }
#contato-contexto { margin-inline: 25px; font-size: 14px; color: var(--muted); }
#contato-modal .lead-form { padding: 17px 25px 25px; }

.footer-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) .85fr .85fr minmax(0, 1fr);
  gap: 22px 35px;
  padding-block: 44px 31px;
}
.footer-layout h3 { font-family: inherit; font-size: 13px; font-weight: 800; letter-spacing: .035em; margin-bottom: 11px; color: #f2dba4; }
.footer-layout p { color: #cbdde5; margin-top: 13px; max-width: 35ch; font-size: 13px; }
.footer-layout nav a { display: block; padding: 4px 0; font-size: 13px; color: #e6f1f5; }
.footer-layout nav a:hover { text-decoration: underline; }
.footer-bottom {
  border-top: 1px solid #ffffff36;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 7px 18px;
  padding-block: 13px 21px;
  font-size: 11px;
  color: #cbdde5;
}
body:has(dialog[open]) { overflow: hidden; }
#galeria { width: min(980px, 100% - 28px); }
#galeria img#galeria-foto { height: min(56vh, 570px); }
.gallery-thumbs {
  position: relative;
  display: flex;
  overflow: auto;
  gap: 7px;
  padding: 0 15px 15px;
  scrollbar-color: #6f8e9c var(--deep);
}
.gallery-thumbs button {
  padding: 2px;
  flex: 0 0 76px;
  border: 2px solid transparent;
  background: transparent;
}
.gallery-thumbs button[aria-current=true] { border-color: var(--gold); }
#galeria .gallery-thumbs img { width: 100%; height: 47px; object-fit: cover; }
#prancha { width: min(1190px, 100% - 22px); }
.plan-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  padding: 0 15px 9px;
}
.plan-toolbar button {
  background: transparent;
  color: white;
  border: 1px solid #7898aa;
  padding: 5px 9px;
  min-width: 42px;
  min-height: 42px;
  font-size: 13px;
}
.plan-toolbar span { margin-left: auto; font-size: 12px; }
.plan-viewport {
  height: min(70vh, 780px);
  overflow: auto;
  background: #e5e9e9;
  overscroll-behavior: contain;
}
.plan-viewport img { display: block; max-width: none; height: auto; margin-inline: auto; }

@media(max-width: 1060px) {
  .album-card:nth-child(n + 3) { grid-column: span 6; }
  .footer-layout { gap: 22px; }
}
@media(max-width: 810px) {
  .beachfront-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .beachfront-main { grid-column: 1 / -1; grid-row: auto; }
  .header .menu-contact { display: block; grid-column: 1 / -1; color: var(--navy); }
  .history-layout, .crossing-layout, .contact-layout { grid-template-columns: 1fr; gap: 28px; }
  .history-copy { grid-row: 1; }
  .albums { gap: 15px; }
  .album-card:nth-child(-n + 2) .album-open img { aspect-ratio: 3 / 2; }
  .property-grid, .region-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .footer-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media(max-width: 570px) {
  .crossing-photos { grid-template-columns: 1fr; }
  .beachfront-photos { grid-template-columns: 1fr; }
  .albums { grid-template-columns: 1fr; }
  .album-card:nth-child(n) { grid-column: auto; }
  .property-grid, .region-grid { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .footer-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-layout > :first-child, .footer-contact { grid-column: 1 / -1; }
  .gallery-thumbs button { flex-basis: 58px; }
  #galeria .gallery-thumbs img { height: 39px; }
}
@media(prefers-reduced-motion:reduce) {
  .album-open img { transition: none; }
}
