/* ============================================================
   Império Imobiliária — design tokens
   ============================================================ */
:root{
  --navy: #1E2833;
  --navy-2: #263140;
  --navy-soft: rgba(30,40,51,.06);
  --off-white: #F6F3EC;
  --off-white-2: #EFEAE0;
  --gold: #B8934F;
  --gold-soft: rgba(184,147,79,.14);
  --cream-text: #F6F3EC;
  --ink: #1E2833;
  --ink-70: rgba(30,40,51,.7);
  --ink-50: rgba(30,40,51,.5);
  --line: rgba(30,40,51,.12);

  --font-serif: 'Cormorant Garamond', serif;
  --font-sans: 'Jost', sans-serif;

  --container: 1240px;
  --header-h: 92px;
  --ease: cubic-bezier(.65,0,.35,1);
}

*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }
html{ scroll-behavior:smooth; scroll-padding-top: var(--header-h); }
body{
  margin:0;
  background:var(--off-white);
  color:var(--ink);
  font-family:var(--font-sans);
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
input,select,textarea{ font-family:inherit; }

.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 40px;
}

h1,h2,h3,h4{
  font-family:var(--font-serif);
  font-weight:600;
  margin:0;
  color:var(--ink);
}

/* ============ Reveal-on-scroll ============ */
.reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal.is-visible{ opacity:1; transform:none; }

/* ============================================================
   Buttons
   ============================================================ */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 32px;
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:500;
  border-radius:2px;
  border:1px solid transparent;
  transition:all .35s var(--ease);
  white-space:nowrap;
}
.btn-outline{
  border-color:rgba(246,243,236,.65);
  color:#fff;
  background:transparent;
}
.btn-outline:hover{
  background:#fff;
  color:var(--navy);
  border-color:#fff;
}
.btn-outline-dark{
  border-color:var(--ink);
  color:var(--ink);
  background:transparent;
}
.btn-outline-dark:hover{
  background:var(--ink);
  color:var(--off-white);
}
.btn-dark{
  background:var(--navy);
  color:var(--off-white);
  border-color:var(--navy);
}
.btn-dark:hover{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--navy);
}
.btn-login{
  padding:8px 18px;
  border:1px solid rgba(30,40,51,.4);
  color:var(--ink-70);
  font-size:10px;
  font-weight:400;
  letter-spacing:.16em;
  border-radius:20px;
}
.btn-login:hover{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--off-white);
}

/* ============================================================
   Header
   ============================================================ */
.site-header{
  position:fixed;
  top:0; left:0; right:0;
  height:var(--header-h);
  z-index:206;
  background:transparent;
  transition:background .4s var(--ease), box-shadow .4s var(--ease), height .3s var(--ease);
}
.site-header.is-scrolled{
  background:rgba(246,243,236,.92);
  backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--line);
  height:80px;
}
.header-inner{
  max-width:var(--container);
  margin:0 auto;
  height:100%;
  padding:0 40px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
}
.header-logo{ justify-self:center; display:flex; align-items:center; }
.header-logo img{ height:64px; width:auto; transition:height .3s var(--ease), opacity .3s; }
.site-header.is-scrolled .header-logo img{ height:52px; }
.header-logo .logo-light{ display:none; }
.header-logo .logo-dark{ display:block; }

.site-header:not(.is-scrolled) .hero ~ * .header-logo{ }

/* On unscrolled header over dark hero, show light logo */
.site-header:not(.is-scrolled) .header-logo .logo-dark{ display:none; }
.site-header:not(.is-scrolled) .header-logo .logo-light{ display:block; }
.site-header:not(.is-scrolled) .btn-login{ border-color:rgba(246,243,236,.45); color:rgba(246,243,236,.9); }
.site-header:not(.is-scrolled) .btn-login:hover{ background:#fff; color:var(--navy); }
.site-header:not(.is-scrolled) .hamburger span{ background:#fff; }

.btn-login{ justify-self:end; }

/* Hamburger */
.hamburger{
  justify-self:start;
  width:40px; height:40px;
  background:none;
  border:none;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:6px;
  padding:0;
  z-index:210;
}
.hamburger span{
  display:block;
  height:2px;
  background:var(--ink);
  transition:all .35s var(--ease);
}
.hamburger span:nth-child(1){ width:26px; }
.hamburger span:nth-child(2){ width:20px; }
.hamburger span:nth-child(3){ width:26px; }
.hamburger:hover span{ width:26px; }

.hamburger.is-open span{ background:var(--off-white); }
.hamburger.is-open span:nth-child(1){ transform:translateY(8px) rotate(45deg); width:26px; }
.hamburger.is-open span:nth-child(2){ opacity:0; }
.hamburger.is-open span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); width:26px; }

/* ============================================================
   Nav overlay
   ============================================================ */
.main-nav{
  position:fixed;
  top:0; left:0;
  height:100vh;
  width:min(480px, 92vw);
  background:var(--navy);
  z-index:205;
  transform:translateX(-100%);
  transition:transform .55s var(--ease);
  display:flex;
  align-items:center;
}
.main-nav.is-open{ transform:translateX(0); }
.main-nav-inner{
  padding:0 60px;
  width:100%;
}
.main-nav ul{ display:flex; flex-direction:column; gap:0; }
.nav-link{
  display:inline-block;
  font-family:var(--font-serif);
  font-size:clamp(23px,2.6vw,29px);
  color:var(--off-white);
  padding:8px 0;
  position:relative;
  transition:color .3s, padding-left .3s;
}
.nav-link::before{
  content:'';
  position:absolute;
  left:-26px; top:50%;
  width:14px; height:1px;
  background:var(--gold);
  transform:translateY(-50%) scaleX(0);
  transform-origin:left;
  transition:transform .3s var(--ease);
}
.nav-link:hover{ color:var(--gold); padding-left:8px; }
.nav-link:hover::before{ transform:translateY(-50%) scaleX(1); }
.main-nav-footer{
  margin-top:56px;
  padding-top:24px;
  border-top:1px solid rgba(246,243,236,.15);
  color:rgba(246,243,236,.6);
  font-size:13px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.main-nav-symbol{ height:56px; width:auto; margin:0 0 16px; opacity:.9; }
.main-nav-footer a{ color:var(--gold); }

.nav-scrim{
  position:fixed; inset:0;
  background:rgba(30,40,51,.55);
  backdrop-filter:blur(2px);
  opacity:0; visibility:hidden;
  transition:opacity .5s var(--ease), visibility .5s;
  z-index:204;
}
.nav-scrim.is-open{ opacity:1; visibility:visible; }
body.nav-open{ overflow:hidden; }

/* ============================================================
   Hero
   ============================================================ */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  color:#fff;
  isolation:isolate;
}
/* z-index positivo em toda a pilha do hero (media < overlay < content).
   Negativo aqui aciona um bug conhecido do Chrome onde o <video> é
   promovido pra uma camada de hardware separada e "vaza" por cima de
   qualquer elemento pensado pra cobri-lo, ignorando o CSS. */
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:1;
  filter:saturate(.65) brightness(.7) contrast(1.02);
}
.hero-fallback{
  position:absolute; inset:0;
  z-index:0;
  background:
    radial-gradient(120% 90% at 15% 15%, rgba(184,147,79,.20), transparent 55%),
    radial-gradient(120% 90% at 85% 85%, rgba(184,147,79,.12), transparent 55%),
    linear-gradient(155deg, #131B24 0%, #1E2833 45%, #26313f 100%);
}
.hero-overlay{
  position:absolute; inset:0;
  background:rgba(8,12,17,.75);
  z-index:1;
}
.hero-content{
  position:relative;
  z-index:2;
  width:100%;
  max-width:var(--container);
  padding:0 40px;
  text-align:left;
  margin:40px auto 0;
}
.eyebrow-symbol{
  display:block;
  width:72px; height:72px;
  margin:0 0 14px;
  background-color:var(--gold);
  -webkit-mask-image:url('../assets/logo/simbolo_branco.png');
  mask-image:url('../assets/logo/simbolo_branco.png');
  -webkit-mask-size:contain;
  mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:left center;
  mask-position:left center;
}
.hero h1{
  font-size:clamp(36px, 5.4vw, 62px);
  line-height:1.12;
  color:#fff;
  margin-bottom:24px;
  letter-spacing:.01em;
  max-width:760px;
}
.hero h1 em{
  color:var(--gold);
  font-style:italic;
}
.hero-subtitle{
  font-size:clamp(17px,2vw,20px);
  color:var(--off-white);
  font-weight:400;
  max-width:600px;
  margin:0 0 18px;
  line-height:1.55;
}
.hero-text{
  font-size:15px;
  color:rgba(246,243,236,.8);
  max-width:560px;
  margin:0 0 40px;
  line-height:1.7;
}
.hero-scroll{
  position:absolute;
  z-index:2;
  bottom:36px; left:50%;
  transform:translateX(-50%);
  width:26px; height:42px;
  border:1px solid rgba(246,243,236,.55);
  border-radius:20px;
}
.hero-scroll span{
  position:absolute;
  top:8px; left:50%;
  width:4px; height:4px;
  margin-left:-2px;
  border-radius:50%;
  background:var(--gold);
  animation:scrollDot 2s infinite;
}
@keyframes scrollDot{
  0%{ transform:translateY(0); opacity:1; }
  70%{ transform:translateY(14px); opacity:0; }
  100%{ opacity:0; }
}

/* ============================================================
   Section headings (shared)
   ============================================================ */
.section-eyebrow{
  text-transform:uppercase;
  letter-spacing:.28em;
  font-size:12px;
  color:var(--gold);
  font-weight:500;
  margin:0 0 14px;
}
.section-title{
  font-size:clamp(28px,3.4vw,40px);
  margin-bottom:18px;
  max-width:720px;
}
.section-title--light{ color:var(--off-white); margin-left:auto; margin-right:auto; text-align:center; max-width:640px; }
.section-lead{
  color:var(--ink-70);
  max-width:620px;
  font-size:16px;
  margin-bottom:44px;
}

/* ============================================================
   Imóveis em destaque
   ============================================================ */
.destaques{ padding:100px 0 90px; background:var(--off-white-2); }
.destaques .section-eyebrow,
.destaques .section-title,
.destaques .section-lead{ margin-left:auto; margin-right:auto; text-align:center; }
.destaques-grid{ margin-top:48px; }

/* ============================================================
   Imóveis / filter
   ============================================================ */
.imoveis{ padding:120px 0 100px; }
.imoveis-breadcrumb{ margin-bottom:16px; }
.imoveis .section-title, .imoveis .section-lead{ margin-left:auto; margin-right:auto; text-align:center; }
.imoveis .section-eyebrow{ text-align:center; }

.filter-bar{
  background:#fff;
  border:1px solid var(--line);
  border-radius:6px;
  padding:32px 36px;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:26px 28px;
  box-shadow:0 24px 60px -30px rgba(30,40,51,.18);
  margin-bottom:64px;
}
.filter-field{ display:flex; flex-direction:column; gap:10px; }
.filter-field label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--ink-70);
  font-weight:500;
  display:flex;
  align-items:center;
  gap:8px;
}
.filter-field select,
.filter-field input{
  border:1px solid var(--line);
  background:var(--off-white);
  padding:12px 14px;
  font-size:14px;
  border-radius:3px;
  color:var(--ink);
  appearance:none;
  transition:border-color .25s;
}
.filter-field select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%231E2833' stroke-width='1.4' fill='none' fill-rule='evenodd'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:34px;
}
.filter-field select:focus,
.filter-field input:focus{ outline:none; border-color:var(--gold); }

.dorm-pills{ display:flex; gap:10px; }
.dorm-pill{
  width:40px; height:40px;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--off-white);
  color:var(--ink-70);
  font-size:13px;
  font-weight:500;
  transition:all .25s;
}
.dorm-pill:hover{ border-color:var(--gold); }
.dorm-pill.is-active{ background:var(--navy); border-color:var(--navy); color:#fff; }

.filter-submit{
  grid-column:1 / -1;
  justify-self:center;
  margin-top:6px;
  min-width:260px;
}

/* Property grid */
.property-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:32px;
}
.property-card{
  background:#fff;
  border-radius:6px;
  overflow:hidden;
  border:1px solid var(--line);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.property-card:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 60px -30px rgba(30,40,51,.28);
}
.property-media{
  position:relative;
  aspect-ratio:4/3;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.property-media--placeholder{
  background:linear-gradient(155deg, #e4ddcd 0%, #d9d0ba 100%);
}
.property-media--placeholder::after{
  content:'';
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(45deg, rgba(30,40,51,.035) 0 2px, transparent 2px 14px);
}
.property-media--photo{
  background-size:cover;
  background-position:center;
  transition:transform .5s var(--ease);
}
.property-card:hover .property-media--photo{ transform:scale(1.04); }
.property-media .icon-building{
  width:34px; height:34px;
  opacity:.35;
}
.property-tag{
  position:absolute;
  top:16px; left:16px;
  background:var(--navy);
  color:var(--off-white);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:6px 12px;
  border-radius:2px;
  z-index:1;
}
.property-body{ padding:24px 22px 26px; }
.property-location{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--gold);
  margin-bottom:8px;
  font-weight:500;
}
.property-body h3{
  font-size:22px;
  margin-bottom:10px;
}
.property-meta{
  display:flex;
  gap:16px;
  color:var(--ink-70);
  font-size:13px;
  margin-bottom:16px;
  flex-wrap:wrap;
}
.property-meta span{ display:flex; align-items:center; gap:6px; }
.property-price{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-top:16px;
}
.property-price strong{ font-family:var(--font-serif); font-size:20px; }

.btn-mini{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 16px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:500;
  color:var(--navy);
  border:1px solid var(--navy);
  border-radius:2px;
  transition:all .3s var(--ease);
  white-space:nowrap;
}
.btn-mini-arrow{
  width:10px; height:8px;
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 12h16M14 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 12h16M14 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  background-color:currentColor;
  transition:transform .3s var(--ease);
}
.btn-mini:hover{
  background:var(--navy);
  color:var(--off-white);
}
.btn-mini:hover .btn-mini-arrow{ transform:translateX(3px); }
.imoveis-more{ text-align:center; margin-top:56px; }

/* ============================================================
   Diferenciais
   ============================================================ */
.diferenciais{
  background:var(--navy);
  padding:110px 0;
  position:relative;
  overflow:hidden;
}
.diferenciais::before{
  content:'';
  position:absolute; inset:0;
  background:radial-gradient(60% 60% at 50% 0%, rgba(184,147,79,.10), transparent 70%);
}
.diferenciais .container{ position:relative; }
.diferenciais-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
  margin-top:56px;
}
.diferencial-card{
  background:linear-gradient(180deg, rgba(246,243,236,.05), rgba(246,243,236,.02));
  border:1px solid rgba(246,243,236,.12);
  border-radius:6px;
  padding:44px 34px;
  transition:transform .4s var(--ease), border-color .4s;
}
.diferencial-card:hover{
  transform:translateY(-6px);
  border-color:var(--gold);
}
.diferencial-icon{
  width:56px; height:56px;
  border-radius:50%;
  background:transparent;
  border:1px solid rgba(184,147,79,.5);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:26px;
  transition:border-color .35s var(--ease), background .35s var(--ease);
}
.diferencial-card:hover .diferencial-icon{
  border-color:var(--gold);
  background:var(--gold-soft);
}
.diferencial-icon::after{
  content:'';
  display:block;
  width:24px; height:24px;
  background-color:var(--gold);
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
}
.diferencial-icon--growth::after{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 18.5l5-5 4 3 7.5-8.5' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/><circle cx='3' cy='18.5' r='1.3' fill='%23000'/><circle cx='8' cy='13.5' r='1.3' fill='%23000'/><circle cx='12' cy='16.5' r='1.3' fill='%23000'/><circle cx='19.5' cy='8' r='1.3' fill='%23000'/></svg>");
  mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 18.5l5-5 4 3 7.5-8.5' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/><circle cx='3' cy='18.5' r='1.3' fill='%23000'/><circle cx='8' cy='13.5' r='1.3' fill='%23000'/><circle cx='12' cy='16.5' r='1.3' fill='%23000'/><circle cx='19.5' cy='8' r='1.3' fill='%23000'/></svg>");
}
.diferencial-icon--legacy::after{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3.5 4.5h17M3 6.5h18M6.5 6.5v13M11 6.5v13M13 6.5v13M17.5 6.5v13M4 19.5h16' fill='none' stroke='%23000' stroke-width='1.15' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3.5 4.5h17M3 6.5h18M6.5 6.5v13M11 6.5v13M13 6.5v13M17.5 6.5v13M4 19.5h16' fill='none' stroke='%23000' stroke-width='1.15' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
.diferencial-icon--secure::after{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3.4l7 2.6v5.3c0 4.8-3 8.4-7 9.6-4-1.2-7-4.8-7-9.6V6l7-2.6Z' fill='none' stroke='%23000' stroke-width='1.3' stroke-linejoin='round'/><path d='M9 12.2l2.1 2.1L15.3 10' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3.4l7 2.6v5.3c0 4.8-3 8.4-7 9.6-4-1.2-7-4.8-7-9.6V6l7-2.6Z' fill='none' stroke='%23000' stroke-width='1.3' stroke-linejoin='round'/><path d='M9 12.2l2.1 2.1L15.3 10' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
.diferencial-card h3{
  color:var(--off-white);
  font-size:24px;
  margin-bottom:14px;
}
.diferencial-card p{
  color:rgba(246,243,236,.68);
  font-size:15px;
  line-height:1.7;
  margin:0;
  text-align:justify;
  hyphens:auto;
}

/* ============================================================
   Quem somos
   ============================================================ */
.quem-somos{ padding:120px 0; }
.quem-somos-grid{
  display:grid;
  grid-template-columns:1fr 0.9fr;
  gap:90px;
  align-items:center;
}
.quem-somos-text p{ color:var(--ink-70); font-size:16px; margin-bottom:20px; text-align:justify; hyphens:auto; }
.quem-somos-stats{
  display:flex;
  gap:40px;
  margin:36px 0 36px;
  padding:28px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.quem-somos-stats strong{
  display:block;
  font-family:var(--font-serif);
  font-size:32px;
  color:var(--navy);
}
.quem-somos-stats span{
  display:block;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--ink-50);
  margin-top:4px;
}
.quem-somos-media{ position:relative; }
.quem-somos-photo{
  aspect-ratio:4/5;
  border-radius:6px;
  background:
    linear-gradient(155deg, #e4ddcd 0%, #d9d0ba 100%);
  position:relative;
  overflow:hidden;
}
.quem-somos-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.quem-somos-media::before{
  content:'';
  position:absolute;
  top:-24px; right:-24px;
  width:70%; height:70%;
  border:1px solid var(--gold);
  border-radius:6px;
  z-index:-1;
}

/* ============================================================
   FAQ
   ============================================================ */
.faq{ padding:110px 0; background:var(--off-white-2); }
.faq .section-eyebrow, .faq .section-title{ text-align:center; margin-left:auto; margin-right:auto; }
.faq-list{
  max-width:820px;
  margin:0 auto;
}
.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-question{
  width:100%;
  text-align:left;
  background:none;
  border:none;
  padding:26px 4px;
  font-family:var(--font-serif);
  font-size:19px;
  color:var(--ink);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.faq-icon{
  position:relative;
  width:18px; height:18px;
  flex:none;
}
.faq-icon::before, .faq-icon::after{
  content:'';
  position:absolute;
  background:var(--navy);
  transition:transform .3s var(--ease), opacity .3s;
}
.faq-icon::before{ left:0; top:50%; width:100%; height:1px; transform:translateY(-50%); }
.faq-icon::after{ top:0; left:50%; width:1px; height:100%; transform:translateX(-50%); }
.faq-question[aria-expanded="true"] .faq-icon::after{ transform:translateX(-50%) rotate(90deg); opacity:0; }
.faq-answer{
  max-height:0;
  overflow:hidden;
  transition:max-height .4s var(--ease);
}
.faq-answer p{
  margin:0 4px 24px;
  color:var(--ink-70);
  font-size:15px;
  line-height:1.7;
  max-width:680px;
}

/* ============================================================
   Contato
   ============================================================ */
.contato{ padding:120px 0; }
.contato-grid{
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:80px;
}
.contato-form{ margin-top:36px; }
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}
.form-field{ margin-bottom:22px; display:flex; flex-direction:column; gap:8px; }
.form-field label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ink-70);
  font-weight:500;
}
.form-field input,
.form-field select,
.form-field textarea{
  border:none;
  border-bottom:1px solid var(--line);
  background:transparent;
  padding:10px 2px;
  font-size:15px;
  color:var(--ink);
  resize:vertical;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{ outline:none; border-color:var(--gold); }
.form-note{ margin-top:16px; font-size:13px; color:var(--gold); min-height:1em; }

.contato-info{
  background:var(--navy);
  border-radius:6px;
  padding:52px 44px;
  color:var(--off-white);
  align-self:start;
}
.contato-info-block{
  display:flex;
  gap:18px;
  margin-bottom:34px;
}
.contato-info-block .icon{ width:22px; height:22px; flex:none; margin-top:3px; }
.contato-info-block h4{
  font-family:var(--font-sans);
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--gold);
  margin:0 0 8px;
  font-weight:500;
}
.contato-info-block p{ margin:0; color:rgba(246,243,236,.82); font-size:14.5px; line-height:1.6; }
.contato-info-block a:hover{ color:var(--gold); }
.contato-social{ display:flex; align-items:center; gap:14px; margin-top:8px; }
.contato-social-handle{ font-size:14px; letter-spacing:.02em; color:rgba(246,243,236,.82); transition:color .3s; }
.contato-social-handle:hover{ color:var(--gold); }
.social-btn{
  width:40px; height:40px;
  border-radius:50%;
  border:1px solid rgba(246,243,236,.25);
  display:flex; align-items:center; justify-content:center;
  transition:all .3s;
}
.social-btn::after{ content:''; width:16px; height:16px; }
.social-btn:hover{ border-color:var(--gold); background:var(--gold-soft); }

/* ============================================================
   Footer
   ============================================================ */
.site-footer{ background:var(--navy); color:rgba(246,243,236,.72); padding:90px 0 0; }
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 0.8fr 0.8fr 1fr;
  gap:50px;
  padding-bottom:70px;
  border-bottom:1px solid rgba(246,243,236,.12);
}
.footer-logo{ height:58px; margin-bottom:22px; }
.footer-brand p{ font-size:14px; line-height:1.7; max-width:280px; }
.footer-col h5{
  color:var(--off-white);
  font-family:var(--font-sans);
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.1em;
  margin-bottom:22px;
  font-weight:500;
}
.footer-col ul{ display:flex; flex-direction:column; gap:12px; }
.footer-col a, .footer-col li{ font-size:14px; }
.footer-col a:hover{ color:var(--gold); }
.footer-bottom{
  padding:26px 40px;
  text-align:center;
  font-size:12.5px;
  color:rgba(246,243,236,.5);
}

/* ============================================================
   WhatsApp float
   ============================================================ */
.whatsapp-float{
  position:fixed;
  right:24px;
  bottom:24px;
  width:54px; height:54px;
  border-radius:50%;
  background:var(--navy);
  border:1px solid rgba(184,147,79,.4);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px -8px rgba(8,12,17,.55);
  z-index:150;
  transition:transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.whatsapp-float svg{ width:26px; height:26px; fill:#fff; }
.whatsapp-float:hover{
  transform:scale(1.08);
  border-color:var(--gold);
  box-shadow:0 12px 34px -8px rgba(184,147,79,.5);
}

/* ============================================================
   Icons (inline mask-based, single currentColor-ish system)
   ============================================================ */
.icon{ display:inline-block; background-color:currentColor; -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; }
.filter-field label .icon{ width:14px; height:14px; color:var(--ink-70); }

.icon-home{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 11.5 12 4l9 7.5M5.5 10v9h13v-9' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 11.5 12 4l9 7.5M5.5 10v9h13v-9' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.icon-city{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 21V7l6-3v17M14 21V11l6 3v7M10 8h0M10 12h0M10 16h0' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 21V7l6-3v17M14 21V11l6 3v7M10 8h0M10 12h0M10 16h0' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.icon-pin{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21s7-6.4 7-11.5A7 7 0 0 0 5 9.5C5 14.6 12 21 12 21Z' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/><circle cx='12' cy='9.5' r='2.4' fill='none' stroke='%23000' stroke-width='1.6'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21s7-6.4 7-11.5A7 7 0 0 0 5 9.5C5 14.6 12 21 12 21Z' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/><circle cx='12' cy='9.5' r='2.4' fill='none' stroke='%23000' stroke-width='1.6'/></svg>"); }
.icon-bed{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 18v-6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6M3 18v2M21 18v2M3 13V7a1 1 0 0 1 1-1h6v5M13 13V7h6a1 1 0 0 1 1 1v5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 18v-6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6M3 18v2M21 18v2M3 13V7a1 1 0 0 1 1-1h6v5M13 13V7h6a1 1 0 0 1 1 1v5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.icon-cash{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3v18M17 7.5c0-1.4-2-2.5-5-2.5s-5 1.2-5 2.7c0 3.5 10 1.7 10 5.5 0 1.6-2.2 2.8-5 2.8s-5-1.1-5-2.6' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3v18M17 7.5c0-1.4-2-2.5-5-2.5s-5 1.2-5 2.7c0 3.5 10 1.7 10 5.5 0 1.6-2.2 2.8-5 2.8s-5-1.1-5-2.6' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/></svg>"); }
.icon-search{ width:14px; height:14px; -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='11' cy='11' r='7' fill='none' stroke='%23000' stroke-width='2'/><path d='M20 20l-4.5-4.5' stroke='%23000' stroke-width='2' stroke-linecap='round'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='11' cy='11' r='7' fill='none' stroke='%23000' stroke-width='2'/><path d='M20 20l-4.5-4.5' stroke='%23000' stroke-width='2' stroke-linecap='round'/></svg>"); color:currentColor; background-color:var(--off-white); }
.icon-trend{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 17l6-6 4 4 8-9M21 6h-5M21 6v5' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 17l6-6 4 4 8-9M21 6h-5M21 6v5' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/></svg>"); background-color:var(--gold); }
.icon-building{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 21V5a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v16M4 21h16M9 8h0M9 12h0M9 16h0M13 8h0M13 12h0M13 16h0M15 21v-5h4v5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 21V5a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v16M4 21h16M9 8h0M9 12h0M9 16h0M13 8h0M13 12h0M13 16h0M15 21v-5h4v5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); background-color:var(--gold); }
.icon-shield{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3l7 3v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6l7-3Z' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/><path d='M9 12l2 2 4-4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3l7 3v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6l7-3Z' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/><path d='M9 12l2 2 4-4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); background-color:var(--gold); }
.icon-phone{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2C9.5 21 3 14.5 3 6a2 2 0 0 1 2-2Z' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2C9.5 21 3 14.5 3 6a2 2 0 0 1 2-2Z' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/></svg>"); background-color:var(--gold); }
.icon-mail{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='3' y='5' width='18' height='14' rx='2' fill='none' stroke='%23000' stroke-width='1.6'/><path d='M4 6.5l8 6 8-6' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='3' y='5' width='18' height='14' rx='2' fill='none' stroke='%23000' stroke-width='1.6'/><path d='M4 6.5l8 6 8-6' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); background-color:var(--gold); }
.icon-clock{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='%23000' stroke-width='1.6'/><path d='M12 7v5l3.5 2' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='%23000' stroke-width='1.6'/><path d='M12 7v5l3.5 2' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>"); background-color:var(--gold); }
.icon-instagram::after{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='3' y='3' width='18' height='18' rx='5' fill='none' stroke='%23000' stroke-width='1.6'/><circle cx='12' cy='12' r='4' fill='none' stroke='%23000' stroke-width='1.6'/><circle cx='17.2' cy='6.8' r='1' fill='%23000'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='3' y='3' width='18' height='18' rx='5' fill='none' stroke='%23000' stroke-width='1.6'/><circle cx='12' cy='12' r='4' fill='none' stroke='%23000' stroke-width='1.6'/><circle cx='17.2' cy='6.8' r='1' fill='%23000'/></svg>"); background-color:var(--off-white); mask-size:contain; -webkit-mask-size:contain; mask-repeat:no-repeat; -webkit-mask-repeat:no-repeat; mask-position:center; -webkit-mask-position:center; }
.icon-facebook::after{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M14 9h3V6h-3c-2 0-3.5 1.5-3.5 3.5V11H8v3h2.5v6h3v-6H16l.5-3h-3V9.8c0-.5.3-.8.8-.8Z' fill='%23000'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M14 9h3V6h-3c-2 0-3.5 1.5-3.5 3.5V11H8v3h2.5v6h3v-6H16l.5-3h-3V9.8c0-.5.3-.8.8-.8Z' fill='%23000'/></svg>"); background-color:var(--off-white); mask-size:contain; -webkit-mask-size:contain; mask-repeat:no-repeat; -webkit-mask-repeat:no-repeat; mask-position:center; -webkit-mask-position:center; }
.icon-linkedin::after{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='3' y='9' width='4' height='11' fill='%23000'/><circle cx='5' cy='5' r='2.2' fill='%23000'/><path d='M11 9h4v2s1-2.3 4-2.3S22 10.5 22 14v6h-4v-5.5c0-1.3-.8-2-1.9-2S14 13.2 14 14.5V20h-3Z' fill='%23000'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='3' y='9' width='4' height='11' fill='%23000'/><circle cx='5' cy='5' r='2.2' fill='%23000'/><path d='M11 9h4v2s1-2.3 4-2.3S22 10.5 22 14v6h-4v-5.5c0-1.3-.8-2-1.9-2S14 13.2 14 14.5V20h-3Z' fill='%23000'/></svg>"); background-color:var(--off-white); mask-size:contain; -webkit-mask-size:contain; mask-repeat:no-repeat; -webkit-mask-repeat:no-repeat; mask-position:center; -webkit-mask-position:center; }

.property-media .icon-building{ background-color:var(--ink); opacity:.28; }

/* ============================================================
   Property detail page (imovel.html)
   ============================================================ */
.property-detail{ padding-top:var(--header-h); }

.pd-breadcrumb{ padding:28px 0 0; }
.pd-back{
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ink-70);
  transition:color .3s;
}
.pd-back:hover{ color:var(--gold); }

.pd-carousel-section{ max-width:var(--container); margin:22px auto 0; padding:0 40px; }
.pd-carousel{
  position:relative;
  aspect-ratio:16/8;
  border-radius:6px;
  overflow:hidden;
  background:var(--navy);
}
.pd-carousel-track{
  display:flex;
  height:100%;
  transition:transform .5s var(--ease);
}
.pd-slide{
  flex:0 0 100%;
  height:100%;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  background:linear-gradient(155deg, #e4ddcd 0%, #d9d0ba 100%);
}
.pd-slide::after{
  content:'';
  position:absolute; inset:0;
  background:repeating-linear-gradient(45deg, rgba(30,40,51,.035) 0 2px, transparent 2px 16px);
}
.pd-slide .icon-building{
  width:46px; height:46px;
  background-color:var(--ink);
  opacity:.3;
  position:relative;
}
.pd-slide-label{
  position:relative;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.pd-slide--photo{ background:none; padding:0; }
.pd-slide--photo::after{ display:none; }
.pd-slide--photo img{
  width:100%; height:100%;
  object-fit:cover;
}
.pd-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid rgba(246,243,236,.5);
  background:rgba(30,40,51,.35);
  backdrop-filter:blur(4px);
  color:#fff;
  font-size:26px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .3s var(--ease);
}
.pd-arrow:hover{ background:var(--gold); border-color:var(--gold); }
.pd-arrow-prev{ left:18px; }
.pd-arrow-next{ right:18px; }
.pd-counter{
  position:absolute;
  right:18px; bottom:18px;
  padding:6px 14px;
  background:rgba(30,40,51,.5);
  backdrop-filter:blur(4px);
  color:#fff;
  font-size:12px;
  letter-spacing:.06em;
  border-radius:20px;
}
.pd-dots{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:20px;
}
.pd-dot{
  width:8px; height:8px;
  border-radius:50%;
  background:var(--line);
  border:none;
  padding:0;
  transition:all .3s;
}
.pd-dot.is-active{ background:var(--gold); width:22px; border-radius:4px; }

.pd-content{
  display:grid;
  grid-template-columns:1fr 360px;
  gap:70px;
  padding:70px 0 120px;
  align-items:start;
}
.pd-tag{
  display:inline-block;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:12px;
  color:var(--gold);
  font-weight:500;
  margin:0 0 14px;
}
.pd-main h1{
  font-size:clamp(28px,3.4vw,42px);
  margin-bottom:10px;
}
.pd-location{
  color:var(--ink-70);
  font-size:15px;
  margin:0 0 30px;
}
.pd-meta{
  display:flex;
  gap:30px;
  flex-wrap:wrap;
  padding:22px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-bottom:34px;
}
.pd-meta span{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:14.5px;
  color:var(--ink);
}
.pd-meta .icon{ width:17px; height:17px; background-color:var(--gold); }
.pd-description{
  color:var(--ink-70);
  font-size:16px;
  line-height:1.8;
  max-width:640px;
  margin-bottom:44px;
}
.pd-amenities h3{
  font-size:20px;
  margin-bottom:20px;
}
.pd-amenities ul{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px 24px;
  list-style:none;
  padding:0;
}
.pd-amenities li{
  position:relative;
  padding-left:26px;
  font-size:14.5px;
  color:var(--ink-70);
}
.pd-amenities li::before{
  content:'';
  position:absolute;
  left:0; top:4px;
  width:16px; height:16px;
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 12l5 5L20 6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 12l5 5L20 6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  background-color:var(--gold);
}

.pd-sidebar{ position:sticky; top:calc(var(--header-h) + 24px); }
.pd-price-card{
  background:var(--navy);
  border-radius:6px;
  padding:38px 32px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.pd-price-label{
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:12px;
  color:rgba(246,243,236,.6);
  margin:0;
}
.pd-price{
  font-family:var(--font-serif);
  font-size:32px;
  color:var(--off-white);
  margin:0 0 10px;
}
.pd-price-extra{
  display:flex;
  flex-wrap:wrap;
  gap:4px 18px;
  margin:-4px 0 16px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(246,243,236,.15);
}
.pd-price-extra span{
  font-size:13px;
  color:rgba(246,243,236,.6);
}
.pd-price-extra strong{
  color:rgba(246,243,236,.9);
  font-weight:500;
}
.pd-cta{ width:100%; }
.pd-price-card .btn-outline-dark{
  border-color:rgba(246,243,236,.4);
  color:var(--off-white);
}
.pd-price-card .btn-outline-dark:hover{
  background:var(--off-white);
  color:var(--navy);
}

.pd-share{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:4px;
  padding-top:16px;
  border-top:1px solid rgba(246,243,236,.15);
}
.pd-share-label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:rgba(246,243,236,.55);
}
.pd-share-buttons{ display:flex; gap:10px; margin-left:auto; }
.pd-share-btn{
  width:36px; height:36px;
  border-radius:50%;
  border:1px solid rgba(246,243,236,.3);
  display:flex; align-items:center; justify-content:center;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.pd-share-btn:hover{ border-color:var(--gold); background:var(--gold-soft); }
.pd-share-btn::after{
  content:'';
  display:block;
  width:16px; height:16px;
  background-color:var(--off-white);
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
}
.pd-share-btn--whatsapp::after{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><path d='M16.004 3C9.377 3 4 8.373 4 15c0 2.386.7 4.61 1.91 6.478L4 29l7.72-1.865A11.94 11.94 0 0 0 16.004 27C22.63 27 28 21.627 28 15S22.63 3 16.004 3zm0 21.75a9.7 9.7 0 0 1-4.95-1.36l-.355-.21-4.583 1.107 1.127-4.463-.232-.366A9.71 9.71 0 0 1 5.25 15c0-5.93 4.824-10.75 10.754-10.75S26.75 9.07 26.75 15 21.934 24.75 16.004 24.75zm5.61-7.98c-.307-.154-1.816-.897-2.098-1-.281-.103-.486-.154-.69.154-.205.307-.792 1-.972 1.205-.179.205-.358.23-.665.077-.307-.154-1.296-.478-2.47-1.526-.913-.814-1.53-1.82-1.71-2.127-.179-.307-.02-.473.135-.626.138-.137.307-.358.46-.537.154-.18.205-.307.307-.512.103-.205.051-.384-.026-.538-.077-.154-.69-1.665-.946-2.28-.249-.598-.502-.517-.69-.527-.179-.008-.384-.01-.588-.01a1.13 1.13 0 0 0-.818.384c-.281.307-1.073 1.05-1.073 2.56s1.098 2.97 1.25 3.175c.154.205 2.16 3.3 5.234 4.627.731.316 1.301.505 1.745.646.733.233 1.4.2 1.928.121.588-.088 1.816-.742 2.072-1.46.256-.717.256-1.332.179-1.46-.077-.128-.281-.205-.588-.358z'/></svg>");
  mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><path d='M16.004 3C9.377 3 4 8.373 4 15c0 2.386.7 4.61 1.91 6.478L4 29l7.72-1.865A11.94 11.94 0 0 0 16.004 27C22.63 27 28 21.627 28 15S22.63 3 16.004 3zm0 21.75a9.7 9.7 0 0 1-4.95-1.36l-.355-.21-4.583 1.107 1.127-4.463-.232-.366A9.71 9.71 0 0 1 5.25 15c0-5.93 4.824-10.75 10.754-10.75S26.75 9.07 26.75 15 21.934 24.75 16.004 24.75zm5.61-7.98c-.307-.154-1.816-.897-2.098-1-.281-.103-.486-.154-.69.154-.205.307-.792 1-.972 1.205-.179.205-.358.23-.665.077-.307-.154-1.296-.478-2.47-1.526-.913-.814-1.53-1.82-1.71-2.127-.179-.307-.02-.473.135-.626.138-.137.307-.358.46-.537.154-.18.205-.307.307-.512.103-.205.051-.384-.026-.538-.077-.154-.69-1.665-.946-2.28-.249-.598-.502-.517-.69-.527-.179-.008-.384-.01-.588-.01a1.13 1.13 0 0 0-.818.384c-.281.307-1.073 1.05-1.073 2.56s1.098 2.97 1.25 3.175c.154.205 2.16 3.3 5.234 4.627.731.316 1.301.505 1.745.646.733.233 1.4.2 1.928.121.588-.088 1.816-.742 2.072-1.46.256-.717.256-1.332.179-1.46-.077-.128-.281-.205-.588-.358z'/></svg>");
}
.pd-share-btn--email::after{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='3' y='5' width='18' height='14' rx='2' fill='none' stroke='%23000' stroke-width='1.6'/><path d='M4 6.5l8 6 8-6' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='3' y='5' width='18' height='14' rx='2' fill='none' stroke='%23000' stroke-width='1.6'/><path d='M4 6.5l8 6 8-6' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}

.pd-not-found{ padding:100px 0 140px; text-align:center; }
.pd-not-found .section-title, .pd-not-found .section-lead, .pd-not-found .section-eyebrow{ margin-left:auto; margin-right:auto; }
.pd-not-found .btn{ margin-top:10px; }

.filter-empty{
  grid-column:1 / -1;
  text-align:center;
  color:var(--ink-70);
  font-size:15px;
  padding:40px 0;
}

/* ============================================================
   Legal pages (Política de Privacidade, etc.)
   ============================================================ */
.legal-page{ padding:calc(var(--header-h) + 28px) 0 120px; }
.legal-container{ max-width:820px; }
.legal-updated{
  color:var(--ink-50);
  font-size:13px;
  margin:-8px 0 40px;
}
.legal-content h3{
  font-size:21px;
  margin:40px 0 14px;
}
.legal-content p{
  color:var(--ink-70);
  font-size:15.5px;
  line-height:1.75;
  margin:0 0 16px;
}
.legal-content ul{
  margin:0 0 16px;
  padding-left:22px;
  color:var(--ink-70);
  font-size:15.5px;
  line-height:1.8;
}
.legal-content li{ list-style:disc; margin-bottom:4px; }

/* ============================================================
   Cookie banner
   ============================================================ */
.cookie-banner{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:300;
  background:var(--navy);
  color:var(--off-white);
  padding:22px 24px;
  transform:translateY(100%);
  transition:transform .5s var(--ease);
  box-shadow:0 -12px 40px -12px rgba(0,0,0,.35);
}
.cookie-banner.is-visible{ transform:translateY(0); }
.cookie-banner-inner{
  max-width:var(--container);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  flex-wrap:wrap;
}
.cookie-banner p{
  margin:0;
  font-size:14px;
  line-height:1.6;
  color:rgba(246,243,236,.82);
  flex:1;
  min-width:240px;
}
.cookie-banner a{ color:var(--gold); text-decoration:underline; text-underline-offset:2px; }
.cookie-banner a:hover{ color:#fff; }
.cookie-banner-actions{ display:flex; gap:12px; flex-shrink:0; }
.cookie-reject,
.cookie-accept{
  padding:11px 24px;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:500;
  border-radius:2px;
  white-space:nowrap;
  transition:all .3s var(--ease);
}
.cookie-reject{
  background:none;
  border:1px solid rgba(246,243,236,.35);
  color:var(--off-white);
}
.cookie-reject:hover{ border-color:var(--gold); color:var(--gold); }
.cookie-accept{
  background:var(--gold);
  border:1px solid var(--gold);
  color:var(--navy);
}
.cookie-accept:hover{ background:#c9a35f; border-color:#c9a35f; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1080px){
  .property-grid{ grid-template-columns:repeat(2,1fr); }
  .filter-bar{ grid-template-columns:repeat(2,1fr); }
  .quem-somos-grid{ grid-template-columns:1fr; gap:56px; }
  .quem-somos-media{ order:-1; max-width:420px; }
  .contato-grid{ grid-template-columns:1fr; gap:56px; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:40px; }
  .pd-content{ grid-template-columns:1fr; gap:44px; }
  .pd-sidebar{ position:static; }
  .pd-price-card{ max-width:420px; }
}

@media (max-width: 720px){
  .container{ padding:0 22px; }
  .header-inner{ padding:0 20px; }
  .hero-content{ padding:0 22px; }
  :root{ --header-h:76px; }
  .header-logo img{ height:42px; }
  .site-header.is-scrolled .header-logo img{ height:38px; }
  .property-grid{ grid-template-columns:1fr; }
  .filter-bar{ grid-template-columns:1fr; padding:26px 22px; }
  .filter-submit{ min-width:100%; }
  .diferenciais-grid{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; gap:36px; padding-bottom:50px; }
  .contato-info{ padding:36px 26px; }
  .imoveis, .quem-somos, .faq, .contato, .diferenciais{ padding:80px 0; }
  .main-nav-inner{ padding:0 32px; }
  .quem-somos-media::before{ display:none; }
  .pd-carousel-section{ padding:0 22px; }
  .pd-carousel{ aspect-ratio:4/3.4; }
  .pd-arrow{ width:38px; height:38px; font-size:22px; }
  .pd-content{ padding:50px 0 80px; }
  .pd-amenities ul{ grid-template-columns:1fr; }
  .pd-price-card{ max-width:none; }
  .cookie-banner-inner{ flex-direction:column; align-items:stretch; gap:16px; }
  .cookie-banner-actions{ width:100%; }
  .cookie-reject, .cookie-accept{ flex:1; }
}
