/**
 * HOP Premium Hero — wider glass cards + dominant ribbon timeline
 */

.visualizer-svg-wrap.desktop-only-visualizer {
  overflow: visible !important;
}

.visualizer-svg-wrap .floating-learning-card.hop-flc-1,
.visualizer-svg-wrap .floating-learning-card.hop-flc-2,
.visualizer-svg-wrap .floating-learning-card.hop-flc-3 {
  transform: translateY(-50%);
  pointer-events: auto;
  width: calc(248px * var(--orbit-scale, 1)) !important; /* +27% vs 195px, equal width */
  max-width: calc(248px * var(--orbit-scale, 1)) !important;
  min-height: 0 !important;
  height: auto !important;
  box-sizing: border-box !important;
}

/* Alternating L/R timeline — equal gap from ribbon (mirrored inset) */
.hop-flc-1 {
  top: 20%;   /* node y≈200 */
  right: 3%;
  left: auto;
}

.hop-flc-2 {
  top: 45%;   /* node y≈450 */
  left: 5%;
  right: auto;
}

.hop-flc-3 {
  top: 70%;   /* node y≈700 */
  right: 3%;
  left: auto;
}

.visualizer-svg-wrap .hop-flc-1.float-anim-1 {
  animation: hopFlcFloat1 8.5s ease-in-out infinite alternate;
}
.visualizer-svg-wrap .hop-flc-2.float-anim-2 {
  animation: hopFlcFloat2 10.2s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.visualizer-svg-wrap .hop-flc-3.float-anim-3 {
  animation: hopFlcFloat3 7.8s ease-in-out infinite alternate;
  animation-delay: -5.5s;
}

@keyframes hopFlcFloat1 {
  0%   { transform: translate3d(0, -50%, 0) rotate(-1.2deg); }
  100% { transform: translate3d(0, calc(-50% - 5px), 0) rotate(0.8deg); }
}
@keyframes hopFlcFloat2 {
  0%   { transform: translate3d(0, -50%, 0) rotate(0.8deg); }
  100% { transform: translate3d(0, calc(-50% - 6px), 0) rotate(-0.8deg); }
}
@keyframes hopFlcFloat3 {
  0%   { transform: translate3d(0, -50%, 0) rotate(-0.6deg); }
  100% { transform: translate3d(0, calc(-50% - 4px), 0) rotate(1deg); }
}

.visualizer-svg-wrap .floating-learning-card.hop-flc-1:hover,
.visualizer-svg-wrap .floating-learning-card.hop-flc-2:hover,
.visualizer-svg-wrap .floating-learning-card.hop-flc-3:hover {
  transform: translate3d(0, calc(-50% - 8px), 0) scale(1.02) !important;
  z-index: 10;
}

/* Kill interactive white glare / streaks / overlay bands — keep orange/blue ambient blobs */
.hero-light-streaks,
.light-streak,
.orbital-reflections,
.reflection-glare,
.hero-ambient-glow,
.ribbon-cursor-spotlight,
.ribbon-cursor-glow,
.hero-cursor-glow,
[data-ribbon-spotlight],
.hero-bg-overlay,
.hero-glass-strip,
.hero-gradient-panel {
  display: none !important;
  animation: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Static orange/blue ambient blobs — circular radial only */
.visualizer-glow-blob {
  display: block !important;
  visibility: visible !important;
  pointer-events: none !important;
  animation: none !important;
  border-radius: 50% !important;
}

.visualizer-glow-blob.vgb-blue {
  background: radial-gradient(circle, rgba(0, 112, 243, 0.55) 0%, rgba(0, 112, 243, 0) 70%) !important;
  background-image: radial-gradient(circle, rgba(0, 112, 243, 0.55) 0%, rgba(0, 112, 243, 0) 70%) !important;
}

.visualizer-glow-blob.vgb-orange {
  background: radial-gradient(circle, rgba(255, 92, 0, 0.5) 0%, rgba(255, 92, 0, 0) 70%) !important;
  background-image: radial-gradient(circle, rgba(255, 92, 0, 0.5) 0%, rgba(255, 92, 0, 0) 70%) !important;
}

/* Premium Glassmorphism Cards */
.floating-learning-card,
.floating-learning-card.card-depth-back,
.floating-learning-card.card-depth-front {
  background: transparent !important;
  z-index: 5 !important;
}

.floating-learning-card::after {
  content: none !important;
  display: none !important;
}

/* Dominant ribbon (+~14% stroke vs 74) */
.desktop-only-visualizer .orbit-glass-ribbon {
  stroke-width: 84 !important;
}

.desktop-only-visualizer use[href="#bezierMainPath"] {
  stroke-width: 76 !important;
}

/* Solid black hero with refined breathing top space below fixed navbar */
.hero-banner-2,
[data-theme="dark"] .hero-banner-2,
[data-theme="light"] .hero-banner-2 {
  background: #000000 !important;
  background-color: #000000 !important;
  background-image: none !important;
  padding-top: 68px !important;
  padding-bottom: 50px !important;
}

.hero-banner-2 .text_block {
  padding: 24px 0 30px !important;
}

@media (max-width: 1399px) {
  .hero-banner-2 {
    padding-top: 60px !important;
    padding-bottom: 45px !important;
  }
  .hero-banner-2 .text_block {
    padding: 20px 0 24px !important;
  }
}

@media (max-width: 1199px) {
  .hero-banner-2 {
    padding-top: 50px !important;
    padding-bottom: 40px !important;
  }
  .hero-banner-2 .text_block {
    padding: 16px 0 20px !important;
  }
}

@media (max-width: 991px) {
  .hero-banner-2 {
    padding-top: 35px !important;
    padding-bottom: 35px !important;
  }
  .hero-banner-2 .text_block {
    padding: 10px 0 16px !important;
  }
}

@media (max-width: 575px) {
  .hero-banner-2 {
    padding-top: 24px !important;
    padding-bottom: 25px !important;
  }
  .hero-banner-2 .text_block {
    padding: 0 0 12px !important;
  }
}

.hero-banner-2::before,
.hero-banner-2::after,
.premium-hero-visualizer::before,
.premium-hero-visualizer::after,
.visualizer-svg-wrap::before,
.visualizer-svg-wrap::after,
.col-xl-6.col-lg-5::before,
.col-xl-6.col-lg-5::after {
  content: none !important;
  display: none !important;
  background: none !important;
  box-shadow: none !important;
}

.premium-hero-visualizer,
.visualizer-svg-wrap {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

.premium-hero-visualizer svg filter,
.visualizer-svg filter {
  display: none !important;
}

.orbit-glass-ribbon,
.visualizer-svg {
  pointer-events: none !important;
}

body.hop-hide-cursor-on-ribbon .custom-cursor__cursor,
left: auto;
}

.hop-flc-2 {
  top: 45%;   /* node y≈450 */
  left: 5%;
  right: auto;
}

.hop-flc-3 {
  top: 70%;   /* node y≈700 */
  right: 3%;
  left: auto;
}

.visualizer-svg-wrap .hop-flc-1.float-anim-1 {
  animation: hopFlcFloat1 8.5s ease-in-out infinite alternate;
}
.visualizer-svg-wrap .hop-flc-2.float-anim-2 {
  animation: hopFlcFloat2 10.2s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.visualizer-svg-wrap .hop-flc-3.float-anim-3 {
  animation: hopFlcFloat3 7.8s ease-in-out infinite alternate;
  animation-delay: -5.5s;
}

@keyframes hopFlcFloat1 {
  0%   { transform: translate3d(0, -50%, 0) rotate(-1.2deg); }
  100% { transform: translate3d(0, calc(-50% - 5px), 0) rotate(0.8deg); }
}
@keyframes hopFlcFloat2 {
  0%   { transform: translate3d(0, -50%, 0) rotate(0.8deg); }
  100% { transform: translate3d(0, calc(-50% - 6px), 0) rotate(-0.8deg); }
}
@keyframes hopFlcFloat3 {
  0%   { transform: translate3d(0, -50%, 0) rotate(-0.6deg); }
  100% { transform: translate3d(0, calc(-50% - 4px), 0) rotate(1deg); }
}

.visualizer-svg-wrap .floating-learning-card.hop-flc-1:hover,
.visualizer-svg-wrap .floating-learning-card.hop-flc-2:hover,
.visualizer-svg-wrap .floating-learning-card.hop-flc-3:hover {
  transform: translate3d(0, calc(-50% - 8px), 0) scale(1.02) !important;
  z-index: 10;
}

/* Kill interactive white glare / streaks / overlay bands — keep orange/blue ambient blobs */
.hero-light-streaks,
.light-streak,
.orbital-reflections,
.reflection-glare,
.hero-ambient-glow,
.ribbon-cursor-spotlight,
.ribbon-cursor-glow,
.hero-cursor-glow,
[data-ribbon-spotlight],
.hero-bg-overlay,
.hero-glass-strip,
.hero-gradient-panel {
  display: none !important;
  animation: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Static orange/blue ambient blobs — circular radial only */
.visualizer-glow-blob {
  display: block !important;
  visibility: visible !important;
  pointer-events: none !important;
  animation: none !important;
  border-radius: 50% !important;
}

.visualizer-glow-blob.vgb-blue {
  background: radial-gradient(circle, rgba(0, 112, 243, 0.55) 0%, rgba(0, 112, 243, 0) 70%) !important;
  background-image: radial-gradient(circle, rgba(0, 112, 243, 0.55) 0%, rgba(0, 112, 243, 0) 70%) !important;
}

.visualizer-glow-blob.vgb-orange {
  background: radial-gradient(circle, rgba(255, 92, 0, 0.5) 0%, rgba(255, 92, 0, 0) 70%) !important;
  background-image: radial-gradient(circle, rgba(255, 92, 0, 0.5) 0%, rgba(255, 92, 0, 0) 70%) !important;
}

/* Premium Glassmorphism Cards */
.floating-learning-card,
.floating-learning-card.card-depth-back,
.floating-learning-card.card-depth-front {
  background: transparent !important;
  z-index: 5 !important;
}

.floating-learning-card::after {
  content: none !important;
  display: none !important;
}

/* Dominant ribbon (+~14% stroke vs 74) */
.desktop-only-visualizer .orbit-glass-ribbon {
  stroke-width: 84 !important;
}

.desktop-only-visualizer use[href="#bezierMainPath"] {
  stroke-width: 76 !important;
}

/* Solid black hero with refined breathing top space below fixed navbar */
/* Solid black hero with generous top padding to clear fixed top navbar line */
.hero-banner-2,
[data-theme="dark"] .hero-banner-2,
[data-theme="light"] .hero-banner-2 {
  background: #000000 !important;
  background-color: #000000 !important;
  background-image: none !important;
  padding-top: 130px !important;
  padding-bottom: 50px !important;
}

.hero-banner-2 .text_block {
  padding: 10px 0 20px !important;
}

@media (max-width: 1399px) {
  .hero-banner-2 {
    padding-top: 125px !important;
    padding-bottom: 45px !important;
  }
}

@media (max-width: 1199px) {
  .hero-banner-2 {
    padding-top: 120px !important;
    padding-bottom: 40px !important;
  }
}

@media (max-width: 991px) {
  .hero-banner-2 {
    padding-top: 140px !important;
    padding-bottom: 40px !important;
  }
}

@media (max-width: 575px) {
  .hero-banner-2 {
    padding-top: 130px !important;
    padding-bottom: 30px !important;
  }
}

.hero-banner-2::before,
.hero-banner-2::after,
.premium-hero-visualizer::before,
.premium-hero-visualizer::after,
.visualizer-svg-wrap::before,
.visualizer-svg-wrap::after,
.col-xl-6.col-lg-5::before,
.col-xl-6.col-lg-5::after {
  content: none !important;
  display: none !important;
  background: none !important;
  box-shadow: none !important;
}

.premium-hero-visualizer,
.visualizer-svg-wrap {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

.premium-hero-visualizer svg filter,
.visualizer-svg filter {
  display: none !important;
}

.orbit-glass-ribbon,
.visualizer-svg {
  pointer-events: none !important;
}

body.hop-hide-cursor-on-ribbon .custom-cursor__cursor,
body.hop-hide-cursor-on-ribbon .custom-cursor__cursor-two {
  opacity: 0 !important;
  visibility: hidden !important;
}

@media (min-width: 1200px) {
  .visualizer-svg-wrap.desktop-only-visualizer {
    right: -140px !important;
  }
  .hop-flc-1 { top: 20%; right: 2%; left: auto; }
  .hop-flc-2 { top: 45%; left: 4%; right: auto; }
  .hop-flc-3 { top: 70%; right: 2%; left: auto; }
}

@media (min-width: 1024px) and (max-width: 1199px) {
  .visualizer-svg-wrap.desktop-only-visualizer {
    right: -120px !important;
  }
  .hop-flc-1 { top: 20%; right: 0; left: auto; }
  .hop-flc-2 { top: 45%; left: 2%; right: auto; }
  .hop-flc-3 { top: 70%; right: 0; left: auto; }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .hop-flc-1 { top: 18%; right: 0; left: auto; }
  .hop-flc-2 { top: 45%; left: 0; right: auto; }
  .hop-flc-3 { top: 72%; right: 0; left: auto; }
}

@media (max-width: 767px) {
  .tablet-only-visualizer {
    display: none !important;
  }

  .premium-hero-visualizer {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin-top: 28px;
  }

  .visualizer-svg-wrap.desktop-only-visualizer {
    display: grid !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    right: auto !important;
    animation: none !important;
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

/* ==========================================================================
   Hero Video Showcase Container - BALANCED PREMIUM 3D CARD DECK */

/* 1. Parent Container & Column Grid Ratio (Left 48% / Right 52%) */
.hero-banner-2 .container {
  max-width: 1320px !important;
  width: 100% !important;
}

@media (min-width: 992px) {
  .hero-banner-2 .row > div:first-child {
    flex: 0 0 48% !important;
    max-width: 48% !important;
    width: 48% !important;
  }
  .hero-banner-2 .row > div:last-child {
    flex: 0 0 52% !important;
    max-width: 52% !important;
    width: 52% !important;
  }
}

/* Hero Left Content & Premium CTA Button Spacing Alignment */
.hero-banner-2 .hero-description {
  margin-bottom: 36px !important;
}

.hero-banner-2 .hero-cta-group {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 18px !important;
  margin-top: 36px !important;
  margin-bottom: 0 !important;
  position: relative !important;
  z-index: 10 !important;
  width: 100% !important;
  max-width: 100% !important;
}

.hero-banner-2 .hero-cta-btn-primary,
.hero-banner-2 .hero-cta-btn-secondary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 54px !important;
  min-height: 54px !important;
  padding: 0 28px !important;
  border-radius: 12px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 54px !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  margin: 0 !important;
}

@media (max-width: 575px) {
  .hero-banner-2 .hero-cta-group {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 14px !important;
  }
  .hero-banner-2 .hero-cta-btn-primary,
  .hero-banner-2 .hero-cta-btn-secondary {
    width: 100% !important;
  }
}

.hero-video-showcase-container {
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 0;
  z-index: 3;
  padding: 20px 200px 0px 0px;
  box-sizing: border-box;
  overflow: visible;
  display: flex;
  justify-content: flex-end;
}



/* Background Ambient Glow Blobs - Tighter & Refined (~40% reduced spread/blur) */
.hero-video-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(55px);
  pointer-events: none;
  z-index: 1;
  transition: all 0.6s ease;
}

.hero-video-glow.glow-orange {
  top: -20px;
  right: 18%;
  width: 440px;
  height: 440px;
  background: radial-gradient(circle, rgba(242, 101, 34, 0.38) 0%, rgba(242, 101, 34, 0) 70%);
  animation: heroOrangeGlowPulse 6s ease-in-out infinite alternate;
}

.hero-video-glow.glow-blue {
  bottom: -20px;
  right: -20px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(56, 189, 248, 0.20) 0%, rgba(56, 189, 248, 0) 70%);
  animation: heroBlueGlowPulse 7s ease-in-out infinite alternate;
}

@keyframes heroOrangeGlowPulse {
  0% { transform: scale(1); opacity: 0.85; }
  100% { transform: scale(1.06); opacity: 1; }
}

@keyframes heroBlueGlowPulse {
  0% { transform: scale(1); opacity: 0.7; }
  100% { transform: scale(1.06); opacity: 0.95; }
}

/* 3D Stage Wrapper - 880px max-width (-9% size reduction), 16/9 aspect ratio for balanced card presence */
.hero-3d-stage {
  position: relative;
  width: 100%;
  max-width: 880px;
  aspect-ratio: 16 / 9;
  margin-left: auto;
  margin-right: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  perspective: 1800px;
  transform-style: preserve-3d;
  z-index: 3;
}

/* Individual 3D Glass Card Shell with Clean Border */
.hero-3d-card {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  border-radius: 24px;
  background: #0B1120;
  border: 2.5px solid #F26522;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  padding: 4px;
  overflow: hidden;
  transform-style: preserve-3d;
  transform-origin: left center;
  transition: transform 1400ms cubic-bezier(0.22, 1, 0.36, 1),
              opacity 1400ms cubic-bezier(0.22, 1, 0.36, 1),
              filter 1400ms cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 1400ms cubic-bezier(0.22, 1, 0.36, 1),
              border-color 1400ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform, opacity, filter;
  cursor: pointer;
}

.hero-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
}

/* FRONT CARD (Pos 0) - translate3d(0, 0, 0), scale(1), 2.5px orange border */
.hero-3d-card.pos-front {
  transform: translate3d(0, 0, 0) scale(1) rotateY(0deg) rotateZ(0deg);
  opacity: 1;
  filter: blur(0px) brightness(1);
  z-index: 30;
  border: 2.5px solid #F26522;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.4);
}

.hero-3d-card.pos-front:hover {
  transform: translate3d(0, -5px, 0) scale(1.01) rotateY(0deg) rotateZ(0deg);
  border-color: #FF7A38;
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.45);
}

/* MIDDLE CARD (Pos 1) - translate3d(100px, 25px, -40px), scale(0.95) */
.hero-3d-card.pos-middle {
  transform: translate3d(100px, 25px, -40px) scale(0.95) rotateY(0deg) rotateZ(0deg);
  opacity: 0.88;
  filter: blur(0px) brightness(0.9);
  z-index: 20;
  border: 2px solid rgba(242, 101, 34, 0.88);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
}

/* BACK CARD (Pos 2) - translate3d(200px, 50px, -80px), scale(0.90) */
.hero-3d-card.pos-back {
  transform: translate3d(200px, 50px, -80px) scale(0.90) rotateY(0deg) rotateZ(0deg);
  opacity: 0.75;
  filter: blur(0px) brightness(0.8);
  z-index: 10;
  border: 2px solid rgba(242, 101, 34, 0.78);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
}

/* INDEPENDENT OUTGOING ANIMATION LAYER (z-index: 999) - REAL PHYSICAL PICK-AND-PLACE U-ARCDOWN MOTION */
.hero-3d-card.is-swapping-back {
  z-index: 999 !important;
  pointer-events: none !important;
  animation: physicalPickAndPlace 1400ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes physicalPickAndPlace {
  0% {
    transform: translate3d(0px, 0px, 0px) scale(1) rotateY(0deg) rotateZ(0deg);
    opacity: 1;
    z-index: 999;
    filter: blur(0px) brightness(1);
  }
  18% {
    /* Step 1: Lift slightly (-10px Y) */
    transform: translate3d(0px, -10px, 30px) scale(1.008) rotateY(-2deg) rotateZ(-2deg);
    opacity: 0.99;
    z-index: 999;
    filter: blur(0px) brightness(1.04);
  }
  45% {
    /* Step 2: Move DOWNWARD completely below the deck (+140px Y drop directly underneath!) */
    transform: translate3d(10px, 140px, 40px) scale(1.01) rotateY(4deg) rotateZ(-4deg);
    opacity: 0.95;
    z-index: 999;
    filter: blur(0px) brightness(1.05);
  }
  72% {
    /* Step 3: Travel UNDER stack & curve BEHIND (translateX +150px, translateY +110px, z-index drops to 5) */
    transform: translate3d(150px, 110px, -30px) scale(0.94) rotateY(3deg) rotateZ(-2deg);
    opacity: 0.8;
    z-index: 5;
    filter: blur(0px) brightness(0.82);
  }
  100% {
    /* Step 4: Rise & settle softly into Back Card position (x200px, y50px, -80px Z, scale .90) */
    transform: translate3d(200px, 50px, -80px) scale(0.90) rotateY(0deg) rotateZ(0deg);
    opacity: 0.75;
    z-index: 10;
    filter: blur(0px) brightness(0.8);
  }
}

/* Show Mute Buttons on ALL Cards as seen in Mockup */
.hero-video-mute-circle {
  opacity: 1 !important;
  pointer-events: auto !important;
  transition: opacity 400ms ease;
}

/* Hide LIVE CLASSROOM Badge on Back Cards */
.hero-3d-card.pos-middle .hero-video-badge-top,
.hero-3d-card.pos-back .hero-video-badge-top,
.hero-3d-card.is-swapping-back .hero-video-badge-top {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 400ms ease;
}

.hero-3d-card.pos-front:not(.is-swapping-back) .hero-video-badge-top {
  opacity: 1 !important;
  pointer-events: auto !important;
  transition: opacity 400ms ease;
}

/* Completely Hide Bottom Feature Drawer to match Mockup (100% pure video display) */
.hero-card-bottom-feature {
  display: none !important;
}

.hero-card-bottom-feature .feature-title {
  color: #F9FAFB;
  font-size: 11px;
  font-weight: 700;
  margin-bottom: 1px;
}

.hero-card-bottom-feature .feature-sub {
  color: #9CA3AF;
  font-size: 10px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Video Element inside 3D Cards */
.hero-video-element {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #0B1120 !important;
  display: block !important;
  z-index: 1 !important;
  border-radius: 14px;
}

/* Gradient Overlay */
.hero-video-overlay {
  position: absolute;
  inset: 0;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, transparent 35%, transparent 65%, rgba(0, 0, 0, 0.3) 100%);
  pointer-events: none;
  z-index: 2;
}

/* Premium Glass LIVE CLASSROOM Status Badge Overlay - z-index: 10 */
.hero-video-badge-top {
  position: absolute;
  top: 20px;
  left: 20px;
  height: 36px;
  padding: 0 14px;
  background: rgba(15, 23, 42, 0.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  z-index: 10 !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

.live-indicator-dot {
  width: 8px;
  height: 8px;
  background-color: #22C55E;
  border-radius: 50%;
  box-shadow: 0 0 10px #22C55E;
  animation: liveDotPulse 2s infinite;
}

@keyframes liveDotPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.85); }
}

.hero-video-badge-top .badge-text {
  color: #F9FAFB;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}

/* Premium Glass Speaker / Mute Button - z-index: 10 */
.hero-video-mute-circle {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  cursor: pointer;
  z-index: 10 !important;
  pointer-events: auto !important;
  user-select: none;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

.hero-video-mute-circle * {
  pointer-events: none !important;
}

.hero-video-mute-circle:hover {
  background: #F26522;
  border-color: #F26522;
  transform: scale(1.1) translateY(-2px);
  box-shadow: 0 0 25px rgba(242, 101, 34, 0.55);
}

/* ==========================================================================
   Comprehensive Hero Responsiveness Across All Devices (320px to 1920px+)
   ========================================================================== */

/* 1. Large Laptop (1441px - 1600px) */
@media (min-width: 1441px) and (max-width: 1600px) {
  .hero-3d-stage {
    max-width: 820px !important;
  }
  .hero-3d-card.pos-middle {
    transform: translate3d(90px, 22px, -35px) scale(0.95) rotateY(0deg) rotateZ(0deg);
  }
  .hero-3d-card.pos-back {
    transform: translate3d(180px, 45px, -70px) scale(0.90) rotateY(0deg) rotateZ(0deg);
  }
}

/* 2. Standard Laptop (1367px - 1440px) */
@media (min-width: 1367px) and (max-width: 1440px) {
  .hero-video-showcase-container {
    padding: 20px 170px 60px 0px !important;
  }
  .hero-3d-stage {
    max-width: 780px !important;
  }
  .hero-3d-card.pos-middle {
    transform: translate3d(85px, 21px, -35px) scale(0.95) rotateY(0deg) rotateZ(0deg);
  }
  .hero-3d-card.pos-back {
    transform: translate3d(170px, 42px, -70px) scale(0.90) rotateY(0deg) rotateZ(0deg);
  }
}

/* 3. Small Laptop (1200px - 1366px) */
@media (min-width: 1200px) and (max-width: 1366px) {
  .hero-video-showcase-container {
    padding: 20px 140px 50px 0px !important;
  }
  .hero-3d-stage {
    max-width: 730px !important;
  }
  .hero-banner-2 .hero-main-title {
    font-size: clamp(32px, 3.6vw, 48px) !important;
  }
  .hero-3d-card.pos-middle {
    transform: translate3d(75px, 19px, -30px) scale(0.95) rotateY(0deg) rotateZ(0deg);
  }
  .hero-3d-card.pos-back {
    transform: translate3d(150px, 38px, -60px) scale(0.90) rotateY(0deg) rotateZ(0deg);
  }
}

/* 4. Tablet Landscape (992px - 1199px) */
@media (min-width: 992px) and (max-width: 1199px) {
  .hero-video-showcase-container {
    padding: 20px 110px 40px 0px !important;
  }
  .hero-3d-stage {
    max-width: 660px !important;
  }
  .hero-banner-2 .hero-main-title {
    font-size: clamp(30px, 3.4vw, 42px) !important;
  }
  .hero-banner-2 .hero-description {
    font-size: 15px !important;
    margin-bottom: 28px !important;
  }
  .hero-banner-2 .hero-cta-group {
    gap: 14px !important;
    margin-top: 28px !important;
  }
  .hero-3d-card.pos-middle {
    transform: translate3d(60px, 16px, -25px) scale(0.95) rotateY(0deg) rotateZ(0deg);
  }
  .hero-3d-card.pos-back {
    transform: translate3d(120px, 32px, -50px) scale(0.90) rotateY(0deg) rotateZ(0deg);
  }
}

/* ==========================================================================
   TABLET & MOBILE (991px and below) - UNIFIED SINGLE-COLUMN VERTICAL LAYOUT
   ========================================================================== */
@media (max-width: 991px) {
  /* Hero Section Padding (110px top spacing to clear fixed top navbar) */
  .hero-banner-2 {
    padding-top: 110px !important;
    padding-bottom: 20px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    overflow: visible !important;
  }

  .hop-features-premium {
    margin-top: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: #000000 !important;
  }

  /* 1. Parent Row Container -> Single-Column Flex Stack */
  .hero-banner-2 .row {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
  }

  /* 2. Reset Both Column Children to 100% Width */
  .hero-banner-2 .row > div,
  .hero-banner-2 .row > div:first-child,
  .hero-banner-2 .row > div:last-child,
  .hero-banner-2 .col-xl-6,
  .hero-banner-2 .col-lg-6 {
    flex: 0 0 100% !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
    flex-basis: 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
    float: none !important;
    position: relative !important;
    right: auto !important;
    left: auto !important;
  }

  /* 3. Hero Text Section */
  .hero-banner-2 .text_block {
    width: 100% !important;
    max-width: 700px !important;
    margin: 0 auto !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    padding: 0 16px !important;
    box-sizing: border-box !important;
  }

  .hero-banner-2 .hero-badge-pill {
    align-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
    margin-bottom: 20px !important;
  }

  .hero-banner-2 .hero-main-title {
    text-align: center !important;
    width: 100% !important;
    max-width: 700px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(26px, 5.5vw, 42px) !important;
    line-height: 1.15 !important;
    margin-bottom: 20px !important;
  }

  .hero-banner-2 .hero-description {
    text-align: center !important;
    width: 100% !important;
    max-width: 660px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(14px, 2.2vw, 16px) !important;
    line-height: 1.65 !important;
    padding: 0 16px !important;
    box-sizing: border-box !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    color: rgba(255, 255, 255, 0.88) !important;
  }

  /* 4. CTA Buttons Section */
  .hero-banner-2 .btn-block.hero-cta-group,
  .hero-banner-2 .hero-cta-group {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 16px !important;
    width: 100% !important;
    max-width: 700px !important;
    margin: 28px auto 0 auto !important;
  }

  .hero-banner-2 .hero-cta-btn-primary,
  .hero-banner-2 .hero-cta-btn-secondary {
    width: auto !important;
    max-width: 280px !important;
    height: 52px !important;
    min-height: 52px !important;
    line-height: 52px !important;
    padding: 0 24px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
  }

  /* 5. Hero Video Container */
  .hero-video-showcase-container {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 40px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    overflow: visible !important;
    right: auto !important;
    left: auto !important;
  }

  /* 6. 3D Stage Wrapper */
  .hero-3d-stage {
    width: min(92vw, 620px) !important;
    max-width: 620px !important;
    height: auto !important;
    margin: 0 auto !important;
    transform: none !important;
    justify-content: center !important;
    right: auto !important;
    left: auto !important;
  }

  /* 7. Card Resting Offsets (Seamless scaling across tablet & mobile) */
  .hero-3d-card.pos-middle {
    transform: translate3d(24px, 6px, -12px) scale(0.95) rotateY(0deg) rotateZ(0deg) !important;
    opacity: 0.85 !important;
  }

  .hero-3d-card.pos-back {
    transform: translate3d(48px, 12px, -24px) scale(0.90) rotateY(0deg) rotateZ(0deg) !important;
    opacity: 0.72 !important;
  }

  /* Controls Overlay Adjustments */
  .hero-video-badge-top {
    top: 10px !important;
    left: 10px !important;
    height: 30px !important;
    padding: 0 10px !important;
  }

  .hero-video-badge-top .badge-text {
    font-size: 10px !important;
  }

  .hero-video-mute-circle {
    top: 10px !important;
    right: 10px !important;
    width: 34px !important;
    height: 34px !important;
    font-size: 11px !important;
  }
}

@media (max-width: 575px) {
  .hero-banner-2 {
    padding-top: 110px !important;
    padding-bottom: 15px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .hero-badge-pill {
    max-width: 95% !important;
    padding: 6px 12px !important;
    box-sizing: border-box !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .hero-badge-pill .badge-text {
    font-size: clamp(9px, 2.7vw, 10.5px) !important;
    white-space: normal !important;
    word-break: normal !important;
    text-align: center !important;
    line-height: 1.35 !important;
    letter-spacing: 0.3px !important;
  }

  .hero-banner-2 .hero-main-title {
    font-size: clamp(22px, 6.2vw, 28px) !important;
    line-height: 1.18 !important;
    margin-bottom: 16px !important;
  }

  .hero-banner-2 .hero-description {
    font-size: clamp(13px, 3.6vw, 14.5px) !important;
    line-height: 1.6 !important;
    padding: 0 6px !important;
    margin-bottom: 24px !important;
  }

  .hero-banner-2 .hero-cta-group {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 12px !important;
    margin-top: 24px !important;
  }

  .hero-banner-2 .hero-cta-btn-primary,
  .hero-banner-2 .hero-cta-btn-secondary {
    width: 100% !important;
    max-width: 100% !important;
    height: 48px !important;
    line-height: 48px !important;
    font-size: 14px !important;
  }

  .hero-video-showcase-container {
    margin-top: 32px !important;
  }

  .hero-3d-stage {
    width: min(88vw, 420px) !important;
    max-width: 420px !important;
    margin: 0 auto !important;
  }

  .hero-3d-card.pos-middle,
  .hero-3d-card.pos-back {
    display: none !important;
  }

  .hero-video-badge-top {
    top: 8px !important;
    left: 8px !important;
    height: 25px !important;
    padding: 0 8px !important;
  }

  .hero-video-badge-top .badge-text {
    font-size: 9px !important;
    letter-spacing: 0.2px !important;
  }

  .hero-video-mute-circle {
    top: 8px !important;
    right: 8px !important;
    width: 28px !important;
    height: 28px !important;
    font-size: 10px !important;
  }
}
/* Mobile Main Navbar Layout Fix - Keep Logo, CTA & Icons Fully Visible on Small Screens */
@media (max-width: 767px) {
  .main-menu {
    padding: 6px 10px !important;
  }

  .main-menu .container {
    padding-left: 6px !important;
    padding-right: 6px !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  .main-menu .main-menu__block {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
  }

  .main-menu .main-menu__left {
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
  }

  .main-menu .main-menu__logo {
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
  }

  .main-menu .main-menu__logo img {
    width: 50px !important;
    max-width: 50px !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
  }

  .main-menu .main-menu__right {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    flex-shrink: 0 !important;
  }

  .main-menu .main-menu__right .educate-btn.sm {
    height: 32px !important;
    min-height: 32px !important;
    line-height: 32px !important;
    padding: 0 10px !important;
    font-size: 11px !important;
    border-radius: 20px !important;
    white-space: nowrap !important;
  }

  .main-menu-icons {
    gap: 8px !important;
  }

  .main-menu-icons a {
    margin-right: 0 !important;
  }
}

@media (max-width: 380px) {
  .main-menu .main-menu__logo img {
    width: 44px !important;
    max-width: 44px !important;
  }

  .main-menu .main-menu__right .educate-btn.sm {
    padding: 0 8px !important;
    font-size: 10.5px !important;
  }
}
