
:root{--hv-primary:#0d5cab;--hv-accent:#e8f1fb;--hv-text:#1f2937;--hv-muted:#6b7280;--hv-border:#d9e5f3}
.hv-portal{display:grid;gap:18px;color:var(--hv-text)}.hv-hero{display:flex;justify-content:space-between;gap:14px;align-items:center;background:#fff;border:1px solid var(--hv-border);border-radius:16px;padding:18px 20px;flex-wrap:wrap}
.hv-hero h2{margin:0 0 6px;font-size:28px;color:var(--hv-primary)}.hv-hero p{margin:0;color:var(--hv-muted)}
.hv-top-actions{display:flex;gap:10px;flex-wrap:wrap}.hv-btn{display:inline-flex;align-items:center;gap:8px;background:var(--hv-accent);color:var(--hv-primary);padding:10px 14px;border-radius:10px;text-decoration:none;border:1px solid var(--hv-border);cursor:pointer;font-weight:700}
.hv-btn-outline{background:#fff}.hv-box{background:#fff;border:1px solid var(--hv-border);border-radius:16px;padding:20px;box-shadow:0 8px 22px rgba(13,92,171,.06)}
.hv-alert{padding:14px 16px;border-radius:12px;font-weight:600}.hv-success{background:#eaf8ef;color:#1d6a37}.hv-error{background:#fff0f0;color:#9f1d1d}
.hv-grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.hv-full{grid-column:1/-1}
.hv-form label{display:block;font-weight:600}.hv-form input,.hv-form textarea,.hv-form select,.hv-inline-form input,.hv-inline-form select{width:100%;margin-top:6px;padding:12px 14px;border:1px solid #d9dfe8;border-radius:12px;background:#fff}
.hv-inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.hv-check{margin:12px 0;display:block}.hv-honeypot{position:absolute;left:-9999px}
.hv-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.hv-stat{background:#fff;border:1px solid var(--hv-border);border-radius:14px;padding:14px;display:flex;gap:12px;align-items:center}
.hv-stat-icon{width:40px;height:40px;border-radius:12px;background:#eef5fd;display:grid;place-items:center}.hv-stat-label{font-size:13px;color:var(--hv-muted)}.hv-stat-value{font-size:22px;font-weight:800;color:var(--hv-primary)}
.hv-section-head,.hv-owner-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.hv-filterbar{display:flex;gap:10px;flex-wrap:wrap}
.hv-chip{display:inline-flex;align-items:center;padding:9px 13px;border-radius:999px;background:#fff;border:1px solid var(--hv-border);text-decoration:none;color:#333;font-weight:600}.hv-chip.is-active{background:#eef5fd;color:var(--hv-primary)}
.hv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.hv-card{border:1px solid var(--hv-border);border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 8px 20px rgba(13,92,171,.06)}
.hv-photo{position:relative;aspect-ratio:4/3;background:#f2f2f2}.hv-photo img{width:100%;height:100%;object-fit:cover}.hv-placeholder{display:flex;height:100%;align-items:center;justify-content:center;color:#666}
.hv-badge{position:absolute;top:12px;right:12px;background:#d63b3b;color:#fff;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:700}.hv-card-body{padding:18px}.hv-card h3{margin:0 0 6px;font-size:21px}
.hv-meta{display:grid;gap:8px;margin:12px 0;color:#444}.hv-meta-item{display:flex;gap:10px;align-items:flex-start}.hv-icon{width:20px;text-align:center}.hv-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.hv-actions a{display:inline-flex;align-items:center;padding:10px 14px;border-radius:12px;background:#f3f8fe;text-decoration:none;color:var(--hv-primary);font-weight:700}.hv-owner-list{display:grid;gap:12px}.hv-owner-card{border:1px solid var(--hv-border);border-radius:14px;padding:16px;background:#f8fbff}.hv-muted{color:var(--hv-muted)}

.hv-btn,.hv-actions a,.hv-chip{text-decoration:none !important}
.hv-modal{position:fixed;inset:0;display:none;z-index:9999}
.hv-modal.is-open{display:block}
.hv-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55)}
.hv-modal-dialog{position:relative;max-width:900px;margin:4vh auto;background:#fff;border-radius:16px;max-height:92vh;overflow:auto;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.hv-modal-close{position:absolute;top:10px;right:12px;border:none;background:#eef5fd;color:#0d5cab;border-radius:999px;width:36px;height:36px;font-size:24px;cursor:pointer;line-height:1}
body.hv-modal-open{overflow:hidden}


/* Ajuste dos termos */
.hv-check{
  display:flex !important;
  align-items:flex-start;
  gap:10px;
  line-height:1.35;
  margin:12px 0;
}
.hv-check input[type="checkbox"]{
  width:auto !important;
  min-width:18px;
  height:18px;
  margin:2px 0 0 0 !important;
  flex:0 0 auto;
}
.hv-check span{
  display:block;
}
.hv-form small{
  display:block;
  margin-top:3px;
  color:var(--hv-muted);
  font-weight:400;
}


/* Carrossel de fotos */
.hv-card{position:relative}
.hv-carousel{
  overflow:hidden;
}
.hv-carousel-track,
.hv-carousel-slide{
  width:100%;
  height:100%;
}
.hv-carousel-slide{
  display:none;
}
.hv-carousel-slide.is-active{
  display:block;
}
.hv-carousel-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.hv-carousel-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:34px;
  height:34px;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  color:#0d5cab;
  font-size:26px;
  line-height:1;
  cursor:pointer;
  z-index:4;
  box-shadow:0 4px 12px rgba(0,0,0,.18);
}
.hv-carousel-btn:hover{
  background:#fff;
}
.hv-prev{left:10px}
.hv-next{right:10px}
.hv-carousel-dots{
  position:absolute;
  left:0;
  right:0;
  bottom:10px;
  display:flex;
  justify-content:center;
  gap:6px;
  z-index:4;
}
.hv-carousel-dot{
  width:8px;
  height:8px;
  padding:0;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,.65);
  cursor:pointer;
}
.hv-carousel-dot.is-active{
  width:20px;
  background:#fff;
}


/* Correção definitiva do alinhamento dos checkboxes dos termos */
.hv-form .hv-check{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  text-align:left !important;
  gap:10px !important;
  width:100%;
  margin:12px 0 !important;
  line-height:1.4;
}
.hv-form .hv-check input[type="checkbox"]{
  display:block !important;
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  height:18px !important;
  margin:2px 0 0 0 !important;
  padding:0 !important;
  flex:0 0 18px !important;
  align-self:flex-start !important;
  vertical-align:top !important;
}
.hv-form .hv-check,
.hv-form .hv-check *{
  text-align:left !important;
}


/* Correção estrutural dos termos: checkbox + texto na mesma linha */
.hv-form label.hv-check{
  display:grid !important;
  grid-template-columns:18px minmax(0, 1fr) !important;
  column-gap:10px !important;
  align-items:start !important;
  justify-content:start !important;
  justify-items:start !important;
  text-align:left !important;
  width:100% !important;
  margin:12px 0 !important;
  line-height:1.4 !important;
}

.hv-form label.hv-check input[type="checkbox"]{
  grid-column:1 !important;
  grid-row:1 !important;
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  height:18px !important;
  margin:2px 0 0 0 !important;
  padding:0 !important;
  justify-self:start !important;
  align-self:start !important;
  position:static !important;
}

.hv-form label.hv-check span{
  grid-column:2 !important;
  grid-row:1 !important;
  display:block !important;
  text-align:left !important;
  margin:0 !important;
  padding:0 !important;
  width:auto !important;
  max-width:100% !important;
  justify-self:start !important;
  align-self:start !important;
}


/* =========================================================
   RESET ISOLADO DO PLUGIN
   Reduz interferência do tema principal/Elementor nos campos.
   ========================================================= */

.hv-portal,
.hv-portal *,
.hv-portal *::before,
.hv-portal *::after{
  box-sizing:border-box !important;
}

.hv-portal{
  text-align:left !important;
}

.hv-portal form,
.hv-portal div,
.hv-portal section,
.hv-portal article,
.hv-portal label,
.hv-portal input,
.hv-portal textarea,
.hv-portal select,
.hv-portal button,
.hv-portal p,
.hv-portal h2,
.hv-portal h3,
.hv-portal h4{
  float:none !important;
  direction:ltr !important;
}

.hv-portal label{
  text-align:left !important;
}

/* Correção definitiva dos termos */
.hv-portal .hv-form .hv-check{
  display:grid !important;
  grid-template-columns:20px 1fr !important;
  align-items:start !important;
  justify-content:start !important;
  justify-items:start !important;
  column-gap:10px !important;
  width:100% !important;
  margin:14px 0 !important;
  padding:0 !important;
  text-align:left !important;
  line-height:1.4 !important;
}

.hv-portal .hv-form .hv-check input[type="checkbox"]{
  all:revert !important;
  appearance:auto !important;
  -webkit-appearance:checkbox !important;
  display:block !important;
  grid-column:1 !important;
  grid-row:1 !important;
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  margin:3px 0 0 0 !important;
  padding:0 !important;
  position:static !important;
  transform:none !important;
  justify-self:start !important;
  align-self:start !important;
}

.hv-portal .hv-form .hv-check label{
  all:unset !important;
  display:block !important;
  grid-column:2 !important;
  grid-row:1 !important;
  width:auto !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  color:var(--hv-text) !important;
  font-family:inherit !important;
  font-size:inherit !important;
  font-weight:600 !important;
  line-height:1.4 !important;
  text-align:left !important;
  cursor:pointer !important;
  justify-self:start !important;
  align-self:start !important;
  white-space:normal !important;
}


/* Destaque visual do status */
.hv-status-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border-radius:999px;
  font-weight:800;
  font-size:13px;
  letter-spacing:.2px;
  margin-top:6px;
  box-shadow:0 6px 16px rgba(0,0,0,.08);
}

.hv-status-pill.is-disponivel{
  background:#e9f8ef;
  color:#157347;
  border:1px solid #b7e4c7;
}

.hv-status-pill.is-reservado{
  background:#fff1f1;
  color:#b42318;
  border:1px solid #f5b5b5;
}

.hv-status-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  display:inline-block;
}

.hv-status-pill.is-disponivel .hv-status-dot{
  background:#22c55e;
  box-shadow:0 0 0 4px rgba(34,197,94,.15);
}

.hv-status-pill.is-reservado .hv-status-dot{
  background:#ef4444;
  box-shadow:0 0 0 4px rgba(239,68,68,.15);
}


/* Status grande e evidente nos cards */
.hv-status-banner{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  padding:11px 14px !important;
  margin:12px 0 !important;
  border-radius:12px !important;
  font-size:15px !important;
  font-weight:900 !important;
  letter-spacing:.5px !important;
  text-transform:uppercase !important;
  text-align:center !important;
  line-height:1.2 !important;
  box-shadow:0 8px 18px rgba(0,0,0,.10) !important;
}

.hv-status-banner.is-disponivel{
  background:#16a34a !important;
  color:#ffffff !important;
  border:2px solid #15803d !important;
}

.hv-status-banner.is-reservado{
  background:#dc2626 !important;
  color:#ffffff !important;
  border:2px solid #991b1b !important;
}

.hv-card.is-reserved{
  opacity:.88;
}

.hv-card.is-reserved .hv-photo img{
  filter:grayscale(.15) brightness(.85);
}


/* Faixa azul para hospedagem alugada/reservada */
.hv-card{
  position:relative;
}

.hv-card .hv-status-banner.is-reservado{
  position:absolute !important;
  top:16px !important;
  left:-42px !important;
  z-index:6 !important;
  width:220px !important;
  padding:10px 14px !important;
  margin:0 !important;
  transform:rotate(-35deg) !important;
  border-radius:0 !important;
  background:#0d5cab !important;
  border:2px solid #084b8a !important;
  color:#fff !important;
  box-shadow:0 10px 22px rgba(0,0,0,.22) !important;
  font-size:13px !important;
}

.hv-card .hv-status-banner.is-disponivel{
  position:static !important;
  transform:none !important;
}
