/* ================================================================
   DIMORE LOCAÇÃO — Site CSS v2
   Clean · Legível · Moderno · Animado
   ================================================================ */

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

:root{
  --white:   #FFFFFF;
  --off:     #F7F6F3;
  --light:   #EDECE8;
  --border:  #E2E0DA;
  --muted:   #9B9790;
  --text:    #1A1917;
  --accent:  #2A5F4F;
  --accent2: #E8F0ED;
  --wa:      #25D366;
  --ff: 'DM Sans', sans-serif;
  --fd: 'Fraunces', Georgia, serif;
  --pad: clamp(1.25rem, 5%, 5rem);
}

html { scroll-behavior: smooth; }
body {
  font-family: var(--ff);
  background: var(--white);
  color: var(--text);
  font-weight: 400;
  line-height: 1.6;
  font-size: 16px;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

/* ── ANIMAÇÕES ── */
@keyframes fadeUp    { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn    { from{opacity:0} to{opacity:1} }
@keyframes slideRight{ from{opacity:0;transform:translateX(-24px)} to{opacity:1;transform:translateX(0)} }
@keyframes scaleIn   { from{opacity:0;transform:scale(.95)} to{opacity:1;transform:scale(1)} }
@keyframes hlReveal  { from{width:0} to{width:106%} }
@keyframes marqueeTicker { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes pulse     { 0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.4)} 50%{box-shadow:0 0 0 10px rgba(37,211,102,0)} }
@keyframes typeWord  { 0%{opacity:0;transform:translateY(8px)} 100%{opacity:1;transform:translateY(0)} }

.fade-up { opacity:0; transform:translateY(24px); transition:opacity .65s ease, transform .65s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }

/* ── NAVBAR ── */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(255,255,255,.92); backdrop-filter:blur(16px);
  border-bottom:1px solid transparent;
  transition:border-color .3s, box-shadow .3s;
  height:68px; display:flex; align-items:center; padding:0 var(--pad);
}
.nav.scrolled { border-bottom-color:var(--border); box-shadow:0 1px 24px rgba(26,25,23,.06); }
.nav-inner { width:100%; max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; }
.nav-logo {
  font-family:var(--ff); font-size:1.1rem; font-weight:700;
  color:var(--text); text-decoration:none; letter-spacing:-.02em;
  display:flex; align-items:center; gap:.4rem;
}
.nav-logo-dot { width:8px; height:8px; border-radius:50%; background:var(--accent); display:inline-block; }
.nav-links { display:flex; align-items:center; gap:2rem; }
.nav-links a { font-size:.875rem; font-weight:500; color:var(--muted); text-decoration:none; transition:color .2s; }
.nav-links a:hover { color:var(--text); }
.nav-cta {
  display:flex; align-items:center; gap:.4rem;
  background:var(--text); color:var(--white) !important;
  padding:.55rem 1.25rem; border-radius:50px;
  font-size:.875rem !important; font-weight:600 !important;
  transition:background .2s, transform .15s !important;
}
.nav-cta:hover { background:var(--accent) !important; transform:translateY(-1px); }
.nav-hamburger { display:none; background:none; border:none; cursor:pointer; padding:.25rem; flex-direction:column; gap:5px; }
.nav-hamburger span { display:block; width:22px; height:2px; background:var(--text); border-radius:2px; }

/* ── HERO ── */
.hero { min-height:100vh; padding-top:68px; display:flex; flex-direction:column; background:var(--white); }
.hero-top {
  flex:1; display:grid; grid-template-columns:1fr 1fr;
  max-width:1200px; margin:0 auto; width:100%;
  padding:6vh var(--pad) 4vh; gap:4rem; align-items:center;
}
.hero-left { display:flex; flex-direction:column; }

.hero-tag {
  display:inline-flex; align-items:center; gap:.4rem;
  background:var(--accent2); color:var(--accent);
  font-size:.78rem; font-weight:700; letter-spacing:.05em;
  padding:.35rem .9rem; border-radius:50px;
  margin-bottom:1.5rem; width:fit-content;
  animation:slideRight .6s ease .1s both;
}
.hero-tag-dot { width:6px; height:6px; border-radius:50%; background:var(--accent); }

.hero-title {
  font-family:var(--ff);
  font-size:clamp(2.4rem, 5vw, 4rem);
  font-weight:700;
  color:var(--text);
  line-height:1.1;
  letter-spacing:-.035em;
  margin-bottom:1.5rem;
  animation:fadeUp .7s ease .2s both;
}
.hero-title .highlight-wrap { position:relative; display:inline-block; }
.hero-title .highlight-word {
  position:relative; z-index:1;
  font-family:var(--fd); font-style:italic; font-weight:300;
  color:var(--accent);
}
.hero-title .highlight-bg {
  position:absolute; bottom:4px; left:-3px;
  height:42%; background:var(--accent2); border-radius:4px;
  z-index:0; width:0;
  animation:hlReveal .8s ease .9s forwards;
}

/* Palavras que trocam com animação */
.hero-rotating-wrap { display:inline-block; overflow:hidden; vertical-align:bottom; }
.hero-rotating-word {
  display:block;
  animation:typeWord .5s ease both;
  font-family:var(--fd); font-style:italic; font-weight:300;
  color:var(--accent);
}

.hero-desc {
  font-size:1.05rem; color:var(--muted); line-height:1.8;
  max-width:430px; margin-bottom:2.5rem;
  animation:fadeUp .7s ease .35s both;
}
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; animation:fadeUp .7s ease .45s both; }

.btn-primary {
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--text); color:var(--white);
  padding:.875rem 1.75rem; border-radius:50px;
  font-size:.9rem; font-weight:600; text-decoration:none;
  transition:background .2s, transform .15s; letter-spacing:-.01em;
}
.btn-primary:hover { background:var(--accent); transform:translateY(-2px); }
.btn-outline {
  display:inline-flex; align-items:center; gap:.5rem;
  background:transparent; color:var(--text);
  padding:.875rem 1.75rem; border-radius:50px;
  border:1.5px solid var(--border);
  font-size:.9rem; font-weight:500; text-decoration:none;
  transition:border-color .2s, transform .15s;
}
.btn-outline:hover { border-color:var(--text); transform:translateY(-2px); }

.hero-stats {
  display:flex; gap:2.5rem;
  margin-top:3rem; padding-top:2rem;
  border-top:1px solid var(--border);
  animation:fadeUp .7s ease .55s both;
}
.stat-num { font-size:1.85rem; font-weight:800; color:var(--text); letter-spacing:-.05em; display:block; line-height:1; }
.stat-lbl { font-size:.78rem; color:var(--muted); margin-top:.3rem; display:block; }

.hero-right { position:relative; animation:scaleIn .8s ease .3s both; }
.hero-img-wrap { border-radius:24px; overflow:hidden; aspect-ratio:4/5; position:relative; }
.hero-img-wrap img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.hero-img-wrap:hover img { transform:scale(1.03); }

.hero-badge {
  position:absolute; bottom:1.5rem; left:-1.75rem;
  background:var(--white); border-radius:16px;
  padding:1rem 1.25rem;
  box-shadow:0 8px 32px rgba(26,25,23,.12);
  display:flex; align-items:center; gap:.75rem;
  animation:fadeUp .7s ease 1s both; z-index:2;
}
.hero-badge-icon {
  width:40px; height:40px; border-radius:12px;
  background:var(--accent2); color:var(--accent);
  display:flex; align-items:center; justify-content:center; font-size:1.1rem;
}
.hero-badge-text strong { display:block; font-size:.85rem; font-weight:700; color:var(--text); }
.hero-badge-text span { font-size:.75rem; color:var(--muted); }

.hero-pill {
  position:absolute; top:1.25rem; right:-1rem;
  background:var(--text); color:var(--white);
  border-radius:50px; padding:.45rem .9rem;
  font-size:.75rem; font-weight:700;
  display:flex; align-items:center; gap:.3rem;
  animation:slideRight .7s ease 1.1s both; z-index:2;
}

/* ── TICKER ── */
.ticker {
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  padding:.85rem 0; background:var(--off); overflow:hidden;
}
.ticker-track { display:flex; white-space:nowrap; animation:marqueeTicker 24s linear infinite; }
.ticker-item {
  display:inline-flex; align-items:center; gap:.75rem;
  padding:0 2rem; font-size:.78rem; font-weight:600;
  color:var(--muted); letter-spacing:.06em; text-transform:uppercase;
}
.ticker-dot { width:4px; height:4px; background:var(--accent); border-radius:50%; }

/* ── SEARCH ── */
.search-section { background:var(--off); padding:2.5rem var(--pad); }
.search-inner { max-width:1200px; margin:0 auto; }
.search-label { font-size:.75rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:.85rem; display:block; }

/* BOX ESTILO AIRBNB */
.srch-box {
  display:flex; align-items:center;
  background:var(--white); border-radius:60px;
  border:1.5px solid var(--border);
  box-shadow:0 2px 16px rgba(26,25,23,.06);
  padding:.35rem .35rem .35rem 0;
  gap:0; overflow:visible; position:relative;
  transition:box-shadow .2s;
}
.srch-box:hover { box-shadow:0 4px 24px rgba(26,25,23,.1); }

/* CADA CAMPO */
.srch-item {
  flex:1; padding:.55rem 1.25rem;
  display:flex; flex-direction:column; gap:.15rem;
  cursor:pointer; border-radius:50px;
  transition:background .15s; min-width:0;
  position:relative;
}
.srch-item:hover { background:var(--light); }
.srch-item-label {
  font-size:.65rem; font-weight:800;
  letter-spacing:.06em; text-transform:uppercase;
  color:var(--text); white-space:nowrap;
}
.srch-item-val {
  font-size:.875rem; font-weight:500; color:var(--muted);
  display:flex; align-items:center; justify-content:space-between;
  gap:.5rem; white-space:nowrap;
}
.srch-date-input {
  border:none; background:transparent; outline:none;
  font-family:var(--ff); font-size:.875rem;
  color:var(--text); font-weight:500; width:100%;
  cursor:pointer; padding:0;
}
.srch-date-input::-webkit-calendar-picker-indicator { opacity:.5; cursor:pointer; }
.srch-select-input {
  border:none; background:transparent; outline:none;
  font-family:var(--ff); font-size:.875rem;
  color:var(--text); font-weight:500; width:100%;
  cursor:pointer; padding:0; appearance:none; -webkit-appearance:none;
}
.srch-divider {
  width:1px; height:28px; background:var(--border); flex-shrink:0;
}
.srch-arrow {
  font-size:.7rem; color:var(--muted);
  transition:transform .2s; flex-shrink:0;
}
.srch-arrow.open { transform:rotate(180deg); }

/* CIDADE — campo maior */
.srch-cidade { flex:1.6; }

/* BOTÃO BUSCAR */
.srch-btn {
  background:var(--text); color:#fff; border:none;
  border-radius:50%; width:48px; height:48px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; flex-shrink:0; margin-right:.1rem;
  transition:background .2s, transform .15s;
  box-shadow:0 2px 8px rgba(26,25,23,.2);
}
.srch-btn:hover { background:var(--accent); transform:scale(1.05); }

/* DROPDOWN CIDADES */
.srch-dropdown {
  position:absolute; top:calc(100% + 10px); left:0;
  min-width:260px;
  background:var(--white); border:1.5px solid var(--border);
  border-radius:16px; box-shadow:0 8px 32px rgba(26,25,23,.12);
  z-index:300; overflow:hidden;
  animation:srchDropIn .15s ease;
}
@keyframes srchDropIn {
  from { opacity:0; transform:translateY(-6px); }
  to   { opacity:1; transform:translateY(0); }
}
.srch-dd-opt {
  padding:.75rem 1.25rem; font-size:.875rem; font-weight:500;
  color:var(--text); cursor:pointer; transition:background .12s;
  display:flex; align-items:center;
  border-bottom:1px solid var(--border);
}
.srch-dd-opt:last-child { border-bottom:none; }
.srch-dd-opt:hover { background:var(--off); }
.srch-dd-opt.selected { background:var(--accent2); color:var(--accent); font-weight:700; }
.srch-dd-all {
  font-size:.72rem; font-weight:800; letter-spacing:.05em;
  text-transform:uppercase; color:var(--muted);
  background:var(--off); padding:.6rem 1.25rem;
  border-bottom:1.5px solid var(--border) !important;
}
.srch-dd-all:hover { background:var(--light); color:var(--text); }

/* DROPDOWN CIDADES (imoveis.php compat) */
.cidade-dropdown { position:absolute; top:calc(100% + 8px); left:0; min-width:260px; background:var(--white); border:1.5px solid var(--border); border-radius:14px; box-shadow:0 8px 32px rgba(26,25,23,.12); z-index:200; overflow:hidden; }
.cidade-opt { padding:.75rem 1.25rem; font-size:.875rem; font-weight:500; color:var(--text); cursor:pointer; transition:background .12s; display:flex; align-items:center; gap:.4rem; border-bottom:1px solid var(--border); }
.cidade-opt:last-child { border-bottom:none; }
.cidade-opt:hover { background:var(--off); }
.cidade-opt.active { background:var(--accent2); color:var(--accent); font-weight:700; }
.cidade-all { font-size:.72rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); background:var(--off); padding:.6rem 1.25rem; border-bottom:1.5px solid var(--border) !important; }
.cidade-all:hover { background:var(--light); }

/* MOBILE */
@media(max-width:700px){
  .srch-box { border-radius:16px; flex-direction:column; padding:.5rem; gap:.25rem; }
  .srch-item { border-radius:12px; }
  .srch-cidade { flex:none; width:100%; }
  .srch-divider { width:100%; height:1px; }
  .srch-btn { width:100%; border-radius:12px; height:44px; margin:0; }
  .srch-item-val { font-size:.8rem; }
}

/* ── SEÇÃO ── */
section { padding:5rem var(--pad); }
.section-inner { max-width:1200px; margin:0 auto; }
.section-eyebrow {
  font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--accent); margin-bottom:.75rem;
  display:flex; align-items:center; gap:.5rem;
}
.section-eyebrow::before { content:''; width:16px; height:2px; background:var(--accent); border-radius:2px; display:inline-block; }
.section-title {
  font-size:clamp(1.8rem,3.5vw,2.75rem); font-weight:700;
  color:var(--text); line-height:1.15; letter-spacing:-.03em; margin-bottom:1rem;
}
.section-title .italic { font-family:var(--fd); font-weight:300; font-style:italic; color:var(--accent); }
.section-desc { font-size:1rem; color:var(--muted); line-height:1.8; max-width:460px; }
.section-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:3rem; flex-wrap:wrap; gap:1.5rem; }

/* ── IMOVEIS GRID ── */
#imoveis { background:var(--white); }
.imoveis-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:1.5rem; }

.card {
  background:var(--white); border-radius:20px; overflow:hidden;
  border:1.5px solid var(--border);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s;
  text-decoration:none; color:inherit; display:block; cursor:pointer;
}
.card:hover { transform:translateY(-6px); box-shadow:0 20px 52px rgba(26,25,23,.1); border-color:transparent; }

/* Carrossel */
.card-carousel { position:relative; height:240px; overflow:hidden; background:var(--light); }
.carousel-track { display:flex; height:100%; transition:transform .4s cubic-bezier(.4,0,.2,1); }
.carousel-slide { flex-shrink:0; width:100%; height:100%; }
.carousel-slide img { width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; transition:transform .5s ease; }
.card:hover .carousel-slide img { transform:scale(1.04); }
.carousel-btn {
  position:absolute; top:50%; transform:translateY(-50%);
  width:34px; height:34px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(255,255,255,.92); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center;
  font-size:.9rem; transition:opacity .2s; opacity:0; color:var(--text);
}
.carousel-btn.prev { left:.75rem; }
.carousel-btn.next { right:.75rem; }
.card-carousel:hover .carousel-btn { opacity:1; }
.carousel-btn:hover { background:var(--white); }
.carousel-dots { position:absolute; bottom:.75rem; left:50%; transform:translateX(-50%); display:flex; gap:.3rem; z-index:3; }
.carousel-dot { width:5px; height:5px; border-radius:50%; background:rgba(255,255,255,.6); cursor:pointer; transition:all .2s; }
.carousel-dot.active { background:var(--white); transform:scale(1.4); }
.card-badge {
  position:absolute; top:.75rem; left:.75rem; z-index:3;
  background:rgba(255,255,255,.95); color:var(--text);
  font-size:.72rem; font-weight:700; padding:.25rem .7rem; border-radius:50px;
}
.foto-count {
  position:absolute; top:.75rem; right:.75rem; z-index:3;
  background:rgba(26,25,23,.5); color:var(--white);
  font-size:.7rem; font-weight:500; padding:.22rem .6rem; border-radius:50px;
  display:flex; align-items:center; gap:.3rem; backdrop-filter:blur(4px);
}
.card-body { padding:1.25rem 1.5rem 1.5rem; }
.card-location { font-size:.72rem; font-weight:600; color:var(--muted); display:flex; align-items:center; gap:.3rem; margin-bottom:.45rem; text-transform:uppercase; letter-spacing:.05em; }
.card-title { font-size:1rem; font-weight:700; color:var(--text); margin-bottom:.75rem; line-height:1.35; letter-spacing:-.015em; }
.card-amenities { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1rem; }
.amenity { font-size:.75rem; color:var(--muted); display:flex; align-items:center; gap:.25rem; background:var(--off); padding:.22rem .6rem; border-radius:6px; font-weight:500; }
.card-footer { display:flex; justify-content:space-between; align-items:center; padding-top:1rem; border-top:1px solid var(--border); }
.card-price { font-size:1.15rem; font-weight:800; color:var(--text); letter-spacing:-.025em; }
.card-price span { font-size:.78rem; font-weight:400; color:var(--muted); }
.card-rating { display:flex; align-items:center; gap:.3rem; font-size:.8rem; color:var(--text); font-weight:600; }
.card-wa {
  display:flex; align-items:center; gap:.4rem;
  background:var(--text); color:var(--white);
  padding:.48rem 1rem; border-radius:50px;
  font-size:.75rem; font-weight:600; text-decoration:none; transition:background .2s;
}
.card-wa:hover { background:var(--wa); }

/* ── COMO FUNCIONA ── */
#como-funciona { background:var(--off); }
.steps-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.25rem; margin-top:3rem; }
.step {
  background:var(--white); border-radius:20px; padding:2rem;
  border:1.5px solid var(--border); transition:transform .25s, box-shadow .25s;
}
.step:hover { transform:translateY(-4px); box-shadow:0 8px 32px rgba(26,25,23,.07); }
.step-num { font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); margin-bottom:1rem; display:flex; align-items:center; gap:.4rem; }
.step-num::before { content:''; width:20px; height:2px; background:var(--accent); border-radius:2px; }
.step-icon { width:46px; height:46px; border-radius:14px; background:var(--accent2); display:flex; align-items:center; justify-content:center; font-size:1.25rem; margin-bottom:1rem; }
.step h3 { font-size:.95rem; font-weight:700; color:var(--text); margin-bottom:.5rem; letter-spacing:-.01em; }
.step p  { font-size:.875rem; color:var(--muted); line-height:1.75; }

/* ── DEPOIMENTOS ── */
#depoimentos { background:var(--white); }
.depo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.25rem; }
.depo-card { background:var(--off); border-radius:20px; padding:2rem; border:1.5px solid var(--border); transition:transform .25s; }
.depo-card:hover { transform:translateY(-3px); }
.depo-stars { display:flex; gap:.2rem; color:#F59E0B; font-size:.9rem; margin-bottom:1rem; }
.depo-text { font-size:.9rem; color:var(--text); line-height:1.8; margin-bottom:1.5rem; }
.depo-author { display:flex; align-items:center; gap:.75rem; }
.depo-avatar { width:40px; height:40px; border-radius:50%; background:var(--accent2); display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.depo-name  { font-size:.875rem; font-weight:700; color:var(--text); }
.depo-info  { font-size:.75rem; color:var(--muted); margin-top:.1rem; }

/* ── SOBRE ── */
#sobre { background:var(--text); }
.sobre-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.sobre-eyebrow::before { background:rgba(255,255,255,.3) !important; }
.sobre-title { color:var(--white) !important; }
.sobre-desc  { color:rgba(255,255,255,.55) !important; font-size:1rem; line-height:1.8; margin-bottom:2rem; }
.sobre-feats { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.sobre-feat { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:1.25rem; transition:background .2s; }
.sobre-feat:hover { background:rgba(255,255,255,.1); }
.sobre-feat-icon { font-size:1.3rem; margin-bottom:.5rem; }
.sobre-feat h4 { font-size:.875rem; font-weight:700; color:var(--white); margin-bottom:.2rem; }
.sobre-feat p  { font-size:.78rem; color:rgba(255,255,255,.4); line-height:1.6; }
.sobre-imgs { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:240px 240px; gap:.75rem; }
.sobre-imgs img { width:100%; height:100%; object-fit:cover; border-radius:16px; }
.sobre-imgs img:first-child { grid-row:1/3; }

/* ── FAQ ── */
#faq { background:var(--off); }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:3rem; }
.faq-item { background:var(--white); border-radius:16px; border:1.5px solid var(--border); overflow:hidden; transition:border-color .2s; }
.faq-item:hover { border-color:var(--text); }
.faq-q { width:100%; background:none; border:none; cursor:pointer; padding:1.25rem 1.5rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; text-align:left; font-family:var(--ff); font-size:.9rem; font-weight:700; color:var(--text); transition:color .2s; letter-spacing:-.01em; }
.faq-chevron { width:28px; height:28px; border-radius:50%; background:var(--off); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:transform .3s, background .2s; }
.faq-item.open .faq-chevron { transform:rotate(180deg); background:var(--text); color:var(--white); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s ease, padding .3s; font-size:.875rem; color:var(--muted); line-height:1.8; padding:0 1.5rem; }
.faq-item.open .faq-a { max-height:200px; padding:0 1.5rem 1.25rem; }

/* ── CTA ── */
#cta { background:var(--accent); text-align:center; padding:7rem var(--pad); position:relative; overflow:hidden; }
#cta::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 120%,rgba(255,255,255,.12) 0%,transparent 70%); }
.cta-eyebrow { font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.6); margin-bottom:.75rem; display:flex; align-items:center; justify-content:center; gap:.5rem; }
.cta-eyebrow::before { content:''; width:16px; height:2px; background:rgba(255,255,255,.4); border-radius:2px; }
.cta-title { font-size:clamp(2rem,4vw,3rem); font-weight:700; color:var(--white); letter-spacing:-.03em; line-height:1.15; margin-bottom:.75rem; }
.cta-title .italic { font-family:var(--fd); font-weight:300; font-style:italic; color:rgba(255,255,255,.75); }
.cta-desc { color:rgba(255,255,255,.65); font-size:1rem; line-height:1.75; margin:0 auto 2.5rem; max-width:380px; }
.cta-actions { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; position:relative; z-index:1; }
.btn-wa {
  display:flex; align-items:center; gap:.6rem;
  background:var(--wa); color:var(--white);
  padding:.875rem 1.75rem; border-radius:50px;
  font-size:.9rem; font-weight:700; text-decoration:none;
  transition:background .2s, transform .15s;
  box-shadow:0 4px 20px rgba(37,211,102,.35);
}
.btn-wa:hover { background:#1da851; transform:translateY(-2px); }
.btn-white {
  display:flex; align-items:center; gap:.5rem;
  background:rgba(255,255,255,.12); color:var(--white);
  padding:.875rem 1.75rem; border-radius:50px;
  border:1.5px solid rgba(255,255,255,.3);
  font-size:.9rem; font-weight:500; text-decoration:none;
  transition:background .2s, transform .15s;
}
.btn-white:hover { background:rgba(255,255,255,.22); transform:translateY(-2px); }

/* ── FOOTER ── */
footer { background:var(--text); padding:3rem var(--pad); }
.footer-inner { max-width:1200px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1.5rem; }
.footer-logo { font-size:.95rem; font-weight:700; color:var(--white); text-decoration:none; display:flex; align-items:center; gap:.4rem; }
.footer-links { display:flex; gap:2rem; flex-wrap:wrap; }
.footer-links a { font-size:.8rem; font-weight:500; color:rgba(255,255,255,.4); text-decoration:none; transition:color .2s; }
.footer-links a:hover { color:rgba(255,255,255,.8); }
.footer-copy { font-size:.78rem; color:rgba(255,255,255,.3); }

/* ── FLOAT WA ── */
.wa-float {
  position:fixed; bottom:2rem; right:2rem; z-index:200;
  width:56px; height:56px; border-radius:50%; background:var(--wa);
  display:flex; align-items:center; justify-content:center;
  text-decoration:none; box-shadow:0 4px 16px rgba(37,211,102,.4);
  animation:pulse 2.5s ease-in-out infinite; transition:transform .2s;
}
.wa-float:hover { transform:scale(1.1); animation:none; }

/* ── LIGHTBOX ── */
.lightbox { position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.95); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .3s; }
.lightbox.open { opacity:1; pointer-events:all; }
.lightbox-img { max-width:90vw; max-height:88vh; object-fit:contain; border-radius:8px; transform:scale(.96); transition:transform .3s; }
.lightbox.open .lightbox-img { transform:scale(1); }
.lb-close { position:fixed; top:1.25rem; right:1.5rem; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.12); color:var(--white); border:none; cursor:pointer; font-size:1.1rem; display:flex; align-items:center; justify-content:center; transition:background .2s; z-index:10; }
.lb-close:hover { background:rgba(255,255,255,.25); }
.lb-nav { position:fixed; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.12); color:var(--white); border:none; cursor:pointer; font-size:1.2rem; display:flex; align-items:center; justify-content:center; transition:background .2s; z-index:10; }
.lb-nav:hover { background:rgba(255,255,255,.25); }
.lb-nav.prev { left:1rem; }
.lb-nav.next { right:1rem; }
.lb-counter { position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.55); font-size:.82rem; }
.lb-thumbs { position:fixed; bottom:3.25rem; left:50%; transform:translateX(-50%); display:flex; gap:.4rem; max-width:90vw; overflow-x:auto; padding:.3rem; }
.lb-thumb { width:46px; height:46px; border-radius:6px; object-fit:cover; cursor:pointer; border:2px solid transparent; transition:all .2s; opacity:.5; flex-shrink:0; }
.lb-thumb.active { border-color:var(--white); opacity:1; }

/* ── MODAL RESERVA ── */
.modal-overlay { position:fixed; inset:0; z-index:300; background:rgba(26,25,23,.6); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; padding:1.5rem; opacity:0; pointer-events:none; transition:opacity .3s; }
.modal-overlay.open { opacity:1; pointer-events:all; }
.modal { background:var(--white); border-radius:24px; width:100%; max-width:540px; max-height:90vh; overflow-y:auto; transform:translateY(24px); transition:transform .35s; }
.modal-overlay.open .modal { transform:translateY(0); }
.modal-header { position:relative; }
.modal-img { width:100%; height:260px; object-fit:cover; border-radius:24px 24px 0 0; }
.modal-close { position:absolute; top:1rem; right:1rem; width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.9); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1rem; transition:background .2s; }
.modal-close:hover { background:var(--white); }
.modal-body { padding:1.75rem; }
.modal-badge { font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin-bottom:.4rem; }
.modal-title { font-size:1.5rem; font-weight:800; color:var(--text); margin-bottom:.4rem; letter-spacing:-.025em; }
.modal-location { font-size:.8rem; color:var(--muted); display:flex; align-items:center; gap:.3rem; margin-bottom:1.25rem; }
.modal-amenities { display:flex; gap:.75rem; flex-wrap:wrap; margin-bottom:1.25rem; padding:1rem; background:var(--off); border-radius:12px; }
.modal-amenity { font-size:.8rem; color:var(--text); display:flex; align-items:center; gap:.3rem; font-weight:500; }
.modal-desc { font-size:.875rem; color:var(--muted); line-height:1.75; margin-bottom:1.25rem; }
.modal-price-row { display:flex; justify-content:space-between; align-items:center; padding:1rem; background:var(--off); border-radius:12px; margin-bottom:1.25rem; }
.modal-price-label { font-size:.78rem; color:var(--muted); font-weight:500; }
.modal-price-val { font-size:1.75rem; font-weight:800; color:var(--text); letter-spacing:-.04em; }
.modal-price-val small { font-size:.78rem; font-weight:400; color:var(--muted); }
.modal-fields { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin-bottom:1.25rem; }
.modal-field { display:flex; flex-direction:column; gap:.3rem; }
.modal-field label { font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.modal-field input,.modal-field select { border:1.5px solid var(--border); border-radius:10px; padding:.7rem 1rem; font-family:var(--ff); font-size:.875rem; color:var(--text); background:var(--white); outline:none; transition:border-color .2s; }
.modal-field input:focus,.modal-field select:focus { border-color:var(--text); }
.modal-wa-btn { width:100%; display:flex; align-items:center; justify-content:center; gap:.6rem; background:var(--wa); color:var(--white); padding:1rem; border-radius:14px; font-family:var(--ff); font-size:.9rem; font-weight:700; border:none; cursor:pointer; transition:background .2s, transform .15s; box-shadow:0 4px 18px rgba(37,211,102,.25); }
.modal-wa-btn:hover { background:#1da851; transform:translateY(-1px); }

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .hero-top{grid-template-columns:1fr}
  .hero-right{display:none}
  .sobre-grid{grid-template-columns:1fr}
  .sobre-imgs{display:none}
  .faq-grid{grid-template-columns:1fr}
  .nav-links{display:none}
  .nav-hamburger{display:flex}
}
@media(max-width:600px){
  section{padding:3.5rem var(--pad)}
  .search-field{min-width:100px}
  .sobre-feats{grid-template-columns:1fr}
  .modal-fields{grid-template-columns:1fr}
  .footer-inner{flex-direction:column;text-align:center}
  .hero-stats{gap:1.5rem}
}
