/* ==========================================================================
   POPUP STYLES — Liv Stay Residence
   Estética: Rose Gold (#E9D5C3) sobre fundo escuro (#1D1D1B)
   ========================================================================== */

/* ===== OVERLAY BACKDROP ===== */
.lspopup {
  display:none;
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  background:rgba(0,0,0,0.55);
  z-index:9998;
  align-items:center;
  justify-content:center;
  padding:16px;
  animation:lspopupFadeIn 0.35s ease;
}
.lspopup.active { display:flex; }

@keyframes lspopupFadeIn {
  from { opacity:0; }
  to   { opacity:1; }
}

/* ===== POPUP 1 & 2 — MODAL CENTRAL ===== */
.lspopup__box {
  position:relative;
  max-width:480px;
  width:100%;
  background:#1D1D1B;
  padding:48px 32px;
  border-radius:12px;
  text-align:center;
  animation:lspopupSlideUp 0.4s ease;
}
@keyframes lspopupSlideUp {
  from { opacity:0; transform:translateY(24px); }
  to   { opacity:1; transform:translateY(0); }
}

/* Close X */
.lspopup__close {
  position:absolute;
  top:14px; right:14px;
  width:32px; height:32px;
  font-size:22px;
  color:rgba(255,255,255,0.5);
  background:none; border:none;
  cursor:pointer;
  transition:color 0.3s;
  line-height:1;
}
.lspopup__close:hover { color:#fff; }

/* Icon */
.lspopup__icon {
  font-size:2.5rem;
  margin-bottom:20px;
  display:block;
}

/* Title */
.lspopup__title {
  font-family:'Montserrat',sans-serif;
  font-size:1.1rem;
  font-weight:600;
  color:#E9D5C3;
  margin-bottom:14px;
  line-height:1.5;
}

/* Text */
.lspopup__text {
  color:rgba(255,255,255,0.75);
  font-size:0.88rem;
  line-height:1.7;
  margin-bottom:14px;
}

/* Highlight */
.lspopup__highlight {
  color:#E9D5C3;
  font-weight:600;
  font-size:0.88rem;
  margin-bottom:24px;
  line-height:1.6;
}

/* CTA Button */
.lspopup__btn {
  display:block;
  width:100%;
  padding:15px 24px;
  background:#E9D5C3;
  color:#1D1D1B;
  font-family:'Montserrat',sans-serif;
  font-size:0.85rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1px;
  text-align:center;
  border:none;
  border-radius:8px;
  cursor:pointer;
  transition:all 0.3s ease;
  text-decoration:none;
}
.lspopup__btn:hover {
  background:#C9A98C;
  transform:translateY(-2px);
  box-shadow:0 4px 16px rgba(0,0,0,0.3);
}

/* ===== POPUP 2 — COM IMAGEM DE FUNDO ===== */
.lspopup__box--image {
  background-size:cover;
  background-position:center;
  overflow:hidden;
  max-width:600px;
  padding:0;
}
.lspopup__box--image .lspopup__overlay {
  /* opacity controlada via JS pelo config */
  background:rgba(29,29,27,0.45);
  padding:48px 32px;
}
.lspopup__box--image .lspopup__title {
  font-size:1.4rem;
  color:#fff;
}
.lspopup__box--image .lspopup__text {
  color:rgba(255,255,255,0.85);
  font-size:0.95rem;
}

/* ===== POPUP 3 — SLIDE LATERAL ===== */
.lspopup-side {
  display:none;
  position:fixed;
  bottom:28px; left:28px;
  z-index:9997;
  animation:lspopupSlideIn 0.4s ease;
}
.lspopup-side.active { display:block; }

@keyframes lspopupSlideIn {
  from { opacity:0; transform:translateX(-24px); }
  to   { opacity:1; transform:translateX(0); }
}

.lspopup-side__box {
  background:#fff;
  padding:24px;
  border-radius:12px;
  box-shadow:0 10px 40px rgba(0,0,0,0.2);
  max-width:340px;
  position:relative;
}
.lspopup-side__close {
  position:absolute;
  top:10px; right:10px;
  width:24px; height:24px;
  font-size:18px;
  color:#999;
  background:none; border:none;
  cursor:pointer;
}
.lspopup-side__close:hover { color:#333; }

.lspopup-side__header {
  display:flex;
  gap:14px;
  align-items:flex-start;
  margin-bottom:16px;
}
.lspopup-side__icon {
  width:44px; height:44px;
  background:#1D1D1B;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.2rem;
  flex-shrink:0;
}
.lspopup-side__message {
  color:#1D1D1B;
  font-size:0.88rem;
  font-weight:500;
  line-height:1.5;
}

.lspopup-side__btn {
  display:block;
  width:100%;
  padding:13px 16px;
  background:#E9D5C3;
  color:#1D1D1B;
  font-family:'Montserrat',sans-serif;
  font-size:0.82rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1px;
  text-align:center;
  border:none; border-radius:8px;
  cursor:pointer;
  margin-bottom:8px;
  transition:all 0.3s ease;
  text-decoration:none;
}
.lspopup-side__btn:hover { background:#C9A98C; }

.lspopup-side__dismiss {
  display:block;
  width:100%;
  color:#999;
  font-size:0.82rem;
  text-align:center;
  background:none; border:none;
  cursor:pointer;
  padding:8px;
}
.lspopup-side__dismiss:hover { color:#666; }

.lspopup-side__disclaimer {
  font-size:0.68rem;
  color:#aaa;
  line-height:1.5;
  margin-top:10px;
  text-align:center;
}

/* ===== BOTÃO FLUTUANTE (aparece após fechar popup 3) ===== */
.lspopup-float-btn {
  position:fixed;
  left:20px; bottom:20px;
  display:none;
  align-items:center;
  gap:10px;
  padding:14px 20px;
  background:#E9D5C3;
  color:#1D1D1B;
  border:none;
  border-radius:50px;
  font-family:'Montserrat',sans-serif;
  font-size:0.82rem;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 4px 20px rgba(0,0,0,0.25);
  z-index:998;
  transition:all 0.3s ease;
}
.lspopup-float-btn.active { display:flex; }
.lspopup-float-btn:hover {
  background:#C9A98C;
  transform:scale(1.05);
}

/* ===== RESPONSIVO ===== */
@media(max-width:768px) {
  .lspopup__box { padding:36px 20px; max-width:calc(100vw - 32px); }
  .lspopup__box--image .lspopup__overlay { padding:36px 20px; }
  .lspopup__title { font-size:1rem; }
  .lspopup__box--image .lspopup__title { font-size:1.2rem; }

  .lspopup-side { left:16px; bottom:16px; right:16px; }
  .lspopup-side__box { max-width:none; }

  .lspopup-float-btn span { display:none; }
  .lspopup-float-btn { padding:14px; border-radius:50%; }
}