* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
}

body {
  background: radial-gradient(
    circle at 30% 30%,
    #f5f3ff 0%,
    #eae8ff 50%,
    #c8c8ff 100%
  );
  font-family: "Poppins", sans-serif;
}

.container {
  width: 95%;
  max-width: 120rem;
  margin: 0 auto;
}

/* ==== NAVBAR SECTION ==== */
.navigation {
  max-width: 120rem;
  width: 95%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 2rem;
  padding: 2rem 3rem;
  box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.2);
  margin: 1.5rem auto;
}

.siteLogo {
  font-size: 2.4rem;
  font-weight: 600;
  color: #8447ff;
  text-shadow: 0 2px 8px rgba(132, 71, 255, 0.3);
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  justify-items: center;
  gap: 0.5rem;
}

.navLogo {
  font-size: 2.8rem;
}

.navLinks {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4rem;
  font-size: 1.8rem;
}

.navLink {
  text-decoration: none;
  color: #333;
  position: relative;
}

.navLink::after {
  content: "";
  position: absolute;
  background: #8447ff;
  width: 0;
  height: 2px;
  bottom: -4px;
  left: 0;
  transition: width 0.3s ease;
}

.navLink:hover::after {
  width: 100%;
}

.navLink:hover,
.navLink:active {
  color: #9c82b4e3;
}

.toggleBtn {
  padding: 1rem 1.5rem;
  border: none;
  border-radius: 1.5rem;
  background-color: #ddd;
  font-size: 1.2rem;
  box-shadow: 8px 6px 16px #2b2a2a4a, -8px -8px 16px #ffffffaa;
}

.toggleBtn:hover {
  cursor: pointer;
}

/* ==== HERO SECTION ==== */
section {
  width: 100%;
  margin-bottom: 2.4rem;
}

.heroSection {
  background: linear-gradient(160deg, #120626 0%, #2b0b55 40%, #170833 100%);
}

.hero {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 12rem;
  padding: 4.2rem 3rem;
}

.heroHeader {
  font-size: 4.4rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.5px;
  color: #ddd;
  margin-bottom: 1rem;
  text-shadow: 0 0 10px rgba(94, 62, 255, 0.2);
}

.heroText p {
  font-size: 2.6rem;
  color: #eae8ff;
  margin-bottom: 4rem;
}

.heroImage {
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(12px);
  width: 40rem;
  height: 40rem;
  border-radius: 3rem;
  border: 1px solid rgba(255, 255, 255, 0.25);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1),
    inset 0 10px 10px rgba(255, 255, 255, 0.2);
  background: linear-gradient(
    145deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.05)
  );
  justify-self: end;
}

.heroPicture {
  width: 90%;
  border-radius: 2rem;
  box-shadow: 8px 6px 16px #2b2a2a4a, -8px -8px 16px #2b2a2a20;
  transition: transform 0.5s ease;
}

.ctaBtns {
  display: flex;
  align-items: center;
  gap: 2.6rem;
}

button {
  padding: 1.5rem 1rem;
  border-radius: 10px;
  font-size: 1.6rem;
  box-shadow: 0px 6px 8px rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.25);
  cursor: pointer;
}

#ctaView {
  background-color: #8447ff;
  color: #e4e4f3;
  transition: background-color 0.3s ease;
}

#ctaView:hover {
  background-color: #8e59f8;
  transform: scale(0.98);
}

#ctaListen {
  backdrop-filter: blur(12px);
  background: linear-gradient(
    145deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.05)
  );
  border: 1px solid #8447ff;

  transition: background-color 0.3s ease;
}

.playerLink {
  text-decoration: none;
  color: #ddd;
  text-shadow: 0 0 10px rgba(94, 62, 255, 0.3);
}

#ctaListen:hover {
  background-color: rgba(255, 255, 255, 0.06);
  transform: scale(0.98);
}

/* ==== FEATURES SECTION ==== */
.features {
  padding: 4.2rem 0;
}

h2 {
  font-size: 2rem;
  color: #3e2f5b;
  text-shadow: 0 0 10px rgba(126, 103, 241, 0.3);
  margin-bottom: 2.6rem;
}

.featuresCards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.2rem;
  padding: 3rem;
  border-radius: 16px;
}

.featuresCard {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 2rem 2rem;
  border-top: 3px solid #8447ff;
  border-radius: 10px;
  box-shadow: 0px 6px 8px rgba(0, 0, 0, 0.2);
  transition: transform 0.4s;
}

.featuresCard:hover {
  transform: scale(1.05);
}

.featuresIcon {
  color: #170835;
  font-size: 1.6rem;
}

h3 {
  font-size: 1.8rem;
}

.featuresCardHeaderText {
  color: #170835;
}

.featuresCardText {
  font-size: 1.6rem;
  margin-top: 1.2rem;
}

/* ==== POSTERSHOWCASE SECTION ==== */
.posterShowcase {
  background: linear-gradient(160deg, #120626 0%, #2b0b55 40%, #170833 100%);
}

.poster {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  padding: 4.8rem 0;
}

.search {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.input {
  padding: 1.5rem 1rem;
  border-radius: 4px;
  border: none;
  outline: none;
  width: 50%;
  background-color: #ddd;
}

.input::placeholder {
  color: #333;
}

.option {
  font-size: 1.6rem;
  color: #eae8ff;
  margin: 0 1rem 0 1rem;
}

.cta {
  text-decoration: none;
  padding: 1.5rem 2rem;
  border-radius: 4px;
  font-size: 1.6rem;
  cursor: pointer;
  color: #070212;
  font-weight: 600;
  background-color: #ddd;
  transition: transform 0.3s ease;
}

.cta:hover {
  transform: scale(0.98);
}

.songsPreview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2.4rem;
}

.secondPosterCta {
  align-self: center;
  justify-self: center;
}

.posterShowcaseText {
  color: #ddd;
  justify-self: center;
  margin-bottom: 1.8rem;
  font-size: 2.4rem;
}

.songContainer {
  width: 25rem;
  height: auto;
}

.imagePoster {
  width: 100%;
  margin-bottom: 3px;
  border-radius: 4px;
  transition: transform 0.3s ease;
}

.imagePoster:hover {
  transform: scale(1.05);
}

.songName {
  color: #ddd;
  font-size: 1.4rem;
  margin-bottom: 1px;
}

.artistName {
  color: #999;
  font-size: 1.2rem;
}

.errormessage {
  color: #999;
  margin-bottom: 1rem;
  font-size: 1.8rem;
  justify-self: center;
  padding: 4rem;
}

/* ==== DOWNLOADCTA SECTION ==== */
.download {
  display: grid;
  grid-template-columns: 2fr 1fr;
  align-items: end;
  justify-content: center;
  gap: 1rem;
  padding-bottom: 0;
  padding-top: 8.6rem;
}

.downloadSection {
  margin: 0;
}

.downloadSectionImageBox {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: end;
}

.downloadSectionImage {
  width: 100%;
  max-width: 600px;
  object-fit: contain;
}

.downloadCta {
  display: flex;
  flex-direction: column;
  width: 80%;
  padding-bottom: 3rem;
}

.downloadCtaText {
  font-size: 3.8rem;
  line-height: 1.2;
  color: #121212;
  font-weight: 200;
  margin-bottom: 6rem;
  position: relative;
}

.downloadCtaText::after {
  content: "";
  position: absolute;
  width: 20%;
  height: 4px;
  bottom: -20px;
  left: 0;
  border-radius: 4px;
  background: linear-gradient(90deg, #8447ff, #b266ff);
}

.downloadCtaSubText {
  font-size: 1.8rem;
  line-height: 1.2;
  color: #121212;
  font-weight: 600;
  margin-bottom: 2.6rem;
}

.ctaBox {
  display: flex;
  gap: 1rem;
}

.downloadBtn {
  display: inline-block;
  width: 135px;
  height: 40px;
  border-radius: 4px;
  background-repeat: no-repeat;
  background-size: contain;
  cursor: pointer;
  text-decoration: none;
  color: transparent;
}

.appstore {
  background-image: url(https://a-v2.sndcdn.com/assets/images/appstore_badge@en-9e7292e6.png);
}

.googleplay {
  background-image: url(https://a-v2.sndcdn.com/assets/images/google_play_badge@en-51d52194.png);
}

/* ==== PAYMENT PLAN SECTION ==== */
.paymentPlanSection {
  background: linear-gradient(160deg, #120626 0%, #2b0b55 40%, #170833 100%);
}

.paymentPlan {
  display: flex;
  flex-direction: column;
  padding: 7.2rem 0 4.2rem 0;
}

.paymentPlanBox {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.paymentPlanText {
  font-size: 4rem;
  color: #ddd;
  line-height: 1;
  text-align: center;
  font-weight: bold;
  letter-spacing: -1.6px;
}

.paymentPlanSubText {
  color: #fff;
  font-size: 16px;
  font-weight: normal;
  margin: 16px auto 32px;
  text-align: center;
  padding: 0px;
  max-width: 671px;
}

.paymentBox {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 7.2rem;
}

.paymentPoster {
  display: inline-block;
  width: 55px;
  height: 30px;
  border-radius: 4px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-color: #fff;
  cursor: pointer;
  object-fit: contain;
  transition: transform 0.2s ease;
}

.paymentPoster:hover {
  transform: translateY(-2px);
}

.visa {
  background-image: url(https://paymentsdk.spotifycdn.com/svg/cards/visa.svg);
}

.mastercard {
  background-image: url(https://paymentsdk.spotifycdn.com/svg/cards/mastercard.svg);
}

.verve {
  background-image: url(https://paymentsdk.spotifycdn.com/svg/cards/verve.svg);
  background-size: 89%;
  background-position: center 55%;
}

.premiumFeaturesBox {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6rem;
  margin-bottom: 4rem;
}

.premiumFeaturesText {
  font-size: 2.8rem;
  color: #ddd;
}

.premiumFeatures {
  list-style: none;
  color: #ddd;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  font-size: 1.8rem;
}

.fa-check {
  margin-right: 1rem;
  color: #ddd;
}

.premiumPlansBox {
  display: flex;
  align-items: stretch;
  gap: 2rem;
  color: rgba(255, 255, 255, 0.8);
}

.premiumPlan {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.5rem 2rem 0rem 2rem;
  border-radius: 1rem;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(12px);
  background: rgba(255, 255, 255, 0.08);
}

.premiumPlanHeader {
  display: flex;
  flex-direction: column;
  gap: 5px;
  border-bottom: 1px solid #999;
  padding-bottom: 2rem;
}

.navLogoPremium {
  font-size: 1.8rem;
  background: linear-gradient(135deg, #8447ff, #b388ff);
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-right: 4px;
}

.premiumPlanHeadertext {
  font-size: 1.4rem;
  font-weight: 400;
}

.planName {
  font-size: 3.2rem;
}

.individual {
  background: linear-gradient(135deg, #5efce8, #39a0ff);
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.student {
  background: linear-gradient(135deg, #c471f5, #fa71cd);
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.family {
  background: linear-gradient(135deg, #ff9966, #ff5e62);
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.planPrice {
  font-size: 1.6rem;
}

.premiumPlanFeatures {
  padding: 1.6rem 1.2rem;
  display: grid;
  grid-template-rows: 1fr auto 1fr;
  height: 200px;
  gap: auto;
}

.premiumFeaturesList {
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-items: flex-start;
  padding-left: 0.5rem;
}

.premiumPlanFeature {
  font-size: 1.4rem;
  font-weight: 500;
}

.premiumCtaBtn {
  text-decoration: none;
  color: #121212;
  font-size: 1.6rem;
  padding: 1rem 2rem;
  border-radius: 100px;
  text-align: center;
  font-weight: 500;
  margin-top: 1.2rem;
}

.premiumIndividual {
  background: linear-gradient(135deg, #5efce8, #39a0ff);
}

.premiumStudent {
  background: linear-gradient(135deg, #c471f5, #fa71cd);
}

.premiumFamily {
  background: linear-gradient(135deg, #ff9966, #ff5e62);
}

.noteBox,
.Terms {
  font-size: 1.2rem;
  text-align: center;
}

.Terms {
  color: inherit;
}

.noteBox {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  align-self: center;
}

/* ==== PAYMENT PLAN SECTION ==== */

.accountSection {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2.4rem;
  color: #121212;
  padding: 5rem 0;
}

.accountSectionHeader {
  font-size: 4rem;
  line-height: 1;
  font-weight: bold;
  letter-spacing: -1.6px;
}

.accountSectionSubText {
  font-size: 1.6rem;
}

.ctaContainer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.ctaCreateBtn {
  text-decoration: none;
  padding: 1.5rem 2rem;
  border-radius: 4px;
  font-size: 1.6rem;
  cursor: pointer;
  font-weight: 600;
  background: linear-gradient(135deg, #8447ff, #6c2cff);
  color: #fff;
}

.ctaCreateBtn:hover {
  transform: scale(0.98);
  background: linear-gradient(135deg, #955aff, #7c3dff);
}

.ctaQuestion,
.signIn {
  text-decoration: none;
  color: #120626;
}

.ctaQuestion {
  font-size: 1.4rem;
}

.ctaQuestion:hover {
  text-decoration: underline;
}

.signIn {
  font-size: 1.8rem;
}

.signIn:hover {
  opacity: 0.9;
}

/* ==== FOOTER SECTION ==== */
.footerSection {
  background: linear-gradient(160deg, #120626 0%, #2b0b55 40%, #170833 100%);
  padding: 4rem 0 2rem 0;
  color: #ddd;
}

.footer {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  padding: 4.2rem 0;
}

.footerTop {
  display: grid;
  grid-template-columns: auto 1fr 0.5fr;
  gap: 4rem;
  align-items: flex-start;
  margin-bottom: 2.8rem;
}

.footerBrand {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.footerBrandlogo {
  display: flex;
}

.footerLogoIcon,
.footerLogo {
  font-size: 2.4rem;
}

.footerLogo {
  background: linear-gradient(135deg, #8447ff, #b388ff);
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* LINKS */
.footerLinks {
  display: flex;
  justify-content: center;
  gap: 5rem;
}

.footerColumn h4 {
  font-size: 1.6rem;
  margin-bottom: 1rem;
  color: #fff;
  margin-bottom: 1.6rem;
}

.footerColumn ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.footerColumn ul li a {
  color: rgba(255, 255, 255, 0.75);
  font-size: 1.6rem;
  text-decoration: none;
  transition: color 0.3s ease;
}

.footerColumn ul li a:hover {
  color: #b388ff;
}

/* NEWSLETTER */
.footerNewsletter {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.footerHeader {
  font-size: 1.6rem;
}

.newsletterText {
  font-size: 1.3rem;
  color: rgba(255, 255, 255, 0.7);
}

.newsletterForm {
  display: flex;
  gap: 0.6rem;
  align-items: center;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 2rem;
  padding: 0.4rem 0.6rem;
  backdrop-filter: blur(8px);
}

.newsletterInput {
  flex: 1;
  padding: 0.6rem 1rem;
  border: none;
  outline: none;
  background: transparent;
  color: #fff;
  font-size: 1.4rem;
}

.newsletterBtn {
  background: linear-gradient(135deg, #8447ff, #b388ff);
  border: none;
  color: #fff;
  padding: 0.6rem 1.2rem;
  border-radius: 1.8rem;
  cursor: pointer;
  font-size: 1.4rem;
  transition: all 0.3s ease;
}

.newsletterBtn:hover {
  transform: translateY(-1.3px);
  background: linear-gradient(135deg, #9b63ff, #c2a0ff);
}

/* SOCIALS & COPYRIGHT */
.footerSocials {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  font-size: 1.8rem;
}

.footerSocials a {
  color: rgba(255, 255, 255, 0.8);
  transition: color 0.3s ease;
}

.footerSocials a:hover {
  color: #b388ff;
}

.footerBottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 1.5rem;
  text-align: center;
  font-size: 1.4rem;
  color: rgba(255, 255, 255, 0.6);
}

.message {
  text-align: center;
  margin-top: 1rem;
  font-size: 1.4rem;
  padding: 10px 14px;
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none; /* prevent clicking while hidden */
  border-radius: 0.5rem;
}

/* Colors */
.successMessage {
  background: #d6f5d6;
  color: #0f7a0f;
}

.errorMessage {
  background: #ffd6d6;
  color: #b20000;
}

/* Slide & Fade Animation */
.showMessage {
  animation: slideFade 4s forwards;
}

@keyframes slideFade {
  0% {
    opacity: 0;
    transform: translateX(20px);
  }
  10% {
    opacity: 1;
    transform: translateX(0);
  }
  90% {
    opacity: 1;
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    transform: translateX(-50px);
  }
}

.reveal {
  opacity: 0;
  transform: translateY(40px);
}

.reveal.show {
  opacity: 1;
  animation: fadeInTop 02s ease 0s 1 normal forwards;
}

@keyframes fadeInTop {
  0% {
    opacity: 0;
    transform: translateY(50px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes scaleUp {
  0% {
    transform: scale(0.5);
  }

  100% {
    transform: scale(1);
  }
}
