.hero {
  position: relative;       /* container for absolute video */
  width: 100%;
  height: 60vh;             /* adjust as needed */
  overflow: hidden;
  display: flex;
  justify-content: center;  /* centers content horizontally */
  align-items: center;      /* centers content vertically */
  color: white;
  text-align: center;
}

.promo-video {
  position: absolute;       /* make video “background” */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;        /* fills hero without distortion */
  z-index: 0;               /* behind content */
}

.promo-vdeo video{
  opacity:0.5;
}

.hero-content {
  position: relative;       /* layer above video */
  z-index: 1;
  max-width: 1200px;
  padding: 0 1rem;
}

.hero-buttons {
  margin-top: 1rem;
  display: flex;
  gap: 1rem;
  justify-content: center;
}

/* Optional: make hero responsive */
@media (max-width: 768px) {
  .hero {
    height: 50vh;
  }
  
  .hero-content h1 {
    font-size: 2rem;
  }
  
  .hero-buttons {
    flex-direction: column;
    gap: 0.5rem;
  }
}

/* Add some content at the bottom of the video/page */
.content {
  position: fixed;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  color: #f1f1f1;
  width: 100%;
  padding: 20px;
}

/*INTRO VIDEO */

@media (max-width: 480px) {
  .content-image {
    width: 90%;             /* full width on small screens */
  }
}

/* GGI Image*/
.GGI-longer{
  width: 40%;
  display: block;
  margin: 0 auto;
  padding:1rem 1rem 0rem 1rem;
}

/* CONTENT SECTIONS */
.content-section{
  text-align: center;
  margin-top:2rem;
  margin-bottom:2rem;
}

.content-section.highlight{
  margin-bottom:0;
}

.content-section-how{
  padding-top:3rem;
}

.content-writing {
  padding: 1rem;
}

.content-paragraph {
  text-align: center;
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.content-paragraph p {
  width: 100%;
  text-align: center;
}

@media (max-width: 767px) {
  .content-writing {
    margin: 0;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .content-writing, .highlight-writing {
    margin: 1rem 8rem; /* Reduce padding on smaller screens */
  }
}

@media (min-width: 1024px) {
  .content-writing, .highlight-writing {
    margin: 1rem 12rem;
  }
}

    /*LIST STYLE*/
.how-to-list{
    display:flex;
    flex-direction: column;
    justify-content: center;
    text-align:center;
    padding:1rem;
    list-style-type: none;
    gap: 1rem;
}

.how-to-list li.top{
  margin-top:2rem;
  
}

.how-to-list strong {
  font-size:var( --h3-font-size);  
  padding:1rem;           /* accent color for keywords */
}

.focus-list {
  display:flex;
  flex-flow:column nowrap;
  align-items:center;     /* removes default bullets */
  background: var(--white);        /* light background */
  border: 2px solid var(--white);     /* border around box */
  border-radius: 12px;        /* rounded corners */
  padding: 1rem 2rem;            /* space inside */
  margin: 1rem 0;             /* space outside */
  box-shadow: 0 4px 10px rgba(0,0,0,0.1); /* subtle shadow */
  text-align: left;
}

.foucus-list ul{
  width:50%;
}

@media (min-width: 768px) {
  .focus-list {
    padding: 2rem 2rem;       /* more padding on larger screens */
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .content-writing.how{
    margin: 1rem 4rem; /* Reduce padding on smaller screens */
  }
}

.focus-list li {
  line-height: 1.6;
  color:black;       /* makes each li act like a full-width block */          /* ensures they span the full box width */      /* keeps bullets/text aligned on the left */
  margin-bottom: .75rem; /* spacing between items */
}

@media (min-width:768px){

  .focus-list li{
    width: 600px;
  }

}

.content-image {
  width: 75%;               
  max-width: 200px;         
  aspect-ratio: 1 / 1;      
  object-fit: cover;      
  border-radius: 8px;
  padding:.25rem .25rem;  
}

@media (max-width: 480px) {
  .content-image {
    max-width: 90%;             
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .content-image {
    max-width: 300px;
    height: auto;             
  }
}

@media (min-width: 1024px) {
  .content-image {
    max-width: 375px;
    height: auto;             
  }
}

/* HIGHLIGHT SECTION */
.top{
  border-top:solid 1px var(--primary);
  padding-top: 1rem;
  margin-top:1rem;
}

.bottom{
  border-bottom:solid 1px var(--primary);
  padding-bottom: 1rem;
  margin-bottom:2rem;
}

.strong{
  margin-top:1rem;
}

.highlight-section {
  padding: 2rem 8rem;
  background: var(--primary);
}

@media (max-width: 767px) {
  .highlight-section {
    padding: 2rem 1rem;
  }
}

.highlight-section h2, .highlight-section p {
  color:var(--black);
}

.highlight-section p{
  text-align:left;
}

.super-special {
  padding-bottom: 1rem;
  color:black;
}

.highlight-writing {
  margin-left: auto;
  margin-right: auto;
  max-width:750px;
}

@media (min-width: 768px) {
  .membership-card{
    margin:1rem 2rem;
  }
}


.membership-card{
  display:flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: center;
  align-content: center;
  background:black;
  margin:1rem .5rem;
  padding:2rem;
  border-radius: 5px;
}

.membership-card .btn{
  margin-bottom:0;
}

.membership-card h4, .membership-card i, .membership-card span{
  color:var(--primary);
}

.membership-card p{
  color:var(--white);
  margin-bottom:.25rem;
  text-align: left;
}

.membership-card i, .membership-card span{
  font-size: 3rem;
}

.membership-card i {
  display: block;
  margin: 0 auto; /* centers it horizontally */
  font-size: 3rem;
  color: var(--primary);
}

.card-list{
  display:flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-content: center;
  margin-bottom:.5rem;
  padding:.5rem;
}

.membership-logo {
  display: block;
  margin: 0 auto; /* centers it horizontally */
  width: 100px;
  height: auto;
}

@media (max-width: 480px) {
  .membership-logo {
     width: 100px;
  }
}

.card-list li{
  text-align: left;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .membership-card {
    margin: 1rem 10rem; /* optional, keeps them tidy */
  }
}

@media (min-width: 1024px) {
  .membership-row {
    display:flex;
    flex-flow: row nowrap;
    justify-content: center;
  }

  .membership-card {
    flex: 1 1 30%;
    max-width: 350px; /* optional, keeps them tidy */
  }

  .membership-card.unique {
    max-width: none;
    margin:2rem;
    max-width: 1100px;
  }

}

.membership-video {
  width: 100%;
  height: auto;
}




/*FAQ SECTION*/
.faq-container {
      width: 100%;
      max-width: 700px;
      margin: 0 auto;
      text-align: left;
    }

    .faq-item {
      border-bottom: 1px solid #ccc;
      margin-bottom: 0.5rem;
      padding-bottom: 0.75rem;
    }

    .faq-question {
      width: 100%;
      background: none;
      border: none;
      padding: 1rem;
      text-align: left;
      font-weight: bold;
      font-size: var(--h4-font-size);
      color: var(--white);
      display: flex;
      justify-content: space-between;
      align-items: left;
      cursor: pointer;
    }

    .faq-answer {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease, padding 0.3s ease;
      padding: 0 1rem;
    }

    .faq-answer p {
      margin: 0.5rem 0 1rem;
      text-align: left;
    }

    .faq-item.active .faq-answer {
      max-height: 200px;
      padding: 0 1rem 1rem;
    }

    .faq-item.active .caret {
      transform: rotate(180deg);
    }

    .caret {
      transition: transform 0.3s ease;
    }


/* Live Lab CSS */
.hero-live {
  position: relative;
  min-height: 70vh; /* adjust as needed */
  overflow: hidden;
  color: white;
  display: flex;
  align-items: center;
}

.right-hero {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-live video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-live::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(0, 0, 0, 0.95) 0%,
    rgba(0, 0, 0, 0.85) 25%,
    rgba(0, 0, 0, 0.6) 45%,
    rgba(0, 0, 0, 0.2) 65%,
    transparent 85%
  );
  z-index: 1;
}

.left-hero {
  position: relative;
  z-index: 2;
  text-align: left;
  max-width: 600px;
  margin-left:8% /* controls how far into video it overlaps */
}

.hero-live h1 {
  color: var(--primary); /* stands out against black background */
  margin: 0;
  text-align: left;
}

@media (max-width: 768px) {

  .hero-live {
    min-height: 60vh;
    justify-content: center;
    text-align: center;
  }

  .left-hero {
    margin: 0;
    padding-left: 0rem;
    max-width: 90%;
    text-align: center;
  }

  .hero-live h1 {
    font-size: 2rem;
  }

  .hero-live::before {
    background: linear-gradient(
      to top,
      rgba(0,0,0,0.85) 10%,
      rgba(0,0,0,0.6) 40%,
      rgba(0,0,0,0.4) 70%,
      transparent 100%
    );
  }

}

.hero-live video {
  flex: 1 1 65%;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 8px;
  margin: auto;
  display: block;
}

/* Tablet (768px – 1023px) */
@media (max-width: 1023px) {
  .hero-live {
    flex-direction: column; /* stack vertically */
    text-align: center;
  }

  .hero-live h1 {
    text-align: center;
    padding: 0;
  }

  .hero-live video {
    width: 90%; /* expand more on smaller screens */
  }
}

/* Mobile (up to 767px) */
@media (max-width: 767px) {
  .hero-live {
    padding: 0.5rem;
  }


  .hero-live video {
    width: 100%; /* take full width */
    max-width: 100%;
  }
}

/*POP UP*/
  .popup {
    display: none; /* hidden by default */
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(0,0,0,0.5);
    justify-content: center;
    align-items: center;
    z-index: 9999;
    overflow-y: auto;         /* allows scrolling when content exceeds height */
  }
  .popup-content {
    background: black;
    border: 2px solid var(--white);
    color: var(--white);
    padding: 2rem;
    border-radius: 12px;
    max-width:1000px;
    width: 90%; 
    text-align: center;
    position: relative;
    margin: auto;             /* centers it even when scrolling */
    max-height: 90vh;         /* ensures it fits within viewport */
    overflow-y: auto;         /* allows internal scroll if content is tall */
    -webkit-overflow-scrolling: touch; /* smooth scroll on iOS */
  }

  /* Large screens */
@media screen and (min-width: 1024px) {
  .popup-content {
    max-width: 1000px;  /* keep max width for desktops */
    padding: 2rem;
  }
}

/* Medium screens / tablets */
@media screen and (min-width: 769px) and (max-width: 1023px) {
  .popup-content {
    max-width: 700px;   /* a bit smaller than desktop */
    padding: 1.5rem;
  }
}

/* Small screens / phones */
@media screen and (max-width: 768px) {
  .popup-content {
    max-width: 90%;     /* almost full width on small screens */
    padding: 1rem;
  }
}

  .close {
    position: absolute;
    top: 0.5rem; right: 0.75rem;
    cursor: pointer;
    font-size: 1.5rem;
  }

  .content-paragraph.pop p{
    text-align: left;
    color: var(--white);
  }


/*Floating button*/
.floating-btn {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  background: var(--primary);
  color: black;
  padding: 0.75rem 1rem;
  border-radius: 50px;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  transition: color 0.2s;
}

.floating-btn i {
  color: black;
}

.floating-btn:hover {
  background: black;
  color: var(--primary); /* button changes when hovered */
}

.floating-btn:hover i {
  color: var(--primary); /* icon changes when button is hovered */
}




/* Tablet & Desktop alternating rows */
@media (min-width: 768px) {
  .content-section-quiz {
    flex-direction: row;
    display: flex;
  align-items: center;
  text-align: left;
  gap: 1.5rem;
  padding: 2rem 5rem;

  }

  .content-section-quiz:nth-child(even) {
    flex-direction: row-reverse;
  }

  .content-paragraph-quiz {
    justify-content: flex-start;
  }
}

.content-section-quiz{
  background-color: var(--white);
}

.content-paragraph-quiz p{
  color:black;
} 

.quiz-step h2 {
  color:var(--primary);
  text-align: left;
}

.quiz-step h2{
  margin-bottom:0;
  padding-bottom: 0;
}


.quiz {
  margin: 0rem auto;
  text-align: left;
  padding-bottom:5rem;
  background-color: black;
  padding:2rem;
  border-radius: 12px;
}

@media (min-width:481px){
  .quiz{
    min-width: 650px;
  }
}

.quiz-buttons {
  display: flex;
  flex-flow: column nowrap;
  justify-content:flex-start;
  gap: 1rem;
  margin: 1rem 0;
}

.quiz-buttons button, .back-btn {
  padding: 1rem;
  background: var(--white);
  color:black;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  font-weight: bold;
  transition: background 0.3s;
  flex:1;
}
.back-btn{
  font-weight: 900;
  color:var(--primary);
  background-color: transparent;

}

.quiz-buttons button:hover, .back-btn:hover {
  background: #c09e01;
  color:black;
}

.hidden {
  display: none;
}

.classes {
  padding: 1rem;
  background: #111;
  color: white;
  border-radius: 5px;
  padding:rem;
}

/* MEMBERSHIP BREAKDOWN SECTION */

/* Nav spans full width */
.plan-nav {
  display: flex;
  width: 100%;
  border-radius:12px;
  background: black;    
  overflow: hidden;
}

.plan-nav button:active {
  background-color: var(--primary, #c7a008);
  color: #fff;
  transition: background 0.3s, color 0.3s;
}

.plan-nav button {
  flex: 1; /* each button takes equal space */
  padding: 1rem;
  background: #ddd;
  border: none;
  font-weight: bold;
  cursor: pointer;
  transition: background 0.3s;
  font-size: var(--h3-font-size);
  font-family: 'Ramaraja', 'open sans', sans-serif;
}

@media (max-width: 480px) {
  .plan-nav button {
    padding:0rem;
  }
}


/* Individual colors */
.plan-nav button[data-target="basic"] {
  background: black; 
  color: var(--primary);
}
.plan-nav button[data-target="basic"]:hover {
  color: black !important; 
  background: var(--primary) !important;
}

.plan-nav button[data-target="premium"] {
  color: var(--primary); 
  background:black;
}
.plan-nav button[data-target="premium"]:hover {
  background: var(--primary); 
  color: black;
}

.plan-nav button[data-target="premium"]:active {
  background: var(--primary); 
  color: black;
}

.plan-nav button[data-target="elite"] {
  background: black;
  color:var(--primary) ; 
}
.plan-nav button[data-target="elite"]:hover {
  background: var(--primary); 
  color:black;
}

.plan-nav button[data-target="elite"]:active {
  background: var(--primary); 
  color: black;
}

.plan-nav button[data-target="all"] {
  background: black;
  color:var(--primary) ; 
}

.plan-nav button[data-target="all"]:hover {
  background: var(--primary); 
  color:black;
}

.plan-nav button[data-target="all"]:active {
  background: var(--primary); 
  color:black;
}
.plan-nav button.icon {
  display: none;
}
@media (max-width: 480px) {
  .plan-nav button.tab {
    display:none;
  }
  .plan-nav button.icon {
    display:block;
  }
}

/* Membership boxes align under nav */
.membership {
  display: none;
  padding: 2rem;
  text-align: left;
  color: #fff;
}

@media screen and (max-width: 480px) {
  .membership {
    padding: 0rem;
  }
  .membership.active {
  display: flex;
  flex-direction: column; 
}
}


.membership.active {
  display: flex; 
  
}



    .basic h2 { 
      color: var(--primary);
    }
    
    .membership p { 
      color: var(--white);
    }

.list{
  margin-bottom:1rem;
  padding:1rem;
  text-align: left;
}

.list li{
  color:var(--white);
}

.botom-half{
  margin:3rem;
}

.membership-info{
  width: 45%;
  margin:1rem 3rem 1rem 1rem;
}

@media (max-width: 480px) {
  .membership-info{
    margin:1rem;
    width:90%;
  }
}

.modal-content {
  background: black;
  margin: 3rem auto 0 auto;
  padding: 0rem;
  border-radius: 12px;
  max-width: 1250px;   /* wider modal */
  width: 100%;  
}

.lesson-video {
  display: flex;
  justify-content: center; /* centers horizontally */
  align-items: center;     /* centers vertically */
  flex: 1;
}

.lesson-video video {
  width: 60%;
  border-radius: 8px;
}


/* Mobile layout */
@media (max-width: 768px) {

  .lesson-video {
    padding-top:1rem;
    order: 2; /* Video second */
  }
}

@media (max-width:480px){
  .content-writing-quiz{
    padding:2rem .5rem;
  }

  .content-section-quiz{
    padding:2rem 1rem;
  }

}

.plan-nav button.active {
  background: var(--primary, #c7a008);
  color: black;
  transition: background 0.3s, color 0.3s;
}

.content-paragraph-bottom p{
  margin-bottom:2rem;
  color:black;
}

.special:hover{
  color: var(--primary);
}

/* =========================
   PROGRAM ROW BASE
========================= */

.program-row {
  background: #000;
  color: #fff;
  padding: 4rem;
}

@media (max-width:480px){
  .program-row{
    padding:2rem 1rem;
  }
}

.program-container {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

/* =========================
   TEXT SIDE
========================= */

.program-label {
  color: #c6a84a;
  letter-spacing: 2px;
  font-size: 0.75rem;
  margin-bottom: 0.5rem;
}

.program-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  color: #c6a84a;
  margin-bottom: 1.5rem;
}

.program-description {
  color: #cfcfcf;
  line-height: 1.7;
  margin-bottom: 2rem;
  max-width: 550px;
}

/* =========================
   SKILLS
========================= */

.skills-title {
  color: #c6a84a;
  font-size: 0.95rem;
  text-transform: uppercase;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 12px;
}

.skills-title::before {
  content: "";
  width: 40px;
  height: 2px;
  background: #c6a84a;
}

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

.skills-grid ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.skills-grid li {
  color: #ddd;
  margin-bottom: 0.75rem;
  padding-left: 18px;
  position: relative;
}

.skills-grid li::before {
  content: "•";
  color: #c6a84a;
  position: absolute;
  left: 0;
}

/* =========================
   MEDIA SIDE
========================= */

.program-media {
  position: relative;
  width: 100%;
}

.program-media img {
  width: 100%;
  border-radius: 16px;
  display: block;
}

/* =========================
   TABLET
========================= */

@media (min-width: 768px) {
  .skills-grid {
    flex-direction: row;
    gap: 3rem;
  }
}

/* =========================
   DESKTOP LAYOUT
========================= */

@media (min-width: 1024px) {

  .program-container {
    flex-direction: row;
    align-items: center;
    gap: 4rem;
  }

  .program-content,
  .program-media {
    flex: 1;
  }

  /* Automatically alternate every other row */
  .program-row:nth-child(even) .program-container {
    flex-direction: row-reverse;
  }
}

/* WAITLIST CARD */
.waitlist-card {
  padding: 2rem 1.5rem;
  display: flex;
  justify-content: center;
}

.waitlist-inner {
  background: var(--primary);
  border-radius: 20px;
  padding: 3rem 2.5rem;
  max-width: 1400px;
  width: 100%;
  text-align: center;
}

.waitlist-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(0, 0, 0, 0.15);
  border: 1px solid rgba(0, 0, 0, 0.25);
  border-radius: 50px;
  padding: 0.4rem 1rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #000;
  margin-bottom: 1.25rem;
}

.waitlist-title {
  font-size: clamp(1.75rem, 5vw, 2.75rem);
  font-weight: 900;
  color: #000;
  margin: 0 0 1.25rem 0;
}

.waitlist-description {
  color: black;
  font-size: clamp(0.95rem, 2vw, 1.1rem);
  line-height: 1.7;
  max-width: 650px;
  margin: 0 auto 2rem auto;
}

.waitlist-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.waitlist-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: #000;
  color: #fff;
  padding: 1rem 2rem;
  border-radius: 50px;
  font-weight: 700;
  font-size: 1rem;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}

.btn-secondary.waitlist{
  padding:1rem;
  background:black;
  color:var(--white);
}

.btn-secondary.waitlist:hover{
  background:none;
  color:black;
}

.waitlist-btn:hover {
  background: var(--primary);
  color: #000;
}

.waitlist-response {
  color: rgba(0, 0, 0, 0.7);
  font-size: 0.9rem;
}

@media (max-width: 480px) {
  .waitlist-inner {
    padding: 2rem 1.25rem;
  }

  .waitlist-cta {
    flex-direction: column;
    gap: 0.75rem;
  }

  .waitlist-response {
    font-size: 0.8rem;
  }
}