*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
img  { display: block; max-width: 100%; }
a    { text-decoration: none; color: inherit; }

/* ─── DESIGN TOKENS ─────────────────────────────────── */
:root {
  --topbar-h: 38px;
  /* Azul profundo – identidade da marca */
  --petrol-950: #071e24;
  --petrol-900: #0e3b43;
  --petrol-800: #175060;
  --petrol-700: #1f6573;
  --petrol-500: #4fafb5;
  --petrol-300: #8fcfd3;
  --petrol-100: #d8f0f1;

  /* Ouro envelhecido – #C89B5B #B88746 #D4A373 */
  --gold-700: #8a6230;
  --gold-500: #c89b5b;
  --gold-400: #d4a373;
  --gold-300: #e2c49a;
  --gold-100: #f5eadb;

  /* Backgrounds */
  --cream:      #f0ebe3;
  --cream-dark: #e7d8c9;
  --white:      #f5f5f5;

  /* Texto */
  --ink:    #161616;
  --ink-60: rgba(22,22,22,.58);
  --ink-30: rgba(22,22,22,.25);

  /* Tipografia */
  --font-serif: 'Playfair Display', Georgia, serif;
  --font-sans:  'Raleway', sans-serif;
  --gap: clamp(1.5rem, 4vw, 4rem);

  /* Aged-gold gradient reutilizável */
  --gold-grad: linear-gradient(145deg, #e2c49a 0%, #b88746 38%, #d4a373 65%, #9a7038 100%);
}

/* ─── BASE ───────────────────────────────────────────── */
body { font-family: var(--font-sans); background: var(--cream); color: var(--ink); overflow-x: hidden; }
.container { width: min(1200px, 92vw); margin-inline: auto; }

/* ─── BOTÕES ─────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; gap: .65rem;
  font-family: var(--font-sans); font-weight: 600;
  font-size: .75rem; letter-spacing: .2em; text-transform: uppercase;
  padding: 1rem 2.6rem; border: none; cursor: pointer;
  transition: transform .35s ease, box-shadow .35s ease, background .35s ease, opacity .35s ease;
}
.btn:hover { transform: translateY(-3px); }

.btn-gold {
  background: linear-gradient(135deg, #c89b5b 0%, #b07830 45%, #d4a373 75%, #b88746 100%);
  color: #fff;
  box-shadow: 0 6px 22px rgba(184,135,70,.32), inset 0 1px 0 rgba(255,225,170,.22);
  text-shadow: 0 1px 2px rgba(0,0,0,.28);
}
.btn-gold:hover {
  background: linear-gradient(135deg, #d4a373 0%, #c08840 45%, #e2c49a 75%, #c89b5b 100%);
  box-shadow: 0 10px 32px rgba(184,135,70,.42), inset 0 1px 0 rgba(255,235,190,.28);
}

.btn-outline {
  background: transparent;
  color: rgba(255,255,255,.88);
  border: 1px solid rgba(255,255,255,.38);
  letter-spacing: .18em;
}
.btn-outline:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.65);
  color: #fff;
}

.btn-outline-dark {
  background: transparent;
  color: var(--petrol-900);
  border: 1px solid rgba(14,59,67,.35);
  letter-spacing: .18em;
}
.btn-outline-dark:hover {
  background: var(--petrol-900);
  color: var(--white);
  border-color: var(--petrol-900);
}

/* ─── TIPOGRAFIA GLOBAL ──────────────────────────────── */
.tag {
  display: inline-block; font-size: .6rem;
  letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold-500); font-weight: 600; margin-bottom: .75rem;
}
.tag-light { color: var(--gold-300); }

.section-title {
  font-family: var(--font-serif);
  font-size: clamp(1.9rem, 3.8vw, 3rem);
  font-weight: 500; line-height: 1.18; color: var(--petrol-900);
}
.section-title em {
  font-style: italic;
  background: var(--gold-grad);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  filter: drop-shadow(0 1px 3px rgba(155,105,40,.25));
}
.section-title-light { color: var(--white); }

.rule, .rule-center, .rule-light { display: none; }

.lead { font-size: clamp(.9rem, 1.5vw, 1.04rem); line-height: 1.95; color: var(--ink-60); font-weight: 400; }
.lead-light { color: rgba(255,255,255,.68); }

/* ─── TOPBAR ─────────────────────────────────────────── */
.topbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 95;
  height: var(--topbar-h);
  background: var(--petrol-950);
  border-bottom: 1px solid rgba(200,155,91,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 5vw;
}
.topbar-inner {
  display: flex;
  align-items: center;
  gap: .65rem;
  overflow: hidden;
}
.topbar-badge {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  background: linear-gradient(135deg,#c89b5b 0%,#a87030 45%,#d4a373 75%,#b88746 100%);
  padding: .18rem .7rem;
  font-size: .5rem;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: #fff;
  font-weight: 700;
  flex-shrink: 0;
  white-space: nowrap;
}
.topbar-text {
  font-size: .58rem;
  letter-spacing: .06em;
  color: rgba(255,255,255,.58);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.topbar-text strong { color: rgba(255,255,255,.88); font-weight: 600; }
.topbar-sep {
  width: 1px; height: 14px;
  background: rgba(200,155,91,.22);
  flex-shrink: 0;
}
.topbar-link {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .56rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gold-400);
  flex-shrink: 0;
  white-space: nowrap;
  transition: color .2s;
}
.topbar-link:hover { color: var(--gold-300); }
.topbar-link i { font-size: .5rem; transition: transform .2s; }
.topbar-link:hover i { transform: translateX(3px); }
@media (max-width: 600px) {
  .topbar-text { display: none; }
  .topbar-sep  { display: none; }
}

/* ─── NAV DESTAQUE ───────────────────────────────────── */
.nav-links a.nav-destaque {
  color: var(--gold-400);
  position: relative;
}
.nav-links a.nav-destaque::before {
  content: '';
  display: inline-block;
  width: 5px; height: 5px;
  background: var(--gold-500);
  border-radius: 50%;
  margin-right: .4rem;
  vertical-align: middle;
  position: relative;
  top: -1px;
  animation: destaquePulse 2s ease-in-out infinite;
}
@keyframes destaquePulse {
  0%,100% { opacity: 1; transform: scale(1); }
  50%      { opacity: .5; transform: scale(1.5); }
}

/* ─── NAV ────────────────────────────────────────────── */
#site-nav {
  position: fixed; inset-block-start: 0; inset-inline: 0; z-index: 90;
  padding: 1.1rem 5vw;
  display: flex; align-items: center; justify-content: space-between;
  transition: background .4s ease, backdrop-filter .4s ease, box-shadow .4s ease;
}
#site-nav.solid {
  background: rgba(7,30,36,.94);
  backdrop-filter: blur(18px) saturate(1.5);
  -webkit-backdrop-filter: blur(18px) saturate(1.5);
  box-shadow: 0 1px 0 rgba(200,155,91,.12), 0 4px 28px rgba(0,0,0,.28);
}

.nav-brand { display: flex; flex-direction: column; line-height: 1; gap: .22rem; }
.nav-brand-name {
  font-family: var(--font-serif); font-size: 1.42rem; font-weight: 700; letter-spacing: .02em;
  background: var(--gold-grad);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  filter: drop-shadow(0 0 5px rgba(184,135,70,.28));
}
.nav-brand-sub {
  font-size: .52rem; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold-400); font-weight: 500; opacity: .85;
}

.nav-links { display: flex; align-items: center; gap: 2.2rem; list-style: none; }
.nav-links a {
  font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 500;
  color: var(--gold-400);
  transition: color .3s ease; position: relative;
}
.nav-links a::after {
  content: ''; position: absolute; bottom: -4px; left: 0;
  width: 0; height: 1px;
  background: var(--gold-grad);
  transition: width .35s ease;
}
.nav-links a:hover { color: var(--gold-300); }
.nav-links a:hover::after { width: 100%; }
.nav-links a.active { color: var(--gold-300); }
.nav-links a.active::after { width: 100%; }

.nav-cta { display: none; }
@media(min-width: 768px) { .nav-cta { display: inline-flex; } }
.nav-links a.nav-cta { color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.28); }

.nav-toggle { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: .4rem; }
.nav-toggle span { display: block; width: 26px; height: 1.5px; background: var(--gold-300); transition: transform .3s, opacity .3s; }
@media(max-width: 900px) {
  .nav-links { display: none; }
  .nav-toggle { display: flex; }
  #site-nav.menu-open .nav-links {
    display: flex; flex-direction: column; position: fixed;
    inset-block-start: 64px; inset-inline: 0;
    background: var(--petrol-950); padding: 2.5rem 5vw; gap: 1.8rem;
    border-top: 1px solid rgba(200,155,91,.12);
  }
  #site-nav.menu-open .nav-links a { font-size: .88rem; }
}

/* ─── HERO ───────────────────────────────────────────── */
.hero { position: relative; min-height: 100svh; display: flex; align-items: center; overflow: hidden; }

.hero-bg {
  position: absolute; inset: 0;
  background-image: url('capa.jpg');
  background-size: cover; background-position: center 35%;
  /* Reduz saturação – visual cinematográfico, menos turismo */
  filter: contrast(1.1) saturate(1.35) brightness(1.0) hue-rotate(-10deg);
}

.hero-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg,
      rgba(7,30,36,.58) 0%,
      rgba(7,30,36,.18) 38%,
      rgba(7,30,36,.52) 72%,
      rgba(7,30,36,.90) 100%
    ),
    linear-gradient(105deg, rgba(7,30,36,.38) 0%, transparent 54%);
}

.hero-grain { display: none; }

.hero::after {
  content: ''; position: absolute; bottom: -1px; left: 0; right: 0;
  height: 110px;
  background: var(--cream);
  clip-path: polygon(0 100%, 100% 100%, 100% 32%, 0 100%);
}

.hero-content {
  position: relative; z-index: 2;
  padding-block: 10rem 9rem;
  animation: fadeUp .95s ease both;
  width: 100%;
}
.hero-content .container { display: grid; grid-template-columns: 1fr; max-width: 820px; }

@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

/* Eyebrow elegante */
.hero-eyebrow {
  display: flex; align-items: center; gap: .9rem;
  margin-bottom: 2rem;
  animation: fadeUp .95s .12s ease both;
}
.hero-eyebrow::before {
  content: ''; width: 32px; height: 1px;
  background: var(--gold-500); flex-shrink: 0; opacity: .8;
}
.hero-eyebrow span {
  font-size: .58rem; letter-spacing: .36em; text-transform: uppercase;
  color: var(--gold-400); font-weight: 600; opacity: .9;
}

/* Título principal – hierarquia máxima */
.hero-title {
  font-family: var(--font-serif);
  font-size: clamp(2.4rem, 6vw, 4.4rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 1.8rem;
  letter-spacing: -.01em;
  animation: fadeUp .95s .22s ease both;
}
.hero-title em {
  font-style: italic; font-weight: 400;
  background: var(--gold-grad);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  filter: drop-shadow(0 1px 6px rgba(155,105,40,.38));
}

.hero-subtitle {
  font-size: clamp(.88rem, 1.8vw, 1.05rem);
  color: rgba(255,255,255,.65);
  line-height: 1.9; max-width: 520px;
  margin-bottom: 3.2rem;
  font-weight: 300; letter-spacing: .01em;
  animation: fadeUp .95s .34s ease both;
}

.hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; animation: fadeUp .95s .46s ease both; }

/* Scroll hint */
.hero-scroll-hint {
  position: absolute; bottom: 130px; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: .5rem;
  z-index: 2; opacity: .45;
}
.hero-scroll-hint span { font-size: .55rem; letter-spacing: .3em; text-transform: uppercase; color: var(--white); }
.hero-scroll-hint i { color: var(--gold-400); animation: bounce 2.2s infinite; }
@keyframes bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(5px); } }

/* Badges laterais */
.hero-badges {
  position: absolute; bottom: 140px; right: 5vw;
  display: flex; flex-direction: column; gap: .5rem;
  z-index: 2; animation: fadeUp .95s .58s ease both;
}
.badge {
  display: flex; align-items: center; gap: .6rem;
  background: rgba(7,30,36,.68);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(200,155,91,.18);
  padding: .6rem 1rem; color: rgba(255,255,255,.82);
}
.badge i { color: var(--gold-500); font-size: .85rem; }
.badge span { font-size: .65rem; letter-spacing: .06em; font-weight: 400; }
@media(max-width: 768px) { .hero-badges { display: none; } }

@media(max-width: 640px) {
  .hero-subtitle br { display: none; }
  .hero-content { padding-block: 7rem 5rem; }
}
@media(max-width: 480px) {
  .hero-content { padding-block: 6rem 4rem; }
  .hero-title   { font-size: clamp(1.9rem, 8vw, 2.4rem); }
  .hero-scroll-hint { display: none; }
}

/* Touch: remove efeito hover preso em cards */
@media (hover: none) {
  .prop-card:hover   { transform: none; box-shadow: none; }
  .feature-card:hover{ border-color: var(--cream-dark); transform: none; box-shadow: none; }
}

/* ─── SOBRE ──────────────────────────────────────────── */
.about { padding-block: clamp(5rem, 10vw, 9rem); background: var(--cream); }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 6vw, 7rem); align-items: center; }
@media(max-width: 768px) {
  .about-grid { grid-template-columns: 1fr; }
  .about-img-frame img { height: 380px; }
}
.about-visual { position: relative; }
.about-img-frame { position: relative; }
.about-img-frame::before {
  content: ''; position: absolute; inset: -14px -14px 14px 14px;
  border: 1px solid var(--gold-500); z-index: 0; pointer-events: none; opacity: .6;
  border-radius: 18px;
}
.about-img-frame img {
  position: relative; z-index: 1; width: 100%; height: 540px;
  object-fit: cover; object-position: center;
  filter: saturate(1.55) hue-rotate(-10deg) contrast(1.1) brightness(.98);
  border-radius: 16px;
}
.about-float-card {
  position: absolute; z-index: 2; bottom: -1.2rem; right: -1.2rem;
  width: 116px; height: 116px; border-radius: 50%;
  background: var(--petrol-900); border: 2px solid var(--gold-500);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: .7rem;
  box-shadow: 0 14px 36px rgba(0,0,0,.28);
}
.about-float-card .stat-num { font-family: var(--font-serif); font-size: 1.7rem; color: var(--gold-400); line-height: 1; margin-bottom: .25rem; }
.about-float-card .stat-txt { font-size: .46rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.55); font-weight: 500; line-height: 1.4; }
@media(max-width: 768px) {
  .about-float-card { width: 96px; height: 96px; bottom: -.8rem; right: -.6rem; padding: .55rem; }
  .about-float-card .stat-num { font-size: 1.4rem; }
  .about-float-card .stat-txt { font-size: .4rem; }
}
@media(max-width: 480px) {
  .about-img-frame::before { display: none; }
  .about-img-frame img { height: 320px; }
  .about-float-card { width: 80px; height: 80px; bottom: -.5rem; right: -.3rem; padding: .4rem; border-width: 1.5px; }
  .about-float-card .stat-num { font-size: 1.15rem; margin-bottom: .1rem; }
  .about-float-card .stat-txt { font-size: .34rem; letter-spacing: .08em; line-height: 1.3; }
}
.about-text .lead:first-of-type { margin-top: 2rem; }
.about-text p + p { margin-top: 1.2rem; }
.team-row {
  display: flex; align-items: center; gap: 1.1rem;
  margin-top: 2.4rem; padding: 1.2rem 1.4rem;
  background: var(--cream-dark); border-left: 2px solid var(--gold-500);
}
.team-avatar {
  width: 54px; height: 54px; border-radius: 50%;
  background: var(--petrol-900); display: flex; align-items: center; justify-content: center;
  color: var(--gold-400); font-size: 1.25rem; flex-shrink: 0;
}
.team-info strong { display: block; font-family: var(--font-serif); font-size: 1rem; color: var(--petrol-900); }
.team-info span { font-size: .7rem; letter-spacing: .1em; color: var(--ink-60); }

/* ─── FEATURES ───────────────────────────────────────── */
.features { background: var(--white); padding-block: clamp(5rem, 10vw, 9rem); }
.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2rem; margin-top: 3.5rem; }
.feature-card {
  padding: 2.6rem 2rem; border-top: 2px solid var(--cream-dark);
  transition: border-color .4s ease, transform .4s ease, box-shadow .4s ease;
  background: var(--cream);
}
.feature-card:hover { border-color: var(--gold-500); transform: translateY(-5px); box-shadow: 0 18px 45px rgba(0,0,0,.07); }
.feature-icon { width: 50px; height: 50px; background: var(--petrol-900); display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; border-radius: 12px; }
.feature-icon i { font-size: 1.15rem; color: var(--gold-400); }
.feature-card h4 { font-family: var(--font-serif); font-size: 1.1rem; color: var(--petrol-900); margin-bottom: .55rem; font-weight: 500; }
.feature-card p { font-size: .8rem; line-height: 1.9; color: var(--ink-60); }

/* ─── PROPERTY PREVIEW ───────────────────────────────── */
.prop-preview { background: var(--cream); padding-block: clamp(5rem, 10vw, 9rem); }
.prop-preview-header { margin-bottom: clamp(3rem, 6vw, 5rem); }
.prop-preview-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
@media(max-width: 900px) { .prop-preview-grid { grid-template-columns: repeat(2, 1fr); } }
@media(max-width: 560px) { .prop-preview-grid { grid-template-columns: 1fr; } }
.prop-card { background: var(--white); overflow: hidden; transition: transform .4s ease, box-shadow .4s ease; border: 1px solid var(--cream-dark); }
.prop-card:hover { transform: translateY(-7px); box-shadow: 0 22px 55px rgba(0,0,0,.1); }
.prop-card-img { position: relative; overflow: hidden; aspect-ratio: 4/3; }
.prop-card-img img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.82); transition: filter .45s ease, transform .45s ease; display: block; }
.prop-card:hover .prop-card-img img { filter: saturate(.95); transform: scale(1.05); }
.prop-card-badge { position: absolute; top: 1rem; left: 1rem; background: rgba(7,30,36,.88); padding: .32rem .85rem; }
.prop-card-badge span { font-size: .55rem; letter-spacing: .24em; text-transform: uppercase; color: var(--gold-300); font-weight: 600; }
.prop-card-price {
  position: absolute; bottom: 0; left: 0;
  background: linear-gradient(135deg, #c89b5b 0%, #a87030 45%, #d4a373 75%, #b88746 100%);
  padding: .48rem 1.15rem;
  box-shadow: inset 0 1px 0 rgba(255,215,150,.18), inset 0 -1px 0 rgba(0,0,0,.18);
}
.prop-card-price span { font-family: var(--font-serif); font-size: 1.12rem; color: #fff; font-weight: 700; text-shadow: 0 1px 2px rgba(0,0,0,.28); }
.prop-card-body { padding: 1.7rem 1.9rem 2.1rem; }
.prop-card-title { font-family: var(--font-serif); font-size: 1.12rem; color: var(--petrol-900); font-weight: 500; line-height: 1.32; margin-bottom: .9rem; }
.prop-card-stats { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin-bottom: 1.5rem; }
.prop-card-stat { display: flex; align-items: center; gap: .4rem; font-size: .73rem; color: var(--ink-60); }
.prop-card-stat i { color: var(--petrol-500); font-size: .75rem; }
.prop-card-link {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600;
  color: var(--petrol-800); border-bottom: 1px solid rgba(14,59,67,.28); padding-bottom: .18rem;
  transition: color .3s ease, border-color .3s ease;
}
.prop-card-link:hover { color: var(--gold-700); border-color: var(--gold-500); }
.prop-preview-cta { text-align: center; margin-top: clamp(3rem, 6vw, 4.5rem); }

/* ─── PAGE HERO – BANNER INTERNO ─────────────────────── */
.page-hero { background: var(--petrol-950); padding-block: 8rem 5rem; position: relative; overflow: hidden; text-align: center; }
.page-hero::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 80px; background: var(--cream); clip-path: polygon(0 100%, 100% 100%, 100% 40%, 0 100%); }
.page-hero-bg { position: absolute; inset: 0; background-image: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(79,175,181,.22) 0%, transparent 70%); pointer-events: none; }
.page-hero-content { position: relative; z-index: 2; }
.page-hero .breadcrumb { display: flex; align-items: center; justify-content: center; gap: .6rem; font-size: .6rem; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.38); margin-bottom: 1.5rem; }
.page-hero .breadcrumb a { color: var(--gold-400); transition: color .3s; }
.page-hero .breadcrumb a:hover { color: var(--gold-300); }
.page-hero .breadcrumb i { font-size: .45rem; }
.page-hero h1 { font-family: var(--font-serif); font-size: clamp(1.9rem, 5vw, 3.4rem); font-weight: 600; color: var(--white); line-height: 1.14; margin-bottom: 1rem; }
.page-hero h1 em { font-style: italic; font-weight: 400; background: var(--gold-grad); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.page-hero p { font-size: clamp(.86rem, 1.6vw, 1rem); color: rgba(255,255,255,.58); max-width: 520px; margin-inline: auto; line-height: 1.9; }
.page-hero-count { display: inline-flex; align-items: center; gap: .8rem; background: rgba(200,155,91,.1); border: 1px solid rgba(200,155,91,.25); padding: .6rem 1.4rem; margin-top: 2rem; }
.page-hero-count i { color: var(--gold-500); }
.page-hero-count span { font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.72); font-weight: 600; }

/* ─── FILTRO / ÂNCORAS ───────────────────────────────── */
.property-filter { background: var(--cream); padding: 2rem 0 0; }
.filter-tabs { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.filter-tab {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .63rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 600;
  padding: .6rem 1.4rem; border: 1px solid var(--cream-dark);
  color: var(--ink-60); background: var(--white); cursor: pointer;
  transition: all .3s ease;
}
.filter-tab:hover, .filter-tab.active { background: var(--petrol-900); color: var(--gold-300); border-color: var(--petrol-900); }
.filter-tab i { font-size: .72rem; }

/* ─── SEPARADOR ──────────────────────────────────────── */
.imovel-sep { background: var(--cream); padding: 3rem 4vw; text-align: center; }
.imovel-sep-inner { display: inline-flex; align-items: center; gap: 1.5rem; }
.imovel-sep-line { width: 55px; height: 1px; background: var(--gold-500); opacity: .5; }
.imovel-sep-text { font-size: .62rem; letter-spacing: .34em; text-transform: uppercase; color: var(--gold-700); font-weight: 600; }

/* ─── LISTING 1 – CHALÉS ─────────────────────────────── */
.listing { background: var(--petrol-950); padding-block: clamp(5rem, 10vw, 9rem); position: relative; overflow: hidden; }
.listing::before { content: ''; position: absolute; top: -1px; left: 0; right: 0; height: 80px; background: var(--cream); clip-path: polygon(0 0, 100% 0, 0 100%); }
.listing-bg-texture { position: absolute; inset: 0; background-image: radial-gradient(ellipse 70% 50% at 80% 50%, rgba(79,175,181,.15) 0%, transparent 70%); pointer-events: none; }
.listing-header { text-align: center; margin-bottom: clamp(3rem, 6vw, 5rem); }
.price-tag {
  display: inline-flex; flex-direction: column; align-items: center;
  background: linear-gradient(135deg, #c89b5b 0%, #a87030 45%, #d4a373 75%, #b88746 100%);
  padding: 1rem 2.5rem; margin-top: 1.5rem;
  box-shadow: 0 6px 20px rgba(155,105,40,.35), inset 0 1px 0 rgba(255,215,150,.18);
}
.price-tag .label { font-size: .55rem; letter-spacing: .3em; text-transform: uppercase; color: rgba(255,255,255,.65); font-weight: 600; margin-bottom: .2rem; }
.price-tag .price { font-family: var(--font-serif); font-size: 1.9rem; color: #fff; font-weight: 700; letter-spacing: .02em; line-height: 1; }
.listing-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); border: 1px solid rgba(255,255,255,.07); margin-bottom: 4rem; }
@media(max-width: 480px) { .listing-stats { grid-template-columns: repeat(2, 1fr); } }
.listing-stat { padding: 1.8rem; text-align: center; border-right: 1px solid rgba(255,255,255,.07); border-bottom: 1px solid rgba(255,255,255,.07); }
.listing-stat:last-child { border-right: none; }
.listing-stat i { font-size: 1.15rem; color: var(--gold-400); margin-bottom: .7rem; }
.listing-stat .v { font-family: var(--font-serif); font-size: 1.5rem; color: var(--white); display: block; line-height: 1; margin-bottom: .3rem; }
.listing-stat .l { font-size: .58rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.35); }
.chalets-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; margin-bottom: 3rem; }
@media(max-width: 640px) { .chalets-grid { grid-template-columns: 1fr; } }
.chalet-card { padding: 2.8rem; position: relative; overflow: hidden; }
.chalet-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; }
.chalet-card-1 { background: var(--petrol-900); }
.chalet-card-1::before { background: linear-gradient(90deg, var(--gold-500), var(--gold-300)); }
.chalet-card-2 { background: var(--petrol-800); }
.chalet-card-2::before { background: linear-gradient(90deg, #2d7a50, #5ec48a); }
.chalet-num { font-family: var(--font-serif); font-size: 7rem; color: rgba(255,255,255,.04); position: absolute; bottom: -.5rem; right: 1.5rem; line-height: 1; font-weight: 700; pointer-events: none; }
.chalet-card h3 { font-family: var(--font-serif); font-size: 1.5rem; color: var(--white); font-weight: 500; margin-bottom: .3rem; }
.chalet-card .chalet-sub { font-size: .6rem; letter-spacing: .26em; text-transform: uppercase; margin-bottom: 1.6rem; display: block; }
.chalet-card-1 .chalet-sub { color: var(--gold-300); }
.chalet-card-2 .chalet-sub { color: #7ecfa2; }
.chalet-features { list-style: none; display: flex; flex-direction: column; gap: .75rem; }
.chalet-features li { display: flex; align-items: flex-start; gap: .75rem; font-size: .83rem; color: rgba(255,255,255,.68); line-height: 1.55; }
.chalet-features li i { margin-top: .15rem; flex-shrink: 0; font-size: .75rem; }
.chalet-card-1 .chalet-features li i { color: var(--gold-400); }
.chalet-card-2 .chalet-features li i { color: #7ecfa2; }
.location-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07); padding: 1.4rem 2rem; margin-bottom: 3rem; }
.location-bar i { color: var(--gold-400); }
.location-bar span { font-size: .8rem; color: rgba(255,255,255,.65); letter-spacing: .04em; }
.location-bar strong { color: var(--white); }
.listing-cta { text-align: center; padding: 3.5rem 2rem; background: rgba(255,255,255,.025); border: 1px solid rgba(200,155,91,.15); }
.listing-cta p { font-family: var(--font-serif); font-size: clamp(1.15rem, 2.5vw, 1.55rem); font-style: italic; color: rgba(255,255,255,.68); max-width: 580px; margin: 0 auto 2rem; line-height: 1.7; font-weight: 400; }

/* ─── LISTING 3 – ITAMAMBUCA ─────────────────────────── */
.listing3 { background: var(--petrol-900); padding-block: clamp(5rem, 10vw, 9rem); position: relative; overflow: hidden; }
.listing3::before { content: ''; position: absolute; top: -1px; left: 0; right: 0; height: 80px; background: var(--cream); clip-path: polygon(0 0, 100% 0, 0 100%); }
.listing3-bg-texture { position: absolute; inset: 0; background-image: radial-gradient(ellipse 70% 50% at 80% 50%, rgba(200,155,91,.1) 0%, transparent 70%); pointer-events: none; }
.listing3-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; margin-top: 3rem; }
@media(max-width: 768px) { .listing3-grid { grid-template-columns: 1fr; } }
.listing3-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.listing3-photos img { width: 100%; height: 200px; object-fit: cover; filter: saturate(.82); transition: filter .35s, transform .35s; }
.listing3-photos img:hover { filter: saturate(.95); transform: scale(1.02); }
.listing3-photos img:first-child { grid-column: 1 / -1; height: 300px; }
.listing3-airbnb-badge { display: inline-flex; align-items: center; gap: .55rem; background: rgba(255,75,75,.12); border: 1px solid rgba(255,75,75,.28); padding: .5rem 1rem; margin-bottom: 1.2rem; }
.listing3-airbnb-badge i { color: #ff6b6b; font-size: .82rem; }
.listing3-airbnb-badge span { font-size: .63rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.75); font-weight: 600; }

/* ─── LISTING 4 – VILA GAIVOTA ───────────────────────── */
.listing4 { background: var(--petrol-700); padding-block: clamp(5rem, 10vw, 9rem); position: relative; overflow: hidden; }
.listing4::before { content: ''; position: absolute; top: -1px; left: 0; right: 0; height: 80px; background: var(--cream); clip-path: polygon(0 0, 100% 0, 0 100%); }
.listing4-bg-texture { position: absolute; inset: 0; background-image: radial-gradient(ellipse 70% 50% at 20% 50%, rgba(79,175,181,.15) 0%, transparent 70%); pointer-events: none; }
.listing4-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; margin-top: 3rem; }
@media(max-width: 768px) { .listing4-grid { grid-template-columns: 1fr; } }
.listing4-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.listing4-photos img { width: 100%; height: 220px; object-fit: cover; filter: saturate(.82); transition: filter .35s; }
.listing4-photos img:hover { filter: saturate(.95); }
.listing4-photos img:first-child { grid-column: 1 / -1; height: 300px; }
.listing4-leisure { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.listing4-leisure-item { display: inline-flex; align-items: center; gap: .45rem; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); padding: .42rem .88rem; font-size: .68rem; letter-spacing: .1em; color: rgba(255,255,255,.7); }
.listing4-leisure-item i { color: var(--gold-400); font-size: .72rem; }

/* ─── STATS COMPARTILHADOS ───────────────────────────── */
.listing2-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; margin-bottom: 1.5rem; }
.listing2-stat { background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.06); padding: 1.1rem; text-align: center; }
.listing2-stat i { font-size: .95rem; color: var(--gold-400); margin-bottom: .4rem; display: block; }
.listing2-stat .v { font-family: var(--font-serif); font-size: 1.2rem; color: var(--white); display: block; line-height: 1; margin-bottom: .2rem; }
.listing2-stat .l { font-size: .56rem; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.38); }
.listing2-price {
  background: linear-gradient(135deg, #c89b5b 0%, #a87030 45%, #d4a373 75%, #b88746 100%);
  padding: 1rem 1.8rem; display: inline-flex; flex-direction: column; margin-bottom: 1.5rem;
}
.listing2-price .label { font-size: .53rem; letter-spacing: .28em; text-transform: uppercase; color: rgba(255,255,255,.65); margin-bottom: .15rem; }
.listing2-price .price { font-family: var(--font-serif); font-size: 1.6rem; color: #fff; font-weight: 700; line-height: 1; }
.listing2-rule { display: none; }
.listing2-desc { font-size: .86rem; color: rgba(255,255,255,.65); line-height: 1.95; margin-bottom: 1.5rem; }
.listing2-obs { font-size: .76rem; color: rgba(255,255,255,.45); line-height: 1.75; font-style: italic; margin-bottom: 1.8rem; border-left: 1.5px solid rgba(200,155,91,.3); padding-left: 1rem; }

/* ─── CTA FINAL ──────────────────────────────────────── */
.cta-final { background: var(--petrol-900); padding-block: clamp(5rem, 10vw, 9rem); position: relative; overflow: hidden; text-align: center; }
.cta-final::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 80% 60% at 50% 110%, rgba(79,175,181,.18) 0%, transparent 70%); pointer-events: none; }
.cta-final-inner { position: relative; z-index: 1; }
.cta-final h2 { font-family: var(--font-serif); font-size: clamp(1.9rem, 4.5vw, 3.2rem); color: var(--white); font-weight: 400; line-height: 1.22; margin-bottom: 1rem; }
.cta-final h2 em { font-style: italic; background: var(--gold-grad); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; filter: drop-shadow(0 1px 4px rgba(155,105,40,.3)); }

/* ─── FOOTER ─────────────────────────────────────────── */
footer { background: var(--petrol-950); padding-block: 3.5rem 2rem; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); padding-bottom: 2.5rem; border-bottom: 1px solid rgba(255,255,255,.06); margin-bottom: 1.8rem; }
@media(max-width: 640px) { .footer-grid { grid-template-columns: 1fr; gap: 2rem; } }
.footer-brand p { font-size: .78rem; line-height: 1.95; color: rgba(255,255,255,.32); margin-top: 1rem; max-width: 300px; }
.footer-col h5 { font-size: .58rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gold-400); margin-bottom: 1.2rem; font-weight: 600; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: .65rem; }
.footer-col ul li { font-size: .76rem; color: rgba(255,255,255,.38); display: flex; align-items: center; gap: .55rem; line-height: 1.55; }
.footer-col ul li i { color: var(--gold-500); font-size: .78rem; }
.footer-col a { transition: color .3s ease; }
.footer-col a:hover { color: var(--gold-300); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .8rem; }
.footer-bottom p { font-size: .66rem; color: rgba(255,255,255,.18); letter-spacing: .06em; }

/* ─── NAV BACKDROP (mobile) ─────────────────────────── */
#nav-backdrop {
  display: none;
  position: fixed; inset: 0;
  background: rgba(4,12,19,.55);
  z-index: 88;
  cursor: pointer;
}
#site-nav.menu-open ~ #nav-backdrop { display: block; }

/* ─── WA FLOAT ───────────────────────────────────────── */
.wa-float { position: fixed; bottom: 2rem; right: 2rem; z-index: 80; display: flex; flex-direction: column; align-items: flex-end; gap: .65rem; }
.wa-tooltip { background: var(--petrol-900); color: var(--white); font-size: .7rem; letter-spacing: .06em; padding: .52rem .95rem; white-space: nowrap; box-shadow: 0 4px 18px rgba(0,0,0,.22); opacity: 0; transform: translateX(8px); transition: opacity .3s, transform .3s; pointer-events: none; }
.wa-float:hover .wa-tooltip { opacity: 1; transform: translateX(0); }
.wa-btn-float { width: 56px; height: 56px; background: #25d366; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.5rem; box-shadow: 0 6px 22px rgba(37,211,102,.38); transition: transform .3s, box-shadow .3s; animation: waPulse 3s ease infinite; }
.wa-btn-float:hover { transform: scale(1.1); box-shadow: 0 10px 30px rgba(37,211,102,.52); }
@keyframes waPulse { 0%,100% { box-shadow: 0 6px 22px rgba(37,211,102,.38); } 50% { box-shadow: 0 6px 28px rgba(37,211,102,.65), 0 0 0 10px rgba(37,211,102,.07); } }

/* ─── SCROLL REVEAL ──────────────────────────────────── */
[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
[data-reveal].revealed { opacity: 1; transform: translateY(0); }
[data-reveal-delay="1"] { transition-delay: .1s; }
[data-reveal-delay="2"] { transition-delay: .22s; }
[data-reveal-delay="3"] { transition-delay: .34s; }
[data-reveal-delay="4"] { transition-delay: .46s; }
[data-reveal-delay="5"] { transition-delay: .58s; }
[data-reveal-delay="6"] { transition-delay: .70s; }
