@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;700;800&display=swap');

.card-title {
  margin: 0;
  padding: 0 0 4px 0;
  font-size: 1rem;
  line-height: 1.4;
  display: block;
  max-height: 3.5em;
  overflow: hidden;
  color: var(--card-text);
}
/* Wrapper do titulo com selo */
.card-title-flex {
  position: relative;
  display: block;
  width: 100%;
  min-height: 22px;
  padding: 0;
}
/* Selo de verificado posicionado à direita */
.card-title-flex > .verified-badge {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1px;
  cursor: pointer;
  position: absolute;
  right: 0;
  top: 42%;
  transform: translateY(-50%) scale(1.05);
  transform-origin: right center;
  margin: 0;
  line-height: 1;
  border: 0;
  box-shadow: none;
  text-decoration: none;
}
.card-title-flex .card-title {
  margin: 0;
  padding: 0;
  width: 100%;
  text-align: center;
}
.verified-badge svg {
  width: 10px;
  height: 10px;
  display: block;
  flex: 0 0 auto;
}
.verified-label {
  display: inline-block;
  font-size: 0.6rem !important;
  font-weight: 500;
  letter-spacing: 0;
  color: #4b6473;
  line-height: 1;
  text-decoration: none !important;
}

* { box-sizing: border-box; }
body {
  font-family: 'Segoe UI', Arial, sans-serif;
    background: linear-gradient(180deg, #071828 0%, #0b2540 100%);
  margin: 0;
  min-height: 100vh;
}
/* Color tokens for consistent card styling */
:root{
  --card-text: #052a3b; /* primary text for cards */
  --card-muted: #5b7382; /* secondary / muted text */
  --card-accent: #0b2540; /* accent used sparingly */
}
.container {
  max-width: 1200px;
  width: 100%;
  margin: 36px auto;
  /* background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(245,253,255,0.96)); */
  background: rgba(255,255,255,0.98);
  border-radius: 12px;
  box-shadow: 0 12px 46px rgba(2,20,40,0.28);
  padding: 36px 28px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.logo {
  width: 120px;
  height: 120px;
  object-fit: contain;
  margin-bottom: 18px;
  border-radius: 50%;
  box-shadow: 0 2px 12px rgba(0,123,255,0.10);
  background: #eaf4ff;
  border: 2.5px solid #b3d8ff;
}
/* Site header logo used on pages like anuncios.html */
.site-logo {
  display: block;
  width: 280px;    /* aumento padrão para desktop */
  max-width: none; /* remove limitação global aplicada por img {} */
  height: auto;
  margin: 6px auto 18px auto;
  object-fit: contain;
}
@media (max-width: 600px) {
  .site-logo { width: 180px; max-width: 70%; }
}

/* Small centered invisible hit area for the header logo (keeps visual size unchanged) */
.logo-wrapper { display: inline-block; position: relative; }
.logo-hit {
  /* invisible but reachable by keyboard */
  background: transparent; border: none; padding: 0; margin: 0;
  outline: none;
}
.logo-hit:focus,
.logo-hit:focus-visible,
.logo-hit:active {
  outline: none;
  box-shadow: none;
}

/* utility for keeping semantic headings available to screen readers but hidden visually */
.visually-hidden {
  position: absolute !important;
  height: 1px; width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap; /* added line */
}
h1 { color: #007bff; font-size: 1.7em; margin-bottom: 8px; letter-spacing: 1px; }
.hidden { display: none; }
.cadastro-form input[type="text"],
.cadastro-form input[type="email"],
.cadastro-form input[type="password"],
.cadastro-form input[type="tel"] {
  width: 100%;
  margin: 8px 0 0 0;
  padding: 15px 5px;
  border: 1.8px solid #b3d8ff;
  border-radius: 28px;
  font-size: 1.08em;
  outline: none;
  box-shadow: 0 2px 8px rgba(0,123,255,0.10);
  transition: border 0.18s, box-shadow 0.18s;
  background: #fafdff;
  color: #0056b3;
  font-weight: 500;
  box-sizing: border-box;
}
.cadastro-form input:invalid {
  border-color: #ff4d4f;
  box-shadow: 0 6px 24px rgba(255,77,79,0.06);
  background-color: rgba(255,77,79,0.02);
}
.cadastro-form input:invalid:focus {
  border-color: #ff4d4f;
  box-shadow: 0 8px 30px rgba(255,77,79,0.08);
}
.cadastro-form input:required:invalid {
  background: rgba(255,77,79,0.02);
}
.cadastro-form .erro-campo {
  display: none;
  font-size: 0.92em;
  color: #ff4d4f;
  background: rgba(255,77,79,0.04);
  border-left: 4px solid #ff4d4f;
  padding: 8px 10px;
  border-radius: 6px;
  margin: 6px 0 0 0;
  text-align: left;
  transition: all .18s ease;
}
.cadastro-form .erro-campo.show { display: block; }

.form-alert { display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:10px; background: rgba(255,77,79,0.04); border:1px solid rgba(255,77,79,0.08); color:#ff4d4f; font-weight:600; }
.form-alert svg { width:18px; height:18px; opacity:0.95 }
.form-alert .close-btn { margin-left:auto; background:transparent; border:none; color:inherit; font-weight:700; cursor:pointer; }
.cadastro-form input:focus {
  border: 2px solid #007bff;
  box-shadow: 0 4px 16px rgba(0,123,255,0.13);
}
.cadastro-form button {
  margin: 24px auto 0 auto;
  background: linear-gradient(90deg, #007bff 0%, #00c6ff 100%);
  color: #fff;
  border: none;
  border-radius: 32px;
  padding: 16px 44px;
  font-size: 1.18em;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(37,211,102,0.10);
  transition: background 0.2s, box-shadow 0.2s, transform 0.2s;
  text-decoration: none;
  display: inline-block;
  letter-spacing: 1px;
  animation: pulse 1.2s infinite alternate;
}
.cadastro-form button:hover {
  background: linear-gradient(90deg, #0056b3 0%, #00c6ff 100%);
  transform: scale(1.04);
  animation: none;
}
@keyframes pulse {
  0% { box-shadow: 0 6px 32px 0 rgba(4, 68, 89, 0.18), 0 1.5px 0 #4583cf inset; transform: scale(1); }
  100% { box-shadow: 0 12px 48px 0 rgba(37, 159, 211, 0.22), 0 2.5px 0 #087ad1 inset; transform: scale(1.06); }
}
.user-card {
  position: relative;
  border: 1px solid #ddd;
  padding: 0px 10px 10px 10px;
  border-radius: 12px;
  background: #fff;
  margin: 0;
  box-shadow: 10px 2px 28px rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-width: 0;
  max-width: 420px;
  width: 100%;
  min-height: 420px;
  box-sizing: border-box;
  transition: box-shadow 0.2s, border-color 0.2s;
  /* unify text color inside cards */
  color: var(--card-text);
}
.whatsapp-btn {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  background: #25d366;
  color: #fff;
  border: none;
  border-radius: 20px;
  padding: 8px 18px;
  font-size: 1em;
  font-weight: bold;
  margin-top: 8px;
  margin-bottom: 4px;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(37,211,102,0.10);
  transition: background 0.2s, box-shadow 0.2s, transform 0.2s;
}
.whatsapp-btn .whatsapp-label { font-weight: 700; }
.whatsapp-btn:hover {
  background: #128c7e;
  box-shadow: 0 4px 16px rgba(37,211,102,0.18);
  transform: translateY(-2px) scale(1.04);
}
.whatsapp-btn svg {
  width: 20px;
  height: 20px;
  fill: #fff;
}
.whatsapp-inline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #25d366;
  box-shadow: 0 2px 8px rgba(37,211,102,0.10);
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}
.whatsapp-inline:hover {
  background: #128c7e;
  box-shadow: 0 4px 16px rgba(37,211,102,0.18);
  transform: translateY(-2px) scale(1.05);
}
.whatsapp-inline svg {
  width: 20px;
  height: 20px;
  fill: #fff;
}
/* Card utility classes extracted from inline styles */
.card-body { padding: 8px 0 0 0; width: 100%; }
.card-title {
  margin: 0;
  padding: 0 0 6px 0;
  font-size: 1rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  overflow-wrap: anywhere;
  word-break: break-word;
  color: var(--card-text);
}
.card-valor { margin: 0 0 6px 0; font-size: 0.95rem; }
.card-valor { color: var(--card-text); font-weight:700 }

/* New card value layout: title + value list */
.card-valor { display:block; text-align:center; }
.card-valor-title {
  font-family: 'Manrope', 'Segoe UI', Arial, sans-serif;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #4b6473;
  margin-bottom: 7px;
}
.card-valor-head {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 7px;
}
.card-valor-head .card-valor-title {
  margin-bottom: 0;
}
.card-valor-head > .verified-badge {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  white-space: nowrap;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%) scale(1.05);
  transform-origin: right center;
  margin: 0;
  line-height: 1;
  border: 0;
  box-shadow: none;
  text-decoration: none;
}
.card-valor-list {
  font-family: 'Manrope', 'Segoe UI', Arial, sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.01em;
  font-variant-numeric: tabular-nums;
  background: linear-gradient(180deg, rgba(3,102,153,0.07), rgba(3,102,153,0.03));
  border: 1px solid rgba(3,102,153,0.14);
  display: inline-block;
  padding: 7px 11px;
  border-radius: 12px;
  color: var(--card-text);
}
.card-pack-first {
  font-family: 'Manrope', 'Segoe UI', Arial, sans-serif;
  font-weight: 700;
}
.card-media {
  position: relative;
  width: 100%;
  margin: 10px 0 8px;
  border-radius: 10px;
  overflow: hidden;
}
.card-photo-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  line-height: 1;
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(5, 42, 59, 0.15);
  box-shadow: 0 4px 12px rgba(2, 18, 33, 0.2);
}
.card-photo-badge .verified-label {
  font-size: 0.56rem !important;
  line-height: 1;
}
.card-controls { margin-top:4px; display:flex; flex-direction:column; gap:4px; align-items:center; justify-content:center; color:var(--card-muted); width:100%; }
.local-badge {
  display: inline-block;
  padding: 6px 10px;
  border-radius: 999px;
  margin-bottom: 8px;
  font-family: 'Manrope', 'Segoe UI', Arial, sans-serif;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.01em;
  line-height: 1;
  border: 1px solid transparent;
}
.local-com {
  background: #e7f9ef;
  color: #0e5a34;
  border-color: #b9e7cc;
}
.local-sem {
  background: #f3f6fa;
  color: #3f5563;
  border-color: #d5dee7;
}
.local-apartir {
  background: #fff6e8;
  color: #7a4513;
  border-color: #f1cf9f;
}
/* Packages shown on card (durations + prices) */
.card-packages {
  margin: 6px 0 4px 0;
  font-size: 0.88rem; /* slightly reduced to help fit */
  color: var(--card-text);
  font-weight: 700;
  background: rgba(3,102,153,0.04);
  padding: 6px 10px;
  border-radius: 8px;
  display: inline-block;
  white-space: nowrap;     /* keep everything on one line */
  overflow: hidden;        /* hide overflow when too long */
  text-overflow: ellipsis; /* show ... when truncated */
  max-width: 100%;
}

@media (max-width: 600px) {
  .card-packages { font-size: 0.78rem; padding: 4px 8px; }
}
/* position: relative; removido pois tooltip não será mais usado */
.user-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.18);
  border-color: #007bff;
}
.anuncios-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  margin-top: 24px;
  grid-auto-rows: 1fr;
  align-items: stretch;
  padding: 0 0 32px 0;
}
@media (max-width: 1100px) {
  .anuncios-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 800px) {
  .anuncios-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .anuncios-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
  }

  .user-card {
    padding: 0 5px 7px 5px;
    min-height: 296px;
    border-radius: 10px;
  }

  .card-body {
    display: flex;
    flex-direction: column;
    width: 100%;
    flex: 1;
    gap: 4px;
  }

  .card-title {
    font-size: 0.83rem;
    line-height: 1.2;
    min-height: 2.05em;
    padding-bottom: 1px;
  }

  .card-valor {
    margin-bottom: 2px;
    min-height: 48px;
  }

  .card-valor-head {
    justify-content: center;
    align-items: center;
    margin-bottom: 3px;
    padding: 0;
  }

  .card-valor-head .card-valor-title {
    margin: 0;
    text-align: center;
    width: 100%;
  }

  .card-valor-title {
    font-size: 0.66rem;
    margin-bottom: 0;
  }

  .card-valor-list {
    display: block;
    width: 100%;
    padding: 5px 7px;
    font-size: 0.76rem;
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-sizing: border-box;
  }

  .card-controls {
    margin-top: auto;
    gap: 2px;
  }

  .local-badge {
    width: 100%;
    margin-bottom: 4px;
    padding: 5px 6px;
    font-size: 0.64rem;
    text-align: center;
    box-sizing: border-box;
  }

  .whatsapp-btn {
    width: 100%;
    justify-content: center;
    min-height: 32px;
    padding: 6px 8px;
    margin-top: 0;
    margin-bottom: 0;
    font-size: 0.76rem;
    border-radius: 14px;
    box-sizing: border-box;
  }

  .whatsapp-btn svg {
    width: 16px;
    height: 16px;
  }

  .card-info-hint {
    margin-top: 4px;
    font-size: 0.69rem;
    line-height: 1.2;
  }

  .card-media {
    margin: 2px 0 3px;
    border-radius: 9px;
  }

  .card-photo-badge {
    top: 6px;
    right: 6px;
    padding: 3px 6px;
    gap: 2px;
  }

  .card-photo-badge .verified-label {
    display: none;
  }

  .card-photo-badge svg {
    width: 10px;
    height: 10px;
  }

  .anuncios-grid .user-card img {
    max-width: 100%;
    height: 146px;
    object-fit: cover;
    object-position: center 20%;
    background: transparent;
    margin: 0;
  }
}
.anuncios-grid .user-card img {
  width: 100%;
  max-width: none;
  height: 230px;
  object-fit: contain;
  object-position: center;
  background: #e9eef3;
  margin: 0;
  display: block;
}
@media (max-width: 600px) {
  .anuncios-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}
.status-pending { color: rgb(0, 0, 0); font-weight: bold; }
.status-approved { color: green; font-weight: bold; }
nav button { width: auto; margin: 5px; }
img { max-width: 120px; border-radius: 8px; margin: 5px; }
.home-city { cursor: pointer; color: #007bff; font-weight: bold; }
.home-city:hover { text-decoration: underline; }

/* Header action buttons on index.html - no site-wide rules here; index.html contains inline button styles */
.form-hint {
  display: block;
  font-size: 0.9em;
  color: #3a5f8f;
  margin-top: 6px;
  text-align: left;
}
.preview-card {
  margin-top: 20px;
  padding: 18px;
  border-radius: 12px;
  background: rgba(255,255,255,0.8);
  box-shadow: 0 8px 28px rgba(11,35,64,0.18);
  text-align: left;
}
.preview-card img {
  width: 160px;
  height: 160px;
  object-fit: cover;
  border-radius: 12px;
  margin-bottom: 12px;
}
.profile-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.7);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 3000;
  padding: 24px;
}
.profile-overlay.active { display: flex; }
.profile-modal {
  max-width: 920px;
  width: 100%;
  background: #f9fdff;
  border-radius: 14px;
  padding: 20px; /* reduced for compactness */
  position: relative;
  max-height: 88vh;
  overflow-y: auto;
  overflow-x: hidden;
  box-shadow: 0 18px 48px rgba(0,0,0,0.32);
  /* modal-scoped muted color to improve contrast inside the profile modal */
  --card-muted: #000000;
}
.profile-close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: none;
  border: none;
  font-size: 1.4em;
  color: var(--card-text);
  cursor: pointer;
}
.profile-header {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}
.profile-header h3 {
  margin: 0;
  font-size: 1.4rem; /* slightly smaller */
  color: var(--card-text);
}

/* Truncate very long profile names inside cards and modals to two lines with ellipsis */
#perfilNome {
  margin: 0;
  font-size: clamp(1.18rem, 2.8vw, 1.62rem);
  line-height: 1.24;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: calc(100% - 44px);
}

/* Pill-style info (Cidade / Valor) */
.info-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 7px; /* reduced */
  border-radius: 999px;
  background: rgba(3, 103, 153, 0.06);
  border: 1px solid rgba(3, 103, 153, 0.08);
  color: var(--card-text);
  font-weight: 700;
  justify-self: start;
  min-width: 0;
}
.info-pill .info-label { font-size: 0.82rem; color: var(--card-muted); font-weight:700; margin-right:4px; }
/* Carousel thumbnail remove button (small X) */
.carousel-thumb-wrap { position: relative; display: inline-block; }
.carousel-thumb-wrap img { border-radius: 6px; display: block; }
.carousel-thumb-remove {
  position: absolute;
  top: -8px;
  right: -8px;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.06);
  color: #333;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(3,10,18,0.08);
}
.carousel-thumb-remove:hover { transform: translateY(-2px); }

/* Remove capa button (in painel) smaller variant */
.btn.secondary#removeCapaBtn { background: #f1f5f9; color: var(--card-text); border: 1px solid rgba(11,35,64,0.04); font-weight:600 }
.info-pill .info-value { font-size: 0.95rem; color: var(--card-text); font-weight:800; }
.info-pill.price { background: linear-gradient(90deg, rgba(255,243,224,0.9), rgba(255,250,240,0.9)); border-color: rgba(250,180,60,0.12); }

@media (max-width: 600px) {
  .info-pill { padding: 5px 8px; font-size: 0.92rem; }
}
.profile-info {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px; /* tightened */
  margin-bottom: 8px;
}
.profile-info div {
  background: #ffffff;
  border: 1px solid rgba(3,102,153,0.04);
  border-radius: 6px;
  padding: 4px 6px;
  color: var(--card-text);
  min-width: 0;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 2px;
  box-shadow: none; /* remove shadow for compactness */
}
/* labels inside profile-info (strong) */
.profile-info strong { font-size: 0.85rem; color: var(--card-muted); font-weight:700; }
/* values */
#perfilCidade, #perfilValor, #perfilLocalStatus, #perfilGenero, #perfilIdade, #perfilAtende { font-size: 0.92rem; font-weight:700; color:var(--card-text); }
#perfilAtende.atende-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-start;
  font-size: inherit;
  font-weight: 600;
  line-height: 1.2;
}
#perfilAtende.atende-chips .atende-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 5px 11px;
  border-radius: 999px;
  border: 1px solid rgba(5, 42, 59, 0.14);
  background: linear-gradient(180deg, #f9fcff 0%, #eff7ff 100%);
  color: #08374d;
  font-size: 0.77rem;
  font-weight: 700;
  letter-spacing: 0.005em;
  box-shadow: 0 4px 12px rgba(3, 66, 100, 0.09);
}
#perfilAtende.atende-chips .atende-chip::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #0b5a8a;
  opacity: 0.5;
}
/* compact styling for horario field to avoid tall boxes */
#perfilHorario {
  font-size: 0.92rem;
  line-height: 1.18;
  white-space: pre-line; /* allow preserved line breaks from saved schedule */
  color: #07314a;
  background: rgba(255,255,255,0.6);
  padding: 4px 6px; /* reduced */
  border-radius: 8px;
  display: inline-block;
}

/* standalone horario container that appears before contacts */
.profile-horario {
  display: flex;
  align-items: center;
  gap: 8px; /* tightened */
  margin: 4px 0 8px 0;
  flex-wrap: wrap;
}
.profile-horario .horario-label {
  font-weight: 700;
  color: var(--card-text);
  margin-right: 6px;
}
.profile-horario .horario-content { display: inline-flex; gap:6px; align-items:center; }
.profile-horario .horario-content .horario-badge { margin: 0 6px 0 0; }
/* small badge for time ranges inside horario, if needed */
.horario-badge {
  display: inline-block;
  background: rgba(3,102,153,0.08);
  border: 1px solid rgba(3,102,153,0.12);
  color: #03445f;
  padding: 3px 6px; /* reduced */
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.85rem; /* slightly smaller */
  margin-right: 6px;
}
/* modern, simple chips for cidade/valor */
.profile-tags { display:inline-flex; gap:12px; align-items:flex-start; margin-bottom:8px; }
.tag-badge {
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:6px 10px; /* reduced */
  border-radius:8px;
  background: rgba(255,255,255,0.92);
  color: #032b3a;
  border: 1px solid rgba(3,102,153,0.06);
  box-shadow: 0 5px 14px rgba(3,102,153,0.03);
}
.tag-badge::before { content: attr(aria-label); font-size:0.75rem; color:#07506a; font-weight:600; }
.tag-badge { font-size:0.98rem; font-weight:800; }
.tag-badge.price { background: rgba(255,255,255,0.98); border-color: rgba(210,150,40,0.10); color:#5b4300; }

/* two-column layout for profile modal */
.profile-grid { display: grid; grid-template-columns: 1fr 260px; gap: 12px; align-items:start; }
.profile-left { min-width: 0; }
.profile-right { background: rgba(255,255,255,0.96); padding: 10px; border-radius: 10px; border: 1px solid rgba(3,102,153,0.04); box-shadow: 0 6px 18px rgba(3,102,153,0.03); min-width: 0; overflow: hidden; }
.horario-title { margin: 0 0 8px 0; font-size: 1rem; color: #052a3b; }
.gallery-title { margin-top:18px; color:var(--card-text); }

@media (max-width: 860px) {
  .profile-grid { grid-template-columns: 1fr; }
  .profile-right { order: 2; margin-top: 12px; }
}
.profile-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 16px;
}
.profile-gallery img {
  width: 100%;
  height: 140px; /* reduced thumbnail height */
  object-fit: cover;
  border-radius: 10px;
  box-shadow: 0 6px 14px rgba(0,0,0,0.14);
}

/* Layout for gallery + description area */
.profile-media {
  display: grid;
  grid-template-columns: 1fr 200px; /* gallery grows, description sidebar */
  gap: 14px;
  align-items: start;
  margin-top: 12px;
}
.media-gallery { min-width: 0; }
.media-desc { background: #fff; border: 1px solid rgba(3,102,153,0.04); border-radius: 8px; padding: 10px; min-width: 0; overflow: hidden; max-width: 100%; }
.profile-desc { margin: 0; color:var(--card-text); font-size:0.95rem; line-height:1.5; text-align:left; max-width: 100%; overflow-wrap: normal; word-break: break-word; white-space: pre-line; hyphens: none; }

@media (max-width: 860px) {
  .profile-media { grid-template-columns: 1fr; }
  .media-desc { order: 2; }
  .media-gallery { order: 1; }
}

/* When profile-media is inside the right column, make it a single column stacked layout */
.profile-right .profile-media {
  grid-template-columns: 1fr; /* stack */
  gap: 10px;
  margin-top: 12px;
}
.profile-right .profile-gallery {
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}
.profile-right .media-desc { padding: 8px; }
.profile-contact {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
}
/* when there's room, lay out contact items in a row so WhatsApp and Ligar sit side-by-side */
@media (min-width: 720px) {
  .profile-contact { flex-direction: row; align-items: center; gap: 12px; }
}
.profile-contact a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px; /* reduced */
  border-radius: 20px;
  background: linear-gradient(90deg, #25d366 0%, #128c7e 100%);
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  width: fit-content;
  box-shadow: 0 5px 16px rgba(18,140,126,0.20);
}
@media (max-width: 600px) {
  .profile-overlay {
    align-items: flex-end;
    padding: 8px;
    background: linear-gradient(180deg, rgba(6, 18, 34, 0.44) 0%, rgba(2, 12, 24, 0.78) 100%);
  }
  .profile-modal {
    padding: 18px 14px 22px;
    border-radius: 18px 18px 0 0;
    max-height: 92dvh;
    overscroll-behavior: contain;
    border: 1px solid rgba(3, 59, 95, 0.12);
    box-shadow: 0 -10px 28px rgba(2, 18, 33, 0.32);
  }
  .profile-close {
    top: 10px;
    right: 10px;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: rgba(2, 40, 63, 0.08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.9rem;
    line-height: 1;
  }
  #perfilNome {
    font-size: clamp(1.2rem, 6vw, 1.55rem);
    max-width: calc(100% - 54px);
    margin-bottom: 2px;
  }
  .profile-grid {
    gap: 12px;
  }
  .profile-info {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-bottom: 12px;
  }
  .profile-info div {
    border-radius: 12px;
    padding: 9px;
    min-height: 74px;
    justify-content: center;
    border-color: rgba(4, 93, 146, 0.09);
    background: linear-gradient(180deg, #ffffff 0%, #f6fbff 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.75);
  }
  .profile-info strong {
    font-size: 0.77rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #1f5f88;
  }
  #perfilCidade,
  #perfilValor,
  #perfilLocalStatus,
  #perfilGenero,
  #perfilIdade,
  #perfilAtende {
    font-size: 1.03rem;
    line-height: 1.2;
    color: #022f4a;
  }
  .profile-info .profile-info-atende,
  .profile-info .profile-info-valor,
  .profile-info .profile-info--values {
    grid-column: 1 / -1;
    min-height: 0;
  }
  .profile-info .profile-info-atende strong,
  .profile-info .profile-info-valor strong,
  .profile-info .profile-info--values strong {
    font-size: 0.78rem;
    margin-bottom: 2px;
  }
  .profile-info .profile-info-atende {
    background: linear-gradient(180deg, #ffffff 0%, #f5fbff 100%);
    border: 1px solid rgba(4, 93, 146, 0.12);
  }
  .profile-info .profile-info-atende #perfilAtende {
    display: block;
    line-height: 1.25;
    letter-spacing: 0.005em;
  }
  .profile-info .profile-info-atende #perfilAtende.atende-chips {
    display: flex;
    gap: 8px;
    line-height: 1.2;
  }
  .profile-info .profile-info-atende #perfilAtende.atende-chips .atende-chip {
    padding: 6px 12px;
    font-size: 0.8rem;
    box-shadow: 0 3px 10px rgba(3, 66, 100, 0.08);
  }
  .profile-info .profile-info-atende #perfilAtende br {
    display: none;
  }
  .profile-info .profile-info-valor,
  .profile-info .profile-info--values {
    background: linear-gradient(180deg, #fffefb 0%, #f7fbff 100%);
    border: 1px solid rgba(170, 115, 23, 0.18);
  }
  .profile-contact {
    margin-top: 6px;
    gap: 10px;
  }
  .profile-contact a,
  .profile-contact .profile-contact-row {
    width: 100%;
  }
  .profile-contact a,
  .profile-contact-row {
    justify-content: center;
  }
  .profile-contact a {
    min-height: 50px;
    border-radius: 14px;
    font-size: 1.03rem;
    letter-spacing: 0.01em;
    box-shadow: 0 10px 22px rgba(18,140,126,0.26);
  }
  .profile-contact-row {
    flex-wrap: nowrap;
    row-gap: 0;
    column-gap: 10px;
    align-items: center;
  }
  .profile-contact-row .profile-contact-number {
    width: auto;
    text-align: left;
    margin-right: 0;
    white-space: nowrap;
  }
  .profile-contact-row .contact-call-btn {
    margin-left: 0;
    min-height: 42px;
    white-space: nowrap;
  }
  .profile-right {
    padding: 10px;
    border-radius: 12px;
    border-color: rgba(4, 93, 146, 0.11);
    background: linear-gradient(180deg, rgba(255,255,255,0.99) 0%, rgba(247,251,255,0.99) 100%);
  }
  .horario-title,
  .gallery-title,
  .desc-title {
    font-size: 0.98rem;
    color: #044261;
    letter-spacing: 0.01em;
  }
  .profile-horario {
    margin: 2px 0 12px;
    display: grid;
    grid-template-columns: 1fr;
    justify-items: start;
    align-items: start;
    gap: 6px;
  }
  .profile-horario .horario-badge {
    display: block;
    white-space: nowrap;
  }
  .profile-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .profile-gallery img {
    height: 132px;
  }
  .profile-modal .price-list__data {
    width: 100%;
    white-space: normal;
    gap: 8px;
  }
  .profile-modal .price-list__label,
  .profile-modal .price-list__value {
    width: 100%;
  }
  .profile-modal .price-list__label {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    gap: 1px;
    background: #f7fbff;
    border: 1px solid rgba(4, 93, 146, 0.12);
    border-radius: 10px;
    padding: 6px 8px;
  }
  .profile-modal .price-list__label span:last-child {
    color: #8a520b;
  }
  .profile-modal .price-list__value {
    justify-content: center;
    font-size: 0.94rem;
  }
  .profile-modal .price-first {
    display: inline-flex;
    justify-content: center;
    width: 100%;
    padding: 10px 12px;
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(242,250,255,0.95) 0%, rgba(232,245,255,0.98) 100%);
    border: 1px solid rgba(4,93,146,0.22);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.82);
  }
  .profile-modal .price-list-menu {
    width: 100%;
    justify-content: center;
  }
  .profile-modal .price-list-menu .menu-panel {
    width: min(100%, 280px);
    left: 50%;
    transform: translateX(-50%);
  }
}

/* Lightbox styles */
.lightbox-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.85);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 10000;
}
.lightbox-overlay.active { display: flex; }
.lightbox-stage { max-width: 94vw; max-height: 88vh; display:flex; align-items:center; justify-content:center; }
.lightbox-stage img { max-width: 100%; max-height: 88vh; border-radius: 8px; box-shadow: 0 12px 48px rgba(0,0,0,0.6); }
.lightbox-close, .lightbox-prev, .lightbox-next { position: absolute; background: transparent; border: none; color: #fff; font-size: 36px; cursor: pointer; padding: 8px 12px; }
.lightbox-close { top: 18px; right: 22px; font-size: 34px; }
.lightbox-prev { left: 12px; top: 50%; transform: translateY(-50%); font-size: 46px; }
.lightbox-next { right: 12px; top: 50%; transform: translateY(-50%); font-size: 46px; }
.lightbox-counter { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: #fff; font-weight: 700; background: rgba(0,0,0,0.35); padding: 6px 10px; border-radius: 999px; }

/* small primary button used in profile contact for "Ligação" */
.contact-call-btn { background:#007bff;color:#fff;border:none;padding:6px 10px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-weight:700; }
.contact-call-btn svg { width:18px;height:18px; }

/* thumbnails in painel preview: remove button */
.carousel-thumb-wrap { position: relative; display:inline-block; }
.carousel-thumb-wrap img { border-radius:6px; }
.carousel-thumb-remove { position: absolute; top:4px; right:4px; background: rgba(0,0,0,0.6); color:#fff; border:none; width:22px; height:22px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; font-size:12px; }
.carousel-thumb-remove:hover { background: rgba(0,0,0,0.85); }

/* profile-contact-row layout: space between number and button */
.profile-contact-row { display: inline-flex; align-items: center; gap: 10px; }
.profile-contact-row .profile-contact-number { margin-right: 6px; }
.profile-contact-row .contact-call-btn { margin-left: 6px; }

/* Back to top button (city listings) */
.site-back-to-top{
  position: fixed;
  right: 18px;
  bottom: 18px;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  display: none;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(0,123,255,0.95), rgba(0,198,255,0.95));
  color: #fff;
  box-shadow: 0 10px 30px rgba(3,60,120,0.28), 0 1px 0 rgba(255,255,255,0.06) inset;
  z-index: 2500;
  border: none;
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
  opacity: 0; transform: translateY(10px) scale(0.98);
}
.site-back-to-top.show { display: flex; opacity: 1; transform: translateY(0) scale(1); }
.site-back-to-top:active { transform: translateY(2px) scale(0.98); }
.site-back-to-top svg { width:20px; height:20px; fill: #fff; }
.site-back-to-top .label { display:none; }

@media (max-width: 520px){
  .site-back-to-top{ right: 12px; bottom: 12px; width:48px; height:48px; }
}

/* Primary button used across pages (modern look) */
.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(90deg, #007bff 0%, #00c6ff 100%);
  color: #fff;
  padding: 10px 14px;
  border-radius: 10px;
  border: none;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(3,60,120,0.12);
  transition: transform 140ms ease, box-shadow 140ms ease, opacity 140ms ease;
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(3,60,120,0.16); }
.btn-primary:focus { outline: 3px solid rgba(0,123,255,0.22); outline-offset: 2px; }
.btn-icon { display:inline-flex; align-items:center; gap:8px; }
.btn-icon svg { width:18px; height:18px; fill: #fff; }

/* Back button on anuncios page: use the same palette as site background */
.anuncios-back-btn {
  background: linear-gradient(180deg, #071828 0%, #0b2540 100%);
  border: 1px solid rgba(255,255,255,0.18);
  box-shadow: 0 8px 20px rgba(2,20,40,0.28);
}
.anuncios-back-btn:hover {
  background: linear-gradient(180deg, #0b2540 0%, #123a54 100%);
  box-shadow: 0 12px 30px rgba(2,20,40,0.34);
}
.anuncios-back-btn:focus {
  outline-color: rgba(11,37,64,0.35);
}

/* Hover-expand removed for descriptions so full text displays by default */

/* Profile name (modal): remove clamping on hover so full name is readable */
#perfilNome {
  transition: max-height 0.22s ease;
}

/* Price-list compact block and dropdown menu */
.price-list__data { display:flex; align-items:center; gap:12px; margin-top:8px; white-space:nowrap; }
.price-list__label {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  font-family: 'Manrope', 'Segoe UI', Arial, sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--card-muted);
  letter-spacing: 0.01em;
}
.price-list__label span:last-child {
  font-weight: 700;
  color: #7a4513;
  font-size: 0.78rem;
  letter-spacing: 0.01em;
}
.price-list__value {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Manrope', 'Segoe UI', Arial, sans-serif;
  font-weight: 700;
  color: var(--card-text);
  font-size: 0.8rem;
}
.price-first {
  background: rgba(3,102,153,0.06);
  padding: 5px 9px;
  border-radius: 9px;
  border: 1px solid rgba(3, 102, 153, 0.16);
}
.price-first .price-main { font-weight: 800; }
.price-first .price-sep { opacity: 0.75; }
.price-first .price-dur { font-weight: 700; }
.price-more-btn { background: transparent; border: none; color:var(--card-muted); font-weight:700; cursor:pointer; }
.icon-arrow-down:not(svg) { display:inline-block; width:0; height:0; border-left:6px solid transparent; border-right:6px solid transparent; border-top:8px solid var(--card-muted); transform:translateY(1px); }
/* Inline SVG chevron styling (separate from border-triangle fallback) */
svg.icon-arrow-down { width: 12px; height: 8px; display: inline-block; vertical-align: middle; color: var(--card-muted); }
svg.icon-arrow-down path { stroke: currentColor; }
.price-list-menu { position: relative; display: inline-flex; align-items:center; }
.price-list-menu .menu-panel { position: absolute; left: 50%; transform: translateX(-50%); top: calc(100% + 8px); min-width: 180px; background: #fff; border-radius: 8px; box-shadow: 0 10px 30px rgba(3,10,18,0.12); border: 1px solid rgba(3,10,18,0.06); padding: 8px; z-index: 12000; transform-origin: top center; }
.price-list-menu .menu-panel div { padding: 6px 8px; font-weight:700; color:var(--card-text); }
.price-list-menu .menu-panel div + div { border-top: 1px dashed rgba(3,10,18,0.04); }
.price-list-menu .menu-panel.hidden { display: none; }

.profile-info #perfilPackages {
  margin-top: 6px;
}

.profile-info #perfilPackages .price-list__data {
  display: grid;
  gap: 6px;
}

.profile-info #perfilPackages .price-list__label {
  justify-content: flex-start;
}

.profile-info #perfilPackages .price-list__label span {
  font-size: 0.9rem;
  font-weight: 800;
  color: #8a520b;
}

.profile-info #perfilPackages .price-list__value {
  justify-content: flex-start;
}

.profile-info #perfilPackages .price-first {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  line-height: 1.15;
}

@media (max-width: 600px) {
  .price-list__data { white-space:normal; flex-direction:column; align-items:flex-start; gap:6px; }
  .price-list__value { font-size:0.78rem; }
  .price-list__label { font-size:0.72rem; }
  .price-list__label span:last-child { font-size:0.72rem; }
  .local-badge { font-size: 0.66rem; padding: 5px 8px; }

  .profile-info #perfilPackages .price-list__label {
    width: 100%;
    justify-content: center;
    text-align: center;
    padding: 8px 10px;
  }

  .profile-info #perfilPackages .price-list__label span {
    font-size: 1.02rem;
    letter-spacing: 0.01em;
  }

  .profile-info #perfilPackages .price-list__value {
    width: 100%;
    justify-content: center;
  }

  .profile-info #perfilPackages .price-first {
    width: 100%;
    justify-content: center;
    text-align: center;
    padding: 8px 10px;
    border-radius: 10px;
    font-size: 1.04rem;
  }

  .profile-info #perfilPackages .price-first .price-main,
  .profile-info #perfilPackages .price-first .price-dur {
    white-space: nowrap;
  }

  .profile-info #perfilPackages .price-list-menu .menu-panel {
    min-width: 0;
    width: calc(100vw - 72px);
    max-width: 290px;
  }
}


.card-info-hint { display: block; font-size: 0.8em; color: #999; text-align: center; margin-top: 8px; font-style: italic; }

/* Modern Online Badge with Pulse Animation */
@keyframes pulse-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}

.city-destaques-badge.online,
.destaques-beta.online {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
  border-radius: 20px;
  letter-spacing: 0.02em;
  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
  animation: pulse-dot 2s ease-in-out infinite;
}



