:root {
  --bg: #f5f5f7;
  --surface: #ffffff;
  --text: #1d1d1f;
  --muted: #6e6e73;
  --line: rgba(0, 0, 0, 0.08);
  --dark: #050505;
  --brand: #ff1427;
  --radius-xl: 42px;
  --radius-lg: 30px;
  --radius-md: 22px;
  --container: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Inter, Helvetica, Arial, sans-serif;
  background: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1000;
  background: rgba(245, 245, 247, 0.72);
  backdrop-filter: saturate(180%) blur(22px);
  -webkit-backdrop-filter: saturate(180%) blur(22px);
  border-bottom: 1px solid transparent;
  transition: background .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.site-header.scrolled {
  background: rgba(245, 245, 247, 0.9);
  border-color: var(--line);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.035);
}
.nav-shell {
  max-width: var(--container);
  height: 72px;
  margin: 0 auto;
  padding: 0 26px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 32px;
}
.brand { width: 42px; height: 42px; border-radius: 11px; overflow: hidden; }
.brand img { height: 100%; object-fit: cover; }
.desktop-nav { display: flex; gap: 34px; align-items: center; }
.desktop-nav a { font-size: 13px; font-weight: 500; letter-spacing: -0.01em; color: rgba(29,29,31,.78); transition: color .2s ease; }
.desktop-nav a:hover { color: var(--text); }
.nav-cta {
  justify-self: end;
  font-size: 13px;
  font-weight: 650;
  background: var(--text);
  color: #fff;
  padding: 10px 17px;
  border-radius: 999px;
  transition: transform .25s ease, opacity .25s ease;
}
.nav-cta:hover { transform: translateY(-1px); opacity: .9; }
.menu-toggle, .mobile-menu { display: none; }

main { padding-top: 72px; }
.hero {
  position: relative;
  padding: 92px 24px 32px;
  overflow: hidden;
  isolation: isolate;
}
.hero-background {
  position: absolute;
  inset: 0;
  z-index: -3;
  overflow: hidden;
}
.hero-background img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
  transform: scale(1.03);
  filter: saturate(.92) contrast(.98);
}
.hero-background-overlay {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(180deg, rgba(245,245,247,.54) 0%, rgba(245,245,247,.64) 44%, rgba(245,245,247,.80) 100%),
    linear-gradient(90deg, rgba(255,255,255,.20), rgba(255,255,255,.04));
}
.hero-copy,
.hero-visual {
  position: relative;
  z-index: 1;
}
.hero-copy {
  padding: 32px 34px 30px;
  border-radius: 30px;
  background: rgba(255,255,255,.52);
  border: 1px solid rgba(255,255,255,.58);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 20px 60px rgba(0,0,0,.08);
}
.hero-copy p { color: rgba(29,29,31,.78); }

.hero-copy { max-width: 930px; margin: 0 auto 58px; text-align: center; }
.eyebrow { display: inline-block; font-size: 14px; font-weight: 700; letter-spacing: .02em; margin-bottom: 18px; color: var(--brand); }
.eyebrow.light { color: #ff7884; }
.hero h1, .section-intro h2, .story-copy h2, .mosaic-heading h2, .location-copy h2, .contact-card h2 {
  margin: 0;
  font-weight: 700;
  letter-spacing: -0.055em;
  line-height: .96;
}
.hero h1 { font-size: clamp(58px, 8.4vw, 118px); }
.hero-copy p {
  max-width: 720px;
  margin: 28px auto 0;
  font-size: clamp(19px, 2vw, 25px);
  line-height: 1.45;
  letter-spacing: -0.025em;
  color: var(--muted);
}
.hero-actions, .contact-actions { display: flex; justify-content: center; align-items: center; gap: 24px; margin-top: 32px; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; font-size: 16px; font-weight: 600; border-radius: 999px; transition: all .25s ease; }
.btn-dark { padding: 0 24px; background: var(--text); color: #fff; }
.btn-dark:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0,0,0,.15); }
.btn-link { color: #0066cc; gap: 7px; }
.btn-link:hover span, .text-link:hover span { transform: translateX(4px); }
.btn-link span, .text-link span { display: inline-block; transition: transform .2s ease; }

.hero-visual {
  max-width: 1460px;
  height: min(70vw, 810px);
  min-height: 520px;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl);
  box-shadow: 0 32px 90px rgba(0,0,0,.12);
  background: #ddd;
}
.hero-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.35));
  pointer-events: none;
}
.hero-visual img { height: 112%; object-fit: cover; object-position: center 58%; transform: translateY(var(--parallax, 0px)) scale(1.03); will-change: transform; }
.hero-badge {
  position: absolute;
  z-index: 2;
  left: 28px;
  bottom: 28px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 12px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(18px);
  font-size: 13px;
  font-weight: 650;
}
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #2cc46b; box-shadow: 0 0 0 4px rgba(44,196,107,.14); }

.specs {
  max-width: 1160px;
  margin: 54px auto 110px;
  padding: 0 24px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.spec-item { padding: 12px 22px; border-right: 1px solid var(--line); }
.spec-item:last-child { border-right: 0; }
.spec-item strong { display: block; font-size: clamp(28px, 3vw, 42px); line-height: 1; letter-spacing: -0.04em; }
.spec-item span { display: block; margin-top: 9px; font-size: 13px; color: var(--muted); }

.dark { background: var(--dark); color: #fff; }
.experience-section { padding: 118px 24px; }
.section-intro { max-width: var(--container); margin: 0 auto 54px; }
.section-intro h2 { font-size: clamp(52px, 7vw, 96px); }
.cinematic-card {
  max-width: 1420px;
  height: min(70vw, 830px);
  min-height: 560px;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl);
  background: #181818;
}
.cinematic-card img { height: 112%; object-fit: cover; transform: translateY(var(--parallax, 0px)) scale(1.04); will-change: transform; }
.cinematic-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.03), rgba(0,0,0,.1) 45%, rgba(0,0,0,.75)); }
.cinematic-copy { position: absolute; left: clamp(28px, 5vw, 72px); bottom: clamp(30px, 5vw, 72px); z-index: 2; }
.cinematic-copy span { font-size: 14px; font-weight: 650; color: rgba(255,255,255,.72); }
.cinematic-copy h3 { margin: 10px 0 0; font-size: clamp(42px, 6vw, 84px); line-height: .98; letter-spacing: -0.055em; }

.story-section { padding: 140px 24px; background: #fff; }
.story-grid { max-width: var(--container); margin: 0 auto; display: grid; grid-template-columns: .92fr 1.08fr; gap: 86px; align-items: center; }
.story-copy h2, .mosaic-heading h2, .location-copy h2, .contact-card h2 { font-size: clamp(48px, 6vw, 82px); }
.story-copy p, .location-copy p, .contact-card p {
  margin: 28px 0 0;
  max-width: 590px;
  font-size: 20px;
  line-height: 1.55;
  letter-spacing: -0.02em;
  color: var(--muted);
}
.text-link { display: inline-flex; gap: 8px; margin-top: 30px; color: #0066cc; font-size: 16px; font-weight: 600; }
.story-image { height: 720px; overflow: hidden; border-radius: var(--radius-xl); background: #eee; }
.story-image img { height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.8,.2,1); }
.story-image:hover img { transform: scale(1.025); }

.feature-mosaic { padding: 130px 24px 150px; }
.mosaic-heading { max-width: var(--container); margin: 0 auto 60px; }
.mosaic-grid {
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.feature-card { min-height: 500px; position: relative; overflow: hidden; border-radius: var(--radius-lg); background: #fff; }
.feature-card-large { grid-column: 1 / -1; min-height: 690px; color: #fff; }
.feature-card-large::after { content:""; position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,.64), rgba(0,0,0,.06) 65%); }
.feature-card-large img, .photo-card img { position:absolute; inset:0; height:100%; object-fit:cover; transition: transform 1s cubic-bezier(.2,.8,.2,1); }
.feature-card-large:hover img, .photo-card:hover img { transform: scale(1.025); }
.feature-content { position: absolute; z-index: 2; left: clamp(28px,5vw,72px); top: clamp(32px,5vw,66px); max-width: 520px; }
.feature-content span { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; opacity: .7; }
.feature-content h3 { margin: 12px 0 0; font-size: clamp(38px,5vw,66px); letter-spacing: -0.05em; line-height: 1; }
.feature-content p { margin: 18px 0 0; font-size: 17px; line-height: 1.55; opacity: .72; }
.feature-content.compact { position: static; padding: 48px; max-width: 520px; }
.feature-content.compact h3 { font-size: clamp(34px,4vw,54px); }
.neutral { background: #e9eaed; display:flex; flex-direction:column; justify-content:flex-end; }
.neutral .feature-icon { font-size: 170px; line-height: 1; position:absolute; top: 22px; right: 38px; font-weight: 100; color: rgba(0,0,0,.08); }
.black { background: #111; color:#fff; display:flex; flex-direction:column; justify-content:flex-end; }
.feature-number { position:absolute; top: 34px; right: 38px; font-size: 112px; line-height:1; font-weight: 700; letter-spacing:-.08em; color: rgba(255,255,255,.08); }
.photo-card { color:#fff; }
.photo-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 50%, rgba(0,0,0,.45)); }
.photo-label { position:absolute; z-index:2; left:36px; bottom:34px; font-size: 21px; font-weight:650; letter-spacing:-.02em; }

.location-section { padding: 140px 24px; display:grid; grid-template-columns: .85fr 1.15fr; gap: 80px; align-items:center; }
.location-copy { width:100%; max-width: 540px; justify-self:end; }
.location-copy p { color: rgba(255,255,255,.62); }
.location-panel {
  min-height: 650px;
  position: relative;
  border-radius: var(--radius-xl) 0 0 var(--radius-xl);
  overflow:hidden;
  background:
    radial-gradient(circle at 66% 44%, rgba(255,20,39,.17), transparent 18%),
    radial-gradient(circle at 20% 10%, rgba(255,255,255,.07), transparent 28%),
    #101012;
  border: 1px solid rgba(255,255,255,.08);
}
.map-grid { position:absolute; inset:0; opacity:.22; }
.map-grid::before, .map-grid::after, .map-grid span { content:""; position:absolute; background:rgba(255,255,255,.23); border-radius:999px; transform:rotate(-22deg); }
.map-grid::before { width:110%; height:1px; left:-8%; top:32%; }
.map-grid::after { width:110%; height:1px; left:-2%; top:63%; transform:rotate(13deg); }
.map-grid span:nth-child(1){ width:1px;height:120%;left:18%;top:-8%;transform:rotate(8deg); }
.map-grid span:nth-child(2){ width:1px;height:120%;left:44%;top:-8%;transform:rotate(-13deg); }
.map-grid span:nth-child(3){ width:1px;height:120%;left:72%;top:-8%;transform:rotate(18deg); }
.map-grid span:nth-child(4){ width:80%;height:1px;left:5%;top:47%;transform:rotate(-8deg); }
.map-grid span:nth-child(5){ width:74%;height:1px;left:15%;top:77%;transform:rotate(25deg); }
.map-grid span:nth-child(6){ width:64%;height:1px;left:22%;top:20%;transform:rotate(18deg); }
.map-marker { position:absolute; top:44%; left:58%; transform:translate(-50%,-50%); width:80px;height:80px;border-radius:50%;background:rgba(255,20,39,.12);display:grid;place-items:center;animation:pulse 2.2s ease-out infinite; }
.map-marker span { width:18px;height:18px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 8px rgba(255,20,39,.14); }
@keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(255,20,39,.18)}70%{box-shadow:0 0 0 30px rgba(255,20,39,0)}100%{box-shadow:0 0 0 0 rgba(255,20,39,0)} }
.location-stats { position:absolute; left:34px; right:34px; bottom:34px; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.location-stats div { padding:20px; border-radius:20px; background:rgba(255,255,255,.08); backdrop-filter:blur(14px); border:1px solid rgba(255,255,255,.08); }
.location-stats strong { display:block; font-size:24px; }
.location-stats span { display:block; margin-top:5px; font-size:12px; color:rgba(255,255,255,.55); }

.contact-section { padding: 110px 24px 130px; }
.contact-card {
  max-width: var(--container);
  margin:0 auto;
  padding: clamp(52px,8vw,110px) 24px;
  text-align:center;
  border-radius: var(--radius-xl);
  background: #fff;
  box-shadow: 0 24px 70px rgba(0,0,0,.05);
}
.contact-card p { margin-left:auto; margin-right:auto; }
.contact-card small { display:block; max-width:720px; margin:34px auto 0; font-size:11px; line-height:1.5; color:#9a9a9f; }

footer {
  max-width: var(--container);
  margin:0 auto;
  padding: 40px 24px 52px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns: auto 1fr auto;
  gap:28px;
  align-items:center;
  font-size:12px;
  color:var(--muted);
}
.footer-brand { width:36px;height:36px;border-radius:9px;overflow:hidden; }
.footer-brand img { height:100%;object-fit:cover; }
.footer-links { display:flex;gap:20px;justify-self:end; }
.footer-links a:hover { color:var(--text); }
.copyright { grid-column:2 / -1; }

.reveal { opacity:0; transform:translateY(34px); transition: opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1); }
.reveal.revealed { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:.12s; }

@media (max-width: 980px) {
  .desktop-nav, .nav-cta { display:none; }
  .nav-shell { grid-template-columns: 1fr auto; }
  .menu-toggle { justify-self:end; width:38px;height:38px;border:0;background:transparent;padding:9px;display:flex;flex-direction:column;justify-content:center;gap:6px;cursor:pointer; }
  .menu-toggle span { display:block;width:100%;height:1.5px;background:var(--text);transition:transform .3s ease; }
  .menu-toggle.active span:first-child { transform:translateY(3.75px) rotate(45deg); }
  .menu-toggle.active span:last-child { transform:translateY(-3.75px) rotate(-45deg); }
  .mobile-menu { display:flex; position:fixed; left:0; right:0; top:72px; height:calc(100vh - 72px); padding: 34px 26px; background:rgba(245,245,247,.98); backdrop-filter:blur(24px); flex-direction:column; gap:0; opacity:0; pointer-events:none; transform:translateY(-12px); transition:all .3s ease; }
  .mobile-menu.open { opacity:1;pointer-events:auto;transform:translateY(0); }
  .mobile-menu a { padding:18px 2px; font-size:29px;font-weight:650;letter-spacing:-.04em;border-bottom:1px solid var(--line); }
  .mobile-menu .mobile-cta { margin-top:24px; padding:15px 18px; font-size:16px;text-align:center;color:#fff;background:var(--text);border-radius:999px;border:0; }
  .specs { grid-template-columns:repeat(2,1fr); }
  .spec-item:nth-child(2){ border-right:0; }
  .spec-item:nth-child(-n+2){ border-bottom:1px solid var(--line); padding-bottom:28px; }
  .spec-item:nth-child(n+3){ padding-top:28px; }
  .story-grid { grid-template-columns:1fr; gap:46px; }
  .story-copy { max-width:760px; }
  .story-image { height:min(100vw,720px); }
  .location-section { grid-template-columns:1fr; gap:46px; }
  .location-copy { justify-self:start; max-width:760px; }
  .location-panel { border-radius:var(--radius-xl); min-height:600px; }
  footer { grid-template-columns:auto 1fr; }
  .footer-links { grid-column:1 / -1; justify-self:start; }
  .copyright { grid-column:1 / -1; }
}

@media (max-width: 680px) {
  :root { --radius-xl: 28px; --radius-lg: 24px; }
  .nav-shell { height:64px;padding:0 18px; }
  .brand { width:38px;height:38px; }
  .mobile-menu { top:64px;height:calc(100vh - 64px); }
  main { padding-top:64px; }
  .hero { padding:62px 14px 20px; }
  .hero-copy { margin-bottom:38px;padding:0 10px; }
  .hero h1 { font-size:clamp(52px,17vw,78px); }
  .hero-copy p { font-size:18px;margin-top:22px; }
  .hero-actions, .contact-actions { flex-direction:column;gap:16px;margin-top:26px; }
  .btn-dark { min-width:190px; }
  .hero-visual { height:76vh;min-height:520px;border-radius:26px; }
  .hero-visual img { object-position:61% center; }
  .hero-badge { left:16px;bottom:16px;padding:10px 13px;font-size:12px; }
  .specs { margin:34px auto 78px;padding:0 18px;gap:0; }
  .spec-item { padding:18px 12px; }
  .spec-item strong { font-size:27px; }
  .experience-section { padding:84px 14px; }
  .section-intro { padding:0 10px;margin-bottom:34px; }
  .section-intro h2, .story-copy h2, .mosaic-heading h2, .location-copy h2, .contact-card h2 { font-size:clamp(43px,13vw,62px); }
  .cinematic-card { min-height:610px;border-radius:26px; }
  .cinematic-card img { object-position:61% center; }
  .cinematic-copy { left:24px;bottom:28px;right:24px; }
  .cinematic-copy h3 { font-size:45px; }
  .story-section { padding:88px 18px; }
  .story-grid { gap:34px; }
  .story-copy p, .location-copy p, .contact-card p { font-size:17px; }
  .story-image { height:520px;border-radius:26px; }
  .feature-mosaic { padding:88px 14px 96px; }
  .mosaic-heading { padding:0 10px;margin-bottom:36px; }
  .mosaic-grid { grid-template-columns:1fr; gap:14px; }
  .feature-card-large { grid-column:auto; min-height:620px; }
  .feature-card { min-height:470px; }
  .feature-card-large img { object-position:65% center; }
  .feature-card-large::after { background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.76)); }
  .feature-content { left:25px;right:25px;top:auto;bottom:30px; }
  .feature-content h3 { font-size:43px; }
  .feature-content.compact { padding:34px 28px; }
  .feature-content.compact h3 { font-size:40px; }
  .location-section { padding:88px 14px; }
  .location-copy { padding:0 10px; }
  .location-panel { min-height:620px;border-radius:26px; }
  .location-stats { grid-template-columns:1fr;left:18px;right:18px;bottom:18px; }
  .location-stats div { padding:15px 17px;display:flex;align-items:center;justify-content:space-between; }
  .location-stats strong { font-size:20px; }
  .contact-section { padding:76px 14px 88px; }
  .contact-card { padding:62px 22px;border-radius:26px; }
  footer { margin:0 18px;padding:34px 0 44px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity:1;transform:none; }
}

/* Grand Reserva Jatobá — ajustes apenas para as imagens reais do empreendimento */
.hero-visual img { object-position: center 52%; }
.cinematic-card img { object-position: center center; }
.story-image img { object-position: center center; }
.feature-card-large img { object-position: center center; }

.location-panel.location-photo {
  background: #101012;
}
.location-photo > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.location-photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.02) 38%, rgba(0,0,0,.72) 100%);
  pointer-events: none;
}

@media (max-width: 680px) {
  .hero-visual img { object-position: 55% center; }
  .cinematic-card img { object-position: 50% center; }
  .feature-card-large img { object-position: 50% center; }
}

@media (max-width: 700px) {
  .hero { padding-top: 84px; }
  .hero-background img { object-position: 58% center; }
  .hero-background-overlay {
    background: linear-gradient(180deg, rgba(245,245,247,.58), rgba(245,245,247,.74) 58%, rgba(245,245,247,.88));
  }
  .hero-copy { padding: 26px 18px 24px; border-radius: 24px; }
}
