@import url("./footer.css");
@import url("./lgpd.css");

:root{--black:#000;--gold-light:#ffef96;--gold-mid:#e9c567;--gold-dark:#7c5c31;--white:#fff;--ink:#141412;--soft:#1d1b18;--line:rgba(233,197,103,.18);--muted:rgba(255,255,255,.62);--serif:'Cormorant Garamond',Georgia,serif;--sans:'Tenor Sans','Gill Sans',sans-serif;--body:'Montserrat',Arial,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--body);background:#000;color:#fff;overflow-x:hidden;line-height:1.72;font-size:15px}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.grain{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.38'/%3E%3C/svg%3E")}.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;height:76px;padding:0 clamp(20px,5vw,80px);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(to bottom,rgba(0,0,0,.94),rgba(0,0,0,.66));backdrop-filter:blur(16px);border-bottom:1px solid rgba(233,197,103,.08)}.logo{display:flex;flex-direction:column;gap:2px}.logo strong{font-family:var(--serif);font-size:21px;font-weight:400;letter-spacing:.19em;text-transform:uppercase}.logo span{font-family:var(--sans);font-size:8px;letter-spacing:.32em;color:var(--gold-mid);text-transform:uppercase}.site-nav{display:flex;gap:28px;align-items:center}.site-nav a{font-family:var(--sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.66)}.site-nav a:hover{color:#fff}.menu{display:none;background:none;border:0;width:42px;height:42px;cursor:pointer}.menu span,.menu:before,.menu:after{content:"";width:24px;height:1px;background:var(--gold-mid);display:block;margin:5px 0}.mobile-panel{display:none;position:fixed;inset:76px 0 0;background:#030303;z-index:999;padding:36px 24px}.mobile-panel.open{display:block}.mobile-panel a{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);padding:18px 0;font-family:var(--serif);font-size:32px}.btn{border:1px solid rgba(233,197,103,.35);background:transparent;color:#fff;padding:13px 22px;font-family:var(--sans);font-size:10px;letter-spacing:.24em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:.35s;cursor:pointer;text-align:center}.btn:hover{border-color:var(--gold-mid);color:var(--gold-light);transform:translateY(-2px)}.btn.gold{background:var(--gold-mid);color:#000;border-color:var(--gold-mid)}.btn.gold:hover{background:var(--gold-dark);color:#fff}.btn.small{padding:9px 14px;font-size:8px}.hero{min-height:100svh;position:relative;display:grid;grid-template-columns:1.15fr .85fr;align-items:end;padding:150px clamp(22px,6vw,96px) 80px;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.58),rgba(0,0,0,.18)),var(--hero-img,none) center/cover}.hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:220px;background:linear-gradient(to top,#000,transparent)}.hero-copy,.hero-card{position:relative;z-index:2}.eyebrow{font-family:var(--sans);font-size:10px;letter-spacing:.36em;color:var(--gold-mid);text-transform:uppercase;display:flex;align-items:center;gap:16px;margin-bottom:20px}.eyebrow:before{content:"";width:42px;height:1px;background:var(--gold-mid)}h1{font-family:var(--serif);font-weight:300;font-size:clamp(32px,4vw,62px);line-height:1.05;max-width:640px}h1 em,.section-title em{font-style:italic;color:var(--gold-light)}.lead{max-width:640px;color:rgba(255,255,255,.68);font-size:14px;font-weight:300;letter-spacing:.04em;margin:30px 0 42px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.hero-card{justify-self:end;width:min(390px,100%);padding:28px;background:rgba(20,20,18,.58);border:1px solid var(--line);backdrop-filter:blur(18px)}.hero-card small{font-family:var(--sans);letter-spacing:.25em;text-transform:uppercase;color:var(--gold-mid);font-size:8px}.hero-card p{font-family:var(--serif);font-size:25px;line-height:1.25;margin:14px 0 24px}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.08);padding-top:18px;gap:10px}.metric b{font-family:var(--serif);font-size:28px;color:var(--gold-light);font-weight:300;display:block}.metric span{font-family:var(--sans);font-size:8px;text-transform:uppercase;letter-spacing:.2em;color:rgba(255,255,255,.38)}section{padding:110px clamp(22px,6vw,96px)}.dark-panel{background:var(--ink)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:50px}.section-title{font-family:var(--serif);font-weight:300;font-size:clamp(34px,5vw,64px);line-height:1.08}.section-sub{color:var(--muted);font-size:13px;font-weight:300;max-width:590px;margin-top:16px}.premium-intro{background:linear-gradient(135deg,#090908,#171512);border-top:1px solid rgba(233,197,103,.08);border-bottom:1px solid rgba(233,197,103,.08)}.premium-intro-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:60px;align-items:end}.region-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.region-card{min-height:520px;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:36px;border:1px solid rgba(255,255,255,.06)}.region-card:before{content:"";position:absolute;inset:0;background:var(--bg) center/cover;transition:1s;filter:brightness(.66)}.region-card:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.88),rgba(0,0,0,.08))}.region-card:hover:before{transform:scale(1.06);filter:brightness(.5)}.region-content{position:relative;z-index:2;max-width:560px}.region-content h3{font-family:var(--serif);font-size:clamp(34px,4vw,58px);font-weight:300;margin-bottom:12px}.region-content p{color:rgba(255,255,255,.68);font-weight:300;margin-bottom:26px}.chip{font-family:var(--sans);font-size:8px;letter-spacing:.2em;text-transform:uppercase;padding:6px 10px;border:1px solid rgba(233,197,103,.32);color:var(--gold-light);background:rgba(0,0,0,.22);margin-right:8px}.area-nav{position:sticky;top:76px;z-index:100;background:rgba(0,0,0,.86);backdrop-filter:blur(16px);padding:14px clamp(22px,6vw,96px);display:flex;gap:8px;overflow:auto}.area-chip{white-space:nowrap;padding:9px 14px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.02);color:rgba(255,255,255,.62);font-family:var(--sans);font-size:9px;letter-spacing:.18em;text-transform:uppercase}.area-chip:hover{border-color:var(--gold-mid);color:var(--gold-light)}.carousel-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px}.arrows{display:flex;gap:8px}.arrow{width:44px;height:44px;border:1px solid rgba(255,255,255,.14);background:transparent;color:rgba(255,255,255,.72);cursor:pointer}.carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(310px,31%);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.property{scroll-snap-align:start;background:var(--soft);border:1px solid rgba(255,255,255,.055);display:flex;flex-direction:column;transition:.35s;cursor:pointer;position:relative}.property:hover{transform:translateY(-5px);border-color:rgba(233,197,103,.28)}.property-img{height:295px;position:relative;overflow:hidden}.property-img img{width:100%;height:100%;object-fit:cover;filter:brightness(.82);transition:.7s}.property:hover img{transform:scale(1.06);filter:brightness(.68)}.tag{position:absolute;left:18px;top:18px;background:var(--gold-mid);color:#000;font-family:var(--sans);font-size:8px;letter-spacing:.22em;text-transform:uppercase;padding:6px 12px}.region-badge{position:absolute;right:18px;bottom:18px;background:rgba(0,0,0,.68);font-family:var(--sans);font-size:8px;letter-spacing:.2em;text-transform:uppercase;padding:7px 12px}.favorite{position:absolute;right:16px;top:16px;z-index:2;width:38px;height:38px;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.5);color:#fff;cursor:pointer}.favorite.active{background:var(--gold-mid);color:#000}.property-body{padding:24px;display:flex;flex-direction:column;flex:1}.property h3{font-family:var(--serif);font-size:27px;font-weight:300;line-height:1.12}.loc{font-family:var(--sans);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.36);margin:8px 0 18px}.specs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.spec{font-size:11px;color:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.08);padding:6px 9px}.property-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid rgba(255,255,255,.07);padding-top:18px}.price{font-family:var(--serif);font-size:22px;color:var(--gold-light);line-height:1}.price small{font-family:var(--sans);display:block;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:6px}.filters{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:26px}.field,.input{background:var(--soft);border:1px solid rgba(255,255,255,.08);color:#fff;padding:13px 14px;outline:none}.page-hero{min-height:58vh;padding:150px clamp(22px,6vw,96px) 72px;display:flex;align-items:flex-end;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.9)),var(--page-img,url('https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=1920&q=84&auto=format&fit=crop')) center/cover}.page-hero h1{font-size:clamp(44px,6vw,78px)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 28px}.tab{padding:10px 14px;background:transparent;border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.62);font-family:var(--sans);font-size:9px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}.tab.active,.tab:hover{border-color:var(--gold-mid);color:var(--gold-light)}.map-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;background:#050505}.map-side{padding:34px;background:var(--ink);border:1px solid rgba(255,255,255,.07)}.map-list{display:grid;gap:10px;margin-top:28px;max-height:420px;overflow:auto}.map-item{padding:16px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);cursor:pointer}.map-item.active,.map-item:hover{border-color:var(--gold-mid)}.map-item b{font-family:var(--serif);font-size:23px;font-weight:300;display:block}.map-item span{font-family:var(--sans);font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.38)}.map-frame{min-height:600px;border:1px solid var(--line);overflow:hidden}.map-frame iframe{width:100%;height:100%;border:0;filter:grayscale(.2) contrast(1.05) brightness(.88)}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gallery img:first-child{grid-column:1/3;height:520px}.gallery img{width:100%;height:260px;object-fit:cover}.detail-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:36px}.detail-panel{position:sticky;top:100px;align-self:start;background:var(--ink);border:1px solid rgba(255,255,255,.08);padding:30px}.detail-specs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}.detail-spec{border:1px solid rgba(255,255,255,.08);padding:16px}.detail-spec small{font-family:var(--sans);font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.38)}.detail-spec b{font-family:var(--serif);font-size:24px;font-weight:300;display:block}.features{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.feature{border:1px solid rgba(233,197,103,.25);color:var(--gold-light);padding:7px 10px;font-size:11px}.media-frame{height:520px;background:var(--soft);border:1px solid rgba(255,255,255,.08)}.media-frame iframe,.media-frame img{width:100%;height:100%;border:0;object-fit:cover}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-visual{background:linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,.85)),url('https://images.unsplash.com/photo-1613490493576-7fde63acd811?w=1200&q=84&auto=format&fit=crop') center/cover}.auth-box{display:flex;align-items:center;justify-content:center;padding:80px 24px}.auth-card{width:min(500px,100%);background:var(--ink);border:1px solid rgba(255,255,255,.08);padding:34px}.form-grid{display:grid;gap:14px;margin-top:22px}.user-shell,.admin-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{background:#050505;border-right:1px solid rgba(255,255,255,.08);padding:28px;position:sticky;top:0;height:100vh}.sidebar nav{display:grid;gap:8px;margin-top:34px}.sidebar nav a{padding:12px;border:1px solid rgba(255,255,255,.06);color:rgba(255,255,255,.62)}.sidebar nav a:hover,.sidebar nav a.active{border-color:var(--gold-mid);color:var(--gold-light)}.dashboard{padding:42px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.dash-card{background:var(--ink);border:1px solid rgba(255,255,255,.08);padding:22px}.dash-card b{font-family:var(--serif);font-size:38px;font-weight:300;color:var(--gold-light)}.table{width:100%;border-collapse:collapse;background:var(--ink);border:1px solid rgba(255,255,255,.08);margin-top:20px}.table th,.table td{text-align:left;padding:14px;border-bottom:1px solid rgba(255,255,255,.08);font-size:13px}.table th{font-family:var(--sans);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-mid)}.admin-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-form .full{grid-column:1/3}.contact-band{position:relative;overflow:hidden;text-align:center;padding:130px clamp(22px,6vw,96px)}.footer{padding:58px clamp(22px,6vw,96px);border-top:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;color:rgba(255,255,255,.34);font-size:12px}.footer-brand{font-family:var(--serif);font-size:25px;color:#fff;letter-spacing:.12em;text-transform:uppercase}@media(max-width:1120px){.site-nav,.desktop-cta{display:none}.menu{display:block}.hero,.premium-intro-grid,.map-grid,.detail-layout{grid-template-columns:1fr}.hero-card{justify-self:start}.carousel{grid-auto-columns:minmax(300px,46%)}.portfolio-grid{grid-template-columns:repeat(2,1fr)}.filters,.cards{grid-template-columns:repeat(2,1fr)}.user-shell,.admin-shell,.auth-layout{grid-template-columns:1fr}.sidebar{height:auto;position:static}.auth-visual{display:none}}@media(max-width:760px){.site-header{height:70px}.mobile-panel{inset:70px 0 0}.hero{min-height:92svh;padding:126px 22px 56px}.hero-card{display:none}.hero-actions .btn{width:100%}.region-grid,.portfolio-grid,.filters,.cards,.admin-form{grid-template-columns:1fr}.carousel{grid-auto-columns:86vw}.section-head,.carousel-head{align-items:flex-start;flex-direction:column}section{padding:76px 22px}.gallery,.gallery img:first-child{grid-template-columns:1fr;grid-column:auto}.gallery img,.gallery img:first-child{height:280px}.detail-panel{position:static}.map-frame,.media-frame{height:420px;min-height:420px}.admin-form .full{grid-column:auto}}

/* ─── Seletor de idioma ─────────────────────────────────────────── */
.lang-selector {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-right: 12px;
}

.lang-btn {
  background: transparent;
  border: none;
  color: var(--text-muted, #888);
  font-family: var(--body, 'Montserrat', sans-serif);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.08em;
  cursor: pointer;
  padding: 4px 6px;
  border-radius: 2px;
  transition: color 0.2s, background 0.2s;
}

.lang-btn:hover {
  color: var(--gold, #c9a84c);
}

.lang-btn.active {
  color: var(--gold, #c9a84c);
  background: rgba(201,168,76,0.08);
}

.lang-btn + .lang-btn {
  border-left: 1px solid rgba(255,255,255,0.12);
}

@media (max-width: 768px) {
  .lang-selector {
    margin-right: 8px;
  }
  .lang-btn {
    font-size: 9px;
    padding: 3px 5px;
  }
}
/* ─── Acessibilidade ────────────────────────────────────────────── */
.skip-link {
  position: absolute;
  top: -100px;
  left: 20px;
  background: var(--gold-mid);
  color: #000;
  padding: 10px 18px;
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  z-index: 9999;
  transition: top .2s;
}
.skip-link:focus {
  top: 20px;
}

/* ─── Logo com imagem ───────────────────────────────────────────── */
.logo-img {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.logo-icon {
  height: 28px;
  width: auto;
  object-fit: contain;
  flex-shrink: 0;
  mix-blend-mode: normal;
}

.logo-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.logo-text strong {
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 400;
  letter-spacing: .19em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1;
}

.logo-text span {
  font-family: var(--sans);
  font-size: 7.5px;
  letter-spacing: .32em;
  color: var(--gold-mid);
  text-transform: uppercase;
  line-height: 1;
}

/* Footer logo */
.footer-logo {
  height: 48px;
  width: auto;
  object-fit: contain;
  /* Logo branca sobre fundo escuro — perfeito */
  opacity: .92;
  transition: opacity .3s;
}

.footer-brand:hover .footer-logo {
  opacity: 1;
}

/* Mobile — logo menor */
@media (max-width: 760px) {
  .logo-icon {
    height: 32px;
  }
  .logo-text strong {
    font-size: 15px;
  }
  .footer-logo {
    height: 36px;
  }
}

/* ─── Screen reader only ───────────────────────────────────────── */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ═══ REFINAMENTOS PREMIUM ══════════════════════════════════════ */

/* ─── WhatsApp float premium ────────────────────────────────────── */
.wa-float {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(20, 20, 18, .92);
  border: 1px solid rgba(233, 197, 103, .35);
  color: var(--gold-light, #e9c567);
  backdrop-filter: blur(8px);
  transition: transform .3s, border-color .3s, background .3s;
  position: fixed;
  right: 26px;
  bottom: 26px;
  z-index: 950;
}

.wa-float:hover {
  transform: translateY(-3px);
  border-color: rgba(233, 197, 103, .8);
  background: rgba(28, 28, 24, .98);
}

.wa-tooltip {
  position: absolute;
  right: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%);
  background: rgba(14, 14, 12, .96);
  border: 1px solid rgba(233, 197, 103, .25);
  color: #fff;
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 9px 14px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s;
}

.wa-float:hover .wa-tooltip,
.wa-float:focus-visible .wa-tooltip {
  opacity: 1;
}

/* ─── Header blur ao rolar ──────────────────────────────────────── */
.site-header.is-scrolled {
  background: rgba(8, 8, 7, .82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(233, 197, 103, .12);
}

/* ─── Cards de imóveis padronizados ─────────────────────────────── */
.property-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: transform .35s, border-color .35s, box-shadow .35s;
}

.property-card:hover {
  transform: translateY(-4px);
  border-color: rgba(233, 197, 103, .45);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .35);
}

.property-card .property-image {
  overflow: hidden;
}

.property-card .property-image img {
  transition: transform .6s cubic-bezier(.22,.1,.36,1);
}

.property-card:hover .property-image img {
  transform: scale(1.05);
}

.property-card .property-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.property-card .property-body h3 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.6em;
}

.property-card .property-location {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.property-card .property-foot {
  margin-top: auto;
}

/* ─── Filtro lateral compacto ───────────────────────────────────── */
.catalog-sidebar {
  max-width: 320px;
}

.catalog-sidebar .sidebar-card {
  padding: 24px 20px;
}

.catalog-sidebar .filter-group {
  margin-bottom: 14px;
}

.catalog-sidebar .filter-group label {
  font-size: 10px;
  margin-bottom: 6px;
}

.catalog-sidebar .field {
  padding: 10px 12px;
  font-size: 12.5px;
}

/* ─── Sort select ───────────────────────────────────────────────── */
.catalog-meta {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.field-sort {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.12);
  color: #fff;
  padding: 9px 14px;
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .08em;
  cursor: pointer;
}

.field-sort:focus {
  border-color: var(--gold-mid);
  outline: none;
}

.field-sort option {
  background: #0e0e0c;
}

/* ─── Bloco editorial imóveis ───────────────────────────────────── */
.imoveis-editorial {
  padding: 140px clamp(22px, 6vw, 96px) 10px;
  max-width: 880px;
}

.imoveis-editorial .section-title {
  margin: 14px 0 16px;
}

/* ─── Nota cambial ──────────────────────────────────────────────── */
.currency-note {
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .06em;
  color: rgba(255,255,255,.35);
  margin-top: 18px;
}

/* ─── Microinterações ───────────────────────────────────────────── */
.btn {
  transition: background .3s, border-color .3s, color .3s, transform .25s;
}

.btn:hover {
  transform: translateY(-1px);
}

.favorite-btn {
  transition: transform .25s, color .25s;
}

.favorite-btn:hover {
  transform: scale(1.15);
}

.field, select.field, input.field {
  transition: border-color .25s, background .25s;
}


/* ═══ MOBILE-FIRST REFINAMENTOS ═════════════════════════════════ */

/* ─── Botão "Filtrar imóveis" — só mobile ───────────────────────── */
.mobile-filter-trigger {
  display: none;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(233,197,103,.3);
  color: var(--gold-light, #e9c567);
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  cursor: pointer;
  min-height: 48px;
}

/* ─── Drawer de filtros mobile ──────────────────────────────────── */
.filter-drawer-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0,0,0,.6);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity .3s;
}

.filter-drawer-overlay.is-open {
  opacity: 1;
}

.filter-drawer {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  max-height: 85vh;
  overflow-y: auto;
  background: #0e0e0c;
  border-top: 1px solid rgba(233,197,103,.25);
  border-radius: 16px 16px 0 0;
  padding: 24px 20px calc(24px + env(safe-area-inset-bottom));
  transform: translateY(100%);
  transition: transform .35s cubic-bezier(.22,.1,.36,1);
}

.filter-drawer-overlay.is-open .filter-drawer {
  transform: translateY(0);
}

.filter-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.filter-drawer-head h3 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 300;
}

.filter-drawer-close {
  background: none;
  border: none;
  color: rgba(255,255,255,.5);
  font-size: 26px;
  cursor: pointer;
  padding: 4px 10px;
  min-width: 44px;
  min-height: 44px;
}

.filter-drawer-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 22px;
  position: sticky;
  bottom: 0;
  background: #0e0e0c;
  padding-top: 14px;
}

/* ─── CTA fixo inferior mobile ──────────────────────────────────── */
.mobile-sticky-cta {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 940;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: linear-gradient(to top, rgba(8,8,7,.98) 70%, rgba(8,8,7,0));
  gap: 10px;
}

.mobile-sticky-cta .btn {
  flex: 1;
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ═══ BREAKPOINTS MOBILE ════════════════════════════════════════ */
@media (max-width: 1023px) {
  /* Esconde sidebar, mostra trigger */
  .catalog-sidebar {
    display: none;
  }
  .mobile-filter-trigger {
    display: flex;
  }
  .catalog-layout {
    display: block;
  }
  .filter-drawer-overlay.is-open {
    display: block;
  }
  /* Move os filtros para dentro do drawer via JS */
}

@media (max-width: 767px) {
  /* Grid 1 coluna */
  .portfolio-grid,
  .property-grid {
    grid-template-columns: 1fr !important;
    gap: 18px;
  }

  /* Cards mobile — fotos grandes */
  .property-card .property-image img {
    height: 240px;
  }

  /* Botão detalhes confortável */
  .property-card .btn.small {
    min-height: 44px;
    padding: 12px 20px;
    display: flex;
    align-items: center;
  }

  /* Favorito 44px */
  .favorite-btn {
    width: 44px;
    height: 44px;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* WhatsApp não cobre cards — sobe quando tem CTA fixo */
  body.has-sticky-cta .wa-float {
    bottom: 84px;
  }

  /* Bloco editorial menor */
  .imoveis-editorial {
    padding: 110px 20px 4px;
  }

  /* Catalog topbar empilhado */
  .catalog-topbar {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .catalog-meta {
    justify-content: space-between;
  }
}

@media (max-width: 430px) {
  .property-card .property-image img {
    height: 220px;
  }
  .lead-popup {
    padding: 24px 18px;
  }
}

@media (max-width: 360px) {
  .property-card .property-body h3 {
    font-size: 17px;
  }
  .wa-float {
    width: 50px;
    height: 50px;
    right: 18px;
    bottom: 18px;
  }
}


/* ═══ MOBILE MENU PREMIUM ══════════════════════════════════════ */

/* Substituir mobile-panel herdado com design premium compacto */
.mobile-panel {
  display: none;
  position: fixed;
  inset: 0;
  background: #030303;
  z-index: 999;
  flex-direction: column;
  padding: 0;
  overflow-y: auto;
  max-height: 100dvh;
  padding-bottom: calc(24px + env(safe-area-inset-bottom));
}

.mobile-panel.open {
  display: flex;
}

/* Header do menu mobile */
.mobile-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  height: 70px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  flex-shrink: 0;
}

/* Links do menu — tamanho proporcional */
.mobile-panel a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.07);
  padding: 17px 24px;
  font-family: var(--serif);
  font-size: clamp(1.45rem, 6.5vw, 1.9rem);
  line-height: 1.1;
  color: rgba(255,255,255,.88);
  transition: color .2s;
}

.mobile-panel a:hover,
.mobile-panel a:active {
  color: var(--gold-light);
}

.mobile-panel a span {
  font-size: 1rem;
  opacity: .45;
  flex-shrink: 0;
}

/* Seletor de idiomas no menu mobile — compacto */
.mobile-lang-group {
  display: flex;
  gap: 6px;
  padding: 16px 24px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  flex-shrink: 0;
}

.mobile-lang-group .lang-btn {
  min-width: 38px;
  height: 36px;
  padding: 0 8px;
  font-size: 10px;
  letter-spacing: .12em;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.55);
  cursor: pointer;
  font-family: var(--sans);
  text-transform: uppercase;
  transition: .2s;
}

.mobile-lang-group .lang-btn.active,
.mobile-lang-group .lang-btn:hover {
  background: rgba(233,197,103,.15);
  border-color: var(--gold-mid);
  color: var(--gold-light);
}

/* CTA no rodapé do menu mobile */
.mobile-panel-cta {
  padding: 20px 24px;
  margin-top: auto;
  flex-shrink: 0;
}

.mobile-panel-cta .btn {
  width: 100%;
  min-height: 50px;
}

/* Tamanhos para telas muito pequenas */
@media (max-width: 375px) {
  .mobile-panel a {
    font-size: 1.45rem;
    padding: 15px 20px;
  }
  .mobile-panel a span {
    display: none;
  }
  .mobile-lang-group {
    padding: 14px 20px;
  }
}

@media (max-width: 320px) {
  .mobile-panel a {
    font-size: 1.35rem;
    padding: 13px 16px;
  }
}

/* ═══ ADMIN MOBILE RESPONSIVO ═══════════════════════════════════ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  max-width: 100%;
  overflow-x: hidden;
}

@media (max-width: 767px) {
  /* Admin geral */
  .admin-shell {
    grid-template-columns: 1fr !important;
  }

  .sidebar {
    position: static !important;
    height: auto !important;
    padding: 16px 16px 12px !important;
  }

  .sidebar nav {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
  }

  .sidebar nav a {
    padding: 9px 12px;
    font-size: 11px;
    flex: 1 1 auto;
    text-align: center;
    min-width: 80px;
  }

  .dashboard {
    padding: 20px 16px !important;
  }

  /* Cards do dashboard */
  .cards {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px;
  }

  .dash-card b {
    font-size: 28px;
  }

  /* Ações admin */
  .admin-actions,
  .admin-header-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
  }

  .admin-actions .btn,
  .admin-actions a,
  .admin-header-actions .btn,
  .admin-header-actions a {
    width: 100%;
    min-height: 48px;
    justify-content: center;
  }

  /* Filtros admin em coluna */
  .admin-filters {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100%;
  }

  /* Grid de imóveis admin */
  .admin-property-grid,
  .admin-grid {
    grid-template-columns: 1fr !important;
  }

  /* Formulários admin */
  .admin-form,
  .admin-form-grid {
    grid-template-columns: 1fr !important;
    gap: 14px;
  }

  .admin-form .full {
    grid-column: auto !important;
  }

  /* Inputs/selects/textareas */
  .admin-page input,
  .admin-page select,
  .admin-page textarea,
  .admin-shell input,
  .admin-shell select,
  .admin-shell textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  /* Tabelas admin — scroll interno */
  .table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }

  .table {
    min-width: 600px;
  }

  /* Página admin */
  .admin-page,
  .dashboard {
    width: 100%;
    max-width: 100%;
    padding: 20px 16px;
    overflow-x: hidden;
  }

  /* Auth layout admin */
  .auth-layout {
    grid-template-columns: 1fr !important;
  }

  .auth-box {
    padding: 40px 20px !important;
  }
}

/* ═══ WHATSAPP MOBILE SEGURO ════════════════════════════════════ */
.wa-float {
  right: 16px !important;
  bottom: calc(20px + env(safe-area-inset-bottom)) !important;
}

@media (max-width: 767px) {
  body.has-sticky-cta .wa-float {
    bottom: calc(80px + env(safe-area-inset-bottom)) !important;
  }
}


/* ═══ PERFORMANCE — animações compostas ════════════════════════ */
/* Usar transform/opacity em vez de background-position/width/height */

.property-card,
.property-card .property-image img,
.region-card:before,
.property-img img {
  will-change: transform;
}

/* Hero: evitar reflow, usar transform para parallax se houver */
.hero::before {
  background-attachment: scroll;
  background-position: 82% 18%;
  background-size: cover;
  background-repeat: no-repeat;
}

/* Imagens com aspect-ratio para evitar CLS */
.property-image {
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

.property-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* ═══ CORREÇÃO HEADER + LOGO MOBILE (v2) ═══════════════════════ */

/* Seletor de idiomas do header — compacto */
.lang-selector {
  display: flex;
  gap: 4px;
  align-items: center;
}

.lang-selector .lang-btn {
  min-width: 32px;
  height: 30px;
  padding: 0 7px;
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .1em;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.5);
  cursor: pointer;
  transition: .2s;
}

.lang-selector .lang-btn.active,
.lang-selector .lang-btn:hover {
  background: rgba(233,197,103,.15);
  border-color: var(--gold-mid);
  color: var(--gold-light);
}

/* ─── TABLET E MOBILE (≤1023px): logo só ícone ──────────────────── */
@media (max-width: 1023px) {
  /* Esconde o texto da marca, mostra só o ícone */
  .brand-desktop {
    display: none !important;
  }

  .logo-img {
    gap: 0;
  }

  .logo-icon {
    height: 34px;
  }

  /* Header mais baixo e organizado */
  .site-header {
    height: 62px;
    padding: 0 16px;
    gap: 12px;
  }

  /* Seletor de idiomas alinhado à direita, antes do hambúrguer */
  .lang-selector {
    margin-left: auto;
  }

  .menu {
    margin-left: 4px;
  }
}

@media (max-width: 767px) {
  .site-header {
    height: 58px;
    padding: 0 14px;
  }

  .logo-icon {
    height: 30px;
  }

  .lang-selector .lang-btn {
    min-width: 30px;
    height: 28px;
    padding: 0 6px;
    font-size: 9px;
  }

  /* Mobile panel abre abaixo do header mais baixo */
  .mobile-panel {
    padding-top: 0;
  }
}

@media (max-width: 360px) {
  .lang-selector {
    gap: 3px;
  }
  .lang-selector .lang-btn {
    min-width: 28px;
    padding: 0 5px;
  }
  .site-header {
    padding: 0 12px;
    gap: 8px;
  }
}

.property-image-placeholder {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background:
    linear-gradient(145deg, rgba(233,197,103,.10), rgba(255,255,255,.025)),
    #0f0f0d;
  border: 1px solid rgba(233,197,103,.14);
  color: rgba(255,255,255,.56);
  font-family: var(--sans);
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
  text-align: center;
}

/* ── Image Lightbox ─────────────────────────────────────────── */
[data-lightbox-src] {
  cursor: zoom-in;
}

body.lightbox-open {
  overflow: hidden;
}

.image-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 26px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}

.image-lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}

.image-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.92);
  cursor: zoom-out;
}

.image-lightbox-content {
  position: relative;
  z-index: 2;
  width: min(94vw, 1400px);
  max-height: 88vh;
  margin: 0;
  display: grid;
  place-items: center;
}

.image-lightbox-content img {
  max-width: 100%;
  max-height: 88vh;
  object-fit: contain;
  display: block;
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 24px 80px rgba(0,0,0,.55);
}

.image-lightbox-close {
  position: fixed;
  top: 22px;
  right: 24px;
  z-index: 3;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.45);
  color: #fff;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(12px);
}

.image-lightbox-close:hover {
  border-color: rgba(233,197,103,.55);
  color: var(--gold-light);
}

@media (max-width: 720px) {
  .image-lightbox {
    padding: 16px;
  }

  .image-lightbox-close {
    top: 14px;
    right: 14px;
    width: 42px;
    height: 42px;
    font-size: 28px;
  }

  .image-lightbox-content,
  .image-lightbox-content img {
    max-height: 82vh;
  }
}
