/* ============================================================
   TERRAE · TOKENS
   ============================================================ */
:root {
  /* Cores oficiais */
  --t-sand:        #E4DDD3;
  --t-sage:        #8A8E75;
  --t-sienna:      #976E53;
  --t-ink:         #1D1D1B;

  /* Variações derivadas */
  --t-sand-light:  #ECE5DA;
  --t-sand-soft:   #F2EDE5;
  --t-sage-dark:   #6F7560;
  --t-sage-soft:   #AEB29C;
  --t-sienna-dark: #795842;
  --t-ink-soft:    #3F3D38;
  --t-ink-mute:    #7A746A;
  --t-rule:        #C8C0B2;
  --t-line:        rgba(29,29,27,0.08);

  /* Tipografia */
  --f-display: 'Arya', 'Cormorant Garamond', Georgia, serif;
  --f-body:    'Manrope', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;

  --fs-mega:    clamp(3rem, 8vw, 7rem);
  --fs-display: clamp(2.25rem, 5vw, 4.5rem);
  --fs-h1:      clamp(1.875rem, 3.2vw, 2.75rem);
  --fs-h2:      clamp(1.5rem, 2.4vw, 2rem);
  --fs-h3:      1.375rem;
  --fs-h4:      1.125rem;
  --fs-body:    1rem;
  --fs-small:   0.875rem;
  --fs-caption: 0.75rem;
  --fs-micro:   0.6875rem;

  --ls-mega:   0.32em;
  --ls-wide:   0.22em;
  --ls-kicker: 0.18em;
  --ls-small:  0.06em;

  --s-1: 0.25rem; --s-2: 0.5rem; --s-3: 0.75rem; --s-4: 1rem;
  --s-5: 1.5rem;  --s-6: 2rem;   --s-7: 3rem;    --s-8: 4rem;
  --s-9: 6rem;    --s-10: 8rem;

  --container: 1240px;
  --container-narrow: 760px;
  --container-wide: 1480px;

  --ease: cubic-bezier(0.65, 0, 0.35, 1);
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

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

body {
  font-family: var(--f-body);
  font-weight: 400;
  font-size: var(--fs-body);
  line-height: 1.55;
  color: var(--t-ink);
  background: var(--t-sand);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

h1, h2, h3, h4 { font-family: var(--f-display); font-weight: 400; line-height: 1.08; }
img { display: block; max-width: 100%; }
a { color: inherit; }
::selection { background: var(--t-sienna); color: var(--t-sand); }

.container       { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 var(--s-6); }
.container-narrow{ width: 100%; max-width: var(--container-narrow); margin: 0 auto; padding: 0 var(--s-6); }

/* Kicker / eyebrow */
.kicker {
  font-family: var(--f-body);
  font-size: var(--fs-caption);
  letter-spacing: var(--ls-kicker);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--t-sage-dark);
  padding-left: var(--ls-kicker);
  display: inline-block;
}

/* Section scaffolding */
.section { padding: clamp(4rem, 9vw, 6rem) 0; }
.section__head { max-width: 60ch; margin-bottom: var(--s-8); }
.section__head .kicker { margin-bottom: var(--s-3); }
.section__title { font-size: var(--fs-display); }
.section__lede { margin-top: var(--s-4); color: var(--t-ink-soft); font-size: 1.0625rem; max-width: 56ch; }

/* ============================================================
   BOTÕES
   ============================================================ */
.btn {
  display: inline-flex; align-items: center; gap: var(--s-3);
  font-family: var(--f-body); font-weight: 500;
  font-size: var(--fs-caption); letter-spacing: var(--ls-kicker);
  text-transform: uppercase;
  padding: 1rem 1.5rem 1rem calc(1.5rem + var(--ls-kicker));
  border: 1px solid var(--t-ink);
  color: var(--t-ink); background: transparent;
  text-decoration: none; cursor: pointer;
  transition: background .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease);
}
.btn svg { width: 14px; height: 14px; flex: none; transition: transform .45s var(--ease); }
.btn:hover svg { transform: translateX(4px); }
.btn--filled       { background: var(--t-ink); color: var(--t-sand); }
.btn--filled:hover { background: var(--t-sienna); border-color: var(--t-sienna); }
.btn--sage         { background: var(--t-sage); border-color: var(--t-sage); color: var(--t-sand); }
.btn--sage:hover   { background: var(--t-sage-dark); border-color: var(--t-sage-dark); }
.btn--on-dark      { border-color: rgba(228,221,211,.7); color: var(--t-sand); }
.btn--on-dark:hover{ background: var(--t-sand); color: var(--t-ink); border-color: var(--t-sand); }
.btn--light-fill   { background: var(--t-sand); color: var(--t-ink); border-color: var(--t-sand); }
.btn--light-fill:hover { background: var(--t-sienna); color: var(--t-sand); border-color: var(--t-sienna); }

/* ============================================================
   SITE HEADER
   ============================================================ */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  transition: background .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
  border-bottom: 1px solid transparent;
}
.site-header__inner {
  max-width: var(--container-wide); margin: 0 auto;
  padding: var(--s-4) var(--s-6);
  display: flex; align-items: center; justify-content: space-between; gap: var(--s-5);
}
.site-header__brand { display: flex; align-items: center; line-height: 0; }
.site-header__brand img { width: 126px; height: auto; display: block; }
.site-header__brand .brand-dark { display: none; }
.site-header.is-scrolled .site-header__brand .brand-dark { display: block; }
.site-header.is-scrolled .site-header__brand .brand-light { display: none; }
.site-nav { display: flex; gap: var(--s-6); }
.site-nav a {
  font-size: var(--fs-caption); letter-spacing: var(--ls-small);
  text-transform: uppercase; font-weight: 500; text-decoration: none;
  color: var(--t-sand); padding: var(--s-2) 0; position: relative;
  transition: color .4s var(--ease);
}
.site-nav a::after {
  content: ''; position: absolute; left: 0; bottom: 0; height: 1px; width: 0;
  background: currentColor; transition: width .4s var(--ease);
}
.site-nav a:hover::after, .site-nav a.is-active::after { width: 100%; }
.site-header__cta {
  display: inline-flex; align-items: center; gap: var(--s-2);
  font-size: var(--fs-caption); letter-spacing: var(--ls-kicker); text-transform: uppercase;
  font-weight: 500; text-decoration: none; color: var(--t-sand);
  border: 1px solid rgba(228,221,211,.7); padding: .6rem 1rem .6rem calc(1rem + var(--ls-kicker));
  transition: background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.site-header__cta:hover { background: var(--t-sand); color: var(--t-ink); border-color: var(--t-sand); }
.site-header__cta svg { width: 13px; height: 13px; }

/* Estado scrolled — fundo sólido sand, texto ink */
.site-header.is-scrolled { background: var(--t-sand); border-bottom-color: var(--t-line); }
.site-header.is-scrolled .site-header__brand svg,
.site-header.is-scrolled .site-nav a,
.site-header.is-scrolled .site-header__cta { color: var(--t-ink); }
.site-header.is-scrolled .site-header__cta { border-color: var(--t-ink); }
.site-header.is-scrolled .site-header__cta:hover { background: var(--t-ink); color: var(--t-sand); }

/* Burger (mobile) */
.nav-toggle { display: none; background: none; border: 0; cursor: pointer; padding: var(--s-2); }
.nav-toggle span { display: block; width: 24px; height: 1.5px; background: var(--t-sand); margin: 5px 0; transition: transform .4s var(--ease), opacity .3s; }
.site-header.is-scrolled .nav-toggle span { background: var(--t-ink); }

/* ============================================================
   HERO
   ============================================================ */
.hero { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; color: var(--t-sand); }
.hero__bg {
  position: absolute; inset: 0;
  background-position: center; background-size: cover;
  transform: scale(1.04);
}
.hero__scrim {
  position: absolute; inset: 0;
  background:
    linear-gradient(to bottom, rgba(29,29,27,.55) 0%, rgba(29,29,27,.20) 32%, rgba(29,29,27,.78) 100%);
}
.hero__mark {
  position: absolute; top: -6%; right: -8%; width: 46%; max-width: 620px;
  color: rgba(228,221,211,.14); z-index: 1; pointer-events: none;
  aspect-ratio: 301.55 / 282.9; height: auto;
}
.hero__inner { position: relative; z-index: 2; padding-top: 120px; padding-bottom: clamp(3rem, 7vw, 5.5rem); }
.hero__kicker { color: var(--t-sand); opacity: .92; margin-bottom: var(--s-5); }
.hero__title { font-size: var(--fs-display); max-width: 16ch; }
.hero__lede { margin-top: var(--s-5); font-size: 1.125rem; font-weight: 300; max-width: 44ch; color: rgba(236,229,218,.92); }
.hero__price { display: flex; align-items: baseline; gap: var(--s-4); margin-top: var(--s-7); }
.hero__price-label { font-size: var(--fs-caption); letter-spacing: var(--ls-kicker); text-transform: uppercase; opacity: .8; padding-left: var(--ls-kicker); }
.hero__price-value { font-family: var(--f-display); font-size: clamp(2.25rem, 5vw, 3.5rem); line-height: 1; }
.hero__cta { display: flex; flex-wrap: wrap; gap: var(--s-4); margin-top: var(--s-7); }
.hero__scroll {
  position: absolute; bottom: var(--s-5); left: 50%; transform: translateX(-50%);
  z-index: 2; color: var(--t-sand); text-decoration: none; display: flex; flex-direction: column;
  align-items: center; gap: var(--s-2); font-size: var(--fs-micro); letter-spacing: var(--ls-kicker);
  text-transform: uppercase; opacity: .85;
}
.hero__scroll svg { width: 16px; height: 22px; animation: nudge 2.4s var(--ease) infinite; }
@keyframes nudge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(6px); } }

/* Mark blueprint (desenho) */
.mark-blueprint .mark-stroke {
  fill: transparent; stroke: currentColor; stroke-width: 2;
  stroke-linecap: butt; stroke-linejoin: miter;
  stroke-dasharray: 1500; stroke-dashoffset: 1500;
  transition: fill .6s ease;
}
.mark-blueprint.is-drawn .mark-stroke { fill: currentColor; }

/* ============================================================
   DESTAQUES (stats bar)
   ============================================================ */
.highlights { background: var(--t-ink); color: var(--t-sand); }
.highlights__grid {
  display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
  border-left: 1px solid rgba(228,221,211,.12);
}
/* Fichas geradas: número variável de destaques (adapta-se sozinho, responsivo).
   Classe dupla p/ ganhar às media queries de .highlights__grid mais abaixo. */
.highlights__grid.highlights__grid--auto { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.highlight {
  padding: var(--s-7) var(--s-5);
  border-right: 1px solid rgba(228,221,211,.12);
  border-bottom: 1px solid rgba(228,221,211,.12);
  display: flex; flex-direction: column; gap: var(--s-3);
}
.highlight__icon { color: var(--t-sage-soft); }
.highlight__icon svg { width: 26px; height: 26px; }
.highlight__value { font-family: var(--f-display); font-size: 2rem; line-height: 1; font-variant-numeric: tabular-nums; }
.highlight__value small { font-size: 1rem; color: var(--t-sage-soft); margin-left: .15em; }
.highlight__label { font-size: var(--fs-caption); letter-spacing: var(--ls-kicker); text-transform: uppercase; color: rgba(228,221,211,.6); padding-left: var(--ls-kicker); }

/* ============================================================
   DESCRIÇÃO (storytelling)
   ============================================================ */
.story { background: var(--t-sand); }
.story__prose { font-size: 1.0625rem; line-height: 1.7; color: var(--t-ink-soft); max-width: 62ch; }
.story__prose p + p { margin-top: var(--s-5); }
.drop-cap {
  font-family: var(--f-display); font-size: 4.2rem; line-height: .82;
  float: left; margin: .08em .14em -.08em 0; color: var(--t-ink);
}
.pull-quote {
  margin: var(--s-9) auto 0; max-width: 50ch; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: var(--s-5);
}
.pull-quote__mark { width: 40px; color: var(--t-sienna); aspect-ratio: 301.55 / 282.9; height: auto; }
.pull-quote__text { font-family: var(--f-display); font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.25; color: var(--t-ink); }
.pull-quote__attr { font-size: var(--fs-caption); letter-spacing: var(--ls-kicker); text-transform: uppercase; color: var(--t-ink-mute); padding-left: var(--ls-kicker); font-style: normal; }

/* ============================================================
   CARACTERÍSTICAS
   ============================================================ */
.specs { background: var(--t-sand-light); }
.specs__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-6); }
.spec-card {
  background: var(--t-sand-soft); padding: var(--s-6);
  border-left: 2px solid var(--t-sienna);
  display: flex; flex-direction: column; gap: var(--s-5);
}
.spec-card__title { font-size: var(--fs-h3); }
.spec-card__head { display: flex; flex-direction: column; gap: var(--s-3); }
.spec-list { list-style: none; display: flex; flex-direction: column; }
.spec-list li {
  display: flex; align-items: baseline; justify-content: space-between; gap: var(--s-4);
  padding: var(--s-3) 0; border-bottom: 1px solid var(--t-line); font-size: var(--fs-small);
}
.spec-list li:last-child { border-bottom: 0; }
.spec-list .k { color: var(--t-ink-soft); }
.spec-list .v { color: var(--t-ink); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.spec-tags { list-style: none; display: flex; flex-wrap: wrap; gap: var(--s-2); }
.spec-tags li {
  font-size: var(--fs-small); color: var(--t-ink-soft);
  border: 1px solid var(--t-rule); padding: var(--s-2) var(--s-3);
}
.spec-feat { list-style: none; display: flex; flex-direction: column; gap: var(--s-3); }
.spec-feat li { display: flex; align-items: flex-start; gap: var(--s-3); font-size: var(--fs-small); color: var(--t-ink-soft); }
.spec-feat svg { width: 16px; height: 16px; flex: none; margin-top: 3px; color: var(--t-sage-dark); }

/* ============================================================
   GALERIA + LIGHTBOX
   ============================================================ */
.gallery { background: var(--t-sand); }
.ggrid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); grid-auto-rows: 200px; grid-auto-flow: dense; gap: 12px; }
.g-item { position: relative; overflow: hidden; cursor: pointer; background: var(--t-sage-dark); border: 0; padding: 0; }
.g-item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.g-item:hover img { transform: scale(1.05); }
.g-item--wide { grid-column: span 2; grid-row: span 2; }
.g-item--tall { grid-row: span 2; }
.g-ov { position: absolute; inset: 0; z-index: 2; background: var(--t-sage-dark); clip-path: polygon(0 22%,100% 0,100% 100%,0 100%); transform: translateY(110%); transition: transform .75s var(--ease); display: flex; flex-direction: column; justify-content: flex-end; padding: var(--s-5); color: var(--t-sand); }
.g-item:nth-child(3n+2) .g-ov { background: var(--t-sienna-dark); }
.g-item:nth-child(3n+3) .g-ov { background: var(--t-ink); }
.g-item:hover .g-ov, .g-item:focus-visible .g-ov { transform: translateY(0); }
.g-ov__k { font-size: var(--fs-micro); letter-spacing: var(--ls-kicker); text-transform: uppercase; opacity: .75; padding-left: var(--ls-kicker); }
.g-ov__c { font-family: var(--f-display); font-size: 1.2rem; margin-top: var(--s-2); }
.g-item:focus-visible { outline: 2px solid var(--t-sienna); outline-offset: 2px; }
@media (max-width:1024px){ .ggrid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width:760px){ .ggrid { grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: 150px; gap: 8px; } .g-item--wide { grid-column: span 2; grid-row: span 1; } }

/* Lightbox */
.lightbox {
  position: fixed; inset: 0; z-index: 200; background: rgba(20,20,18,.94);
  display: none; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .4s ease;
}
.lightbox.is-open { display: flex; opacity: 1; }
.lightbox__stage { position: relative; max-width: 92vw; max-height: 82vh; }
.lightbox__img { max-width: 92vw; max-height: 82vh; object-fit: contain; box-shadow: 0 30px 80px rgba(0,0,0,.5); }
.lightbox__counter {
  position: absolute; top: -2.4rem; left: 0; color: var(--t-sand);
  font-size: var(--fs-caption); letter-spacing: var(--ls-kicker); text-transform: uppercase;
  font-variant-numeric: tabular-nums; opacity: .8; padding-left: var(--ls-kicker);
}
.lb-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 52px; height: 52px; display: grid; place-items: center;
  background: rgba(228,221,211,.08); border: 1px solid rgba(228,221,211,.3);
  color: var(--t-sand); cursor: pointer; transition: background .35s var(--ease);
}
.lb-btn:hover { background: rgba(228,221,211,.22); }
.lb-btn svg { width: 20px; height: 20px; }
.lb-prev { left: -76px; }
.lb-next { right: -76px; }
.lb-close {
  position: absolute; top: var(--s-5); right: var(--s-5);
  width: 46px; height: 46px; display: grid; place-items: center;
  background: none; border: 1px solid rgba(228,221,211,.3); color: var(--t-sand); cursor: pointer;
  transition: background .35s var(--ease);
}
.lb-close:hover { background: rgba(228,221,211,.18); }
.lb-close svg { width: 18px; height: 18px; }

/* ============================================================
   MAPA + ENVOLVENTE
   ============================================================ */
.location { background: var(--t-sand-light); }
.location__map {
  width: 100%; aspect-ratio: 21/9; min-height: 340px; border: 1px solid var(--t-rule);
  filter: grayscale(.4) contrast(.95);
}
.location__address { margin-top: var(--s-5); display: flex; align-items: center; gap: var(--s-3); color: var(--t-ink-soft); font-size: var(--fs-small); }
.location__address svg { width: 18px; height: 18px; color: var(--t-sienna); flex: none; }

/* ============================================================
   CONTACTO
   ============================================================ */
.contact { background: var(--t-ink); color: var(--t-sand); }
.contact__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.contact__title { font-size: var(--fs-h1); }
.contact__intro { color: rgba(236,229,218,.78); margin-top: var(--s-4); max-width: 42ch; }
.agent { margin-top: var(--s-8); display: flex; flex-direction: column; gap: var(--s-4); }
.agent__kicker { color: var(--t-sage-soft); }
.agent__name { font-family: var(--f-display); font-size: var(--fs-h3); }
.agent__role { font-size: var(--fs-small); color: rgba(236,229,218,.7); }
.agent__lines { display: flex; flex-direction: column; gap: var(--s-2); margin-top: var(--s-3); }
.agent__lines a { display: inline-flex; align-items: center; gap: var(--s-3); color: var(--t-sand); text-decoration: none; font-size: var(--fs-small); transition: color .35s; }
.agent__lines a:hover { color: var(--t-sage-soft); }
.agent__lines svg { width: 16px; height: 16px; color: var(--t-sage-soft); flex: none; }

.form { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-4); }
.field { display: flex; flex-direction: column; gap: var(--s-2); }
.field--full { grid-column: 1 / -1; }
.field label { font-size: var(--fs-caption); letter-spacing: var(--ls-kicker); text-transform: uppercase; color: rgba(236,229,218,.7); padding-left: var(--ls-kicker); }
.field label .req { color: var(--t-sienna); }
.field label .opt { color: rgba(236,229,218,.42); text-transform: none; letter-spacing: 0; }
.form__consent .req { color: var(--t-sienna); }
.field input, .field textarea {
  font-family: var(--f-body); font-size: var(--fs-body); color: var(--t-sand);
  background: transparent; border: 1px solid rgba(228,221,211,.28);
  padding: .85rem 1rem; transition: border-color .35s var(--ease);
}
.field input::placeholder, .field textarea::placeholder { color: rgba(236,229,218,.4); }
.field input:focus, .field textarea:focus { outline: 0; border-color: var(--t-sage-soft); }
.field textarea { resize: vertical; min-height: 120px; }
.field.has-error input, .field.has-error textarea { border-color: #C77; }
.field__error { font-size: var(--fs-caption); color: #D89; display: none; }
.field.has-error .field__error { display: block; }
.form__submit { grid-column: 1 / -1; display: flex; align-items: center; gap: var(--s-5); flex-wrap: wrap; margin-top: var(--s-2); }
.form__consent { font-size: var(--fs-caption); color: rgba(236,229,218,.5); max-width: 36ch; }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.field--consent { gap: var(--s-2); }
.consent { display: flex; align-items: flex-start; gap: var(--s-3); cursor: pointer; }
.consent input { width: 18px; height: 18px; margin-top: 1px; flex: none; accent-color: var(--t-sage); }
.consent span { font-size: var(--fs-small); color: rgba(236,229,218,.78); }
.consent a { color: var(--t-sage-soft); text-decoration: underline; }
.field--consent.has-error .consent span { color: #D89; }
.form__success {
  grid-column: 1 / -1; display: none; align-items: flex-start; gap: var(--s-3);
  border: 1px solid var(--t-sage); padding: var(--s-5); background: rgba(138,142,117,.12);
}
.form__success.is-visible { display: flex; }
.form__success svg { width: 20px; height: 20px; color: var(--t-sage-soft); flex: none; margin-top: 2px; }
.form__success p { font-size: var(--fs-small); color: var(--t-sand); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer { position: relative; background: var(--t-ink); color: var(--t-sand); overflow: hidden; border-top: 1px solid rgba(228,221,211,.1); }
.site-footer__watermark { position: absolute; right: -4%; bottom: -22%; width: 38%; color: var(--t-sand); opacity: .035; aspect-ratio: 301.55 / 282.9; height: auto; pointer-events: none; }
.site-footer__inner { position: relative; z-index: 1; max-width: var(--container); margin: 0 auto; padding: var(--s-9) var(--s-6) var(--s-6); }
.site-footer__top { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--s-7); padding-bottom: var(--s-8); border-bottom: 1px solid rgba(228,221,211,.12); }
.site-footer__brand img { width: 162px; height: auto; display: block; }
.site-footer__tagline { margin-top: var(--s-4); color: rgba(236,229,218,.7); font-size: var(--fs-small); max-width: 30ch; }
.site-footer__group h4 { font-family: var(--f-body); font-weight: 500; font-size: var(--fs-caption); letter-spacing: var(--ls-kicker); text-transform: uppercase; color: var(--t-sage-soft); padding-left: var(--ls-kicker); margin-bottom: var(--s-4); }
.site-footer__group ul { list-style: none; display: flex; flex-direction: column; gap: var(--s-3); }
.site-footer__group a { color: rgba(236,229,218,.82); text-decoration: none; font-size: var(--fs-small); transition: color .35s; }
.site-footer__group a:hover { color: var(--t-sand); }
.site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-4); padding-top: var(--s-5); font-size: var(--fs-caption); color: rgba(236,229,218,.5); }
.site-footer__bottom a { color: inherit; }

/* ============================================================
   WHATSAPP FLOAT
   ============================================================ */
.fab {
  position: fixed; right: var(--s-5); bottom: var(--s-5); z-index: 90;
  width: 56px; height: 56px; border-radius: 50%; background: var(--t-sage);
  color: var(--t-sand); display: grid; place-items: center; text-decoration: none;
  box-shadow: 0 8px 24px rgba(29,29,27,.28); transition: transform .4s var(--ease), background .4s var(--ease);
}
.fab:hover { transform: translateY(-3px); background: var(--t-sage-dark); }
.fab svg { width: 28px; height: 28px; }

/* ============================================================
   REVEAL (scroll fade-in)
   ============================================================ */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: .08s; }
.reveal[data-delay="2"] { transition-delay: .16s; }
.reveal[data-delay="3"] { transition-delay: .24s; }
.reveal[data-delay="4"] { transition-delay: .32s; }
.reveal[data-delay="5"] { transition-delay: .40s; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .highlights__grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .specs__grid { grid-template-columns: 1fr; }
  .contact__grid { grid-template-columns: 1fr; }
  .lb-prev { left: var(--s-3); } .lb-next { right: var(--s-3); }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 70px; }
  .site-nav { display: none; }
  .site-header__cta { display: none; }
  .nav-toggle { display: block; z-index: 110; }
  .site-nav.is-open {
    display: flex; flex-direction: column; gap: 0;
    position: fixed; inset: 0; background: var(--t-ink);
    padding: 96px var(--s-6) var(--s-6); z-index: 105;
  }
  .site-nav.is-open a { color: var(--t-sand); font-size: 1.5rem; font-family: var(--f-display); letter-spacing: 0; text-transform: none; padding: var(--s-4) 0; border-bottom: 1px solid rgba(228,221,211,.12); }
  .highlights__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .hero__price { flex-direction: column; gap: var(--s-2); }
  .hero__cta { flex-direction: column; align-items: stretch; }
  .hero__cta .btn { justify-content: center; }
  .form { grid-template-columns: 1fr; }
  .site-footer__top { grid-template-columns: 1fr; gap: var(--s-6); }
  .location__map { aspect-ratio: 4/3; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .reveal { opacity: 1; transform: none; }
  .mark-blueprint .mark-stroke { stroke-dashoffset: 0; fill: currentColor; }
  .hero__scroll svg { animation: none; }
}
/* T1 · selo de simulação + vídeo + subtítulos de galeria */
.g-sim-badge{position:absolute;top:10px;left:10px;z-index:3;background:var(--t-sienna);color:#fff;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;padding:.32rem .6rem;font-weight:500;pointer-events:none}
.video__wrap{margin-top:var(--s-7);background:var(--t-ink);overflow:hidden;box-shadow:0 30px 70px -40px rgba(29,29,27,.6);line-height:0}
.video__wrap video{width:100%;height:auto;display:block}
.gallery__sub{margin-top:var(--s-9)}
