/* =========================================================
   Veredas por Lotisa · atendimento Adamante
   Tokens: Adamante Design System (manual de identidade)
   ========================================================= */

@font-face { font-family: "GC Mozarella"; src: url("../fonts/GCMozarella-Regular.otf") format("opentype"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "GC Mozarella"; src: url("../fonts/GCMozarella-Italic.otf") format("opentype"); font-weight: 400; font-style: italic; font-display: swap; }

:root {
  /* Cores Adamante */
  --ada-azul: #142239;
  --ada-azul-claro: #0F598C;
  --ada-ambar: #B25017;
  --ada-clareza: #F4F5F0;
  --ada-black: #101820;
  --ada-azul-95: #1d2c44;
  --ada-azul-80: #3a465c;
  --ada-azul-60: #6e7689;
  --ada-azul-40: #a3a8b4;
  --ada-bone: #ECEDE5;
  --ada-line: #D8D9CF;
  --ada-line-strong: #C2C4B8;
  --ada-ambar-tint: #F1DDCB;
  --ada-ambar-hover: #9a4413;

  /* Semântica */
  --bg: var(--ada-clareza);
  --bg-band: var(--ada-bone);
  --bg-deep: var(--ada-azul);
  --fg: var(--ada-azul);
  --fg-muted: var(--ada-azul-80);
  --fg-soft: var(--ada-azul-60);
  --fg-on-deep: var(--ada-clareza);
  --fg-on-deep-soft: rgba(244, 245, 240, .72);
  --accent: var(--ada-ambar);
  --border: var(--ada-line);
  --border-strong: var(--ada-line-strong);
  --hairline-on-deep: rgba(244, 245, 240, .18);

  /* Tipografia */
  --font-serif: "GC Mozarella", "Cormorant Garamond", Georgia, serif;
  --font-sans: "Livvic", "Inter", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --t-display: clamp(44px, 6.4vw, 96px);
  --t-h2: clamp(32px, 4vw, 54px);
  --t-h3: clamp(22px, 2vw, 28px);
  --t-lead: clamp(17px, 1.3vw, 19px);
  --t-body: 16px;
  --t-sm: 14px;
  --t-caption: 12px;
  --t-eyebrow: 11px;
  --tr-display: -.015em;
  --tr-eyebrow: .2em;
  --tr-button: .08em;

  /* Espaço, raios, sombras, movimento */
  --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 96px; --s-10: 128px;
  --r-0: 0px;
  --sh-3: 0 18px 40px -16px rgba(20, 34, 57, .28);
  --ease: cubic-bezier(.16, .84, .32, 1);
  --ease-standard: cubic-bezier(.32, .08, .24, 1);
  --dur-fast: 160ms;
  --dur-base: 240ms;
  --dur-slow: 420ms;

  --topbar-h: 36px;
  --header-h: 80px;
  --gutter: 16px;
}
@media (min-width: 768px) { :root { --gutter: 40px; } }

/* ===== Base ===== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font-family: var(--font-sans); font-size: var(--t-body); line-height: 1.6;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; cursor: pointer; }
::selection { background: var(--ada-azul); color: var(--ada-clareza); }
h1, h2 { font-family: var(--font-serif); font-weight: 400; letter-spacing: var(--tr-display); margin: 0 0 var(--s-5); text-wrap: balance; }
h1 { font-size: var(--t-display); line-height: .98; }
h2 { font-size: var(--t-h2); line-height: 1.06; }
h3 { font-family: var(--font-serif); font-weight: 400; font-size: var(--t-h3); line-height: 1.15; margin: 0 0 var(--s-3); }
p { margin: 0 0 1em; }
strong, b { font-weight: 600; }
.lead { font-size: var(--t-lead); line-height: 1.65; color: var(--fg-muted); max-width: 58ch; }
.note { font-size: var(--t-caption); color: var(--fg-soft); }
.container { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 var(--gutter); }
.eyebrow {
  display: flex; align-items: center; gap: var(--s-3);
  font-size: var(--t-eyebrow); font-weight: 500; letter-spacing: var(--tr-eyebrow); text-transform: uppercase;
  color: var(--accent); margin: 0 0 var(--s-5);
}
.eyebrow--light { color: var(--fg-on-deep-soft); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

/* ===== Botões (retilíneos) ===== */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  min-height: 52px; padding: 0 var(--s-6);
  border: 1px solid transparent; border-radius: var(--r-0);
  font-family: var(--font-sans); font-size: 13px; font-weight: 600; letter-spacing: var(--tr-button); text-transform: uppercase;
  text-decoration: none; white-space: nowrap;
  transition: background var(--dur-base) var(--ease-standard), color var(--dur-base) var(--ease-standard), border-color var(--dur-base) var(--ease-standard);
}
.btn--block { width: 100%; }
.btn--ambar { background: var(--ada-ambar); color: var(--ada-clareza); }
.btn--ambar:hover { background: var(--ada-ambar-hover); }
.btn--azul { background: var(--ada-azul); color: var(--ada-clareza); }
.btn--azul:hover { background: var(--ada-azul-95); }
.btn--ghost { border-color: rgba(244, 245, 240, .5); color: var(--ada-clareza); background: transparent; }
.btn--ghost:hover { background: var(--ada-clareza); color: var(--ada-azul); }
.ico { width: 18px; height: 18px; flex: none; }
.link, .link-light { background: none; border: 0; padding: 0; text-decoration: underline; text-underline-offset: 3px; }
.link { color: var(--ada-azul-claro); }
.link-light { color: var(--fg-on-deep-soft); font-size: var(--t-sm); }

/* ===== Topbar ===== */
.topbar { background: var(--ada-black); color: var(--fg-on-deep-soft); font-size: var(--t-caption); letter-spacing: .04em; height: var(--topbar-h); position: relative; z-index: 51; }
.topbar__inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); }
.topbar strong { color: var(--ada-clareza); font-weight: 500; }
.topbar__wa { text-decoration: none; color: var(--ada-clareza); }
.topbar__wa:hover { color: var(--ada-ambar-tint); }
@media (max-width: 760px) { .topbar { display: none; } }

/* ===== Header ===== */
.header {
  position: absolute; top: var(--topbar-h); left: 0; right: 0; z-index: 50; height: var(--header-h);
  border-bottom: 1px solid var(--hairline-on-deep);
  transition: background var(--dur-slow) var(--ease-standard), border-color var(--dur-slow);
}
.header.is-scrolled { position: fixed; top: 0; background: var(--ada-clareza); border-bottom-color: var(--border); animation: headerIn var(--dur-slow) var(--ease) both; }
@keyframes headerIn { from { transform: translateY(-100%); } to { transform: none; } }
@media (max-width: 760px) { .header { top: 0; } }
.header__inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--s-5); }

.brand { display: flex; align-items: center; gap: var(--s-4); text-decoration: none; flex: none; }
.brand__veredas, .brand__ada { position: relative; display: block; }
.brand__veredas { width: 132px; }
.brand__ada { width: 104px; }
.brand img { width: 100%; transition: opacity var(--dur-slow); }
.brand .on-light { position: absolute; inset: 0; opacity: 0; }
.brand__sep { width: 1px; height: 30px; background: var(--hairline-on-deep); }
.header.is-scrolled .brand .on-dark, .header.is-open .brand .on-dark { opacity: 0; }
.header.is-scrolled .brand .on-light, .header.is-open .brand .on-light { opacity: 1; }
.header.is-scrolled .brand__sep, .header.is-open .brand__sep { background: var(--border-strong); }

.nav { display: flex; align-items: center; gap: var(--s-6); }
.nav a:not(.btn) { color: var(--ada-clareza); text-decoration: none; font-size: 13px; letter-spacing: .06em; position: relative; padding: 6px 0; }
.nav a:not(.btn)::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform var(--dur-base) var(--ease); }
.nav a:not(.btn):hover::after { transform: scaleX(1); }
.header.is-scrolled .nav a:not(.btn) { color: var(--fg); }
.nav__cta { min-height: 44px; padding: 0 var(--s-5); }

.burger { display: none; background: none; border: 0; width: 44px; height: 44px; padding: 12px 8px; flex-direction: column; justify-content: center; gap: 8px; }
.burger span { display: block; height: 1px; background: var(--ada-clareza); transition: transform var(--dur-base); }
.header.is-scrolled .burger span, .header.is-open .burger span { background: var(--fg); }

@media (max-width: 1140px) {
  .burger { display: flex; }
  .nav {
    position: fixed; top: var(--header-h); left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0;
    background: var(--ada-clareza); padding: var(--s-2) var(--gutter) var(--s-6); border-bottom: 1px solid var(--border);
    opacity: 0; pointer-events: none; transform: translateY(-8px); transition: opacity var(--dur-base), transform var(--dur-base);
  }
  .nav a:not(.btn) { color: var(--fg); padding: var(--s-4) 0; border-bottom: 1px solid var(--border); font-size: 15px; }
  .nav a:not(.btn)::after { display: none; }
  .nav__cta { margin-top: var(--s-5); min-height: 52px; }
  .header.is-open { position: fixed; top: 0; background: var(--ada-clareza); border-bottom-color: var(--border); }
  .header.is-open .nav { opacity: 1; pointer-events: auto; transform: none; }
  .header.is-open .burger span:nth-child(1) { transform: translateY(4.5px) rotate(45deg); }
  .header.is-open .burger span:nth-child(2) { transform: translateY(-4.5px) rotate(-45deg); }
}
@media (max-width: 420px) { .brand__veredas { width: 110px; } .brand__ada { width: 84px; } .brand { gap: var(--s-3); } }

/* ===== Hero ===== */
.hero { position: relative; min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; color: var(--ada-clareza); overflow: hidden; }
.hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 35% center; animation: heroZoom 20s var(--ease) both; }
.hero__overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(16, 24, 32, .82) 0%, rgba(20, 34, 57, .45) 50%, rgba(20, 34, 57, .05) 100%),
    linear-gradient(180deg, rgba(16, 24, 32, .55) 0%, rgba(16, 24, 32, 0) 30%, rgba(16, 24, 32, .6) 100%);
}
.hero__content { position: relative; padding-top: calc(var(--topbar-h) + var(--header-h) + var(--s-8)); padding-bottom: var(--s-8); }
.hero h1 { max-width: 13ch; color: var(--ada-clareza); }
.hero__sub { max-width: 50ch; font-size: var(--t-lead); font-weight: 300; color: rgba(244, 245, 240, .88); margin-bottom: var(--s-6); }
.hero__ctas { display: flex; flex-wrap: wrap; gap: var(--s-3); }
.hero__facts { position: relative; border-top: 1px solid var(--hairline-on-deep); background: rgba(16, 24, 32, .55); backdrop-filter: blur(10px); }
.hero__facts-grid { display: grid; grid-template-columns: repeat(5, 1fr); }
.hero__facts-grid > div { padding: var(--s-5) var(--s-5) var(--s-5) 0; display: flex; flex-direction: column; gap: 2px; }
.hero__facts-grid > div + div { padding-left: var(--s-5); border-left: 1px solid var(--hairline-on-deep); }
.hero__facts span { font-size: var(--t-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--fg-on-deep-soft); }
.hero__facts b { font-family: var(--font-serif); font-weight: 400; font-size: clamp(18px, 1.7vw, 24px); }
.hero__price b { color: var(--ada-ambar-tint); }
@keyframes heroZoom { from { transform: scale(1.08); } to { transform: scale(1); } }
@media (max-width: 960px) {
  .hero__facts-grid { grid-template-columns: 1fr 1fr; }
  .hero__facts-grid > div, .hero__facts-grid > div + div { padding: var(--s-4) var(--s-3) var(--s-4) 0; border-left: 0; border-bottom: 1px solid var(--hairline-on-deep); }
  .hero__facts-grid > div:nth-child(even) { padding-left: var(--s-4); border-left: 1px solid var(--hairline-on-deep); }
  .hero__facts-grid > .hero__price { grid-column: 1 / -1; border-bottom: 0; }
}
@media (max-width: 760px) { .hero__content { padding-top: calc(var(--header-h) + var(--s-7)); padding-bottom: var(--s-6); } }

/* ===== Seções ===== */
.section { padding: clamp(80px, 11vw, 144px) 0; position: relative; }
.section--band { background: var(--bg-band); }
.section--deep { background: var(--bg-deep) url("../img/adamante/padrao-grafico.webp") center / cover; color: var(--fg-on-deep); }
.section--deep .lead, .section--deep .note { color: var(--fg-on-deep-soft); }
.section__head { max-width: 780px; margin-bottom: clamp(48px, 6vw, 72px); }
.section__head--row { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-5); flex-wrap: wrap; }
.section__head--row h2 { margin: 0; }
.subhead { font-size: var(--t-h3); margin: var(--s-9) 0 var(--s-5); }

/* ===== Empreendimento ===== */
.manifesto { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(40px, 7vw, 112px); align-items: center; }
.manifesto__img { margin: 0; }
.manifesto__img img { width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: 62% center; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--border-strong); margin-top: var(--s-7); }
.stats div { padding: var(--s-5) var(--s-3) 0 0; }
.stats b { display: block; font-family: var(--font-serif); font-weight: 400; font-size: clamp(36px, 4vw, 56px); line-height: 1; }
.stats span { font-size: var(--t-sm); color: var(--fg-soft); }
.spec { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; border-top: 1px solid var(--border-strong); }
.spec div { padding: var(--s-4) var(--s-5) var(--s-4) 0; border-bottom: 1px solid var(--border); }
.spec dt { font-size: var(--t-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--fg-soft); margin-bottom: 4px; }
.spec dd { margin: 0; font-size: 15px; }
@media (max-width: 900px) {
  .manifesto { grid-template-columns: 1fr; }
  .manifesto__img { order: -1; }
  .manifesto__img img { aspect-ratio: 4/3; }
  .spec { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) { .stats { grid-template-columns: 1fr 1fr; row-gap: var(--s-4); } .spec { grid-template-columns: 1fr; } }

/* ===== Diferenciais ===== */
.diff { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-7) var(--s-5); }
.diff__item--lg { grid-column: span 4; display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(24px, 4vw, 64px); align-items: center; margin-bottom: var(--s-5); }
.diff__item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; margin-bottom: var(--s-5); }
.diff__item--lg img { aspect-ratio: 16/9; margin: 0; }
.diff__item--lg h3 { font-size: clamp(28px, 3vw, 40px); }
.diff__n { display: block; font-size: var(--t-caption); letter-spacing: var(--tr-eyebrow); color: var(--accent); margin-bottom: var(--s-3); padding-bottom: var(--s-3); border-bottom: 1px solid var(--border-strong); }
.diff__item p { color: var(--fg-muted); font-size: 15px; }
@media (max-width: 1000px) { .diff { grid-template-columns: 1fr 1fr; } .diff__item--lg { grid-column: span 2; grid-template-columns: 1fr; } }
@media (max-width: 560px) { .diff { grid-template-columns: 1fr; } .diff__item--lg { grid-column: auto; } }

/* ===== Plantas (abas) ===== */
.status { display: inline-flex; align-items: center; gap: var(--s-3); font-size: var(--t-sm); color: var(--fg-on-deep-soft); margin: 0; }
.status__dot { width: 8px; height: 8px; background: var(--ada-ambar); }
.tabs__list { display: flex; border-bottom: 1px solid var(--hairline-on-deep); margin-bottom: var(--s-7); overflow-x: auto; scrollbar-width: none; }
.tabs__list::-webkit-scrollbar { display: none; }
.tabs__list button {
  background: none; border: 0; padding: var(--s-4) 0; margin-right: var(--s-6);
  font-size: 14px; letter-spacing: .04em; color: var(--fg-on-deep-soft); white-space: nowrap; position: relative;
}
.tabs__list button::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--ada-ambar); transform: scaleX(0); transform-origin: left; transition: transform var(--dur-base) var(--ease); }
.tabs__list button[aria-selected="true"] { color: var(--ada-clareza); }
.tabs__list button[aria-selected="true"]::after { transform: scaleX(1); }
.plan { display: grid; grid-template-columns: 1.55fr 1fr; gap: clamp(24px, 4vw, 64px); align-items: start; }
.plan[hidden] { display: none; }
.plan__img { position: relative; display: block; padding: 0; border: 1px solid var(--hairline-on-deep); background: var(--ada-azul-95); cursor: zoom-in; width: 100%; }
.plan__img { padding: clamp(16px, 3vw, 40px) clamp(16px, 3vw, 40px) clamp(48px, 5vw, 64px); }
.plan__img img { width: auto; max-width: 100%; height: auto; max-height: 400px; margin: 0 auto; }
.plan__zoom { position: absolute; right: 0; bottom: 0; padding: var(--s-2) var(--s-4); background: var(--ada-clareza); color: var(--ada-azul); font-size: var(--t-caption); letter-spacing: var(--tr-button); text-transform: uppercase; }
.plan__tag { font-size: var(--t-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--fg-on-deep-soft); margin-bottom: var(--s-2); }
.plan__area { font-size: clamp(40px, 4.4vw, 60px); margin-bottom: var(--s-4); }
.plan__area small { font-family: var(--font-sans); font-size: var(--t-sm); color: var(--fg-on-deep-soft); letter-spacing: .04em; }
.plan__desc { color: var(--fg-on-deep-soft); }
.plan__key { list-style: none; padding: 0; margin: 0 0 var(--s-5); display: flex; flex-wrap: wrap; gap: var(--s-2); }
.plan__key li { border: 1px solid var(--hairline-on-deep); padding: 6px 12px; font-size: 13px; }
.rooms { width: 100%; border-collapse: collapse; font-size: 14px; margin-bottom: var(--s-5); }
.rooms caption { text-align: left; font-size: var(--t-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--fg-on-deep-soft); padding-bottom: var(--s-2); }
.rooms th, .rooms td { padding: 9px 0; border-bottom: 1px solid var(--hairline-on-deep); }
.rooms th { text-align: left; font-weight: 400; color: var(--fg-on-deep-soft); }
.rooms td { text-align: right; }
.plan__price { font-family: var(--font-serif); font-size: clamp(30px, 3vw, 40px); line-height: 1.1; margin-bottom: var(--s-5); }
.plan__price span { display: block; font-family: var(--font-sans); font-size: var(--t-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--ada-ambar-tint); margin-bottom: 4px; }
@media (max-width: 960px) { .plan { grid-template-columns: 1fr; } }

/* ===== Lazer ===== */
.gallery { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(200px, 20vw, 280px); gap: var(--s-2); }
.g { position: relative; padding: 0; border: 0; overflow: hidden; cursor: zoom-in; background: var(--ada-azul); }
.g--wide { grid-column: span 2; }
.g img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.g:hover img { transform: scale(1.04); }
.g span { position: absolute; left: 0; bottom: 0; padding: var(--s-2) var(--s-4); background: var(--ada-clareza); color: var(--fg); font-size: var(--t-caption); letter-spacing: var(--tr-button); text-transform: uppercase; }
@media (max-width: 960px) { .gallery { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .gallery { grid-template-columns: 1fr; grid-auto-rows: 230px; } .g--wide { grid-column: auto; } }

/* ===== Apartamentos ===== */
.apts { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-2); background: var(--bg-band); padding: 0 0 var(--s-2); }
.apts__item { margin: 0; position: relative; }
.apts__item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.apts__item figcaption { position: absolute; left: 0; bottom: 0; padding: var(--s-3) var(--s-5); background: var(--ada-azul); color: var(--ada-clareza); font-family: var(--font-serif); font-size: 20px; }
@media (max-width: 760px) { .apts { grid-template-columns: 1fr; } }

/* ===== Planta interativa do lazer ===== */
.lmap { margin-top: var(--s-9); }
.lmap__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-5); flex-wrap: wrap; padding-bottom: var(--s-5); border-bottom: 1px solid var(--fg); margin-bottom: var(--s-6); }
.lmap__title { font-size: clamp(26px, 2.6vw, 36px); margin: 0 0 4px; }
.lmap__hint { margin: 0; color: var(--fg-soft); font-size: var(--t-sm); }
.lmap__tabs { display: flex; border: 1px solid var(--border-strong); }
.lmap__tabs button { background: transparent; border: 0; padding: 12px 20px; font-size: 14px; color: var(--fg-muted); }
.lmap__tabs button + button { border-left: 1px solid var(--border-strong); }
.lmap__tabs button[aria-selected="true"] { background: var(--ada-azul); color: var(--ada-clareza); }
.lmap__body { display: grid; grid-template-columns: 1.7fr 1fr; gap: var(--s-6); align-items: start; }
.lmap__plan { position: relative; background: #fff; border: 1px solid var(--border); }
.lmap__plan > img { width: 100%; transition: opacity var(--dur-base); }
.lmap__pins { position: absolute; inset: 0; }
.pin {
  position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%);
  width: 30px; height: 30px; padding: 0; border: 2px solid var(--ada-clareza);
  background: var(--ada-azul); color: var(--ada-clareza); font-size: 12px; font-weight: 600;
  display: grid; place-items: center; box-shadow: 0 4px 12px rgba(16, 24, 32, .35);
  transition: background var(--dur-fast), transform var(--dur-fast);
}
.pin:hover { transform: translate(-50%, -50%) scale(1.12); }
.pin[aria-pressed="true"] { background: var(--ada-ambar); transform: translate(-50%, -50%) scale(1.18); z-index: 2; }
.pin[aria-pressed="true"]::after { content: ""; position: absolute; inset: -8px; border: 1px solid var(--ada-ambar); animation: pinPulse 1.8s var(--ease) infinite; }
@keyframes pinPulse { from { opacity: 1; transform: scale(.8); } to { opacity: 0; transform: scale(1.5); } }
.lmap__card { background: #fff; border: 1px solid var(--border); }
.lmap__photo { margin: 0; aspect-ratio: 16/10; background: var(--ada-bone); overflow: hidden; }
.lmap__photo img { width: 100%; height: 100%; object-fit: cover; }
.lmap__photo.is-empty { display: grid; place-items: center; background: var(--ada-azul) url("../img/adamante/simbolo-white.webp") center / 40px no-repeat; }
.lmap__photo.is-empty img { display: none; }
.lmap__floor { margin: var(--s-5) var(--s-5) 4px; font-size: var(--t-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--accent); }
.lmap__name { margin: 0 var(--s-5) var(--s-2); font-size: 28px; }
.lmap__desc { margin: 0 var(--s-5) var(--s-5); color: var(--fg-muted); font-size: 15px; min-height: 3.2em; }
.lmap__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--border); counter-reset: l; }
.lmap__list li { border-bottom: 1px solid var(--border); }
.lmap__list li:last-child { border-bottom: 0; }
.lmap__list button { width: 100%; text-align: left; background: none; border: 0; padding: 10px var(--s-5); font-size: 14px; color: var(--fg-muted); display: flex; gap: var(--s-3); }
.lmap__list button span { color: var(--fg-soft); min-width: 18px; font-variant-numeric: tabular-nums; }
.lmap__list button:hover { background: var(--ada-clareza); }
.lmap__list button[aria-current="true"] { color: var(--fg); font-weight: 600; background: var(--ada-clareza); }
.lmap__list button[aria-current="true"] span { color: var(--accent); }
@media (max-width: 960px) {
  .lmap__body { grid-template-columns: 1fr; }
  .lmap__plan { overflow-x: auto; }
  .lmap__list { display: none; }
}
@media (max-width: 600px) {
  .lmap__plan > img, .lmap__pins { min-width: 0; }
  .pin { width: 24px; height: 24px; font-size: 11px; border-width: 1.5px; }
  .lmap__tabs { width: 100%; }
  .lmap__tabs button { flex: 1; padding: 12px 8px; }
}

/* ===== Arquitetura e interiores ===== */
.signs__role { font-size: var(--t-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--accent); margin-bottom: var(--s-4); }
.author { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(32px, 6vw, 96px); align-items: center; margin-bottom: var(--s-9); }
.author--rev .author__img { order: 2; }
.author__img { margin: 0; }
.author__img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.author h3 { font-size: clamp(32px, 3.4vw, 48px); margin-bottom: var(--s-5); }
.author p { color: var(--fg-muted); }
.author blockquote { margin: var(--s-6) 0; padding-left: var(--s-5); border-left: 2px solid var(--ada-ambar); font-family: var(--font-serif); font-style: italic; font-size: clamp(20px, 1.8vw, 24px); line-height: 1.35; color: var(--fg); }
.author__facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--border-strong); }
.author__facts li { padding-top: var(--s-4); }
.author__facts b { display: block; font-family: var(--font-serif); font-weight: 400; font-size: 30px; line-height: 1.1; }
.author__facts span { font-size: var(--t-sm); color: var(--fg-soft); }
.materials { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); }
.materials li { display: flex; align-items: center; gap: var(--s-2); font-size: var(--t-sm); color: var(--fg-muted); }
.materials i { width: 22px; height: 22px; background: var(--c); border: 1px solid rgba(20, 34, 57, .12); }
.artefacto { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(32px, 5vw, 80px); align-items: center; background: var(--bg-band); padding: clamp(24px, 5vw, 64px); margin-bottom: var(--s-9); }
.artefacto h3 { font-size: clamp(28px, 3vw, 40px); margin-bottom: var(--s-5); }
.artefacto p { color: var(--fg-muted); margin-bottom: 0; }
.artefacto__imgs { display: grid; grid-template-columns: 1.4fr 1fr; grid-template-rows: 1fr 1fr; gap: var(--s-2); aspect-ratio: 16/10; }
.artefacto__imgs img { width: 100%; height: 100%; object-fit: cover; }
.artefacto__imgs img:first-child { grid-row: span 2; }
.lotisa { display: grid; grid-template-columns: auto 1fr; gap: clamp(32px, 6vw, 96px); align-items: center; background: var(--ada-azul); color: var(--ada-clareza); padding: clamp(24px, 4vw, 48px); }
.lotisa .signs__role { color: var(--ada-ambar-tint); }
.lotisa__logo { width: 170px; }
.lotisa ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-5); }
.lotisa li { border-left: 1px solid var(--hairline-on-deep); padding-left: var(--s-4); }
.lotisa b { display: block; font-family: var(--font-serif); font-weight: 400; font-size: clamp(22px, 2vw, 28px); white-space: nowrap; line-height: 1.1; }
.lotisa li span { font-size: var(--t-caption); color: var(--fg-on-deep-soft); }
@media (max-width: 960px) {
  .author, .artefacto { grid-template-columns: 1fr; }
  .author--rev .author__img { order: 0; }
  .lotisa { grid-template-columns: 1fr; }
  .lotisa ul { grid-template-columns: 1fr 1fr; }
}

/* ===== Localização ===== */
.loc { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(40px, 6vw, 88px); align-items: center; }
.loc__map iframe { width: 100%; height: 480px; border: 0; display: block; filter: grayscale(.35) contrast(1.02); }
.loc__link { display: inline-block; margin-top: var(--s-3); font-size: var(--t-sm); color: var(--ada-azul-claro); text-underline-offset: 3px; }
@media (max-width: 900px) { .loc { grid-template-columns: 1fr; } .loc__map iframe { height: 340px; } }

/* ===== Obra ===== */
.obra { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 88px); align-items: end; }
.progress { margin-bottom: var(--s-7); }
.progress__label { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: var(--s-3); }
.progress__label span { font-size: var(--t-sm); color: var(--fg-soft); }
.progress__label b { font-family: var(--font-serif); font-weight: 400; font-size: 64px; line-height: 1; }
.progress__track { height: 4px; background: var(--border); }
.progress__track span { display: block; height: 100%; width: 0; background: var(--ada-ambar); transition: width 1.6s var(--ease); }
.is-visible .progress__track span { width: var(--p); }
.timeline { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); position: relative; }
.timeline::before { content: ""; position: absolute; left: 0; right: 0; top: 5px; height: 1px; background: var(--border-strong); }
.timeline li { position: relative; padding: var(--s-5) var(--s-3) 0 0; }
.timeline li::before { content: ""; position: absolute; top: 0; left: 0; width: 11px; height: 11px; background: var(--bg); border: 1px solid var(--fg); }
.timeline li.done::before { background: var(--fg); }
.timeline li.now::before { background: var(--ada-ambar); border-color: var(--ada-ambar); }
.timeline b { display: block; font-family: var(--font-serif); font-weight: 400; font-size: 20px; }
.timeline span { font-size: var(--t-sm); color: var(--fg-soft); }
@media (max-width: 900px) { .obra { grid-template-columns: 1fr; } }
@media (max-width: 520px) {
  .timeline { grid-template-columns: 1fr; gap: var(--s-5); }
  .timeline::before { top: 0; bottom: 0; left: 5px; right: auto; width: 1px; height: auto; }
  .timeline li { padding: 0 0 0 var(--s-6); }
}

/* ===== Adamante ===== */
.ada__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-5); flex-wrap: wrap; padding-bottom: var(--s-6); margin-bottom: var(--s-8); border-bottom: 1px solid var(--hairline-on-deep); }
.ada__logo { width: clamp(180px, 22vw, 280px); }
.ada__slogan { font-family: var(--font-serif); font-style: italic; font-size: clamp(22px, 2.4vw, 32px); margin: 0; color: var(--ada-clareza); }
.award { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: center; }
.award__txt .lead { margin-bottom: var(--s-6); }
.award__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-4); }
.award__list li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 4px var(--s-5); padding: var(--s-6); border: 1px solid var(--hairline-on-deep); border-left: 2px solid var(--ada-ambar); }
.award__list span { flex: 0 0 100%; font-size: var(--t-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--fg-on-deep-soft); }
.award__list b { font-family: var(--font-serif); font-weight: 400; font-size: clamp(32px, 3.6vw, 52px); line-height: 1; color: var(--ada-clareza); white-space: nowrap; }
.award__list em { font-style: normal; font-size: var(--t-sm); color: var(--ada-ambar-tint); padding-bottom: 6px; }
@media (max-width: 960px) { .award { grid-template-columns: 1fr; } }

/* ===== Contato ===== */
.contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 7vw, 112px); align-items: start; }
.contact__sym { width: 44px; margin-bottom: var(--s-6); }
.contact__info { list-style: none; padding: 0; margin: var(--s-6) 0 0; border-top: 1px solid var(--border-strong); }
.contact__info li { padding: var(--s-4) 0; border-bottom: 1px solid var(--border); display: grid; grid-template-columns: 110px 1fr; gap: var(--s-3); font-size: 15px; }
.contact__info li > span { font-size: var(--t-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--fg-soft); padding-top: 3px; }
.contact__info a { color: var(--ada-azul-claro); text-decoration: none; }
.contact__info a:hover { text-decoration: underline; }
.form { background: #fff; border: 1px solid var(--border-strong); padding: clamp(24px, 4vw, 48px); display: grid; gap: var(--s-5); box-shadow: var(--sh-3); }
.form label { display: grid; gap: var(--s-2); font-size: var(--t-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--fg-soft); font-weight: 500; }
.form input[type=text], .form input[type=tel], .form select {
  width: 100%; height: 52px; padding: 0 var(--s-4); border: 0; border-bottom: 1px solid var(--border-strong); border-radius: var(--r-0);
  background-color: var(--ada-clareza); font: 400 16px var(--font-sans); color: var(--fg); letter-spacing: 0; text-transform: none;
  -webkit-appearance: none; appearance: none;
}
.form select { background-image: linear-gradient(45deg, transparent 50%, var(--fg) 50%), linear-gradient(135deg, var(--fg) 50%, transparent 50%); background-position: calc(100% - 22px) 50%, calc(100% - 17px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.form input:focus, .form select:focus { outline: none; border-bottom-color: var(--ada-ambar); box-shadow: inset 0 -1px 0 var(--ada-ambar); }
.form .check { display: flex; gap: var(--s-3); align-items: flex-start; text-transform: none; letter-spacing: 0; font-size: var(--t-sm); font-weight: 400; color: var(--fg-muted); }
.form .check input { margin: 2px 0 0; width: 18px; height: 18px; accent-color: var(--ada-azul); flex: none; }
.form [aria-invalid=true] { border-bottom-color: var(--ada-ambar); background-color: var(--ada-ambar-tint); }
.form__error { color: var(--ada-ambar); font-size: var(--t-sm); margin: 0; }
@media (max-width: 900px) { .contact__grid { grid-template-columns: 1fr; } }

/* ===== FAQ ===== */
.faq-wrap { display: grid; grid-template-columns: 1fr 1.6fr; gap: clamp(40px, 6vw, 96px); }
.faq details { border-top: 1px solid var(--border-strong); }
.faq details:last-child { border-bottom: 1px solid var(--border-strong); }
.faq summary { list-style: none; cursor: pointer; padding: var(--s-5) var(--s-7) var(--s-5) 0; position: relative; font-family: var(--font-serif); font-size: clamp(19px, 1.6vw, 22px); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before, .faq summary::after { content: ""; position: absolute; right: 4px; top: 50%; width: 14px; height: 1px; background: var(--fg); transition: transform var(--dur-base) var(--ease); }
.faq summary::after { transform: rotate(90deg); }
.faq details[open] summary::after { transform: rotate(0); }
.faq details p { color: var(--fg-muted); padding-bottom: var(--s-5); margin: 0; max-width: 64ch; }
@media (max-width: 900px) { .faq-wrap { grid-template-columns: 1fr; } }

/* ===== Footer ===== */
.footer { background: var(--ada-black); color: var(--fg-on-deep-soft); padding: var(--s-9) 0 var(--s-10); font-size: var(--t-sm); }
.footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: var(--s-7); padding-bottom: var(--s-7); border-bottom: 1px solid var(--hairline-on-deep); }
.footer__brand img { width: 180px; margin-bottom: var(--s-4); }
.footer__slogan { font-family: var(--font-serif); font-style: italic; font-size: 20px; color: var(--ada-clareza); }
.footer__h { font-size: var(--t-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--ada-clareza); margin-bottom: var(--s-4); }
.footer nav { display: flex; flex-direction: column; gap: var(--s-2); }
.footer a { text-decoration: none; }
.footer a:hover { color: var(--ada-clareza); }
.footer__veredas img { width: 150px; opacity: .85; }
.footer__legal { padding-top: var(--s-6); font-size: var(--t-caption); color: rgba(244, 245, 240, .5); }
@media (min-width: 761px) { .footer { padding-bottom: var(--s-8); } }
@media (max-width: 900px) { .footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .footer__grid { grid-template-columns: 1fr; } }

/* ===== WhatsApp flutuante e barra mobile ===== */
.wa-float {
  position: fixed; right: 24px; bottom: 24px; z-index: 40; width: 56px; height: 56px;
  background: var(--ada-ambar); color: var(--ada-clareza); display: grid; place-items: center; box-shadow: var(--sh-3);
  transition: background var(--dur-base);
}
.wa-float:hover { background: var(--ada-ambar-hover); }
.wa-float svg { width: 26px; height: 26px; }
.mobile-bar { display: none; }
@media (max-width: 760px) {
  .wa-float { display: none; }
  .mobile-bar {
    display: grid; grid-template-columns: 1fr 1.4fr; gap: var(--s-2); position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
    padding: var(--s-2) var(--gutter) calc(var(--s-2) + env(safe-area-inset-bottom)); background: var(--ada-azul);
    transform: translateY(100%); transition: transform var(--dur-slow) var(--ease);
  }
  .mobile-bar .btn { min-height: 48px; padding: 0 var(--s-3); font-size: 12px; }
  .mobile-bar.is-visible { transform: none; }
}

/* ===== Lightbox ===== */
.lightbox { position: fixed; inset: 0; z-index: 100; background: rgba(16, 24, 32, .95); display: grid; place-items: center; padding: var(--s-8) var(--gutter); }
.lightbox[hidden] { display: none; }
.lightbox figure { margin: 0; max-width: 1400px; width: 100%; }
.lightbox img { width: 100%; max-height: 80vh; object-fit: contain; }
.lightbox img[src*="planta"] { background: var(--ada-azul-95); padding: clamp(12px, 3vw, 40px); }
.lightbox figcaption { color: var(--ada-clareza); text-align: center; margin-top: var(--s-4); font-family: var(--font-serif); font-size: 20px; }
.lightbox__close { position: absolute; top: var(--s-3); right: var(--s-4); background: none; border: 0; color: var(--ada-clareza); font-size: 40px; line-height: 1; width: 48px; height: 48px; }

/* ===== Privacidade ===== */
.privacy { max-width: 620px; width: calc(100% - 32px); border: 0; border-radius: var(--r-0); padding: var(--s-7); background: var(--ada-clareza); color: var(--fg); }
.privacy::backdrop { background: rgba(16, 24, 32, .7); }
.privacy h2 { font-size: 36px; }
.privacy p { color: var(--fg-muted); font-size: 15px; }

/* ===== Reveal ===== */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-visible, .no-js .reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}
