@charset "utf-8";

/*--------------------------------------------------------------
  0. Resets & helpers
--------------------------------------------------------------*/
*, *::before, *::after {
  box-sizing: border-box;
}
img, picture, video {
  max-width: 100%;
  height: auto;
  display: block;
}

html {
  scroll-behavior: smooth;
}

/*--------------------------------------------------------------
  1. Global Styles
--------------------------------------------------------------*/
body {
  background: #ffffff;
  font-family: "Plus Jakarta Sans", sans-serif;
  margin: 0;
}

.main {
  width: 100%;
  max-width: 1600px;                /* keeps lines readable on big monitors */
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}

.container {
  width: 100%;
  max-width: inherit;
  margin-inline: auto;
}

img { border-radius: 16px; }

.logo {
    height: 50px;
    width: auto;
    object-fit: contain;
    margin: 0;
    padding: 0;

}

/*--------------------------------------------------------------
  2. Block Spacing
--------------------------------------------------------------*/
.firstBlock          { margin-bottom: 5rem; }
.secondBlock,
.thirdBlock,
.fourthBlock         { margin-block: 5rem; }

/*--------------------------------------------------------------
  3. Header
--------------------------------------------------------------*/
.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;                  /* allows wrap on phones */
  gap: 1rem;
  padding: 0.625rem 0;
}

.header a { padding: 0; }

.header-right {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
}

.header-right a {
  color: #000;
  text-decoration: none;
  font-size: 1.125rem;
}

.nav-link {
  padding: 0.75rem 1.5rem;
  font-size: 1.125rem;
  border-radius: 8px;
  display: inline-block;
  margin-left: 0.625rem;
  line-height: 2;
}

.register,
.signIn {
  font-size: 1.125rem;
  line-height: 2;
  padding: 0 1.5rem;
  border-radius: 10px;
  display: inline-block;
  white-space: nowrap;
}

.register {
  border: 1px solid lightgrey;
  background: #fff;
  color: #000;
}

.header-right .signIn {
  border: 1px solid #509dcf;
  background: #509dcf;
  color: #fff;
}

/*--------------------------------------------------------------
  4. Hero Section
--------------------------------------------------------------*/
.firstBlock {
  min-height: 60vh;                 /* fluid instead of fixed 800px */
  height: 800px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-inline: 5%;
  background: url(/images/headerBG.png) center/cover no-repeat;
  border-radius: 20px;
}

.heroText {
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.heroText .mainText {
  font-size: clamp(2.25rem, 4.5vw, 4rem);
  font-weight: 900;
  width: 70%;
  margin: 0;
  line-height: 1.2;
  letter-spacing: -1px;
}

.heroText .smallText {
  font-size: 1rem;
  width: 47%;
  margin: 0;
  line-height: 1.5;
}

.legal, .rules{
  font-size: 0.875rem;
  color: #cbcbcb;
  width: 30%;
}

.clickHere {
  margin: 0 auto;
  margin-top: 100px;
  font-size: 1.25rem;
  color: #fff;
}

/*--------------------------------------------------------------
  5. Actions (Buttons)
--------------------------------------------------------------*/
.signUpBtn,
.linkCard {
  background: #72b8e5;
  border: none;
  border-radius: 8px;
  font-size: 18px;
  font-weight: 300;
  color: #fff;
  cursor: pointer;
  padding: 1rem 2rem;
  transition: background 0.3s ease;
  width: max-content;
}

.signUpBtn:hover,
.linkCard:hover {
  background: #509dcf;
}

/*--------------------------------------------------------------
  6. Third Block (How-To section)
--------------------------------------------------------------*/
.thirdBlock {
  padding-inline: 5%;
  border-radius: 20px;
  margin-bottom: 3.75rem;
}

.thirdBlock .howTo,
.thirdBlock .btn3Div {
  font-size: 2.5rem;
  font-weight: 800;
  margin-block: 2.5rem;
  text-align: center;
}

.stepOne,
.stepTwo,
.stepThree {
  background: rgba(80, 157, 207, 0.08);
  border-radius: 12px;
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 250px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.aCaptions {
  font-size: 20px;
  font-weight: 400;
  margin: 10px 0 8px;
}

.bCaptions {
  font-size: 16px;
  font-weight: 100;
  margin: 0;
  color: #333;
  line-height: 1.5;
}

.headOne,
.headTwo,
.headThree {
  display: flex;
  justify-content: space-between;
  align-items: center; /* centers vertically */
}


.headOne img,
.headTwo img,
.headThree img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.num {
    margin-left: 1rem;     /* spacing from logo, optional */
    height: 40px;          /* match the logo size */
    object-fit: contain;
  }
  

/*--------------------------------------------------------------
  7. Shared Flex / Grid Containers
--------------------------------------------------------------*/
.flexParent {
  display: flex;
  flex-wrap: wrap;
  gap: 6rem;
  justify-content: space-between;
  align-items: center;
  padding-inline: 5%;
}

.flexParent .left,
.flexParent .right {
  flex: 1 1 22rem;
}

.flexParent h2 {
  font-size: 2.5rem;
  font-weight: 800;
  margin-bottom: 1rem;
  width: 90%;
}

.flexParent h4 {
  font-size: 1rem;
  font-weight: 300;
  line-height: 2;
  width: 90%;
}

/* Grid for 1-2-3 cards – stays 3-across until ~870 px */
.flexParent2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 2.5rem;
  max-width: 1800px;
  margin-inline: auto;
}

.stepOne,
.stepTwo,
.stepThree {
  max-width: none;        /* let Grid control width */
  width: auto;
}

/*--------------------------------------------------------------
  8. Custom Bullets
--------------------------------------------------------------*/
.custom-bullets  { list-style: none; padding-left: 0; margin-top: 1.25rem; }
.custom-bullets li {
  background-size: 20px 20px;
  padding-left: 30px;
  margin-bottom: 0.75rem;
  line-height: 1.5;
}
.bulletOne   { background: url('/images/firtsPrize.png')  no-repeat left center; }
.bulletTwo   { background: url('/images/secondPrize.png') no-repeat left center; }
.bulletThree { background: url('/images/thirdPrize.png')  no-repeat left center; }

/*--------------------------------------------------------------
  9. Terms
--------------------------------------------------------------*/
.terms {
  font-size: 0.875rem;
  color: #cbcbcb;
  text-decoration: none;
  display: block;
  margin-top: 1rem;
}

/* — your stacked container stays the same — */
.learnMoreArrows {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  background: var(--brand-red);
  color: #fff;
  text-decoration: none;
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  transition: background-color 0.3s ease;
}

/* — outline chevron using two pseudo‑elements — */
.chevron {
  width: 20px;
  height: 20px;
  position: relative;
  margin: 0;
  animation: bounce 1s infinite ease-in-out both;
}

.chevron::before,
.chevron::after {
  content: '';
  position: absolute;
  width: 2px;
  height: 15px;
  background: currentColor;
  top: 0;
}

.chevron::before {
  left: 14px;
  transform: rotate(45deg);
}

.chevron::after {
  right: 14px;
  transform: rotate(-45deg);
}

/* — no more nth-child delay: they’ll bounce together — */

/* — bounce keyframes unchanged — */
@keyframes bounce {
  0%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(6px);
  }
}

/* — hover color shift — */
.learnMoreArrows:hover {
  background: var(--brand-red-hover);
}

/*--------------------------------------------------------------
 10. Footer
--------------------------------------------------------------*/
footer {
  background: #edf8ff;
  color: #000;
  text-align: center;
  font-size: 0.75rem;
  padding-block: 2.5rem;
}

footer a {
  color: #000;
  text-decoration: none;
  font-size: 0.75rem;
}

footer .footFlex,
footer .notesFlex {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem 2.5rem;
  padding-inline: 5%;
}

footer .notesFlex {
  border-top: 1px solid #d9e8f5;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
}

/*--------------------------------------------------------------
 11. Responsive Tweaks
--------------------------------------------------------------*/
/* Tablets & down */
@media (max-width: 900px) {
  .heroText .mainText  { width: 100%; }
  .heroText .smallText { width: 100%; }
}

/* Phones */
@media (max-width: 600px) {
  .nav-link {
    flex: 1 1 45%;
    text-align: center;
    padding: 0.5rem 0;
  }

  .firstBlock { padding-inline: 1.5rem; }

  .flexParent .left,
  .flexParent .right { flex: 1 1 100%; }

  footer .footFlex a,
  footer .notesFlex p { flex: 1 1 100%; }


  /* 2) Override the fixed width on .legal and center its text */
  .firstBlock .legal {
    width: auto;         /* instead of 30% on desktop */
    text-align: center;
    margin: 2rem 0;    /* optional vertical spacing */
  }

  /* 3) Ensure the “Learn How…” heading is centered too */
  .firstBlock .clickHere {
    width: 100%;
    text-align: center;
    margin: 1rem 0;    /* optional to match .legal */
  } 
}

/* ──────────────────────────────────────────────────────────────
   A. Extra padding for Register / Sign In
   ────────────────────────────────────────────────────────────── */
.register,
.signIn {
  padding-left: 1.5rem;   /* add room before first letter  */
  padding-right: 1.5rem;  /* add room after last letter    */
}

/* ──────────────────────────────────────────────────────────────
   B. Hamburger menu
   ────────────────────────────────────────────────────────────── */

.hamburger {
  display: none;
  position: relative;
  width: 3rem;               /* overall button size */
  height: 1.2rem;
  cursor: pointer;
  background: none;
  border: 0;

}

/* the three bars */
.hamburger span {
  position: absolute;
  left: 0;
  width: 80%;
  height: 2.5px;
  background: #000;
  border-radius: 2px;
  transition: transform 0.40s ease, opacity 0.30s ease;
}

#menu-toggle:checked + .hamburger span {
  width: 55%;
  height: 2.5px;
  background: #509dcf;
}

/* bar positions in the “closed” state */
.hamburger span:nth-child(1) { top:   0; }
.hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.hamburger span:nth-child(3) { bottom: 0; }

/* transform into an “X” when the menu is open */
#menu-toggle:checked + .hamburger span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
#menu-toggle:checked + .hamburger span:nth-child(2) {
  opacity: 0;
}
#menu-toggle:checked + .hamburger span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}



/* Mobile ≤ 600 px */
@media (max-width: 600px) {

  .hamburger { display: block;}    /* show hamburger */

  .header-right {
    display: none;                  /* hide links until toggled */
    flex-direction: column;
    gap: 1rem;
    width: 100%;
    margin-top: 1rem;
  }

  /* show menu when checkbox is checked */
  #menu-toggle:checked + .hamburger + nav.header-right {
    display: flex;
  }

  /* full-width, centered tap targets */
  .nav-link {
    flex: 1 1 100%;
    text-align: center;
  }
}

/* ── FINAL OVERRIDE: extra inner space for Register / Sign In ── */
.header-right .register,
.header-right .signIn {
  padding: 0rem 1.75rem !important;
}

footer .logo {
    height: 80px;
    width: auto;
    display: block;
    margin: 0 auto;
    margin-bottom: 2rem;
  }
  