/* ============================================
   SBEHUB — Premium Graphics & Animations
   Decorative elements, floating shapes, 
   gradient orbs, and visual enhancements
   ============================================ */

/* --- Animated Gradient Mesh Background --- */
.gradient-mesh {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.gradient-mesh .mesh-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
  animation: orbFloat 12s ease-in-out infinite;
}

.gradient-mesh .mesh-orb:nth-child(1) {
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(25,75,70,0.3), transparent 70%);
  top: -10%;
  left: -5%;
  animation-duration: 14s;
}

.gradient-mesh .mesh-orb:nth-child(2) {
  width: 350px;
  height: 350px;
  background: radial-gradient(circle, rgba(245,158,11,0.2), transparent 70%);
  top: 20%;
  right: -8%;
  animation-duration: 18s;
  animation-delay: -4s;
}

.gradient-mesh .mesh-orb:nth-child(3) {
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(16,185,129,0.15), transparent 70%);
  bottom: -5%;
  left: 30%;
  animation-duration: 16s;
  animation-delay: -8s;
}

@keyframes orbFloat {
  0%, 100% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(30px, -20px) scale(1.05); }
  50% { transform: translate(-20px, 15px) scale(0.95); }
  75% { transform: translate(15px, 25px) scale(1.02); }
}

/* --- Floating Geometric Shapes --- */
.floating-shapes {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.floating-shape {
  position: absolute;
  opacity: 0;
  animation: shapeFloat 10s ease-in-out infinite;
}

.shape-circle {
  width: 60px;
  height: 60px;
  border: 2px solid rgba(25,75,70,0.12);
  border-radius: 50%;
}

.shape-ring {
  width: 80px;
  height: 80px;
  border: 3px solid rgba(245,158,11,0.1);
  border-radius: 50%;
}

.shape-square {
  width: 40px;
  height: 40px;
  border: 2px solid rgba(25,75,70,0.08);
  border-radius: 8px;
  transform: rotate(45deg);
}

.shape-triangle {
  width: 0;
  height: 0;
  border-left: 25px solid transparent;
  border-right: 25px solid transparent;
  border-bottom: 43px solid rgba(245,158,11,0.06);
}

.shape-dot {
  width: 8px;
  height: 8px;
  background: rgba(25,75,70,0.15);
  border-radius: 50%;
}

.shape-dot-lg {
  width: 14px;
  height: 14px;
  background: rgba(245,158,11,0.12);
  border-radius: 50%;
}

.shape-cross {
  width: 24px;
  height: 24px;
  position: relative;
}

.shape-cross::before,
.shape-cross::after {
  content: '';
  position: absolute;
  background: rgba(25,75,70,0.1);
  border-radius: 2px;
}

.shape-cross::before {
  width: 100%;
  height: 3px;
  top: 50%;
  transform: translateY(-50%);
}

.shape-cross::after {
  width: 3px;
  height: 100%;
  left: 50%;
  transform: translateX(-50%);
}

/* Floating positions */
.floating-shape:nth-child(1) { top: 15%; left: 5%; animation-duration: 12s; animation-delay: 0s; }
.floating-shape:nth-child(2) { top: 25%; right: 10%; animation-duration: 14s; animation-delay: -2s; }
.floating-shape:nth-child(3) { top: 60%; left: 8%; animation-duration: 11s; animation-delay: -4s; }
.floating-shape:nth-child(4) { top: 70%; right: 15%; animation-duration: 13s; animation-delay: -6s; }
.floating-shape:nth-child(5) { top: 40%; left: 45%; animation-duration: 15s; animation-delay: -3s; }
.floating-shape:nth-child(6) { top: 85%; left: 20%; animation-duration: 10s; animation-delay: -7s; }
.floating-shape:nth-child(7) { top: 10%; right: 30%; animation-duration: 16s; animation-delay: -5s; }
.floating-shape:nth-child(8) { top: 50%; right: 5%; animation-duration: 12s; animation-delay: -1s; }

@keyframes shapeFloat {
  0%, 100% { opacity: 0.3; transform: translateY(0) rotate(0deg); }
  25% { opacity: 0.6; }
  50% { opacity: 0.4; transform: translateY(-30px) rotate(90deg); }
  75% { opacity: 0.7; }
}

/* --- Section Divider Wave --- */
.section-divider {
  position: relative;
  height: 80px;
  margin-top: -1px;
  overflow: hidden;
}

.section-divider svg {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 100%;
}

/* --- Animated Gradient Border --- */
.gradient-border {
  position: relative;
  overflow: hidden;
}

.gradient-border::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, 
    rgb(25,75,70), 
    rgb(202,80,51), 
    rgb(25,75,70), 
    rgb(202,80,51)
  );
  background-size: 300% 100%;
  animation: gradientFlow 4s linear infinite;
}

@keyframes gradientFlow {
  0% { background-position: 0% 50%; }
  100% { background-position: 300% 50%; }
}

/* --- Shimmer Highlight Effect --- */
.shimmer {
  position: relative;
  overflow: hidden;
}

.shimmer::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,0.08),
    transparent
  );
  animation: shimmerSlide 3s ease-in-out infinite;
}

@keyframes shimmerSlide {
  0% { left: -100%; }
  100% { left: 200%; }
}

/* --- Glowing Dot Grid Pattern --- */
.dot-pattern {
  position: absolute;
  width: 200px;
  height: 200px;
  background-image: radial-gradient(rgba(25,75,70,0.08) 1.5px, transparent 1.5px);
  background-size: 16px 16px;
  pointer-events: none;
  z-index: 0;
}

.dot-pattern--right {
  right: -40px;
  top: 20%;
}

.dot-pattern--left {
  left: -40px;
  bottom: 10%;
}

.dot-pattern--orange {
  background-image: radial-gradient(rgba(245,158,11,0.08) 1.5px, transparent 1.5px);
}

/* --- Glowing Accent Lines --- */
.glow-line {
  position: absolute;
  height: 2px;
  border-radius: 2px;
  pointer-events: none;
  z-index: 0;
}

.glow-line--horizontal {
  width: 120px;
  background: linear-gradient(90deg, transparent, rgba(25,75,70,0.2), transparent);
}

.glow-line--vertical {
  width: 2px;
  height: 120px;
  background: linear-gradient(180deg, transparent, rgba(245,158,11,0.2), transparent);
}

/* --- Card Hover Glow Effect --- */
.card-glow {
  position: relative;
}

.card-glow::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(25,75,70,0.15), rgba(202,80,51,0.1));
  z-index: -1;
  opacity: 0;
  transition: opacity 0.4s ease;
  filter: blur(8px);
}

.card-glow:hover::after {
  opacity: 1;
}

/* --- Animated Counter Decoration --- */
.stat-item {
  position: relative;
}

.stat-item::before {
  content: '';
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(25,75,70,0.06), rgba(202,80,51,0.04));
  z-index: 0;
}

/* --- Decorative Corner Brackets --- */
.corner-brackets {
  position: relative;
}

.corner-brackets::before,
.corner-brackets::after {
  content: '';
  position: absolute;
  width: 32px;
  height: 32px;
  border-color: rgba(25,75,70,0.15);
  border-style: solid;
  pointer-events: none;
}

.corner-brackets::before {
  top: -8px;
  left: -8px;
  border-width: 2px 0 0 2px;
  border-radius: 4px 0 0 0;
}

.corner-brackets::after {
  bottom: -8px;
  right: -8px;
  border-width: 0 2px 2px 0;
  border-radius: 0 0 4px 0;
}

/* --- Gradient Text Utility --- */
.text-gradient {
  background: linear-gradient(135deg, rgb(25,75,70), rgb(202,80,51));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* --- Pulse Ring Animation (for badges/icons) --- */
.pulse-ring {
  position: relative;
}

.pulse-ring::before {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: inherit;
  border: 2px solid rgba(25,75,70,0.3);
  animation: pulseRing 2s ease-out infinite;
}

@keyframes pulseRing {
  0% { transform: scale(1); opacity: 0.6; }
  100% { transform: scale(1.15); opacity: 0; }
}

/* --- Parallax-ready sections --- */
.parallax-section {
  position: relative;
  overflow: hidden;
}

.parallax-bg {
  position: absolute;
  inset: -50px;
  z-index: 0;
  will-change: transform;
}

/* --- Animated underline for headings --- */
.animated-underline {
  position: relative;
  display: inline-block;
}

.animated-underline::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 3px;
  background: linear-gradient(90deg, rgb(25,75,70), rgb(202,80,51));
  border-radius: 2px;
  transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.animated-underline.visible::after {
  width: 80px;
}

/* --- Tilt Card Effect (enhanced hover) --- */
.tilt-card {
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  will-change: transform;
}

.tilt-card:hover {
  transform: perspective(800px) rotateY(-2deg) rotateX(2deg) translateY(-6px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.12), 0 0 30px rgba(25,75,70,0.08);
}

/* (stagger-children removed — was GSAP-dependent) */

/* --- Floating Badge Pulse --- */
.page-hero-badge,
.hero-img-badge {
  animation: badge-float 3s ease-in-out infinite, badgePulse 4s ease-in-out infinite;
}

@keyframes badgePulse {
  0%, 100% { box-shadow: 0 8px 32px rgba(0,0,0,0.15); }
  50% { box-shadow: 0 12px 40px rgba(0,0,0,0.2), 0 0 20px rgba(25,75,70,0.1); }
}

/* --- Section Background Decoration (wavy lines) --- */
.bg-decoration {
  position: absolute;
  pointer-events: none;
  z-index: 0;
}

.bg-decoration--waves {
  width: 600px;
  height: 300px;
  opacity: 0.04;
}

/* --- Enhanced Card Styles --- */
.solution-card,
.existing-card,
.ta-card,
.startup-card,
.why-card,
.pso-card,
.usage-card,
.impact-card,
.give-card,
.serve-card {
  will-change: transform;
}

/* Magnetic hover for icon containers */
.card-icon,
.existing-icon,
.why-icon,
.pain-icon,
.hero-service-icon {
  transition: transform 0.3s ease;
}

.card:hover .card-icon,
.existing-card:hover .existing-icon,
.why-card:hover .why-icon,
.hero-service-item:hover .hero-service-icon {
  transform: scale(1.1) rotate(-3deg);
}

/* --- Footer Enhancement --- */
.site-footer {
  position: relative;
  overflow: hidden;
}

.site-footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(25,75,70,0.3), rgba(202,80,51,0.3), transparent);
}

.site-footer::after {
  content: '';
  position: absolute;
  top: -150px;
  right: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(25,75,70,0.04), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

/* --- Enhanced Button Ripple --- */
.btn::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(circle at center, rgba(255,255,255,0.3), transparent 70%);
  opacity: 0;
  transform: scale(0);
  transition: transform 0.5s ease, opacity 0.3s ease;
}

.btn:active::after {
  opacity: 1;
  transform: scale(2);
  transition: 0s;
}

/* --- Smooth Section Transitions --- */
section {
  position: relative;
}

/* --- Mobile Responsiveness for Graphics --- */
@media (max-width: 768px) {
  .floating-shapes {
    display: none;
  }
  
  .dot-pattern {
    width: 100px;
    height: 100px;
  }
  
  .gradient-mesh .mesh-orb {
    filter: blur(60px);
    opacity: 0.3;
  }
  
  .corner-brackets::before,
  .corner-brackets::after {
    display: none;
  }
}

@media (max-width: 480px) {
  .gradient-mesh {
    display: none;
  }
}
