:root {
  --head-font: "IM Fell English SC", serif;
  --body-font: "Manrope", sans-serif;
  --gold-text: #a06800;
}

/* Ensure to hide the scrollbars */

* {
  box-sizing: border-box;
  font-family: var(--body-font);
  outline: none;
  scroll-behavior: smooth;
}

/* Scrollbar track (background) */
::-webkit-scrollbar-track {
  background: #1f2937; /* e.g. Tailwind gray-800 */
  border-radius: 10px;
}

/* Scrollbar handle (thumb) */
::-webkit-scrollbar-thumb {
  background: #4b5563; /* e.g. Tailwind gray-600 */
  border-radius: 10px;
  border: 2px solid #1f2937; /* gives padding effect */
}

/* On hover */
::-webkit-scrollbar-thumb:hover {
  background: #9ca3af; /* lighter */
}

body {
  height: 100%;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1 0 auto;
}

footer {
  flex-shrink: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: inherit; /* or your preferred font */
  font-weight: 600; /* or whatever fits your design */
  line-height: 1.2;
  margin: 0 0 0.5em;
}

h1 {
  font-size: clamp(1.5rem, 5vw, 2.25rem);
} /* ~32px to 36px */
h2 {
  font-size: clamp(1.5rem, 4vw, 1.875rem);
}
h3 {
  font-size: clamp(1.25rem, 3vw, 1.5rem);
}
p,
li {
  font-size: clamp(1rem, 2.5vw, 1.5rem);
}

.head-font {
  font-family: var(--head-font);
  text-transform: uppercase;
  word-spacing: 3px;
}

.gold-text {
  color: var(--gold-text) !important;
}

input[type="radio"]:checked + .check-icon {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath stroke='%2343a81f' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M17 5L8 15l-5-4'/%3E%3C/svg%3E");
}

select,
input {
  /* width: 26.4%; */
  border-radius: 50px !important;
  font-size: 18px !important;
  padding: 2.3% 6% !important;
  margin: auto !important;
  margin-bottom: 4% !important;
  margin-top: 1% !important;
  border: 2px solid #edf1ff !important;
  color: #c2b08f !important;
  -webkit-box-sizing: border-box !important;
  -moz-box-sizing: border-box !important;
  box-sizing: border-box !important;
  border-width: 3px !important;
  border-color: rgb(225, 210, 184) !important;
  border-style: solid !important;
  background-color: rgb(255, 255, 255) !important;
}

select:focus,
input:focus {
  outline: none;
  box-shadow: none;
}

.banner-box {
  position: relative;
  z-index: 1;
  background-color: transparent;
  overflow: hidden;
}

.result-box {
  background: url(../img/resultBG.webp) no-repeat center top;
  background-size: cover;
  position: relative;
  padding: 7.5% 7% 6.5% 7%;
  border-radius: 30px;
  background-color: #fbf5ed;
}

#home h1,
#dob h1,
#personalize h1 {
  font-size: clamp(0.8rem, 5vw, 1.8rem);
}

#reading p,
#second-reading p {
  margin-bottom: 1.5rem !important;
}

#second-reading {
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p {
    margin-bottom: 0.5rem;
  }
}

#video-background vturb-smartplayer,
#video-background .vsl-player,
#video-background iframe,
#video-background video {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
}

/* Add a dark overlay for a bit of darkness */
#video-background::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.342); /* adjust opacity as needed */
  pointer-events: none;
  z-index: 2;
}

/* Flipbook container – reserved space to prevent layout shift; no y-axis scroll */

#flipbook-container {
  min-height: 560px;
  max-width: 650px;
  width: 100%;
  overflow-x: hidden;
  overflow-y: hidden;
  background-image: url(../img/wood-bg.jpg);
}
#flipbook-container::-webkit-scrollbar {
  display: none;
}

#flipbook-container .stf__block {
  box-shadow: inset 0px 0 30px 0px rgba(36, 10, 3, 0.5),
    -2px 0 5px 2px rgba(0, 0, 0, 0.4);
}
#flipbook-container .page {
  padding: 20px;
  background-color: hsl(35, 55%, 98%);
  color: hsl(35, 35%, 35%);
  border: solid 1px hsl(35, 20%, 70%);
  overflow: hidden;
}

#flipbook-container .page .page-content {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: stretch;
}

#flipbook-container .page .page-image-wrap {
  flex: 1 1 0;
  min-height: 0;
}

#flipbook-container .page .page-image {
  height: 100%;
  background-size: contain;
  background-repeat: no-repeat;
}

#flipbook-container .page .page-footer {
  height: 30px;
  border-top: solid 1px hsl(35, 55%, 90%);
  font-size: 80%;
  color: hsl(35, 20%, 50%);
}

#flipbook-container .page.--left {
  border-right: 0;
  box-shadow: inset 0px 0 30px 0px rgba(36, 10, 3, 0.5),
    -2px 0 5px 2px rgba(0, 0, 0, 0.4);
}

#flipbook-container .page.--right {
  border-left: 0;
  box-shadow: inset 0px 0 30px 0px rgba(36, 10, 3, 0.5),
    -2px 0 5px 2px rgba(0, 0, 0, 0.4);
  text-align: end;
}

#flipbook-container .page.hard {
  background-color: hsl(35, 50%, 90%);
  border: solid 1px hsl(35, 20%, 50%);
}

#flipbook-container .page.page-cover {
  background-color: hsl(35, 45%, 80%);
  color: hsl(35, 35%, 35%);
  border: solid 1px hsl(35, 20%, 50%);
}

#flipbook-container .page.page-cover h2 {
  text-align: center;
  padding-top: 50%;
  font-size: 210%;
}

#flipbook-container .page.page-cover-top {
  box-shadow: inset 0 0 30px 0 rgba(36, 10, 3, 0.5),
    -2px 0 5px 2px rgba(0, 0, 0, 0.4);
}

#flipbook-container .page.page-cover-bottom {
  box-shadow: inset 0 0 30px 0 rgba(36, 10, 3, 0.5),
    10px 0 8px 0 rgba(0, 0, 0, 0.4);
}

/* Image loader: reserved space (no layout shift) + skeleton until loaded */
.img-loader-wrap {
  position: relative;
  overflow: visible;
}
.img-loader-wrap__skeleton {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    105deg,
    hsl(35, 25%, 92%) 0%,
    hsl(35, 20%, 96%) 45%,
    hsl(35, 25%, 92%) 100%
  );
  background-size: 200% 100%;
  animation: img-loader-shimmer 1.2s ease-in-out infinite;
  transition: opacity 0.25s ease-out;
}
.img-loader-wrap__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  z-index: 2;
  transition: opacity 0.3s ease-out;
}
.img-loader-wrap.loaded .img-loader-wrap__skeleton {
  opacity: 0;
  pointer-events: none;
}
.img-loader-wrap.loaded .img-loader-wrap__img {
  opacity: 1;
}
@keyframes img-loader-shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}

/* Flipbook page image: reserved aspect-ratio + skeleton */
.page-image-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: 800 / 1100;
  background: hsl(35, 25%, 92%);
  overflow: hidden;
}
.page-image-skeleton {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    105deg,
    hsl(35, 25%, 92%) 0%,
    hsl(35, 20%, 96%) 45%,
    hsl(35, 25%, 92%) 100%
  );
  background-size: 200% 100%;
  animation: img-loader-shimmer 1.2s ease-in-out infinite;
  transition: opacity 0.25s ease-out;
}
.page-image-wrap.loaded .page-image-skeleton {
  opacity: 0;
  pointer-events: none;
}
.page-image-wrap .page-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  z-index: 2;
  transition: opacity 0.3s ease-out;
}
.page-image-wrap.loaded .page-image {
  opacity: 1;
}

.page-auth audio.dvp-audio::-webkit-media-controls-timeline,
.page-auth audio.dvp-audio::-webkit-media-controls-current-time-display,
.page-auth audio.dvp-audio::-webkit-media-controls-time-remaining-display {
  display: none !important;
}

.download-btn-container a {
  width: 300px;
}
.download-btn-container a button {
  width: 100%;
}

/* @media (max-width: 768px) { */
.scroll-container {
  overflow: auto; /* allow scrolling */
  scrollbar-width: thin; /* Firefox */
  scrollbar-color: transparent transparent; /* Firefox */
  -ms-overflow-style: none; /* IE 10+ */
}

.scroll-container::-webkit-scrollbar {
  width: 0px;
  height: 0px;
}

/* Add top and bottom shadow hints */
.scroll-container::before {
  display: block;
  content: "";
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  height: 20px; /* shadow height */
  pointer-events: none; /* don’t block clicks */
  background: linear-gradient(to top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2));
}

/* Add bottom shadow hint */
.scroll-container::after {
  display: block;
  content: "";
  position: sticky;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 20px; /* shadow height */
  pointer-events: none; /* don’t block clicks */
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2));
}
/* } */

/* =============================================
   Auth pages only: responsive typography, no overflow on small screens
   ============================================= */
.page-auth #main-content {
  min-width: 0;
  overflow-x: hidden;
}

.page-auth #main-content main {
  min-width: 0;
}

.page-auth #main-content h1,
.page-auth #main-content h2,
.page-auth #main-content h3,
.page-auth #main-content h4,
.page-auth #main-content h5,
.page-auth #main-content h6 {
  font-size: clamp(1rem, 4.5vw, 2.25rem);
  line-height: 1.25;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  max-width: 100%;
}

.page-auth #main-content h1 { font-size: clamp(1.125rem, 5vw, 2.25rem); }
.page-auth #main-content h2 { font-size: clamp(1.125rem, 4.5vw, 1.875rem); }
.page-auth #main-content h3 { font-size: clamp(1rem, 3.5vw, 1.5rem); }

.page-auth #main-content .head-font {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  max-width: 100%;
}

.page-auth #main-content p,
.page-auth #main-content li {
  font-size: clamp(0.875rem, 2.2vw, 1.125rem);
  line-height: 1.5;
  overflow-wrap: break-word;
  word-wrap: break-word;
  max-width: 100%;
}

.page-auth #main-content .text-2xl { font-size: clamp(1.125rem, 4vw, 1.5rem); }
.page-auth #main-content .text-3xl { font-size: clamp(1.25rem, 4.5vw, 1.875rem); }
.page-auth #main-content .text-4xl { font-size: clamp(1.25rem, 5vw, 2.25rem); }
.page-auth #main-content .text-lg { font-size: clamp(0.9375rem, 2.2vw, 1.125rem); }
.page-auth #main-content .text-xl { font-size: clamp(1rem, 3vw, 1.25rem); }

.page-auth #main-content [class*="flex"] > *,
.page-auth #main-content [class*="grid"] > * {
  min-width: 0;
}

.page-auth #main-content #bonus-content .head-font {
  font-size: clamp(1rem, 4vw, 1.5rem);
}

.page-auth #main-content .btn,
.page-auth #main-content button,
.page-auth #main-content a[class*="bg-gradient"] {
  overflow-wrap: break-word;
  word-wrap: break-word;
  max-width: 100%;
}

.page-auth aside nav a {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  min-width: 0;
  font-size: clamp(0.8125rem, 1.5vw, 1rem);
}
