@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root {
  --primary-green: #22C55E;
  --secondary-green: #16A34A;
  --container-width: clamp(1200px, 92vw, 1720px);
}

/* Base Reset */
html {
  scroll-behavior: smooth;
}

html, body {
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Inter', sans-serif;
  overflow-x: hidden;
}

/* Fluid Container Utility */
.fluid-container {
  width: 92%;
  max-width: var(--container-width, 1720px);
  margin-left: auto;
  margin-right: auto;
}

.font-space-grotesk {
  font-family: 'Space Grotesk', sans-serif;
}

.font-orbitron {
  font-family: 'Orbitron', sans-serif;
}

/* ── Typography scaling ── */

/* ── Patterns & Backgrounds ── */
.pattern-stripes {
  background: repeating-linear-gradient(45deg, #FACC15, #FACC15 4px, transparent 4px, transparent 12px);
}

.radar-overlay {
  opacity: 0.13;
}
.pattern-dots {
  background-image: radial-gradient(#22C55E 1.5px, transparent 1.5px);
  background-size: 12px 12px;
}

/* ── SVG Background Opacity ── */
.svg-bg-faint { opacity: 0.045; }
.opacity-10 { opacity: 0.10; }

/* ── Logo carousel ── */
@keyframes logos-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.logos-track {
  display: flex;
  width: max-content;
  align-items: center;
  gap: 72px;
  padding: 12px 0;
  animation: logos-scroll 36s linear infinite;
}
.logos-track:hover { animation-play-state: paused; }

.brand-logo {
  height: 38px;
  width: auto;
  flex-shrink: 0;
  object-fit: contain;
  filter: none;
  opacity: 1;
  transition: transform 0.3s ease;
  cursor: default;
  display: block;
}
@media (min-width: 768px) { .brand-logo { height: 46px; } }
.brand-logo:hover { transform: scale(1.08); }

/* L&T custom badge */
.lt-badge {
  height: 38px;
  width: auto;
  flex-shrink: 0;
  cursor: default;
  color: #0072BC;
  opacity: 1;
  transition: transform 0.3s ease;
}
@media (min-width: 768px) { .lt-badge { height: 44px; } }
.lt-badge:hover { transform: scale(1.08); }

/* ── Decorative Connection System ── */
.deco-dots {
  background-image: radial-gradient(circle, rgba(34,197,94,0.18) 1px, transparent 1px);
  background-size: 22px 22px;
}
.deco-dots-blue {
  background-image: radial-gradient(circle, rgba(59,130,246,0.14) 1px, transparent 1px);
  background-size: 26px 26px;
}
.deco-glow-green {
  background: radial-gradient(ellipse at center, rgba(34,197,94,0.13) 0%, transparent 70%);
}
.deco-glow-blue {
  background: radial-gradient(ellipse at center, rgba(59,130,246,0.10) 0%, transparent 70%);
}
.deco-glow-green-br {
  background: radial-gradient(ellipse at center, rgba(34,197,94,0.10) 0%, transparent 70%);
  transform: translate(30%, 30%);
}

/* ── Opacity utilities ── */
.opacity-10-custom { opacity: 0.10; }
.opacity-07 { opacity: 0.07; }
.opacity-04 { opacity: 0.04; }

/* Info banner icon background moved from inline styles */
.info-icon-bg {
  background: linear-gradient(135deg, #22C55E 0%, #16A34A 100%);
  box-shadow: 0 6px 16px -3px rgba(34,197,94,0.45);
}
.info-banner-watermark { opacity: 0.07; }

/* ── Market Opportunity decorative elements ── */
.mo-radar-circles { opacity: 0.08; }

/* ── Custom overrides for inline styles ── */
.footer-top-right-glow {
  background: radial-gradient(ellipse at top right, rgba(34,197,94,0.06) 0%, transparent 65%);
}
.footer-bottom-left-glow {
  background: radial-gradient(ellipse at bottom left, rgba(79,70,229,0.06) 0%, transparent 65%);
}
.flex-center-inline {
  display: flex;
  align-items: center;
}
.logo-footer {
  width: auto;
  object-fit: contain;
  max-height: none;
}
.margin-0-padding-b-32 {
  margin: 0;
  padding-bottom: 32px;
}

/* ── Floating Buttons ── */
.floating-actions {
  position: fixed;
  bottom: 24px;
  right: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  z-index: 100;
}

.floating-btn {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.floating-btn:hover {
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 12px 28px rgba(0,0,0,0.2);
}
.floating-btn.whatsapp {
  background-color: #25D366;
}
.floating-btn.call {
  background-color: #22C55E;
}

/* Hero specific glowing components */
.hero-rim-light {
  filter: drop-shadow(0 0 25px rgba(34,197,94,0.2)) drop-shadow(0 0 50px rgba(34,197,94,0.1));
}

.hero-glow-blob {
  background: radial-gradient(ellipse at center, rgba(34,197,94,0.15) 0%, transparent 70%);
}

/* ── Ringing Animation ── */
@keyframes ring {
  0% { transform: rotate(0); }
  10% { transform: rotate(15deg); }
  20% { transform: rotate(-10deg); }
  30% { transform: rotate(10deg); }
  40% { transform: rotate(-10deg); }
  50% { transform: rotate(0); }
  100% { transform: rotate(0); }
}
.animate-ring {
  animation: ring 2s infinite ease-in-out;
}

/* Pulse Glow around button */
@keyframes pulse-glow {
  0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4); }
  70% { box-shadow: 0 0 0 10px rgba(34, 197, 94, 0); }
  100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); }
}
.animate-pulse-glow {
  animation: pulse-glow 2s infinite;
}

/* ── Courses Active Button ── */
.nav-courses-btn {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 20px;
  border-radius: 8px;
  border: 1px solid #22C55E;
  background-color: transparent;
  color: #22C55E;
  font-weight: 700;
  box-shadow: 0 0 20px rgba(34, 197, 94, 0.3);
  transition: all 0.3s ease;
  text-shadow: 0 0 8px rgba(34, 197, 94, 0.3);
}

.nav-courses-btn:hover {
  box-shadow: 0 0 30px rgba(34, 197, 94, 0.4);
  background-color: transparent;
  transform: translateY(-1px);
}

.nav-courses-notch {
  position: absolute;
  bottom: -6.5px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 12px;
  height: 12px;
  background-color: #050B14; /* Matches navbar background roughly */
  border-bottom: 1px solid #22C55E;
  border-right: 1px solid #22C55E;
  z-index: 10;
  box-shadow: 2px 2px 5px -2px rgba(34, 197, 94, 0.3);
}

/* ── Mobile Nav Active Glow ── */
.mobile-nav-active-glow {
  position: relative;
  text-shadow: 0 0 15px rgba(34,197,94,0.6);
}
.mobile-nav-active-glow::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 2px;
  background-color: #22C55E;
  box-shadow: 0 0 8px #22C55E;
  border-radius: 2px;
}

/* ── Mobile Menu Transitions ── */
#mobile-menu {
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
#mobile-menu > div {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.mobile-menu-open {
  opacity: 1 !important;
  visibility: visible !important;
}
.mobile-menu-open > div {
  transform: translateY(0) !important;
}

/* ── Nav Hover Glow ── */
.nav-hover-glow {
  transition: color 0.3s ease, filter 0.3s ease;
}
.nav-hover-glow:hover {
  color: #22C55E !important;
  filter: drop-shadow(0 0 8px rgba(34,197,94,0.5));
}

/* ── Active Page Indicator ── */
.nav-item-active {
  color: #22C55E !important;
  font-weight: 700 !important;
  text-shadow: 0 0 10px rgba(34, 197, 94, 0.4);
}

.nav-item-active:not(.nav-courses-btn)::after {
  content: '';
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 2px;
  background-color: #22C55E;
  box-shadow: 0 0 8px #22C55E;
  border-radius: 2px;
  animation: slide-up-fade 0.3s ease-out forwards;
}

@keyframes slide-up-fade {
  from { opacity: 0; transform: translate(-50%, 4px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

/* ═══════════════════════════════════════════════════════════
   HERO SECTION — Clean banner approach
   Image displayed as-is, full width, natural aspect ratio.
   No artificial backgrounds. No split layout. No overlays.
   Text sits on the image's own dark left area.
   Cards overlap the image's natural white diagonal bottom.
   ═══════════════════════════════════════════════════════════ */

.hero-section {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  background-color: #ffffff; /* Seamlessly blends with the image's white bottom */
}

/* Banner wrapper — holds the image + text overlay */
.hero-banner {
  position: relative;
  width: 100%;
  line-height: 0; /* kill inline img gap */
}

/* The hero image — full width, natural proportions, no crop */
.hero-img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Text overlay — sits on top of the image's natural dark left area */
.hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
  display: flex;
  align-items: flex-start;
  padding-top: clamp(12px, 2.5vw, 60px);
  padding-left: max(24px, calc((100vw - var(--container-width)) / 2 + 24px));
  pointer-events: none;
}

.hero-overlay-inner {
  pointer-events: auto;
  line-height: 1.4;
  max-width: clamp(550px, 45vw, 850px);
}

/* Heading */
.hero-h1 {
  font-size: clamp(1.4rem, 2.8vw + 0.2rem, 3.8rem);
  line-height: 1.1;
}

/* Cards — overlap the image's natural white diagonal bottom */
.hero-cards-row {
  position: relative;
  z-index: 20;
  margin-top: -20px;
  padding-bottom: 32px;
}

.hero-card {
  backdrop-filter: blur(10px);
}

/* ═══ DESKTOP 1280+ (Default for all desktops, monitors, iMacs) ═══ */
@media (min-width: 1280px) {
  .hero-overlay {
    padding-top: 1%;
  }
  .hero-overlay-inner {
    max-width: 850px;
  }
  .hero-cards-row {
    margin-top: clamp(-600px, -29.5vw, -450px);
    padding-bottom: 32px;
  }
}

/* ═══ LAPTOP RANGE SPECIFIC (1280px–1535px) ═══ */
@media (min-width: 1280px) and (max-width: 1535px) {
  .hero-overlay-inner {
    margin-top: -10px; /* Move left content slightly upward */
  }
  .hero-cards-row {
    margin-top: -380px; /* Restores tight laptop overlap directly under the green divider */
  }
}

/* ═══ ULTRA-WIDE 1536+ ═══ */
@media (min-width: 1536px) {
  .hero-cards-row {
    margin-top: clamp(-600px, -29.5vw, -450px); /* Seamless fluid overlap scaling */
  }
}

/* ═══ TABLET 768–1023 ═══ */
@media (min-width: 768px) and (max-width: 1023px) {
  .hero-overlay {
    padding-left: 32px;
    padding-top: 1%;
  }
  .hero-overlay-inner {
    max-width: 600px;
  }
  .hero-h1 {
    font-size: clamp(1rem, 2.2vw + 0.3rem, 1.8rem);
  }
  .hero-cards-row {
    margin-top: -180px;
    padding-bottom: 24px;
  }
}

/* ═══ MOBILE <768 ═══ */
@media (max-width: 767px) {
  .hero-overlay {
    padding-top: 110px;
    padding-left: 20px;
    padding-bottom: 40px;
    background-color: transparent;
  }
  .hero-overlay-inner {
    max-width: 95%;
  }
  .hero-h1 {
    font-size: clamp(1.8rem, 7vw, 2.2rem);
    line-height: 1.15;
    margin-bottom: 0.75rem;
  }
  .hero-overlay-inner p {
    font-size: 14px;
    margin-bottom: 1.25rem;
    line-height: 1.4;
  }
  .hero-cards-row {
    margin-top: 0; /* Align directly under the green divider line */
    padding-bottom: 20px;
  }
}

/* ═══ SMALL MOBILE <480 ═══ */
@media (max-width: 480px) {
  .hero-overlay {
    padding-top: 90px;
    padding-left: 16px;
    padding-bottom: 40px;
    background-color: transparent;
  }
  .hero-overlay-inner {
    max-width: 100%;
  }
  .hero-h1 {
    font-size: clamp(1.6rem, 8vw, 2rem);
    line-height: 1.15;
    margin-bottom: 0.6rem;
  }
  .hero-overlay-inner p {
    font-size: 13px;
    margin-bottom: 1rem;
    line-height: 1.4;
  }
  .hero-cards-row {
    margin-top: 0;
    padding-bottom: 16px;
  }
}
