* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'SF Pro Text', sans-serif;
  background: none;
  position: relative;
  min-height: 100vh;
  margin: 0;
  padding: 16px;
}

body::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background: linear-gradient(120deg, #fff1e0, #f0f4ff);
  background-image: 
    radial-gradient(circle at top left, rgba(255, 174, 0, 0.25) 0%, transparent 50%),
    radial-gradient(circle at bottom right, rgba(0, 255, 102, 0.25) 0%, transparent 50%),
    repeating-linear-gradient(45deg, #ffffff 0px, #49494900 2px, #e4e4e486 2px, #ffffff 4px);
  pointer-events: none;
}

.container {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  gap: 15px; /* Espaço entre o botão e o card */
}


.card {
  position: relative;
  width: 100%;
  max-width: 310px; /* Boa largura para mobile */
  min-height: 480px !important;
  height: auto !important;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border-radius: 16px; /* Levemente menor */
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); /* Sombra mais suave */
  border: 1px solid rgba(0, 0, 0, 0.1); /* Borda mais suave */
  transition: transform 0.4s ease, opacity 0.4s ease;
  z-index: 2;
  margin: 0 auto; /* Centraliza o card */
  padding-bottom: 10px; /* Espaço interno na base */
}

.progress-bar {
  display: flex;
  position: absolute;
  top: 8px;
  left: 8px;
  right: 8px;
  height: 4px;
  gap: 4px;
  z-index: 10;
}

.progress-bar span {
  flex: 1;
  background-color: rgba(0, 0, 0, 0.3);
  border-radius: 2px;
  transition: background-color 0.3s ease;
}

.progress-bar span.active {
  background-color: #ffffff;
}

.carousel {
  width: 100%;
  height: 180px; /* Altura reduzida */
  overflow: hidden;
  position: relative;
}

.carousel-track {
  display: flex;
  height: 100%;
  transition: transform 0.4s ease;
}

.carousel-track img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  flex-shrink: 0;
}

.info {
  flex: 1;
  overflow-y: auto;
  padding: 12px 16px; /* Padding reduzido */
  margin-bottom: 0;
}

.info h2 {
  font-size: 20px;
  font-weight: 700;
  color: #292929;
  margin-bottom: 4px;
}

.info span {
  font-size: 15px;
  color: #2c2c2c;
  display: block;
  margin-bottom: 12px;
}

.tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1-px;
  margin: 20px 0 0; /* 12px top, 0 sides/bottom */
}

.tag {
  padding: 3px 8px;
  border-radius: 16px;
  font-size: 10px;
  font-weight: 500;
  color: #ffffff;
  background-color: rgba(34, 34, 34, 0.24);
  border: 1px solid #5a5a5a;
  white-space: nowrap;
  line-height: 1.3;
}

.buttons {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 16px 16px;
  gap: 8px; /* Espaço entre os botões */
  margin-top: 70px;
}

/* Botões centrais reduzidos */
.buttons .localizacao, 
.buttons .compartilhar {
  width: 40px !important;       /* Tamanho reduzido */
  height: 40px !important;      /* Tamanho reduzido */
  border-width: 1.5px !important; /* Borda mais fina */
}



/* Ícones menores dentro dos botões centrais */
.buttons .localizacao img,
.buttons .compartilhar img {
  width: 19px !important;       /* Ícone menor */
  height: 19px !important;      /* Ícone menor */
}

/* Efeito hover sutil */
.buttons .localizacao:hover, 
.buttons .compartilhar:hover {
  transform: scale(1.05);       /* Animação mais discreta */
}


.buttons button {
  
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.2s ease;
  margin-top: -80px; /* Empurra para baixo */
  border: none;
  outline: none;
}

.buttons button:hover {
  transform: scale(1.1);
}

.buttons img {
  width: 28px;
  height: 28px;
}

.dislike {
  border: 2px solid #ff3c3c;
  box-shadow: 0 0 12px rgba(255, 60, 60, 0.6);
  animation: neonPulse 1.8s infinite alternate;
}

.dislike img {
  filter: drop-shadow(0 0 4px #ff3c3c);
  animation: innerNeon 1.5s infinite alternate;
}

.like {
  border: 2px solid #00c851;
  box-shadow: 0 0 12px rgba(11, 150, 41, 0.6);
  animation: heartBeat 1.5s infinite ease-in-out;
}

.like img {
  filter: invert(64%) sepia(77%) saturate(626%) hue-rotate(85deg) brightness(101%) contrast(101%);
}

.localizacao {
  border: 1.5px solid #1e88e5;
  border: 2px solid #006ec8;
  box-shadow: 0 0 12px rgba(11, 55, 150, 0.6);
}

.localizacao img {
  width: 10px;
  height: 10px;
  filter: invert(34%) sepia(93%) saturate(1467%) hue-rotate(189deg) brightness(93%) contrast(101%);
}

.compartilhar {
  border: 2px solid #5f5f5f;
  animation: pulseCompartilhar 2s infinite alternate;
}

.compartilhar img {
  width: 10px;
  height: 10px;
  filter: drop-shadow(0 0 3px #a8a8a8);
}

.menu-localizacao {
  position: absolute;
  bottom: 120px;
  left: 50%;
  transform: translateX(-50%);
  width: 220px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  display: none;
  flex-direction: column;
  overflow: hidden;
  z-index: 10;
}

.menu-localizacao.ativo {
  display: flex;
}

.menu-localizacao-header {
  background-color: #f5f5f5;
  padding: 10px 16px;
  font-weight: 600;
  font-size: 14px;
  border-bottom: 1px solid #e0e0e0;
}

.menu-localizacao ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.menu-localizacao li {
  padding: 12px 16px;
  cursor: pointer;
  font-size: 14px;
  transition: background-color 0.2s ease;
}

.menu-localizacao li:hover {
  background-color: #f0f0f0;
}

.botao-voltar-inicio {
  display: block;
  text-align: center;
  padding: 10px 18px;
  background-color: #333;
  color: white;
  font-weight: 600;
  border-radius: 8px;
  text-decoration: none;
  font-size: 14px;
  width: fit-content;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  transition: background 0.3s ease;
}

.botao-voltar-inicio:hover {
  background-color: #000;
}

.fim-container {
  max-width: 420px;
  width: 100%;
  padding: 30px 20px;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 20px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
  text-align: center;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.fim-container h2 {
  font-size: 20px;
  font-weight: bold;
  color: #333;
  margin-bottom: 12px;
}

.fim-container p {
  font-size: 16px;
  color: #555;
  margin-bottom: 20px;
}

.btn-voltar {
  background-color: #00c851;
  color: white;
  padding: 12px 24px;
  border-radius: 10px;
  text-decoration: none;
  font-weight: bold;
  font-size: 14px;
  transition: background 0.3s ease;
}

.btn-voltar:hover {
  background-color: #00b44c;
}

@keyframes neonPulse {
  0% {
    box-shadow: 0 0 6px rgba(255, 60, 60, 0.4);
  }
  100% {
    box-shadow: 0 0 12px rgba(255, 60, 60, 0.8);
  }
}

@keyframes innerNeon {
  0% {
    filter: drop-shadow(0 0 2px #ff3c3c);
  }
  100% {
    filter: drop-shadow(0 0 8px #ff3c3c);
  }
}

@keyframes heartBeat {
  0%, 100% {
    transform: scale(1);
  }
  14% {
    transform: scale(1.04);
  }
  28% {
    transform: scale(1);
  }
  42% {
    transform: scale(1.04);
  }
  70% {
    transform: scale(1);
  }
}

@keyframes pulseCompartilhar {
  0% {
    box-shadow: 0 0 6px rgba(158, 158, 158, 0.4);
  }
  100% {
    box-shadow: 0 0 12px rgba(158, 158, 158, 0.8);
  }
}

@media (max-width: 480px) {
  .card {
    max-width: 100%;
    height: 520px;
    transform: none;
    margin-top: 0;
  }
  
  .carousel {
  height: 200px;
  margin-bottom: 8px; /* Espaço entre imagem e conteúdo */
  box-shadow: inset 0 0 10px rgba(0,0,0,0.1); /* Efeito de borda sutil */  }
  
  .buttons button {
    width: 48px;
    height: 48px;
  }
  
  .buttons img {
    width: 24px;
    height: 24px;
  }
}

@media (max-width: 375px) { /* Para iPhones menores */
  .card {
    min-height: 440px; /* Altura um pouco menor */
    max-width: 290px; /* Largura reduzida */
  }
  
  .carousel {
    height: 200px; /* Carrossel mais baixo */
  }
  
  .info h2 {
    font-size: 18px; /* Título menor */
  }
  
  .buttons button {
    width: 46px;
    height: 46px; /* Botões menores */
  }
}