/* ===================================================
   Global Cool Effects - Shared across all pages
   Theme: Orange gradient (255,191,6) → (255,135,6)
   =================================================== */

/* ===== Custom Scrollbar ===== */
::-webkit-scrollbar{ width: 10px; }
::-webkit-scrollbar-track{ background: #fff5e0; }
::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, rgba(255,191,6,1), rgba(255,135,6,1));
  border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover{
  background: linear-gradient(180deg, rgba(255,135,6,1), rgba(255,191,6,1));
}

/* ===== Top Scroll Progress Bar ===== */
.ge-scroll-progress{
  position: fixed;
  top: 0; left: 0;
  height: 4px;
  width: 0%;
  background: linear-gradient(to right, rgba(255,191,6,1), rgba(255,135,6,1), rgba(255,191,6,1));
  background-size: 200% 100%;
  z-index: 99999;
  box-shadow: 0 0 12px rgba(255,135,6,0.6);
  transition: width .1s ease;
  animation: ge-progress-shimmer 2s linear infinite;
}
@keyframes ge-progress-shimmer{
  to{ background-position: 200% 0; }
}

/* ===== Cursor Glow ===== */
.ge-cursor-glow{
  position: fixed;
  width: 300px; height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,174,6,0.12), transparent 60%);
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%, -50%);
  transition: opacity .3s ease;
  mix-blend-mode: screen;
}
@media (max-width: 768px){
  .ge-cursor-glow{ display: none; }
}

/* ===== Back-to-top button - Ultra Cool Design ===== */
.btn_top_bottom{
  width: 52px !important;
  height: 52px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(135deg, rgba(255,191,6,1), rgba(255,135,6,1)) !important;
  box-shadow:
    0 4px 15px rgba(255,135,6,0.4),
    0 0 0 0 rgba(255,191,6,0.4) !important;
  position: fixed !important;
  right: 30px !important;
  bottom: 30px !important;
  z-index: 9999 !important;
  overflow: visible !important;
  transition: all .4s cubic-bezier(0.34,1.56,0.64,1) !important;
  animation: ge-btn-pulse 2s ease-in-out infinite;
  border: none !important;
  font-size: 0 !important;
}
/* When JS shows the button, use flex layout */
.btn_top_bottom[style*="display: block"],
.btn_top_bottom[style*="display:block"]{
  display: flex !important;
  animation: ge-btn-pulse 2s ease-in-out infinite, ge-btn-entrance .5s cubic-bezier(0.34,1.56,0.64,1);
}
/* Hide the <p> text inside */
.btn_top_bottom i p,
.btn_top_bottom p{
  display: none !important;
}
/* Icon styling */
.btn_top_bottom i{
  color: #fff !important;
  font-size: 18px !important;
  z-index: 3;
  transition: transform .4s ease;
}

/* Rotating conic gradient border ring */
.btn_top_bottom::before{
  content:'';
  position:absolute;
  inset: -3px;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    rgba(255,191,6,1),
    rgba(255,135,6,1),
    rgba(255,174,6,1),
    rgba(255,191,6,0),
    rgba(255,135,6,1),
    rgba(255,191,6,1)
  );
  z-index: -1;
  animation: ge-btn-rotate 4s linear infinite;
  opacity: 0.6;
  transition: opacity .4s ease, inset .4s ease;
}

/* Outer glow ring */
.btn_top_bottom::after{
  content:'';
  position:absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid rgba(255,191,6,0.5);
  z-index: -2;
  animation: ge-btn-ring 2s ease-out infinite;
}

/* Pulse animation */
@keyframes ge-btn-pulse{
  0%,100%{
    box-shadow:
      0 4px 15px rgba(255,135,6,0.4),
      0 0 0 0 rgba(255,191,6,0.4);
  }
  50%{
    box-shadow:
      0 4px 15px rgba(255,135,6,0.4),
      0 0 0 12px rgba(255,191,6,0);
  }
}

/* Rotating border */
@keyframes ge-btn-rotate{
  to{ transform: rotate(360deg); }
}

/* Expanding ring */
@keyframes ge-btn-ring{
  0%{ transform: scale(1); opacity: 0.6; }
  100%{ transform: scale(1.5); opacity: 0; }
}

/* Hover effects */
.btn_top_bottom:hover{
  transform: translateY(-6px) scale(1.12) !important;
  box-shadow:
    0 12px 30px rgba(255,135,6,0.5),
    0 0 25px rgba(255,191,6,0.4) !important;
}
.btn_top_bottom:hover::before{
  opacity: 1;
  inset: -5px;
}
.btn_top_bottom:hover::after{
  animation-duration: 1s;
}
.btn_top_bottom:hover i{
  transform: translateY(-3px);
}

/* Shimmer sweep inside button */
.btn_top_bottom > i{
  position: relative;
}

/* Extra glow dot on hover */
.btn_top_bottom .ge-btn-glow{
  position: absolute;
  top: 50%; left: 50%;
  width: 100%; height: 100%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.3), transparent 60%);
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  transition: all .4s ease;
  pointer-events: none;
  z-index: 1;
}
.btn_top_bottom:hover .ge-btn-glow{
  transform: translate(-50%, -50%) scale(1.5);
  opacity: 1;
}

@keyframes ge-btn-entrance{
  from{
    transform: scale(0) rotate(-180deg);
    opacity: 0;
  }
  to{
    transform: scale(1) rotate(0);
    opacity: 1;
  }
}

/* ===== Navbar link hover enhancement ===== */
.navbar .nav-link{
  position: relative;
  transition: all .3s ease;
}
.navbar .nav-link::after{
  content:'';
  position:absolute;
  bottom: 2px;
  left: 50%;
  width: 0;
  height: 2px;
  background: linear-gradient(to right, rgba(255,191,6,1), rgba(255,135,6,1));
  border-radius: 2px;
  transition: all .3s ease;
  transform: translateX(-50%);
  box-shadow: 0 0 6px rgba(255,135,6,0.5);
}
.navbar .nav-link:hover::after,
.navbar .nav-link.active::after{
  width: 70%;
}
.navbar .nav-link:hover{
  color: rgba(255,135,6,1) !important;
  transform: translateY(-2px);
}

/* ===== Button hover effects ===== */
.btn, button[class*="btn"], a[class*="btn"]{
  position: relative;
  overflow: hidden;
  transition: all .4s cubic-bezier(0.34,1.56,0.64,1);
}
.btn::before, button[class*="btn"]::before, a[class*="btn"]::before{
  content:'';
  position:absolute;
  top:0; left:-100%;
  width:100%; height:100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
  transition: left .6s ease;
  z-index: 1;
  pointer-events: none;
}
.btn:hover::before, button[class*="btn"]:hover::before, a[class*="btn"]:hover::before{
  left: 100%;
}
.btn:hover, button[class*="btn"]:hover, a[class*="btn"]:hover{
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(255,135,6,0.25);
}

/* ===== Ripple effect on click ===== */
.ge-ripple{
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,174,6,0.4), transparent 70%);
  transform: scale(0);
  animation: ge-ripple-expand .6s ease-out;
  pointer-events: none;
  z-index: 2;
}
@keyframes ge-ripple-expand{
  to{ transform: scale(4); opacity: 0; }
}

/* ===== Card hover effects ===== */
.ge-card-hover{
  transition: all .4s cubic-bezier(0.34,1.56,0.64,1);
  position: relative;
}
.ge-card-hover:hover{
  transform: translateY(-10px);
  box-shadow: 0 20px 50px rgba(255,135,6,0.2);
}
.ge-card-hover::after{
  content:'';
  position:absolute;
  inset: 0;
  border-radius: inherit;
  padding: 2px;
  background: linear-gradient(135deg, rgba(255,191,6,0.6), rgba(255,135,6,0.6));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity .4s ease;
  pointer-events: none;
}
.ge-card-hover:hover::after{ opacity: 1; }

/* ===== Image hover effects ===== */
.ge-img-zoom{
  overflow: hidden;
  position: relative;
}
.ge-img-zoom img{
  transition: transform .6s cubic-bezier(0.34,1.56,0.64,1);
}
.ge-img-zoom:hover img{
  transform: scale(1.12);
}
.ge-img-zoom::after{
  content:'';
  position:absolute;
  inset:0;
  background: linear-gradient(135deg, rgba(255,191,6,0.15), transparent);
  opacity: 0;
  transition: opacity .4s ease;
  pointer-events: none;
}
.ge-img-zoom:hover::after{ opacity: 1; }

/* ===== Link hover underline animation ===== */
.ge-link{
  position: relative;
  display: inline-block;
  transition: all .3s ease;
}
.ge-link::after{
  content:'';
  position:absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(to right, rgba(255,191,6,1), rgba(255,135,6,1));
  border-radius: 2px;
  transition: width .3s ease;
}
.ge-link:hover{
  color: rgba(255,135,6,1);
  transform: translateX(3px);
}
.ge-link:hover::after{ width: 100%; }

/* ===== Footer link hover ===== */
.footer-widget ul li a,
.footer-section a{
  display: inline-block;
  transition: all .3s ease;
  position: relative;
}
.footer-widget ul li a:hover,
.footer-section a:hover{
  transform: translateX(8px);
  color: rgba(255,191,6,1) !important;
}

/* ===== Section title enhancement ===== */
.ge-title-gradient{
  background: linear-gradient(to right, rgba(255,191,6,1), rgba(255,135,6,1), rgba(255,191,6,1));
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: ge-gradient-flow 4s linear infinite;
}
@keyframes ge-gradient-flow{
  to{ background-position: 200% center; }
}

/* ===== Input focus glow ===== */
input[type="text"], input[type="email"], input[type="tel"],
input[type="password"], input[type="number"], textarea, select{
  transition: all .3s ease;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus,
input[type="password"]:focus, input[type="number"]:focus, textarea:focus, select:focus{
  border-color: rgba(255,191,6,0.6) !important;
  box-shadow: 0 0 0 4px rgba(255,191,6,0.12), 0 0 20px rgba(255,135,6,0.15) !important;
  outline: none;
}

/* ===== Scroll reveal animations ===== */
.ge-reveal{
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .8s ease, transform .8s cubic-bezier(0.34,1.56,0.64,1);
}
.ge-reveal.ge-visible{
  opacity: 1;
  transform: translateY(0);
}
.ge-reveal-left{
  opacity: 0;
  transform: translateX(-50px);
  transition: opacity .8s ease, transform .8s cubic-bezier(0.34,1.56,0.64,1);
}
.ge-reveal-left.ge-visible{
  opacity: 1;
  transform: translateX(0);
}
.ge-reveal-right{
  opacity: 0;
  transform: translateX(50px);
  transition: opacity .8s ease, transform .8s cubic-bezier(0.34,1.56,0.64,1);
}
.ge-reveal-right.ge-visible{
  opacity: 1;
  transform: translateX(0);
}
.ge-reveal-scale{
  opacity: 0;
  transform: scale(0.8);
  transition: opacity .8s ease, transform .8s cubic-bezier(0.34,1.56,0.64,1);
}
.ge-reveal-scale.ge-visible{
  opacity: 1;
  transform: scale(1);
}

/* ===== Floating animation utility ===== */
.ge-float{
  animation: ge-float 4s ease-in-out infinite;
}
@keyframes ge-float{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(-15px); }
}

/* ===== Glow pulse utility ===== */
.ge-glow-pulse{
  animation: ge-glow-pulse 2s ease-in-out infinite;
}
@keyframes ge-glow-pulse{
  0%,100%{ box-shadow: 0 0 0 0 rgba(255,191,6,0.4); }
  50%{ box-shadow: 0 0 0 15px rgba(255,191,6,0); }
}

/* ===== Shimmer text utility ===== */
.ge-shimmer{
  background: linear-gradient(90deg, #999 25%, #fff 50%, #999 75%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: ge-shimmer 3s linear infinite;
}
@keyframes ge-shimmer{
  to{ background-position: -200% 0; }
}

/* ===== 3D Tilt card ===== */
.ge-tilt{
  transition: transform .2s ease;
  transform-style: preserve-3d;
  will-change: transform;
}
.ge-tilt-content{
  transform-style: preserve-3d;
}

/* ===== Floating decorative shapes ===== */
.ge-shape{
  position: absolute;
  pointer-events: none;
  z-index: 0;
}
.ge-shape-circle{
  border-radius: 50%;
  border: 2px solid rgba(255,191,6,0.2);
  animation: ge-shape-spin 20s linear infinite;
}
.ge-shape-square{
  border: 2px solid rgba(255,135,6,0.2);
  border-radius: 15px;
  animation: ge-shape-spin 25s linear infinite reverse;
}
@keyframes ge-shape-spin{
  to{ transform: rotate(360deg); }
}

/* ===== Section divider glow ===== */
.ge-divider{
  height: 2px;
  background: linear-gradient(to right, transparent, rgba(255,191,6,0.5), rgba(255,135,6,0.5), transparent);
  margin: 60px 0;
  position: relative;
}
.ge-divider::after{
  content:'';
  position:absolute;
  top: -3px; left: 50%;
  transform: translateX(-50%);
  width: 8px; height: 8px;
  background: rgba(255,191,6,1);
  border-radius: 50%;
  box-shadow: 0 0 15px rgba(255,135,6,0.6);
  animation: ge-divider-pulse 2s ease-in-out infinite;
}
@keyframes ge-divider-pulse{
  0%,100%{ transform: translateX(-50%) scale(1); opacity: 1; }
  50%{ transform: translateX(-50%) scale(1.5); opacity: 0.6; }
}

/* ===== Badge hover ===== */
.badge, .tag{
  transition: all .3s ease;
}
.badge:hover, .tag:hover{
  transform: scale(1.1) rotate(-3deg);
  box-shadow: 0 4px 15px rgba(255,135,6,0.3);
}

/* ===== Social icon hover ===== */
.footer-widget .social-icon a,
.social-icons a{
  transition: all .4s cubic-bezier(0.34,1.56,0.64,1);
}
.footer-widget .social-icon a:hover,
.social-icons a:hover{
  transform: translateY(-5px) rotate(360deg);
  background: linear-gradient(135deg, rgba(255,191,6,1), rgba(255,135,6,1)) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(255,135,6,0.4);
}

/* ===================================================
   MORE COOL HOVER EFFECTS & BORDERS
   =================================================== */

/* ===== Animated Conic Gradient Border ===== */
.ge-border-conic{
  position: relative;
  background: #fff;
  border-radius: 16px;
  z-index: 1;
}
.ge-border-conic::before{
  content:'';
  position:absolute;
  inset: -2px;
  border-radius: inherit;
  background: conic-gradient(
    from 0deg,
    rgba(255,191,6,0),
    rgba(255,191,6,1),
    rgba(255,135,6,1),
    rgba(255,191,6,0)
  );
  z-index: -1;
  animation: ge-conic-spin 4s linear infinite;
  opacity: 0;
  transition: opacity .4s ease;
}
.ge-border-conic:hover::before{ opacity: 1; }
@keyframes ge-conic-spin{
  to{ transform: rotate(360deg); }
}

/* ===== Neon Glow Border ===== */
.ge-border-neon{
  position: relative;
  border: 2px solid transparent;
  background-clip: padding-box;
  transition: all .4s ease;
}
.ge-border-neon:hover{
  border-color: rgba(255,191,6,0.8);
  box-shadow:
    0 0 5px rgba(255,191,6,0.8),
    0 0 20px rgba(255,135,6,0.6),
    0 0 40px rgba(255,174,6,0.4),
    inset 0 0 10px rgba(255,191,6,0.1);
  transform: translateY(-5px);
}

/* ===== Animated Dashed Border ===== */
.ge-border-dash{
  border: 2px dashed rgba(255,191,6,0.4);
  border-radius: 16px;
  transition: all .4s ease;
}
.ge-border-dash:hover{
  border-color: rgba(255,135,6,1);
  border-style: solid;
  box-shadow: 0 0 25px rgba(255,135,6,0.3);
}

/* ===== Border Light Sweep ===== */
.ge-border-sweep{
  position: relative;
  border: 2px solid rgba(255,191,6,0.2);
  border-radius: 16px;
  overflow: hidden;
  transition: border-color .4s ease;
}
.ge-border-sweep::before{
  content:'';
  position:absolute;
  top: -50%; left: -50%;
  width: 200%; height: 200%;
  background: linear-gradient(
    45deg,
    transparent 30%,
    rgba(255,191,6,0.15) 50%,
    transparent 70%
  );
  transform: translateX(-100%) translateY(-100%);
  transition: transform .8s ease;
  pointer-events: none;
}
.ge-border-sweep:hover{
  border-color: rgba(255,191,6,0.6);
}
.ge-border-sweep:hover::before{
  transform: translateX(100%) translateY(100%);
}

/* ===== Gradient Border with Moving Animation ===== */
.ge-border-gradient{
  position: relative;
  border-radius: 16px;
  background: #fff;
  z-index: 1;
}
.ge-border-gradient::before{
  content:'';
  position:absolute;
  inset: -2px;
  border-radius: inherit;
  background: linear-gradient(
    90deg,
    rgba(255,191,6,1),
    rgba(255,135,6,1),
    rgba(255,174,6,1),
    rgba(255,191,6,1)
  );
  background-size: 300% 100%;
  z-index: -1;
  opacity: 0;
  transition: opacity .4s ease;
  animation: ge-border-move 3s linear infinite;
}
.ge-border-gradient:hover::before{ opacity: 1; }
@keyframes ge-border-move{
  to{ background-position: 300% 0; }
}

/* ===== Corner Accent Border ===== */
.ge-border-corner{
  position: relative;
  border-radius: 12px;
  transition: all .4s ease;
}
.ge-border-corner::before,
.ge-border-corner::after{
  content:'';
  position:absolute;
  width: 25px;
  height: 25px;
  border: 3px solid rgba(255,191,6,0);
  transition: all .4s ease;
  pointer-events: none;
}
.ge-border-corner::before{
  top: -2px; left: -2px;
  border-right: none;
  border-bottom: none;
  border-top-left-radius: 12px;
}
.ge-border-corner::after{
  bottom: -2px; right: -2px;
  border-left: none;
  border-top: none;
  border-bottom-right-radius: 12px;
}
.ge-border-corner:hover::before{
  top: -5px; left: -5px;
  border-color: rgba(255,191,6,1);
  box-shadow: -3px -3px 15px rgba(255,191,6,0.3);
}
.ge-border-corner:hover::after{
  bottom: -5px; right: -5px;
  border-color: rgba(255,135,6,1);
  box-shadow: 3px 3px 15px rgba(255,135,6,0.3);
}

/* ===== Glow Trail on Hover ===== */
.ge-glow-trail{
  position: relative;
  overflow: hidden;
}
.ge-glow-trail::after{
  content:'';
  position:absolute;
  top: var(--mouse-y, 50%);
  left: var(--mouse-x, 50%);
  width: 150px; height: 150px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,191,6,0.2), transparent 70%);
  border-radius: 50%;
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}
.ge-glow-trail:hover::after{
  opacity: 1;
}

/* ===== Magnetic Button (JS adds .ge-magnetic) ===== */
.ge-magnetic{
  transition: transform 0.2s cubic-bezier(0.34,1.56,0.64,1);
}

/* ===== Text Glow on Hover ===== */
.ge-text-glow{
  transition: all .3s ease;
}
.ge-text-glow:hover{
  color: rgba(255,135,6,1) !important;
  text-shadow:
    0 0 5px rgba(255,191,6,0.6),
    0 0 15px rgba(255,135,6,0.4),
    0 0 30px rgba(255,174,6,0.2);
}

/* ===== Icon Bounce on Hover ===== */
.ge-icon-bounce{
  display: inline-block;
  transition: transform .4s cubic-bezier(0.34,1.56,0.64,1);
}
.ge-icon-bounce:hover{
  transform: translateY(-8px) scale(1.2);
  filter: drop-shadow(0 5px 10px rgba(255,135,6,0.4));
}

/* ===== Icon Spin on Hover ===== */
.ge-icon-spin{
  display: inline-block;
  transition: transform .5s ease;
}
.ge-icon-spin:hover{
  transform: rotate(360deg) scale(1.15);
}

/* ===== Underline from Center ===== */
.ge-underline-center{
  position: relative;
  display: inline-block;
}
.ge-underline-center::after{
  content:'';
  position:absolute;
  bottom: -3px;
  left: 50%;
  width: 0;
  height: 3px;
  background: linear-gradient(to right, rgba(255,191,6,1), rgba(255,135,6,1));
  border-radius: 3px;
  transition: all .4s ease;
  transform: translateX(-50%);
  box-shadow: 0 0 8px rgba(255,135,6,0.5);
}
.ge-underline-center:hover::after{
  width: 100%;
}

/* ===== Double Underline Expand ===== */
.ge-underline-double{
  position: relative;
  display: inline-block;
}
.ge-underline-double::before,
.ge-underline-double::after{
  content:'';
  position:absolute;
  bottom: -3px;
  height: 2px;
  border-radius: 2px;
  transition: all .4s ease;
}
.ge-underline-double::before{
  left: 0; width: 0;
  background: rgba(255,191,6,1);
}
.ge-underline-double::after{
  right: 0; width: 0;
  background: rgba(255,135,6,1);
}
.ge-underline-double:hover::before,
.ge-underline-double:hover::after{
  width: 50%;
}

/* ===== Card 3D Flip Shadow ===== */
.ge-card-3d{
  transition: all .5s cubic-bezier(0.34,1.56,0.64,1);
  transform-style: preserve-3d;
}
.ge-card-3d:hover{
  transform: perspective(1000px) rotateX(5deg) translateY(-10px);
  box-shadow:
    0 25px 50px rgba(255,135,6,0.2),
    0 0 0 1px rgba(255,191,6,0.3);
}
.ge-card-3d::before{
  content:'';
  position:absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,191,6,0), rgba(255,135,6,0));
  border-radius: inherit;
  transition: background .4s ease;
  pointer-events: none;
  z-index: 0;
}
.ge-card-3d:hover::before{
  background: linear-gradient(135deg, rgba(255,191,6,0.05), rgba(255,135,6,0.05));
}

/* ===== Scale + Rotate on Hover ===== */
.ge-scale-rotate{
  transition: transform .4s cubic-bezier(0.34,1.56,0.64,1);
}
.ge-scale-rotate:hover{
  transform: scale(1.08) rotate(2deg);
}

/* ===== Slide Reveal Overlay ===== */
.ge-slide-overlay{
  position: relative;
  overflow: hidden;
}
.ge-slide-overlay::after{
  content:'';
  position:absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(255,135,6,0.9), rgba(255,191,6,0.3), transparent);
  transform: translateY(100%);
  transition: transform .5s cubic-bezier(0.34,1.56,0.64,1);
  pointer-events: none;
  z-index: 1;
}
.ge-slide-overlay:hover::after{
  transform: translateY(0);
}
.ge-slide-overlay > *{
  position: relative;
  z-index: 2;
}

/* ===== Border Fill from Bottom ===== */
.ge-border-fill{
  position: relative;
  border: 2px solid rgba(255,191,6,0.2);
  border-radius: 12px;
  transition: border-color .4s ease;
}
.ge-border-fill::before{
  content:'';
  position:absolute;
  bottom: -2px; left: -2px; right: -2px;
  height: 0;
  border-radius: 12px;
  background: linear-gradient(to top, rgba(255,135,6,1), rgba(255,191,6,1));
  transition: height .4s ease;
  z-index: -1;
}
.ge-border-fill:hover{
  border-color: transparent;
}
.ge-border-fill:hover::before{
  height: calc(100% + 4px);
}

/* ===== Pulse Border Ring ===== */
.ge-border-pulse{
  position: relative;
  border-radius: 16px;
}
.ge-border-pulse::before,
.ge-border-pulse::after{
  content:'';
  position:absolute;
  inset: 0;
  border-radius: inherit;
  border: 2px solid rgba(255,191,6,0.6);
  opacity: 0;
  pointer-events: none;
}
.ge-border-pulse:hover::before{
  animation: ge-pulse-ring 1.5s ease-out infinite;
}
.ge-border-pulse:hover::after{
  animation: ge-pulse-ring 1.5s ease-out .5s infinite;
}
@keyframes ge-pulse-ring{
  0%{ transform: scale(1); opacity: 0.8; }
  100%{ transform: scale(1.15); opacity: 0; }
}

/* ===== Glow Spot Follow ===== */
.ge-spotlight{
  position: relative;
  overflow: hidden;
}
.ge-spotlight::before{
  content:'';
  position:absolute;
  width: 200px; height: 200px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,191,6,0.15), transparent 70%);
  top: var(--spot-y, 50%);
  left: var(--spot-x, 50%);
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}
.ge-spotlight:hover::before{ opacity: 1; }

/* ===== Shimmer Border Loop ===== */
.ge-border-shimmer{
  position: relative;
  border-radius: 16px;
  border: 2px solid transparent;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(90deg, rgba(255,191,6,0.3), rgba(255,135,6,0.8), rgba(255,191,6,0.3)) border-box;
  background-size: 100% 100%, 200% 100%;
  transition: all .4s ease;
  animation: ge-border-shimmer-anim 3s linear infinite;
}
@keyframes ge-border-shimmer-anim{
  to{ background-position: 0 0, 200% 0; }
}
.ge-border-shimmer:hover{
  box-shadow: 0 10px 30px rgba(255,135,6,0.2);
  transform: translateY(-3px);
}

/* ===== Lift + Shadow Zoom ===== */
.ge-lift{
  transition: all .4s cubic-bezier(0.34,1.56,0.64,1);
}
.ge-lift:hover{
  transform: translateY(-12px) scale(1.03);
  box-shadow: 0 30px 60px rgba(255,135,6,0.25);
}

/* ===== Text Slide Up Reveal ===== */
.ge-text-slide{
  display: inline-block;
  overflow: hidden;
  position: relative;
}
.ge-text-slide span{
  display: block;
  transition: transform .4s cubic-bezier(0.34,1.56,0.64,1);
}
.ge-text-slide:hover span{
  transform: translateY(-100%);
}
.ge-text-slide::after{
  content: attr(data-text);
  position:absolute;
  top: 100%; left: 0;
  color: rgba(255,135,6,1);
  transition: transform .4s cubic-bezier(0.34,1.56,0.64,1);
}
.ge-text-slide:hover::after{
  transform: translateY(-100%);
}

/* ===== Hover Zoom Glow ===== */
.ge-zoom-glow{
  transition: all .4s ease;
}
.ge-zoom-glow:hover{
  transform: scale(1.05);
  filter: drop-shadow(0 0 15px rgba(255,135,6,0.5));
}

/* ===== Animated Border Draw ===== */
.ge-border-draw{
  position: relative;
  border-radius: 12px;
}
.ge-border-draw::before{
  content:'';
  position:absolute;
  inset: 0;
  border-radius: inherit;
  border: 2px solid transparent;
  background:
    linear-gradient(90deg, rgba(255,191,6,1) var(--border-top, 0%), transparent var(--border-top, 0%)) top / 100% 2px no-repeat,
    linear-gradient(90deg, transparent var(--border-right, 0%), rgba(255,135,6,1) var(--border-right, 0%)) right / 2px 100% no-repeat,
    linear-gradient(180deg, transparent var(--border-bottom, 0%), rgba(255,191,6,1) var(--border-bottom, 0%)) bottom / 100% 2px no-repeat,
    linear-gradient(0deg, transparent var(--border-left, 0%), rgba(255,135,6,1) var(--border-left, 0%)) left / 2px 100% no-repeat;
  transition: --border-top .3s, --border-right .3s .15s, --border-bottom .3s .3s, --border-left .3s .45s;
  pointer-events: none;
}
.ge-border-draw:hover{
  --border-top: 100%;
  --border-right: 100%;
  --border-bottom: 100%;
  --border-left: 100%;
  transform: translateY(-5px);
  box-shadow: 0 15px 40px rgba(255,135,6,0.15);
}

/* ===== Auto-apply cool effects to existing elements ===== */

/* Add conic gradient border to cards on hover */
.card:hover, .service-card:hover, .feature-card:hover,
.blog-card:hover, .pricing-card:hover, .team-card:hover{
  box-shadow:
    0 20px 50px rgba(255,135,6,0.15),
    0 0 0 1px rgba(255,191,6,0.2);
}

/* Navbar brand hover effect */
.navbar-brand{
  transition: all .4s cubic-bezier(0.34,1.56,0.64,1);
  position: relative;
}
.navbar-brand:hover{
  transform: scale(1.05);
  filter: drop-shadow(0 0 10px rgba(255,135,6,0.3));
}
.navbar-brand img{
  transition: transform .5s ease;
}
.navbar-brand:hover img{
  transform: rotate(360deg);
}

/* Footer heading hover */
.footer-widget-heading h3, .footer-widget h3{
  transition: all .3s ease;
  position: relative;
  display: inline-block;
}
.footer-widget-heading h3:hover, .footer-widget h3:hover{
  color: rgba(255,191,6,1) !important;
  transform: translateX(5px);
}

/* Common head title hover */
.common_head h4, .common_head h2, .section-title{
  transition: all .3s ease;
}
.common_head h4:hover, .common_head h2:hover, .section-title:hover{
  text-shadow: 0 0 20px rgba(255,135,6,0.3);
}

/* ok-info / feature box hover */
.ok-info, .ok-title, .feature-box, .info-box{
  transition: all .4s cubic-bezier(0.34,1.56,0.64,1);
  position: relative;
}
.ok-info:hover, .feature-box:hover, .info-box:hover{
  transform: translateY(-8px);
}
.ok-img img, .feature-box img{
  transition: transform .5s cubic-bezier(0.34,1.56,0.64,1);
}
.ok-info:hover .ok-img img, .feature-box:hover img{
  transform: rotate(360deg) scale(1.2);
  filter: drop-shadow(0 5px 15px rgba(255,135,6,0.4));
}

/* Banner title hover glow */
.banner-title-b, .banner-title-b-s{
  transition: text-shadow .4s ease;
}
.banner-title-b:hover, .banner-title-b-s:hover{
  text-shadow:
    0 0 10px rgba(255,191,6,0.5),
    0 0 30px rgba(255,135,6,0.3);
}

/* ===== Override responsive.css for btn_top_bottom ===== */
@media (max-width: 991.98px){
  .btn_top_bottom{
    width: 46px !important;
    height: 46px !important;
    right: 20px !important;
    bottom: 20px !important;
  }
  .btn_top_bottom i{
    font-size: 16px !important;
  }
}
@media (max-width: 575.98px){
  .btn_top_bottom{
    width: 42px !important;
    height: 42px !important;
    right: 15px !important;
    bottom: 15px !important;
  }
  .btn_top_bottom i{
    font-size: 14px !important;
  }
}

/* ===== Banner vertical centering (all pages) ===== */
#banner{
  display: flex !important;
  align-items: center !important;
}
#banner > .container{
  width: 100%;
  flex: 1;
}
#banner > .container > .row{
  width: 100%;
}
