.elementor-488 .elementor-element.elementor-element-0ff9792{--display:flex;--min-height:291px;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-488 .elementor-element.elementor-element-56ebe44{--spacer-size:40px;}/* Start custom CSS for shortcode, class: .elementor-element-7bb4348 */```css
/* ==============================
   BASE
================================ */
.res-page{
  font-family: "Heebo", sans-serif;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 10px 60px;
}

/* ==============================
   TÍTULO
================================ */
.res-head{
  width: 100%;
  margin-bottom: 26px;
}

.res-title-page{
  font-size: 35px;
  font-weight: 700;
  line-height: 1.2;
  margin: 0;

  background: linear-gradient(90deg, #23B2D0 0%, #2354A3 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ==============================
   GRID
================================ */
.resid-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 26px;
}

/* ==============================
   CARD
================================ */
.resid-card{
  display: block;
  text-decoration: none;
  color: #09162A;
  background: #fff;
  border: 1px solid #2354A3;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(0,0,0,.10);
  transition: transform .18s ease, box-shadow .18s ease;
}

.resid-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(0,0,0,.16);
}

/* Imagem */
.resid-img{
  height: 170px;
  background-size: cover;
  background-position: center;
}

/* Corpo */
.resid-body{
  padding: 16px 16px 14px;
}

/* Título */
.resid-title{
  font-size: 22px;
  font-weight: 500;
  margin-bottom: 6px;
}

/* Cidade */
.resid-city{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 300;
  margin-bottom: 8px;
}

.resid-pin{
  width: 16px;
  height: 16px;
}

/* Rating */
.resid-rating{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.resid-rating .star-rating{
  font-size: 14px;
}

.resid-reviews{
  font-size: 12px;
  opacity: .75;
}

/* Bottom */
.resid-bottom{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

/* Preço */
.resid-price{
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.resid-price-strong bdi{
  font-size: 20px;
  font-weight: 800;
}

.resid-price-suf{
  font-size: 12px;
  opacity: .8;
}

/* Botão */
.resid-btn{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 6px;
  font-size: 12px;
  color: #fff;
  background: linear-gradient(90deg, #23B2D0 0%, #2354A3 100%);
  white-space: nowrap;
}

.resid-btn-icon{
  width: 14px;
  filter: brightness(0) invert(1);
}

/* ==============================
   EMPTY
================================ */
.res-empty{
  font-size: 14px;
  padding: 20px 0;
}

/* ==============================
   RESPONSIVO
================================ */
@media (max-width: 1024px){
  .resid-grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px){
  .resid-grid{
    grid-template-columns: 1fr;
  }

  .resid-img{
    height: 190px;
  }
}

/* ======================================================
   ADIÇÕES — CONVIDADOS (SEM MEXER NOS CARDS)
   - Se usuário estiver LOGADO: mostra aviso e botão Home
   - Se usuário estiver DESLOGADO: cards bloqueados + modal
====================================================== */

:root{
  --aloha-navy:#09162A;
  --aloha-blue:#2354A3;
  --aloha-cyan:#23B2D0;
  --aloha-shadow: 0 18px 40px rgba(0,0,0,.16);
  --aloha-shadow-soft: 0 10px 26px rgba(0,0,0,.10);
  --aloha-radius: 16px;
}

/* ==============================
   CARD BLOQUEADO (CONVIDADOS)
   Use no HTML: class="resid-card is-guest"
================================ */
.resid-card.is-guest{
  position: relative;
  cursor: default;
}

.resid-card.is-guest:hover{
  transform: none;
  box-shadow: 0 10px 26px rgba(0,0,0,.10);
}

/* overlay sutil */
.resid-card.is-guest::after{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(255,255,255,.38);
  pointer-events: none;
}

/* cadeado no botão */
.resid-card.is-guest .resid-btn{
  position: relative;
  z-index: 2;
}
.resid-card.is-guest .resid-btn::before{
  content:"🔒";
  margin-right: 6px;
  font-size: 13px;
  line-height: 1;
}

/* ==============================
   BLOCO QUANDO LOGADO (SEM CARDS)
================================ */
.guest-logged{
  border: 1px solid var(--aloha-blue);
  border-radius: var(--aloha-radius);
  background: #fff;
  box-shadow: var(--aloha-shadow-soft);
  padding: 18px;
  color: var(--aloha-navy);
}

.guest-logged-title{
  margin: 0 0 6px 0;
  font-size: 18px;
  font-weight: 700;
  background: linear-gradient(90deg, var(--aloha-cyan) 0%, var(--aloha-blue) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.guest-logged-text{
  margin: 0 0 14px 0;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.45;
  color: var(--aloha-navy);
}

.guest-logged-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  padding: 0 16px;
  border-radius: 12px;
  border: 0;
  cursor: pointer;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  background: linear-gradient(90deg, var(--aloha-cyan) 0%, var(--aloha-blue) 100%);
  box-shadow: 0 10px 22px rgba(35,84,163,.22);
  text-decoration: none;
}

/* ==============================
   MODAL CONVIDADOS (SEM X / SEM HEADER)
   - fecha clicando fora / ESC (via JS)
================================ */
.guest-modal{
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none;
  font-family: "Heebo", sans-serif;
}
.guest-modal.open{ display: block; }

.guest-modal-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(9,22,42,.62);
  backdrop-filter: blur(10px);
}

.guest-modal-box{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(520px, calc(100% - 26px));
  background: #fff;
  border: 1px solid var(--aloha-blue);
  border-radius: var(--aloha-radius);
  box-shadow: var(--aloha-shadow);
  overflow: hidden;
  animation: guestModalIn .20s ease both;
}

@keyframes guestModalIn{
  from{ opacity: 0; transform: translate(-50%,-48%) scale(.985); }
  to{ opacity: 1; transform: translate(-50%,-50%) scale(1); }
}

/* faixa linear fina no topo */
.guest-modal-accent{
  height: 5px;
  width: 100%;
  background: linear-gradient(90deg, var(--aloha-cyan) 0%, var(--aloha-blue) 100%);
}

/* conteúdo interno */
.guest-modal-inner{
  padding: 18px 18px 16px;
}

.guest-modal-title{
  margin: 0 0 6px 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  background: linear-gradient(90deg, var(--aloha-cyan) 0%, var(--aloha-blue) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.guest-modal-text{
  margin: 0 0 14px 0;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.45;
  color: var(--aloha-navy);
  opacity: .95;
}

.guest-modal-divider{
  height: 1px;
  background: rgba(9,22,42,.10);
  margin: 0 0 14px 0;
}

/* form com espaçamento */
.guest-modal-form{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.guest-modal-input{
  height: 48px;
  border: 1px solid rgba(9,22,42,.18);
  border-radius: 12px;
  padding: 0 14px;
  font-size: 15px;
  font-family: "Heebo", sans-serif;
  color: var(--aloha-navy);
  outline: none;
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.guest-modal-input::placeholder{
  color: rgba(9,22,42,.45);
  font-weight: 300;
}

.guest-modal-input:focus{
  border-color: rgba(35,84,163,.75);
  box-shadow: 0 0 0 4px rgba(35,84,163,.12);
}

.guest-modal-submit{
  height: 48px;
  border: 0;
  border-radius: 12px;
  cursor: pointer;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .2px;
  background: linear-gradient(90deg, var(--aloha-cyan) 0%, var(--aloha-blue) 100%);
  box-shadow: 0 10px 22px rgba(35,84,163,.22);
  transition: transform .12s ease, box-shadow .12s ease, opacity .12s ease;
}

.guest-modal-submit:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(35,84,163,.28);
}

.guest-modal-submit:disabled{
  opacity: .7;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.guest-modal-msg{
  margin-top: 10px;
  font-size: 13px;
  min-height: 18px;
  color: var(--aloha-navy);
}
.guest-modal-msg.error{ color: #B42318; font-weight: 500; }
.guest-modal-msg.ok{ color: #0E7A2D; font-weight: 600; }

/* mobile */
@media (max-width: 480px){
  .guest-modal-inner{ padding: 16px; }
  .guest-modal-title{ font-size: 18px; }
}
```/* End custom CSS */