/* =============================================================
   ILHÉUS_20 · Luxury Coastal Deck
   ============================================================= */

:root {
  --sand-50:  #FAF6EE;
  --sand-100: #F5F0E6;
  --sand-200: #E8DFD0;
  --sand-300: #D6C9B0;
  --gold-400: #D4B978;
  --gold-500: #C9A961;
  --gold-600: #B8924B;
  --gold-700: #8E6E36;
  --navy-900: #0A1929;
  --navy-800: #0F2438;
  --navy-700: #1E3A5F;
  --navy-600: #2C4E73;
  --charcoal: #1A1A1A;
  --ink: #2C2C2C;
  --line: rgba(10,25,41,.12);
  --line-light: rgba(255,255,255,.15);

  --f-display: 'Cormorant Garamond', 'Times New Roman', serif;
  --f-sans: 'Inter', system-ui, -apple-system, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body {
  font-family: var(--f-sans);
  background: var(--sand-50);
  color: var(--ink);
  line-height: 1.55;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; }

::selection { background: var(--gold-500); color: var(--navy-900); }

/* ============ CUSTOM CURSOR ============ */
@media (pointer: fine) {
  body { cursor: none; }
  a, button, [data-cursor] { cursor: none; }

  #cursor-dot, #cursor-ring {
    position: fixed; top: 0; left: 0;
    pointer-events: none;
    z-index: 10000;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    mix-blend-mode: difference;
  }
  #cursor-dot {
    width: 6px; height: 6px;
    background: #fff;
    transition: width .2s var(--ease), height .2s var(--ease), opacity .2s ease;
  }
  #cursor-ring {
    width: 36px; height: 36px;
    border: 1.5px solid rgba(255,255,255,.5);
    transition: width .35s var(--ease), height .35s var(--ease),
                border-color .25s ease, opacity .2s ease;
  }
  body.cursor-link #cursor-ring { width: 60px; height: 60px; border-color: rgba(212,185,120,.9); }
  body.cursor-link #cursor-dot { width: 4px; height: 4px; }
  body.cursor-zoom #cursor-ring { width: 80px; height: 80px; border-color: rgba(212,185,120,.7); }
  body.cursor-zoom #cursor-dot { opacity: 0; }
  body.cursor-zoom #cursor-ring::after {
    content: 'VER'; position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-family: 'Inter', sans-serif;
    font-size: .55rem; letter-spacing: .25em; font-weight: 700;
    color: #fff; mix-blend-mode: difference;
  }
  body.cursor-map #cursor-ring { width: 50px; height: 50px; border-color: rgba(212,185,120,.8); }
  body.cursor-hidden #cursor-dot, body.cursor-hidden #cursor-ring { opacity: 0; }
}
@media (pointer: coarse) {
  #cursor-dot, #cursor-ring { display: none; }
}

/* ============ LOADER ============ */
#loader {
  position: fixed; inset: 0;
  background: var(--navy-900);
  display: flex; align-items: center; justify-content: center;
  z-index: 9999;
  transition: opacity .8s ease, visibility 0s .8s;
}
#loader.done { opacity: 0; visibility: hidden; }
.loader-inner { text-align: center; color: var(--sand-50); }
.loader-mark {
  font-family: var(--f-display);
  font-size: 4rem;
  letter-spacing: .15em;
  font-weight: 300;
  margin-bottom: 1.5rem;
}
.loader-mark span { color: var(--gold-500); font-weight: 500; }
.loader-line {
  width: 220px; height: 1px; background: rgba(255,255,255,.15);
  margin: 0 auto 1rem; position: relative; overflow: hidden;
}
.loader-line span {
  position: absolute; left: 0; top: 0; height: 100%; width: 0;
  background: var(--gold-500);
  animation: loaderFill 1.6s ease forwards;
}
@keyframes loaderFill { to { width: 100%; } }
.loader-text {
  font-size: .7rem; letter-spacing: .35em; color: var(--gold-500);
  opacity: 0; animation: fadeIn .8s ease 1s forwards;
}
@keyframes fadeIn { to { opacity: 1; } }

/* ============ TOP BAR ============ */
#topbar {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 1.25rem 2.5rem;
  display: flex; justify-content: space-between; align-items: center;
  mix-blend-mode: difference;
  color: #fff;
}
.brand { display: flex; gap: .85rem; align-items: center; }
.brand-mark {
  font-family: var(--f-display);
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: .05em;
  border: 1px solid currentColor;
  padding: .35rem .55rem;
  line-height: 1;
}
.brand-name {
  font-size: .72rem;
  letter-spacing: .28em;
  line-height: 1.35;
  font-weight: 600;
}
.brand-name em { font-style: normal; font-weight: 300; opacity: .7; font-size: .62rem; }
.topbar-meta {
  display: flex; gap: 1rem; align-items: center;
  font-size: .68rem; letter-spacing: .28em; font-weight: 500;
}
.meta-dot { width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .5; }

/* ============ SIDE NAV ============ */
#sidenav {
  position: fixed; left: 1.4rem; top: 50%; transform: translateY(-50%);
  z-index: 90;
  mix-blend-mode: difference;
  color: #fff;
}
#sidenav ol { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
#sidenav li {
  display: flex; align-items: center; gap: .75rem;
  cursor: pointer; opacity: .55; transition: opacity .3s var(--ease);
}
#sidenav li span {
  width: 14px; height: 1px; background: currentColor;
  transition: width .3s var(--ease);
}
#sidenav li em {
  font-style: normal; font-size: .62rem; letter-spacing: .18em;
  font-weight: 600; opacity: 0;
  transform: translateX(-5px); transition: all .3s var(--ease);
}
#sidenav li:hover, #sidenav li.active { opacity: 1; }
#sidenav li.active span, #sidenav li:hover span { width: 28px; background: var(--gold-500); }
#sidenav li:hover em { opacity: 1; transform: translateX(0); }
#sidenav li.active em { opacity: 1; transform: translateX(0); color: var(--gold-500); }

/* ============ SECTIONS BASE ============ */
.section {
  position: relative;
  padding: 8rem 6rem;
  min-height: 100vh;
  display: flex; flex-direction: column; justify-content: center;
}

/* Centralized variant — content centered, max-width, paddings symmetric */
.section.centered {
  align-items: center;
  text-align: center;
}
/* Top-anchored centered: title sits near the top instead of vertically centered */
.section.centered.top-anchor {
  justify-content: flex-start;
  padding-top: 9rem;
}
.section.centered > .eyebrow,
.section.centered > .serif-display,
.section.centered > .lead,
.section.centered > .approval-inner,
.section.centered > .place-inner,
.section.centered > .gallery-head,
.section.centered > .towers-head,
.section.centered > .closing-content,
.section.centered > .hero-content,
.section.centered > .mall-content {
  margin-left: auto; margin-right: auto;
}
.section.centered .lead.center { margin-left: auto; margin-right: auto; }

.eyebrow {
  display: inline-block;
  font-size: .72rem; letter-spacing: .35em; font-weight: 600;
  color: var(--gold-700); margin-bottom: 1.5rem;
}
.eyebrow.light { color: var(--gold-400); }
.serif-display {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(2.4rem, 6vw, 5.5rem);
  line-height: 1.05;
  color: var(--navy-900);
  letter-spacing: -.02em;
  margin-bottom: 1.8rem;
}
.serif-display em {
  font-style: italic; font-weight: 400;
  color: var(--gold-600);
}
.serif-display.light { color: var(--sand-50); }
.serif-display.light em { color: var(--gold-400); }
.lead {
  font-size: 1.1rem; max-width: 620px;
  line-height: 1.7; color: var(--ink);
  font-weight: 300;
}
.lead.light { color: rgba(250,246,238,.85); }
.lead.center { text-align: center; }
.lead strong { color: var(--gold-600); font-weight: 600; }
.lead.light strong { color: var(--gold-400); }

/* ============ HERO ============ */
.section-hero {
  height: 100vh; padding: 0;
  overflow: hidden;
  color: #fff;
  justify-content: center; align-items: center;
}
.hero-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transform: scale(1.08);
  filter: brightness(.7) contrast(1.08);
  will-change: transform;
}
.hero-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(10,25,41,.6) 0%, rgba(10,25,41,.2) 30%, rgba(10,25,41,.5) 70%, rgba(10,25,41,.95) 100%);
}
.hero-vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at center, transparent 30%, rgba(10,25,41,.65) 100%);
}
.hero-content {
  position: relative; z-index: 5;
  text-align: center;
  padding: 0 2rem;
  max-width: 1200px;
}
.hero-tagline {
  display: flex; gap: 1.5rem; align-items: center; justify-content: center;
  font-size: .7rem; letter-spacing: .4em; font-weight: 600;
  color: var(--gold-400);
  margin-bottom: 3rem;
  opacity: 0; transform: translateY(20px);
  animation: reveal .8s var(--ease) .2s forwards;
}
.hero-tagline .line { width: 60px; height: 1px; background: var(--gold-400); }
.hero-title {
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(4rem, 14vw, 11rem);
  line-height: .95;
  letter-spacing: -.04em;
  text-transform: uppercase;
}
.hero-title .word {
  display: inline-block;
  opacity: 0; transform: translateY(60px);
  animation: reveal 1.2s var(--ease) forwards;
}
.hero-title .word:nth-child(1) { animation-delay: .4s; }
.hero-title .word:nth-child(2) {
  font-style: italic;
  color: var(--gold-500);
  font-weight: 400;
  margin-left: .15em;
  animation-delay: .6s;
}
.hero-title .word em { font-style: inherit; }
.hero-sub {
  font-size: 1.15rem;
  max-width: 600px; margin: 2rem auto 0;
  color: rgba(255,255,255,.8);
  font-weight: 300;
  opacity: 0;
  animation: reveal .8s var(--ease) 1s forwards;
}
.hero-meta {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1rem; max-width: 900px;
  margin: 5rem auto 0;
  opacity: 0; transform: translateY(30px);
  animation: reveal .9s var(--ease) 1.3s forwards;
}
.hero-meta > div {
  text-align: center;
  padding: 1.2rem .5rem;
  border-left: 1px solid rgba(255,255,255,.15);
}
.hero-meta > div:first-child { border-left: none; }
.hero-meta strong {
  display: block;
  font-family: var(--f-display);
  font-size: 2.2rem; font-weight: 400;
  color: var(--gold-400);
}
.hero-meta strong span { font-size: 1rem; opacity: .7; margin-left: 2px; }
.hero-meta em {
  font-style: normal;
  font-size: .65rem; letter-spacing: .28em; font-weight: 500;
  opacity: .65;
}
@keyframes reveal { to { opacity: 1; transform: translateY(0); } }

.scroll-cue {
  position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
  z-index: 5; text-align: center;
  font-size: .6rem; letter-spacing: .4em; color: rgba(255,255,255,.6);
  opacity: 0; animation: reveal .8s ease 2s forwards;
}
.scroll-cue i {
  display: block;
  width: 1px; height: 40px;
  margin: .8rem auto 0;
  background: linear-gradient(to bottom, transparent, var(--gold-400));
  animation: scrollLine 2s ease infinite;
}
@keyframes scrollLine {
  0% { transform: scaleY(.3); transform-origin: top; }
  50% { transform: scaleY(1); transform-origin: top; }
  51% { transform: scaleY(1); transform-origin: bottom; }
  100% { transform: scaleY(.3); transform-origin: bottom; }
}

/* ============ MANIFESTO ============ */
.section-manifesto { background: var(--sand-50); }
.manifesto-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 5rem;
  align-items: center; max-width: 1400px; margin: auto;
}
.manifesto-art {
  position: relative;
  border-radius: 4px; overflow: hidden;
  box-shadow: 0 30px 80px -20px rgba(10,25,41,.35);
  transform: perspective(1200px) rotateY(-6deg);
  transition: transform .8s var(--ease);
}
.manifesto-art:hover { transform: perspective(1200px) rotateY(0deg); }
.manifesto-art img { width: 100%; height: 100%; object-fit: cover; }
.art-caption {
  position: absolute; bottom: 1rem; left: 1rem;
  background: rgba(10,25,41,.85); color: var(--gold-400);
  padding: .5rem .85rem;
  font-size: .65rem; letter-spacing: .3em; font-weight: 600;
}

/* ============ PLACE (Ilhéus) ============ */
.section-place {
  background: var(--navy-900);
  color: var(--sand-50);
  overflow: hidden;
}
.section-place .parallax-bg {
  position: absolute; inset: -10%;
  background:
    radial-gradient(ellipse at 30% 30%, rgba(201,169,97,.15) 0%, transparent 50%),
    radial-gradient(ellipse at 70% 70%, rgba(30,58,95,.6) 0%, transparent 50%);
  filter: blur(40px);
}
.place-inner {
  position: relative; z-index: 2;
  max-width: 1400px; width: 100%;
}
.place-stats {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1px; background: var(--line-light);
  margin-top: 4rem;
  border-top: 1px solid var(--line-light);
  border-bottom: 1px solid var(--line-light);
}
.stat {
  background: var(--navy-900);
  padding: 2.2rem 1.5rem;
  position: relative;
  text-align: left;
}
.stat strong {
  display: block;
  font-family: var(--f-display);
  font-size: 3.4rem; font-weight: 400;
  color: var(--gold-400);
  line-height: 1;
}
.stat sup { font-size: 1rem; font-weight: 300; color: var(--gold-500); margin-left: 4px; }
.stat small { font-size: 1.5rem; color: var(--gold-400); }
.stat em {
  display: block;
  font-style: normal;
  font-size: .72rem; letter-spacing: .25em; font-weight: 600;
  margin-top: .8rem; color: rgba(250,246,238,.8);
}
.stat span {
  display: block;
  font-size: .8rem; margin-top: .35rem;
  opacity: .55;
}

/* ============ LOCATION ============ */
.section-location { background: var(--sand-100); }
.loc-grid {
  display: grid; grid-template-columns: 1fr 1.1fr; gap: 5rem;
  align-items: center; max-width: 1400px; margin: auto;
}
.loc-list {
  list-style: none;
  margin-top: 2.5rem;
  border-top: 1px solid var(--line);
}
.loc-list li {
  display: flex; gap: 2rem; align-items: baseline;
  padding: 1rem 0; border-bottom: 1px solid var(--line);
}
.loc-list span {
  font-family: var(--f-display);
  font-size: 2rem; color: var(--gold-600); font-weight: 500;
  min-width: 110px;
}
.loc-list em { font-style: normal; color: var(--ink); font-size: .95rem; }
.loc-tags {
  display: flex; flex-wrap: wrap; gap: .5rem;
  margin-top: 2rem;
}
.loc-tags span {
  padding: .5rem 1rem;
  border: 1px solid var(--gold-600);
  border-radius: 999px;
  font-size: .7rem; letter-spacing: .15em; font-weight: 600;
  color: var(--gold-700);
}

.map-card {
  background: #fff;
  border-radius: 4px;
  padding: 1.5rem;
  box-shadow: 0 30px 80px -30px rgba(10,25,41,.25);
}
.map-stage {
  position: relative;
  background: #E8E2D5;
  border-radius: 2px;
  overflow: hidden;
  height: 520px;
}
.map-leaflet {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  background: #E8E2D5;
  cursor: grab;
}
.map-leaflet:active { cursor: grabbing; }
/* Soften CARTO tiles to match brand */
.map-leaflet .leaflet-tile-pane { filter: sepia(.08) saturate(.85) brightness(1.02); }
.map-leaflet .leaflet-control-attribution {
  background: rgba(250,246,238,.85) !important;
  font-family: var(--f-sans);
  font-size: .58rem !important;
  letter-spacing: .04em;
  color: var(--ink) !important;
  padding: 2px 8px !important;
}
.map-leaflet .leaflet-control-attribution a { color: var(--gold-700) !important; }

/* Custom gold pin (matches reference image) */
.gold-pin-wrap { background: none !important; border: none !important; }
.gold-pin {
  position: relative; width: 60px; height: 60px;
  display: flex; align-items: center; justify-content: center;
}
.gold-pin-pulse {
  position: absolute; top: 50%; left: 50%;
  width: 50px; height: 50px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,169,97,.45) 0%, rgba(201,169,97,0) 70%);
  animation: goldPulse 2.4s ease-in-out infinite;
}
.gold-pin-ring {
  position: absolute; top: 50%; left: 50%;
  width: 24px; height: 24px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 2px solid var(--gold-500);
  background: rgba(201,169,97,.15);
}
.gold-pin-core {
  position: absolute; top: 50%; left: 50%;
  width: 8px; height: 8px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--gold-600);
  box-shadow: 0 0 12px rgba(184,146,75,.7);
}
.gold-pin-label {
  position: absolute;
  bottom: -28px; left: 50%;
  transform: translateX(-50%);
  background: var(--navy-900);
  color: var(--gold-400);
  font-family: var(--f-sans);
  font-size: .58rem;
  letter-spacing: .25em;
  font-weight: 700;
  padding: .35rem .7rem;
  white-space: nowrap;
  border-radius: 2px;
  box-shadow: 0 4px 12px -2px rgba(10,25,41,.35);
}
.gold-pin-label::before {
  content: ''; position: absolute;
  top: -4px; left: 50%; transform: translateX(-50%) rotate(45deg);
  width: 8px; height: 8px;
  background: var(--navy-900);
}
@keyframes goldPulse {
  0%, 100% { transform: translate(-50%,-50%) scale(.8); opacity: .8; }
  50% { transform: translate(-50%,-50%) scale(1.4); opacity: 0; }
}

/* Custom map controls */
.map-controls {
  position: absolute; top: 12px; right: 12px;
  z-index: 500;
  display: flex; flex-direction: column;
  gap: 4px;
}
.mc-btn {
  width: 36px; height: 36px;
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(10,25,41,.08);
  font-family: var(--f-sans);
  font-size: 1.1rem; font-weight: 500;
  color: var(--navy-900);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .25s var(--ease);
  box-shadow: 0 2px 8px -2px rgba(10,25,41,.15);
  border-radius: 2px;
}
.mc-btn:hover {
  background: var(--gold-500);
  color: var(--navy-900);
  border-color: var(--gold-500);
}

/* Pin info label (bottom-left of map) */
.map-pin-label {
  position: absolute;
  bottom: 16px; left: 16px;
  z-index: 500;
  background: rgba(250,246,238,.96);
  backdrop-filter: blur(8px);
  padding: .75rem 1rem;
  border-left: 3px solid var(--gold-500);
  box-shadow: 0 8px 24px -8px rgba(10,25,41,.2);
  pointer-events: none;
}
.map-pin-label strong {
  display: block;
  font-family: var(--f-display);
  font-size: 1.2rem; font-weight: 600;
  color: var(--navy-900);
  letter-spacing: .02em;
}
.map-pin-label em {
  font-style: normal;
  font-size: .7rem; letter-spacing: .15em;
  color: var(--gold-700);
}

/* Hidden iframe fallback */
.map-stage iframe.map-iframe { display: none !important; }
.map-stage .map-fallback { display: none; }
body.pdf-mode .map-leaflet { display: none; }
body.pdf-mode .map-stage .map-fallback { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.map-foot {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1rem; margin-top: 1.5rem;
  padding-top: 1.5rem; border-top: 1px solid var(--line);
}
.map-foot strong { display: block; font-family: var(--f-display); font-size: 1.4rem; color: var(--navy-900); }
.map-foot em { font-style: normal; font-size: .68rem; letter-spacing: .2em; color: var(--ink); opacity: .6; }

/* ============ CONCEPT ============ */
.section-concept {
  background: var(--sand-50);
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 5rem; align-items: center;
}
.concept-stage {
  perspective: 1400px;
  display: flex; flex-direction: column;
  gap: 12px;
}
.concept-floor {
  position: relative;
  padding: 1.5rem 2rem;
  color: #fff;
  display: flex; align-items: center; gap: 1.5rem;
  transform: rotateX(35deg) rotateZ(-12deg);
  transform-style: preserve-3d;
  box-shadow: -20px 20px 40px -20px rgba(10,25,41,.4);
  transition: transform .6s var(--ease);
}
.concept-stage:hover .concept-floor { transform: rotateX(15deg) rotateZ(-5deg); }
.floor-tag {
  font-family: var(--f-display);
  font-size: 2.5rem; opacity: .35;
  font-weight: 300;
}
.floor-content h3 {
  font-family: var(--f-display);
  font-weight: 500; font-size: 1.35rem;
  margin-bottom: .25rem;
}
.floor-content p { font-size: .85rem; opacity: .8; }
.floor-residential { background: linear-gradient(135deg, var(--navy-800) 0%, var(--navy-700) 100%); }
.floor-pool { background: linear-gradient(135deg, var(--gold-600) 0%, var(--gold-500) 100%); }
.floor-mall { background: linear-gradient(135deg, #3D3D3D 0%, #555 100%); }
.floor-base { background: linear-gradient(135deg, #2C2C2C 0%, #1a1a1a 100%); }

.concept-points {
  margin-top: 2rem;
  display: flex; flex-direction: column; gap: 1rem;
}
.concept-points > div {
  padding: 1rem 1.4rem;
  background: #fff;
  border-left: 3px solid var(--gold-500);
}
.concept-points span {
  display: block;
  font-size: .68rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-700); margin-bottom: .25rem;
}
.concept-points em { font-style: normal; font-size: .95rem; }

/* ============ GALLERY ============ */
.section-gallery {
  background: var(--navy-900);
  color: var(--sand-50);
}
.gallery-head { max-width: 900px; margin-bottom: 3rem; text-align: center; }
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-auto-rows: 260px;
  gap: 1rem;
  max-width: 1500px;
  width: 100%;
}
.gphoto {
  position: relative; overflow: hidden;
  grid-column: span 3; grid-row: span 1;
  background: #000;
  transition: transform .8s var(--ease), box-shadow .5s ease;
  box-shadow: 0 20px 40px -20px rgba(0,0,0,.5);
}
.gphoto.big { grid-column: span 4; grid-row: span 2; }
.gphoto.wide { grid-column: span 6; grid-row: span 1; }
.gphoto img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.2s var(--ease), filter .8s var(--ease);
  filter: brightness(.9) saturate(1.15) contrast(1.08);
}
.gphoto:hover img { transform: scale(1.06); filter: brightness(1.05) saturate(1.25) contrast(1.12); }
.gphoto:hover { box-shadow: 0 30px 60px -20px rgba(201,169,97,.35); }
.gphoto figcaption {
  position: absolute; bottom: 1rem; left: 1rem;
  color: #fff; font-size: .68rem; letter-spacing: .28em; font-weight: 600;
  display: flex; align-items: center; gap: .75rem;
  text-shadow: 0 1px 4px rgba(0,0,0,.6);
}
.gphoto figcaption span {
  font-family: var(--f-display);
  font-size: 1.4rem; font-weight: 500; color: var(--gold-400);
  letter-spacing: 0;
}

/* ============ NUMBERS ============ */
.section-numbers { background: var(--sand-50); }
.numbers-grid {
  display: grid; grid-template-columns: repeat(6, 1fr);
  gap: 1.2rem;
  margin: 3rem auto;
  max-width: 1400px; width: 100%;
}
.num-card {
  grid-column: span 2;
  background: #fff;
  padding: 2rem 1.5rem;
  border-top: 3px solid var(--gold-500);
  box-shadow: 0 8px 24px -10px rgba(10,25,41,.1);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
  text-align: left;
}
.num-card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px -15px rgba(10,25,41,.2); }
.num-card.huge { grid-column: span 3; }
.num-card.wide { grid-column: span 4; }
.num-card.hilite {
  background: linear-gradient(135deg, var(--navy-900) 0%, var(--navy-800) 100%);
  border-top-color: var(--gold-400);
  color: var(--sand-50);
}
.num-card.hilite em { color: var(--gold-400); }
.num-card.hilite strong { color: var(--sand-50); }
.num-card.hilite strong sub, .num-card.hilite strong sup { color: var(--gold-400); }
.num-card.hilite p { color: rgba(250,246,238,.75); }
.num-card em {
  font-style: normal; font-size: .68rem; letter-spacing: .3em; font-weight: 600;
  color: var(--gold-700);
}
.num-card strong {
  display: block;
  font-family: var(--f-display);
  font-size: 3.2rem; font-weight: 500;
  color: var(--navy-900);
  line-height: 1.1;
  margin: .8rem 0;
}
.num-card.huge strong { font-size: 5rem; }
.num-card strong sub, .num-card strong sup {
  font-size: 1.2rem; color: var(--gold-600); margin-left: 4px;
  font-weight: 400;
}
.num-card p { font-size: .85rem; color: var(--ink); opacity: .65; }

.areas-table {
  background: #fff;
  max-width: 1400px; margin: 2rem auto 0; width: 100%;
  box-shadow: 0 8px 24px -10px rgba(10,25,41,.1);
  text-align: left;
}
.areas-table .row {
  display: grid; grid-template-columns: 1fr 1.5fr .8fr;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--line);
  font-size: .95rem;
  transition: background .25s ease;
}
.areas-table .row:hover { background: var(--sand-100); }
.areas-table .row.head {
  background: var(--navy-900); color: var(--gold-400);
  font-size: .7rem; letter-spacing: .3em; font-weight: 600;
}
.areas-table .row.head:hover { background: var(--navy-900); }
.areas-table .row.hilite { background: rgba(201,169,97,.08); }
.areas-table .row.total {
  background: var(--navy-900); color: var(--sand-50);
  font-family: var(--f-display); font-size: 1.4rem; font-weight: 500;
}
.areas-table .row.total span:last-child { color: var(--gold-400); }
.areas-table .row > span:last-child { text-align: right; font-weight: 500; }

/* ============ TOWERS ============ */
.section-towers {
  background: var(--navy-900);
  color: var(--sand-50);
}
.towers-head { max-width: 900px; margin-bottom: 4rem; text-align: center; }
.towers-row {
  display: flex; justify-content: center; gap: 3rem;
  align-items: flex-end;
  margin: 2rem 0 4rem;
  perspective: 1000px;
  width: 100%;
}
.tower {
  display: flex; flex-direction: column; align-items: center;
  gap: 1.2rem;
  transform-style: preserve-3d;
  transition: transform .6s var(--ease);
}
.tower:hover { transform: translateY(-8px) rotateY(-8deg); }
.tower-3d {
  width: 100px; height: 280px;
  background: linear-gradient(180deg, var(--sand-200) 0%, var(--sand-300) 100%);
  border-top: 4px solid var(--gold-500);
  position: relative;
  box-shadow: -20px 20px 50px -20px rgba(0,0,0,.5);
  display: flex; flex-direction: column;
}
.tower.small .tower-3d { width: 70px; height: 220px; }
.tower-3d .floors { display: flex; flex-direction: column; height: 100%; }
.tower-3d .floors > div {
  flex: 1;
  border-bottom: 1px solid rgba(10,25,41,.12);
  background: linear-gradient(180deg, transparent 0%, rgba(10,25,41,.05) 100%);
  position: relative;
}
.tower-3d .floors > div::before, .tower-3d .floors > div::after {
  content: ''; position: absolute;
  top: 30%; bottom: 30%; width: 8px;
  background: var(--navy-700);
  opacity: .7;
}
.tower-3d .floors > div::before { left: 18%; }
.tower-3d .floors > div::after { right: 18%; }
.tower-info { text-align: center; }
.t-num {
  display: block;
  font-size: .65rem; letter-spacing: .35em; font-weight: 700;
  color: var(--gold-400);
  margin-bottom: .35rem;
}
.tower-info strong {
  display: block;
  font-family: var(--f-display);
  font-size: 1.4rem; font-weight: 500;
}
.tower-info strong sup { font-size: .75rem; opacity: .7; }
.tower-info em { font-style: normal; font-size: .78rem; opacity: .7; }

.towers-totals {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1px; background: var(--line-light);
  border-top: 1px solid var(--line-light);
  border-bottom: 1px solid var(--line-light);
  width: 100%;
}
.towers-totals > div {
  background: var(--navy-900);
  padding: 2rem; text-align: center;
}
.towers-totals strong {
  display: block;
  font-family: var(--f-display);
  font-size: 3rem; color: var(--gold-400);
}
.towers-totals em { font-style: normal; font-size: .7rem; letter-spacing: .25em; opacity: .7; }

/* ============ MALL ============ */
.section-mall {
  background: var(--charcoal);
  color: var(--sand-50);
  overflow: hidden;
}
.mall-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: bottom center;
  opacity: .25;
  filter: contrast(1.1) saturate(.8);
}
.mall-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.85) 100%);
}
.mall-content {
  position: relative; z-index: 2;
  max-width: 1300px; margin: auto; width: 100%;
}
.mall-stats {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1px; background: var(--line-light);
  margin-top: 3rem;
  border-top: 1px solid var(--line-light);
  border-bottom: 1px solid var(--line-light);
}
.mall-stats > div {
  background: rgba(0,0,0,.4); backdrop-filter: blur(20px);
  padding: 2rem 1.5rem;
}
.mall-stats strong {
  display: block;
  font-family: var(--f-display);
  font-size: 3rem; font-weight: 400;
  color: var(--gold-400);
}
.mall-stats strong sub { font-size: 1rem; opacity: .7; }
.mall-stats em { font-style: normal; font-size: .68rem; letter-spacing: .25em; opacity: .75; }

.mall-mix {
  margin-top: 3rem;
  padding: 2rem;
  background: rgba(0,0,0,.4); backdrop-filter: blur(20px);
  border-left: 3px solid var(--gold-500);
}
.mall-mix h4 {
  font-size: .68rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-400); margin-bottom: 1rem;
}
.mall-mix ul {
  list-style: none;
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: .75rem 2rem;
}
.mall-mix li {
  padding-left: 1.5rem;
  position: relative;
  font-family: var(--f-display); font-size: 1.2rem;
}
.mall-mix li::before {
  content: ''; position: absolute; left: 0; top: .85rem;
  width: 12px; height: 1px; background: var(--gold-500);
}

/* ============ UNITS ============ */
.section-units { background: var(--sand-100); }
.units-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 2rem;
  max-width: 1400px; margin: 3rem auto 0; width: 100%;
  text-align: left;
}
.unit-card {
  background: #fff;
  padding: 2.5rem;
  position: relative;
  border-radius: 4px;
  box-shadow: 0 20px 40px -20px rgba(10,25,41,.2);
}
.unit-card.hilite {
  background: var(--navy-900); color: var(--sand-50);
  transform: translateY(-12px);
}
.unit-card.hilite svg rect { fill: var(--navy-800); stroke: var(--gold-400); }
.unit-card.hilite svg text { fill: var(--gold-400); }
.unit-card.hilite svg line { stroke: var(--gold-400); }
.unit-badge {
  position: absolute; top: -15px; right: 30px;
  background: var(--gold-500); color: var(--navy-900);
  font-weight: 800; font-size: .85rem;
  padding: .5rem .85rem;
  letter-spacing: .1em;
}
.unit-card h3 {
  font-family: var(--f-display);
  font-size: 1.8rem; font-weight: 500; margin-bottom: .35rem;
}
.unit-card .unit-meta { font-size: .85rem; opacity: .7; margin-bottom: 1.5rem; }
.unit-plan {
  margin: 1rem 0 1.5rem;
  overflow: hidden;
  border-radius: 4px;
  background: var(--sand-100);
  border: 1px solid rgba(212,185,120,.22);
  aspect-ratio: 16/11;
}
.unit-plan img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s var(--ease);
}
.unit-card:hover .unit-plan img { transform: scale(1.04); }
.unit-card.hilite .unit-plan { border-color: rgba(212,185,120,.4); }

/* ============ PLANTAS DO CONJUNTO ============ */
.section-floorplans {
  background: var(--navy-900);
  color: var(--sand-50);
  position: relative;
}
.section-floorplans::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 80% 20%, rgba(201,169,97,.10) 0%, transparent 50%),
    radial-gradient(ellipse at 20% 80%, rgba(30,58,95,.4) 0%, transparent 50%);
  pointer-events: none;
}
.floorplans-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin: 3rem auto 0;
  max-width: 1400px; width: 100%;
  position: relative;
  z-index: 2;
}
.fp-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(212,185,120,.25);
  border-radius: 4px;
  overflow: hidden;
  transition: transform .4s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease);
  display: flex; flex-direction: column;
}
.fp-card.fp-wide { grid-column: span 2; }
.fp-card:hover {
  transform: translateY(-6px);
  border-color: var(--gold-500);
  box-shadow: 0 24px 50px -20px rgba(201,169,97,.25);
}
.fp-img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  background: var(--navy-800);
}
.fp-card.fp-wide .fp-img { aspect-ratio: 21/9; }
.fp-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .8s var(--ease);
  filter: brightness(.95) saturate(1.05);
}
.fp-card:hover .fp-img img {
  transform: scale(1.04);
  filter: brightness(1) saturate(1.15);
}
.fp-card figcaption {
  padding: 1.4rem 1.6rem;
  display: flex;
  gap: 1.2rem;
  align-items: flex-start;
  border-top: 1px solid rgba(212,185,120,.2);
  text-align: left;
}
.fp-num {
  font-family: var(--f-display);
  font-size: 2rem;
  font-weight: 500;
  color: var(--gold-400);
  line-height: 1;
  flex-shrink: 0;
}
.fp-card figcaption h4 {
  font-family: var(--f-display);
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--sand-50);
  margin-bottom: .25rem;
  letter-spacing: -.01em;
}
.fp-card figcaption em {
  font-style: normal;
  font-size: .85rem;
  color: rgba(250,246,238,.7);
  line-height: 1.5;
}

@media (max-width: 900px) {
  .floorplans-grid { grid-template-columns: 1fr; }
  .fp-card.fp-wide { grid-column: span 1; }
  .fp-card.fp-wide .fp-img { aspect-ratio: 16/10; }
}
.unit-feats { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.unit-feats li {
  font-size: .85rem;
  padding-left: 1rem; position: relative;
}
.unit-feats li::before {
  content: ''; position: absolute; left: 0; top: .55rem;
  width: 6px; height: 6px; background: var(--gold-500); border-radius: 50%;
}
.unit-count {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  font-family: var(--f-display);
  font-size: 1.5rem;
  color: var(--gold-600);
}
.unit-card.hilite .unit-count { border-top-color: rgba(255,255,255,.15); color: var(--gold-400); }

/* ============ AUDIENCE ============ */
.section-audience {
  background: var(--navy-800);
  color: var(--sand-50);
}
.audience-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin: 3rem auto 0;
  max-width: 1300px; width: 100%;
}
.audience-grid.four { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; max-width: 1450px; }
.audience-grid.four .aud-card { padding: 1.8rem 1.25rem; }
.audience-grid.four .aud-card h3 { font-size: 1.35rem; }
.audience-grid.four .aud-card p { font-size: .82rem; }
.audience-grid.four .aud-percent { width: 110px; height: 110px; }
.audience-grid.four .aud-percent span { font-size: 2rem; }
.aud-card {
  background: rgba(255,255,255,.03); backdrop-filter: blur(20px);
  border: 1px solid var(--line-light);
  padding: 2.5rem;
  text-align: center;
  transition: transform .4s var(--ease), background .4s var(--ease);
}
.aud-card:hover {
  transform: translateY(-6px);
  background: rgba(201,169,97,.08);
  border-color: var(--gold-500);
}
.aud-percent {
  position: relative;
  width: 140px; height: 140px;
  margin: 0 auto 1.5rem;
}
.aud-percent svg { width: 100%; height: 100%; }
.ring-fill { transition: stroke-dashoffset 1.2s var(--ease); }
.aud-percent span {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-display); font-size: 2.6rem; font-weight: 500;
  color: var(--gold-400);
}
.aud-percent span small { font-size: 1rem; margin-left: 2px; opacity: .7; }
.aud-card h3 {
  font-family: var(--f-display); font-size: 1.8rem;
  font-weight: 500;
  margin-bottom: .8rem;
}
.aud-card p { font-size: .9rem; opacity: .75; margin-bottom: 1rem; }
.aud-card em {
  font-style: normal;
  font-size: .7rem; letter-spacing: .25em; font-weight: 600;
  color: var(--gold-400);
}

/* ============ DEMAND ============ */
.section-demand { background: var(--sand-50); }
.demand-flow {
  display: flex; align-items: center; justify-content: center;
  gap: 1.5rem;
  margin: 3rem auto;
  max-width: 1100px;
}
.dflow-step {
  text-align: center;
  flex: 1;
}
.dflow-step .circle {
  width: 110px; height: 110px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--gold-500);
  margin: 0 auto 1rem;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-display);
  font-size: 2rem; color: var(--gold-600); font-weight: 500;
  transition: all .5s var(--ease);
}
.dflow-step.main .circle {
  width: 150px; height: 150px;
  background: var(--navy-900);
  border-color: var(--gold-500);
  color: var(--gold-400);
  font-size: 2.5rem;
  box-shadow: 0 20px 40px -10px rgba(10,25,41,.3);
}
.dflow-step .circle small { font-size: 1rem; }
.dflow-step em { font-style: normal; font-size: .7rem; letter-spacing: .3em; font-weight: 700; color: var(--gold-700); }
.dflow-step strong { display: block; font-family: var(--f-display); font-size: 1.4rem; margin: .4rem 0 .25rem; }
.dflow-step p { font-size: .85rem; opacity: .65; }
.dflow-arrow {
  width: 60px; height: 1px; background: var(--gold-500); position: relative;
}
.dflow-arrow::after {
  content: ''; position: absolute; right: -1px; top: -4px;
  width: 8px; height: 8px;
  border-top: 1px solid var(--gold-500);
  border-right: 1px solid var(--gold-500);
  transform: rotate(45deg);
}
.demand-chart-wrap {
  max-width: 1100px; margin: 2rem auto 0; width: 100%;
  background: #fff; padding: 2rem;
  box-shadow: 0 8px 24px -10px rgba(10,25,41,.1);
}

/* ============ AMENITIES ============ */
.section-amenities {
  background: var(--navy-900);
  color: var(--sand-50);
}
.amen-bars {
  margin: 3rem auto;
  max-width: 1100px; width: 100%;
  text-align: left;
}
.bar-row {
  display: grid; grid-template-columns: 1fr 2.5fr 50px;
  align-items: center; gap: 1.5rem;
  padding: .75rem 0;
  border-bottom: 1px solid var(--line-light);
}
.bar-row > span { font-size: .9rem; }
.bar-row .bar {
  height: 6px;
  background: rgba(255,255,255,.08);
  position: relative; overflow: hidden;
}
.bar-row .bar i {
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 0;
  background: linear-gradient(90deg, var(--gold-600), var(--gold-400));
  transition: width 1.5s var(--ease);
}
.bar-row.in-view .bar i { width: var(--bar-width, 0); }
.bar-row em {
  font-style: normal;
  font-family: var(--f-display);
  font-size: 1.3rem; color: var(--gold-400);
  font-weight: 500;
  text-align: right;
}

.amen-icons {
  display: grid; grid-template-columns: repeat(8, 1fr);
  gap: 1rem;
  margin-top: 3rem;
  max-width: 1300px;
  width: 100%;
}
.amen-icons > div {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(212,185,120,.2);
  padding: 1.6rem 1rem 1.4rem;
  text-align: center;
  transition: all .3s var(--ease);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .9rem;
}
.amen-icons > div:hover {
  background: rgba(201,169,97,.08);
  border-color: var(--gold-500);
  transform: translateY(-4px);
}
.amen-icons svg {
  width: 28px; height: 28px;
  color: var(--gold-400);
  stroke-width: 1.4;
  transition: color .3s ease, transform .4s var(--ease);
}
.amen-icons > div:hover svg {
  color: var(--gold-500);
  transform: scale(1.1);
}
.amen-icons em {
  font-style: normal;
  font-size: .7rem;
  letter-spacing: .12em;
  font-weight: 500;
  color: rgba(250,246,238,.85);
  line-height: 1.35;
}

/* ============ APPROVAL ============ */
.section-approval {
  background: var(--sand-100);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.approval-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 20% 50%, rgba(201,169,97,.2) 0%, transparent 50%),
    radial-gradient(circle at 80% 50%, rgba(30,58,95,.15) 0%, transparent 50%);
}
.approval-inner {
  position: relative; z-index: 2;
  max-width: 1100px;
  text-align: center;
}
.serif-display .huge {
  display: block;
  font-size: clamp(8rem, 20vw, 16rem);
  font-weight: 300;
  color: var(--gold-600);
  line-height: .9;
  letter-spacing: -.04em;
}
.serif-display .huge small {
  font-size: .3em; color: var(--gold-500); font-weight: 400;
}
.serif-display em.huge { font-style: italic; }
.approval-cards {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-top: 4rem;
}
.apc {
  background: #fff;
  padding: 2rem 1rem;
  border-top: 3px solid var(--gold-500);
}
.apc strong {
  display: block;
  font-family: var(--f-display);
  font-size: 3rem; color: var(--navy-900); font-weight: 500;
}
.apc strong small { font-size: 1rem; color: var(--gold-600); }
.apc em {
  display: block;
  font-style: normal;
  font-size: .8rem; opacity: .7; margin-top: .5rem;
}

/* ============ PRICING ============ */
.section-pricing {
  background: var(--navy-800);
  color: var(--sand-50);
}
.price-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin: 4rem auto 3rem;
  max-width: 1300px; width: 100%;
  align-items: stretch;
}
.price-card {
  background: linear-gradient(180deg, rgba(255,255,255,.07) 0%, rgba(255,255,255,.03) 100%);
  border: 1px solid rgba(212,185,120,.35);
  padding: 2.5rem 2rem;
  text-align: center;
  position: relative;
  transition: border-color .4s var(--ease), box-shadow .4s var(--ease), transform .4s var(--ease);
  color: var(--sand-50);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  align-self: stretch;
  min-height: 460px;
}
.price-card:hover {
  border-color: var(--gold-500);
  transform: translateY(-6px);
  box-shadow: 0 20px 40px -20px rgba(0,0,0,.5);
}
.price-card.hilite {
  background: linear-gradient(180deg, rgba(201,169,97,.18) 0%, rgba(201,169,97,.06) 100%);
  border-color: var(--gold-500);
  /* outline em vez de border-width: 2px — outline NÃO entra no box model, mantém geometria igual aos outros cards */
  outline: 1px solid var(--gold-500);
  outline-offset: -1px;
  box-shadow: 0 12px 35px -10px rgba(201,169,97,.3);
}
.price-card.hilite::before {
  content: 'MAIS INDICADO';
  position: absolute;
  top: -12px; left: 50%;
  transform: translateX(-50%);
  background: var(--gold-500);
  color: var(--navy-900);
  font-size: .6rem;
  letter-spacing: .25em;
  font-weight: 800;
  padding: .35rem .9rem;
  border-radius: 2px;
  white-space: nowrap;
  z-index: 2;
}
.price-card.hilite:hover { transform: translateY(-6px); }
.price-card .tag {
  display: inline-block;
  font-size: .65rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-400);
  padding: .4rem .9rem;
  border: 1px solid var(--gold-500);
  border-radius: 2px;
  margin-bottom: 1.5rem;
  background: rgba(10,25,41,.4);
}
.price-card strong {
  display: block;
  font-family: var(--f-display);
  font-size: 2.6rem;
  color: var(--sand-50);
  font-weight: 500;
  line-height: 1;
}
.price-card strong sub {
  font-size: 1rem;
  color: var(--gold-400);
  font-weight: 400;
  margin-left: 2px;
}
.price-card ul {
  list-style: none;
  margin: 1.5rem 0;
  display: flex; flex-direction: column; gap: .35rem;
}
.price-card li {
  font-size: .92rem;
  padding: .55rem 0;
  border-bottom: 1px solid rgba(212,185,120,.18);
  color: var(--sand-50);
}
.price-card li:last-child { border-bottom: none; }
.price-card em {
  font-style: normal;
  font-size: .82rem;
  color: rgba(250,246,238,.85);
  margin-top: 1rem;
  display: block;
  line-height: 1.5;
}
.price-chart-wrap {
  max-width: 1100px; margin: 2.5rem auto 0; width: 100%;
  background: rgba(0,0,0,.3); padding: 2rem 2.2rem;
  backdrop-filter: blur(10px);
  border: 1px solid var(--line-light);
  height: 440px;
  position: relative;
}
.price-chart-wrap canvas { width: 100% !important; height: 100% !important; }

/* ============ VELOCITY ============ */
.section-velocity { background: var(--sand-50); }
.dvv-grid {
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  gap: 2rem;
  margin: 3rem auto;
  max-width: 1300px; width: 100%;
  text-align: left;
}
.dvv-card {
  background: #fff;
  padding: 2.5rem 2rem;
  border-top: 3px solid var(--gold-400);
  box-shadow: 0 8px 24px -10px rgba(10,25,41,.1);
}
.dvv-card.mid { border-top-color: var(--gold-500); }
.dvv-card.big { border-top-color: var(--gold-700); background: var(--navy-900); color: var(--sand-50); }
.dvv-tag {
  display: block;
  font-size: .68rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-700); margin-bottom: 1rem;
}
.dvv-card.big .dvv-tag { color: var(--gold-400); }
.dvv-card strong {
  display: block;
  font-family: var(--f-display);
  font-size: 4rem; font-weight: 500;
  color: var(--navy-900); line-height: 1;
}
.dvv-card.big strong { color: var(--gold-400); }
.dvv-card strong small { font-size: 1.2rem; font-weight: 400; opacity: .6; }
.dvv-card em {
  font-style: normal;
  font-size: .85rem; opacity: .65;
  margin: .8rem 0 1.2rem; display: block;
}
.dvv-card .bar {
  height: 6px; background: rgba(10,25,41,.1); position: relative; overflow: hidden;
}
.dvv-card.big .bar { background: rgba(255,255,255,.1); }
.dvv-card .bar i {
  position: absolute; left: 0; top: 0; bottom: 0;
  background: var(--gold-500);
  width: 0;
  transition: width 1.5s var(--ease);
}
.dvv-card.in-view .bar i { width: var(--bar-width, var(--w, 100%)); }
.velocity-chart-wrap {
  max-width: 1100px; margin: 2rem auto 0; width: 100%;
  background: #fff; padding: 2rem;
  box-shadow: 0 8px 24px -10px rgba(10,25,41,.1);
}

/* ============ ROADMAP ============ */
.section-roadmap {
  background: var(--navy-900);
  color: var(--sand-50);
}
.timeline {
  list-style: none;
  margin: 3rem auto 0;
  max-width: 1000px; width: 100%;
  position: relative;
  text-align: left;
}
.timeline::before {
  content: ''; position: absolute;
  left: 100px; top: 1rem; bottom: 1rem;
  width: 1px; background: var(--line-light);
}
.timeline li {
  display: grid; grid-template-columns: 100px 1fr;
  gap: 3rem;
  padding: 1.5rem 0;
  align-items: baseline;
  position: relative;
}
.timeline li::after {
  content: ''; position: absolute;
  left: 96px; top: 2rem;
  width: 9px; height: 9px;
  background: var(--gold-500); border-radius: 50%;
  border: 3px solid var(--navy-900);
}
.timeline li.final::after { background: var(--sand-50); box-shadow: 0 0 0 5px rgba(201,169,97,.3); }
.t-date {
  font-family: var(--f-display);
  font-size: 2rem; font-weight: 500;
  color: var(--gold-400);
}
.timeline h4 {
  font-family: var(--f-display);
  font-size: 1.4rem; font-weight: 500;
  margin-bottom: .35rem;
}
.timeline p { font-size: .9rem; opacity: .75; }

/* ============ FOUNDER ============ */
.section-founder {
  background:
    radial-gradient(circle at 20% 30%, rgba(201,169,97,.06), transparent 50%),
    var(--sand-50);
}
.founder-grid {
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: 5rem; align-items: center;
  max-width: 1400px; margin: auto; width: 100%;
}
.founder-text { text-align: left; }
.founder-contacts {
  display: flex; flex-direction: column;
  gap: .85rem;
  margin-top: 2.5rem;
  width: 100%;
  max-width: 460px;
  align-items: stretch;
}
.contact-btn {
  display: flex; align-items: center; gap: 1.1rem;
  padding: 1.15rem 1.5rem;
  background: var(--navy-900);
  border: 1px solid var(--navy-900);
  border-radius: 4px;
  text-decoration: none;
  color: var(--sand-50);
  transition: transform .35s var(--ease), background .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
  box-shadow: 0 6px 16px -8px rgba(10,25,41,.35);
  width: 100%;
  box-sizing: border-box;
  margin: 0;
}
.contact-btn:hover {
  transform: translateY(-4px);
  background: linear-gradient(135deg, var(--navy-900) 0%, var(--navy-700) 100%);
  border-color: var(--gold-500);
  box-shadow: 0 18px 36px -12px rgba(201,169,97,.45);
}
.contact-btn svg {
  flex-shrink: 0;
  color: var(--gold-400);
  transition: color .3s ease;
}
.contact-btn:hover svg { color: var(--gold-500); }
.contact-btn.whatsapp:hover svg { color: #25D366; }
.contact-btn.instagram:hover svg { color: #E1306C; }
.contact-btn span { display: flex; flex-direction: column; gap: 3px; }
.contact-btn em {
  font-style: normal;
  font-size: .65rem; letter-spacing: .28em; font-weight: 700;
  color: var(--gold-400);
  text-transform: uppercase;
}
.contact-btn strong {
  font-family: var(--f-display);
  font-size: 1.45rem; font-weight: 500;
  color: var(--sand-50);
  letter-spacing: .01em;
}

.founder-portrait {
  display: flex; justify-content: center;
}
.portrait-frame {
  position: relative;
  width: 100%; max-width: 420px;
  aspect-ratio: 4 / 5;
  border-radius: 4px; overflow: hidden;
  box-shadow:
    0 50px 100px -20px rgba(10,25,41,.4),
    0 0 0 12px rgba(255,255,255,1),
    0 0 0 14px var(--gold-500);
  transform: perspective(1200px) rotateY(-4deg);
  transition: transform .8s var(--ease);
}
.portrait-frame:hover { transform: perspective(1200px) rotateY(0); }
.portrait-frame img {
  width: 100%; height: 100%; object-fit: cover;
  filter: contrast(1.05) saturate(1.05);
}
.portrait-tag {
  position: absolute; left: 1rem; bottom: 1rem;
  background: rgba(255,255,255,.92); backdrop-filter: blur(12px);
  padding: .75rem 1rem;
  border-radius: 3px;
  box-shadow: 0 8px 24px -8px rgba(10,25,41,.3);
}
.portrait-tag strong {
  display: block;
  font-family: var(--f-display);
  font-size: 1.1rem; font-weight: 600; color: var(--navy-900);
}
.portrait-tag em {
  font-style: normal;
  font-size: .65rem; letter-spacing: .22em; font-weight: 600;
  color: var(--gold-700);
}

/* ============ CLOSING ============ */
.section-closing {
  background: var(--charcoal);
  color: var(--sand-50);
  overflow: hidden;
  min-height: 100vh;
  padding: 8rem 6rem 0;
}
.closing-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: brightness(.45) contrast(1.1);
  transform: scale(1.05);
}
.closing-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,25,41,.3) 0%, rgba(10,25,41,.9) 100%);
}
.closing-content {
  position: relative; z-index: 2;
  max-width: 1300px; width: 100%;
}
.closing-cta {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: var(--line-light);
  margin-top: 4rem;
  border-top: 1px solid var(--line-light);
  border-bottom: 1px solid var(--line-light);
}
.closing-cta > div {
  padding: 2rem; background: rgba(0,0,0,.4); backdrop-filter: blur(10px);
}
.closing-cta strong {
  display: block;
  font-family: var(--f-display);
  font-size: 1.6rem; color: var(--gold-400);
}
.closing-cta em {
  font-style: normal;
  font-size: .68rem; letter-spacing: .25em; opacity: .75;
}
.deck-footer {
  position: relative; z-index: 2;
  margin-top: 6rem;
  padding: 1.5rem 0;
  border-top: 1px solid var(--line-light);
  display: flex; justify-content: space-between;
  font-size: .65rem; letter-spacing: .28em; font-weight: 600;
  opacity: .55;
}

/* ============ SOURCE NOTES ============ */
.source-note {
  display: block;
  position: relative; z-index: 2;
  font-size: .72rem;
  letter-spacing: .04em;
  font-weight: 500;
  color: var(--ink);
  opacity: 0.85;
  margin: 2.5rem auto 0;
  padding: 1rem 1.25rem;
  font-style: normal;
  line-height: 1.6;
  max-width: 900px;
  border-top: 1px solid rgba(10,25,41,.15);
  background: transparent;
}
.source-note.light {
  color: rgba(250,246,238,0.9);
  opacity: 1;
  border-top: 1px solid rgba(212,185,120,.25);
}

/* ============ ANIMATION HOOKS ============ */
.reveal-up { opacity: 0; transform: translateY(40px); transition: all 1s var(--ease); }
.reveal-up.in-view { opacity: 1; transform: translateY(0); }

/* ============ NEW SECTIONS ============ */

/* TRANSPARENCY */
.section-transparency { background: var(--sand-100); }
.transparency-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  max-width: 1200px; margin: 3rem auto 0;
  text-align: left;
}
.tr-card {
  background: #fff;
  padding: 2rem 2rem 2rem 3.2rem;
  border-left: 3px solid var(--gold-500);
  position: relative;
  box-shadow: 0 8px 24px -12px rgba(10,25,41,.1);
}
.tr-card.good { border-left-color: #4a8a5a; }
.tr-card.bad  { border-left-color: #b85454; }
.tr-icon {
  position: absolute; top: 1.6rem; left: 1rem;
  font-family: var(--f-display);
  font-size: 1.8rem; font-weight: 600; line-height: 1;
  color: var(--gold-500);
}
.tr-card.good .tr-icon { color: #4a8a5a; }
.tr-card.bad  .tr-icon { color: #b85454; }
.tr-card h4 {
  font-family: var(--f-display);
  font-size: 1.4rem; font-weight: 500;
  color: var(--navy-900);
  margin-bottom: 1rem;
}
.tr-card ul { list-style: none; }
.tr-card li {
  font-size: .9rem;
  padding: .35rem 0 .35rem 1rem;
  position: relative;
  color: var(--ink);
}
.tr-card li::before {
  content: ''; position: absolute; left: 0; top: .85rem;
  width: 6px; height: 1px; background: currentColor; opacity: .4;
}

/* DEMOGRAPHICS / PIB */
.section-demographics { background: var(--sand-50); }
.demo-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  max-width: 1400px; margin: 3rem auto;
  text-align: left; width: 100%;
}
.demo-card {
  background: #fff;
  padding: 1.5rem;
  border-top: 2px solid var(--gold-500);
  box-shadow: 0 6px 18px -10px rgba(10,25,41,.1);
}
.demo-card.hi { background: var(--navy-900); color: var(--sand-50); }
.demo-card.hi em { color: var(--gold-400); }
.demo-card.hi strong { color: var(--gold-400); }
.demo-card.hi p { color: rgba(255,255,255,.6); }
.demo-card em {
  font-style: normal;
  font-size: .62rem; letter-spacing: .25em; font-weight: 700;
  color: var(--gold-700);
}
.demo-card strong {
  display: block;
  font-family: var(--f-display);
  font-size: 2.2rem; font-weight: 500;
  color: var(--navy-900);
  margin: .6rem 0;
  line-height: 1;
}
.demo-card strong sup, .demo-card strong sub, .demo-card strong small {
  font-size: .9rem; color: var(--gold-600); font-weight: 400; margin-left: 2px;
}
.demo-card.hi strong sup, .demo-card.hi strong sub, .demo-card.hi strong small { color: var(--gold-400); }
.demo-card p { font-size: .75rem; opacity: .65; }

.pib-composition {
  max-width: 1100px; margin: 1rem auto 2rem; width: 100%;
  background: #fff; padding: 1.8rem 2rem;
  text-align: left;
  box-shadow: 0 6px 18px -10px rgba(10,25,41,.1);
}
.pib-composition h4 {
  font-size: .7rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-700); margin-bottom: 1rem;
}
.pib-bar {
  display: flex; height: 28px;
  border-radius: 2px; overflow: hidden;
  margin-bottom: .8rem;
}
.pib-seg {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  font-size: .7rem; font-weight: 700;
  color: rgba(255,255,255,.95);
}
.pib-seg:nth-child(1) { background: var(--gold-500); }
.pib-seg:nth-child(2) { background: var(--gold-600); }
.pib-seg:nth-child(3) { background: var(--navy-700); }
.pib-seg:nth-child(4) { background: var(--navy-600); }
.pib-seg:last-child span { color: rgba(255,255,255,.7); font-size: .55rem; }
.pib-legend {
  display: flex; flex-wrap: wrap; gap: 1.2rem;
  font-size: .75rem;
}
.pib-legend span { display: flex; align-items: center; gap: .4rem; }
.pib-legend i { display: inline-block; width: 10px; height: 10px; }

.pib-compare {
  max-width: 1100px; margin: 1rem auto 2rem; width: 100%;
  background: #fff; padding: 2rem;
  text-align: left;
  box-shadow: 0 6px 18px -10px rgba(10,25,41,.1);
}
.pib-compare h4 {
  font-size: .7rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-700); margin-bottom: 1.2rem;
}
.pcc-row {
  display: grid; grid-template-columns: 1.4fr 3fr .7fr;
  align-items: center; gap: 1rem;
  padding: .6rem 0;
  border-bottom: 1px solid var(--line);
}
.pcc-row.hilite { background: linear-gradient(90deg, rgba(201,169,97,.08), transparent); padding-left: .5rem; padding-right: .5rem; border-radius: 2px; }
.pcc-name { font-size: .9rem; }
.pcc-name .badge {
  background: var(--gold-500); color: var(--navy-900);
  font-size: .58rem; padding: 2px 6px; letter-spacing: .15em; font-weight: 700;
  margin-left: .4rem; border-radius: 2px;
}
.pcc-bar { height: 8px; background: rgba(10,25,41,.06); position: relative; overflow: hidden; }
.pcc-bar i {
  position: absolute; left: 0; top: 0; bottom: 0;
  width: var(--w, 0%);
  background: linear-gradient(90deg, var(--navy-700), var(--navy-600));
}
.pcc-val { font-family: var(--f-display); font-size: 1.1rem; font-weight: 600; color: var(--navy-900); text-align: right; font-style: normal; }
.pcc-note { margin-top: 1rem; font-size: .82rem; opacity: .7; }

.airport-block {
  max-width: 1100px; margin: 1rem auto 0; width: 100%;
  background: var(--navy-900); color: var(--sand-50);
  padding: 2rem; text-align: left;
  display: grid; grid-template-columns: 1fr 1.4fr;
  gap: 2rem; align-items: center;
}
.airport-block .eyebrow { color: var(--gold-400); margin-bottom: .8rem; }
.airport-block h3 {
  font-family: var(--f-display); font-size: 2.4rem; font-weight: 500;
  color: var(--gold-400);
  margin-bottom: .5rem;
}
.airport-block p { font-size: .9rem; opacity: .8; }
.ab-right { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.ab-right > div {
  padding: .8rem; border-left: 1px solid var(--line-light);
}
.ab-right strong {
  display: block; font-family: var(--f-display); font-size: 1.6rem; font-weight: 500; color: var(--gold-400);
}
.ab-right em { font-style: normal; font-size: .68rem; letter-spacing: .15em; opacity: .75; }

/* COMPETITION */
.section-competition { background: var(--sand-100); }
.comp-grid {
  display: grid; grid-template-columns: 1fr 1fr 1.2fr;
  gap: 1.5rem;
  max-width: 1400px; margin: 3rem auto;
  text-align: left; width: 100%;
}
.comp-card {
  background: #fff;
  padding: 2rem 1.8rem;
  border-top: 3px solid var(--gold-500);
  box-shadow: 0 8px 24px -12px rgba(10,25,41,.1);
  transition: transform .4s var(--ease);
}
.comp-card:hover { transform: translateY(-4px); }
.comp-card.benchmark { background: var(--navy-900); color: var(--sand-50); border-top-color: var(--gold-400); }
.comp-tag {
  display: inline-block;
  font-size: .58rem; letter-spacing: .25em; font-weight: 700;
  color: var(--gold-700);
  padding: .3rem .6rem;
  border: 1px solid var(--gold-500);
  margin-bottom: 1rem;
}
.comp-card.benchmark .comp-tag { color: var(--gold-400); border-color: var(--gold-400); }
.comp-card h3 {
  font-family: var(--f-display); font-size: 1.5rem; font-weight: 500;
  margin-bottom: .2rem;
}
.comp-card em { font-style: normal; font-size: .82rem; opacity: .7; margin-bottom: 1rem; display: block; }
.comp-card dl { display: grid; gap: .6rem; }
.comp-card dl div { display: grid; grid-template-columns: 110px 1fr; gap: .8rem; font-size: .82rem; }
.comp-card dt { font-size: .65rem; letter-spacing: .2em; font-weight: 700; color: var(--gold-700); padding-top: 2px; }
.comp-card.benchmark dt { color: var(--gold-400); }
.comp-card dd { color: var(--ink); }
.comp-card.benchmark dd { color: rgba(250,246,238,.85); }

.comp-insight {
  max-width: 1400px; margin: 0 auto; width: 100%;
  background: var(--navy-900); color: var(--sand-50);
  padding: 2rem 2.5rem;
  display: grid; grid-template-columns: 80px 1fr;
  gap: 1.5rem; align-items: start;
  text-align: left;
}
.ci-num {
  font-family: var(--f-display); font-size: 4rem;
  color: var(--gold-400); line-height: 1; font-weight: 300;
}
.comp-insight h4 {
  font-size: .7rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-400); margin-bottom: .8rem;
}
.comp-insight ol {
  margin-left: 1.1rem;
  display: grid; gap: .55rem;
}
.comp-insight li { font-size: .9rem; line-height: 1.5; color: rgba(250,246,238,.9); }
.comp-insight li strong { color: var(--gold-400); }

/* REAL ESTATE */
.section-realestate { background: var(--sand-50); }
.re-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 4rem; align-items: center;
  max-width: 1400px; margin: 0 auto; width: 100%;
}
.re-left .lead { max-width: none; }
.re-ref {
  margin-top: 2rem;
  background: #fff;
  padding: 1.5rem 1.8rem;
  border-left: 3px solid var(--gold-500);
  box-shadow: 0 6px 18px -10px rgba(10,25,41,.1);
}
.re-ref span {
  display: block;
  font-size: .65rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-700); margin-bottom: .4rem;
}
.re-ref h4 {
  font-family: var(--f-display); font-size: 1.6rem; font-weight: 500;
  margin-bottom: .5rem;
}
.re-ref p { font-size: .88rem; opacity: .75; }
.re-stat {
  background: #fff;
  padding: 1.8rem 2rem;
  text-align: left;
  box-shadow: 0 6px 18px -10px rgba(10,25,41,.1);
}
.re-stat.big { background: var(--navy-900); color: var(--sand-50); margin-bottom: 1rem; }
.re-stat em {
  font-style: normal;
  font-size: .65rem; letter-spacing: .25em; font-weight: 700;
  color: var(--gold-700);
}
.re-stat.big em { color: var(--gold-400); }
.re-stat strong {
  display: block;
  font-family: var(--f-display);
  font-size: 3rem; font-weight: 500;
  color: var(--navy-900);
  margin: .5rem 0;
  line-height: 1;
}
.re-stat.big strong { font-size: 4rem; color: var(--gold-400); }
.re-stat strong small, .re-stat strong sub {
  font-size: 1rem; color: var(--gold-600); margin-left: 4px;
}
.re-stat.big strong small { color: var(--gold-400); opacity: .8; }
.re-stat p { font-size: .75rem; opacity: .6; }
.re-pair {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 1rem; margin-bottom: 1rem;
}
.re-pair .re-stat strong { font-size: 2.2rem; }
.re-trend {
  background: #fff;
  padding: 1.5rem 1.8rem;
  text-align: left;
  box-shadow: 0 6px 18px -10px rgba(10,25,41,.1);
}
.re-trend h5 {
  font-size: .65rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-700); margin-bottom: 1rem;
}
.trend-axis {
  display: flex; flex-wrap: wrap; gap: .35rem; align-items: center;
  font-family: var(--f-sans); font-size: .8rem;
}
.tpt {
  padding: .35rem .6rem;
  background: var(--sand-100);
  font-size: .72rem;
  border-radius: 2px;
}
.tpt.active {
  background: var(--gold-500); color: var(--navy-900);
  font-weight: 700;
}
.tar { color: var(--gold-600); font-weight: 700; }

/* MIXED USE */
.section-mixeduse { background: var(--navy-900); color: var(--sand-50); }
.mu-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1400px; margin: 3rem auto 0; width: 100%;
  text-align: left;
}
.mu-card {
  background: rgba(255,255,255,.04);
  border: 1px solid var(--line-light);
  padding: 2.2rem 1.8rem;
  transition: all .4s var(--ease);
}
.mu-card:hover { background: rgba(201,169,97,.08); border-color: var(--gold-500); transform: translateY(-4px); }
.mu-card.hilite {
  background: linear-gradient(180deg, rgba(201,169,97,.14), rgba(201,169,97,.04));
  border-color: var(--gold-500);
}
.mu-loc {
  display: block;
  font-size: .6rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-400); margin-bottom: 1rem;
}
.mu-card h3 {
  font-family: var(--f-display); font-size: 1.8rem; font-weight: 500;
  color: var(--sand-50);
  margin-bottom: 1.2rem; line-height: 1.1;
}
.mu-card h3 em { color: var(--gold-400); }
.mu-card ul { list-style: none; display: grid; gap: .5rem; margin-bottom: 1.2rem; }
.mu-card li {
  font-size: .85rem;
  padding-left: 1rem;
  position: relative;
  color: rgba(250,246,238,.85);
}
.mu-card li::before {
  content: ''; position: absolute; left: 0; top: .55rem;
  width: 6px; height: 6px; background: var(--gold-500); border-radius: 50%;
}
.mu-src {
  display: block;
  font-style: normal;
  font-size: .65rem; letter-spacing: .2em;
  color: var(--gold-400); opacity: .8;
  padding-top: 1rem;
  border-top: 1px solid var(--line-light);
}

/* NEIGHBORHOODS */
.section-neighborhoods { background: var(--sand-100); }
.bairros-table {
  background: #fff;
  max-width: 1400px; margin: 3rem auto 0; width: 100%;
  text-align: left;
  box-shadow: 0 8px 24px -12px rgba(10,25,41,.1);
}
.bairros-table .row {
  display: grid; grid-template-columns: 1.3fr .7fr 2.2fr .9fr 1fr;
  padding: 1rem 1.5rem;
  align-items: center;
  border-bottom: 1px solid var(--line);
  font-size: .85rem;
  transition: background .25s ease;
}
.bairros-table .row:hover { background: var(--sand-50); }
.bairros-table .row.head {
  background: var(--navy-900); color: var(--gold-400);
  font-size: .65rem; letter-spacing: .25em; font-weight: 700;
}
.bairros-table .row.head:hover { background: var(--navy-900); }
.bairros-table .row.hi { background: rgba(201,169,97,.05); }
.bairros-table .row.hi:hover { background: rgba(201,169,97,.1); }
.bairros-table .badge {
  display: inline-block;
  font-size: .62rem; letter-spacing: .15em; font-weight: 700;
  padding: .3rem .6rem;
  border-radius: 2px;
}
.bairros-table .badge.alta { background: #4a8a5a; color: #fff; }
.bairros-table .badge.media-alta { background: var(--gold-500); color: var(--navy-900); }
.bairros-table .badge.media { background: var(--sand-200); color: var(--ink); }
.bairros-table .badge.baixa { background: rgba(184, 84, 84, .15); color: #8a3838; border: 1px solid rgba(184,84,84,.3); }

/* FUNNEL */
.section-funnel { background: var(--sand-50); }
.funnel-stack {
  max-width: 1100px; margin: 3rem auto;
  width: 100%; display: grid; gap: .8rem;
  text-align: left;
}
.fn-row {
  display: grid; grid-template-columns: 1fr 1.2fr;
  gap: 2rem; align-items: center;
  background: #fff; padding: 1.2rem 1.6rem;
  box-shadow: 0 6px 18px -12px rgba(10,25,41,.08);
  position: relative;
}
.fn-bar { position: relative; height: 28px; background: rgba(10,25,41,.04); border-radius: 2px; overflow: hidden; }
.fn-bar i {
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 100%;
  background: linear-gradient(90deg, var(--navy-700), var(--navy-600));
}
.fn-row.fn-1 .fn-bar i { width: 100%; background: var(--navy-800); }
.fn-row.fn-2 .fn-bar i { width: 78%; background: var(--navy-700); }
.fn-row.fn-3 .fn-bar i { width: 35%; background: var(--gold-700); }
.fn-row.fn-4 .fn-bar i { width: 22%; background: var(--gold-600); }
.fn-row.plus { background: var(--navy-900); color: var(--sand-50); }
.fn-row.plus .fn-bar { background: rgba(255,255,255,.08); }
.fn-row.fn-5 .fn-bar i { width: 60%; background: var(--gold-500); }
.fn-row.fn-6 .fn-bar i { width: 90%; background: var(--gold-400); }
.fn-info strong {
  display: block;
  font-family: var(--f-display); font-size: 2rem; font-weight: 500;
  color: var(--navy-900); line-height: 1;
}
.fn-row.plus .fn-info strong { color: var(--gold-400); }
.fn-info strong sub { font-size: .8rem; color: var(--gold-600); margin-left: 2px; }
.fn-row.plus .fn-info strong sub { color: var(--gold-400); opacity: .7; }
.fn-info em {
  font-style: normal;
  font-size: .72rem; letter-spacing: .2em; font-weight: 700;
  color: var(--gold-700); display: block; margin: .3rem 0 .2rem;
}
.fn-row.plus .fn-info em { color: var(--gold-400); }
.fn-info p { font-size: .8rem; opacity: .7; }
.fn-row.plus .fn-info p { color: rgba(250,246,238,.7); }

.potential-split {
  max-width: 1400px; margin: 2rem auto 0; width: 100%;
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1rem; text-align: left;
}
.ps-card {
  background: #fff; padding: 1.8rem 1.6rem;
  border-top: 2px solid var(--gold-500);
}
.ps-card.hi { background: var(--navy-900); color: var(--sand-50); }
.ps-card span {
  font-size: .65rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-700); display: block; margin-bottom: .8rem;
}
.ps-card.hi span { color: var(--gold-400); }
.ps-card strong {
  display: block;
  font-family: var(--f-display); font-size: 1.6rem; font-weight: 500;
  color: var(--navy-900); margin-bottom: .8rem;
}
.ps-card.hi strong { color: var(--gold-400); }
.ps-card em { font-style: normal; font-size: .85rem; opacity: .75; }

/* TIMELINE upgrades */
.timeline li { position: relative; }
.timeline .t-when {
  display: block;
  font-size: .65rem; letter-spacing: .2em; font-weight: 700;
  color: var(--gold-400); margin: .2rem 0 .5rem;
}

/* SOURCES */
.section-sources { background: var(--sand-50); }
.sources-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1400px; margin: 3rem auto;
  text-align: left; width: 100%;
}
.src-card {
  background: #fff;
  padding: 1.8rem;
  border-left: 3px solid var(--gold-500);
  box-shadow: 0 6px 18px -12px rgba(10,25,41,.08);
}
.src-card h4 {
  font-size: .65rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-700); margin-bottom: 1rem;
}
.src-card ul { list-style: none; display: grid; gap: .35rem; }
.src-card li {
  font-size: .82rem;
  padding-left: 1rem; position: relative;
  color: var(--ink);
}
.src-card li::before {
  content: ''; position: absolute; left: 0; top: .65rem;
  width: 5px; height: 1px; background: var(--gold-500);
}

/* PORTRAIT no-tag (foto já vem com label embutido) */
.portrait-frame.no-tag .portrait-tag { display: none !important; }

/* LOC POIs WRAP — cards limpos abaixo do mapa */
.loc-pois-wrap {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  max-width: 1400px; margin: 4rem auto 0; width: 100%;
  text-align: left;
}
.lpw-card {
  background: #fff;
  padding: 2rem 2.2rem;
  border-top: 3px solid var(--gold-500);
  box-shadow: 0 10px 28px -14px rgba(10,25,41,.15);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.lpw-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -16px rgba(10,25,41,.25);
}
.lpw-head {
  display: flex; align-items: baseline; gap: .9rem;
  margin-bottom: 1.3rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--line);
}
.lpw-num {
  font-family: var(--f-display);
  font-size: 2.4rem; font-weight: 400;
  color: var(--gold-500);
  line-height: 1;
}
.lpw-head h4 {
  font-size: .72rem; letter-spacing: .3em; font-weight: 700;
  color: var(--navy-900);
  flex: 1;
}
.lpw-head em {
  font-style: normal;
  font-size: .68rem; letter-spacing: .15em;
  color: var(--gold-700);
}
.lpw-list { list-style: none; display: grid; gap: .85rem; }
.lpw-list li {
  display: flex; align-items: center; gap: 1rem;
  padding: .65rem .8rem;
  background: var(--sand-50);
  border-left: 2px solid transparent;
  transition: all .25s var(--ease);
}
.lpw-list li:hover {
  border-left-color: var(--gold-500);
  background: rgba(201,169,97,.06);
  transform: translateX(3px);
}
.lpw-ico {
  font-size: 1.3rem;
  width: 36px; height: 36px;
  background: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--line);
  flex-shrink: 0;
}
.lpw-list li > div { display: flex; flex-direction: column; gap: 1px; }
.lpw-list strong {
  font-family: var(--f-sans);
  font-size: .9rem; font-weight: 600;
  color: var(--navy-900);
}
.lpw-list em {
  font-style: normal;
  font-size: .72rem;
  color: var(--ink); opacity: .6;
}

/* ============ MARKET BLOCK (tabela média de mercado) ============ */
.market-block, .vgv-block {
  max-width: 1100px;
  width: 100%;
  margin: 3rem auto 0;
  text-align: left;
}
.block-title {
  font-family: var(--f-display);
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--sand-50);
  margin-bottom: .5rem;
  letter-spacing: -.01em;
  text-align: center;
}
.block-sub {
  font-size: .82rem;
  color: rgba(250,246,238,.6);
  text-align: center;
  margin-bottom: 1.5rem;
  font-weight: 400;
}
.market-table {
  background: rgba(0,0,0,.3);
  border: 1px solid var(--line-light);
  backdrop-filter: blur(8px);
  border-radius: 2px;
  overflow: hidden;
}
.mt-row {
  display: grid;
  grid-template-columns: 1.6fr 1fr .7fr;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--line-light);
  font-size: .9rem;
  color: var(--sand-50);
  align-items: center;
  transition: background .25s ease;
}
.mt-row:last-child { border-bottom: none; }
.mt-row:hover { background: rgba(201,169,97,.06); }
.mt-row.mt-head {
  background: var(--navy-900);
  color: var(--gold-400);
  font-size: .65rem;
  letter-spacing: .3em;
  font-weight: 700;
  padding: .85rem 1.5rem;
}
.mt-row.mt-head:hover { background: var(--navy-900); }
.mt-row > span:nth-child(2) {
  color: rgba(250,246,238,.7);
  font-size: .85rem;
}
.mt-row .mt-val {
  text-align: right;
  font-family: var(--f-display);
  font-size: 1.25rem;
  color: var(--sand-50);
  font-weight: 500;
}
.mt-row .mt-val.gold { color: var(--gold-400); }
.mt-row.hilite {
  background: linear-gradient(90deg, rgba(201,169,97,.12), rgba(201,169,97,.04));
  border-top: 1px solid rgba(201,169,97,.3);
  border-bottom: 1px solid rgba(201,169,97,.3);
}
.mt-row.hilite > span:first-child {
  font-weight: 700;
  letter-spacing: .08em;
  font-size: .72rem;
  color: var(--gold-400);
}
.mt-row.hilite .mt-val {
  font-size: 1.6rem;
}

/* ============ VGV BLOCK ============ */
.vgv-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 1.5rem;
}
.vgv-card {
  background: rgba(0,0,0,.3);
  border: 1px solid var(--line-light);
  backdrop-filter: blur(8px);
  padding: 1.8rem 1.5rem;
  text-align: center;
  transition: transform .4s var(--ease), border-color .4s var(--ease);
}
.vgv-card:hover {
  transform: translateY(-4px);
  border-color: var(--gold-500);
}
.vgv-card.hilite {
  background: linear-gradient(180deg, rgba(201,169,97,.14) 0%, rgba(201,169,97,.04) 100%);
  border-color: var(--gold-500);
  transform: scale(1.04);
}
.vgv-tag {
  display: inline-block;
  font-size: .62rem; letter-spacing: .3em; font-weight: 700;
  color: var(--gold-400);
  padding: .35rem .75rem;
  border: 1px solid var(--gold-500);
  border-radius: 2px;
  margin-bottom: 1rem;
}
.vgv-total {
  display: block;
  font-family: var(--f-display);
  font-size: 2.6rem;
  font-weight: 500;
  color: var(--sand-50);
  line-height: 1;
  margin-bottom: 1.2rem;
}
.vgv-total small {
  font-size: 1.1rem;
  color: var(--gold-400);
  font-weight: 400;
  margin-left: 2px;
}
.vgv-breakdown {
  display: flex; flex-direction: column;
  gap: .55rem;
  text-align: left;
  border-top: 1px solid var(--line-light);
  padding-top: 1rem;
}
.vgv-breakdown > div {
  display: flex; justify-content: space-between; gap: 1rem;
  font-size: .8rem;
}
.vgv-breakdown em {
  font-style: normal;
  color: rgba(250,246,238,.6);
}
.vgv-breakdown span {
  color: var(--sand-50);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.vgv-foot {
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(201,169,97,.25);
  font-size: .78rem;
  color: rgba(250,246,238,.7);
  text-align: center;
}
.vgv-foot strong {
  font-family: var(--f-display);
  font-size: 1.4rem;
  color: var(--gold-400);
  font-weight: 500;
  display: block;
  margin-top: .25rem;
}

@media (max-width: 900px) {
  .vgv-grid { grid-template-columns: 1fr; }
  .vgv-card.hilite { transform: none; }
  .mt-row {
    grid-template-columns: 1fr;
    gap: .25rem;
    padding: .8rem 1rem;
  }
  .mt-row > span:nth-child(2) { font-size: .75rem; opacity: .8; }
  .mt-row .mt-val { text-align: left; }
  .mt-row.mt-head { display: none; }
}

/* SOURCE NOTE generic — overridden by main rule above */

/* ============ RESPONSIVE ============ */
@media (max-width: 1100px) {
  .section { padding: 6rem 2.5rem; }
  .manifesto-grid, .loc-grid, .section-concept, .founder-grid { grid-template-columns: 1fr; gap: 3rem; }
  .place-stats, .mall-stats, .hero-meta, .closing-cta, .towers-totals { grid-template-columns: repeat(2, 1fr); }
  .numbers-grid { grid-template-columns: repeat(2, 1fr); }
  .num-card, .num-card.huge { grid-column: span 1; }
  .approval-cards { grid-template-columns: repeat(2, 1fr); }
  .audience-grid, .price-grid, .dvv-grid { grid-template-columns: 1fr; }
  .units-grid { grid-template-columns: 1fr; }
  .unit-card.hilite { transform: none; }
  .amen-icons { grid-template-columns: repeat(4, 1fr); }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 220px; }
  .gphoto, .gphoto.big, .gphoto.wide { grid-column: span 1; grid-row: span 1; }
  .towers-row { flex-wrap: wrap; }
  .demand-flow { flex-direction: column; }
  .dflow-arrow { width: 1px; height: 40px; }
  .dflow-arrow::after { transform: rotate(135deg); right: -4px; top: auto; bottom: -1px; }
  #sidenav { display: none; }
  .topbar-meta { display: none; }
  .mall-mix ul { grid-template-columns: 1fr; }
  .timeline::before { left: 50px; }
  .timeline li { grid-template-columns: 50px 1fr; gap: 1.5rem; }
  .timeline li::after { left: 46px; }
  /* New sections responsive */
  .audience-grid.four { grid-template-columns: repeat(2, 1fr); }
  .transparency-grid { grid-template-columns: 1fr; }
  .demo-grid { grid-template-columns: repeat(2, 1fr); }
  .pcc-row { grid-template-columns: 1fr 2fr .8fr; }
  .airport-block { grid-template-columns: 1fr; }
  .ab-right { grid-template-columns: 1fr; }
  .comp-grid { grid-template-columns: 1fr; }
  .comp-insight { grid-template-columns: 1fr; }
  .re-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .mu-grid { grid-template-columns: 1fr; }
  .bairros-table .row { grid-template-columns: 1fr; gap: .4rem; padding: 1rem 1.2rem; }
  .bairros-table .row.head { display: none; }
  .bairros-table .row span:not(.badge) { display: block; font-size: .82rem; }
  .fn-row { grid-template-columns: 1fr; gap: .8rem; }
  .potential-split { grid-template-columns: 1fr; }
  .sources-grid { grid-template-columns: 1fr; }
  .loc-pois-wrap { grid-template-columns: 1fr; gap: 1rem; margin-top: 2.5rem; }
  .lpw-card { padding: 1.5rem 1.5rem; }
  .price-chart-wrap { height: 380px; padding: 1.2rem; }
  .demand-chart-wrap, .velocity-chart-wrap { padding: 1.2rem; }
}

/* ============ PDF MODE ============ */
body.pdf-mode { width: 1440px; margin: 0; cursor: default; }
body.pdf-mode #cursor-dot, body.pdf-mode #cursor-ring { display: none !important; }
body.pdf-mode * { cursor: default !important; }
body.pdf-mode #loader,
body.pdf-mode #sidenav,
body.pdf-mode #topbar,
body.pdf-mode .scroll-cue { display: none !important; }
body.pdf-mode .section {
  width: 1440px !important;
  min-height: 900px !important;
  padding: 3.5rem 4.5rem !important;
  page-break-after: always !important;
  break-after: page !important;
  page-break-inside: avoid !important;
  break-inside: avoid !important;
  box-sizing: border-box;
}
body.pdf-mode .section-hero,
body.pdf-mode .section-closing { min-height: 850px !important; padding: 0 !important; }
body.pdf-mode .closing-content { padding: 4rem 5rem !important; }
body.pdf-mode .mall-bg, body.pdf-mode .hero-bg,
body.pdf-mode .closing-bg, body.pdf-mode .approval-bg { position: absolute; inset: 0; }
body.pdf-mode .reveal-up,
body.pdf-mode .hero-tagline,
body.pdf-mode .hero-title .word,
body.pdf-mode .hero-sub,
body.pdf-mode .hero-meta { opacity: 1 !important; transform: none !important; animation: none !important; }
body.pdf-mode *,
body.pdf-mode *::before,
body.pdf-mode *::after { animation-duration: 0s !important; transition-duration: 0s !important; }
body.pdf-mode .gallery-grid { grid-auto-rows: 150px !important; gap: .5rem !important; grid-template-columns: repeat(6, 1fr) !important; }
body.pdf-mode .gphoto { grid-column: span 3 !important; }
body.pdf-mode .gphoto.big { grid-column: span 4 !important; grid-row: span 2 !important; }
body.pdf-mode .gphoto.wide { grid-column: span 6 !important; }
body.pdf-mode .gphoto img { object-fit: cover; width: 100% !important; height: 100% !important; }
body.pdf-mode .gallery-head { margin-bottom: 1.5rem !important; }
body.pdf-mode .gallery-head .lead { display: none; }
body.pdf-mode .timeline { max-width: 1200px !important; }
body.pdf-mode .timeline li { gap: 2rem !important; padding: .9rem 0 !important; }
body.pdf-mode .timeline p { font-size: .85rem !important; max-width: none !important; }
body.pdf-mode .manifesto-grid,
body.pdf-mode .loc-grid,
body.pdf-mode .section-concept,
body.pdf-mode .founder-grid { grid-template-columns: 1fr 1fr !important; gap: 4rem !important; }
body.pdf-mode .place-stats,
body.pdf-mode .mall-stats,
body.pdf-mode .hero-meta,
body.pdf-mode .closing-cta,
body.pdf-mode .towers-totals { grid-template-columns: repeat(4, 1fr) !important; }
body.pdf-mode .numbers-grid { grid-template-columns: repeat(6, 1fr) !important; }
body.pdf-mode .num-card { grid-column: span 2 !important; }
body.pdf-mode .num-card.huge { grid-column: span 3 !important; }
body.pdf-mode .approval-cards { grid-template-columns: repeat(4, 1fr) !important; }
body.pdf-mode .audience-grid,
body.pdf-mode .price-grid,
body.pdf-mode .dvv-grid { grid-template-columns: repeat(3, 1fr) !important; }
body.pdf-mode .units-grid { grid-template-columns: 1fr 1fr !important; }
body.pdf-mode .unit-card.hilite { transform: translateY(-12px) !important; }
body.pdf-mode .towers-row { flex-wrap: nowrap !important; }
body.pdf-mode .demand-flow { flex-direction: row !important; }
body.pdf-mode .dflow-arrow { width: 60px !important; height: 1px !important; }
body.pdf-mode .timeline::before { left: 100px !important; }
body.pdf-mode .timeline li { grid-template-columns: 100px 1fr !important; gap: 3rem !important; }
body.pdf-mode .timeline li::after { left: 96px !important; }
body.pdf-mode .mall-mix ul { grid-template-columns: repeat(3, 1fr) !important; }
body.pdf-mode .areas-table { display: none; }
body.pdf-mode .demand-chart-wrap,
body.pdf-mode .price-chart-wrap,
body.pdf-mode .velocity-chart-wrap { display: none; }
body.pdf-mode .amen-icons { display: none; }
body.pdf-mode .deck-footer { display: none; }
/* Prevent content from splitting across pages */
body.pdf-mode .num-card,
body.pdf-mode .unit-card,
body.pdf-mode .price-card,
body.pdf-mode .dvv-card,
body.pdf-mode .aud-card,
body.pdf-mode .contact-btn,
body.pdf-mode .timeline li,
body.pdf-mode .tower,
body.pdf-mode .apc,
body.pdf-mode .stat { page-break-inside: avoid !important; break-inside: avoid !important; }
/* Trim a bit of bottom padding in pdf to discourage overflow */
body.pdf-mode .section { padding-bottom: 2.5rem !important; }
body.pdf-mode .numbers-grid { gap: .9rem !important; }
body.pdf-mode .num-card { padding: 1.4rem 1.2rem !important; }
body.pdf-mode .num-card strong { font-size: 2.4rem !important; margin: .4rem 0 !important; }
body.pdf-mode .num-card.huge strong { font-size: 3.8rem !important; }
body.pdf-mode .num-card p { font-size: .78rem !important; }
body.pdf-mode .tower:hover { transform: none; }
body.pdf-mode .concept-floor { transform: none !important; }
body.pdf-mode .manifesto-art, body.pdf-mode .portrait-frame { transform: none !important; }

@page { size: 1440px 900px; margin: 0; }

@media print {
  #loader, #sidenav, #topbar, .scroll-cue, #cursor-dot, #cursor-ring { display: none !important; }
  body { background: #fff; cursor: default; }
}
