/* ============================================================
   SecretMeet landing page
   Brand colour: #098b64
   ============================================================ */

:root {
  --brand: #098b64;
  --brand-light: #97ffe0;
  --card-bg: #fff5f7;
  --loader-color: #000080;

  /* Height of the pinned footer bar. .container reserves this much
     extra bottom padding so scrolled content clears the bar. Keep
     the two in sync if the footer's padding or font size changes. */
  --footer-height: 56px;
}

* {
  box-sizing: border-box;
}

body,
html {
  width: 100%;
  height: 100%;
  margin: 0;
}

ul,
p {
  padding: 0;
  margin: 0;
}

ul li {
  list-style: none;
  padding: 0;
}

/* ============================================================
   Loader
   ============================================================ */

#loader {
  display: none;
}

.loading #loader {
  display: flex;
}

.loader {
  color: var(--loader-color);
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  z-index: 999999999;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: aliceblue;
  min-height: 100vh;
  overflow: hidden;
}

.dot-spin {
  margin-top: 20px;
  position: relative;
  width: 10px;
  height: 10px;
  border-radius: 5px;
  background-color: transparent;
  color: transparent;
  box-shadow: 0 -18px 0 0 #000080, 13px -13px 0 0 #000080, 18px 0 0 0 #000080, 13px 13px 0 0 rgba(152, 128, 255, 0), 0 18px 0 0 rgba(152, 128, 255, 0), -13px 13px 0 0 rgba(152, 128, 255, 0), -18px 0 0 0 rgba(152, 128, 255, 0), -13px -13px 0 0 rgba(152, 128, 255, 0);
  animation: dot-spin 1.5s infinite linear;
}

@keyframes dot-spin {
  0%, 100% {
    box-shadow: 0 -18px 0 0 #000080, 13px -13px 0 0 #000080, 18px 0 0 0 #000080, 13px 13px 0 -5px rgba(152, 128, 255, 0), 0 18px 0 -5px rgba(152, 128, 255, 0), -13px 13px 0 -5px rgba(152, 128, 255, 0), -18px 0 0 -5px rgba(152, 128, 255, 0), -13px -13px 0 -5px rgba(152, 128, 255, 0);
  }
  12.5% {
    box-shadow: 0 -18px 0 -5px rgba(152, 128, 255, 0), 13px -13px 0 0 #000080, 18px 0 0 0 #000080, 13px 13px 0 0 #000080, 0 18px 0 -5px rgba(152, 128, 255, 0), -13px 13px 0 -5px rgba(152, 128, 255, 0), -18px 0 0 -5px rgba(152, 128, 255, 0), -13px -13px 0 -5px rgba(152, 128, 255, 0);
  }
  25% {
    box-shadow: 0 -18px 0 -5px rgba(152, 128, 255, 0), 13px -13px 0 -5px rgba(152, 128, 255, 0), 18px 0 0 0 #000080, 13px 13px 0 0 #000080, 0 18px 0 0 #000080, -13px 13px 0 -5px rgba(152, 128, 255, 0), -18px 0 0 -5px rgba(152, 128, 255, 0), -13px -13px 0 -5px rgba(152, 128, 255, 0);
  }
  37.5% {
    box-shadow: 0 -18px 0 -5px rgba(152, 128, 255, 0), 13px -13px 0 -5px rgba(152, 128, 255, 0), 18px 0 0 -5px rgba(152, 128, 255, 0), 13px 13px 0 0 #000080, 0 18px 0 0 #000080, -13px 13px 0 0 #000080, -18px 0 0 -5px rgba(152, 128, 255, 0), -13px -13px 0 -5px rgba(152, 128, 255, 0);
  }
  50% {
    box-shadow: 0 -18px 0 -5px rgba(152, 128, 255, 0), 13px -13px 0 -5px rgba(152, 128, 255, 0), 18px 0 0 -5px rgba(152, 128, 255, 0), 13px 13px 0 -5px rgba(152, 128, 255, 0), 0 18px 0 0 #000080, -13px 13px 0 0 #000080, -18px 0 0 0 #000080, -13px -13px 0 -5px rgba(152, 128, 255, 0);
  }
  62.5% {
    box-shadow: 0 -18px 0 -5px rgba(152, 128, 255, 0), 13px -13px 0 -5px rgba(152, 128, 255, 0), 18px 0 0 -5px rgba(152, 128, 255, 0), 13px 13px 0 -5px rgba(152, 128, 255, 0), 0 18px 0 -5px rgba(152, 128, 255, 0), -13px 13px 0 0 #000080, -18px 0 0 0 #000080, -13px -13px 0 0 #000080;
  }
  75% {
    box-shadow: 0 -18px 0 0 #000080, 13px -13px 0 -5px rgba(152, 128, 255, 0), 18px 0 0 -5px rgba(152, 128, 255, 0), 13px 13px 0 -5px rgba(152, 128, 255, 0), 0 18px 0 -5px rgba(152, 128, 255, 0), -13px 13px 0 -5px rgba(152, 128, 255, 0), -18px 0 0 0 #000080, -13px -13px 0 0 #000080;
  }
  87.5% {
    box-shadow: 0 -18px 0 0 #000080, 13px -13px 0 0 #000080, 18px 0 0 -5px rgba(152, 128, 255, 0), 13px 13px 0 -5px rgba(152, 128, 255, 0), 0 18px 0 -5px rgba(152, 128, 255, 0), -13px 13px 0 -5px rgba(152, 128, 255, 0), -18px 0 0 -5px rgba(152, 128, 255, 0), -13px -13px 0 0 #000080;
  }
}

/* ============================================================
   Page shell
   ============================================================ */

.content {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  z-index: 10000;
  overflow: hidden;
}

.wrapper {
  overflow: hidden;
  max-width: 100%;
  min-height: 100vh;
  margin: 0 auto;
  width: 100%;
  background: url(../img/background.png);
  background-size: contain;
  animation: fromLeftToRightInfinite 500s linear infinite;
}

.wrapper::before {
  z-index: 0;
  width: 100%;
  height: 100%;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
}

@keyframes fromLeftToRightInfinite {
  from {
    background-position: -14000px 0;
  }
  to {
    background-position: 0 0;
  }
}

.container {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 10px 30px calc(30px + var(--footer-height));
  z-index: 11119;
  position: absolute;
}

/* ============================================================
   Age-gate card
   ============================================================ */

.container .card {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 700px;
  padding: 0;
  background: #fff;
  justify-content: center;
}

.container .card__wrapper {
  margin: 48px 10px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  height: inherit;
  min-height: 100vh;
}

.container .card__header {
  padding: 5px 0;
  text-align: center;
  background: var(--brand);
}

.container .card__header-title {
  padding-right: 20px;
  padding-left: 20px;
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 35px;
  line-height: 40px;
}

.container .card__body {
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 30px;
  text-align: center;
  font-family: Arial, sans-serif;
}

.container .card__body-image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 354px;
  height: 201px;
  margin: 16px auto 24px;
}

.container .card__body-image img,
.container .card__body-image video {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.container .card__body-subquestion {
  text-align: center;
  margin-bottom: 8px;
  color: black;
  font-size: 16px;
  line-height: 30px;
  font-weight: 600;
}

.container .card__body-question {
  margin-right: 5px;
  color: #c73838;
  font-weight: 600;
  text-align: center;
  margin-bottom: 10px;
  font-size: 24px;
}

.container .card__body-btn {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 30px;
}

.container .card__body-btn a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: Arial, sans-serif;
  font-size: 30px;
  font-weight: 700;
  line-height: 35px;
  cursor: pointer;
  transition: none;
  text-transform: uppercase;
  text-decoration: none;
  color: #fff;
  padding: 13px 10px;
  margin: 0 auto 15px;
  min-height: 49px;
  height: auto;
  max-width: 385px;
  width: 100%;
  border-radius: 4px 0 0 4px;
}

.container .card__body-btn a:first-child {
  text-shadow: 0 -1px #060;
  background: #0c0 linear-gradient(180deg, #0c0 0, #090);
}

.container .card__body-btn a:nth-child(2) {
  text-shadow: 0 -1px #300;
  background: #c00 linear-gradient(180deg, #c00 0, #900);
}

/* ============================================================
   Offer card
   ============================================================ */

.container .bottom__info-wrapper {
  font-family: "Noto Sans", sans-serif;
  max-width: 1110px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.container .big_text {
  font-weight: 700;
  font-size: 56px;
  line-height: 62px;
  color: #fff;
  margin-bottom: 10px;
}

.container .site__rate-card {
  position: relative;
  margin: 60px auto;
  display: grid;
  grid-template-columns: 23% 58% auto;
  grid-template-rows: repeat(2, 1fr);
  min-height: auto;
  grid-column-gap: 15px;
  grid-row-gap: 5px;
  padding: 10px 20px 10px 20px;
  align-items: center;
  border: 2px solid var(--brand);
  background-color: var(--card-bg);
  border-radius: 10px;
}

.container .flag_wrapper {
  left: 32px;
  top: -32px;
  display: flex;
  position: absolute;
  margin-left: -1px;
}

.container .flag {
  background-color: var(--brand);
  margin-bottom: 0;
  padding-left: 40px;
  font-weight: 700;
  font-size: 16px;
  color: var(--card-bg);
  padding-right: 5px;
  height: 26px;
  line-height: 26px;
  text-transform: uppercase;
  width: auto;
  display: flex;
  white-space: nowrap;
}

.container .flag:before {
  content: "";
  background: linear-gradient(90deg, #431b38 0%, rgba(67, 27, 56, 0) 100%);
  position: absolute;
  width: 40px;
  height: 26px;
  top: 0;
  left: 0;
}

.container .number_flag {
  top: -20px;
  background-color: var(--brand);
  font-size: 40px;
  width: 64px;
  height: 64px;
  left: -35px;
  line-height: 1;
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.25);
  border-radius: 100%;
  position: absolute;
  color: #fff;
  z-index: 997;
  display: flex;
  justify-content: center;
  align-items: center;
}

.container .site__rate-image {
  grid-area: 1/1/3/2;
  place-items: center;
  height: 100%;
}

.container .site__rate-card-logo {
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.container .site__rate-card-logo-img {
  max-width: 130px;
  width: 130px;
  height: auto;
}

.container .site__rate-card-info {
  padding: 0 16px;
  grid-area: 1/2/3/3;
}

.container .reason_title {
  font-size: 16px;
  line-height: 24px;
  color: #000;
  margin-bottom: 10px;
  font-weight: 600;
}

.container .reasons_items {
  color: black;
  font-size: 13px;
  line-height: 1.4em;
  padding-left: 15px;
}

.container .reason {
  position: relative;
  padding-left: 10px;
  margin-bottom: 10px;
}

/* Inlined replacement for the theme's missing images/check-red.svg */
.container .reason:before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 10'%3E%3Cpath fill='none' stroke='%23098b64' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' d='M1.5 5.2 5 8.6 12.5 1.4'/%3E%3C/svg%3E");
  position: absolute;
  content: "";
  font-size: 14px;
  background-repeat: no-repeat;
  height: 10px;
  top: 6px;
  width: 14px;
  left: -13px;
  color: black;
}

.container .reason_gift {
  color: black;
  font-size: 13px;
  line-height: 1.4em;
}

.container .rate_block {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  grid-area: 1/3/2/4;
}

.container .rate_score .inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.container .rate_num {
  font-size: 54px;
  line-height: 1;
  font-weight: 500;
  color: var(--brand);
}

.container .rate-button {
  grid-area: 2/3/3/4;
  display: flex;
  color: #fff;
  text-decoration: none;
  position: relative;
  align-items: center;
  text-align: center;
  border-radius: 16px;
  line-height: 22px;
  font-weight: 900;
  letter-spacing: 0.05em;
  border: none;
  width: 100%;
  padding: 0 10px;
  max-width: 385px;
  min-height: 65px;
  font-size: 18px;
  background: var(--brand);
}

.container .comparison-item-stars {
  margin-top: 15px;
  display: flex;
  gap: 3px;
}

.container .comparison-item-stars i {
  width: 22px;
  height: 20.625px;
  font-size: 20px;
  color: #FF9518;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ============================================================
   Reviews slider
   ============================================================ */

.container .active__users-text {
  line-height: 1.4em;
  color: var(--brand-light);
  text-align: center;
  font-weight: 600;
  font-size: 24px;
}

.container .review-section {
  position: relative;
  margin-bottom: 40px;
}

.container .swiper-review-container {
  margin: 40px auto 0;
  overflow: hidden;
  max-width: 600px;
  min-width: 0;
  width: 100%;
}

.container .swiper-wrapper {
  display: flex;
}

.container .swiper-review-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 1000px 128px 128px 1000px;
  background: #fff;
  width: fit-content;
  min-width: 0;
}

.container .swiper-review-slide .text {
  font-size: 16px;
  line-height: 20px;
  color: black;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  padding: 10px 10px 10px 0;
}

.container .swiper-review-slide .text .strong {
  font-weight: 700;
  margin-bottom: 20px;
}

.container .swiper-review-slide .img {
  width: auto;
  min-width: 150px;
  margin-right: 20px;
}

.container .swiper-review-slide .img img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  object-position: center;
  border-radius: 1000px;
  display: block;
  margin-bottom: 0;
}

.container .slider-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin: 50px auto 0;
}

.container .slider-nav-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 500px;
  margin: 50px auto 0;
  position: absolute;
  width: 100%;
}

.container .swiper-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

.container .swiper-pagination-bullet {
  border-radius: 50%;
  transition: background-color 0.3s ease;
  font-size: 0;
  width: 18px;
  height: 18px;
  margin: 0 8px;
  border: 1px solid var(--brand);
  background: #fff;
  outline: none;
  opacity: 1;
}

.container .swiper-pagination-bullet-active {
  background: var(--brand);
}

.container .swiper-arrow {
  background: var(--brand);
  border: 0;
  color: #fff;
  width: 30px;
  height: 30px;
  padding: 3px;
  border-radius: 6px;
  outline: none !important;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
}

.container .swiper-button-next:after,
.container .swiper-rtl .swiper-button-prev:after {
  content: "";
}

.container .swiper-button-prev:after,
.container .swiper-rtl .swiper-button-next:after {
  content: "";
}

.container .swiper-media-container {
  max-width: 354px;
  height: 201px;
  margin: 14px auto 24px;
}

/* ============================================================
   Footer — pinned legal bar

   Fixed to the viewport so Privacy Policy and Terms are reachable
   without scrolling (ad reviewers usually look for this). It sits
   above .container's z-index (11119); .container pays for the space
   it occupies via --footer-height.
   ============================================================ */

footer {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: 11120;
  background: rgba(0, 0, 0, 0.82);
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  font-family: "Noto Sans", sans-serif;
  color: #fff;
}

.footer-content {
  max-width: 1110px;
  margin: 0 auto;
  padding: 10px 30px;
  /* Clears the iOS home indicator without shifting the bar. */
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.footer-info .logo img {
  display: block;
  width: 120px;
  height: auto;
}

.footer-copyright {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 13px;
  line-height: 1.4em;
}

.footer-copyright .menu {
  display: flex;
  gap: 20px;
}

.footer-copyright a {
  color: var(--brand-light);
  text-decoration: underline;
  font-weight: 600;
  white-space: nowrap;
}

.footer-copyright a:hover,
.footer-copyright a:focus-visible {
  color: #fff;
}

/* ============================================================
   Responsive
   ============================================================ */

@media screen and (max-width: 767px) {
  :root {
    --footer-height: 62px;
  }
  .wrapper {
    align-items: flex-start;
    min-height: calc(100vh - 80px);
  }
  .container {
    padding: 15px 23px calc(30px + var(--footer-height));
  }
  .container .card__wrapper {
    margin: 18px 10px 50px;
  }
  .container .card__header {
    padding: 15px 0;
  }
  .container .card__header-title {
    font-size: 20px;
    line-height: 24px;
  }
  .container .card__body {
    padding: 15px;
  }
  .container .card__body-image {
    max-width: 350px;
    height: 100%;
    max-height: 201px;
    margin-top: 0;
  }
  .container .card__body-btn {
    margin-top: 0;
    padding-top: 10px;
  }
  .container .card__body-btn a {
    font-size: 24px;
    max-width: 320px;
  }
  .container .big_text {
    font-size: 28px;
    line-height: 34px;
    text-align: center;
  }
  .container .site__rate-card {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto auto auto;
    padding: 10px 20px 20px 10px;
    grid-column-gap: 15px;
    grid-row-gap: 25px;
  }
  .container .site__rate-image {
    grid-area: 1/1/2/2;
  }
  .container .site__rate-card-info {
    grid-area: 2/1/3/3;
  }
  .container .rate_block {
    grid-area: 1/2/2/3;
  }
  .container .rate-button {
    align-self: center;
    justify-self: center;
    font-size: 24px;
    line-height: 30px;
    grid-area: 3/1/4/3;
  }
  .container .swiper-review-slide {
    background-color: transparent;
  }
  .container .swiper-review-slide .text {
    color: #fff;
    font-size: 13px;
  }
  .container .swiper-review-slide .img {
    width: auto;
    min-width: 100px;
    margin-right: 10px;
  }
  /* The logo is dropped so the pinned bar stays two short lines and
     gives back as little screen as possible on small viewports. */
  .footer-info {
    display: none;
  }
  .footer-content {
    flex-direction: column;
    justify-content: center;
    text-align: center;
    gap: 4px;
    padding: 8px 16px;
    padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
  }
  .footer-copyright {
    flex-direction: column;
    align-items: center;
    gap: 4px;
    font-size: 12px;
  }
  .footer-copyright .menu {
    justify-content: center;
    gap: 16px;
  }
}

@media screen and (max-width: 576px) {
  .container .swiper-review-container {
    max-width: 320px;
  }
  .container .swiper-review-slide {
    max-width: 320px;
    max-height: 100%;
  }
  .container .card__body-subquestion {
    line-height: 22px;
  }
}

@media screen and (max-width: 355px) {
  .container .swiper-review-container {
    max-width: 250px;
  }
  .container .swiper-review-slide {
    max-width: 250px;
    max-height: 100%;
  }
}
