@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap');

/* ── DESIGN TOKENS ─────────────────────────────────────────────────── */
:root {
  --color-bg:      #f3f2f2;
  --color-surface: #eae9e9;
  --color-text:    #201e1d;

  --color-gold:        #C9A84C;
  --color-gold-light:  #E2C36B;
  --color-gold-dark:   #9A7A28;
  --color-gold-subtle: rgba(201,168,76,.10);
  --color-accent:  #0088b0;
  --color-divider: rgba(32,30,29,.16);

  --color-neutral-100: #f8f4f4;
  --color-neutral-200: #eae7e7;
  --color-neutral-300: #d7d3d3;
  --color-neutral-400: #bab6b6;
  --color-neutral-500: #9b9797;
  --color-neutral-600: #7d7979;
  --color-neutral-700: #605d5d;
  --color-neutral-800: #444141;
  --color-neutral-900: #2d2b2b;

  --color-accent-100: #e9f8ff;
  --color-accent-200: #cbeeff;
  --color-accent-300: #99e0ff;
  --color-accent-400: #62c5ee;
  --color-accent-500: #38a6cf;
  --color-accent-600: #1186ac;
  --color-accent-700: #006786;
  --color-accent-800: #004961;
  --color-accent-900: #0a303e;

  --font-heading:        "Source Serif 4", Georgia, serif;
  --font-heading-weight: 600;
  --font-body:           "Source Serif 4", Georgia, serif;

  --space-1: 5px;
  --space-2: 10px;
  --space-3: 15px;
  --space-4: 20px;
  --space-6: 30px;
  --space-8: 40px;

  --radius-sm: 1px;
  --radius-md: 2px;
  --radius-lg: 4px;

  --shadow-sm: 0 1px 2px rgba(45,43,43,.14);
  --shadow-md: 0 3px 10px rgba(45,43,43,.16);
  --shadow-lg: 0 12px 32px rgba(45,43,43,.22);
}

/* ── BASE ────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: var(--font-heading-weight);
  line-height: 1.12;
  letter-spacing: -0.015em;
  margin: 0 0 var(--space-2);
}
h1 { font-size: 42px; }
h2 { font-size: 32px; }
h3 { font-size: 25px; }
h4 { font-size: 20px; }
h5 { font-size: 16px; }
h6 { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }

p { margin: 0 0 var(--space-3); }
a { color: var(--color-accent); text-underline-offset: 3px; }
img { display: block; max-width: 100%; }
figure { margin: 0; }

:focus { outline: none; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
::selection { background: rgba(0,136,176,.25); }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--color-surface); }
::-webkit-scrollbar-thumb { background: var(--color-neutral-400); border-radius: 5px; }

/* ── SITE HEADER (páginas internas) ─────────────────────────────────── */
.site-header {
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-divider);
  position: sticky;
  top: 0;
  z-index: 100;
}
.site-header a {
  color: var(--color-text);
  text-decoration: none;
  font-size: 14px;
  transition: color .12s;
}
.site-header a:hover { color: var(--color-accent); }

/* ── BUTTONS ─────────────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  text-decoration: none;
  font-family: var(--font-heading);
  font-weight: var(--font-heading-weight);
  font-size: 14px;
  line-height: 1.2;
  color: var(--color-text);
  background: transparent;
  border: 1px solid transparent;
  padding: var(--space-2) calc(var(--space-3) * 1.2);
  border-radius: var(--radius-md);
  transition: background .12s, border-color .12s;
}
.btn-primary  { background: var(--color-accent); color: #fff; border-color: var(--color-accent); }
.btn-primary:hover  { background: var(--color-accent-600); border-color: var(--color-accent-600); }
.btn-primary:active { background: var(--color-accent-700); }
.btn-secondary { border-color: var(--color-divider); }
.btn-secondary:hover { background: rgba(32,30,29,.07); }
.btn-gold { background: #f0b429; color: #1a1105; border-color: #f0b429; }
.btn-gold:hover  { background: #d99f1e; border-color: #d99f1e; }
.btn-gold:active { background: #c48e16; }
.btn-ghost { color: var(--color-accent); padding-inline: var(--space-1); }
.btn-ghost:hover { background: rgba(0,136,176,.1); }
.btn-block { width: 100%; margin-top: var(--space-2); }

/* ── FORMS ───────────────────────────────────────────────────────────── */
.field > label {
  display: block;
  font-size: 12px;
  margin-bottom: 5px;
  color: rgba(32,30,29,.7);
}
.input {
  width: 100%;
  min-height: 36px;
  padding: 6px 10px;
  font: inherit;
  font-size: 14px;
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-divider);
  border-radius: var(--radius-md);
  transition: border-color .12s;
}
.input::placeholder { color: rgba(32,30,29,.55); opacity: 1; }
.input:hover { border-color: rgba(32,30,29,.45); }
.input:focus-visible { border-color: var(--color-accent); outline-offset: 0; }
textarea.input { min-height: 90px; resize: vertical; }

.seg {
  display: inline-flex;
  overflow: hidden;
  border: 1px solid var(--color-divider);
  border-radius: var(--radius-md);
}
.seg-opt {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  font-size: 13px;
  cursor: pointer;
  transition: background .12s;
}
.seg-opt + .seg-opt { border-left: 1px solid var(--color-divider); }
.seg-opt input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.seg-opt.active,
.seg-opt:has(input:checked) { background: var(--color-accent); color: #fff; }
.seg-opt:not(.active):hover { background: rgba(32,30,29,.07); }

/* ── CARDS ───────────────────────────────────────────────────────────── */
.card {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}
.card-kicker { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent); }
.card-title  { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 17px; line-height: 1.2; margin: 0; }
.card-body   { margin: 0; font-size: 13px; opacity: .8; flex: 1; }
.card-meta   { display: flex; align-items: center; gap: 6px; font-size: 11px; color: rgba(32,30,29,.5); }
.elev-sm { box-shadow: var(--shadow-sm); }
.elev-md { box-shadow: var(--shadow-md); }
.elev-lg { box-shadow: var(--shadow-lg); }

/* ── TAGS ────────────────────────────────────────────────────────────── */
.tag {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  letter-spacing: 0.02em;
  padding: 3px 10px;
  border-radius: calc(var(--radius-md) * .75);
}
.tag-accent  { background: var(--color-accent-100); color: var(--color-accent-800); }
.tag-neutral { background: var(--color-neutral-100); color: var(--color-neutral-800); }
.tag-outline { border: 1px solid var(--color-accent); color: var(--color-accent); cursor: pointer; }
.tag-outline:hover { background: var(--color-accent-100); }
.tag-gold {
  background: rgba(201,168,76,.22);
  color: var(--color-gold-dark);
  border: 1px solid var(--color-gold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 700;
}

/* ── TABLE ───────────────────────────────────────────────────────────── */
.table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table td { padding: var(--space-2); border-bottom: 1px solid rgba(32,30,29,.08); }
.table td:first-child { color: var(--color-neutral-700); width: 36%; }
.table tbody tr:hover { background: rgba(32,30,29,.04); }

/* ── DIVIDER ─────────────────────────────────────────────────────────── */
.hr { height: 1px; border: 0; margin: var(--space-4) 0; background: var(--color-divider); }

/* ── DIALOG / MODAL ──────────────────────────────────────────────────── */
.dialog-backdrop {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  padding: var(--space-4);
  background: rgba(10,48,62,.55);
  z-index: 9999;
}
.dialog {
  width: min(440px, 100%);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  box-shadow: var(--shadow-lg);
}
.dialog-title   { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 20px; }
.dialog-body    { font-size: 14px; }
.dialog-actions { display: flex; justify-content: flex-end; gap: var(--space-2); margin-top: var(--space-2); }

/* ── PROPERTY CARD ───────────────────────────────────────────────────── */
.gm-property-card {
  cursor: pointer;
  background: var(--color-surface);
  border: 1px solid rgba(201,168,76,.22);
  border-top: 3px solid var(--color-gold);
  transition: box-shadow .22s ease, transform .22s ease, border-color .22s ease;
  overflow: hidden;
}
.gm-property-card:hover {
  box-shadow: 0 16px 48px rgba(0,0,0,.18), 0 0 0 1px rgba(201,168,76,.40);
  transform: translateY(-4px);
  border-color: rgba(201,168,76,.40);
}
.gm-property-card .card-title {
  font-size: 18px;
}
.gm-property-card .card-meta strong {
  color: var(--color-gold-dark);
  font-size: 18px;
}

/* overlay "Ver imóvel" ao hover */
.gm-property-card figure { position: relative; }
.gm-property-card figure::after {
  content: 'Ver imóvel →';
  position: absolute;
  inset: 0;
  background: rgba(10,24,34,.55);
  color: var(--color-gold-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 15px;
  letter-spacing: 0.08em;
  opacity: 0;
  transition: opacity .22s;
}
.gm-property-card:hover figure::after { opacity: 1; }

/* ── WIZARD STEPS ────────────────────────────────────────────────────── */
.wizard-step { display: none; }
.wizard-step.active { display: block; }

/* ── NOTICE ──────────────────────────────────────────────────────────── */
.gm-notice {
  background: var(--color-accent-100);
  border-radius: var(--radius-lg);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-4);
  color: var(--color-accent-800);
  font-size: 15px;
}

/* ── RESPONSIVE ──────────────────────────────────────────────────────── */
@media (max-width: 960px) {
  h1 { font-size: 34px; }
  h2 { font-size: 26px; }

  .gm-hero-nav  { display: none !important; }
  .gm-inner-nav { display: none !important; }
  .gm-mob-menu-btn { display: flex !important; }

  /* Header hero: fundo sólido verde escuro, largura total */
  .gm-hero-header {
    background: #0d2e3d !important;
    max-width: 100% !important;
    padding: 12px 16px !important;
  }

  /* Logo menor no mobile */
  .gm-hero-logo { width: 150px !important; }

  /* Esconde o blob de gradiente atrás do logo no mobile */
  .gm-hero-logo-blob { display: none !important; }

  /* Busca IA: botão vira linha separada no mobile */
  .gm-search-btn-abs {
    position: static !important;
    transform: none !important;
    display: block;
    width: 100%;
    margin-top: 8px;
    padding: 12px !important;
    text-align: center;
  }
  #gm-ai-search {
    padding-right: 16px !important;
  }

  .gm-types-grid   { grid-template-columns: repeat(3, 1fr) !important; }
  .gm-destaques-grid,
  .gm-cards-grid   { grid-template-columns: 1fr !important; }
  .gm-sobre-grid,
  .gm-mapa-grid,
  .gm-contato-grid { grid-template-columns: 1fr !important; }
  .gm-archive-layout { grid-template-columns: 1fr !important; }
  .gm-archive-grid { grid-template-columns: 1fr !important; }
  .gm-detalhe-grid { grid-template-columns: 1fr !important; }
  .gm-archive-sidebar { position: static !important; }
  .gm-detalhe-aside  { position: static !important; }
}

@media (max-width: 600px) {
  h1 { font-size: 28px; }
  .gm-types-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .gm-hero-content { padding-left: var(--space-4) !important; padding-right: var(--space-4) !important; }
}

/* ── GOLD ACCENT LINE para h6 de seção ──────────────────────────────── */
.gm-section h6,
.gm-section--alt h6 {
  color: var(--color-gold-dark);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.gm-section h6::before,
.gm-section--alt h6::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 1.5px;
  background: var(--color-gold);
  flex-shrink: 0;
}

/* ── SECTIONS ────────────────────────────────────────────────────────── */
.gm-section {
  padding: 72px 0;
  border-top: 1px solid rgba(32,30,29,.07);
}
.gm-section--alt {
  background: var(--color-surface); /* #eae9e9 — cinza levíssimo */
}
.gm-section-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 var(--space-4);
}

/* ── EQUIPE SECTION ──────────────────────────────────────────────────── */
.gm-equipe-section {
  position: relative;
  overflow: hidden;
  background: var(--color-accent-900);
}

/* bloom de luz radial — dá profundidade sem poluir */
.gm-equipe-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 72% 58% at 12% 55%, rgba(0,136,176,.18) 0%, transparent 65%),
    radial-gradient(ellipse 48% 72% at 90% 10%, rgba(0,103,134,.13) 0%, transparent 58%),
    radial-gradient(ellipse 35% 45% at 55% 90%, rgba(0,73,97,.20) 0%, transparent 55%);
  pointer-events: none;
  z-index: 0;
}

/* trama diagonal fina — textura de fundo discreta */
.gm-equipe-section::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 36px,
    rgba(255,255,255,.022) 36px,
    rgba(255,255,255,.022) 37px
  );
  pointer-events: none;
  z-index: 0;
}

.gm-equipe-inner {
  position: relative;
  z-index: 1;
  max-width: 1180px;
  margin: 0 auto;
  padding: 64px var(--space-4);
}

.gm-equipe-header {
  margin-bottom: 40px;
}

.gm-equipe-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-4);
}

.gm-equipe-card {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.11);
  border-radius: var(--radius-md);
  padding: var(--space-6);
  display: flex;
  align-items: center;
  gap: var(--space-4);
  transition: background .2s, border-color .2s, transform .2s;
}

.gm-equipe-card:hover {
  background: rgba(255,255,255,.12);
  border-color: rgba(0,136,176,.40);
  transform: translateY(-2px);
}

.gm-equipe-card-photo {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid rgba(201,168,76,.65);
  box-shadow: 0 0 0 5px rgba(201,168,76,.12);
}

/* ── PRICE SLIDER ────────────────────────────────────────────────────── */
.gm-price-input-wrap {
  position: relative;
  margin-bottom: 6px;
}
.gm-currency-sign {
  position: absolute;
  left: 9px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 12px;
  color: var(--color-neutral-600);
  pointer-events: none;
  font-weight: 600;
}
.gm-price-text { padding-left: 28px !important; font-weight: 600; }

.gm-slider-wrap { padding: 4px 2px 2px; }

.gm-range {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(
    to right,
    var(--color-accent) 0%,
    var(--color-accent) var(--pct, 50%),
    var(--color-neutral-300) var(--pct, 50%),
    var(--color-neutral-300) 100%
  );
  outline: none;
  cursor: pointer;
  border: none;
}
.gm-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--color-accent);
  border: 3px solid #fff;
  box-shadow: 0 1px 5px rgba(0,0,0,.25);
  cursor: grab;
  transition: transform .1s, background .1s;
}
.gm-range::-webkit-slider-thumb:hover  { transform: scale(1.2); background: var(--color-accent-600); }
.gm-range::-webkit-slider-thumb:active { cursor: grabbing; }
.gm-range::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--color-accent);
  border: 3px solid #fff;
  box-shadow: 0 1px 5px rgba(0,0,0,.25);
  cursor: grab;
}
.gm-range::-moz-range-track {
  height: 4px;
  border-radius: 2px;
  background: var(--color-neutral-300);
}
.gm-range::-moz-range-progress {
  height: 4px;
  border-radius: 2px;
  background: var(--color-accent);
}

/* ── GALERIA VIEWER (single imóvel) ──────────────────────────────────── */
.gm-gallery-main { margin-bottom: var(--space-2); }
.gm-gallery-main img { transition: opacity .2s; }
.gm-gallery-main:hover img { opacity: .92; }

.gm-gallery-strip {
  display: flex;
  gap: var(--space-2);
  overflow-x: auto;
  padding-bottom: 4px;
  scroll-snap-type: x mandatory;
}
.gm-gallery-strip::-webkit-scrollbar { height: 4px; }
.gm-gallery-strip::-webkit-scrollbar-thumb { background: var(--color-neutral-400); border-radius: 2px; }

.gm-thumb {
  flex-shrink: 0;
  width: 90px;
  height: 64px;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 2px solid transparent;
  padding: 0;
  background: none;
  cursor: pointer;
  scroll-snap-align: start;
  transition: border-color .15s, opacity .15s;
  opacity: .65;
}
.gm-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gm-thumb:hover { opacity: .9; }
.gm-thumb.active { border-color: var(--color-accent); opacity: 1; }

/* ── LIGHTBOX ─────────────────────────────────────────────────────────── */
.gm-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(10, 48, 62, .96);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}
.gm-lightbox.open { opacity: 1; pointer-events: all; }

.gm-lightbox-img {
  max-width: 92vw;
  max-height: 88vh;
  object-fit: contain;
  border-radius: var(--radius-md);
  display: block;
  transition: opacity .18s;
}

.gm-lightbox-close {
  position: absolute;
  top: var(--space-4);
  right: var(--space-4);
  background: rgba(255,255,255,.15);
  border: none;
  color: #fff;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
}
.gm-lightbox-close:hover { background: rgba(255,255,255,.3); }

.gm-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,.15);
  border: none;
  color: #fff;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  font-size: 22px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
}
.gm-lightbox-nav:hover { background: rgba(255,255,255,.3); }
.gm-lightbox-prev { left: var(--space-4); }
.gm-lightbox-next { right: var(--space-4); }

.gm-lightbox-counter {
  position: absolute;
  bottom: var(--space-4);
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,.7);
  font-size: 13px;
}

/* ── Searchable Select ─────────────────────────────────────── */
.gm-ss {
  position: relative;
  width: 100%;
  font-family: var(--font-body);
  font-size: 13px;
}
.gm-ss-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--color-neutral-300,#ccc);
  border-radius: var(--radius-md,6px);
  background: #fff;
  color: var(--color-text,#222);
  cursor: pointer;
  user-select: none;
  box-sizing: border-box;
}
.gm-ss-trigger svg { flex-shrink:0; transition: transform .2s; }
.gm-ss.open .gm-ss-trigger svg { transform: rotate(180deg); }
.gm-ss-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0; right: 0;
  background: #fff;
  border: 1px solid var(--color-neutral-300,#ccc);
  border-radius: var(--radius-md,6px);
  box-shadow: 0 6px 20px rgba(0,0,0,.12);
  z-index: 9999;
  overflow: hidden;
}
.gm-ss.open .gm-ss-dropdown { display: flex; flex-direction: column; }
.gm-ss-search {
  padding: 8px 10px;
  border: none;
  border-bottom: 1px solid var(--color-neutral-200,#eee);
  font-size: 13px;
  outline: none;
  width: 100%;
  box-sizing: border-box;
}
.gm-ss-list {
  overflow-y: auto;
  max-height: 220px;
}
.gm-ss-option {
  padding: 8px 12px;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gm-ss-option:hover, .gm-ss-option.highlighted { background: var(--color-primary-50, #e8f4f8); }
.gm-ss-option.selected { font-weight: 600; background: var(--color-primary-100, #d0eaf4); }
.gm-ss-empty { padding: 10px 12px; color: #999; font-style: italic; }

/* Dark variant (archive sidebar) */
.gm-ss.dark .gm-ss-trigger {
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.15);
  color: #fff;
}
.gm-ss.dark .gm-ss-dropdown {
  background: #0e3445;
  border-color: rgba(255,255,255,.15);
}
.gm-ss.dark .gm-ss-search {
  background: #0a2f3e;
  border-bottom-color: rgba(255,255,255,.1);
  color: #fff;
}
.gm-ss.dark .gm-ss-search::placeholder { color: rgba(255,255,255,.4); }
.gm-ss.dark .gm-ss-option { color: #e0eef5; }
.gm-ss.dark .gm-ss-option:hover,
.gm-ss.dark .gm-ss-option.highlighted { background: rgba(255,255,255,.1); }
.gm-ss.dark .gm-ss-option.selected { background: rgba(255,255,255,.18); }
.gm-ss.dark .gm-ss-empty { color: rgba(255,255,255,.4); }
