.spin {
  -webkit-animation: spin 4s linear infinite;
  -moz-animation: spin 4s linear infinite;
  animation: spin 4s linear infinite;
}

@-moz-keyframes spin {
  100% {
    -moz-transform: rotate(360deg);
  }
}
@-webkit-keyframes spin {
  100% {
    -webkit-transform: rotate(360deg);
  }
}
@keyframes spin {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
.flex {
  display: flex;
}
.flex-between {
  justify-content: space-between;
}
.flex-align-center {
  align-items: center;
}

.spacer {
  position: relative;
}
.spacer--100 {
  height: 100px;
}
.spacer--150 {
  height: 100px;
}
.spacer--200 {
  height: 200px;
}

.splash-screen {
  position: absolute;
  top: 25%;
  left: 50%;
  transform: translate(-50%, -25%);
  height: 50%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-align: center;
}

.explore-page .settings-button {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 20;
  padding: 1.5rem;
  border-radius: 100%;
  border: none;
  outline: none;
  font-family: inherit;
  box-shadow: 0 3px 10px black;
}
.explore-page .settings-button svg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.explore-page img {
  z-index: 10;
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 75%;
  height: 75svh;
  max-width: 100%;
}
.explore-page .backdrop {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  height: 100svh;
  width: 100%;
  filter: blur(8px);
  -webkit-filter: blur(8px);
}
.explore-page .place-card {
  z-index: 20;
  position: absolute;
  top: 60%;
  left: 0;
  width: 100%;
  display: block;
  border-radius: 24px 24px 0 0;
  box-shadow: 0 3px 10px black;
  background: white;
}
.explore-page .place-card__content {
  padding: 2rem;
  max-width: 720px;
  margin: auto;
}
.explore-page .place-card__content h1 {
  margin-bottom: 1rem;
}
.explore-page .place-card__button {
  border: none;
  outline: none;
  font-family: inherit;
  position: fixed;
  z-index: 100;
  box-shadow: 0 3px 8px black;
  bottom: 1.5rem;
  padding: 2rem;
  border-radius: 100%;
}
.explore-page .place-card__button--right {
  right: 1.5rem;
}
.explore-page .place-card__button--left {
  left: 1.5rem;
}
.explore-page .place-card__button--red {
  background: red;
}
.explore-page .place-card__button--red i svg path {
  stroke: white !important;
}
.explore-page .place-card__button svg {
  font-size: 2rem;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
}
.explore-page .place-card__information {
  background: white;
  width: 100%;
}
.explore-page .place-card__information table td {
  padding-bottom: 1rem;
  position: relative;
}
.explore-page .place-card__information table td:first-child {
  font-weight: bold;
  text-transform: capitalize;
  padding-right: 0.5rem;
}
.explore-page .place-card__information table td:last-child {
  word-break: break-all;
}
.explore-page .place-card__information table td:last-child .icon-container {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 1rem;
  height: calc(100% - 1rem);
}
.explore-page .place-card__information table td:last-child svg {
  width: 1rem;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
.explore-page .place-card__information table td:last-child a {
  padding-left: 1.5rem;
  text-decoration: none;
  color: inherit;
  display: block;
  max-width: 100%;
}
.explore-page .place-card__down-arrow {
  position: absolute;
  margin-top: 2rem;
  left: 50%;
  transform: translateX(-50%);
}
@media (min-width: 720px) {
  .explore-page .place-card__down-arrow {
    display: none;
  }
}
.explore-page h1 {
  margin: 0;
  padding: 0;
  font-size: 2rem;
  height: 4rem;
}
.explore-page .star-ratings > svg {
  color: #FFC700;
  fill: #FFC700;
}
.explore-page .price-ratings > svg {
  color: green;
}
.explore-page .category {
  text-transform: uppercase;
  border-radius: 6px;
  padding: 3px 12px;
  font-size: 0.75rem;
  color: white;
}
.explore-page .category--1 {
  background-color: #3a86ff;
}
.explore-page .category--2 {
  background-color: #8338ec;
}
.explore-page .category--3 {
  background-color: #fb5607;
}
.explore-page .category--4 {
  background-color: #ffbe0b;
}
.explore-page .category--0 {
  background-color: #3a86ff;
}
.explore-page .category--1 {
  background: green;
  color: white;
}
.explore-page .category--2 {
  background: blue;
  color: white;
}
.explore-page .category--3 {
  background: red;
  color: white;
}
.explore-page .category--4 {
  background: red;
  color: white;
}

.error-page {
  display: flex;
  flex-direction: column;
  text-align: center;
  justify-content: center;
  align-items: center;
  padding: 1rem;
}
.error-page--500 {
  gap: 10rem;
}

.settings-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 2rem;
}
.settings-page h1 {
  font-size: 1.75rem;
  font-weight: 400;
}
.settings-page ul.settings {
  width: 100%;
  max-width: 720px;
  padding-top: 4rem;
}
.settings-page ul.settings li {
  padding: 1.5rem 0.5rem;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}
.settings-page ul.settings li span {
  display: flex;
  flex-direction: row;
  align-items: center;
}
.settings-page ul.settings li span svg {
  margin-right: 0.5rem;
}
.settings-page ul.settings li:not(:last-child) {
  border-bottom: solid #cbd5e1 1px;
}
.settings-page footer {
  position: absolute;
  bottom: 0.5rem;
  left: 50%;
  transform: translateX(-50%);
}
.settings-page footer .powered-by {
  width: 8rem;
}

body {
  font-family: Arial, Helvetica, sans-serif;
}
body ul {
  list-style: none;
  margin: 0;
  padding: 0;
  margin-block-start: 0;
  margin-block-end: 0;
}
