/* =========================================================
   OLIVE GARDEN — LP
   Base: layout Figma 1920px
   ========================================================= */

/* ---------- Fontes ----------
   Area Normal: Adobe Fonts (kit ieq2zen, carregado no <head>) — pesos 400 e 700 */
@font-face {
  font-family: "Chamola";
  src: url("../assets/fonts/Chamola.woff") format("woff"),
       url("../assets/fonts/Chamola.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
  --green: #44563d;
  --gold: #c5a338;
  --gold-line: #d8b763;
  --olive: #90905d;
  --white: #ffffff;
  --off-white: #f0f0f0;
  --black: #000000;
  --text: #333333;
  --bg: #e9e9e9;

  --font-base: "area-normal", "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-figtree: "Figtree", var(--font-base);
  --font-script: "Chamola", Georgia, serif;

  --header-h: 90px;
  --gutter: 16px;
}

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

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

/* Foco visível só para navegação por teclado */
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.form__input:focus-visible { outline: none; }

body {
  font-family: var(--font-base);
  font-weight: 400;
  color: var(--white);
  background: var(--white);
  line-height: 1.4;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { font: inherit; background: none; border: 0; cursor: pointer; color: inherit; }
em { font-style: normal; }

body.no-scroll { overflow: hidden; }

.gold { color: var(--gold); }
.font-script { font-family: var(--font-script); font-weight: 400; }

/* ---------- Botões ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 10px 24px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
  transition: background-color .25s ease, transform .25s ease;
}
.btn--green { background: var(--green); color: var(--white); }
.btn--green:hover { background: #56704d; }
.btn:active { transform: translateY(1px); }

/* =========================================================
   HEADER / MENU
   ========================================================= */
.header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--header-h);
  background: url("../assets/img/menu-bg.png") center / 100% 100% no-repeat;
}
/* Fundo ao rolar fica num pseudo-elemento: backdrop-filter direto no header
   prenderia o menu mobile (position: fixed) dentro dos 76px do cabeçalho */
.header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(20, 24, 18, .82);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}
.header.is-scrolled::before { opacity: 1; }

.header__inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 64px;
  padding: 24px var(--gutter);
}

/* Logo (3 partes posicionadas como no Figma: 113 x 44) */
.logo {
  position: relative;
  flex-shrink: 0;
  width: 113px;
  aspect-ratio: 113 / 44;
}
.logo__part { position: absolute; width: auto; height: auto; }
.logo__part--text { top: 1.32%; right: 0; bottom: 19.55%; left: 38.44%; width: 61.56%; height: 79.13%; }
.logo__part--line { top: 94.57%; right: 1.19%; bottom: -0.01%; left: 38.59%; width: 60.22%; height: 5.44%; }
.logo__part--tree { top: 0; right: 64.67%; bottom: 0.01%; left: 0; width: 35.33%; height: 99.99%; }

.nav { display: flex; align-items: center; gap: 64px; }
.nav__list { display: flex; align-items: center; gap: 64px; }
.nav__link {
  position: relative;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
  color: var(--white);
  transition: color .2s ease;
}
.nav__link--figtree { font-family: var(--font-figtree); }
.nav__link::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -4px;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
.nav__link:hover { color: var(--gold); }
.nav__link:hover::after { transform: scaleX(1); }

/* Hambúrguer */
.nav-toggle {
  display: none;
  position: relative;
  z-index: 102;
  width: 40px;
  height: 40px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.nav-toggle span {
  display: block;
  width: 26px;
  height: 2px;
  background: var(--white);
  border-radius: 2px;
  transition: transform .3s ease, opacity .3s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* =========================================================
   SEÇÃO 1 — HERO  (Figma: 1920 x 925)
   ========================================================= */
.hero {
  position: relative;
  width: 100%;
  height: calc(100vw * 925 / 1920);
  min-height: 640px;
  isolation: isolate;
  z-index: 2; /* seta fica por cima da seção seguinte */
}

.hero__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }

/* Recorte idêntico ao Figma (imagem 150.88% x 178.61%) */
.hero__img {
  position: absolute;
  top: -66.43%;
  left: -33.8%;
  width: 150.88%;
  height: 178.61%;
  max-width: none;
  object-fit: cover; /* evita distorção quando a proporção da tela difere de 1920x925 */
}

.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 71.838%, #000 100%);
}

.hero__content {
  position: relative;
  height: 100%;
  max-width: 1234px;
  margin: 0 auto;
}

/* Bloco do título — Figma: x 1032, y 201, w 570 */
.hero__title-block {
  position: absolute;
  top: calc(201 / 925 * 100%);
  left: calc(100% * (1032 - 343) / 1234);
  width: 570px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  text-align: center;
}

.hero__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  border: 1px solid var(--white);
  border-radius: 8px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  white-space: nowrap;
}

.hero__title {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.2;
}
.hero__title .font-script { font-size: 32px; line-height: 1.2; }

/* Números — Figma: x 343, y 764, w 1234, h 84 */
.hero__stats {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(77 / 925 * 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 72px;
  padding: 12px 0;
  border-top: 2px solid var(--gold-line);
  border-bottom: 2px solid var(--gold-line);
  text-align: center;
  white-space: nowrap;
}
.hero__stat { line-height: 1.4; font-weight: 700; }
.hero__stat--area { font-size: 43px; }
.hero__stat--area .hero__stat-a { font-size: 36px; color: var(--white); }
.hero__stat--suites { font-size: 40px; color: var(--off-white); }
.hero__stat--suites span { font-size: 36px; font-weight: 500; }
.hero__stat--lazer { font-size: 36px; font-weight: 400; }
.hero__divider { display: flex; align-items: center; height: 50px; }
.hero__divider img { width: 1px; height: 50px; }

/* Seta — Figma: 40x40, centralizada, y 902 (metade sobre a borda) */
.hero__arrow {
  position: absolute;
  left: 50%;
  bottom: 0;
  z-index: 2;
  width: 40px;
  height: 40px;
  transform: translate(-50%, 50%);
  border-radius: 50%;
  transition: transform .3s ease;
}
.hero__arrow:hover { transform: translate(-50%, calc(50% + 4px)); }
.hero__arrow img { width: 40px; height: 40px; }

/* =========================================================
   COMPONENTES COMPARTILHADOS
   ========================================================= */
.container {
  width: 100%;
  max-width: calc(1073px + 2 * var(--gutter));
  margin: 0 auto;
  padding: 0 var(--gutter);
}

/* Fundo texturizado — Figma: x -968, y 902 (23px acima do fim do hero), 3661 x 2985, opacidade 45% */
.textured {
  position: relative;
  isolation: isolate;
  background: var(--bg);
  overflow: hidden;
}
.textured::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -23px;
  bottom: 0;
  left: calc(-968 / 1920 * 100%);
  width: calc(3661 / 1920 * 100%);
  background: url("../assets/img/textura.jpg") top center / 100% auto repeat-y;
  opacity: .45;
  pointer-events: none;
}

/* Eyebrow: "SOBRE | OLIVE GARDEN" */
.eyebrow {
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: .98px;
  text-transform: uppercase;
  color: var(--text);
}
.eyebrow strong { font-weight: 700; color: var(--green); }
.eyebrow__sep { font-weight: 700; }
.eyebrow__light { font-family: "area-normal-light", var(--font-base); font-weight: 300; letter-spacing: 1.12px; }

.section-heading { display: flex; flex-direction: column; gap: 16px; }

.section-title {
  font-family: var(--font-script);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.4;
  color: var(--text);
}

/* =========================================================
   SEÇÃO 2 — SOBRE
   Figma: título x416 y1070 · texto x976 · vídeo y1242 (1920x750) · ícones y1924
   ========================================================= */
.about {
  position: relative;
  padding: 145px 0 114px;
}

/* Linhas decorativas — Figma: x 1577, y 924, 478 x 871 (cortadas na borda) */
.about__lines {
  position: absolute;
  z-index: 0;
  top: -1px;
  left: calc(1577 / 1920 * 100%);
  width: calc(478 / 1920 * 100%);
  height: auto;
  max-width: none;
  pointer-events: none;
}

.intro {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
}
.intro .section-heading { width: 446px; flex-shrink: 0; }

.intro__text {
  width: 513px;
  margin-top: 22px;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: -.16px;
  color: var(--black);
}

.about__media {
  position: relative;
  z-index: 1;
  margin-top: 62px;
  width: 100%;
  aspect-ratio: 1920 / 750;
  overflow: hidden;
  background: #9fbde0;
}
.about__video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 74%;
}

/* Ícones — Figma: cards 173 x 136, gap 60, sobrepostos 68px ao vídeo */
.features {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: 60px;
  margin-top: -68px;
  padding: 0 var(--gutter);
}
.feature {
  width: 173px;
  height: 136px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px;
  background: var(--green);
  border: 1.282px solid var(--gold);
  border-radius: 10.258px;
  text-align: center;
  transition: transform .3s ease, box-shadow .3s ease;
}
.feature:hover { transform: translateY(-4px); box-shadow: 0 10px 24px rgba(0, 0, 0, .18); }
.feature__icon { width: 56.418px; height: 56.418px; margin: 2.5px; flex-shrink: 0; }
.feature__label {
  font-family: "Inter", var(--font-base);
  font-size: 15.387px;
  line-height: 1.4;
  color: var(--white);
}

/* =========================================================
   SEÇÃO 3 — ÁREA DE LAZER
   Figma: título y2174 · texto y2205 · carrossel y2318 (slide 1312 x 500, gap 46)
   ========================================================= */
.leisure { position: relative; padding: 0 0 115px; }
.intro__text--low { margin-top: 31px; }

.carousel {
  --slide-w: min(1312px, calc(100vw - 2 * clamp(56px, 15.8vw, 304px)));
  --gap: 46px;
  --ratio: calc(500 / 1312);
  position: relative;
  margin-top: 30px;
  height: calc(var(--slide-w) * var(--ratio));
  touch-action: pan-y;
  user-select: none;
}

.carousel__track { position: relative; height: 100%; }

.carousel__slide {
  --offset: 0;
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--slide-w);
  height: 100%;
  transform: translateX(calc(-50% + var(--offset) * (var(--slide-w) + var(--gap))));
  transition: transform .6s cubic-bezier(.22, .61, .36, 1);
  cursor: pointer;
}
.carousel__slide.is-active { cursor: default; }
.carousel__slide.no-anim,
.carousel__slide.no-anim .slide-card__caption { transition: none; }

.slide-card {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--gold);
  border-radius: 8px;
  box-shadow: 8px 16px 32px rgba(0, 0, 0, .25);
  background: #2b2b2b;
}
.slide-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
  pointer-events: none;
}
.slide-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, #000 0%, rgba(102, 102, 102, 0) 44%);
  pointer-events: none;
}

.slide-card__caption {
  position: absolute;
  z-index: 1;
  left: 76px;
  bottom: 55px;
  width: 257px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  color: var(--white);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .4s ease .15s, transform .4s ease .15s;
}
.carousel__slide.is-active .slide-card__caption { opacity: 1; transform: none; }
.slide-card__title { font-size: 20px; line-height: 1.4; }
.slide-card__line { width: 21.5px; height: 2px; }
.slide-card__note { font-size: 12px; line-height: 1.4; }

/* Moldura fixa do slide central: setas + ampliar */
.carousel__frame {
  position: absolute;
  z-index: 3;
  top: 0;
  left: 50%;
  width: var(--slide-w);
  height: 100%;
  transform: translateX(-50%);
  pointer-events: none;
}
.carousel__frame > * { pointer-events: auto; }

.carousel__arrow {
  position: absolute;
  top: 50%;
  width: 28px;
  height: 28px;
  margin-top: -14px;
  border-radius: 50%;
  transition: transform .25s ease, filter .25s ease;
}
.carousel__arrow img { width: 28px; height: 28px; }
.carousel__arrow--prev { left: -14px; transform: rotate(90deg); }
.carousel__arrow--next { right: -14px; transform: rotate(-90deg); }
.carousel__arrow--prev:hover { transform: rotate(90deg) scale(1.15); }
.carousel__arrow--next:hover { transform: rotate(-90deg) scale(1.15); }

.carousel__expand {
  position: absolute;
  top: 30px;
  right: 26.7px;
  width: 45.3px;
  height: 45.4px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  color: var(--white);
  background: rgba(0, 0, 0, .17);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  transition: background-color .25s ease;
}
.carousel__expand:hover { background: rgba(0, 0, 0, .4); }

/* =========================================================
   SEÇÃO 4 — IMPLANTAÇÃO
   Figma: título y2933 · texto y2978 · planta 739x599 + legenda 570x400 (gap 46) em y3085
   ========================================================= */
.site-plan { position: relative; padding: 0 0 100px; }
.intro__text--plan { margin-top: 45px; }

.site-plan__body {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 46px;
  max-width: calc(1355px + 2 * var(--gutter));
  margin: 38px auto 0;
  padding: 0 var(--gutter);
}

/* Planta (Figma: frame 739 x 599) */
.plan {
  position: relative;
  flex: 0 1 739px;
  aspect-ratio: 739.086 / 599.07;
  container-type: inline-size;
}
/* Sombra: retângulo #1D1D1B 25% em multiply, mascarado pelo contorno da planta */
.plan__shadow {
  position: absolute;
  inset: 6.98% 4.68% 6.8% 5.16%;
  mix-blend-mode: multiply;
  -webkit-mask: url("../assets/icons/implantacao-sombra-mask.svg") 51% 50% / 111.03% 115.94% no-repeat;
  mask: url("../assets/icons/implantacao-sombra-mask.svg") 51% 50% / 111.03% 115.94% no-repeat;
  -webkit-mask-source-type: luminance;
  mask-mode: luminance; /* a máscara do Figma é preto/branco */
}
.plan__shadow img { width: 100%; height: 100%; }
.plan__img {
  position: absolute;
  top: 5.01%;
  left: 1.3%;
  width: 95.83%;
  height: 90.21%;
  object-fit: fill;
}

.plan__pin {
  position: absolute;
  top: var(--t);
  left: var(--l);
  width: max(22px, 5%);
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--olive);
  color: var(--green);
  font-weight: 700;
  font-size: max(11px, 2.98cqi);
  letter-spacing: .07em;
  line-height: 1;
  transition: transform .25s ease, background-color .25s ease, color .25s ease, box-shadow .25s ease;
}
.plan__pin.is-active {
  transform: scale(1.25);
  background: var(--green);
  color: var(--white);
  box-shadow: 0 0 0 4px rgba(144, 144, 93, .45);
  z-index: 2;
}

/* Legenda (Figma: 570 x 400, borda #90905d, colunas 192 / 285, gap 43) */
.plan-legend {
  flex: 0 0 570px;
  display: grid;
  grid-template-columns: 192px 285px;
  grid-template-rows: repeat(5, auto);
  grid-auto-flow: column;
  justify-content: center;
  column-gap: 43px;
  row-gap: 31px;
  padding: 32px 0;
  border: 1px solid var(--olive);
  border-radius: 8px;
  list-style: none;
}
.plan-legend li {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 1.54px;
  color: var(--green);
  white-space: nowrap;
  cursor: default;
}
.plan-legend__num {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--olive);
  transition: background-color .25s ease, color .25s ease;
}
.plan-legend li.is-active .plan-legend__num { background: var(--green); color: var(--white); }

/* =========================================================
   SEÇÃO 5 — GARAGEM + CTA
   Figma: faixa #90905d 999 x 412 (y3784) · foto 1031 x 412 à direita · CTA 1368 x 80 (y4265)
   ========================================================= */
.garage {
  position: relative;
  display: flex;
  min-height: 412px;
}

.garage__img {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(1031 / 1920 * 100%);
  height: 100%;
  object-fit: cover;
}

.garage__band {
  position: relative;
  z-index: 1;
  width: calc(999 / 1920 * 100%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 40px calc(144 / 1920 * 100vw) 40px max(24px, calc((100vw - 1088px) / 2));
  background: var(--olive);
  overflow: hidden;
}

/* Linhas — Figma: 226 x 412, giradas 180°, saindo 37px pela esquerda */
.garage__lines {
  position: absolute;
  top: 0;
  left: -37px;
  width: 226px;
  height: 100%;
  max-width: none;
  transform: rotate(180deg);
  pointer-events: none;
}

.garage__content {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 438px;
}
.garage__title {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -.22px;
  text-transform: uppercase;
  color: #44563c;
}
.garage__text {
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: -.16px;
  color: var(--white);
}

/* CTA */
.cta-bar-wrap { padding: 69px var(--gutter); }
.cta-bar {
  max-width: 1368px;
  min-height: 80px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 72px;
  padding: 16px 40px;
  border: 1px solid var(--green);
  border-radius: 4px;
}
.cta-bar__text {
  font-size: 24px;
  line-height: 1.2;
  color: var(--text);
}
.cta-bar__text strong { font-weight: 700; }
.cta-bar__text span { font-family: "area-normal-light", var(--font-base); font-weight: 300; }

/* =========================================================
   FUNDO VERDE TEXTURIZADO (seções 6 e 7)
   Figma: textura x -305, y 4414, 2649 de largura (recorte do topo)
   ========================================================= */
.green-textured {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--green);
}
.green-textured::before {
  content: "";
  position: absolute;
  z-index: -2;
  top: 0;
  bottom: 0;
  left: calc(-305 / 1920 * 100%);
  width: calc(2649 / 1920 * 100%);
  background: url("../assets/img/textura-verde.jpg") top center / 100% auto repeat-y;
  pointer-events: none;
}

/* Linhas — Figma: 1043 x 492 em (1048, +342) e (437, +834) */
.green-lines {
  position: absolute;
  z-index: -1;
  width: calc(1043 / 1920 * 100%);
  height: auto;
  max-width: none;
  pointer-events: none;
}
.green-lines--1 { top: 342px; left: calc(1048 / 1920 * 100%); }
.green-lines--2 { top: 834px; left: calc(437 / 1920 * 100%); }

.eyebrow--dark { color: var(--white); }
.eyebrow--dark strong,
.eyebrow--dark .eyebrow__sep { color: var(--olive); }
.section-title--light { color: var(--white); }

/* =========================================================
   SEÇÃO 6 — PLANTAS
   Figma: título (333, +85) · texto (901, +121) · bloco 1340 x 644 em (290, +228)
   ========================================================= */
.plans { position: relative; padding: 85px var(--gutter) 164px; }

.plans__intro {
  display: flex;
  align-items: flex-start;
  max-width: 1340px;
  margin: 0 auto;
  padding-left: 43px;
}
.plans__intro .section-heading { width: 446px; flex-shrink: 0; }
.plans__text {
  width: 513px;
  margin: 36px 0 0 122px;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: -.16px;
  color: var(--white);
}

.fp {
  position: relative;
  display: flex;
  align-items: center;
  gap: 7px;
  max-width: 1340px;
  margin: 29px auto 0;
  padding: 16px;
  border-radius: 8px;
  background: rgba(153, 153, 153, .4);
}

/* Card da planta — 745 x 612 */
.fp__card {
  flex: 744.846 1 0;
  min-width: 0;
  height: 612px;
  display: flex;
  flex-direction: column;
  gap: 13.625px;
  padding: 11.354px;
  border-radius: 4.542px;
  background: rgba(144, 144, 93, .7);
}

.fp__bar {
  flex-shrink: 0;
  min-height: 38.605px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 23.276px;
  padding: 4px 8px;
  border-radius: 4.542px;
  background: var(--gold);
}
.fp__bar-label,
.fp__tab { font-size: 12.49px; font-weight: 700; line-height: 1.4; color: var(--green); }
.fp__tabs { display: flex; gap: 23.276px; }
.fp__tab {
  width: 89.7px;
  height: 25.547px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: .568px solid var(--green);
  border-radius: 4.542px;
  background: #eeeed6;
  transition: background-color .25s ease, color .25s ease;
}
.fp__tab:hover { background: #fff; }
.fp__tab.is-active { background: var(--green); color: var(--white); }

.fp__mini-nav { position: relative; width: 66.423px; height: 26.115px; flex-shrink: 0; }
.fp__mini-nav img { width: 100%; height: 100%; }
.fp__mini-btn { position: absolute; top: 0; bottom: 0; width: 50%; border-radius: 13px; }
.fp__mini-btn--prev { left: 0; }
.fp__mini-btn--next { right: 0; }
.fp__mini-btn:hover { background: rgba(255, 255, 255, .12); }

.fp__sheet {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 9.083px;
  padding: 10.219px 13.625px;
  border-radius: 4.542px;
  background: var(--white);
}
.fp__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  color: var(--gold);
  font-weight: 700;
  line-height: 1.4;
}
.fp__area span { font-size: 15.896px; font-weight: 400; }
.fp__area strong { font-size: 29.521px; font-weight: 700; }
.fp__info { text-align: right; }
.fp__suites { font-size: 22.709px; }
.fp__final { font-size: 15.896px; }

/* Área do desenho — 695 x 455 */
.fp__drawing {
  position: relative;
  flex: 1;
  min-height: 0;
  overflow: hidden;
  border: .568px solid var(--olive);
  border-radius: 4.542px;
  background: var(--white);
}

/* Grupo da planta — Figma: 283 x 436, centralizado */
.fp__plan {
  position: absolute;
  top: 50%;
  left: 50%;
  height: 95.83%;
  aspect-ratio: 283.154 / 436.34;
  transform: translate(-50%, -50%);
  transition: opacity .3s ease;
}
.fp__shadow {
  position: absolute;
  inset: 0;
  mix-blend-mode: multiply;
  -webkit-mask: url("../assets/icons/planta-sombra-mask.svg") 0 0 / 100% 100% no-repeat;
  mask: url("../assets/icons/planta-sombra-mask.svg") 0 0 / 100% 100% no-repeat;
  -webkit-mask-source-type: luminance;
  mask-mode: luminance;
}
.fp__shadow img {
  position: absolute;
  left: 7.61%;
  top: 7.62%;
  width: 84.73%;
  height: 86.97%;
}
.fp__plan-img {
  position: absolute;
  left: 2.15%;
  top: 4.34%;
  width: 94.35%;
  height: 93%;
  clip-path: inset(0 1.81% 1.81% 0);
}

/* "R. Ramiro Barcelos" — Figma: 17.6 x 212, 20px à esquerda do grupo da planta */
.fp__street {
  position: absolute;
  top: 28.3%;
  left: -7.07%;
  width: 6.22%;
  height: 48.68%;
  pointer-events: none;
}

/* Planta horizontal (147 m²) — Figma: 479 x 228, centralizada, sem sombra */
.fp__plan--wide {
  height: auto;
  width: 68.95%;
  aspect-ratio: 479.154 / 227.664;
}
.fp__plan--wide .fp__shadow { display: none; }
.fp__plan--wide .fp__plan-img {
  inset: 0;
  width: 100%;
  height: 100%;
  clip-path: none;
}
/* Rua — Figma: 17.6 x 212, 18px à esquerda da planta */
.fp__plan--wide .fp__street {
  top: 14.8%;
  left: -3.85%;
  width: 3.67%;
  height: 93.3%;
}
/* Planta 141 m² — Figma: 471 x 242 */
.fp__plan--141 { width: 67.78%; aspect-ratio: 471 / 242; }
.fp__plan--141 .fp__street {
  top: 6.16%;
  left: -4.78%;
  width: 3.74%;
  height: 87.78%;
}

/* Rosa dos ventos — Figma: 53.3 x 73.9, canto inferior direito */
.fp__compass {
  position: absolute;
  right: 2.45%;
  bottom: 3.1%;
  width: 7.67%;
  min-width: 34px;
  aspect-ratio: 53.31 / 73.9;
}
.fp__compass img { position: absolute; width: auto; height: auto; }
.fp__compass-circle { inset: 27.88% .01% -.01% .01%; width: 99.98% !important; }
.fp__compass-arrow { inset: 18.42% 50.01% 36.06% 26.81%; width: 23.18% !important; height: 45.52% !important; }
.fp__compass-n { inset: 0 62.52% 83.3% 16.84%; width: 20.64% !important; height: 16.7% !important; }

.fp__empty {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  color: var(--olive);
}
.fp__empty[hidden] { display: none; }

.fp__expand {
  position: absolute;
  z-index: 2;
  top: 16.46px;
  right: 33.32px;
  width: 25.718px;
  height: 25.779px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 2.271px;
  color: var(--white);
  background: rgba(0, 0, 0, .17);
  -webkit-backdrop-filter: blur(9px);
  backdrop-filter: blur(9px);
  transition: background-color .25s ease;
}
.fp__expand:hover { background: rgba(0, 0, 0, .4); }
.fp__expand--photo { top: 29px; right: 30.28px; }

/* Foto — 556 x 612 (imagem 536 x 594) */
.fp__photo {
  position: relative;
  flex: 556 1 0;
  min-width: 0;
  height: 612px;
  padding: 10px;
  border-radius: 8px;
  background: rgba(144, 144, 93, .7);
}
.fp__photo-inner {
  position: relative;
  height: 100%;
  overflow: hidden;
  border-radius: 8px;
}
.fp__photo-img { width: 100%; height: 100%; object-fit: cover; object-position: 17.4% center; }
.fp__photo-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0) 18.855%);
}
.fp__caption {
  position: absolute;
  left: 45px;
  bottom: 52px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  color: var(--white);
}

/* Setas grandes */
.fp__arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 40px;
  height: 40px;
  margin-top: -20px;
  border-radius: 50%;
  transition: transform .25s ease;
}
.fp__arrow img { width: 40px; height: 40px; }
.fp__arrow--prev { left: 47px; transform: rotate(90deg); }
.fp__arrow--next { right: 46px; transform: rotate(-90deg); }
.fp__arrow--prev:hover { transform: rotate(90deg) scale(1.12); }
.fp__arrow--next:hover { transform: rotate(-90deg) scale(1.12); }

/* =========================================================
   SEÇÃO 7 — VÍDEO CONCEITO
   Figma: título 640 centralizado (y5450) · player 1310 x 594 (y5611)
   O fundo verde termina a 308px do topo do player (y5919); abaixo é cinza.
   ========================================================= */
.concept { position: relative; padding: 0 var(--gutter) 109px; }

.concept__heading {
  max-width: 640px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.concept__frame {
  position: relative;
  max-width: 1310px;
  margin: 47px auto 0;
}
/* Faixa cinza que começa em 308/594 da altura do player e vai até o fim do bloco verde */
.concept__frame::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: calc(308 / 594 * 100%);
  bottom: -400px;
  left: calc(50% - 50vw);
  width: 100vw;
  background: var(--bg);
}

.video-player {
  position: relative;
  aspect-ratio: 1310 / 594;
  overflow: hidden;
  border: 1px solid var(--green);
  border-radius: 8px;
  background: #d9d9d9 center / cover no-repeat;
}
.video-player iframe,
.video-player video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: #000;
}

.video-player__play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 120px;
  height: 120px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  transition: transform .3s ease;
}
.video-player__play img { width: 100%; height: 100%; }
.video-player__play:hover { transform: translate(-50%, -50%) scale(1.08); }
.video-player.is-playing .video-player__play { display: none; }

/* =========================================================
   SEÇÃO 8 — LOCALIZAÇÃO
   Figma: título y6314 · texto y6350 · mapa 1419 x 869 (y6446) · textos y7359
   ========================================================= */
.location { position: relative; padding: 0 0 87px; background: var(--bg); }
.location .intro .section-heading { width: 528px; }
.location__title { width: 521px; max-width: 100%; }
.intro__text--location { margin-top: 36px; width: 528px; }

.map {
  position: relative;
  max-width: calc(1419px + 2 * var(--gutter));
  margin: 18px auto 0;
  padding: 0 var(--gutter);
}
.map__frame {
  position: relative;
  aspect-ratio: 1419.165 / 869.101;
  overflow: hidden;
  border: 1px solid var(--olive);
  border-radius: 8px;
  background: #cfd3c8;
}
/* Tela com a proporção do print (1841 x 869), centralizada e cobrindo a caixa */
.map__canvas {
  position: absolute;
  top: 0;
  left: 50%;
  height: 100%;
  min-width: 100%;
  aspect-ratio: 1841 / 869;
  transform: translateX(-50%);
}
.map__img { width: 100%; height: 100%; object-fit: cover; }
/* Pin — Figma: (622, 365) no mapa → 45.25% / 42% da imagem */
.map__pin {
  position: absolute;
  left: 45.25%;
  top: 42%;
  width: 3.31%;
  min-width: 34px;
  height: auto;
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .25));
}

/* Botões — Figma: topo 46.7px, direita 50px, gap 12 */
.map__actions {
  position: absolute;
  top: 46.7px;
  right: calc(var(--gutter) + 50px);
  display: flex;
  gap: 12px;
}
.map__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  padding: 12px 24px;
  border: 1px solid var(--green);
  border-radius: 8px;
  background: var(--olive);
  color: var(--white);
  font-size: 14px;
  line-height: 1.3;
  white-space: nowrap;
  transition: background-color .25s ease, transform .25s ease;
}
.map__btn:hover { background: var(--green); }
.map__btn:active { transform: translateY(1px); }

.location__texts {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  margin-top: 44px;
}
.location__text {
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: -.16px;
  color: var(--black);
}
.location__text--left { width: 467px; }
.location__text--right { width: 528px; }

/* =========================================================
   SEÇÃO 9 — CONTATO
   Figma: bloco 1139 centralizado (y7534) · gap 35 · campos 60px · fonte 21px
   ========================================================= */
.contact { padding: 0 var(--gutter) 78px; background: var(--bg); }
.contact__inner {
  max-width: 1139px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 35px;
  text-align: center;
}
.eyebrow--center { text-align: center; }
.eyebrow--center strong,
.eyebrow--center .eyebrow__sep { color: var(--olive); font-weight: 700; }
.contact__title {
  max-width: 960px;
  font-family: var(--font-script);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.2;
  color: var(--text);
  padding-bottom: 2px;
}
.contact__lead {
  margin-top: -2px;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: -.16px;
  color: var(--text);
}

.form {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: left;
}
.form__field { width: 100%; display: flex; flex-direction: column; gap: 18.7px; }
.form__label {
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .21px;
  color: var(--text);
}
.form__input {
  width: 100%;
  height: 60px;
  padding: 0 30.4px;
  border: 1.169px solid var(--text);
  border-radius: 8px;
  background: rgba(255, 255, 255, .3);
  font: inherit;
  font-size: 21px;
  line-height: 1;
  letter-spacing: .21px;
  color: var(--text);
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.form__input::placeholder { color: #999; opacity: .45; }
.form__input:focus { outline: none; border-color: var(--green); background: rgba(255, 255, 255, .6); box-shadow: 0 0 0 3px rgba(68, 86, 61, .15); }
.form__field.is-invalid .form__input { border-color: #b3261e; }
.form__error { min-height: 0; margin-top: -10px; font-size: 13px; color: #b3261e; }
.form__error:empty { display: none; }

.form__submit {
  width: 100%;
  height: 60px;
  border-radius: 8px;
  background: var(--green);
  color: var(--white);
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .21px;
  transition: background-color .25s ease, opacity .25s ease;
}
.form__submit:hover { background: #56704d; }
.form__submit:disabled { opacity: .6; cursor: wait; }

.form__consent {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: var(--font-figtree);
  font-size: 14px;
  line-height: 1.25;
  color: var(--text);
  cursor: pointer;
}
.form__consent input { position: absolute; opacity: 0; width: 18.7px; height: 18.7px; margin: 0; cursor: pointer; }
.form__check {
  flex-shrink: 0;
  width: 18.7px;
  height: 18.7px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.3px solid var(--text);
  border-radius: 4px;
}
.form__check img { width: 15.6px; height: 15.6px; opacity: 0; transition: opacity .15s ease; }
.form__consent input:checked + .form__check { border-color: transparent; }
.form__consent input:checked + .form__check img { opacity: 1; }
.form__consent input:focus-visible + .form__check { box-shadow: 0 0 0 3px rgba(68, 86, 61, .3); }
.form__consent.is-invalid .form__check { border-color: #b3261e; }
.form__terms { text-decoration: underline; }
.form__terms:hover { color: var(--green); }

.form__status { font-size: 15px; text-align: center; color: var(--green); }
.form__status:empty { display: none; }
.form__status.is-error { color: #b3261e; }

/* =========================================================
   SEÇÃO 10 — FICHA TÉCNICA
   Figma: 1553 x 682 (x184, y8326) · borda 2px dourada · padding 40 207 40 199
   ========================================================= */
/* Os últimos 18px ficam transparentes: a foto da seção seguinte começa por trás da ficha */
.specs { position: relative; z-index: 2; padding: 0 var(--gutter); background: linear-gradient(var(--bg) calc(100% - 18px), transparent 0); }
.specs__box {
  position: relative;
  isolation: isolate;
  max-width: 1553px;
  min-height: 682px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 59px;
  padding: 40px 207px 40px 199px;
  overflow: hidden;
  border: 2px solid var(--gold);
  border-radius: 8px;
  background: var(--green) url("../assets/img/textura-verde.jpg") center / cover no-repeat;
  color: var(--white);
}
.specs__eyebrow { font-weight: 400; }
.specs__eyebrow .eyebrow__light { color: var(--white); }

.specs__grid {
  width: 100%;
  display: grid;
  grid-template-columns: 533px 1fr;
  column-gap: 135px;
  row-gap: 75px;
  font-size: 20px;
  line-height: 1.4;
}
.specs__item strong { font-weight: 700; }
.specs__item--center { align-self: center; }
.specs__item--narrow { max-width: 475px; }

/* =========================================================
   SEÇÃO 11 — IMOBILIÁRIA VACARIA + MRD
   Figma: imagem 1952 x 738 (y8990, 18px sob a ficha) · logos y+106 / y+144 · texto (300, y+235) 523px
   ========================================================= */
.company {
  position: relative;
  z-index: 1;
  margin-top: -18px;
  height: max(600px, calc(738 / 1920 * 100vw));
  background: var(--white);
  overflow: hidden;
}
.company__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 0% 80%;
}
.company__content {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1px;
  width: calc(523px + max(24px, calc(300 / 1920 * 100vw)));
  padding: 106px 0 40px max(24px, calc(300 / 1920 * 100vw));
}
.company__logos { display: flex; align-items: center; gap: 45px; }
.company__logo--imob { width: 226px; height: 128px; object-fit: cover; }
.company__logo--mrd { width: 221px; height: 54px; object-fit: cover; }
.company__text {
  display: flex;
  flex-direction: column;
  gap: 22.4px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--black);
}

/* =========================================================
   RODAPÉ
   Figma: 1920 x 559 · padding 80 304 · gap 32 · conteúdo 1312 · Lato
   ========================================================= */
.footer {
  position: relative;
  z-index: 1;
  background: var(--green);
  color: var(--white);
  font-family: "Lato", var(--font-base);
}
.footer__inner {
  max-width: calc(1312px + 2 * var(--gutter));
  margin: 0 auto;
  padding: 80px var(--gutter);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
}
.footer__logo { width: 208px; }

.footer__body { width: 100%; display: flex; flex-direction: column; gap: 40px; }

.footer__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 78px;
  padding: 19px 0;
  border-top: 1px solid rgba(255, 255, 255, .2);
  border-bottom: 1px solid rgba(255, 255, 255, .2);
  font-size: 16px;
  line-height: 1.7;
}
.footer__place { display: flex; align-items: flex-end; gap: 22px; }
.footer__social { display: flex; align-items: center; gap: 25px; }
.footer__place img { width: 19px; height: 24px; }
.footer__social img { width: 22px; height: 22px; transition: transform .25s ease; }
.footer__social:hover img { transform: scale(1.12); }
.footer__place:hover span,
.footer__social:hover span { text-decoration: underline; text-underline-offset: 3px; }

.footer__legal {
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(255, 255, 255, .2);
  font-size: 12px;
  line-height: 1.25;
  letter-spacing: .25px;
}

.footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-size: 16px;
  line-height: 1.25;
}
.footer__link:hover { text-decoration: underline; }
.footer__credit { display: flex; align-items: flex-end; gap: 6px; }
.footer__credit a { margin-left: 12px; }
.footer__credit img { width: 93px; height: 18px; }
.footer__heart { color: #e0333a; }

/* Lightbox */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 64px 24px;
  background: rgba(10, 12, 9, .94);
  opacity: 0;
  transition: opacity .3s ease;
}
.lightbox[hidden] { display: none; }
.lightbox.is-open { opacity: 1; }
.lightbox__figure { display: flex; flex-direction: column; align-items: center; gap: 12px; min-width: 0; }
.lightbox__img {
  max-width: min(1600px, calc(100vw - 160px));
  max-height: calc(100vh - 160px);
  max-height: calc(100svh - 160px);
  border: 1px solid var(--gold);
  border-radius: 8px;
  object-fit: contain;
}
.lightbox__caption { font-size: 16px; color: var(--white); text-align: center; }
.lightbox__close {
  position: absolute;
  top: 16px;
  right: 20px;
  width: 44px;
  height: 44px;
  font-size: 36px;
  line-height: 1;
  color: var(--white);
}
.lightbox__close:hover { color: var(--gold); }
.lightbox__nav { flex-shrink: 0; width: 40px; height: 40px; }
.lightbox__nav img { width: 40px; height: 40px; }
.lightbox__nav--prev { transform: rotate(90deg); }
.lightbox__nav--next { transform: rotate(-90deg); }

/* =========================================================
   PÁGINA — TERMOS DE PRIVACIDADE (privacidade.html)
   ========================================================= */
.page-legal .header::before { opacity: 1; } /* sem hero: header sempre com fundo */

.legal { padding: calc(var(--header-h) + 72px) var(--gutter) 96px; }
.legal__box {
  max-width: 880px;
  margin: 0 auto;
  padding: 56px 64px;
  border: 1px solid var(--gold);
  border-radius: 8px;
  background: rgba(255, 255, 255, .82);
  color: var(--text);
  font-size: 16px;
  line-height: 1.6;
}
.legal__head { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; }
.legal__title { font-size: 36px; line-height: 1.25; }
.legal__updated { font-size: 14px; color: var(--olive); }
.legal h2 {
  margin: 36px 0 12px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--green);
}
.legal p + p { margin-top: 12px; }
.legal ul { margin: 12px 0; padding-left: 20px; list-style: disc; }
.legal li + li { margin-top: 6px; }
.legal li::marker { color: var(--gold); }
.legal strong { font-weight: 700; }
.legal__link { color: var(--green); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.legal__link:hover { color: var(--gold); }
.legal__back { margin-top: 40px !important; }

@media (max-width: 767px) {
  .legal { padding: calc(var(--header-h) + 32px) var(--gutter) 56px; }
  .legal__box { padding: 32px 20px; font-size: 15px; }
  .legal__title { font-size: 28px; }
  .legal h2 { margin-top: 28px; font-size: 17px; }
}

/* =========================================================
   RESPONSIVO
   ========================================================= */

/* ---- Desktop médio (≤ 1440) ---- */
@media (max-width: 1440px) {
  .header__inner,
  .nav,
  .nav__list { gap: clamp(28px, 3.2vw, 64px); }

  .hero__content { max-width: calc(100% - 2 * clamp(32px, 6vw, 343px)); }
  .hero__title-block { left: auto; right: 0; width: 570px; }

  .hero__stats { gap: clamp(32px, 4vw, 72px); }
  .hero__stat--area { font-size: clamp(32px, 3vw, 43px); }
  .hero__stat--area .hero__stat-a,
  .hero__stat--suites span,
  .hero__stat--lazer { font-size: clamp(26px, 2.5vw, 36px); }
  .hero__stat--suites { font-size: clamp(30px, 2.78vw, 40px); }
}

/* ---- Tablet / notebook pequeno (≤ 1100): menu hambúrguer ---- */
@media (max-width: 1100px) {
  :root { --header-h: 76px; }

  .header__inner { justify-content: space-between; padding: 16px 24px; }

  .nav-toggle { display: inline-flex; }

  .nav {
    position: fixed;
    inset: 0;
    z-index: 101;
    flex-direction: column;
    justify-content: center;
    gap: 40px;
    padding: 96px 24px 48px;
    background: rgba(28, 36, 25, .97);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-12px);
    transition: opacity .3s ease, transform .3s ease, visibility .3s;
  }
  .nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .nav__list { flex-direction: column; gap: 28px; }
  .nav__link { font-size: 20px; }

  .hero {
    height: 100vh;
    height: 100svh;
    min-height: 640px;
    max-height: 1100px;
  }
  .hero__img {
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 38% 75%;
  }
  .hero__overlay {
    background:
      linear-gradient(to bottom, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, 0) 45%),
      linear-gradient(to bottom, rgba(0, 0, 0, 0) 55%, #000 100%);
  }

  .hero__content {
    max-width: none;
    padding: calc(var(--header-h) + 48px) 24px 72px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
  }
  .hero__title-block {
    position: static;
    width: 100%;
    max-width: 570px;
    gap: 28px;
  }
  .hero__stats {
    position: static;
    width: 100%;
    max-width: 900px;
  }
}

/* ---- Mobile (≤ 767) ---- */
@media (max-width: 767px) {
  .logo { width: 96px; }

  .hero__content { padding: calc(var(--header-h) + 32px) var(--gutter) 64px; }
  .hero__title-block { gap: 24px; }
  .hero__tag { font-size: 13px; letter-spacing: 2px; padding: 10px 14px; }
  .hero__title { font-size: clamp(21px, 6vw, 26px); gap: 4px; }
  .hero__title .font-script { font-size: clamp(24px, 6.9vw, 30px); }

  .hero__stats {
    flex-wrap: wrap;
    column-gap: 24px;
    row-gap: 4px;
    padding: 12px 0;
  }
  .hero__stat--area { flex-basis: 100%; font-size: 32px; }
  .hero__stat--area .hero__stat-a { font-size: 26px; }
  .hero__stats > .hero__divider:nth-child(2) { display: none; }
  .hero__divider { height: 32px; }
  .hero__divider img { height: 32px; }
  .hero__stat--suites { font-size: 26px; }
  .hero__stat--suites span,
  .hero__stat--lazer { font-size: 22px; }
}

/* ---- Seção 2 — Sobre ---- */
@media (max-width: 1240px) {
  .features { gap: clamp(16px, 2.6vw, 60px); }
}

@media (max-width: 1100px) {
  .about { padding: 112px 0 96px; }
  .intro { padding: 0 24px; }
  .intro .section-heading { width: auto; flex: 0 1 446px; }
  .intro__text { flex: 0 1 513px; width: auto; }

  .features {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 173px));
    justify-content: center;
    gap: 14px;
    padding: 0 24px;
  }
  .feature { width: auto; padding: 10px 8px; }
  .feature__label { font-size: 14px; }
}

@media (max-width: 900px) {
  .about__lines { display: none; }
  .intro { flex-direction: column; gap: 20px; }
  .intro .section-heading,
  .intro__text { flex: none; width: 100%; max-width: 560px; }
  .intro__text { margin-top: 0; }
  .about__media { margin-top: 40px; aspect-ratio: 16 / 9; }
  .about__video { object-position: 50% 60%; }
}

@media (max-width: 767px) {
  .about { padding: 80px 0 72px; }
  .intro { padding: 0 var(--gutter); }
  .section-title { font-size: 26px; }
  .eyebrow { font-size: 13px; }
  .intro__text { font-size: 15px; }
  .about__media { aspect-ratio: 4 / 3; margin-top: 32px; }

  .features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
    gap: 12px;
    margin-top: -48px;
    padding: 0 var(--gutter);
  }
  .feature { width: auto; height: 128px; }
  .feature:last-child { grid-column: 1 / -1; justify-self: center; width: calc(50% - 6px); }
  .feature__icon { width: 48px; height: 48px; }
  .feature__label { font-size: 14px; }
}

/* ---- Seção 3 — Área de lazer ---- */
@media (max-width: 1100px) {
  .leisure { padding-bottom: 96px; }
  .carousel { --gap: 32px; }
  .slide-card__caption { left: 40px; bottom: 36px; }
}

@media (max-width: 900px) {
  .intro__text--low { margin-top: 0; }
  .carousel { --ratio: calc(9 / 16); margin-top: 32px; }
}

@media (max-width: 767px) {
  .leisure { padding-bottom: 72px; }
  .carousel {
    --slide-w: calc(100vw - 2 * var(--gutter) - 32px);
    --gap: 12px;
    --ratio: 1.05;
    margin-top: 28px;
  }
  .slide-card { box-shadow: 4px 8px 20px rgba(0, 0, 0, .22); }
  .slide-card__img { object-position: center center; }
  .slide-card__caption { left: 20px; bottom: 22px; width: auto; right: 20px; }
  .slide-card__title { font-size: 18px; }
  .carousel__expand { top: 14px; right: 14px; width: 40px; height: 40px; }

  .lightbox { gap: 0; padding: 56px 8px; }
  .lightbox__img { max-width: calc(100vw - 16px); }
  .lightbox__nav { position: absolute; bottom: 24px; }
  .lightbox__nav--prev { left: calc(50% - 56px); }
  .lightbox__nav--next { right: calc(50% - 56px); }
}

/* ---- Seção 4 — Implantação ---- */
@media (max-width: 1300px) {
  .plan-legend { flex-basis: 500px; grid-template-columns: auto auto; column-gap: 32px; }
  .plan-legend li { font-size: 19px; letter-spacing: 1.2px; }
  .plan-legend__num { width: 38px; height: 38px; }
}

@media (max-width: 1100px) {
  .site-plan { padding-bottom: 88px; }
  .site-plan__body { flex-direction: column; gap: 40px; padding: 0 24px; }
  .plan { flex: none; width: 100%; max-width: 739px; }
  .plan-legend { flex: none; width: 100%; max-width: 570px; }
}

@media (max-width: 900px) {
  .intro__text--plan { margin-top: 0; }
}

@media (max-width: 767px) {
  .site-plan { padding-bottom: 72px; }
  .site-plan__body { margin-top: 28px; gap: 28px; padding: 0 var(--gutter); }
  .plan-legend {
    grid-template-columns: 1fr 1fr;
    justify-content: stretch;
    column-gap: 12px;
    row-gap: 16px;
    padding: 20px 16px;
  }
  .plan-legend li { font-size: 14px; letter-spacing: .6px; gap: 8px; white-space: normal; }
  .plan-legend__num { width: 30px; height: 30px; }
}

@media (max-width: 360px) {
  .map__actions { gap: 8px; }
  .map__btn { font-size: 13px; gap: 6px; }
  .plan-legend li { font-size: 13px; letter-spacing: .3px; }
  .plan-legend__num { width: 28px; height: 28px; }
}

/* ---- Seção 5 — Garagem + CTA ---- */
@media (min-width: 1101px) {
  /* No desktop a textura não repete (Figma: termina em y3887) */
  .textured::before { background-repeat: no-repeat; }
}

@media (max-width: 1300px) {
  .cta-bar { gap: 32px; }
  .cta-bar__text { font-size: 20px; }
}

@media (max-width: 1100px) {
  .garage { flex-direction: column; }
  .garage__band { width: 100%; padding: 56px 24px 56px 240px; }
  .garage__content { max-width: 560px; }
  .garage__img { position: static; width: 100%; height: auto; aspect-ratio: 2.5; }

  .cta-bar-wrap { padding: 56px 24px; }
  .cta-bar { flex-direction: column; gap: 16px; padding: 24px; text-align: center; }
}

@media (max-width: 767px) {
  .garage__lines { display: none; }
  .garage__band { padding: 48px var(--gutter); }
  .garage__title { font-size: 19px; }
  .garage__text { font-size: 15px; }
  .garage__img { aspect-ratio: 16 / 9; }

  .cta-bar-wrap { padding: 48px var(--gutter); }
  .cta-bar__text { font-size: 18px; }
  .cta-bar__text span { display: block; margin-top: 4px; }
  .cta-bar .btn { width: 100%; }
}

/* ---- Seção 6 — Plantas ---- */
@media (max-width: 1400px) {
  .plans__text { margin-left: auto; margin-right: 0; flex: 0 1 513px; width: auto; }
  .plans__intro { gap: 40px; padding-right: 24px; }
  .fp__bar, .fp__tabs { gap: 14px; }
  .fp__tab { width: 84px; }
}

@media (max-width: 1100px) {
  .green-lines--2 { display: none; }
  .green-lines--1 { top: 240px; left: 40%; width: 80%; }

  .plans { padding: 96px 24px 112px; }
  .plans__intro { padding: 0; }
  .plans__intro .section-heading { width: auto; flex: 0 1 446px; }

  .fp { flex-direction: column; align-items: stretch; gap: 10px; padding: 12px; max-width: 760px; }
  .fp__card { flex: none; height: auto; }
  .fp__drawing { flex: none; aspect-ratio: 694.85 / 455.31; }
  .fp__photo { flex: none; height: auto; aspect-ratio: 556 / 520; }
  .fp__arrow { display: none; } /* navegação fica pelas abas/setas da barra */
}

@media (max-width: 900px) {
  .plans__intro { flex-direction: column; gap: 20px; }
  .plans__intro .section-heading, .plans__text { flex: none; width: 100%; max-width: 560px; margin: 0; }
}

@media (max-width: 767px) {
  .plans { padding: 80px var(--gutter) 88px; }
  .fp { margin-top: 28px; padding: 8px; }
  .fp__card { padding: 8px; gap: 8px; }
  .fp__bar { flex-wrap: wrap; row-gap: 8px; column-gap: 8px; padding: 8px; }
  .fp__bar-label { flex-basis: 100%; text-align: center; }
  .fp__tabs { gap: 6px; }
  .fp__tab { width: auto; padding: 0 8px; }
  .fp__sheet { padding: 10px; }
  .fp__area span { font-size: 13px; }
  .fp__area strong { font-size: 24px; }
  .fp__suites { font-size: 18px; }
  .fp__final { font-size: 13px; }
  .fp__drawing { aspect-ratio: 1 / 1.05; }
  .fp__plan { height: 92%; }
  .fp__plan--wide { height: auto; width: 86%; }
  .fp__expand { top: 10px; right: 10px; width: 32px; height: 32px; }
  .fp__expand svg { width: 12px; height: 12px; }
  .fp__photo { aspect-ratio: 4 / 4.4; padding: 8px; }
  .fp__caption { left: 24px; bottom: 28px; }
}

/* ---- Seção 7 — Vídeo ---- */
@media (max-width: 1100px) {
  .concept { padding: 0 24px 96px; }
  .concept__frame { margin-top: 40px; }
}

@media (max-width: 767px) {
  .concept { padding: 0 var(--gutter) 72px; }
  .concept__frame { margin-top: 28px; }
  .video-player { aspect-ratio: 16 / 9; }
  .video-player__play { width: 76px; height: 76px; }
}

/* ---- Seção 8 — Localização ---- */
@media (max-width: 1100px) {
  .location { padding-bottom: 88px; }
  .intro__text--location { width: auto; }
  .location .intro .section-heading { width: auto; flex: 0 1 528px; }
  .map { padding: 0 24px; }
  .map__actions { right: 48px; top: 24px; }
  .location__texts { padding: 0 24px; }
  .location__text--left, .location__text--right { flex: 0 1 50%; width: auto; }
}

@media (max-width: 900px) {
  .intro__text--location { margin-top: 0; }
  .location .intro .section-heading { flex: none; width: 100%; max-width: 560px; }
  .map { margin-top: 32px; }
}

@media (max-width: 767px) {
  .location { padding-bottom: 72px; }
  .location__title { font-size: 22px; }
  .map { padding: 0 var(--gutter); }
  .map__frame { aspect-ratio: 4 / 3.6; }
  .map__actions { position: static; margin-top: 12px; }
  .map__btn { flex: 1; min-width: 0; padding: 12px 8px; }
  .location__texts { flex-direction: column; gap: 16px; margin-top: 28px; padding: 0 var(--gutter); }
  .location__text { font-size: 15px; }
}

/* ---- Seção 9 — Contato ---- */
@media (max-width: 1100px) {
  .contact { padding: 0 24px 88px; }
}

@media (max-width: 767px) {
  .contact { padding: 0 var(--gutter) 72px; }
  .contact__inner { gap: 24px; }
  .contact__title { font-size: 24px; }
  .contact__lead { font-size: 15px; }
  .form { gap: 16px; }
  .form__field { gap: 10px; }
  .form__label { font-size: 17px; }
  .form__input { height: 52px; padding: 0 18px; font-size: 16px; } /* 16px evita zoom no iOS */
  .form__submit { height: 54px; font-size: 18px; }
  .form__consent { font-size: 13px; }
}

/* ---- Seção 10 — Ficha técnica ---- */
@media (max-width: 1500px) {
  .specs__box { padding: 40px clamp(40px, 8vw, 160px); }
  .specs__grid { grid-template-columns: 1fr 1fr; column-gap: clamp(40px, 6vw, 135px); }
}

@media (max-width: 1100px) {
  .specs { padding: 0 24px; }
  .specs__box { min-height: 0; gap: 40px; padding: 56px 40px; }
  .specs__grid { row-gap: 40px; font-size: 18px; }
}

@media (max-width: 767px) {
  .specs { padding: 0 var(--gutter); }
  .specs__box { gap: 28px; padding: 40px 20px; }
  .specs__grid { grid-template-columns: 1fr; row-gap: 20px; font-size: 16px; }
  .specs__item + .specs__item { padding-top: 20px; border-top: 1px solid rgba(197, 163, 56, .35); }
  .specs__item--narrow { max-width: none; }
}

/* ---- Seção 11 — Imobiliária + MRD ---- */
@media (max-width: 1100px) {
  .company { height: auto; min-height: 640px; }
  .company__content { padding-top: 72px; padding-bottom: 72px; width: min(100%, calc(523px + 48px)); }
  .company__logo--imob { width: 190px; height: 107.6px; }
  .company__logo--mrd { width: 180px; height: 44px; }
  .company__text { font-size: 15px; }
}

@media (max-width: 767px) {
  .company { min-height: 0; display: flex; flex-direction: column; margin-top: -18px; }
  .company__bg { position: static; order: 2; height: auto; aspect-ratio: 4 / 3; object-position: 82% 70%; }
  .company__content { order: 1; width: 100%; padding: 64px var(--gutter) 32px; }
  .company__logos { gap: 24px; }
  .company__logo--imob { width: 150px; height: 85px; }
  .company__logo--mrd { width: 140px; height: 34px; }
  .company__text { margin-top: 12px; font-size: 15px; }
}

/* ---- Rodapé ---- */
@media (max-width: 1100px) {
  .footer__inner { padding: 64px 24px; }
}

@media (max-width: 767px) {
  .footer__inner { padding: 48px var(--gutter) 40px; gap: 28px; }
  .footer__logo { width: 160px; }
  .footer__body { gap: 28px; }
  .footer__bar { flex-direction: column; align-items: flex-start; gap: 12px; font-size: 15px; }
  .footer__legal { padding-bottom: 28px; }
  .footer__bottom { flex-direction: column; align-items: flex-start; gap: 16px; font-size: 14px; }
}

/* ---- Mobile pequeno (≤ 360) ---- */
@media (max-width: 360px) {
  .hero__stat--area { font-size: 28px; }
  .hero__stat--area .hero__stat-a { font-size: 22px; }
  .hero__stat--suites { font-size: 22px; }
  .hero__stat--suites span,
  .hero__stat--lazer { font-size: 19px; }
  .hero__stats { column-gap: 16px; }
}

/* ---- Telas baixas em paisagem (celular deitado) ---- */
@media (max-width: 1100px) and (max-height: 520px) and (orientation: landscape) {
  .hero { height: auto; min-height: 100svh; max-height: none; }
  .hero__content { gap: 32px; padding-bottom: 56px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
